YOLOv10: Echtzeit-Objekterkennung von Anfang bis Ende#
YOLOv10 wurde im Mai 2024 veröffentlicht und basiert auf dem Ultralytics-Python-Paket, das von Forschenden der Tsinghua University entwickelt wurde. Das Modell führt einen neuen Ansatz für die Echtzeit-Objekterkennung ein und behebt sowohl Schwächen bei der Nachverarbeitung als auch bei der Modellarchitektur früherer YOLO-Versionen. Durch den Verzicht auf die nichtmaximale Unterdrückung (NMS) und die Optimierung verschiedener Modellkomponenten erzielte YOLOv10 zum Zeitpunkt seiner Veröffentlichung hervorragende Leistung bei deutlich geringerem Rechenaufwand. Sein NMS-freies End-to-End-Design ebnete den Weg für einen Ansatz, der in YOLO26 weiterentwickelt wurde.

Ansehen: So trainierst du YOLOv10 mit dem SKU-110k-Datensatz über Ultralytics | Einzelhandelsdatensatz
Übersicht#
Echtzeit-Objekterkennung zielt darauf ab, Objektklassen und -positionen in Bildern präzise und mit geringer Latenz vorherzusagen. Die YOLO-Serie steht dank ihres ausgewogenen Verhältnisses von Leistung und Effizienz an der Spitze dieser Forschung. Die Abhängigkeit von NMS und Ineffizienzen in der Architektur haben jedoch eine optimale Leistung verhindert. YOLOv10 begegnet diesen Problemen mit konsistenten dualen Zuordnungen für NMS-freies Training und einer ganzheitlichen Strategie für ein modellseitiges Gleichgewicht zwischen Effizienz und Genauigkeit.
Architektur#
Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO-Modelle auf und führt zugleich mehrere wichtige Neuerungen ein. Die Modellarchitektur besteht aus folgenden Komponenten:
- Backbone: Das Backbone von YOLOv10 ist für die Merkmalsextraktion zuständig und verwendet eine verbesserte Version von CSPNet (Cross-Stage-Partial-Netzwerk), um den Gradientenfluss zu verbessern und rechnerische Redundanzen zu verringern.
- Neck: Der Neck fasst Merkmale aus verschiedenen Skalen zusammen und leitet sie an den Head weiter. Er umfasst PAN-Schichten (Path-Aggregation-Netzwerk) für eine effektive Fusion von Merkmalen aus mehreren Skalen.
- One-to-Many-Head: Erzeugt während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Lernsignale bereitzustellen und die Lernpräzision zu verbessern.
- One-to-One-Kopf: Erzeugt während der Inferenz für jedes Objekt genau eine beste Vorhersage. Dadurch entfällt NMS, was die Latenz verringert und die Effizienz verbessert.
Wichtige Funktionen#
- NMS-freies Training: Verwendet konsistente doppelte Zuweisungen, um NMS überflüssig zu machen und die Inferenzlatenz zu verringern.
- Ganzheitliches Modelldesign: Umfassende Optimierung verschiedener Komponenten im Hinblick auf Effizienz und Genauigkeit, darunter leichte Klassifizierungsköpfe, räumlich-kanalweise entkoppeltes Downsampling und ein ranggesteuertes Blockdesign.
- Erweiterte Modellfunktionen: Integriert Faltungen mit großen Kerneln und partielle Self-Attention-Module, um die Leistung ohne nennenswerten Rechenaufwand zu verbessern.
Modellvarianten#
YOLOv10 ist in verschiedenen Modellgrößen erhältlich, um unterschiedlichen Anwendungsanforderungen gerecht zu werden:
- YOLOv10n: Nano-Version für Umgebungen mit äußerst begrenzten Ressourcen.
- YOLOv10s: Small-Version als ausgewogene Kombination aus Geschwindigkeit und Genauigkeit.
- YOLOv10m: Medium-Version für den allgemeinen Einsatz.
- YOLOv10b: Ausgewogene Version mit größerer Breite für höhere Genauigkeit.
- YOLOv10l: Large-Version für höhere Genauigkeit bei entsprechend höherem Rechenaufwand.
- YOLOv10x: Extra-Large-Version für maximale Genauigkeit und Leistung.
Leistung#
YOLOv10 übertrifft frühere YOLO-Versionen und andere hochmoderne Modelle hinsichtlich Genauigkeit und Effizienz. So ist YOLOv10s beispielsweise 1,8-mal schneller als RT-DETR-R18 und erzielt eine ähnliche AP auf dem COCO-Datensatz. YOLOv10b weist bei gleicher Leistung eine um 46 % geringere Latenz und 25 % weniger Parameter auf als YOLOv9-C.
Die Latenz wurde mit TensorRT FP16 auf einer T4 GPU gemessen.
| Modell | Eingabegröße | APval | FLOPs (G) | Latenz (ms) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1.84 |
| [YOLOv10s][2] | 640 | 46.3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4.74 |
| [YOLOv10b][4] | 640 | 52.5 | 92.0 | 5.74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7.28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10.70 |
Methodik#
Konsistente doppelte Zuweisungen für NMS-freies Training#
YOLOv10 verwendet beim Training doppelte Label-Zuweisungen und kombiniert One-to-Many- und One-to-One-Strategien, um eine umfassende Überwachung und eine effiziente End-to-End-Bereitstellung zu gewährleisten. Bei Vorhersagen und der Validierung mit Ultralytics wird standardmäßig der One-to-Many-Kopf mit NMS verwendet; setze nms=False, um den NMS-freien Kopf auszuwählen. Die konsistente Zuordnungsmetrik stimmt die Überwachung beider Strategien aufeinander ab und verbessert so die Qualität der Vorhersagen während der Inferenz.
Ganzheitliches Modelldesign mit Fokus auf Effizienz und Genauigkeit#
Effizienzsteigerungen#
- Leichter Klassifizierungskopf: Verringert den Rechenaufwand des Klassifizierungskopfs durch tiefenweise separierbare Faltungen.
- Entkoppeltes räumliches und kanalbezogenes Downsampling: Entkoppelt die räumliche Verkleinerung und die Kanalmodulation, um Informationsverlust und Rechenaufwand zu minimieren.
- Ranggesteuertes Blockdesign: Passt das Blockdesign an die intrinsische Redundanz der jeweiligen Stufe an, um eine optimale Parameternutzung sicherzustellen.
Genauigkeitssteigerungen#
- Faltung mit großem Kernel: Vergrößert das rezeptive Feld, um die Fähigkeit zur Merkmalsextraktion zu verbessern.
- Partielle Self-Attention (PSA): Verwendet Self-Attention-Module, um das Lernen globaler Repräsentationen mit minimalem Mehraufwand zu verbessern.
Experimente und Ergebnisse#
YOLOv10 wurde umfassend auf Standard-Benchmarks wie COCO getestet und zeigt dabei überlegene Leistung und Effizienz. Das Modell erzielt bei verschiedenen Varianten Ergebnisse auf dem neuesten Stand der Technik und weist gegenüber früheren Versionen und anderen aktuellen Detektoren deutliche Verbesserungen bei Latenz und Genauigkeit auf.
Vergleiche#

Im Vergleich zu anderen hochmodernen Detektoren:
- YOLOv10s / x sind 1,8× / 1,3× schneller als RT-DETR-R18 / R101 und erzielen eine ähnliche Genauigkeit
- YOLOv10b hat bei gleicher Genauigkeit 25 % weniger Parameter und eine um 46 % geringere Latenz als YOLOv9-C
- YOLOv10l / x übertreffen YOLOv8l / x um 0,3 AP / 0,5 AP und benötigen 1,8× / 2,3× weniger Parameter
Die folgenden Werte stammen aus der YOLOv10-Studie und wurden nach deren eigenem Protokoll gemessen. Daher sind sie nicht direkt mit den Werten auf den Ultralytics-Modellseiten vergleichbar:
| Modell | Parameter (M) | FLOPs (G) | mAPval 50-95 | Latenz (ms) | Vorwärtslatenz (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 | 38.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.3 | 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.1 | 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.2 | 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 |
Die Werte für Parameter und FLOPs beziehen sich auf das zusammengeführte Modell nach model.fuse(). Dabei werden Conv- und BatchNorm-Schichten zusammengeführt und der zusätzliche One-to-Many-Erkennungskopf entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können daher höhere Werte aufweisen.
Anwendungsbeispiele#
Modelle können auch auf Cloud-GPUs über die Ultralytics Platform trainiert werden. So führst du mit YOLOv10 Vorhersagen für neue Bilder aus:
from ultralytics import YOLO
# Ein vortrainiertes YOLOv10n-Modell laden
model = YOLO("yolov10n.pt")
# Objekterkennung in einem Bild durchführen
results = model("image.jpg")
# Ergebnisse anzeigen
results[0].show()So trainierst du YOLOv10 mit einem benutzerdefinierten Datensatz:
from ultralytics import YOLO
# YOLOv10n-Modell von Grund auf laden
model = YOLO("yolov10n.yaml")
# Das Modell trainieren
model.train(data="coco8.yaml", epochs=100, imgsz=640)Unterstützte Aufgaben und Modi#
Die YOLOv10-Modellreihe umfasst verschiedene Modelle, die jeweils für leistungsstarke Objekterkennung optimiert sind. Die Modelle eignen sich für unterschiedliche Rechenkapazitäten und Genauigkeitsanforderungen und sind dadurch vielseitig für zahlreiche Anwendungsbereiche einsetzbar.
| Modell | Dateinamen | Aufgaben | Training | Validierung | Inferenz | Exportieren |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10b.pt yolov10l.pt yolov10x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
YOLOv10 exportieren#
Aufgrund der mit YOLOv10 eingeführten neuen Operationen werden derzeit nicht alle von Ultralytics bereitgestellten Exportformate unterstützt. Die folgende Tabelle zeigt, welche Formate sich mit Ultralytics erfolgreich für YOLOv10 konvertieren lassen. Erstelle gern einen Pull Request, wenn du einen Beitrag zur Unterstützung zusätzlicher Exportformate für YOLOv10 leisten kannst.
| Exportformat | Exportunterstützung | Inferenz mit exportiertem Modell | Hinweise |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Standardmäßiges PyTorch-Modellformat. |
| ONNX | ✅ | ✅ | Weitgehend für die Bereitstellung unterstützt. |
| OpenVINO | ✅ | ✅ | Für Intel-Hardware optimiert. |
| TensorRT | ✅ | ✅ | Für NVIDIA GPUs optimiert. |
| CoreML | ✅ | ✅ | Auf Apple-Geräte beschränkt. |
| TF SavedModel | ✅ | ✅ | Standardmäßiges Modellformat von TensorFlow. |
| TF GraphDef | ✅ | ✅ | Veraltetes TensorFlow-Format. |
| TF Edge TPU | ✅ | ✅ | Speziell für die Edge TPU-Geräte von Google. |
| LiteRT | ✅ | ✅ | Für Mobilgeräte, eingebettete Systeme und Browser (LiteRT.js) optimiert. |
| PaddlePaddle | ❌ | ❌ | In China beliebt; außerhalb davon weniger verbreitet. |
| NCNN | ✅ | ❌ | Der Operator torch.topk wird von der NCNN-Laufzeitumgebung nicht unterstützt. |
Fazit#
YOLOv10 setzte bei seiner Veröffentlichung einen neuen Maßstab für die Objekterkennung in Echtzeit, indem es die Schwächen früherer YOLO-Versionen behob und innovative Designstrategien einführte. Der NMS-freie Ansatz ebnete innerhalb der YOLO-Familie den Weg für die End-to-End-Objekterkennung. Das neueste Ultralytics-Modell mit verbesserter Leistung und NMS-freier Inferenz findest du unter YOLO26.
Zitate und Danksagungen#
Wir möchten den YOLOv10-Autoren der Tsinghua-Universität für ihre umfangreiche Forschungsarbeit und bedeutenden Beiträge zum Ultralytics-Framework danken:
@inproceedings{wang2024yolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
booktitle={Advances in Neural Information Processing Systems},
doi = {10.52202/079017-3429},
url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
volume={37},
pages={107984--108011},
year={2024}
}Ausführliche Informationen zur Implementierung, zu architektonischen Neuerungen und zu den Versuchsergebnissen findest du in der Forschungsarbeit zu YOLOv10 und im GitHub-Repository des Teams der Tsinghua-Universität.
Häufig gestellte Fragen#
YOLOv10 wurde von Forschenden der Tsinghua-Universität entwickelt und führt mehrere wichtige Neuerungen für die Objekterkennung in Echtzeit ein. Durch konsistente doppelte Zuweisungen während des Trainings und optimierte Modellkomponenten entfällt die nicht-maximale Unterdrückung (NMS). So bietet das Modell eine überlegene Leistung bei geringerem Rechenaufwand. Weitere Informationen zu Architektur und wichtigsten Funktionen findest du im Abschnitt YOLOv10 im Überblick.
Für einfache Inferenz kannst du die Ultralytics YOLO Python-Bibliothek oder die Befehlszeilenschnittstelle (CLI) verwenden. Im Folgenden findest du Beispiele für Vorhersagen mit neuen Bildern mithilfe von YOLOv10:
Beispielfrom ultralytics import YOLO # Das vortrainierte YOLOv10n-Modell laden model = YOLO("yolov10n.pt") results = model("image.jpg") results[0].show()Weitere Anwendungsbeispiele findest du im Abschnitt Anwendungsbeispiele.
YOLOv10 bietet mehrere Modellvarianten für unterschiedliche Anwendungsfälle:
- YOLOv10n: Geeignet für Umgebungen mit äußerst begrenzten Ressourcen
- YOLOv10s: Bietet eine ausgewogene Kombination aus Geschwindigkeit und Genauigkeit
- YOLOv10m: Für den allgemeinen Einsatz
- YOLOv10b: Höhere Genauigkeit durch größere Breite
- YOLOv10l: Hohe Genauigkeit bei entsprechendem Rechenaufwand
- YOLOv10x: Maximale Genauigkeit und Leistung
Jede Variante ist auf unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ausgelegt und eignet sich dadurch für vielfältige Anwendungen. Weitere Informationen findest du im Abschnitt Modellvarianten.
YOLOv10 wird mit konsistenten dualen Zuordnungen trainiert, sodass der Eins-zu-eins-Kopf für jedes Objekt die beste einzelne Vorhersage erzeugt. Dadurch ist bei der Inferenz keine nichtmaximale Unterdrückung (NMS) erforderlich. Die Vorhersage und Validierung in Ultralytics verwenden standardmäßig den Eins-zu-viele-Kopf mit NMS; setze
nms=False, um den NMS-freien Kopf auszuwählen und den NMS-Schritt zu überspringen. Eine ausführliche Erklärung findest du im Abschnitt Konsistente duale Zuordnungen für NMS-freies Training.YOLOv10 unterstützt mehrere Exportformate, darunter TorchScript, ONNX, OpenVINO und TensorRT. Aufgrund seiner neuen Operationen werden derzeit jedoch nicht alle von Ultralytics angebotenen Exportformate für YOLOv10 unterstützt. Details zu den unterstützten Formaten und Anweisungen zum Exportieren findest du im Abschnitt YOLOv10 exportieren.
YOLOv10 übertrifft frühere YOLO-Versionen und andere hochmoderne Modelle sowohl bei der Genauigkeit als auch bei der Effizienz. So ist YOLOv10s beispielsweise 1,8-mal schneller als RT-DETR-R18 und erzielt auf dem COCO-Datensatz einen ähnlichen AP-Wert. YOLOv10b weist bei gleicher Leistung eine um 46 % geringere Latenz und 25 % weniger Parameter als YOLOv9-C auf. Ausführliche Benchmarks findest du im Abschnitt Vergleiche.