Zum Inhalt springen

YOLOv10: Ende-zu-Ende-Objekt-Erkennung in Echtzeit

YOLOv10, das auf dem Ultralytics Python Paket, das von Forschern der Tsinghua Universität entwickelt wurde, führt einen neuen Ansatz für die Objekterkennung in Echtzeit ein und behebt sowohl die Mängel der Nachbearbeitung als auch der Modellarchitektur, die in früheren Versionen von YOLO festgestellt wurden. Durch die Eliminierung der Nicht-Maximum-Unterdrückung (NMS) und die Optimierung verschiedener Modellkomponenten erreicht YOLOv10 die beste Leistung bei deutlich reduziertem Rechenaufwand. Ausführliche Experimente zeigen, dass YOLOv10 ein hervorragendes Verhältnis zwischen Genauigkeit und Latenz über mehrere Modellskalen hinweg bietet.

YOLOv10 konsequente Doppelbelegung für NMS-freie Ausbildung

Übersicht

Die Objekterkennung in Echtzeit zielt darauf ab, Objektkategorien und Positionen in Bildern mit geringer Latenzzeit genau vorherzusagen. Die YOLO Serie steht aufgrund ihrer Ausgewogenheit zwischen Leistung und Effizienz an der Spitze dieser Forschung. Allerdings haben die Abhängigkeit von NMS und die Unzulänglichkeiten der Architektur eine optimale Leistung behindert. YOLOv10 geht diese Probleme an, indem es konsistente Doppelzuweisungen für NMS-freies Training und eine ganzheitliche, auf Effizienz und Genauigkeit ausgerichtete Modellierungsstrategie einführt.

Architektur

Die Architektur von YOLOv10 baut auf den Stärken früherer YOLO Modelle auf und führt gleichzeitig einige wichtige Innovationen ein. Die Modellarchitektur besteht aus den folgenden Komponenten:

  1. Backbone: Das Backbone in YOLOv10, das für die Merkmalsextraktion zuständig ist, verwendet eine verbesserte Version von CSPNet (Cross Stage Partial Network), um den Gradientenfluss zu verbessern und Rechenredundanz zu reduzieren.
  2. Hals: Der Hals ist so konzipiert, dass er Merkmale aus verschiedenen Skalen zusammenfasst und an den Kopf weiterleitet. Er enthält PAN-Schichten (Path Aggregation Network) für die effektive Fusion von Merkmalen auf mehreren Ebenen.
  3. One-to-Many Head: Erzeugt während des Trainings mehrere Vorhersagen pro Objekt, um reichhaltige Überwachungssignale zu liefern und die Lerngenauigkeit zu verbessern.
  4. One-to-One Head: Erzeugt während der Inferenz eine einzige beste Vorhersage pro Objekt, um die NMS zu eliminieren und so die Latenzzeit zu reduzieren und die Effizienz zu verbessern.

Hauptmerkmale

  1. NMS-freies Training: Nutzt konsistente Doppelzuweisungen, um die Notwendigkeit von NMS zu eliminieren und so die Latenzzeit für Schlussfolgerungen zu reduzieren.
  2. Ganzheitliches Modelldesign: Umfassende Optimierung verschiedener Komponenten unter Effizienz- und Genauigkeitsgesichtspunkten, einschließlich leichtgewichtiger Klassifizierungsköpfe, räumlich-kanalentkoppelter Abwärtsabtastung und ranggesteuertem Blockdesign.
  3. Verbesserte Modellfähigkeiten: Durch den Einsatz von Large-Kernel-Convolutions und partiellen Self-Attention-Modulen wird die Leistung ohne große Rechenkosten verbessert.

Modell-Varianten

YOLOv10 gibt es in verschiedenen Modellgrößen, um den unterschiedlichen Anforderungen gerecht zu werden:

  • YOLOv10-N: Nano-Version für extrem ressourcenbeschränkte Umgebungen.
  • YOLOv10-S: Kleine Version mit einem ausgewogenen Verhältnis zwischen Geschwindigkeit und Genauigkeit.
  • YOLOv10-M: Mittlere Version für den allgemeinen Gebrauch.
  • YOLOv10-B: Ausgewogene Version mit größerer Breite für höhere Genauigkeit.
  • YOLOv10-L: Große Version für höhere Genauigkeit auf Kosten größerer Rechenressourcen.
  • YOLOv10-X: Die extragroße Version für maximale Genauigkeit und Leistung.

Leistung

YOLOv10 übertrifft frühere Versionen von YOLO und andere State-of-the-Art-Modelle in Bezug auf Genauigkeit und Effizienz. YOLOv10-S ist zum Beispiel 1,8-mal schneller als RT-DETR-R18 mit ähnlichen AP auf dem COCO-Datensatz, und YOLOv10-B hat 46% weniger Latenz und 25% weniger Parameter als YOLOv9-C bei gleicher Leistung.

Modell Eingabe Größe APval FLOPs (G) Latenzzeit (ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

Latenz gemessen mit TensorRT FP16 auf der T4 GPU.

Methodik

Konsistente Doppelzuweisungen für eine NMS-freie Ausbildung

YOLOv10 verwendet duale Label-Zuweisungen und kombiniert One-to-Many- und One-to-One-Strategien beim Training, um eine umfassende Überwachung und einen effizienten End-to-End-Einsatz 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.

Ganzheitlicher, auf Effizienz und Genauigkeit ausgerichteter Modellentwurf

Effizienzverbesserungen

  1. Leichter Klassifizierungskopf: Verringert den Rechenaufwand des Klassifizierungskopfes durch die Verwendung von tiefenmäßig trennbaren Faltungen.
  2. Spatial-Channel Decoupled Down Sampling: Entkoppelt räumliche Reduktion und Kanalmodulation, um den Informationsverlust und die Rechenkosten zu minimieren.
  3. Rank-Guided Block Design: Passt das Blockdesign basierend auf der Redundanz der einzelnen Stufen an und sorgt so für eine optimale Ausnutzung der Parameter.

Verbesserungen bei der Genauigkeit

  1. Large-Kernel Convolution: Vergrößert das rezeptive Feld, um die Fähigkeit zur Merkmalsextraktion zu verbessern.
  2. Partielle Selbstaufmerksamkeit (PSA): Integriert Selbstaufmerksamkeitsmodule, um das Lernen der globalen Repräsentation mit minimalem Overhead zu verbessern.

Experimente und Ergebnisse

YOLOv10 wurde ausgiebig in Standard-Benchmarks wie COCO getestet und hat dabei seine überragende Leistung und Effizienz bewiesen. Das Modell erzielt in verschiedenen Varianten die besten Ergebnisse und zeigt deutliche Verbesserungen bei Latenz und Genauigkeit im Vergleich zu früheren Versionen und anderen aktuellen Detektoren.

Vergleiche

YOLOv10 Vergleich mit SOTA Objektdetektoren

Im Vergleich zu anderen modernen Detektoren:

  • YOLOv10-S / X sind 1,8× / 1,3× schneller als RT-DETR-R18 / R101 bei ähnlicher Genauigkeit
  • YOLOv10-B hat 25% weniger Parameter und 46% weniger Latenz als YOLOv9-C bei gleicher Genauigkeit
  • YOLOv10-L / X übertrifft YOLOv8-L / X um 0,3 AP / 0,5 AP mit 1,8× / 2,3× weniger Parametern

Hier findest du einen detaillierten Vergleich der YOLOv10-Varianten mit anderen modernen Modellen:

Modell Params (M) FLOPs (G) APval (%) Latenzzeit (ms) Latenzzeit (Vorwärts) (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
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 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
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 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
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 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
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

Verwendungsbeispiele

Demnächst

Das Team von Ultralytics arbeitet aktiv an der offiziellen Integration der YOLOv10-Modelle in die ultralytics Paket. Sobald die Integration abgeschlossen ist, werden die unten gezeigten Anwendungsbeispiele voll funktionsfähig sein. Bitte bleibe auf dem Laufenden, indem du unseren sozialen Medien folgst und GitHub-Repository für die neuesten Updates zur YOLOv10-Integration. Wir freuen uns über deine Geduld und deine Begeisterung! 🚀

Für die Vorhersage neuer Bilder mit YOLOv10:

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

Fazit

YOLOv10 setzt neue Maßstäbe bei der Objekterkennung in Echtzeit, indem es die Mängel früherer Versionen von YOLO behebt und innovative Designstrategien einbezieht. Seine Fähigkeit, hohe Genauigkeit bei geringen Rechenkosten zu liefern, macht ihn zur idealen Wahl für eine Vielzahl von realen Anwendungen.

Zitate und Danksagungen

Wir möchten den YOLOv10-Autoren von der Tsinghua Universität für ihre umfangreiche Forschung und ihre wichtigen Beiträge zum 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, den architektonischen Neuerungen und den Versuchsergebnissen findest du in der YOLOv10-Forschungsarbeit und im GitHub-Repository des Teams der Tsinghua-Universität.



Created 2024-05-25, Updated 2024-06-10
Authors: glenn-jocher (3), RizwanMunawar (2)

Kommentare