YOLO
Wichtiges Update
Bitte beachten Sie, dass Deci, die ursprünglichen Schöpfer von YOLO, von NVIDIA übernommen wurden. Infolgedessen werden diese Modelle von Deci nicht mehr aktiv gepflegt. Ultralytics unterstützt weiterhin die Verwendung dieser Modelle, aber es sind keine weiteren Aktualisierungen vom ursprünglichen Team zu erwarten.
Überblick
Das von Deci AI entwickelte YOLO 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 zu beseitigen. Mit erheblichen Verbesserungen bei der Quantisierungsunterstützung und dem Kompromiss zwischen Genauigkeit und Latenz stellt YOLO einen großen Sprung in der Objekterkennung dar.
Überblick über YOLO. YOLO verwendet quantisierungssensitive 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.
Hauptmerkmale
- Quantisierungsfreundlicher Basisblock: YOLO führt einen neuen quantisierungsfreundlichen Basisblock ein, der eine der wesentlichen Einschränkungen früherer YOLO behebt.
- Hochentwickeltes Training und Quantisierung: YOLO nutzt fortschrittliche Trainingsverfahren und Quantisierung nach dem Training, um die Leistung zu verbessern.
- AutoNAC-Optimierung und Pre-Training: YOLO nutzt die AutoNAC-Optimierung und ist auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert. Durch dieses Vortraining eignet es sich hervorragend für nachgelagerte Objekterkennungsaufgaben in Produktionsumgebungen.
Vorab trainierte Modelle
Erleben Sie die Leistungsfähigkeit der Objekterkennung der nächsten Generation mit den von Ultralytics bereitgestellten vortrainierten YOLO. 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 Bedürfnisse zugeschnitten sind:
Performance
| Modell | mAP | Latenz (ms) |
|---|---|---|
| YOLO S | 47.5 | 3.21 |
| YOLO M | 51.55 | 5.85 |
| YOLO L | 52.22 | 7.87 |
| YOLO S INT-8 | 47.03 | 2.36 |
| YOLO M INT-8 | 51.0 | 3.78 |
| YOLO L INT-8 | 52.1 | 4.78 |
Jede Modellvariante ist so konzipiert, dass sie ein ausgewogenes Verhältnis zwischen mittlerer durchschnittlicher PräzisionmAP) und Latenzzeit bietet, damit Sie Ihre Objekterkennungsaufgaben sowohl hinsichtlich der Leistung als auch der Geschwindigkeit optimieren können.
Anwendungsbeispiele
Ultralytics hat die Integration von YOLO in Ihre Python über unser ultralytics Python-Pakets aufgenommen. Das Paket bietet eine benutzerfreundliche Python-API zur Rationalisierung des Prozesses.
Die folgenden Beispiele zeigen, wie man YOLO mit dem ultralytics Paket für Inferenz und Validierung:
Beispiele für Inferenz und Validierung
In diesem Beispiel validieren wir YOLO auf dem COCO8 .
Beispiel
Dieses Beispiel bietet einfachen Inferenz- und Validierungscode für YOLO. Für den Umgang mit Inferenzergebnissen siehe Vorhersagen Modus. Zur Verwendung von YOLO mit zusätzlichen Modi siehe Validieren und ExportYOLO-NAS auf der ultralytics Paket unterstützt kein Training.
PyTorch vorab trainierte *.pt Modelldateien können an das 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")
Es stehen CLI-Befehle zur Verfügung, um die Modelle direkt auszuführen:
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=path/to/bus.jpg
Unterstützte Aufgaben und Modi
Wir bieten drei Varianten der YOLO an: Small (s), Medium (m) und Large (l). Jede Variante ist für unterschiedliche Berechnungs- und Leistungsanforderungen ausgelegt:
- YOLO: Optimiert für Umgebungen, in denen die Rechenressourcen begrenzt sind, aber Effizienz der Schlüssel ist.
- YOLO: Bietet einen ausgewogenen Ansatz, der sich für die allgemeine Objekterkennung mit höherer Genauigkeit eignet.
- YOLO: Maßgeschneidert für Szenarien, die höchste Genauigkeit erfordern und bei denen die Rechenressourcen weniger stark eingeschränkt sind.
Nachfolgend finden Sie eine detaillierte Übersicht ü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 | Inferenz | Validierung | Training | Export |
|---|---|---|---|---|---|---|
| YOLO | yolo_nas_s.pt | Objekterkennung | ✅ | ✅ | ❌ | ✅ |
| YOLO | yolo_nas_m.pt | Objekterkennung | ✅ | ✅ | ❌ | ✅ |
| YOLO | yolo_nas_l.pt | Objekterkennung | ✅ | ✅ | ❌ | ✅ |
Zitate und Danksagungen
Wenn Sie YOLO in Ihrer Forschungs- oder Entwicklungsarbeit einsetzen, zitieren Sie 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 seine Bemühungen bei der Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision Community. Wir glauben, dass YOLO 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 und wie verbessert es sich gegenüber früheren YOLO ?
YOLO, entwickelt von Deci AI, ist ein hochmodernes Objekterkennungsmodell, das die fortschrittliche NAS-Technologie (Neural Architecture Search) nutzt. Es behebt die Einschränkungen früherer YOLO durch die Einführung von Merkmalen wie quantisierungsfreundlichen Basisblöcken und hochentwickelten Trainingsverfahren. Dies führt zu erheblichen Leistungssteigerungen, insbesondere in Umgebungen mit begrenzten Rechenressourcen. YOLO 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 Überblick.
Wie kann ich YOLO in meine Python integrieren?
Sie können YOLO einfach in Ihre Python integrieren, indem Sie die ultralytics Paket. Hier ist ein einfaches Beispiel, wie man ein vortrainiertes YOLO lädt und Inferenzen 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 finden Sie unter Inferenz- und Validierungsbeispiele.
Was sind die Hauptmerkmale von YOLO und warum sollte ich es nutzen?
YOLO verfügt über mehrere Schlüsselfunktionen, 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.
- Ausgeklügeltes Training und Quantisierung: Verwendet fortschrittliche Trainingsschemata und Post-Training-Quantisierungstechniken.
- AutoNAC-Optimierung und Vortraining: Verwendet die AutoNAC-Optimierung und ist auf bekannten Datensätzen wie COCO, Objects365 und Roboflow 100 vortrainiert.
Diese Funktionen tragen zu seiner hohen Genauigkeit, effizienten Leistung und Eignung für den Einsatz in Produktionsumgebungen bei. Erfahren Sie mehr im Abschnitt Hauptmerkmale.
Welche Aufgaben und Modi werden von den YOLO unterstützt?
YOLO 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, YOLO und YOLO, die jeweils auf unterschiedliche Rechnerkapazitäten und Leistungsanforderungen zugeschnitten sind. Eine detaillierte Übersicht finden Sie im Abschnitt Unterstützte Aufgaben und Modi.
Gibt es bereits trainierte YOLO und wie kann ich auf sie zugreifen?
Ja, Ultralytics bietet bereits trainierte YOLO, auf die Sie direkt zugreifen können. Diese Modelle sind auf Datensätzen wie COCO vortrainiert 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: