Anchor-Free Detectors
Les détecteurs sans ancres prédisent les boîtes à partir de points ou de points clés, sans boîtes d’ancrage prédéfinies. Comment FCOS, CenterNet et les modèles YOLO modernes détectent les objets.
Les détecteurs sans ancres sont des modèles de détection d'objets qui prédisent directement chaque boîte englobante à partir d'un point d'une carte de caractéristiques, ou de points clés comme les coins ou le centre d'un objet, sans utiliser d'ensemble de boîtes d'ancrage prédéfinies. Un emplacement proche d'un objet prédit les distances qui le séparent des quatre bords de l'objet, ou un pic de carte thermique marque le centre d'un objet et le réseau estime sa largeur et sa hauteur par régression. Cela supprime les tailles d'ancre, les rapports d'aspect et les seuils d'association des ancres que les détecteurs fondés sur des ancres doivent régler pour chaque jeu de données ; les têtes sans ancres sont devenues l'architecture standard de la détection en temps réel.
Fonctionnement de la détection sans ancres#
Les détecteurs sans ancres appartiennent à deux familles :
- Détecteurs fondés sur des points, comme FCOS : Chaque cellule de chaque niveau de carte de caractéristiques est un candidat. FCOS (2019) prédit, à chaque emplacement situé dans un objet, les scores de classe et quatre distances jusqu'aux bords gauche, supérieur, droit et inférieur, ainsi qu'un score de centralité qui réduit le poids des boîtes prédites à partir de points éloignés du centre de l'objet.
- Détecteurs fondés sur des points clés, comme CornerNet et CenterNet : CornerNet (2018) prédit des cartes thermiques des coins supérieur gauche et inférieur droit, puis associe les coins d'un même objet à l'aide d'incorporations apprises. CenterNet prédit une carte thermique des centres des objets et estime leur largeur et leur hauteur par régression à chaque pic. Il extrait les pics par une opération de max-pooling 3 × 3 et n'a donc pas besoin d'une suppression non maximale (NMS) fondée sur l'IoU.
La prédiction sans ancres est également antérieure aux ancres dans la famille YOLO : YOLOv1, en 2015, prédisait directement les boîtes à partir de la cellule de la grille contenant le centre de chaque objet. L'ajout de boîtes d'ancrage dans YOLOv2 a fait passer le rappel de 81 % à 88 %, au prix d'une baisse de 0,3 point de mAP. YOLOX a réintroduit la conception dense fondée sur des points dans YOLO en 2021, et Ultralytics est passé des ancres de YOLOv5 à une tête sans ancres dans YOLOv8 en 2023. Les jeux de données personnalisés n'ont ainsi plus besoin d'une étape d'ajustement des ancres ; YOLO26 conserve cette architecture.
Le décodage d'une prédiction dense sans ancres ne nécessite que la position de la cellule et les quatre distances prédites :
import torch
# Center of the grid cell at column 10, row 6 of a stride-16 feature map, in image pixels
stride = 16
point = (torch.tensor([10.0, 6.0]) + 0.5) * stride
# Distances the head predicts from that point to the left, top, right, and bottom box edges, in strides
ltrb = torch.tensor([2.0, 3.5, 1.5, 4.0]) * stride
# Anchor-free decoding: no template box, only the point and four distances
x1, y1 = point - ltrb[:2]
x2, y2 = point + ltrb[2:]
print(f"point {point.tolist()} -> box ({x1:.0f}, {y1:.0f}, {x2:.0f}, {y2:.0f})")Le point en (168, 104) devient la boîte (136, 48, 192, 168), large de 56 pixels et haute de 120 pixels. Une tête dense applique ce décodage à chaque cellule de chaque niveau pyramidal, de sorte que chaque cellule produit une boîte candidate.
Choix des points qui apprennent chaque objet#
Sans ancres à comparer aux boîtes annotées par intersection sur union (IoU), un détecteur sans ancres a besoin d'une autre règle pour déterminer quels points sont des exemples positifs d'entraînement. FCOS s'appuie sur la position et la taille : un point est positif s'il se trouve à l'intérieur d'une boîte annotée et si sa distance la plus grande jusqu'aux bords de cette boîte correspond à l'intervalle du niveau pyramidal du point : de 0 à 64 pixels au niveau de stride 8, de 64 à 128 au niveau de stride 16, et ainsi de suite jusqu'au niveau de stride 128.
Les détecteurs ultérieurs sélectionnent les exemples positifs de manière adaptative. ATSS a montré que l'écart de précision entre RetinaNet, fondé sur des ancres, et FCOS, qui n'en utilise pas, provenait principalement de la manière dont chacun définissait les exemples positifs et négatifs. Il a également montré que, lorsque la même règle d'échantillonnage était utilisée, répartir plusieurs ancres par emplacement n'apportait aucun gain. L'assignation alignée sur la tâche, introduite par TOOD et adoptée par PP-YOLOE ainsi que par de nombreux détecteurs en temps réel ultérieurs, classe les points situés dans chaque objet selon le produit pondéré du score de classe prédit et de l'IoU de la boîte, puis conserve les quelques meilleurs comme exemples positifs.
Détecteurs sans ancres ou avec ancres#
- Moins d'hyperparamètres : Il n'est pas nécessaire d'ajuster les tailles d'ancre, les rapports d'aspect ou les seuils d'association IoU à chaque jeu de données ; les détecteurs fondés sur des ancres effectuent souvent cette étape avec le regroupement k-means des boîtes d'entraînement.
- Flexibilité des formes : L'assignation fondée sur des points ne dépend que de la position d'un objet. Un objet dont la forme ne ressemble à aucune ancre, comme un tuyau long et fin, reçoit donc quand même des exemples positifs.
- Vocabulaire partagé : De nombreuses bases de code sans ancres appellent toujours leurs points de grille « points d'ancrage », c'est-à-dire des emplacements dépourvus de taille ou de rapport d'aspect.
- Moins de prédictions : Chaque emplacement prédit une boîte au lieu d'une boîte par forme d'ancre. Le décodage et la NMS traitent donc plusieurs fois moins de candidats ; les 9 ancres par emplacement de RetinaNet représentent environ 100 000 candidats par image.










