You Only Look Once (YOLO) ist eine Serie von Echtzeit-Objekterkennungssystemen, die auf convolutional neural networks basieren. Erstmals 2015 von Joseph Redmon et al. vorgestellt, hat YOLO mehrere Iterationen und Verbesserungen durchlaufen und ist zu einem der beliebtesten Frameworks für Objekterkennung geworden. Der Name „You Only Look Once“ bezieht sich darauf, dass der Algorithmus nur einen einzigen Vorwärtsdurchlauf durch das neuronale Netz benötigt, um Vorhersagen zu treffen, im Gegensatz zu früheren regionenbasierten Techniken wie R-CNN, die für ein einzelnes Bild Tausende benötigen.
YOLO betrachtet Objekterkennung als ein einzelnes Regressionsproblem und sagt direkt Begrenzungsrahmenkoordinaten und Klassenwahrscheinlichkeiten aus Bildpixeln voraus. Diese einheitliche Architektur ermöglicht Echtzeit-Verarbeitungsgeschwindigkeiten bei gleichzeitig wettbewerbsfähiger Genauigkeit, was sie für Anwendungen wie Videoüberwachung, autonomes Fahren und Robotik geeignet macht.
Überblick
Im Vergleich zu früheren Methoden wie R-CNN und OverFeat wendet YOLO das Modell nicht an mehreren Positionen und Skalen auf ein Bild an, sondern ein einzelnes neuronales Netz auf das gesamte Bild. Dieses Netz teilt das Bild in Regionen auf und sagt Begrenzungsrahmen und Wahrscheinlichkeiten für jede Region voraus. Diese Begrenzungsrahmen werden mit den vorhergesagten Wahrscheinlichkeiten gewichtet.
Der Ansatz stützt sich auf Ideen aus Deep Learning und neuralen Netzen, insbesondere auf convolutional Architekturen, die sich in Computer-Vision-Aufgaben als effektiv erwiesen haben. YOLOs Design priorisiert Geschwindigkeit und Einfachheit und tauscht dabei etwas Lokalisierungsgenauigkeit gegen erhebliche Recheneffizienz.
OverFeat
OverFeat war ein frühes einflussreiches Modell für gleichzeitige Objektklassifikation und -lokalisierung. Seine Architektur ist wie folgt:
- Trainieren Sie ein neuronales Netz nur für Bildklassifikation („classification-trained network“), wie z. B. AlexNet.
- Entfernen Sie die letzte Schicht des trainierten Netzes und initialisieren Sie für jede mögliche Objektklasse ein Netzwerkmodul an der letzten Schicht („regression network“). Das Basissnetz hat seine Parameter eingefroren. Das Regressionsnetz wird trainiert, die (x, y)-Koordinaten zweier Ecken des Begrenzungsrahmens des Objekts vorherzusagen.
- Während der Inferenz wird das klassifikationstrainierte Netz über dasselbe Bild bei vielen verschiedenen Zoomstufen und Ausschnitten ausgeführt. Für jedes gibt es ein Klassenlabel und eine Wahrscheinlichkeit aus. Jede Ausgabe wird dann vom Regressionsnetz der entsprechenden Klasse verarbeitet, was Tausende von Begrenzungsrahmen mit Klassenlabels und Wahrscheinlichkeiten ergibt. Diese Rahmen werden zusammengeführt, bis nur noch ein einziger Rahmen mit einem einzigen Klassenlabel übrig bleibt.
OverFeat demonstrierte die Machbarkeit von End-to-End-Lernen für die Erkennung, blieb jedoch aufgrund seiner mehrskaligen Inferenzprozedur rechenintensiv. YOLO vereinfachte dies, indem es die Erkennung in einem einzigen Durchlauf durchführte.
Versionen
Es gibt zwei Teile der YOLO-Serie. Der ursprüngliche Teil umfasste YOLOv1, v2 und v3, die alle auf einer von Joseph Redmon gepflegten Website veröffentlicht wurden. Spätere Versionen (v4 und darüber hinaus) wurden von anderen Forschern entwickelt und separat gepflegt.
YOLOv1
Der ursprüngliche YOLO-Algorithmus, 2015 eingeführt, teilt das Bild in ein S x S-Raster von Zellen. Wenn das Zentrum eines Begrenzungsrahmens eines Objekts in eine Rasterzelle fällt, gilt diese Zelle als „enthaltend“ dieses Objekt. Jede Rasterzelle sagt B Begrenzungsrahmen und Konfidenzwerte für diese Rahmen voraus. Diese Konfidenzwerte spiegeln wider, wie sicher das Modell ist, dass der Rahmen ein Objekt enthält, und wie genau es den vorhergesagten Rahmen einschätzt.
Im Detail führt das Netz dieselbe convolutional Operation über jedes der S^2-Patches aus. Die Ausgabe des Netzes für jedes Patch ist ein Tupel (p_1, ..., p_C, c_1, x_1, y_1, w_1, h_1, ..., c_B, x_B, y_B, w_B, h_B), wobei p_i die bedingte Wahrscheinlichkeit ist, dass die Zelle ein Objekt der Klasse i enthält, unter der Bedingung, dass die Zelle mindestens ein Objekt enthält. Die Terme x_j, y_j, w_j, h_j sind die Zentrumskoordinaten, Breite und Höhe des j-ten vorhergesagten Begrenzungsrahmens, der in der Zelle zentriert ist. Mehrere Begrenzungsrahmen werden vorhergesagt, damit sich jede Vorhersage auf eine Art von Begrenzungsrahmen spezialisieren kann. Der Term c_j ist die vorhergesagte Intersection over Union (IoU) jedes Begrenzungsrahmens mit seinem entsprechenden Ground Truth.
Die Netzwerkarchitektur hat 24 convolutional Schichten, gefolgt von 2 voll verbundenen Schichten. Während des Trainings wird für jede Zelle, die einen Ground-Truth-Begrenzungsrahmen enthält, nur der vorhergesagte Begrenzungsrahmen mit der höchsten IoU mit dem Ground Truth für den Gradientenabstieg verwendet. Die Koordinaten des ausgewählten Rahmens werden trainiert, sich dem Ground Truth anzunähern, die Klassenwahrscheinlichkeit für die richtige Klasse wird in Richtung 1 trainiert, und andere Klassenwahrscheinlichkeiten werden in Richtung Null trainiert. Zellen ohne Ground-Truth-Objekte tragen nur zum Verlust des Konfidenzwerts bei und drücken den Konfidenzwert in Richtung Null.
YOLOv2 und YOLOv3
YOLOv2, 2016 veröffentlicht, führte Batch-Normalisierung, Ankerrahmen und eine mehrskalige Trainingsstrategie ein, was Recall und Lokalisierungsgenauigkeit verbesserte. Es verwendete auch eine benutzerdefinierte darknet-19-Architektur und konnte auf einer GPU mit bis zu 67 Bildern pro Sekunde laufen. YOLOv3, 2018 veröffentlicht, fügte ein Feature-Pyramid-Netzwerk mit drei Erkennungsskalen hinzu, was eine bessere Handhabung kleiner Objekte ermöglichte. Es verwendete einen tieferen darknet-53-Backbone und logistische Regression für die Klassenvorhersage.
Spätere Versionen
YOLOv4, 2020 von Alexey Bochkovskiy und Kollegen veröffentlicht, integrierte CSPDarknet53, PANet und Mosaic-Daten-Augmentierung und erreichte modernste Geschwindigkeits- und Genauigkeitsabwägungen. YOLOv5, YOLOv6, YOLOv7 und YOLOv8 folgten mit Verbesserungen bei Effizienz, Bereitstellung auf Edge-Geräten und Unterstützung für Aufgaben über die Erkennung hinaus, wie Instanzsegmentierung und Posenschätzung. Diese späteren Versionen werden von verschiedenen Gruppen gepflegt, einschließlich Ultralytics für YOLOv5 und YOLOv8.
Anwendungen und Auswirkungen
YOLO wurde aufgrund seiner Echtzeitfähigkeiten in Industrie und Wissenschaft weitgehend übernommen. Es wird in Tesla Autopilot für Objekterkennung im autonomen Fahren, in Waymos selbstfahrenden Fahrzeugen und in Cruises Robotaxi-Flotte verwendet. Es treibt auch Anwendungen in Amazon Web Services Rekognition und Google Cloud Vision für Bildanalyse an. In der künstlichen Intelligenz-Forschung dient YOLO als Baseline zum Vergleich neuer Erkennungsmethoden und hat zahlreiche Varianten und Erweiterungen inspiriert.
Die Effizienz des Frameworks hat es für eingebettete und mobile Bereitstellungen beliebt gemacht, einschließlich auf Geräten von Apple, Samsung Electronics und Qualcomm. Seine Open-Source-Implementierungen, insbesondere darknet- und PyTorch-Versionen, haben zu seiner weit verbreiteten Nutzung in der maschinellen Lernens-Ausbildung und beim Prototyping beigetragen.
Einschränkungen und zukünftige Richtungen
Trotz seiner Stärken hat YOLO Einschränkungen. Es kann bei kleinen Objekten und überlappenden Instanzen im Vergleich zu zweistufigen Detektoren wie Faster R-CNN Schwierigkeiten haben. Seine Ein-Pass-Natur macht es auch weniger flexibel für Aufgaben, die iterative Verfeinerung erfordern. Forscher haben diese Probleme durch architektonische Änderungen angegangen, wie Aufmerksamkeitsmechanismen und transformer-basierte Backbones, was Trends bei Transformatoren und großen Sprachmodellen für Vision-Aufgaben entspricht.
Zukünftige Arbeiten konzentrieren sich weiterhin auf die Verbesserung von Genauigkeits-Geschwindigkeits-Abwägungen, Robustheit gegenüber Domain-Shift und Integration mit anderen Modalitäten wie Tiefe und Lidar. Mit verbesserter Hardware, einschließlich spezialisierter Beschleuniger wie AWS Trainium und Cerebras-Systemen, wird erwartet, dass YOLO-basierte Modelle für die Echtzeit-Wahrnehmung in generativen KI-Pipelines und darüber hinaus relevant bleiben.