YOLOv10: Echtzeit-End-to-End-Objekterkennung
YOLOv10, basierend auf dem UltralyticsPython-Paket von Forschern der Tsinghua University, führt einen neuen Ansatz zur Echtzeit-Objekterkennung ein, der sowohl die Defizite in der Nachbearbeitung als auch in der Modellarchitektur früherer YOLO-Versionen adressiert. Durch die Eliminierung der Non-Maximum Suppression (NMS) und die Optimierung verschiedener Modellkomponenten erreicht YOLOv10 eine hochmoderne Leistung mit deutlich reduziertem Rechenaufwand. Umfassende Experimente belegen seine überlegenen Genauigkeits-Latenz-Kompromisse über mehrere Modellskalen hinweg.

Ansehen: Wie man YOLOv10 auf dem SKU-110k-Datensatz mit Ultralytics trainiert | Einzelhandelsdatensatz
Überblick
Die Echtzeit-Objektdetektion zielt darauf ab, Objektkategorien und -positionen in Bildern mit geringer Latenz genau vorherzusagen. Die YOLO-Serie steht aufgrund ihres Gleichgewichts zwischen Leistung und Effizienz an vorderster Front dieser Forschung. Die Abhängigkeit von NMS und architektonische Ineffizienzen haben jedoch die optimale Leistung beeinträchtigt. YOLOv10 begegnet diesen Problemen durch die Einführung von konsistenten Dual-Assignments für NMS-freies Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellentwicklungsstrategie.
Architektur
Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO-Modelle auf und führt gleichzeitig mehrere Schlüsselinnovationen ein. Die Modellarchitektur besteht aus den folgenden Komponenten:
- Backbone: Verantwortlich für die Merkmalsextraktion. Die Backbone in YOLOv10 verwendet eine verbesserte Version von CSPNet (Cross Stage Partial Network), um den Gradientenfluss zu verbessern und die Rechenredundanz zu reduzieren.
- Neck: Der Neck dient dazu, Features aus verschiedenen Skalen zu aggregieren und an den Head weiterzuleiten. Er enthält PAN-Layer (Path Aggregation Network) für eine effektive multiskalige Feature-Fusion.
- One-to-Many Head: Generiert während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Überwachungssignale bereitzustellen und die Lerngenauigkeit zu verbessern.
- Eins-zu-Eins-Head: Generiert eine einzige beste Vorhersage pro Objekt während der Inferenz, um die Notwendigkeit von NMS zu eliminieren, wodurch die Latenz reduziert und die Effizienz verbessert wird.
Hauptmerkmale
- NMS-freies Training: Nutzt konsistente Dual-Zuweisungen, um die Notwendigkeit von NMS zu eliminieren, wodurch die Inferenzlatenz reduziert wird.
- Holistic Model Design: Umfassende Optimierung verschiedener Komponenten sowohl aus Effizienz- als auch aus Genauigkeitsperspektive, einschließlich Lightweight Classification Heads, Spatial-Channel Decoupled Downsampling und Rank-Guided Block Design.
- Verbesserte Modellfähigkeiten: Integriert großkernige Faltungen und partielle Selbstaufmerksamkeitsmodule, um die Leistung ohne signifikante Rechenkosten zu verbessern.
Modellvarianten
YOLOv10 ist in verschiedenen Modellskalierungen erhältlich, um unterschiedlichen Anwendungsanforderungen gerecht zu werden:
- YOLOv10n: Nano-Version für extrem ressourcenbeschränkte Umgebungen.
- YOLOv10s: Kleine Version, die Geschwindigkeit und Genauigkeit ausbalanciert.
- YOLOv10m: Mittlere Version für den allgemeinen Gebrauch.
- YOLOv10b: Ausgewogene Version mit erhöhter Breite für höhere Genauigkeit.
- YOLOv10l: Große Version für höhere Genauigkeit auf Kosten erhöhter Rechenressourcen.
- YOLOv10x: Extra-große Version für maximale Genauigkeit und Leistung.
Performance
YOLOv10 übertrifft frühere YOLO-Versionen und andere hochmoderne Modelle in Bezug auf Genauigkeit und Effizienz. Zum Beispiel ist YOLOv10s 1,8-mal schneller als RT-DETR-R18 mit ähnlicher AP auf dem COCO-Datensatz, und YOLOv10b weist 46 % weniger Latenz und 25 % weniger Parameter auf als YOLOv9-C bei gleicher Leistung.
Performance
Latenz gemessen mit TensorRT FP16 auf T4 GPU.
| Modell | Eingabegröße | APval | FLOPs (G) | Latenz (ms) |
|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | 6.7 | 1.84 |
| YOLOv10s | 640 | 46.3 | 21.6 | 2.49 |
| YOLOv10m | 640 | 51.1 | 59.1 | 4.74 |
| YOLOv10b | 640 | 52.5 | 92.0 | 5.74 |
| YOLOv10l | 640 | 53.2 | 120.3 | 7.28 |
| YOLOv10x | 640 | 54.4 | 160.4 | 10.70 |
Methodik
Konsistente Dual-Zuweisungen für NMS-freies Training
YOLOv10 verwendet duale Label-Zuweisungen, die One-to-Many- und One-to-One-Strategien während des Trainings kombinieren, um eine umfassende Supervision und eine effiziente End-to-End-Bereitstellung zu gewährleisten. Die konsistente Matching-Metrik gleicht die Supervision zwischen beiden Strategien ab und verbessert die Qualität der Vorhersagen während der Inferenz.
Ganzheitliches, von Effizienz und Genauigkeit getriebenes Modelldesign
Effizienzsteigerungen
- Lightweight Classification Head: Reduziert den Rechenaufwand des Klassifikations-Heads durch die Verwendung von Depth-Wise Separable Convolutions.
- Spatial-Channel Decoupled Downsampling: Entkoppelt die räumliche Reduktion und die Kanalmodulation, um Informationsverluste und Rechenkosten zu minimieren.
- Rank-Guided Block Design: Passt das Blockdesign basierend auf der intrinsischen Stufenredundanz an, um eine optimale Parameternutzung zu gewährleisten.
Genauigkeitsverbesserungen
- Large-Kernel Convolution: Vergrößert das rezeptive Feld, um die Fähigkeit zur Merkmalsextraktion zu verbessern.
- Partial Self-Attention (PSA): Integriert Self-Attention-Module, um das globale Repräsentationslernen mit minimalem Overhead zu verbessern.
Experimente und Ergebnisse
YOLOv10 wurde ausgiebig auf Standard-Benchmarks wie COCO getestet und demonstriert überlegene Leistung und Effizienz. Das Modell erzielt in verschiedenen Varianten State-of-the-Art-Ergebnisse und zeigt signifikante Verbesserungen bei Latenz und Genauigkeit im Vergleich zu früheren Versionen und anderen zeitgenössischen Detektoren.
Vergleiche

Verglichen mit anderen State-of-the-Art-Detektoren:
- YOLOv10s / x sind 1,8× / 1,3× schneller als RT-DETR-R18 / R101 mit ähnlicher Genauigkeit
- YOLOv10b hat 25 % weniger Parameter und eine 46 % geringere Latenz als YOLOv9-C bei gleicher Genauigkeit.
- YOLOv10l / x übertreffen YOLOv8l / x um 0,3 AP / 0,5 AP mit 1,8-fach / 2,3-fach weniger Parametern.
Performance
Hier ist ein detaillierter Vergleich von YOLOv10-Varianten mit anderen hochmodernen Modellen:
| Modell | Parameter (M) | FLOPs (G) | mAPval 50-95 | Latenz (ms) | Latenz-Forward (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 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
| YOLOv10n | 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 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
| YOLOv10s | 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 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 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 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Anwendungsbeispiele
Für die Vorhersage neuer Bilder mit YOLOv10:
Beispiel
from ultralytics import YOLO
# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform object detection on an image
results = model("image.jpg")
# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg
Für das Training von YOLOv10 auf einem benutzerdefinierten Datensatz:
Beispiel
from ultralytics import YOLO
# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg
Unterstützte Aufgaben und Modi
Die YOLOv10-Modellreihe bietet eine Reihe von Modellen, die jeweils für hochleistungsfähige Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Rechenanforderungen und Genauigkeitsbedürfnisse ab, was sie vielseitig für eine Vielzahl von Anwendungen macht.
| Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Training | Export |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Export von YOLOv10
Aufgrund der mit YOLOv10 eingeführten neuen Operationen werden derzeit nicht alle von Ultralytics bereitgestellten Exportformate unterstützt. Die folgende Tabelle zeigt auf, welche Formate mit Ultralytics für YOLOv10 erfolgreich konvertiert wurden. Gerne können Sie einen Pull Request öffnen, wenn Sie in der Lage sind, einen Beitrag zu leisten, um die Exportunterstützung für zusätzliche Formate für YOLOv10 hinzuzufügen.
| Exportformat | Exportunterstützung | Inferenz des exportierten Modells | Hinweise |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Standard-PyTorch-Modellformat. |
| ONNX | ✅ | ✅ | Weitgehend für die Bereitstellung unterstützt. |
| OpenVINO | ✅ | ✅ | Optimiert für Intel Hardware. |
| TensorRT | ✅ | ✅ | Optimiert für NVIDIA GPUs. |
| CoreML | ✅ | ✅ | Beschränkt auf Apple Geräte. |
| TF SavedModel | ✅ | ✅ | Das Standardmodellformat von TensorFlow. |
| TF GraphDef | ✅ | ✅ | Älteres TensorFlow Format. |
| TF Lite | ✅ | ✅ | Optimiert für mobile und eingebettete Systeme. |
| TF Edge TPU | ✅ | ✅ | Spezifisch für Googles Edge TPU Geräte. |
| TF.js | ✅ | ✅ | JavaScript-Umgebung für die Nutzung im Browser. |
| PaddlePaddle | ❌ | ❌ | Beliebt in China; weniger globaler Support. |
| NCNN | ✅ | ❌ | Schicht torch.topk existiert nicht oder ist nicht registriert |
Fazit
YOLOv10 setzt einen neuen Standard in der Echtzeit-Objekterkennung, indem es die Mängel früherer YOLO-Versionen behebt und innovative Designstrategien integriert. Seine Fähigkeit, hohe Genauigkeit bei geringen Rechenkosten zu liefern, macht es zu einer idealen Wahl für eine Vielzahl von realen Anwendungen, einschließlich Fertigung, Einzelhandel und autonomen Fahrzeugen.
Zitate und Danksagungen
Wir möchten den YOLOv10-Autoren der Tsinghua University für ihre umfassende Forschung und ihre bedeutenden Beiträge zum Ultralytics-Framework danken:
@article{THU-MIGyolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Ao Wang, Hui Chen, Lihao Liu, et al.},
journal={arXiv preprint arXiv:2405.14458},
year={2024},
institution={Tsinghua University},
license = {AGPL-3.0}
}
Für detaillierte Implementierungen, architektonische Innovationen und experimentelle Ergebnisse verweisen wir auf das YOLOv10 Forschungspapier und das GitHub-Repository des Teams der Tsinghua-Universität.
FAQ
Was ist YOLOv10 und wie unterscheidet es sich von früheren YOLO-Versionen?
YOLOv10, entwickelt von Forschern der Tsinghua University, führt mehrere Schlüssel-Innovationen in die Echtzeit-Objekterkennung ein. Es eliminiert die Notwendigkeit der Non-Maximum Suppression (NMS) durch den Einsatz konsistenter Dual-Assignments während des Trainings und optimierte Modellkomponenten für überlegene Leistung bei reduziertem Rechenaufwand. Weitere Details zu seiner Architektur und den wichtigsten Funktionen finden Sie im Abschnitt YOLOv10-Übersicht.
Wie fange ich mit der Inferenz mit YOLOv10 an?
Für eine einfache Inferenz können Sie die Ultralytics YOLO Python-Bibliothek oder die Befehlszeilenschnittstelle (CLI) verwenden. Nachfolgend finden Sie Beispiele für die Vorhersage neuer Bilder mit YOLOv10:
Beispiel
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg
Weitere Anwendungsbeispiele finden Sie in unserem Abschnitt Anwendungsbeispiele.
Welche Modellvarianten bietet YOLOv10 und welche Anwendungsfälle gibt es dafür?
YOLOv10 bietet mehrere Modellvarianten für unterschiedliche Anwendungsfälle an:
- YOLOv10n: Geeignet für extrem ressourcenbeschränkte Umgebungen
- YOLOv10s: Balanciert Geschwindigkeit und Genauigkeit
- YOLOv10m: Universell einsetzbar
- YOLOv10b: Höhere Genauigkeit durch erhöhte Breite
- YOLOv10l: Hohe Genauigkeit auf Kosten von Rechenressourcen
- YOLOv10x: Maximale Genauigkeit und Leistung
Jede Variante ist auf unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen zugeschnitten, wodurch sie vielseitig für eine Vielzahl von Anwendungen einsetzbar sind. Weitere Informationen finden Sie im Abschnitt Modellvarianten.
Wie verbessert der NMS-freie Ansatz in YOLOv10 die Leistung?
YOLOv10 eliminiert die Notwendigkeit der Non-Maximum Suppression (NMS) während der Inferenz durch den Einsatz konsistenter dualer Zuweisungen für das Training. Dieser Ansatz reduziert die Inferenzlatenz und verbessert die Vorhersageeffizienz. Die Architektur umfasst zudem einen One-to-One-Head für die Inferenz, der sicherstellt, dass jedes Objekt eine einzige beste Vorhersage erhält. Für eine detaillierte Erklärung siehe den Abschnitt „Consistent Dual Assignments for NMS-Free Training“.
Wo finde ich die Exportoptionen für YOLOv10-Modelle?
YOLOv10 unterstützt mehrere Exportformate, darunter TorchScript, ONNX, OpenVINO und TensorRT. Allerdings werden aufgrund seiner neuen Operationen derzeit nicht alle von Ultralytics bereitgestellten Exportformate für YOLOv10 unterstützt. Details zu den unterstützten Formaten und Anweisungen zum Export finden Sie im Abschnitt Exportieren von YOLOv10.
Welche Leistungsbenchmarks gibt es für YOLOv10-Modelle?
YOLOv10 übertrifft frühere YOLO-Versionen und andere hochmoderne Modelle sowohl in Bezug auf Genauigkeit als auch Effizienz. Zum Beispiel ist YOLOv10s 1,8-mal schneller als RT-DETR-R18 mit einer ähnlichen AP auf dem COCO-Datensatz. YOLOv10b weist 46 % weniger Latenz und 25 % weniger Parameter auf als YOLOv9-C bei gleicher Leistung. Detaillierte Benchmarks finden Sie im Abschnitt Vergleiche.