YOLOv10: Real-Time End-to-End Object Detection
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.
Pass auf: So trainierst du YOLOv10 auf dem SKU-110k-Datensatz mit Ultralytics | Retail Dataset
Ü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: Responsible for feature extraction, the backbone in YOLOv10 uses an enhanced version of CSPNet (Cross Stage Partial Network) to improve gradient flow and reduce computational redundancy.
- Hals: Der Hals ist so konzipiert, dass er Merkmale aus verschiedenen Skalen zusammenfasst und an den Kopf weiterleitet. Er enthält PAN-Schichten (Path Aggregation Network) für die effektive Fusion von Merkmalen auf mehreren Ebenen.
- 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 |
Latenzzeit gemessen mit TensorRT FP16 auf 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.
Holistic Efficiency-Accuracy Driven Model Design
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) |
mAPval 50-95 |
Latenzzeit (ms) |
Latenzzeit-Weiterleitung (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
Die YOLOv10-Modellreihe bietet eine Reihe von Modellen, die jeweils für eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle erfüllen unterschiedliche Anforderungen an die Rechenleistung und die Genauigkeit, was sie für eine Vielzahl von Anwendungen geeignet macht.
Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Ausbildung | exportieren |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Objekt-Erkennung | ✅ | ✅ | ✅ | ✅ |
Exportieren von YOLOv10
Aufgrund der neuen Operationen, die mit YOLOv10 eingeführt wurden, werden derzeit nicht alle Exportformate von Ultralytics unterstützt. Die folgende Tabelle zeigt, welche Formate mit Ultralytics für YOLOv10 erfolgreich konvertiert wurden. Wenn du einen Beitrag leisten kannst, um den Export weiterer Formate für YOLOv10 zu unterstützen, kannst du gerne einen Pull Request öffnen.
Format exportieren | Export Support | Exported Model Inference | Anmerkungen |
---|---|---|---|
TorchScript | ✅ | ✅ | Standard PyTorch model format. |
ONNX | ✅ | ✅ | Widely supported for deployment. |
OpenVINO | ✅ | ✅ | Optimized for Intel hardware. |
TensorRT | ✅ | ✅ | Optimized for NVIDIA GPUs. |
CoreML | ✅ | ✅ | Limited to Apple devices. |
TF SavedModel | ✅ | ✅ | TensorFlow's standard model format. |
TF GraphDef | ✅ | ✅ | Legacy TensorFlow format. |
TF Lite | ✅ | ✅ | Optimized for mobile and embedded. |
TF Kante TPU | ✅ | ✅ | Specific to Google's Edge TPU devices. |
TF.js | ✅ | ✅ | JavaScript environment for browser use. |
PaddlePaddle | ❌ | ❌ | Popular in China; less global support. |
NCNN | ✅ | ❌ | Layer torch.topk not exists or registered |
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.
FAQ
Was ist YOLOv10 und wie unterscheidet es sich von früheren YOLO Versionen?
YOLOv10 wurde von Forschern der Tsinghua Universität entwickelt und führt mehrere wichtige Innovationen in die Echtzeit-Objekterkennung ein. Durch konsistente Dualzuweisungen während des Trainings und optimierte Modellkomponenten wird die Notwendigkeit der Non-Maximum-Suppression (NMS) eliminiert und die Leistung bei reduziertem Rechenaufwand gesteigert. Weitere Einzelheiten über die Architektur und die wichtigsten Funktionen findest du in der YOLOv10 Übersicht.
Wie kann ich mit YOLOv10 anfangen, Inferenzen zu erstellen?
Für einfache Schlussfolgerungen kannst du die Bibliothek Ultralytics YOLO Python oder die Kommandozeilenschnittstelle (CLI) verwenden. Im Folgenden findest du Beispiele für die Vorhersage neuer Bilder mit YOLOv10:
Beispiel
Weitere Verwendungsbeispiele findest du in unserem Abschnitt Verwendungsbeispiele.
Welche Modellvarianten bietet YOLOv10 an und was sind ihre Einsatzmöglichkeiten?
YOLOv10 bietet verschiedene Modellvarianten für unterschiedliche Einsatzzwecke:
- YOLOv10-N: Geeignet für extrem ressourcenbeschränkte Umgebungen
- YOLOv10-S: Gleichgewicht zwischen Geschwindigkeit und Genauigkeit
- YOLOv10-M: Allzweckeinsatz
- YOLOv10-B: Höhere Genauigkeit bei größerer Breite
- YOLOv10-L: Hohe Genauigkeit auf Kosten der Rechenressourcen
- YOLOv10-X: Maximale Genauigkeit und Leistung
Jede Variante ist für unterschiedliche Berechnungs- und Genauigkeitsanforderungen ausgelegt, was sie für eine Vielzahl von Anwendungen vielseitig macht. Weitere Informationen findest du im Abschnitt Modellvarianten.
Wie verbessert der NMS-freie Ansatz in YOLOv10 die Leistung?
YOLOv10 macht die Nicht-Maximum-Unterdrückung (NMS) während der Inferenz überflüssig, indem es konsistente duale Zuweisungen für das Training verwendet. Dieser Ansatz reduziert die Inferenzlatenz und erhöht die Effizienz der Vorhersage. Die Architektur beinhaltet auch einen Eins-zu-Eins-Kopf für die Inferenz, der sicherstellt, dass jedes Objekt eine einzige beste Vorhersage erhält. Eine ausführliche Erklärung findest du im Abschnitt Konsistente Doppelzuweisungen für NMS-freies Training.
Wo finde ich die Exportoptionen für YOLOv10-Modelle?
YOLOv10 unterstützt mehrere Exportformate, darunter TorchScript, ONNX, OpenVINO und TensorRT. Allerdings werden aufgrund der neuen Funktionen von Ultralytics derzeit nicht alle Exportformate für YOLOv10 unterstützt. Einzelheiten zu den unterstützten Formaten und Anweisungen zum Exportieren findest du im Abschnitt Exportieren von YOLOv10.
Wie lauten die Leistungsvergleiche für die YOLOv10-Modelle?
YOLOv10 übertrifft frühere Versionen von YOLO und andere State-of-the-Art-Modelle sowohl in der Genauigkeit als auch in der Effizienz. YOLOv10-S ist zum Beispiel 1,8-mal schneller als RT-DETR-R18 mit einem ähnlichen AP auf dem COCO-Datensatz. YOLOv10-B zeigt 46% weniger Latenz und 25% weniger Parameter als YOLOv9-C bei gleicher Leistung. Detaillierte Benchmarks findest du im Abschnitt " Vergleiche ".