Erfahren Sie, wie Ankerboxen als Referenzvorlagen für die Objekterkennung dienen. Entdecken Sie, wie sie die Genauigkeit verbessern und wie Modelle wie Ultralytics ankerfreie Designs nutzen.
Ankerboxen sind vordefinierte Referenzrechtecke mit bestimmten Seitenverhältnissen und Maßstäben, die über ein Bild gelegt werden , um Objektdetektionsmodelle bei der Lokalisierung und Klassifizierung von Objekten zu unterstützen. Anstatt ein neuronales Netzwerk zu beauftragen, die genaue Größe und Position eines Objekts von Grund auf vorherzusagen – was aufgrund der großen Vielfalt an Objektformen instabil sein kann –, verwendet das Modell diese festen Vorlagen als Ausgangspunkt. Indem das System lernt, vorherzusagen, um wie viel diese anfänglichen Boxen angepasst oder „regressiert” werden müssen, um der tatsächlichen Situation zu entsprechen, kann es eine schnellere Konvergenz und höhere Genauigkeit erzielen. Diese Technik hat den Bereich der Computervision (CV) grundlegend verändert, indem sie die komplexe Aufgabe der Lokalisierung zu einem besser handhabbaren Optimierungsproblem vereinfacht hat.
Bei klassischen ankerbasierten Detektoren wird das Eingabebild in ein Raster aus Zellen unterteilt. An jeder Zellenposition generiert das Netzwerk mehrere Ankerboxen mit unterschiedlichen Geometrien. Um beispielsweise gleichzeitig detect großen Fußgänger und ein breites Auto detect , könnte das Modell eine hohe, schmale Box und eine kurze, breite Box am gleichen Mittelpunkt vorschlagen.
Während des Modelltrainings werden diese Anker anhand einer Metrik namens Intersection over Union (IoU) mit tatsächlichen Objekten abgeglichen. Anker, die sich erheblich mit einem gekennzeichneten Objekt überschneiden, werden als „positive“ Beispiele bezeichnet. Das Netzwerk lernt dann zwei parallele Aufgaben:
Dieser Ansatz ermöglicht es dem Modell, mehrere Objekte unterschiedlicher Größe zu verarbeiten, die sich nahe beieinander befinden, da jedes Objekt dem Anker zugeordnet werden kann, der seiner Form am besten entspricht.
Obwohl neuere Architekturen zunehmend auf ankerfreie Designs setzen, bleiben Ankerboxen in vielen etablierten Produktionssystemen, in denen die Objekteigenschaften vorhersehbar sind, unverzichtbar.
Es ist wichtig, zwischen herkömmlichen ankerbasierten Methoden und modernen ankerfreien Detektoren zu unterscheiden.
Während moderne High-Level-APIs wie die Ultralytics diese Details während des Trainings abstrahieren, ist das Verständnis von Ankern nützlich, wenn Sie mit älteren Modellarchitekturen arbeiten oder Modellkonfigurationsdateien analysieren. Der folgende Ausschnitt zeigt, wie Sie ein Modell laden und dessen Konfiguration überprüfen können, wo Anker-Einstellungen (falls vorhanden) normalerweise definiert werden.
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.")
Ankerboxen sind zwar effektiv, führen jedoch zu Komplexität. Die große Anzahl der generierten Anker – oft Zehntausende pro Bild – verursacht ein Problem der Klassenungleichheit, da die meisten Anker nur den Hintergrund abdecken. Techniken wie Focal Loss werden eingesetzt, um dies durch eine geringere Gewichtung einfacher Hintergrundbeispiele zu mildern. Darüber hinaus erfordert die endgültige Ausgabe in der Regel eine Non-Maximum Suppression (NMS), um redundante, sich überlappende Boxen herauszufiltern und sicherzustellen, dass nur die sicherste Erkennung für jedes Objekt übrig bleibt.