Anchor-Free Detectors
Ankerfreie Detektoren sagen Rahmen anhand von Punkten oder Schlüsselpunkten voraus, ohne vorab festgelegte Ankerrahmen. So finden FCOS, CenterNet und moderne YOLO-Modelle Objekte.
Ankerfreie Modelle zur Objekterkennung sagen jede Begrenzungsbox direkt anhand eines Punkts auf einer Feature-Map oder anhand von Schlüsselpunkten wie den Ecken oder dem Mittelpunkt eines Objekts vorher – ohne vordefinierte Ankerboxen. Eine Position nahe einem Objekt sagt die Abstände von sich selbst zu den vier Kanten des Objekts vorher. Alternativ markiert ein Maximum in einer Heatmap den Mittelpunkt des Objekts, und das Netzwerk regressiert Breite und Höhe. Dadurch entfallen die Ankergrößen, Seitenverhältnisse und Schwellenwerte für die Zuordnung von Ankern, die ankerbasierte Detektoren für jeden Datensatz abstimmen müssen. Ankerfreie Erkennungsköpfe sind zum Standardaufbau für die Echtzeiterkennung geworden.
So funktioniert die ankerfreie Erkennung#
Ankerfreie Detektoren lassen sich in zwei Familien einteilen:
- Punktbasierte Detektoren wie FCOS: Jede Zelle jeder Feature-Map-Ebene ist ein Kandidat. FCOS (2019) sagt für jede Position innerhalb eines Objekts Klassenwerte und vier Abstände zu den linken, oberen, rechten und unteren Kanten vorher. Hinzu kommt ein Zentriertheitswert, der Boxen geringer gewichtet, wenn sie anhand von Punkten weit vom Objektmittelpunkt vorhergesagt wurden.
- Schlüsselpunktbasierte Detektoren wie CornerNet und CenterNet: CornerNet (2018) sagt Heatmaps der oberen linken und unteren rechten Ecken vorher und ordnet die zu demselben Objekt gehörenden Ecken anhand erlernter Einbettungen einander zu. CenterNet sagt eine Heatmap der Objektmittelpunkte vorher und regressiert Breite und Höhe an jedem Maximum. Maxima werden mit einer 3 × 3-Max-Pooling-Operation extrahiert, sodass keine IoU-basierte Nicht-Maximum-Unterdrückung (NMS) nötig ist.
Ankerfreie Vorhersagen gab es in der YOLO-Reihe schon vor Ankerboxen: YOLOv1 sagte 2015 Boxen direkt anhand der Gitterzelle voraus, die den Mittelpunkt jedes Objekts enthält. Ankerboxen erhöhten den Recall in YOLOv2 von 81 % auf 88 %, kosteten aber 0,3 Punkte mAP. YOLOX brachte 2021 das dichte punktbasierte Design zurück zu YOLO. 2023 wechselte Ultralytics in YOLOv8 von den Ankerboxen aus YOLOv5 zu einem ankerfreien Kopf. Dadurch benötigen benutzerdefinierte Datensätze keine Anpassung der Ankerboxen mehr. YOLO26 behält diesen Aufbau bei.
Zum Dekodieren einer dichten ankerfreien Vorhersage genügen die Position der Zelle und die vier vorhergesagten Abstände:
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})")Der Punkt bei (168, 104) wird zur Box (136, 48, 192, 168), die 56 Pixel breit und 120 Pixel hoch ist. Ein dichter Kopf dekodiert jede Zelle jeder Pyramidenebene auf diese Weise, sodass jede Zelle einen Boxenkandidaten liefert.
Festlegen, welche Punkte für jedes Objekt lernen#
Da es keine Ankerboxen gibt, die anhand der Schnittmenge über Vereinigung (IoU) mit beschrifteten Boxen verglichen werden können, braucht ein ankerfreier Detektor eine andere Regel, um positive Trainingsbeispiele auszuwählen. FCOS verwendet Position und Größe: Ein Punkt ist positiv, wenn er innerhalb einer beschrifteten Box liegt und sein größter Abstand zu deren Kanten in den Bereich der jeweiligen Pyramidenebene fällt. Dieser beträgt auf der Ebene mit Schrittweite 8 zwischen 0 und 64 Pixeln, bei Schrittweite 16 zwischen 64 und 128 Pixeln und so weiter bis zur Schrittweite 128.
Spätere Detektoren wählen positive Beispiele adaptiv aus. ATSS zeigte, dass der Genauigkeitsunterschied zwischen dem ankerbasierten RetinaNet und dem ankerfreien FCOS hauptsächlich darauf zurückzuführen war, wie beide positive und negative Beispiele definierten. Bei derselben Auswahlregel brachte das Anordnen mehrerer Ankerboxen pro Position keinen Vorteil. Die auf die Aufgabe abgestimmte Zuordnung, eingeführt von TOOD und übernommen von PP-YOLOE und vielen späteren Echtzeitdetektoren, ordnet die Punkte innerhalb jedes Objekts anhand des gewichteten Produkts aus vorhergesagtem Klassenwert und Box-IoU und behält die besten davon als positive Beispiele.
Ankerfreie und ankerbasierte Detektoren#
- Weniger Hyperparameter: Ankergrößen, Seitenverhältnisse und IoU-Schwellenwerte für die Zuordnung müssen nicht für jeden Datensatz angepasst werden. Bei ankerbasierten Detektoren erfolgt dieser Schritt oft durch eine k-Means-Clusteranalyse der Trainingsboxen.
- Flexible Formen: Die punktbasierte Zuordnung hängt nur davon ab, wo ein Objekt liegt. Daher erhält auch ein Objekt, dessen Form keiner Ankerbox ähnelt, etwa ein langes, dünnes Rohr, positive Beispiele.
- Einheitliche Begriffe: Viele Codebasen für ankerfreie Detektoren bezeichnen ihre Gitterpunkte weiterhin als „Ankerpunkte“. Gemeint ist damit eine Position ohne Größe oder Seitenverhältnis.
- Weniger Vorhersagen: Jede Position sagt eine Box statt einer Box pro Ankerform voraus. Dadurch müssen Dekodierung und NMS mehrmals weniger Kandidaten verarbeiten. Die 9 Ankerboxen pro Position von RetinaNet ergeben etwa 100.000 Kandidaten pro Bild.










