YOLO-NAS

Wichtiges Update

Bitte beachte, dass Deci, die ursprünglichen Entwickler von YOLO-NAS, von NVIDIA übernommen wurden. Infolgedessen werden diese Modelle nicht mehr aktiv von Deci gewartet. Ultralytics unterstützt weiterhin die Verwendung dieser Modelle, aber es sind keine weiteren Updates vom ursprünglichen Team zu erwarten.

Übersicht

YOLO-NAS wurde von Deci AI entwickelt und ist ein bahnbrechendes Basismodell für die Objekterkennung. Es ist das Produkt fortschrittlicher Neural Architecture Search-Technologie, die sorgfältig entwickelt wurde, um die Einschränkungen früherer YOLO-Modelle zu überwinden. Mit signifikanten Verbesserungen bei der Quantisierungsunterstützung und dem Kompromiss zwischen Genauigkeit und Latenz stellt YOLO-NAS einen großen Sprung in der Objekterkennung dar.

Vergleich der Genauigkeit des YOLO-NAS-Modells auf dem COCO-Benchmark Überblick über YOLO-NAS. YOLO-NAS verwendet quantisierungsbewusste Blöcke und selektive Quantisierung für eine optimale Leistung. Wenn das Modell in seine INT8-quantisierte Version konvertiert wird, tritt nur ein minimaler Präzisionsverlust auf, was eine deutliche Verbesserung gegenüber anderen Modellen darstellt. Diese Fortschritte führen zu einer überlegenen Architektur mit beispiellosen Objekterkennungsfähigkeiten und herausragender Leistung.

Hauptmerkmale

  • Quantisierungsfreundlicher Basisblock: YOLO-NAS führt einen neuen Basisblock ein, der quantisierungsfreundlich ist und eine der wesentlichen Einschränkungen früherer YOLO-Modelle behebt.
  • Anspruchsvolles Training und Quantisierung: YOLO-NAS nutzt fortschrittliche Trainingsverfahren und Post-Training-Quantisierung, um die Leistung zu steigern.
  • AutoNAC-Optimierung und Vortraining: YOLO-NAS verwendet AutoNAC-Optimierung und ist auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert. Dieses Vortraining macht es extrem geeignet für nachgelagerte Objekterkennungsaufgaben in Produktionsumgebungen.

Vortrainierte Modelle

Erlebe die Kraft der Objekterkennung der nächsten Generation mit den vortrainierten YOLO-NAS-Modellen von Ultralytics. Diese Modelle wurden entwickelt, um erstklassige Leistung in Bezug auf Geschwindigkeit und Genauigkeit zu liefern. Wähle aus einer Vielzahl von Optionen, die auf deine spezifischen Bedürfnisse zugeschnitten sind:

Leistung
ModellmAPLatenz (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.78

Jede Modellvariante ist darauf ausgelegt, ein Gleichgewicht zwischen Mean Average Precision (mAP) und Latenz zu bieten, damit du deine Objekterkennungsaufgaben sowohl hinsichtlich der Leistung als auch der Geschwindigkeit optimieren kannst.

Anwendungsbeispiele

Ultralytics hat es einfach gemacht, YOLO-NAS-Modelle über unser ultralytics Python-Paket in deine Python-Anwendungen zu integrieren. Das Paket bietet eine benutzerfreundliche Python API, um den Prozess zu optimieren.

Die folgenden Beispiele zeigen, wie man YOLO-NAS-Modelle mit dem ultralytics-Paket für Inferenz und Validierung verwendet:

Beispiele für Inferenz und Validierung

In diesem Beispiel validieren wir YOLO-NAS-s auf dem COCO8-Datensatz.

Beispiel

Dieses Beispiel bietet einfachen Inferenz- und Validierungscode für YOLO-NAS. Für den Umgang mit Inferenzergebnissen siehe den Modus Predict. Für die Verwendung von YOLO-NAS mit weiteren Modi siehe Val und Export. YOLO-NAS unterstützt im ultralytics-Paket kein Training.

Vortrainierte PyTorch *.pt-Modelldateien können an die NAS()-Klasse übergeben werden, um eine Modellinstanz in Python zu erstellen:

from ultralytics import NAS

# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")

# Display model information (optional)
model.info()

# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")

# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Unterstützte Aufgaben und Modi

Wir bieten drei Varianten der YOLO-NAS-Modelle an: Small (s), Medium (m) und Large (l). Jede Variante ist darauf ausgelegt, unterschiedliche Rechen- und Leistungsanforderungen zu erfüllen:

  • YOLO-NAS-s: Optimiert für Umgebungen, in denen die Rechenressourcen begrenzt sind, aber Effizienz entscheidend ist.
  • YOLO-NAS-m: Bietet einen ausgewogenen Ansatz, geeignet für die allgemeine Objekterkennung mit höherer Genauigkeit.
  • YOLO-NAS-l: Zugeschnitten auf Szenarien, die die höchste Genauigkeit erfordern, bei denen Rechenressourcen weniger einschränkend sind.

Unten findest du einen detaillierten Überblick über jedes Modell, einschließlich Links zu deren vortrainierten Gewichten, den von ihnen unterstützten Aufgaben und ihrer Kompatibilität mit verschiedenen Betriebsmodi.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenzValidierungTrainingExportieren
YOLO-NAS-syolo_nas_s.ptObjekterkennung
YOLO-NAS-myolo_nas_m.ptObjekterkennung
YOLO-NAS-lyolo_nas_l.ptObjekterkennung

Zitate und Danksagungen

Wenn du YOLO-NAS in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte SuperGradients:

Zitat
@misc{supergradients,
      doi = {10.5281/ZENODO.7789328},
      url = {https://zenodo.org/records/7789328},
      author = {Aharon,  Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova,  Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya,  Eugene and Rubin,  Ran and Bagrov,  Natan and Tymchenko,  Borys and Keren,  Tomer and Zhilko,  Alexander and {Eran-Deci}},
      title = {Super-Gradients},
      publisher = {GitHub},
      journal = {GitHub repository},
      year = {2021},
}

Wir drücken dem SuperGradients-Team von Deci AI unsere Dankbarkeit für ihre Bemühungen bei der Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision-Community aus. Wir glauben, dass YOLO-NAS mit seiner innovativen Architektur und überlegenen Objekterkennungsfähigkeiten ein kritisches Werkzeug für Entwickler und Forscher gleichermaßen werden wird.

FAQ

Was ist YOLO-NAS und wie verbessert es frühere YOLO-Modelle?

YOLO-NAS, entwickelt von Deci AI, ist ein hochmodernes Objekterkennungsmodell, das fortschrittliche Neural Architecture Search (NAS)-Technologie nutzt. Es behebt die Einschränkungen früherer YOLO-Modelle durch die Einführung von Funktionen wie quantisierungsfreundlichen Basisblöcken und ausgeklügelten Trainingsverfahren. Dies führt zu signifikanten Leistungsverbesserungen, insbesondere in Umgebungen mit begrenzten Rechenressourcen. YOLO-NAS unterstützt auch die Quantisierung und behält selbst nach der Konvertierung in die INT8-Version eine hohe Genauigkeit bei, was seine Eignung für Produktionsumgebungen verbessert. Weitere Details findest du im Abschnitt Überblick.

Wie kann ich YOLO-NAS-Modelle in meine Python-Anwendung integrieren?

Du kannst YOLO-NAS-Modelle einfach mit dem ultralytics-Paket in deine Python-Anwendung integrieren. Hier ist ein einfaches Beispiel, wie man ein vortrainiertes YOLO-NAS-Modell lädt und Inferenz durchführt:

from ultralytics import NAS

# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")

# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")

# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Weitere Informationen findest du unter Beispiele für Inferenz und Validierung.

Was sind die Hauptmerkmale von YOLO-NAS und warum sollte ich die Verwendung in Betracht ziehen?

YOLO-NAS führt mehrere Hauptmerkmale ein, die es zu einer überlegenen Wahl für Objekterkennungsaufgaben machen:

  • Quantisierungsfreundlicher Basisblock: Verbesserte Architektur, die die Modellleistung mit minimalem Präzisionsverlust nach der Quantisierung verbessert.
  • Anspruchsvolles Training und Quantisierung: Verwendet fortschrittliche Trainingsverfahren und Post-Training-Quantisierungstechniken.
  • AutoNAC-Optimierung und Vortraining: Verwendet AutoNAC-Optimierung und ist auf prominenten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert.

Diese Merkmale tragen zu seiner hohen Genauigkeit, effizienten Leistung und Eignung für den Einsatz in Produktionsumgebungen bei. Erfahre mehr im Abschnitt Hauptmerkmale.

Welche Aufgaben und Modi werden von YOLO-NAS-Modellen unterstützt?

YOLO-NAS-Modelle unterstützen verschiedene Objekterkennungsaufgaben und Modi wie Inferenz, Validierung und Export. Sie unterstützen kein Training. Zu den unterstützten Modellen gehören YOLO-NAS-s, YOLO-NAS-m und YOLO-NAS-l, die jeweils auf unterschiedliche Rechenkapazitäten und Leistungsanforderungen zugeschnitten sind. Für einen detaillierten Überblick siehe den Abschnitt Unterstützte Aufgaben und Modi.

Gibt es vortrainierte YOLO-NAS-Modelle und wie erhalte ich Zugriff darauf?

Ja, Ultralytics bietet vortrainierte YOLO-NAS-Modelle an, auf die du direkt zugreifen kannst. Diese Modelle sind auf Datensätzen wie COCO vortrainiert, was eine hohe Leistung in Bezug auf Geschwindigkeit und Genauigkeit gewährleistet. Du kannst diese Modelle über die Links im Abschnitt Vortrainierte Modelle herunterladen. Hier sind einige Beispiele:

Kommentare