Entdecken Sie Architekturen zur Objekterkennung, von Backbones bis hin zu Heads. Erfahren Sie, wie Ultralytics höchste Geschwindigkeit und Genauigkeit für Echtzeit-Computervision bietet.
Objekterkennungsarchitekturen sind die strukturellen Blaupausen der neuronalen Netze, die zur Identifizierung und Lokalisierung von Objekten innerhalb visueller Daten verwendet werden. Im weiteren Bereich der Computervision (CV) definieren diese Architekturen, wie eine Maschine „sieht“, indem sie rohe Pixeldaten zu aussagekräftigen Erkenntnissen verarbeitet. Im Gegensatz zu einfachen Klassifizierungsmodellen, die ein Bild lediglich beschriften, ist eine Objekterkennungsarchitektur so konzipiert, dass sie für jedes gefundene Objekt neben einer Klassenbeschriftung und einer Konfidenzbewertung auch einen Begrenzungsrahmen ausgibt. Dieses strukturelle Design bestimmt die Geschwindigkeit, Genauigkeit und Recheneffizienz des Modells und ist somit ein entscheidender Faktor bei der Auswahl eines Modells für Echtzeit-Inferenzen oder hochpräzise Analysen.
Obwohl sich die spezifischen Designs unterscheiden, haben die meisten modernen Architekturen drei grundlegende Komponenten gemeinsam: das Backbone, den Neck und den Head. Das Backbone fungiert als primärer Feature-Extractor. Es handelt sich in der Regel um ein Convolutional Neural Network (CNN), das auf einem großen Datensatz wie ImageNet, das für die Identifizierung grundlegender Formen, Kanten und Texturen zuständig ist. Beliebte Backbones sind beispielsweise ResNet und CSPDarknet.
Der Hals verbindet das Backbone mit den letzten Ausgabeschichten. Seine Aufgabe besteht darin, Merkmale aus verschiedenen Stufen des Backbones zu mischen und zu kombinieren, um sicherzustellen, dass das Modell detect verschiedener Größen detect kann – ein Konzept, das als multiskalige Merkmalsfusion bekannt ist. Architekturen verwenden hier häufig ein Feature Pyramid Network (FPN) oder ein Path Aggregation Network (PANet), um die an die Vorhersageebenen weitergeleiteten semantischen Informationen anzureichern. Schließlich verarbeitet der Erkennungskopf diese fusionierten Merkmale, um die spezifische Klasse und Koordinatenposition jedes Objekts vorherzusagen.
Historisch gesehen wurden Architekturen in zwei Hauptkategorien unterteilt. Zweistufige Detektoren, wie die R-CNN-Familie, schlagen zunächst Regionen von Interesse (RoIs) vor, in denen Objekte vorhanden sein könnten, und classify Regionen dann in einem zweiten Schritt. Obwohl sie im Allgemeinen genau sind, sind sie für Edge-Geräte oft zu rechenintensiv.
Im Gegensatz dazu behandeln einstufige Detektoren die Erkennung als einfaches Regressionsproblem und ordnen Bildpixel in einem einzigen Durchgang direkt den Koordinaten der Begrenzungsrahmen und Klassenwahrscheinlichkeiten zu. Dieser Ansatz, der von der YOLO (You Only Look Once) entwickelt wurde, revolutionierte die Branche, indem er Echtzeitleistung ermöglichte. Moderne Weiterentwicklungen haben zu Modellen wie YOLO26 geführt, die nicht nur eine überlegene Geschwindigkeit bieten, sondern auch durchgängige, NMS Architekturen verwenden. Durch den Wegfall der Nachbearbeitung mit Non-Maximum Suppression (NMS) reduzieren diese neueren Architekturen die Latenzschwankungen, was für sicherheitskritische Systeme von entscheidender Bedeutung ist.
Die Wahl der Architektur hat direkten Einfluss auf den Erfolg von KI-Lösungen in allen Branchen.
Es ist wichtig, Erkennungsarchitekturen von ähnlichen Computer-Vision-Aufgaben zu unterscheiden:
Moderne Frameworks haben die Komplexität dieser Architekturen abstrahiert, sodass Entwickler
mit minimalem Codeaufwand auf modernste Designs zurückgreifen können. Mit dem ultralytics Paket können Sie ein vortrainiertes
YOLO26 Modell erstellen und sofort Inferenz durchführen. Für Teams,
die ihre Datensätze verwalten und benutzerdefinierte Architekturen in der Cloud trainieren möchten, ist die
Ultralytics vereinfacht die gesamte MLOps-Pipeline.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image source
# This uses the model's architecture to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()