Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Convolution

La convolution fait glisser un petit noyau de poids sur une entrée pour produire une carte de caractéristiques, l’opération centrale des CNN. Découvre le pas, le padding et les variantes.

La convolution consiste à faire glisser une petite grille de poids, appelée noyau ou filtre, sur une entrée et à calculer une somme pondérée à chaque position. En vision par ordinateur (CV), l'entrée est une image ou une pile de cartes de caractéristiques, et chaque noyau produit une carte de sortie dont les valeurs sont élevées là où son motif apparaît : un bord vertical, une zone texturée ou, plus profondément dans un réseau, une partie de roue ou de visage. Les noyaux conçus à la main sont utilisés depuis longtemps en traitement d'images pour le flou, l'accentuation et la détection de contours. Dans un réseau neuronal convolutif (CNN), les valeurs du noyau sont des poids du modèle appris pendant l'entraînement ; le réseau découvre ainsi ses propres détecteurs de caractéristiques.

Fonctionnement de la convolution#

À chaque position, le noyau est appliqué à une zone de l'entrée ; chaque poids du noyau est multiplié par la valeur d'entrée située en dessous, puis les produits sont additionnés, avec un biais, pour obtenir une valeur de sortie. Le déplacement du noyau sur toute la hauteur et toute la largeur produit une carte de sortie bidimensionnelle. Les entrées réelles comportent plusieurs canaux, comme les canaux rouge, vert et bleu d'une image ; chaque noyau s'étend donc sur tous les canaux d'entrée : un noyau 3×3 appliqué à une entrée de 64 canaux contient 3 × 3 × 64 = 576 poids et produit toujours un seul canal de sortie. Une couche convolutive applique plusieurs noyaux de ce type, et leur nombre détermine celui des canaux de sortie ; une couche passant de 64 à 128 canaux avec des noyaux 3×3 contient donc 3 × 3 × 64 × 128 = 73 728 poids.

Le même noyau est réutilisé à chaque position ; les couches convolutives ont donc beaucoup moins de paramètres que les couches entièrement connectées, et un motif appris dans un coin de l'image est reconnu partout ailleurs. Le décalage de l'entrée entraîne le même décalage de la sortie : cette propriété s'appelle l'équivariance par translation. Chaque valeur de sortie dépend uniquement d'un petit voisinage de l'entrée, et l'empilement des couches élargit le champ réceptif résumé par une valeur de sortie profonde, de quelques pixels à presque toute l'image.

Les bibliothèques d'apprentissage profond calculent en réalité une corrélation croisée : la convolution mathématique inverse le noyau avant de le faire glisser, contrairement à Conv2d de PyTorch. Comme le noyau est appris, le réseau apprend simplement les poids inversés ; en pratique, les deux opérations sont donc interchangeables. Les bibliothèques GPU, comme cuDNN, reformulent généralement la convolution sous forme de multiplication de grandes matrices ou utilisent des algorithmes de Winograd ou fondés sur la FFT, qui calculent le même résultat plus rapidement que le déplacement littéral du noyau.

Pas, remplissage, dilatation et groupes#

Quatre hyperparamètres déterminent la forme de la sortie d'une convolution et le coût de son calcul :

  • Pas : Distance entre les positions successives du noyau. Un pas de 2 saute une position sur deux et réduit de moitié la hauteur et la largeur de la sortie ; c'est ainsi que de nombreux CNN modernes effectuent le sous-échantillonnage.
  • Remplissage : Valeurs supplémentaires, généralement des zéros, ajoutées autour du bord de l'entrée. Un remplissage de 1 conserve la même taille pour la sortie d'une convolution 3×3 que pour son entrée, avec un pas de 1.
  • Dilatation : Espace les points d'application du noyau ; un noyau 3×3 avec une dilatation de 2 couvre ainsi une zone de 5×5 avec les mêmes neuf poids, ce qui élargit le champ réceptif sans coût supplémentaire.
  • Groupes : Divise les canaux en groupes indépendants. Avec un groupe par canal, une convolution en profondeur filtre chaque canal séparément ; une convolution ponctuelle 1×1 qui suit mélange les canaux. Cette paire, appelée convolution séparable en profondeur, a été popularisée par MobileNets pour le matériel mobile.

Pour une entrée de taille n, une taille de noyau k, un remplissage p, un pas s et une dilatation d, la taille de sortie est ⌊(n + 2p − d(k − 1) − 1) / s⌋ + 1. L'extrait ci-dessous applique quatre couches qui transforment chacune une carte de caractéristiques de 64 canaux et de 80×80 en 128 canaux :

import torch
from torch import nn

x = torch.randn(1, 64, 80, 80)  # a 64-channel, 80x80 feature map

# Four ways to map 64 input channels to 128 output channels
layers = {
    "standard 3x3": nn.Conv2d(64, 128, kernel_size=3, padding=1, bias=False),
    "stride 2": nn.Conv2d(64, 128, kernel_size=3, stride=2, padding=1, bias=False),
    "dilation 2": nn.Conv2d(64, 128, kernel_size=3, padding=2, dilation=2, bias=False),
    "depthwise separable": nn.Sequential(
        nn.Conv2d(64, 64, kernel_size=3, padding=1, groups=64, bias=False),  # one 3x3 filter per channel
        nn.Conv2d(64, 128, kernel_size=1, bias=False),  # 1x1 convolution mixes channels
    ),
}
for name, layer in layers.items():
    params = sum(p.numel() for p in layer.parameters())
    print(f"{name}: output {tuple(layer(x).shape)}, {params:,} weights")

La couche standard produit (1, 128, 80, 80) avec 73 728 poids. Un pas de 2 réduit la sortie de moitié, à (1, 128, 40, 40), avec le même nombre de poids ; une dilatation de 2 conserve les dimensions 80×80 et les 73 728 poids, tandis que chaque sortie couvre une zone de 5×5. La paire séparable en profondeur produit la même sortie (1, 128, 80, 80) avec seulement 8 768 poids, soit environ 8,4 fois moins. YOLO26 utilise les deux approches : cinq convolutions 3×3 de pas 2 réduisent une image 640×640 à la grille 20×20 de la carte de caractéristiques la plus profonde de son backbone, et la branche de classification de sa tête de détection associe des convolutions 3×3 en profondeur et 1×1 ponctuelles pour réduire le calcul.

Convolution dans d'autres dimensions#

  • Convolution 1D : Se déplace le long d'un seul axe pour traiter les formes d'onde audio, les signaux de capteurs et les séries temporelles.
  • Convolution 3D : Ajoute un axe de profondeur ou de temps pour traiter des séquences vidéo et des examens volumiques, comme les scanners CT et IRM en analyse d'images médicales.
  • Convolution transposée : Répartit chaque valeur d'entrée sur une sortie plus grande et suréchantillonne les cartes de caractéristiques dans les modèles de segmentation comme U-Net. Elle rétablit la taille spatiale réduite par une convolution à pas, à l'aide de ses propres poids appris.
  • Couche entièrement connectée : Relie chaque entrée à chaque sortie avec un poids qui lui est propre. Une convolution est une couche entièrement connectée restreinte à des voisinages locaux, avec des poids partagés entre les positions.
  • Mise en commun : Fait glisser une fenêtre comme une convolution, mais applique une règle fixe, par exemple prendre la valeur maximale, sans poids appris.
  • Auto-attention : Calcule des poids dépendant des données entre chaque paire de positions, ce qui lui permet de relier des parties éloignées d'une image en une seule couche. Une convolution applique le même noyau fixe partout et ne voit qu'une fenêtre locale, ce qui maintient son coût linéaire par rapport au nombre de pixels.
  • Filtrage d'images : Les filtres classiques comme le flou gaussien et le détecteur de contours de Sobel sont des convolutions à noyaux fixes conçus à la main. filter2D d'OpenCV calcule aussi une corrélation, comme les bibliothèques d'apprentissage profond ; l'inversion du noyau permet d'obtenir une véritable convolution.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique