YOLO NAS: Object Detection Model


Bei der Objekterkennung haben sich AI Models wie YOLO-NAS und YOLO-NAS-SAT aufgrund ihrer beeindruckenden Performance (accuracy) und der Geschwindigkeit während der Inference etabliert. Diese Modelle basieren auf modernen Architekturen und verwenden fortschrittliche Python-Bibliotheken für Training und Inference. Durch den Einsatz von Neural Architecture Search und anderen modernen Techniken können sie mit einer Vielzahl von Datasets umgehen und bieten eine bemerkenswerte Geschwindigkeit sowie hohe Genauigkeit in der Objekterkennung.

Von Bildern alltäglicher Gegenstände bis hin zu wissenschaftlichen Anwendungsfällen oder Erkennung von Strukturen in Dokumenten ist mit YOLO NAS und YOLO-NAS-SAT alles machbar.

Was ist ein Object Detection Model?

Die Objekterkennung, auf Englisch Object Detection, ist ein Teilgebiet der Bildverarbeitung und der Künstlichen Intelligenz, das sich mit der Identifikation und Lokalisierung von Objekten in Bildern befasst. Die Identifikation erfolgt in der Regel durch vordefinierte Klassen wie „Auto“, „Fahrrad“ und „Person“. Die Lokalisierung erfolgt durch sogenannte Bounding Boxes, die die Umrisse der Objekte umgeben und sie in einem Bild klar abgrenzen. Ein Beispiel hierfür:

Yolo nas bounding boxes

Ein Modell zur automatischen Objekterkennung basiert heute in der Regel auf einem künstlichen neuronalen Netz, das anhand von Beispielen trainiert wird. Nach erfolgreichem Training erkennt das Modell ähnliche Objekte in neuen Bildern.

Yolo nas model

Hinweis: Im Folgenden werden die englischen Begriffe Object Detection und Object Detection Model verwendet, da diese überwiegend auch in der deutschen Literatur und dem Fachbereich Verwendung finden.

Was sind YOLO und YOLO NAS?

YOLO steht für „You Only Look Once“ und beschreibt eine Reihe von Object Detection Models, die für die Objekterkennung in Echtzeit entwickelt wurden. Aufgrund der hohen Geschwindigkeit bei der Inferenz (inference) und gleichzeitig guter Genauigkeit (accuracy), sind Modelle der YOLO Reihe für die reale Anwendung beliebt, da es gerade hier oft auf eine gute Genauigkeit bei hoher Geschwindigkeit und Ressourceneffizenz ankommt. Die hohe Geschwindigkeit erzielen die YOLO Models unter anderem dadurch, dass sie auf einen zweistufigen Detektionsprozess verzichten, was bei anderen Modellen oft üblich ist.

Die Variante YOLO-NAS (Neural Architecture Search) wurde von von Deci.AI entwickelt und stellt eine Weiterentwicklung der bekannten YOLO Models dar. Die Modellstruktur ist dazu über eine automatisierte Architektur-Suche (architecture search) entworfen worden, um für verschiedene Hardware-Konfigurationen effizient zu sein und gleichzeitig eine hohe Genauigkeit zu erzielen. Das macht YOLO-NAS zu einem flexibel einsetzbaren und leistungsfähigen Modell.

Eine Optimierung von YOLO-NAS kann über eine Modell-Quantisierung einzelner Blöcke nach dem Training weiter auf Geschwindigkeit erfolgen. Dabei nimmt man eine Änderung am Datentyp der Gewichte von Gleitkommazahlen auf 8-Bit-Ganzzahlen vor. Das hat weniger benötigten Speicherplatz für die Gewichte und die Möglichkeit einer effizienteren Berechnung zur Folge. Das wiederum hat direkten Einfluss auf die Geschwindigkeit bei der Inferenz (inference), die damit nochmals erhöht werden kann. Da die Modellstruktur und das Training (Quantization Aware Training) von YOLO-NAS mit diesen quantisierbaren Blöcken entwickelt wurde, hat das Quantisieren nur wenig Einfluss auf die Genauigkeit, was bei anderen Modellen oft nicht der Fall ist.

YOLO-NAS Neural Architecture Search
Quelle: deci.ai

Hauptmerkmale von YOLO-NAS

Hauptmerkmale Yolo Nas Model

Effizienz – Ausgezeichnete Geschwindigkeit auf unterschiedlichsten Hardware-Plattformen. Beispielsweise kann YOLO-NAS speziell für mobile Geräte mit Snapdragon Prozessoren optimiert werden.

Genauigkeit – Ermöglicht präzise Objekterkennung.
Die YOLO NAS Models sind präziser als yolov7 und yolov8.

Flexibilität – Anwendbar auf eine Vielzahl von Aufgaben und Datensätzen. YOLO NAS kann mit Bildern und Objekten aus Wissenschaft und Technik genau so trainiert werden wie mit natürlichen Bilder und Objekten mit z.B. Alltagsgegenständen.

Vortrainierte Modelle

Deci.AI stellt 3 Varianten mit vortrainierten Gewichten zur Verfügung:

  • YOLO-NAS S
  • YOLO-NAS M
  • YOLO-NAS L

Dabei handelt es sich um eine kleine Variante (S), eine mittlere Variante (M) und eine große Variante (L). Je nach Anwendungsfall kann die Variante ausgewählt werden, die am besten passt. Für Anwendungen mit sehr hoher Geschwindigkeitsanforderung bei reduzierter Genauigkeit ist das kleine Model vorzuziehen, während bei anderen Anwendungen mit höheren Genauigkeitsanforderungen eher das mittlere oder große Model vorzuziehen sind.

Nachfolgend sind die Genauigkeitswerte in Form von Mean Average Precision ([email protected]:0.95) auf Basis des Coco 2017 Validation Dataset und die Latenzzeit als Maß für die Geschwindigkeit für ein Bild mit 640×640 Pixel auf einer Nvidia T4 GPU angegeben:

ModelmAPLatenzzeit (ms)
S47.53.21
M51.555.85
L52.227.87
S INT-847.032.36
M INT-851.03.78
L INT-852.14.78
YOLO NAS
Quelle: Deci.AI / github.com

Anwendungsbeispiele von YOLO NAS

YOLO-NAS eignet sich hervorragend für verschiedenste produktive Anwendungen. Hier einige Verwendungsbeispiele:

Smart City

Überwachungssysteme und Verkehrsflussanalyse profitieren von der schnellen Erkennung mehrerer Objekte in Echtzeit.

YOLO NAS Smart City

Produktion

Erkennung von Produkten oder Maschinenteilen in Produktionsanlagen mit der Option zur Erkennung von Produktfehlern.

Yolo nas produktion

Robotik

Umfeld- und Objekterkennung für Roboter, z.B. zur Erkennung von Objekten die ein Roboter umfahren oder greifen soll.

Yolo nas robotik

Wissenschaft

Analyse von Bildern aus Forschung und im Medizinumfeld, z.B. zur Erkennung verschiedener Zelltypen. 

Yolo nas Wissenschaft

Dokumente

Erkennung von visuellen Strukturen in Dokumenten, z.B. Tabellen und Abbildungen.

Yolo Nas Dokument 1
Yolo Nas Dokument 2

Training und Implementierung

Die Python Bibliothek SuperGradients erleichtert das Training und die Implementierung von YOLO-NAS. Die Python Bibliothek bietet vordefinierte Modelle in den Varianten S, M und L sowie Trainings- und Optimierungspipelines, die eine schnelle und unkomplizierte Implementierung ermöglichen. So können Entwickler rasch mit ihrem eigenen Datensatz (dataset) beginnen und von den leistungsstarken Modellen profitieren. Die SuperGradients-Bibliothek ist unter der Apache-2.0 Lizenz veröffentlicht und damit für kommerzielle Anwendungen mit sehr wenigen Einschränkungen nutzbar. 

Fazit

Die Varianten der YOLO-NAS Object Detection Models zeichnen sich durch ihre herausragende Genauigkeit und Geschwindigkeit bei der Inference aus. Dank moderner Architekturen und der Verwendung von Python-Bibliotheken können sie mit verschiedensten Arten von Dataset umgehen und liefern eine bemerkenswerte Leistung in der Objekterkennung. Der Einsatz von Neural Architecture Search ermöglicht eine flexible Anpassung an unterschiedliche Hardwarekonfigurationen, was die Modelle für verschiedene Anwendungsfälle geeignet macht.

Die Hauptmerkmale umfassen hohe Effizienz, Genauigkeit und Flexibilität. Je nach Anforderung können Entwickler zwischen vortrainierten Modellvarianten wählen, um das beste Gleichgewicht zwischen Geschwindigkeit und Genauigkeit zu erreichen. YOLO-NAS bietet Vorteile in Anwendungen wie Smart Cities, Produktion, Robotik und Wissenschaft.

Mit Hilfe der Python-Bibliothek SuperGradients kann der Trainings- und Implementierungsprozess erleichtert werden, was Entwicklern eine schnelle Integration mit ihrem eigenen Datensatz ermöglicht.

«
»
Avatar von Nico Engelmann

Neueste Artikel