YOLO-NAS#
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 Nutzung dieser Modelle, es sind jedoch keine weiteren Updates vom ursprünglichen Team zu erwarten.
Übersicht#
YOLO-NAS wurde von Deci AI entwickelt und ist ein bahnbrechendes Grundlagenmodell für die Objekterkennung. Es ist das Produkt fortschrittlicher Neural Architecture Search-Technologie, die sorgfältig entwickelt wurde, um die Einschränkungen vorheriger YOLO-Modelle zu überwinden. Mit signifikanten Verbesserungen bei der Quantisierungsunterstützung und den Genauigkeit-Latenz-Kompromissen stellt YOLO-NAS einen großen Fortschritt in der Objekterkennung dar.
Übersicht ü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, erfährt es einen minimalen Präzisionsverlust, was eine deutliche Verbesserung gegenüber anderen Modellen darstellt. Diese Fortschritte gipfeln in einer überlegenen Architektur mit noch nie dagewesenen Objekterkennungsfähigkeiten und herausragender Leistung.
Hauptfunktionen#
- 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 Pre-training: YOLO-NAS nutzt AutoNAC-Optimierung und ist auf prominenten Datensätzen wie COCO, Objects365 und Roboflow 100 vorab trainiert. Dieses Pre-training macht es äußerst geeignet für nachgelagerte Objekterkennungsaufgaben 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, erstklassige Leistung in Bezug auf Geschwindigkeit und Genauigkeit zu liefern. Wähle aus einer Vielzahl von 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 wurde entwickelt, um 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 du YOLO-NAS-Modelle mit dem ultralytics-Paket 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 bietet einfachen Inferenz- und Validierungscode für YOLO-NAS. Informationen zum Umgang mit 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 ultralytics-Paket unterstützt kein Training.
Vortrainierte *.pt-PyTorch-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 Anforderungen an Rechenleistung und Performance zu erfüllen:
- YOLO-NAS-s: Optimiert für Umgebungen, in denen Rechenressourcen begrenzt sind, Effizienz aber entscheidend ist.
- YOLO-NAS-m: Bietet einen ausgewogenen Ansatz, der sich für die allgemeine Objekterkennung mit höherer Genauigkeit eignet.
- YOLO-NAS-l: Zugeschnitten auf Szenarien, die höchste Genauigkeit erfordern und in denen Rechenressourcen weniger eingeschränkt sind.
Nachfolgend findest du einen detaillierten Überblick über jedes Modell, einschließlich Links zu deren vortrainierten Gewichten, den unterstützten Aufgaben und ihrer Kompatibilität mit verschiedenen Betriebsmodi.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Training | Validation | Inference | Exportieren |
|---|---|---|---|---|---|---|
| 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 Forschung 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 danken dem SuperGradients-Team von Deci AI für ihren Einsatz bei der Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision-Community. Wir sind überzeugt, dass YOLO-NAS mit seiner innovativen Architektur und seinen überlegenen Objekterkennungsfähigkeiten ein unverzichtbares Werkzeug für Entwickler und Forscher gleichermaßen werden wird.
FAQ#
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 Trainingsschemata. Dies führt zu signifikanten Leistungsverbesserungen, insbesondere in Umgebungen mit begrenzten Rechenressourcen. YOLO-NAS unterstützt zudem die Quantisierung, wodurch eine hohe Genauigkeit auch nach der Konvertierung in die INT8-Version erhalten bleibt, was die Eignung für Produktionsumgebungen erhöht. Weitere Details findest du im Abschnitt Overview.
Du kannst YOLO-NAS-Modelle ganz einfach mit dem
ultralytics-Paket in deine Python-Anwendung integrieren. Hier ist ein einfaches Beispiel, wie du ein vortrainiertes YOLO-NAS-Modell lädst und eine Inferenz durchführst: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 Inference and Validation Examples.
YOLO-NAS führt mehrere Hauptmerkmale ein, die es zu einer überlegenen Wahl für Objekterkennungsaufgaben machen:
- Quantisierungsfreundlicher Basisblock: Verbesserte Architektur, die die Modellleistung bei minimalem Präzisionsverlust nach der Quantisierung steigert.
- Anspruchsvolles Training und Quantisierung: Verwendet fortschrittliche Trainingsverfahren und Post-Training-Quantisierungstechniken.
- AutoNAC-Optimierung und Pre-training: Nutzt AutoNAC-Optimierung und ist auf prominenten Datensätzen wie COCO, Objects365 und Roboflow 100 vorab trainiert.
Diese Funktionen tragen zu seiner hohen Genauigkeit, effizienten Leistung und Eignung für den Einsatz in Produktionsumgebungen bei. Erfahre mehr im Abschnitt Key Features.
YOLO-NAS-Modelle unterstützen verschiedene Objekterkennungsaufgaben und -modi wie Inferenz, Validierung und Export. Ein 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. Eine detaillierte Übersicht findest du im Abschnitt Supported Tasks and Modes.
Ja, Ultralytics stellt vortrainierte YOLO-NAS-Modelle bereit, 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 Pretrained Models herunterladen. Hier sind einige Beispiele: