YOLOv10: End-to-End-Objekterkennung in Echtzeit
YOLOv10, aufbauend auf dem UltralyticsPython von Forschern der Tsinghua-Universität aufbaut, führt einen neuen Ansatz für die Objekterkennung in Echtzeit ein und behebt sowohl die Mängel bei der Nachbearbeitung als auch bei der Modellarchitektur, die in früheren YOLO festgestellt wurden. Durch die Eliminierung der Nicht-Maximum-UnterdrückungNMS) und die Optimierung verschiedener Modellkomponenten erreicht YOLOv10 modernste Leistung bei deutlich reduziertem Rechenaufwand. Ausführliche Experimente zeigen, dass das Verhältnis zwischen Genauigkeit und Latenz über mehrere Modellskalen hinweg überlegen ist.

Ansehen: Trainieren von YOLOv10 auf dem SKU-110k-Datensatz mit Ultralytics | Retail Dataset
Überblick
Die Objekterkennung in Echtzeit zielt darauf ab, Objektkategorien und -positionen in Bildern mit geringer Latenzzeit genau vorherzusagen. Die YOLO stand aufgrund ihres ausgewogenen Verhältnisses zwischen Leistung und Effizienz an der Spitze dieser Forschung. Die Abhängigkeit von NMS und die Unzulänglichkeiten der Architektur haben jedoch eine optimale Leistung verhindert. YOLOv10 geht diese Probleme an, indem es konsistente Doppelzuweisungen für NMS Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellentwicklungsstrategie einführt.
Architektur
Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO auf und führt gleichzeitig mehrere wichtige Innovationen 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.
- One-to-One Head: Erzeugt eine einzige beste Vorhersage pro Objekt während der Inferenz, um die Notwendigkeit von NMS zu eliminieren, wodurch die Latenzzeit reduziert und die Effizienz verbessert wird.
Hauptmerkmale
- NMS Training: Verwendet konsistente duale Zuweisungen, um die Notwendigkeit von NMS zu eliminieren und die Latenzzeit für die Inferenz zu reduzieren.
- 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 Modellgrößen erhältlich, um den 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 und andere hochmoderne Modelle in Bezug auf Genauigkeit und Effizienz. So ist YOLOv10s beispielsweise 1,8-mal schneller als RT-DETR mit ähnlichen AP auf dem COCO , und YOLOv10b hat 46 % weniger Latenz und 25 % weniger Parameter als YOLOv9 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 Doppelbelegung für NMS Ausbildung
YOLOv10 verwendet duale Label-Zuweisungen und kombiniert One-to-Many- und One-to-One-Strategien beim Training, um eine umfassende Überwachung und eine effiziente End-to-End-Bereitstellung 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.
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 mit Standard-Benchmarks wie COCOgetestet und dabei eine überragende Leistung und Effizienz nachgewiesen. Das Modell erzielt in verschiedenen Varianten Ergebnisse auf dem neuesten Stand der Technik und weist im Vergleich zu früheren Versionen und anderen aktuellen Detektoren erhebliche Verbesserungen bei Latenz und Genauigkeit auf.
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 um 46 % geringere Latenzzeit als YOLOv9 bei gleicher Genauigkeit
- YOLOv10l / x übertrifft YOLOv8l / x um 0,3 AP / 0,5 AP bei 1,8× / 2,3× weniger Parametern
Performance
Hier finden Sie einen detaillierten Vergleich der YOLOv10 mit anderen modernen Modellen:
| Modell | Parameter (M) | FLOPs (G) | mAPval 50-95 | Latenz (ms) | Latenz-Forward (ms) |
|---|---|---|---|---|---|
| YOLOv6.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.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.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.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 pre-trained 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 bietet eine Reihe von Modellen, die jeweils für eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle erfüllen unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen und sind somit vielseitig für eine breite Palette von Anwendungen einsetzbar.
| Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Training | Export |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
YOLOv10 exportieren
Aufgrund der neuen Operationen, die mit YOLOv10 eingeführt wurden, werden derzeit nicht alle von Ultralytics angebotenen Exportformate unterstützt. Die folgende Tabelle gibt einen Überblick darüber, welche Formate mit Ultralytics für YOLOv10 erfolgreich konvertiert wurden. Wenn Sie einen Beitrag leisten können, um die Exportunterstützung für weitere Formate für YOLOv10 hinzuzufügen, können Sie gerne eine Pull-Anfrage öffnen.
| 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 behebt und innovative Designstrategien einbezieht. Seine Fähigkeit, hohe Genauigkeit bei geringen Rechenkosten zu liefern, macht es zu einer idealen Wahl für eine breite Palette von realen Anwendungen, einschließlich Fertigung, Einzelhandel und autonome Fahrzeuge.
Zitate und Danksagungen
Wir möchten den YOLOv10 von der Tsinghua-Universität für ihre umfangreichen Forschungsarbeiten und ihre bedeutenden Beiträge zu diesem Projekt danken. Ultralytics Rahmenwerk:
@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}
}
Detaillierte Informationen zur Implementierung, zu architektonischen Innovationen und experimentellen Ergebnissen finden Sie imYOLOv10-Forschungspapier und im GitHub-Repository des Teams der Tsinghua-Universität.
FAQ
Was ist YOLOv10 und wie unterscheidet es sich von früheren YOLO ?
YOLOv10 wurde von Forschern der Tsinghua-Universität entwickelt und führt mehrere wichtige Innovationen für die Echtzeit-Objekterkennung ein. Durch den Einsatz konsistenter dualer Zuweisungen während des Trainings und optimierter Modellkomponenten für eine überlegene Leistung bei reduziertem Rechenaufwand entfällt die Notwendigkeit einer nicht-maximalen UnterdrückungNMS). Weitere Einzelheiten zur Architektur und den wichtigsten Funktionen finden Sie in der Übersicht zu YOLOv10 .
Wie kann ich mit YOLOv10 eine Inferenz durchführen?
Für einfache Schlussfolgerungen können Sie die Ultralytics YOLO Python oder die BefehlszeilenschnittstelleCLI) verwenden. Nachstehend finden Sie Beispiele für die Vorhersage neuer Bilder mit YOLOv10:
Beispiel
from ultralytics import YOLO
# Load the pre-trained 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 an und was sind ihre Einsatzmöglichkeiten?
YOLOv10 bietet mehrere Modellvarianten für unterschiedliche Einsatzzwecke:
- 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 Ansatz in YOLOv10 die Leistung?
YOLOv10 eliminiert die Notwendigkeit der Nicht-Maximum-SuppressionNMS) während der Inferenz durch die Verwendung von konsistenten dualen Zuweisungen für das Training. 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 detaillierte Erklärung finden Sie im Abschnitt Konsistente Doppelzuweisungen für NMS Training.
Wo finde ich die Exportoptionen für YOLOv10 ?
YOLOv10 unterstützt mehrere Exportformate, darunter TorchScript, ONNX, OpenVINO und TensorRT. Allerdings werden derzeit nicht alle von Ultralytics bereitgestellten Exportformate für YOLOv10 unterstützt, da es neue Funktionen gibt. Einzelheiten zu den unterstützten Formaten und Anweisungen zum Exportieren finden Sie im Abschnitt Exportieren von YOLOv10.
Wie lauten die Leistungsvergleiche für die YOLOv10 ?
YOLOv10 übertrifft frühere YOLO und andere State-of-the-Art-Modelle sowohl bei der Genauigkeit als auch bei der Effizienz. Zum Beispiel ist YOLOv10s 1,8x schneller als RT-DETR mit einem ähnlichen AP auf dem COCO . YOLOv10b zeigt 46% weniger Latenz und 25% weniger Parameter als YOLOv9 bei gleicher Leistung. Detaillierte Benchmarks sind im Abschnitt Vergleiche zu finden.