Découvrez comment les cartes de caractéristiques agissent comme les yeux des CNN. Apprenez comment Ultralytics utilise ces représentations internes pour detect et alimenter la vision par ordinateur.
Une carte de caractéristiques est le résultat fondamental produit lorsqu'un filtre convolutif 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, mettant en évidence des motifs spécifiques tels que les contours, les textures ou les 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 réseau neuronal convolutif (CNN), transformant les valeurs brutes des pixels en abstractions significatives qui facilitent des tâches telles que la détection et la classification d'objets.
La création d'une carte de caractéristiques est guidée par l'opération mathématique connue sous le nom de convolution. Au cours de ce processus, une petite matrice de paramètres apprenables, appelée noyau ou filtre, glisse sur les données d'entrée. À chaque position, le noyau effectue une multiplication et une sommation élément par élément, ce qui donne une valeur unique dans la grille de sortie.
Les cartes de caractéristiques sont le moteur des applications d'IA modernes, permettant aux systèmes d'interpréter les données visuelles avec une compréhension similaire à celle de l'être humain .
Bien que les cartes de caractéristiques soient des structures internes, il est essentiel de comprendre leurs dimensions lors de la conception d'architectures. Ce qui suit PyTorch illustre comment une seule couche convolutive 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}")
Il est utile de distinguer les cartes de caractéristiques des termes similaires afin d'éviter toute confusion pendant l' entraînement du modèle:
Dans les architectures avancées telles que YOLO26, les cartes de caractéristiques jouent un rôle central dans la « colonne vertébrale » et la « tête » du modèle. La colonne vertébrale extrait des caractéristiques à différentes échelles (pyramide de caractéristiques), garantissant detect le modèle peut detect efficacement detect petits detect grands objets. Les utilisateurs qui exploitent la Ultralytics pour la formation peuvent visualiser les performances de ces modèles, observant indirectement l'efficacité des cartes de caractéristiques sous-jacentes grâce à des mesures telles que la précision et le rappel. L'optimisation de ces cartes implique une formation approfondie sur des ensembles de données annotés, utilisant souvent des techniques telles que l' extraction de caractéristiques pour transférer les connaissances des modèles pré-formés vers de nouvelles tâches.