YOLOv10: Ende-zu-Ende-Objekt-Erkennung in Echtzeit
YOLOv10, das auf dem Ultralytics Python Paket, das von Forschern der Tsinghua Universität entwickelt wurde, führt einen neuen Ansatz für die Objekterkennung in Echtzeit ein und behebt sowohl die Mängel der Nachbearbeitung als auch der Modellarchitektur, die in früheren Versionen von YOLO festgestellt wurden. Durch die Eliminierung der Nicht-Maximum-Unterdrückung (NMS) und die Optimierung verschiedener Modellkomponenten erreicht YOLOv10 die beste Leistung bei deutlich reduziertem Rechenaufwand. Ausführliche Experimente zeigen, dass YOLOv10 ein hervorragendes Verhältnis zwischen Genauigkeit und Latenz über mehrere Modellskalen hinweg bietet.
Übersicht
Die Objekterkennung in Echtzeit zielt darauf ab, Objektkategorien und Positionen in Bildern mit geringer Latenzzeit genau vorherzusagen. Die YOLO Serie steht aufgrund ihrer Ausgewogenheit zwischen Leistung und Effizienz an der Spitze dieser Forschung. Allerdings haben die Abhängigkeit von NMS und die Unzulänglichkeiten der Architektur eine optimale Leistung behindert. YOLOv10 geht diese Probleme an, indem es konsistente Doppelzuweisungen für NMS-freies Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellierungsstrategie einführt.
Architektur
Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO Modelle auf und führt gleichzeitig einige wichtige Innovationen ein. Die Modellarchitektur besteht aus den folgenden Komponenten:
- Backbone: Das Backbone in YOLOv10, das für die Merkmalsextraktion zuständig ist, verwendet eine verbesserte Version von CSPNet (Cross Stage Partial Network), um den Gradientenfluss zu verbessern und Rechenredundanz zu reduzieren.
- Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
- One-to-Many Head: Erzeugt während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Überwachungssignale zu liefern und die Lerngenauigkeit zu verbessern.
- One-to-One Head: Erzeugt während der Inferenz eine einzige beste Vorhersage pro Objekt, um die NMS zu eliminieren und so die Latenzzeit zu reduzieren und die Effizienz zu verbessern.
Hauptmerkmale
- NMS-freies Training: Nutzt konsistente Doppelzuweisungen, um die Notwendigkeit von NMS zu eliminieren und so die Latenzzeit für Schlussfolgerungen zu reduzieren.
- Ganzheitliches Modelldesign: Umfassende Optimierung verschiedener Komponenten unter Effizienz- und Genauigkeitsgesichtspunkten, einschließlich leichtgewichtiger Klassifizierungsköpfe, räumlich-kanalentkoppelter Abwärtsabtastung und ranggesteuertem Blockdesign.
- Verbesserte Modellfähigkeiten: Durch den Einsatz von Large-Kernel-Convolutions und partiellen Self-Attention-Modulen wird die Leistung ohne große Rechenkosten verbessert.
Modell-Varianten
YOLOv10 gibt es in verschiedenen Modellgrößen, um den unterschiedlichen Anforderungen gerecht zu werden:
- YOLOv10-N: Nano-Version für extrem ressourcenbeschränkte Umgebungen.
- YOLOv10-S: Kleine Version mit einem ausgewogenen Verhältnis zwischen Geschwindigkeit und Genauigkeit.
- YOLOv10-M: Mittlere Version für den allgemeinen Gebrauch.
- YOLOv10-B: Ausgewogene Version mit größerer Breite für höhere Genauigkeit.
- YOLOv10-L: Große Version für höhere Genauigkeit auf Kosten größerer Rechenressourcen.
- YOLOv10-X: Die extragroße Version für maximale Genauigkeit und Leistung.
Leistung
YOLOv10 übertrifft frühere Versionen von YOLO und andere State-of-the-Art-Modelle in Bezug auf Genauigkeit und Effizienz. YOLOv10-S ist zum Beispiel 1,8-mal schneller als RT-DETR-R18 mit ähnlichen AP auf dem COCO-Datensatz, und YOLOv10-B hat 46% weniger Latenz und 25% weniger Parameter als YOLOv9-C bei gleicher Leistung.
Modell | Eingabe Größe | APval | FLOPs (G) | Latenzzeit (ms) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 6.7 | 1.84 |
YOLOv10-S | 640 | 46.3 | 21.6 | 2.49 |
YOLOv10-M | 640 | 51.1 | 59.1 | 4.74 |
YOLOv10-B | 640 | 52.5 | 92.0 | 5.74 |
YOLOv10-L | 640 | 53.2 | 120.3 | 7.28 |
YOLOv10-X | 640 | 54.4 | 160.4 | 10.70 |
Latenz gemessen mit TensorRT FP16 auf der T4 GPU.
Methodik
Konsistente Doppelzuweisungen für eine NMS-freie Ausbildung
YOLOv10 verwendet duale Label-Zuweisungen und kombiniert One-to-Many- und One-to-One-Strategien beim Training, um eine umfassende Überwachung und einen effizienten End-to-End-Einsatz zu gewährleisten. Die konsistente Matching-Metrik gleicht die Überwachung zwischen beiden Strategien ab und verbessert die Qualität der Vorhersagen während der Inferenz.
Ganzheitlicher, auf Effizienz und Genauigkeit ausgerichteter Modellentwurf
Effizienzverbesserungen
- Leichter Klassifizierungskopf: Verringert den Rechenaufwand des Klassifizierungskopfes durch die Verwendung von tiefenmäßig trennbaren Faltungen.
- Spatial-Channel Decoupled Down Sampling: Entkoppelt räumliche Reduktion und Kanalmodulation, um den Informationsverlust und die Rechenkosten zu minimieren.
- Rank-Guided Block Design: Passt das Blockdesign basierend auf der Redundanz der einzelnen Stufen an und sorgt so für eine optimale Ausnutzung der Parameter.
Verbesserungen bei der Genauigkeit
- Large-Kernel Convolution: Vergrößert das rezeptive Feld, um die Fähigkeit zur Merkmalsextraktion zu verbessern.
- Partielle Selbstaufmerksamkeit (PSA): Integriert Selbstaufmerksamkeitsmodule, um das Lernen der globalen Repräsentation mit minimalem Overhead zu verbessern.
Experimente und Ergebnisse
YOLOv10 wurde ausgiebig in Standard-Benchmarks wie COCO getestet und hat dabei seine überragende Leistung und Effizienz bewiesen. Das Modell erzielt in verschiedenen Varianten die besten Ergebnisse und zeigt deutliche Verbesserungen bei Latenz und Genauigkeit im Vergleich zu früheren Versionen und anderen aktuellen Detektoren.
Vergleiche
Im Vergleich zu anderen modernen Detektoren:
- YOLOv10-S / X sind 1,8× / 1,3× schneller als RT-DETR-R18 / R101 bei ähnlicher Genauigkeit
- YOLOv10-B hat 25% weniger Parameter und 46% weniger Latenz als YOLOv9-C bei gleicher Genauigkeit
- YOLOv10-L / X übertrifft YOLOv8-L / X um 0,3 AP / 0,5 AP mit 1,8× / 2,3× weniger Parametern
Hier findest du einen detaillierten Vergleich der YOLOv10-Varianten mit anderen modernen Modellen:
Modell | Params (M) | FLOPs (G) | APval (%) | Latenzzeit (ms) | Latenzzeit (Vorwärts) (ms) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
Gold-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
Gold-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Verwendungsbeispiele
Für die Vorhersage neuer Bilder mit YOLOv10:
Beispiel
Für das Training von YOLOv10 auf einem eigenen Datensatz:
Beispiel
Unterstützte Aufgaben und Modi
The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.
Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Ausbildung | exportieren |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Objekt-Erkennung | ✅ | ✅ | ✅ | ✅ |
Exporting YOLOv10
Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.
Export Format | Supported |
---|---|
TorchScript | ✅ |
ONNX | ✅ |
OpenVINO | ✅ |
TensorRT | ✅ |
CoreML | ❌ |
TF SavedModel | ❌ |
TF GraphDef | ❌ |
TF Lite | ❌ |
TF Kante TPU | ❌ |
TF.js | ❌ |
PaddlePaddle | ❌ |
NCNN | ❌ |
Fazit
YOLOv10 setzt neue Maßstäbe bei der Objekterkennung in Echtzeit, indem es die Mängel früherer Versionen von YOLO behebt und innovative Designstrategien einbezieht. Seine Fähigkeit, hohe Genauigkeit bei geringen Rechenkosten zu liefern, macht ihn zur idealen Wahl für eine Vielzahl von realen Anwendungen.
Zitate und Danksagungen
Wir möchten den YOLOv10-Autoren von der Tsinghua Universität für ihre umfangreiche Forschung und ihre wichtigen Beiträge zum Ultralytics Rahmenwerk:
Detaillierte Informationen zur Implementierung, den architektonischen Neuerungen und den Versuchsergebnissen findest du in der YOLOv10-Forschungsarbeit und im GitHub-Repository des Teams der Tsinghua-Universität.