Feature Maps
Explore comment les cartes de caractéristiques agissent comme les yeux des CNN. Apprends comment Ultralytics YOLO26 utilise ces représentations internes pour détecter des modèles et alimenter la vision par ordinateur.
Une carte de caractéristiques est la sortie fondamentale produite lorsqu'un convolutional filter traite une image d'entrée ou une couche précédente au sein d'un réseau de neurones. Dans le contexte de la computer vision (CV), ces cartes servent de représentation interne des données, mettant en valeur 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 agissent comme les « yeux » d'un Convolutional Neural Network (CNN), transformant des valeurs de pixels brutes en abstractions significatives qui facilitent des tâches telles que object detection et la classification.
Le mécanisme derrière les cartes de caractéristiques#
La création d'une carte de caractéristiques est pilotée par l'opération mathématique connue sous le nom de convolution. Au cours de ce processus, une petite matrice de paramètres ajustables, appelée noyau ou filtre, glisse sur les données d'entrée. À chaque position, le noyau effectue une multiplication élément par élément et une sommation, ce qui donne une valeur unique dans la grille de sortie.
- Activation de motifs : Chaque filtre est entraîné pour rechercher une caractéristique spécifique. Lorsque le filtre rencontre cette caractéristique dans l'entrée, la valeur résultante dans la carte de caractéristiques est élevée, indiquant une forte activation.
- Hiérarchie spatiale : Dans les architectures de deep learning (DL), les cartes de caractéristiques sont organisées de manière hiérarchique. Les premières couches produisent des cartes qui détectent des détails de bas niveau comme les lignes et les courbes d'edge detection. 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.
- Changements de dimensionnalité : Au fur et à mesure que les données progressent dans le réseau, des opérations telles que les pooling layers réduisent généralement les dimensions spatiales (hauteur et largeur) des cartes de caractéristiques tout en augmentant la profondeur (nombre de canaux). Ce processus, souvent appelé dimensionality reduction, aide le modèle à se concentrer sur la présence de caractéristiques plutôt que sur leur emplacement exact en pixels.
Applications concrètes#
Les cartes de caractéristiques sont le moteur des applications IA modernes, permettant aux systèmes d'interpréter les données visuelles avec une compréhension proche de celle de l'humain.
- Diagnostics médicaux : Dans l'medical image analysis, les modèles utilisent des cartes de caractéristiques pour traiter des radiographies ou des examens IRM. Les cartes initiales peuvent mettre en évidence les contours des os, tandis que les cartes plus profondes identifient des anomalies telles que des tumeurs ou des fractures, aidant les médecins dans des scénarios d'AI in healthcare.
- Navigation autonome : Les voitures autonomes dépendent fortement des cartes de caractéristiques générées par les capteurs visuels. Ces cartes permettent à l'ordinateur de bord du véhicule de distinguer les voies, les piétons et les panneaux de signalisation en temps réel, ce qui est crucial pour que les autonomous vehicles fonctionnent en toute sécurité.
Travailler avec les cartes de caractéristiques en Python#
Bien que les cartes de caractéristiques soient des structures internes, comprendre leurs dimensions est crucial lors de la conception d'architectures. L'exemple PyTorch suivant montre comment une seule couche de convolution transforme une image d'entrée en une 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}")Distinguer les concepts apparentés#
Il est utile de distinguer les cartes de caractéristiques de termes similaires pour éviter toute confusion lors de la model training :
- Carte de caractéristiques vs. Filtre : Un filtre (ou noyau) est l'outil utilisé pour balayer l'image ; il contient les model weights. La carte de caractéristiques est le résultat de ce balayage. Tu peux voir le filtre comme la « lentille » et la carte de caractéristiques comme l'« image » capturée à travers cette lentille.
- Carte de caractéristiques vs. Embedding : 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 semantic segmentation. En revanche, les embeddings sont généralement des vecteurs 1D aplatis qui capturent un sens sémantique mais abandonnent la disposition spatiale, souvent utilisés dans des tâches de similarity search.
- Carte de caractéristiques vs. Activation : Une activation function (comme ReLU) est appliquée aux valeurs d'une carte de caractéristiques pour introduire de la non-linéarité. La carte existe à la fois avant et 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 pivot dans le « backbone » et la « head » du modèle. Le backbone extrait des caractéristiques à différentes échelles (pyramide de caractéristiques), garantissant que le modèle peut détecter efficacement les petits et grands objets. Les utilisateurs qui exploitent l'Ultralytics Platform pour l'entraînement peuvent visualiser la performance de ces modèles, observant indirectement l'efficacité des cartes de caractéristiques sous-jacentes à travers des métriques telles que l'accuracy et le rappel. L'optimisation de ces cartes implique un entraînement approfondi sur des jeux de données annotés, utilisant souvent des techniques telles que la feature extraction pour transférer les connaissances de modèles pré-entraînés vers de nouvelles tâches.






