Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv10: End-to-End Objekterkennung in Echtzeit#

YOLOv10, das im Mai 2024 veröffentlicht wurde und auf dem Ultralytics Python-Paket von Forschern der Tsinghua University basiert, führt einen neuen Ansatz für die Objekterkennung in Echtzeit ein, der sowohl die Mängel bei der Nachbearbeitung als auch in der Modellarchitektur früherer YOLO-Versionen behebt. Durch den Verzicht auf Non-Maximum Suppression (NMS) und die Optimierung verschiedener Modellkomponenten erreichte YOLOv10 zum Zeitpunkt seiner Veröffentlichung eine hervorragende Leistung bei deutlich reduziertem Rechenaufwand. Sein NMS-freies End-to-End-Design ebnete den Weg für einen Ansatz, der in YOLO26 weiterentwickelt wurde.

YOLOv10 konsistente duale Zuweisung für NMS-freies Training



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionÜbersicht#

Die Objekterkennung in Echtzeit zielt darauf ab, Objektkategorien und Positionen in Bildern mit geringer Latenz präzise vorherzusagen. Die YOLO-Serie ist aufgrund ihres Gleichgewichts zwischen Leistung und Effizienz führend in diesem Forschungsbereich. Die Abhängigkeit von NMS und architektonische Ineffizienzen haben jedoch eine optimale Leistung behindert. YOLOv10 geht diese Probleme durch die Einführung von konsistenten dualen Zuweisungen für NMS-freies Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellgestaltungsstrategie an.

Link to this sectionArchitektur#

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:

  1. 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.
  2. 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.
  3. One-to-Many Head: Erzeugt während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Überwachungssignale bereitzustellen und die Lerngenauigkeit zu verbessern.
  4. 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.

Link to this sectionHauptfunktionen#

  1. NMS-freies Training: Nutzt konsistente duale Zuweisungen, um NMS überflüssig zu machen und so die Inferenzlatenz zu reduzieren.
  2. 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.
  3. Erweiterte Modellfähigkeiten: Integriert Faltungen mit großen Kernen und partielle Self-Attention-Module, um die Leistung ohne nennenswerten Rechenaufwand zu verbessern.

Link to this sectionModellvarianten#

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.

Link to this sectionLeistung#

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 bei ähnlichem AP auf dem COCO-Datensatz, und YOLOv10b hat 46 % weniger Latenz und 25 % weniger Parameter als YOLOv9-C bei gleicher Leistung.

Leistung

Latenz gemessen mit TensorRT FP16 auf einer T4 GPU.

ModellEingabegrößeAPvalFLOPs (G)Latenz (ms)
[YOLOv10n][1]64038,56.71,84
[YOLOv10s][2]64046,321.62.49
[YOLOv10m][3]64051,159.14,74
[YOLOv10b][4]64052,592.05,74
[YOLOv10l][5]64053.2120.37,28
[YOLOv10x][6]64054.4160.410,70

Link to this sectionMethodik#

Link to this sectionKonsistente duale Zuweisungen für NMS-freies Training#

YOLOv10 verwendet duale Labelzuweisungen, die während des Trainings One-to-Many- und One-to-One-Strategien kombinieren, um eine reichhaltige Überwachung und effiziente End-to-End-Bereitstellung sicherzustellen. Die konsistente Matching-Metrik gleicht die Überwachung zwischen beiden Strategien ab und verbessert die Qualität der Vorhersagen während der Inferenz.

Link to this sectionGanzheitliches, auf Effizienz und Genauigkeit ausgerichtetes Modelldesign#

Link to this sectionEffizienzsteigerungen#

  1. Leichtgewichtiger Klassifizierungskopf: Reduziert den Rechenaufwand des Klassifizierungskopfes durch die Verwendung von tiefenorientierten, trennbaren Faltungen.
  2. Räumlich-kanalentkoppeltes Downsampling: Entkoppelt die räumliche Reduktion und die Kanalmodulation, um Informationsverlust und Rechenkosten zu minimieren.
  3. Ranggesteuertes Blockdesign: Passt das Blockdesign basierend auf der intrinsischen Redundanz der Stufe an und stellt so eine optimale Parameternutzung sicher.

Link to this sectionGenauigkeitsverbesserungen#

  1. Großkern-Faltung: Vergrößert das rezeptive Feld, um die Merkmalsextraktionsfähigkeit zu verbessern.
  2. Partielle Self-Attention (PSA): Integriert Self-Attention-Module, um das globale Repräsentationslernen mit minimalem Overhead zu verbessern.

Link to this sectionExperimente und Ergebnisse#

YOLOv10 wurde umfassend an Standard-Benchmarks wie COCO getestet und demonstriert eine überlegene Leistung und Effizienz. Das Modell erzielt bei verschiedenen Varianten modernste Ergebnisse und weist im Vergleich zu früheren Versionen und anderen zeitgenössischen Detektoren erhebliche Verbesserungen bei Latenz und Genauigkeit auf.

Link to this sectionVergleiche#

YOLOv10 Vergleich mit SOTA-Objektdetektoren

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-mal / 2,3-mal weniger Parametern
Leistung

Hier ist ein detaillierter Vergleich von YOLOv10-Varianten mit anderen hochmodernen Modellen:

ModellParameter
(M)
FLOPs
(G)
mAPval
50-95
Latenz
(ms)
Latenz-forward
(ms)
YOLOv6-3.0-N4.711.437,02,691,76
Gold-YOLO-N5.612,139,62,921,82
YOLOv8n3.28.737.36,161,77
YOLOv10n2.36.739.51,841,79
YOLOv6-3.0-S18.545.344.33,422,35
Gold-YOLO-S21,546.045.43,822.73
YOLOv8s11.228.644.97,072,33
YOLOv10s7,221,646,82,492,39
RT-DETR-R1820.060.046,54,584,49
YOLOv6-3.0-M34.985.849,15.634,56
Gold-YOLO-M41,387,549.86,385,45
YOLOv8m25,978,950.69.505.09
YOLOv10m15.459.151.34,744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053,19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68,2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

Params- und FLOPs-Werte beziehen sich auf das fusionierte Modell nach model.fuse(), das Conv- und BatchNorm-Schichten zusammenführt und den zusätzlichen One-to-Many-Erkennungskopf entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Werte aufweisen.

Link to this sectionAnwendungsbeispiele#

Zur Vorhersage neuer Bilder mit YOLOv10. Modelle können zudem über die Ultralytics Platform auf Cloud-GPUs trainiert werden:

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()

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)

Link to this sectionUnterstützte Aufgaben und Modi#

Die YOLOv10-Modellreihe bietet eine Auswahl an Modellen, die jeweils für leistungsstarke Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen ab und sind somit vielseitig für eine breite Palette an Anwendungen einsetzbar.

ModellDateinamenAufgabenInferenceValidationTrainingExportieren
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptObjekterkennung

Link to this sectionExportieren 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. Öffne gerne einen Pull Request, falls du einen Beitrag leisten kannst, um die Exportunterstützung für zusätzliche Formate für YOLOv10 hinzuzufügen.

ExportformatExportunterstützungInferenz exportierter ModelleHinweise
TorchScriptStandard PyTorch-Modellformat.
ONNXBreit unterstützt für die Bereitstellung.
OpenVINOOptimiert für Intel-Hardware.
TensorRTOptimiert für NVIDIA-GPUs.
CoreMLBeschränkt auf Apple-Geräte.
TF SavedModelTensorFlow Standard-Modellformat.
TF GraphDefLegacy TensorFlow-Format.
TF LiteOptimiert für Mobilgeräte und eingebettete Systeme.
TF Edge TPUSpezifisch für Google Edge TPU-Geräte.
TF.jsJavaScript-Umgebung für die Browser-Nutzung.
PaddlePaddlePopulär in China; geringere globale Unterstützung.
NCNNLayer torch.topk existiert nicht oder ist nicht registriert

Link to this sectionFazit#

YOLOv10 hat bei seiner Veröffentlichung einen neuen Standard für Echtzeit-Objekterkennung gesetzt, indem es die Mängel früherer YOLO-Versionen behob und innovative Designstrategien integrierte. Sein NMS-freier Ansatz war wegweisend für die End-to-End-Objekterkennung in der YOLO-Familie. Für das neueste Ultralytics-Modell mit verbesserter Leistung und NMS-freier Inferenz, siehe YOLO26.

Link to this sectionZitate und Danksagungen#

Wir möchten den YOLOv10-Autoren der Tsinghua University für ihre umfangreiche Forschung und ihre bedeutenden Beiträge zum Ultralytics-Framework danken:

Zitat
@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}
}

Für detaillierte Implementierungen, architektonische Innovationen und experimentelle Ergebnisse, siehe bitte das YOLOv10 Forschungspapier und das GitHub-Repository des Teams der Tsinghua University.

Link to this sectionFAQ#

Link to this sectionWas ist YOLOv10 und wie unterscheidet es sich von früheren YOLO-Versionen?#

YOLOv10, entwickelt von Forschern der Tsinghua University, führt mehrere wichtige Innovationen für die Echtzeit-Objekterkennung ein. Es eliminiert die Notwendigkeit für Non-Maximum Suppression (NMS), indem konsistente duale Zuweisungen während des Trainings und optimierte Modellkomponenten für überragende Leistung bei reduziertem Rechenaufwand eingesetzt werden. Weitere Details zur Architektur und den wichtigsten Funktionen findest du im Abschnitt YOLOv10-Übersicht.

Link to this sectionWie 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:

Beispiel
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

Für weitere Anwendungsbeispiele besuche unseren Bereich Anwendungsbeispiele.

Link to this sectionWelche 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 für unterschiedliche Rechen- und Genauigkeitsanforderungen konzipiert, was sie vielseitig für eine Vielzahl von Anwendungen macht. Erkunde den Abschnitt Modellvarianten für weitere Informationen.

Link to this sectionWie verbessert der NMS-freie Ansatz in YOLOv10 die Leistung?#

YOLOv10 eliminiert die Notwendigkeit für Non-Maximum Suppression (NMS) während der Inferenz, indem es konsistente duale Zuweisungen für das Training verwendet. Dieser Ansatz reduziert die Inferenzlatenz und steigert die Vorhersageeffizienz. Die Architektur enthält zudem einen Eins-zu-Eins-Head für die Inferenz, wodurch sichergestellt wird, dass jedes Objekt genau eine optimale Vorhersage erhält. Für eine detaillierte Erläuterung siehe den Abschnitt Konsistente duale Zuweisungen für NMS-freies Training.

Link to this sectionWo finde ich die Exportoptionen für YOLOv10-Modelle?#

YOLOv10 unterstützt verschiedene Exportformate, darunter TorchScript, ONNX, OpenVINO und TensorRT. Aufgrund seiner neuen Operationen werden jedoch derzeit nicht alle von Ultralytics bereitgestellten Exportformate für YOLOv10 unterstützt. Details zu den unterstützten Formaten und Anleitungen zum Exportieren findest du im Abschnitt Exportieren von YOLOv10.

Link to this sectionWas sind die Leistungs-Benchmarks für YOLOv10-Modelle?#

YOLOv10 übertrifft frühere YOLO-Versionen und andere hochmoderne Modelle sowohl in der Genauigkeit als auch in der Effizienz. Zum Beispiel ist YOLOv10s 1,8-mal schneller als RT-DETR-R18 bei vergleichbarer AP auf dem COCO-Datensatz. YOLOv10b zeigt 46 % weniger Latenz und 25 % weniger Parameter als YOLOv9-C bei gleicher Leistung. Detaillierte Benchmarks finden sich im Bereich Vergleiche.

Kommentare