Découvrez les principes fondamentaux de la convolution dans la vision par ordinateur et l'apprentissage profond. Découvrez comment les noyaux et les cartes de caractéristiques alimentent Ultralytics pour les tâches en temps réel.
La convolution est une opération mathématique fondamentale qui sert de base aux systèmes modernes de vision par ordinateur (CV) et d' apprentissage profond (DL). Dans le contexte du traitement d'images, la convolution consiste à faire glisser un petit filtre, souvent appelé noyau, sur une image d'entrée afin de créer une carte des caractéristiques significatives. Ce processus permet aux modèles d'intelligence artificielle (IA) d' apprendre et d'identifier automatiquement des motifs tels que les contours, les textures et les formes sans intervention humaine. Contrairement à l' apprentissage automatique (ML) traditionnel qui nécessite souvent l' extraction manuelle des caractéristiques, la convolution permet aux réseaux de construire une compréhension hiérarchique des données visuelles, en partant de lignes simples pour progresser vers des objets complexes tels que des visages ou des véhicules.
L'opération fonctionne en passant un filtre sur les données d'entrée, en effectuant une multiplication élément par élément et en additionnant les résultats pour produire une valeur unique pour chaque position. Cette sortie est connue sous le nom de carte de caractéristiques.
Pour bien comprendre la convolution, il est utile de la distinguer d'autres termes similaires souvent rencontrés dans la littérature sur les réseaux neuronaux (NN):
L'efficacité de la convolution a permis à l'IA de révolutionner divers secteurs en alimentant des systèmes de perception robustes :
Vous pouvez inspecter les couches convolutives dans les modèles de pointe à l'aide de Python. L'exemple suivant charge le fichier
YOLO26 modèle et vérifie que sa couche initiale utilise une
opération convolutive standard, qui est mise en œuvre via torch.nn.
import torch.nn as nn
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Access the first layer of the model's backbone
first_layer = model.model.model[0]
# Verify it is a Convolutional layer
if isinstance(first_layer.conv, nn.Conv2d):
print("Success: The first layer is a standard convolution.")
print(f"Kernel size: {first_layer.conv.kernel_size}")
Les opérations convolutives sont hautement optimisables, ce qui les rend idéales pour les déploiements d'IA en périphérie où les ressources informatiques sont limitées. Étant donné que le même noyau est partagé sur l'ensemble de l'image (partage de paramètres), le modèle nécessite beaucoup moins de mémoire que les anciennes architectures entièrement connectées. Cette efficacité permet aux modèles avancés de fonctionner sur des smartphones et des appareils IoT.
Pour les équipes qui souhaitent exploiter ces opérations pour des ensembles de données personnalisés, Ultralytics offre un environnement fluide pour annoter des images et former des modèles basés sur la convolution sans avoir à gérer une infrastructure complexe. En utilisant l' apprentissage par transfert, vous pouvez affiner les poids convolutifs pré-entraînés afin de reconnaître de nouveaux objets avec un minimum de données d'entraînement.