YOLO (You Only Look Once) ist ein Open-Source Objekterkennungs- und Bildsegmentierungsmodell von Ultralytics. Durch die Verwendung von „Deep learning“-Ansätzen können Objekte in Bildern oder Videos in Echtzeit erkannt werden. Besonders für die Funktionsweise von YOLO ist, dass die Objekterkennungsalgorithmen das jeweilige Bild in Raster aufteilen und lediglich einen Vorwärtsdurchlauf durch das neuronale Netzwerk durchführt. Dabei werden Objekte gleichzeitig identifiziert sowie im Bild lokalisiert. Dieser einstufige Prozess ermöglicht eine besonders schnelle und effiziente Arbeitsweise, weshalb sich YOLO sehr gut für Echtzeit-Anwendungen eignet - beispielsweise im autonomen Fahren, bei Überwachungssystemen oder in der Robotik [1].
Die Echtzeitfähigkeit eines Betriebssystems bezieht sich auf dessen Reaktionsfähigkeit, die es dem System ermöglicht, alle anstehenden Aufgaben und Funktionen unter jeglichen Zu- und Umständen zuverlässig erledigen zu können. „In Echtzeit“ ist also eine variable Größe, die sich an den jeweiligen Anforderungen orientiert [2].
YOLO ROS
Die Implementierung von YOLO für ROS (Robot Operating System) integriert dessen Objekterkennungsfunktionen in die ROS-Schnittstelle. Damit können Roboter die Fähigkeit erlangen, Objekte in ihrer Umgebung zu erkennen und auf diese zu reagieren. Diese Fähigkeit ist essenziell für die Anwendung von Robotik im Alltag, denn sie ermöglicht es Robotern autonom zu agieren und Aufgaben zu erfüllen, wie beispielsweise Objekte zu greifen oder Hindernisse zu umgehen. YOLO ROS nutzt für die YOLO(V3)-Einbindung das PyTorch Framework [3].
Anwendungsfelder
YOLO eignet sich für unterschiedliche Anwendungsbereiche der Objekterkennung, Bildsegmentierung und Verfolgung, beispielsweise dem autonomen Fahren oder für Überwachungssysteme sowie Augmented Reality [1]. Mit YOLO ROS eröffnet sich zudem das breite Anwendungsgebiet der Robotik, u.a. auch für die Servicerobotik und deren Anwendung im Alltag.
Versionen [4]
Es gibt mehrere Hauptversionen von YOLO sowie weitere Varianten und Anpassungen, die für spezifische Anwendungsfälle weiterentwickelt wurden. Die Hauptversionen sind:
YOLO: Die erste Version von YOLO zur Objekterkennung und Bildsegmentierung aus dem Jahr 2015.
YOLOv2: Eine verbesserte Version von YOLO, die Stapelnormalisierung, Ankerboxen und Dimensionscluster ergänzt.
YOLOv3: Diese Version verbesserte die Leistung des Modells durch ein effizienteres Backbone-Netzwerk, mehrere Anker sowie ein räumliches Pyramiden-Pooling.
YOLOv4: Erneute Leistungsverbesserung sowie eine Mosaik-Datenerweiterung, einen ankerlosen Erkennungskopf und eine Verlustfunktion.
YOLOv5: Diese Version verbesserte erneut die Modellleistung und ergänzte eine Hyperparameter-Optimierung, Experimentverfolgung und automatischen Export in gängige Formate.
YOLOv6: Die sechste Version von YOLO wurde vom chinesischen Unternehmen Meituan veröffentlicht und findet häufig in deren autonomen Lieferrobotern Anwendungen.
YOLOv7: In der Version wurden Aufgaben ergänzt wie beispielsweise die Schätzung der Pose auf dem COCO Keypoints-Datensatz.
YOLOv8: Dies ist die neuste YOLO-Version von Ultralytics, die diverse KI-Aufgaben unterstützt. Dazu zählen Erkennung, Segmentierung, Posenschätzung, Verfolgung und Klassifizierung.
YOLOv9: Mit dieser Version werden neue Methoden wie Programmable Gradient Information (PGI) und Generalized Efficient Layer Aggregation Network (GELAN) eingeführt.
YOLOv10: Die Objekterkennung dieser Variante wird durch Einführung eines End-zu-End Kopfes verbessert. Auch die Non-Maximum-Supression Anforderung, eine wichtige Nachbearbeitungstechnik in der Computer Vision, wurde weiter verbessert.
YOLOv11: In dieser Version werden zusätzlich die Anwendungsbereiche der Segmentierung, Posenschätzung, und Verfolgung über das Modell integriert.
Lizenz
Es gibt zwei Lizenztypen für YOLO. Zum einen die AGPL-3.0 Lizenz mit strengem Copyleft: Hier müssen auch nach Bearbeitung der Software die Bedingungen der Ursprungslizenz sowie der Open Source-Charakter der Software beibehalten werden.
Zum anderen steht eine Unternehmenslizenz zur Auswahl, die für die kommerzielle Nutzung entwickelt wurde.
Architekturen und Programmiersprachen
YOLO: Obwohl die Modelle auf dem PyTorch Framework basieren, gibt es eine Reihe von Möglichkeiten diese auf verschiedenen Architekturen und Programmiersprachen zu nutzen. Durch einen Export über TorchScript wird beispielweise die Funktionalität in der Programmiersprache C++ ermöglicht. Auch der Export in andere Formate wie MNN und NCNN mobile oder ARM Architekturen werden unterstüzt. Eine Übersicht der Exportmöglichkeiten und Formate ist auf der Website von Ultralytics zu finden [5].
YOLO ROS: Hier wird ein C++ basiertes Format von YOLO(V3) in verschiedene ROS und ROS 2 Distributionen integriert und liegt als fertiges Paket vor.
Erforderliche Kenntnisse
Für YOLO gibt es viele Online-Ressourcen, die den Einstieg und die Anwendung erleichtern sollen. Unter anderem finden sich verschiedene Ressourcen direkt bei Ultralytics [6].
Vorteile
Extrem schnell und effizient
Einfache Architektur und erfordert nur minimale Trainingsdaten, so dass es leicht zu implementieren und an neue Aufgaben anpassbar ist
Nachteile
Schwierigkeiten bei der Objektlokalisierung, wenn diese weiter entfernt oder die Umgebung überfüllt ist
Probleme mit kleinen Objekten
Reagiert empfindlich auf veränderte Licht- und Umwelteinflüsse, weshalb die real-world Anwendung nicht ideal funktioniert
Sehr rechenintensiv
Anmerkungen
Die hier angeführten Vor- und Nachteile beziehen sich primär auf YOLOv7: https://www.v7labs.com/blog/yolo-object-detection
Referenzen
[1] Z. Keita. (2024, September 10). YOLO Object Detection erklärt. [Online]. Verfügbar: https://www.datacamp.com/de/blog/yolo-object-detection-explained. [Abruf April 15, 2025].
[2] P. Scholz, „Echtzeit, Echtzeitsysteme, Echtzeitbetriebssysteme“, In: Softwareentwicklung eingebetteter Systeme. Berlin/Heidelberg: Springer Verlag, 2005, S. 39-73. [Online]. Verfügbar: https://link.springer.com/chapter/10.1007/3-540-27522-3_3. [Abruf April 15, 2025].
[3] GitHub. YOLO ROS. [Online]. Verfügbar: https://github.com/leggedrobotics/darknet_ros. [Abruf April 15, 2025].
[4] Ultralytics. YOLO: Eine kurze Geschichte. [Online]. Verfügbar: https://docs.ultralytics.com/de#yolo-a-brief-history. [Abruf April 15, 2025].
[5] Ultralytics. Vergleichende Analyse der YOLO11 Einsatzmöglichkeiten. [Online]. Verfügbar: https://docs.ultralytics.com/guides/model-deployment-options/. [Abruf April 15, 2025].
[6] Ultralytics. Umfassender Leitfaden für Ultralytics YOLOv5. [Online]. Verfügbar: https://docs.ultralytics.com/de/yolov5/. [Abruf April 15, 2025].