YOLO-NAS#
Bitte beachte, dass Deci, die ursprünglichen Entwickler von YOLO-NAS, von NVIDIA übernommen wurden. Daher werden diese Modelle von Deci nicht mehr aktiv gepflegt. Ultralytics unterstützt weiterhin die Nutzung dieser Modelle, vom ursprünglichen Team sind jedoch keine weiteren Aktualisierungen zu erwarten.
Übersicht#
YOLO-NAS wurde von Deci AI entwickelt und ist ein wegweisendes Basismodell für die Objekterkennung. Es basiert auf fortschrittlicher Technologie zur Neuronalen Architektursuche, die speziell dafür entwickelt wurde, die Einschränkungen früherer YOLO-Modelle zu überwinden. Mit deutlichen Verbesserungen bei der Quantisierungsunterstützung und den Kompromissen zwischen Genauigkeit und Latenz stellt YOLO-NAS einen großen Fortschritt in der Objekterkennung dar.
Überblick über YOLO-NAS. YOLO-NAS verwendet quantisierungsbewusste Blöcke und selektive Quantisierung für optimale Leistung. Bei der Konvertierung in die quantisierte INT8-Version weist das Modell nur einen minimalen Präzisionsverlust auf – eine deutliche Verbesserung gegenüber anderen Modellen. Diese Fortschritte führen zu einer überlegenen Architektur mit beispiellosen Fähigkeiten zur Objekterkennung und herausragender Leistung.
Wichtige Funktionen#
- Quantisierungsfreundlicher Basisblock: YOLO-NAS führt einen neuen, quantisierungsfreundlichen Basisblock ein, der eine der wesentlichen Einschränkungen früherer YOLO-Modelle behebt.
- Anspruchsvolles Training und Quantisierung: YOLO-NAS nutzt fortschrittliche Trainingsverfahren und Quantisierung nach dem Training, um die Leistung zu verbessern.
- AutoNAC-Optimierung und Vortraining: YOLO-NAS nutzt die AutoNAC-Optimierung und wird auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert. Durch dieses Vortraining eignet sich das Modell besonders gut für nachgelagerte Aufgaben der Objekterkennung in Produktionsumgebungen.
Vortrainierte Modelle#
Erlebe die Leistungsfähigkeit der Objekterkennung der nächsten Generation mit den von Ultralytics bereitgestellten vortrainierten YOLO-NAS-Modellen. Diese Modelle sind darauf ausgelegt, sowohl bei der Geschwindigkeit als auch bei der Genauigkeit hervorragende Ergebnisse zu liefern. Wähle aus verschiedenen Optionen, die auf deine spezifischen Anforderungen zugeschnitten sind:
| Modell | mAP | Latenz (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
Jede Modellvariante ist darauf ausgelegt, ein ausgewogenes Verhältnis zwischen mittlerer durchschnittlicher Präzision (mAP) und Latenz zu bieten, damit du deine Aufgaben der Objekterkennung sowohl hinsichtlich Leistung als auch Geschwindigkeit optimieren kannst.
Verwendungsbeispiele#
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 du YOLO-NAS-Modelle mit dem Paket ultralytics für Inferenz und Validierung verwendest:
Beispiele für Inferenz und Validierung#
In diesem Beispiel validieren wir YOLO-NAS-s auf dem COCO8-Datensatz.
Dieses Beispiel enthält einfachen Code für Inferenz und Validierung mit YOLO-NAS. Informationen zur Verarbeitung von Inferenzergebnissen findest du im Modus Predict. Informationen zur Verwendung von YOLO-NAS mit zusätzlichen Modi findest du unter Val und Export. YOLO-NAS im Paket ultralytics unterstützt kein Training.
Vertrainierte *.pt Modelldateien von PyTorch 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 auf unterschiedliche Anforderungen an Rechenleistung und Performance ausgelegt:
- YOLO-NAS-s: Optimiert für Umgebungen mit begrenzten Rechenressourcen, in denen Effizienz entscheidend ist.
- YOLO-NAS-m: Bietet einen ausgewogenen Ansatz und eignet sich für die allgemeine Objekterkennung mit höherer Genauigkeit.
- YOLO-NAS-l: Für Szenarien mit höchsten Genauigkeitsanforderungen ausgelegt, in denen Rechenressourcen eine geringere Einschränkung darstellen.
Nachfolgend findest du einen detaillierten Überblick über jedes Modell, einschließlich Links zu den vortrainierten Gewichten, den unterstützten Aufgaben und der Kompatibilität mit verschiedenen Betriebsmodi.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Training | Validierung | Inferenz | Export |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | Objekterkennung | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Objekterkennung | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Objekterkennung | ❌ | ✅ | ✅ | ✅ |
Zitate und Danksagungen#
Wenn du YOLO-NAS in deiner Forschungs- oder Entwicklungsarbeit einsetzt, zitiere bitte SuperGradients:
@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 bedanken uns beim SuperGradients-Team von Deci AI für seine Arbeit an der Entwicklung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community. Wir sind überzeugt, dass YOLO-NAS mit seiner innovativen Architektur und seinen herausragenden Fähigkeiten zur Objekterkennung zu einem wichtigen Werkzeug für Entwickler und Forschende werden wird.
FAQ#
YOLO-NAS wurde von Deci AI entwickelt und ist ein hochmodernes Modell zur Objekterkennung, das fortschrittliche Technologie zur Neuronalen Architektursuche (NAS) nutzt. Es behebt die Einschränkungen früherer YOLO-Modelle durch Funktionen wie quantisierungsfreundliche Basisblöcke und anspruchsvolle Trainingsverfahren. Dies führt zu deutlichen Leistungsverbesserungen, insbesondere in Umgebungen mit begrenzten Rechenressourcen. YOLO-NAS unterstützt außerdem die Quantisierung und behält auch nach der Konvertierung in die INT8-Version eine hohe Genauigkeit bei, wodurch es sich noch besser für Produktionsumgebungen eignet. Weitere Informationen findest du im Abschnitt Überblick.
Du kannst YOLO-NAS-Modelle ganz einfach mit dem Paket
ultralyticsin deine Python-Anwendung integrieren. Hier ist ein einfaches Beispiel zum Laden eines vortrainierten YOLO-NAS-Modells und zur Durchführung einer Inferenz: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.
YOLO-NAS bietet mehrere wesentliche Funktionen, die es zu einer hervorragenden Wahl für Aufgaben der Objekterkennung machen:
- Quantisierungsfreundlicher Basisblock: Verbesserte Architektur, die die Modellleistung bei minimalem Präzisionsverlust nach der Quantisierung steigert.
- Anspruchsvolles Training und Quantisierung: Nutzt fortschrittliche Trainingsverfahren und Techniken zur Quantisierung nach dem Training.
- AutoNAC-Optimierung und Vortraining: Nutzt die AutoNAC-Optimierung und wird auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert.
Diese Funktionen tragen zur hohen Genauigkeit, effizienten Leistung und Eignung für den Einsatz in Produktionsumgebungen bei. Weitere Informationen findest du im Abschnitt Wichtige Funktionen.
YOLO-NAS-Modelle unterstützen verschiedene Aufgaben und Modi der Objekterkennung, darunter Inferenz, Validierung und Export. Training wird nicht unterstützt. 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. Einen detaillierten Überblick findest du im Abschnitt Unterstützte Aufgaben und Modi.
Ja, Ultralytics stellt vortrainierte YOLO-NAS-Modelle bereit, auf die du direkt zugreifen kannst. Diese Modelle wurden auf Datensätzen wie COCO vortrainiert und bieten dadurch sowohl bei der Geschwindigkeit als auch bei der Genauigkeit eine hohe Leistung. Du kannst diese Modelle über die im Abschnitt Vortrainierte Modelle bereitgestellten Links herunterladen. Hier sind einige Beispiele: