YOLO-NAS
Übersicht
Das von Deci AI entwickelte YOLO-NAS ist ein bahnbrechendes Grundmodell für die Objekterkennung. Es ist das Produkt der fortschrittlichen Neural Architecture Search-Technologie, die sorgfältig entwickelt wurde, um die Einschränkungen früherer YOLO Modelle zu beseitigen. Mit erheblichen Verbesserungen bei der Quantisierungsunterstützung und dem Kompromiss zwischen Genauigkeit und Latenz stellt YOLO-NAS einen großen Sprung in der Objekterkennung dar.
Überblick über YOLO-NAS. YOLO-NAS verwendet quantisierungsfähige Blöcke und selektive Quantisierung für optimale Leistung. Bei der Umwandlung des Modells in seine INT8-quantisierte Version kommt es zu einem minimalen Präzisionsabfall, was eine erhebliche Verbesserung gegenüber anderen Modellen darstellt. Diese Fortschritte kulminieren in einer überlegenen Architektur mit beispiellosen Objekterkennungsfähigkeiten und herausragender Leistung.
Wesentliche Merkmale
- Quantisierungsfreundlicher Basisblock: YOLO-NAS führt einen neuen, quantisierungsfreundlichen Basisblock ein, der eine der wesentlichen Einschränkungen früherer YOLO Modelle beseitigt.
- Hochentwickeltes Training und Quantisierung: YOLO-NAS nutzt fortschrittliche Trainingsverfahren und Quantisierung nach dem Training, um die Leistung zu verbessern.
- AutoNAC-Optimierung und Pre-Training: YOLO-NAS nutzt die AutoNAC-Optimierung und ist auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert. Durch dieses Vortraining ist es für nachgelagerte Objekterkennungsaufgaben in Produktionsumgebungen hervorragend geeignet.
Vortrainierte Modelle
Erleben Sie die Leistungsfähigkeit der Objekterkennung der nächsten Generation mit den vortrainierten YOLO-NAS-Modellen, die von Ultralytics bereitgestellt werden. Diese Modelle sind so konzipiert, dass sie sowohl in Bezug auf die Geschwindigkeit als auch auf die Genauigkeit eine erstklassige Leistung erbringen. Wählen Sie aus einer Vielzahl von Optionen, die auf Ihre speziellen Anforderungen zugeschnitten sind:
Modell | mAP | Latenzzeit (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 so konzipiert, dass sie ein ausgewogenes Verhältnis zwischen mittlerer durchschnittlicher Präzision (mAP) und Latenzzeit bietet, damit Sie Ihre Objekterkennungsaufgaben sowohl hinsichtlich der Leistung als auch der Geschwindigkeit optimieren können.
Beispiele für die Verwendung
Ultralytics Die YOLO-NAS-Modelle lassen sich über unsere Python einfach in Ihre Anwendungen integrieren. ultralytics
python Paket. Das Paket bietet eine benutzerfreundliche Python API, um den Prozess zu rationalisieren.
Die folgenden Beispiele zeigen, wie man YOLO-NAS-Modelle mit dem ultralytics
Paket für Inferenz und Validierung:
Beispiele für Inferenz und Validierung
In diesem Beispiel validieren wir YOLO-NAS-s anhand des COCO8-Datensatzes.
Beispiel
Dieses Beispiel enthält einfachen Inferenz- und Validierungscode für YOLO-NAS. Für die Behandlung von Inferenzergebnissen siehe Vorhersage Modus. Zur Verwendung von YOLO-NAS mit zusätzlichen Modi siehe Val und Exportieren. YOLO-NAS auf dem ultralytics
Paket unterstützt keine Schulungen.
PyTorch vorgebildet *.pt
können Modelldateien an den NAS()
Klasse, 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")
CLI Befehle zur Verfügung, um die Modelle direkt auszuführen:
Unterstützte Aufgaben und Modi
Wir bieten drei Varianten der YOLO-NAS-Modelle an: Small (s), Medium (m) und Large (l). Jede Variante ist für unterschiedliche Berechnungs- und Leistungsanforderungen ausgelegt:
- YOLO-NAS-s: Optimiert für Umgebungen, in denen die Rechenressourcen begrenzt sind, die Effizienz jedoch entscheidend ist.
- YOLO-NAS-m: Bietet einen ausgewogenen Ansatz, der sich für die allgemeine Objekterkennung mit höherer Genauigkeit eignet.
- YOLO-NAS-l: Maßgeschneidert für Szenarien, die höchste Genauigkeit erfordern und bei denen die Rechenressourcen weniger stark eingeschränkt sind.
Nachfolgend finden Sie einen detaillierten Überblick über die einzelnen Modelle, einschließlich Links zu den vortrainierten Gewichten, den von ihnen unterstützten Aufgaben und ihrer Kompatibilität mit verschiedenen Betriebsarten.
Modell Typ | Vorgefertigte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Ausbildung | Exportieren |
---|---|---|---|---|---|---|
YOLO-NAS-s | yolo_nas_s.pt | Objekt-Erkennung | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-m | yolo_nas_m.pt | Objekt-Erkennung | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-l | yolo_nas_l.pt | Objekt-Erkennung | ✅ | ✅ | ❌ | ✅ |
Zitate und Danksagungen
Wenn Sie YOLO-NAS in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte SuperGradients:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/record/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 seine Bemühungen bei der Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision Community. Wir sind davon überzeugt, dass YOLO-NAS mit seiner innovativen Architektur und seinen überlegenen Objekterkennungsfähigkeiten ein wichtiges Werkzeug für Entwickler und Forscher gleichermaßen sein wird.
FAQ
Was ist YOLO-NAS und wie verbessert es sich gegenüber früheren YOLO Modellen?
YOLO-NAS, entwickelt von Deci AI, ist ein hochmodernes Objekterkennungsmodell, das die fortschrittliche NAS-Technologie (Neural Architecture Search) nutzt. Durch die Einführung von Merkmalen wie quantisierungsfreundlichen Basisblöcken und ausgefeilten Trainingsschemata werden die Einschränkungen früherer Modelle von YOLO überwunden. Dies führt zu erheblichen Leistungssteigerungen, insbesondere in Umgebungen mit begrenzten Rechenressourcen. YOLO-NAS unterstützt auch die Quantisierung und behält seine hohe Genauigkeit bei, selbst wenn es in seine INT8-Version konvertiert wird, was seine Eignung für Produktionsumgebungen erhöht. Weitere Einzelheiten finden Sie im Abschnitt Übersicht.
Wie kann ich YOLO-NAS-Modelle in meine Anwendung Python integrieren?
Sie können YOLO-NAS-Modelle einfach in Ihre Python Anwendung integrieren, indem Sie die ultralytics
Paket. Hier ein einfaches Beispiel für das Laden eines vortrainierten YOLO-NAS-Modells und die Durchführung der 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 finden Sie in den Beispielen für Inferenz und Validierung.
Was sind die Hauptmerkmale von YOLO-NAS und warum sollte ich es nutzen?
YOLO-NAS führt mehrere wichtige Funktionen ein, die es zu einer hervorragenden Wahl für Objekterkennungsaufgaben machen:
- Quantisierungsfreundlicher Basisblock: Verbesserte Architektur, die die Modellleistung bei minimalem Präzisionsverlust nach der Quantisierung verbessert.
- Hochentwickeltes Training und Quantisierung: Verwendet fortschrittliche Trainingsverfahren und Quantisierungstechniken nach dem Training.
- AutoNAC-Optimierung und Pre-Training: Verwendet die AutoNAC-Optimierung und ist auf bekannten 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. Weitere Informationen finden Sie im Abschnitt Hauptfunktionen.
Welche Aufgaben und Modi werden von den YOLO-NAS-Modellen unterstützt?
YOLONAS-Modelle unterstützen verschiedene Aufgaben und Modi der Objekterkennung 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 Berechnungskapazitäten und Leistungsanforderungen zugeschnitten sind. Eine detaillierte Übersicht finden Sie im Abschnitt Unterstützte Aufgaben und Modi.
Gibt es bereits trainierte YOLO-NAS-Modelle und wie kann ich auf diese zugreifen?
Ja, Ultralytics bietet bereits trainierte YOLO-NAS-Modelle, auf die Sie direkt zugreifen können. Diese Modelle wurden bereits mit Datensätzen wie COCO trainiert und gewährleisten eine hohe Leistung in Bezug auf Geschwindigkeit und Genauigkeit. Sie können diese Modelle über die Links im Abschnitt Pre-trained Models herunterladen. Hier sind einige Beispiele: