Feature Maps
Explore comment les cartes de caractéristiques servent d’yeux aux CNN. Découvre comment Ultralytics YOLO26 utilise ces représentations internes pour détecter des motifs et alimenter la vision par ordinateur.
Une carte de caractéristiques est la sortie fondamentale produite lorsqu’un filtre convolutionnel traite une image d’entrée ou une couche précédente au sein d’un réseau neuronal. Dans le contexte de la vision par ordinateur (CV), ces cartes servent de représentation interne des données et mettent en évidence des motifs spécifiques tels que des contours, des textures ou des formes géométriques complexes que le modèle a appris à reconnaître. Essentiellement, les cartes de caractéristiques font office d’« yeux » d’un réseau neuronal convolutionnel (CNN), en transformant les valeurs brutes des pixels en abstractions pertinentes qui facilitent des tâches telles que la détection d’objets et la classification.
Le mécanisme des cartes de caractéristiques#
La création d’une carte de caractéristiques repose sur l’opération mathématique appelée convolution. Au cours de ce processus, une petite matrice de paramètres apprenables, appelée noyau ou filtre, se déplace sur les données d’entrée. À chaque position, le noyau effectue une multiplication élément par élément suivie d’une sommation, ce qui produit une valeur unique dans la grille de sortie.
- Activation des motifs : Chaque filtre est entraîné à rechercher une caractéristique spécifique. Lorsque le filtre rencontre cette caractéristique dans l’entrée, la valeur obtenue dans la carte de caractéristiques est élevée, ce qui indique une forte activation.
- Hiérarchie spatiale : Dans les architectures de deep learning (DL), les cartes de caractéristiques sont organisées hiérarchiquement. Les premières couches produisent des cartes qui détectent des détails de bas niveau, comme les lignes et les courbes de détection des contours. Les couches plus profondes combinent ces cartes simples pour former des représentations de haut niveau d’objets complexes, tels que des visages ou des véhicules.
- Évolution des dimensions : À mesure que les données progressent dans le réseau, des opérations comme les couches de pooling réduisent généralement les dimensions spatiales (hauteur et largeur) des cartes de caractéristiques tout en augmentant leur profondeur (nombre de canaux). Ce processus, souvent appelé réduction de dimensionnalité, aide le modèle à se concentrer sur la présence des caractéristiques plutôt que sur leur emplacement exact dans les pixels.
Applications concrètes#
Les cartes de caractéristiques sont le moteur des applications modernes d’IA, car elles permettent aux systèmes d’interpréter les données visuelles avec une compréhension semblable à celle des humains.
- Diagnostic médical : Dans l’analyse d’images médicales, les modèles utilisent des cartes de caractéristiques pour traiter des radiographies ou des examens IRM. Les premières cartes peuvent mettre en évidence les contours des os, tandis que les cartes plus profondes identifient des anomalies comme des tumeurs ou des fractures, contribuant ainsi aux scénarios d’IA dans les soins de santé.
- Navigation autonome : Les voitures autonomes dépendent fortement des cartes de caractéristiques générées par des capteurs visuels. Ces cartes permettent à l’ordinateur embarqué du véhicule de distinguer en temps réel les voies, les piétons et les panneaux de signalisation, ce qui est essentiel pour que les véhicules autonomes fonctionnent en toute sécurité.
Utiliser les cartes de caractéristiques avec Python#
Même si les cartes de caractéristiques sont des structures internes, il est essentiel de comprendre leurs dimensions lors de la conception d’architectures. L’exemple suivant avec PyTorch montre comment une couche convolutionnelle unique transforme une image d’entrée en carte de caractéristiques.
import torch
import torch.nn as nn
# Define a convolution layer: 1 input channel, 1 output filter, 3x3 kernel
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, bias=False)
# Create a random dummy image (Batch Size=1, Channels=1, Height=5, Width=5)
input_image = torch.randn(1, 1, 5, 5)
# Pass the image through the layer to generate the feature map
feature_map = conv_layer(input_image)
print(f"Input shape: {input_image.shape}")
# The output shape will be smaller (3x3) due to the kernel size and no padding
print(f"Feature Map shape: {feature_map.shape}")Distinction entre concepts connexes#
Il est utile de distinguer les cartes de caractéristiques des termes similaires afin d’éviter toute confusion lors de l’entraînement du modèle :
- Carte de caractéristiques ou filtre : Un filtre (ou noyau) est l’outil utilisé pour parcourir l’image ; il contient les poids du modèle. La carte de caractéristiques est le résultat de ce parcours. Tu peux considérer le filtre comme la « lentille » et la carte de caractéristiques comme l’« image » capturée à travers cette lentille.
- Carte de caractéristiques ou plongement : Bien que les deux représentent des données, les cartes de caractéristiques conservent généralement des structures spatiales (hauteur et largeur) adaptées à la segmentation sémantique. En revanche, les plongements sont généralement des vecteurs unidimensionnels aplatis qui capturent la signification sémantique, mais abandonnent la disposition spatiale ; ils sont souvent utilisés pour les tâches de recherche par similarité.
- Carte de caractéristiques ou activation : Une fonction d’activation (comme ReLU) est appliquée aux valeurs d’une carte de caractéristiques afin d’introduire de la non-linéarité. La carte existe avant comme après cette opération mathématique.
Pertinence pour les modèles Ultralytics#
Dans les architectures avancées comme YOLO26, les cartes de caractéristiques jouent un rôle essentiel dans le « backbone » et la « tête » du modèle. Le backbone extrait des caractéristiques à différentes échelles (pyramide de caractéristiques), afin que le modèle puisse détecter efficacement les objets petits comme les grands. Les utilisateurs qui s’appuient sur la plateforme Ultralytics pour l’entraînement peuvent visualiser les performances de ces modèles et observer indirectement l’efficacité des cartes de caractéristiques sous-jacentes grâce à des métriques comme la précision et le rappel. L’optimisation de ces cartes nécessite un entraînement approfondi sur des jeux de données annotés, en utilisant souvent des techniques comme l’extraction de caractéristiques pour transférer les connaissances de modèles préentraînés vers de nouvelles tâches.









