Découvrez comment les boîtes d'ancrage servent de modèles de référence pour la détection d'objets. Découvrez comment elles améliorent la précision et comment des modèles tels que Ultralytics utilisent des conceptions sans ancrage.
Les boîtes d'ancrage sont des rectangles de référence prédéfinis, avec des proportions et des échelles spécifiques, qui sont placés sur une image pour aider les modèles de détection d'objets à localiser et à classer les objets. Plutôt que de demander à un réseau neuronal de prédire la taille et la position exactes d'un objet à partir de zéro, ce qui peut être instable en raison de la grande variété de formes des objets , le modèle utilise ces modèles fixes comme point de départ. En apprenant à prédire dans quelle mesure ajuster, ou « régresser », ces boîtes initiales pour les adapter à la réalité, le système peut atteindre une convergence plus rapide et une plus grande précision. Cette technique a fondamentalement transformé le domaine de la vision par ordinateur (CV) en simplifiant la tâche complexe de localisation pour en faire un problème d'optimisation plus facile à gérer.
Dans les détecteurs classiques basés sur des ancres, l' image d'entrée est divisée en une grille de cellules. À chaque emplacement de cellule, le réseau génère plusieurs boîtes d'ancrage avec des géométries différentes. Par exemple, pour detect simultanément detect piéton de grande taille et une voiture large, le modèle peut proposer une boîte haute et étroite et une boîte courte et large au même point central.
Pendant l'entraînement du modèle, ces ancres sont comparées à des objets réels à l'aide d'une métrique appelée Intersection over Union (IoU). Les ancres qui chevauchent de manière significative un objet étiqueté sont désignées comme des échantillons « positifs ». Le réseau apprend alors deux tâches parallèles :
Cette approche permet au modèle de traiter plusieurs objets de tailles différentes situés à proximité les uns des autres, car chaque objet peut être assigné à l'ancrage qui correspond le mieux à sa forme.
Bien que les architectures plus récentes s'orientent vers des conceptions sans ancrage, les boîtes d'ancrage restent essentielles dans de nombreux systèmes de production établis où les caractéristiques des objets sont prévisibles.
Il est important de faire la distinction entre les méthodes traditionnelles basées sur des ancres et les détecteurs modernes sans ancres.
Bien que les API modernes de haut niveau telles que la Ultralytics masquent ces détails pendant l'entraînement, il est utile de comprendre les ancres lorsque l'on travaille avec des architectures de modèles plus anciennes ou que l'on analyse des fichiers de configuration de modèles. L'extrait suivant montre comment charger un modèle et inspecter sa configuration, où les paramètres d'ancrage (le cas échéant) sont généralement définis.
from ultralytics import YOLO
# Load a pre-trained YOLO model (YOLO26 is anchor-free, but legacy configs act similarly)
model = YOLO("yolo26n.pt")
# Inspect the model's stride, which relates to grid cell sizing in detection
print(f"Model strides: {model.model.stride}")
# For older anchor-based models, anchors might be stored in the model's attributes
# Modern anchor-free models calculate targets dynamically without fixed boxes
if hasattr(model.model, "anchors"):
print(f"Anchors: {model.model.anchors}")
else:
print("This model architecture is anchor-free.")
Bien qu'efficaces, les boîtes d'ancrage introduisent une certaine complexité. Le grand nombre d'ancres générées (souvent des dizaines de milliers par image) crée un problème de déséquilibre des classes, car la plupart des ancres ne couvrent que l'arrière-plan. Des techniques telles que la perte focale sont utilisées pour atténuer ce problème en réduisant le poids des exemples d'arrière-plan faciles. De plus, le résultat final nécessite généralement une suppression non maximale (NMS) pour filtrer les boîtes redondantes qui se chevauchent, afin de ne conserver que la détection la plus fiable pour chaque objet.