Feature Maps
Découvrez comment les cartes de caractéristiques alimentent les modèlesYOLO d'Ultralytics , permettant une détection précise des objets et des applications d'IA avancées telles que la conduite autonome.
Une carte de caractéristiques est le résultat fondamental généré lorsqu'un filtre convolutionnel agit sur une image ou une carte d'entrée.
filtre convolutif agit sur une image d'entrée ou sur une
une autre carte de caractéristiques au sein d'un
réseau neuronal convolutif (CNN). Dans le contexte de la vision par ordinateur (VA), ces
Ces cartes agissent comme les "yeux" d'un réseau neuronal, soulignant la présence et l'emplacement des caractéristiques apprises, telles que les bords, les textures, les couleurs et les couleurs.
caractéristiques apprises telles que les bords, les textures, les coins ou les formes géométriques complexes. En transformant les données brutes des pixels en
en abstractions significatives, les cartes de caractéristiques permettent à des modèles sophistiqués d'effectuer des tâches allant de la classification d'images au traitement en temps réel des images.
la classification d'images à la détection d'objets
détection d'objets en temps réel.
Comment les Feature Maps sont-elles créées ?
La génération d'une carte de caractéristiques implique un processus mathématique connu sous le nom de
convolution. Une matrice spécialisée de
de poids apprenables, appelée noyau ou filtre, glisse sur les données d'entrée.
sur les données d'entrée. À chaque position, le noyau effectue une multiplication et une sommation par élément, produisant une valeur unique dans la matrice de sortie.
une valeur unique dans la matrice de sortie.
-
Activation: Les valeurs obtenues passent généralement par une
fonction d'activation telle que ReLU, qui
qui introduit une non-linéarité, permettant au réseau d'apprendre des modèles complexes.
-
Préservation de l'espace: Contrairement aux couches entièrement connectées, les cartes d'entités préservent les relations spatiales,
c'est-à-dire qu'une valeur élevée à une coordonnée spécifique correspond à un élément détecté à la même position relative dans l'image originale.
l'image originale.
-
Profondeur: Une seule couche convolutive utilise souvent plusieurs filtres, empilant les tableaux 2D qui en résultent pour former un volume 3D de cartes de caractéristiques, souvent visualisé dans les images.
pour former un volume 3D de cartes de caractéristiques, souvent visualisées dans des diagrammes d'architecture d'apprentissage profond.
diagrammes d'architecture d'apprentissage profond (DL).
Apprentissage hiérarchique des caractéristiques
Les architectures modernes, telles que le
ResNet utilisé dans de nombreux systèmes,
tirent parti de la nature hiérarchique des cartes de caractéristiques. Au fur et à mesure que les données progressent dans le réseau, le niveau d'abstraction
augmente :
-
Couches superficielles: Les premières cartes d'entités capturent des détails de bas niveau, tels que des lignes verticales, des dégradés de couleurs ou des courbes simples.
gradients de couleur ou des courbes simples. Ces détails constituent la base de la
perception visuelle.
-
Couches profondes: Plus profondément dans le réseau, ces éléments de base sont combinés. Les cartes qui en résultent représentent des
concepts sémantiques de haut niveau, tels que la forme d'une roue de voiture ou le visage d'un chien. Cette hiérarchie est essentielle pour
la performance des modèles de pointe tels que YOLO11,
leur permettant de distinguer des classes similaires avec une
avec une grande précision.
Visualisation de l'intelligence du réseau
Les développeurs visualisent souvent des cartes de caractéristiques pour interpréter ce qu'un modèle a appris, une pratique clé de l'IA explicable (XAI).
l 'IA explicable (XAI). Des outils comme
TensorBoard permettent aux ingénieurs d'inspecter ces
états internes. Si une carte de caractéristiques destinée à detect voitures s'active sur des arbres en arrière-plan, cela indique que le modèle s'ajuste trop au bruit.
peut être surajouté au bruit. Cette inspection est essentielle pour le débogage et l'amélioration de la robustesse du modèle.
la robustesse du modèle.
Le code Python suivant montre comment accéder aux dimensions d'une carte d'entités à l'aide de la fonction ultralytics bibliothèque
en enregistrant un crochet sur une couche convolutive.
from ultralytics import YOLO
# Load the YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Define a hook to print the shape of the feature map from the first layer
def hook_fn(module, input, output):
print(f"Feature Map Output Shape: {output.shape}")
# Register the hook to the first convolutional layer of the model
model.model.model[0].register_forward_hook(hook_fn)
# Run inference on a dummy image to trigger the hook
model("https://ultralytics.com/images/bus.jpg")
Applications concrètes
Les cartes d'entités sont le moteur de nombreuses technologies de transformation :
-
Véhicules autonomes: Dans les
systèmes de conduite autonome, tels que ceux
développés par Waymo, les cartes de caractéristiques traitent les flux des caméras afin d'identifier les marquages de voies, les piétons et les panneaux de signalisation,
les piétons et les panneaux de signalisation. La fidélité spatiale de ces cartes permet au véhicule de savoir non seulement ce qui se trouve sur la route, mais aussi où cela se trouve par rapport aux autres véhicules.
ce qu' il y a sur la route, mais aussi l 'endroit exact où il se trouve par rapport à la voiture.
-
Diagnostic médical: Dans l'analyse
l'analyse d'images médicales, les modèles d'apprentissage profond
d'apprentissage profond analysent les IRM ou les tomodensitogrammes. Les cartes de caractéristiques de ces réseaux sont entraînées à mettre en évidence des anomalies telles que des tumeurs ou des fractures.
fractures. Les recherches publiées dans des revues telles que Nature Medicine démontrent
comment ces activations spécifiques peuvent aider les radiologues en signalant les régions d'intérêt avec une grande précision.
Distinguer les concepts apparentés
Pour bien comprendre les architectures de réseaux neuronaux, il est utile de différencier les cartes de caractéristiques des termes apparentés :
-
Cartes de caractéristiques et extraction de caractéristiques:
L'extraction de caractéristiques est le processus
processus global consistant à dériver des données informatives à partir d'entrées brutes. La carte des caractéristiques est la structure de données spécifique résultant de ce processus au sein d'une couche CNN.
structure de données spécifique résultant de ce processus au sein d'une couche CNN.
-
Cartes d'entités vs. enregistrements: Alors que les cartes de caractéristiques conservent des dimensions spatiales (hauteur et largeur),
les embeddings sont généralement des vecteurs aplatis, de dimension
dimensions inférieures. Les embeddings représentent l'essence sémantique d'une image ou d'un objet entier.
recherche de similarités dans une
dans une base de données vectorielles, tandis que les
pour les tâches nécessitant une localisation spatiale
la segmentation d'images.