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

Latenzzeit gemessen mit TensorRT FP16 auf 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)
mAPval
50-95
Latenzzeit
(ms)
Latenzzeit-Weiterleitung
(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

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 eigenen 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-Modellreihe bietet eine Reihe von Modellen, die jeweils f├╝r eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle erf├╝llen unterschiedliche Anforderungen an die Rechenleistung und die Genauigkeit, was sie f├╝r eine Vielzahl von Anwendungen geeignet macht.

Modell Dateinamen Aufgaben Inferenz Validierung Ausbildung exportieren
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt Objekt-Erkennung Ôťů Ôťů Ôťů Ôťů

Exportieren von YOLOv10

Aufgrund der neuen Operationen, die mit YOLOv10 eingef├╝hrt wurden, werden derzeit nicht alle Exportformate von Ultralytics unterst├╝tzt. Die folgende Tabelle zeigt, welche Formate mit Ultralytics f├╝r YOLOv10 erfolgreich konvertiert wurden. Wenn du einen Beitrag leisten kannst, um den Export weiterer Formate f├╝r YOLOv10 zu unterst├╝tzen, kannst du gerne einen Pull Request ├Âffnen.

Format exportieren Unterst├╝tzt
TorchScript Ôťů
ONNX Ôťů
OpenVINO Ôťů
TensorRT Ôťů
CoreML ÔŁî
TF SavedModel ÔŁî
TF GraphDef ÔŁî
TF Lite ÔŁî
TF Kante TPU ÔŁî
TF.js ÔŁî
PaddlePaddle ÔŁî
NCNN ÔŁî

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.

FAQ

Was ist YOLOv10 und wie unterscheidet es sich von fr├╝heren YOLO Versionen?

YOLOv10 wurde von Forschern der Tsinghua Universit├Ąt entwickelt und f├╝hrt mehrere wichtige Innovationen in die Echtzeit-Objekterkennung ein. Durch konsistente Dualzuweisungen w├Ąhrend des Trainings und optimierte Modellkomponenten wird die Notwendigkeit der Non-Maximum-Suppression (NMS) eliminiert und die Leistung bei reduziertem Rechenaufwand gesteigert. Weitere Einzelheiten ├╝ber die Architektur und die wichtigsten Funktionen findest du in der YOLOv10 ├ťbersicht.

Wie kann ich mit YOLOv10 anfangen, Inferenzen zu erstellen?

F├╝r einfache Schlussfolgerungen kannst du die Bibliothek Ultralytics YOLO Python oder die Kommandozeilenschnittstelle (CLI) verwenden. Im Folgenden findest du Beispiele f├╝r die Vorhersage neuer Bilder mit YOLOv10:

Beispiel

from ultralytics import YOLO

# Load the pre-trained YOLOv10-N model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

Weitere Verwendungsbeispiele findest du in unserem Abschnitt Verwendungsbeispiele.

Welche Modellvarianten bietet YOLOv10 an und was sind ihre Einsatzm├Âglichkeiten?

YOLOv10 bietet verschiedene Modellvarianten f├╝r unterschiedliche Einsatzzwecke:

  • YOLOv10-N: Geeignet f├╝r extrem ressourcenbeschr├Ąnkte Umgebungen
  • YOLOv10-S: Gleichgewicht zwischen Geschwindigkeit und Genauigkeit
  • YOLOv10-M: Allzweckeinsatz
  • YOLOv10-B: H├Âhere Genauigkeit bei gr├Â├čerer Breite
  • YOLOv10-L: Hohe Genauigkeit auf Kosten der Rechenressourcen
  • YOLOv10-X: Maximale Genauigkeit und Leistung

Jede Variante ist f├╝r unterschiedliche Berechnungs- und Genauigkeitsanforderungen ausgelegt, was sie f├╝r eine Vielzahl von Anwendungen vielseitig macht. Weitere Informationen findest du im Abschnitt Modellvarianten.

Wie verbessert der NMS-freie Ansatz in YOLOv10 die Leistung?

YOLOv10 macht die Nicht-Maximum-Unterdr├╝ckung (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 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 ausf├╝hrliche Erkl├Ąrung findest du im Abschnitt Konsistente Doppelzuweisungen 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. Allerdings werden aufgrund der neuen Funktionen von Ultralytics derzeit nicht alle Exportformate f├╝r YOLOv10 unterst├╝tzt. Einzelheiten zu den unterst├╝tzten Formaten und Anweisungen zum Exportieren findest du im Abschnitt Exportieren von YOLOv10.

Wie lauten die Leistungsvergleiche f├╝r die YOLOv10-Modelle?

YOLOv10 ├╝bertrifft fr├╝here Versionen von YOLO und andere State-of-the-Art-Modelle sowohl in der Genauigkeit als auch in der Effizienz. YOLOv10-S ist zum Beispiel 1,8-mal schneller als RT-DETR-R18 mit einem ├Ąhnlichen AP auf dem COCO-Datensatz. YOLOv10-B zeigt 46% weniger Latenz und 25% weniger Parameter als YOLOv9-C bei gleicher Leistung. Detaillierte Benchmarks findest du im Abschnitt " Vergleiche ".



Erstellt 2024-05-25, Aktualisiert 2024-07-04
Autoren: glenn-jocher (5), zhixuwei (1), abirami-vina (1), RizwanMunawar (3), Burhan-Q (1)

Kommentare