YOLOv10: End-to-End Objekterkennung in Echtzeit#
YOLOv10, im Mai 2024 veröffentlicht und basierend auf dem Ultralytics Python-Paket von Forschern der Tsinghua-Universität, führt einen neuen Ansatz zur Echtzeit-Objekterkennung ein und behebt dabei sowohl die Defizite bei der Nachbearbeitung als auch bei der Modellarchitektur in vorherigen YOLO-Versionen. Durch den Verzicht auf Non-Maximum Suppression (NMS) und die Optimierung verschiedener Modellkomponenten erzielte YOLOv10 zum Zeitpunkt seiner Veröffentlichung eine hervorragende Leistung bei deutlich reduziertem Rechenaufwand. Sein NMS-freies End-to-End-Design war wegweisend für einen Ansatz, der in YOLO26 weiterentwickelt wurde.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
Übersicht#
Die Echtzeit-Objekterkennung zielt darauf ab, Objektkategorien und -positionen in Bildern mit gering Latenz präzise vorherzusagen. Die YOLO-Serie stand aufgrund ihres Gleichgewichts zwischen Leistung und Effizienz an der Spitze dieser Forschung. Dennoch haben die Abhängigkeit von NMS und architektonische Ineffizienzen eine optimale Leistung behindert. YOLOv10 begegnet diesen Problemen durch die Einführung konsistenter dualer Zuweisungen für ein NMS-freies Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellungsstrategie.
Architektur#
Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO-Modelle auf und führt gleichzeitig mehrere wichtige Innovationen ein. Die Modellarchitektur besteht aus den folgenden Komponenten:
- Backbone: Verantwortlich für die Merkmalsextraktion; der Backbone in YOLOv10 verwendet eine verbesserte Version von CSPNet (Cross Stage Partial Network), um den Gradientenfluss zu verbessern und redundante Berechnungen zu reduzieren.
- Neck: Der Neck ist so konzipiert, dass er Merkmale aus verschiedenen Skalen aggregiert und an den Head weiterleitet. Er enthält PAN-Schichten (Path Aggregation Network) für eine effektive multiskalare Merkmalsfusion.
- One-to-Many Head: Erzeugt während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Überwachungssignale bereitzustellen und die Lerngenauigkeit zu verbessern.
- One-to-One Head: Erzeugt während der Inferenz eine einzige beste Vorhersage pro Objekt, um NMS überflüssig zu machen und so die Latenz zu reduzieren und die Effizienz zu verbessern.
Hauptfunktionen#
- NMS-freies Training: Nutzt konsistente duale Zuweisungen, um NMS überflüssig zu machen und die Inferenzlatenz zu reduzieren.
- Ganzheitliches Modelldesign: Umfassende Optimierung verschiedener Komponenten sowohl aus Effizienz- als auch aus Genauigkeitsperspektive, einschließlich leichtgewichtiger Klassifizierungsköpfe, räumlich-kanalentkoppelter Downsampling-Methoden und ranggesteuertem Blockdesign.
- Erweiterte Modellfunktionen: Integriert Faltungen mit großen Kerneln und partielle Self-Attention-Module zur Leistungssteigerung ohne nennenswerten Rechenaufwand.
Modellvarianten#
YOLOv10 ist in verschiedenen Modellgrößen erhältlich, um unterschiedlichen Anwendungsanforderungen gerecht zu werden:
- YOLOv10n: Nano-Version für Umgebungen mit extrem begrenzten Ressourcen.
- 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.
Leistung#
YOLOv10 übertrifft vorherige YOLO-Versionen und andere State-of-the-Art-Modelle in Bezug auf Genauigkeit und Effizienz. Beispielsweise ist YOLOv10s bei ähnlicher AP auf dem COCO-Datensatz 1,8-mal schneller als RT-DETR-R18, und YOLOv10b weist bei gleicher Leistung eine um 46 % geringere Latenz und 25 % weniger Parameter auf als YOLOv9-C.
Latenz gemessen mit TensorRT FP16 auf einer T4 GPU.
| 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 duale Zuweisungen für NMS-freies Training#
YOLOv10 verwendet duale Label-Zuweisungen und kombiniert während des Trainings One-to-Many- und One-to-One-Strategien, um eine reichhaltige Überwachung und eine effiziente End-to-End-Bereitstellung sicherzustellen. Die Metrik für die konsistente Übereinstimmung gleicht die Überwachung zwischen beiden Strategien an und verbessert so die Qualität der Vorhersagen während der Inferenz.
Ganzheitliches, auf Effizienz und Genauigkeit ausgerichtetes Modelldesign#
Effizienzsteigerungen#
- Leichtgewichtiger Klassifizierungskopf: Reduziert den Rechenaufwand des Klassifizierungskopfes durch die Verwendung von tiefenorientierten, trennbaren Faltungen.
- Räumlich-kanalentkoppeltes Downsampling: Entkoppelt die räumliche Reduktion und die Kanalmodulation, um Informationsverlust und Rechenkosten zu minimieren.
- Ranggesteuertes Blockdesign: Passt das Blockdesign basierend auf der intrinsischen Redundanz der Stufe an und stellt so eine optimale Parameternutzung sicher.
Genauigkeitsverbesserungen#
- Faltung mit großem Kernel: Vergrößert das rezeptive Feld, um die Fähigkeit zur Merkmalsextraktion zu verbessern.
- Partielle Self-Attention (PSA): Integriert Self-Attention-Module, um das globale Repräsentationslernen mit minimalem Overhead zu verbessern.
Experimente und Ergebnisse#
YOLOv10 wurde ausgiebig an Standard-Benchmarks wie COCO getestet und zeigt überlegene Leistung und Effizienz. Das Modell erzielt bei verschiedenen Varianten herausragende Ergebnisse und weist im Vergleich zu Vorgängerversionen und anderen modernen Detektoren signifikante Verbesserungen hinsichtlich Latenz und Genauigkeit auf.
Vergleiche#

Im Vergleich zu anderen hochmodernen Detektoren:
- YOLOv10s / x sind 1,8-mal / 1,3-mal schneller als RT-DETR-R18 / R101 bei ähnlicher Genauigkeit
- YOLOv10b hat 25 % weniger Parameter und 46 % geringere Latenz als YOLOv9-C bei gleicher Genauigkeit
- YOLOv10l / x übertreffen YOLOv8l / x um 0,3 AP / 0,5 AP bei 1,8× / 2,3× weniger Parametern
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 |
Parameter- und FLOPs-Werte gelten für das fusionierte Modell nach model.fuse(), welches Conv- und BatchNorm-Schichten zusammenführt und den辅助 One-to-Many-Erkennungskopf entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Werte aufweisen.
Anwendungsbeispiele#
Für die Vorhersage neuer Bilder mit YOLOv10. Modelle können auch über die Ultralytics Platform auf Cloud-GPUs trainiert werden:
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()Für das Training von YOLOv10 auf einem benutzerdefinierten Datensatz:
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)Unterstützte Aufgaben und Modi#
Die YOLOv10-Modellreihe bietet eine Reihe von Modellen, von denen jedes für eine hochleistungsfähige Objekterkennung optimiert ist. Diese Modelle decken unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ab und sind dadurch vielseitig für eine breite Palette von Anwendungen einsetzbar.
| Modell | Dateinamen | Aufgaben | Training | Validation | Inference | Exportieren |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Exportieren von YOLOv10#
Aufgrund der neuen Operationen, die mit YOLOv10 eingeführt wurden, werden derzeit nicht alle von Ultralytics bereitgestellten Exportformate unterstützt. Die folgende Tabelle zeigt, welche Formate erfolgreich mit Ultralytics für YOLOv10 konvertiert wurden. Erstelle gerne einen Pull Request, wenn du in der Lage bist, einen Beitrag zu leisten, um die Exportunterstützung für zusätzliche Formate für YOLOv10 hinzuzufügen.
| Exportformat | Exportunterstützung | Inferenz exportierter Modelle | Hinweise |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Standard-Modellformat von PyTorch. |
| ONNX | ✅ | ✅ | Breit unterstützt für die Bereitstellung. |
| OpenVINO | ✅ | ✅ | Optimiert für Intel-Hardware. |
| TensorRT | ✅ | ✅ | Optimiert für NVIDIA-GPUs. |
| CoreML | ✅ | ✅ | Beschränkt auf Apple-Geräte. |
| TF SavedModel | ✅ | ✅ | Standard-Modellformat von TensorFlow. |
| TF GraphDef | ✅ | ✅ | Legacy TensorFlow-Format. |
| LiteRT | ✅ | ✅ | Optimiert für Mobilgeräte, eingebettete Systeme und Browser (LiteRT.js). |
| TF Edge TPU | ✅ | ✅ | Spezifisch für Google Edge TPU-Geräte. |
| PaddlePaddle | ❌ | ❌ | Populär in China; geringere globale Unterstützung. |
| NCNN | ✅ | ❌ | Schicht torch.topk nicht vorhanden oder registriert |
Fazit#
YOLOv10 hat bei seiner Veröffentlichung einen neuen Standard in der Echtzeit-Objekterkennung gesetzt, indem es die Mängel früherer YOLO-Versionen behoben und innovative Designstrategien integriert hat. Sein NMS-freier Ansatz war wegweisend für die End-to-End-Objekterkennung in der YOLO-Familie. 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 Forschung und ihre 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 Innovationen und zu experimentellen Ergebnissen 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, entwickelt von Forschern der Tsinghua-Universität, führt mehrere wichtige Innovationen für die Echtzeit-Objekterkennung ein. Es macht Non-Maximum Suppression (NMS) überflüssig, indem es konsistente duale Zuweisungen beim Training und optimierte Modellkomponenten für eine überlegene Leistung bei reduziertem Rechenaufwand einsetzt. Weitere Details zur Architektur und den Hauptmerkmalen findest du im Abschnitt YOLOv10-Übersicht.
Wie kann ich mit der Inferenz mittels YOLOv10 beginnen?#
Für eine einfache Inferenz kannst du die Ultralytics YOLO Python-Bibliothek oder die Befehlszeilenschnittstelle (CLI) verwenden. Unten findest du Beispiele für die Vorhersage neuer Bilder mit YOLOv10:
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()Weitere Anwendungsbeispiele findest du in unserem Abschnitt Nutzungsbeispiele.
Welche Modellvarianten bietet YOLOv10 und was sind ihre Anwendungsfälle?#
YOLOv10 bietet verschiedene Modellvarianten, um unterschiedlichen Anwendungsfällen gerecht zu werden:
- YOLOv10n: Geeignet für Umgebungen mit extrem begrenzten Ressourcen
- YOLOv10s: Bietet ein Gleichgewicht zwischen Geschwindigkeit und Genauigkeit
- YOLOv10m: Universeller Einsatz
- YOLOv10b: Höhere Genauigkeit durch vergrößerte Breite
- YOLOv10l: Hohe Genauigkeit auf Kosten von Rechenressourcen
- YOLOv10x: Maximale Genauigkeit und Leistung
Jede Variante ist auf unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ausgelegt, wodurch sie für eine Vielzahl von Anwendungen vielseitig einsetzbar ist. Entdecke den Abschnitt Modellvarianten für weitere Informationen.
Wie verbessert der NMS-freie Ansatz in YOLOv10 die Leistung?#
YOLOv10 macht Non-Maximum Suppression (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 Vorhersageeffizienz. Die Architektur enthält zudem einen One-to-One-Kopf für die Inferenz, der sicherstellt, dass jedes Objekt eine einzige beste Vorhersage erhält. Eine detaillierte Erläuterung findest du im Abschnitt Konsistente duale Zuweisungen 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. Aufgrund der neuen Operationen werden jedoch derzeit nicht alle von Ultralytics bereitgestellten Exportformate für YOLOv10 unterstützt. Details zu den unterstützten Formaten und Anweisungen zum Exportieren findest du im Abschnitt YOLOv10 exportieren.
Was sind die Leistungs-Benchmarks für YOLOv10-Modelle?#
YOLOv10 übertrifft vorherige YOLO-Versionen und andere State-of-the-Art-Modelle sowohl in Bezug auf Genauigkeit als auch Effizienz. Beispielsweise ist YOLOv10s bei ähnlicher AP auf dem COCO-Datensatz 1,8-mal schneller als RT-DETR-R18. YOLOv10b weist bei gleicher Leistung eine um 46 % geringere Latenz und 25 % weniger Parameter auf als YOLOv9-C. Detaillierte Benchmarks sind im Abschnitt Vergleiche zu finden.