Zum Inhalt springen

YOLOv9 vs. YOLOv10: Ein technischer Vergleich zur Objekterkennung

Die Auswahl des richtigen Objekterkennungsmodells ist eine wichtige Entscheidung für Entwickler und Forscher, die den Bedarf an hoher Präzision mit den Einschränkungen der Echtzeitinferenz und den Rechenressourcen in Einklang bringen müssen. Dieser Leitfaden bietet einen detaillierten technischen Vergleich zwischen YOLOv9 und YOLOv10zwei hochmodernen Architekturen, die die Grenzen der Bildverarbeitungsleistung im Jahr 2024 verschoben haben.

Während sich YOLOv9 auf architektonische Innovationen konzentriert, um Informationsengpässe beim Deep Learning zu beseitigen, führt YOLOv10 einen Paradigmenwechsel mit einem NMS Design für minimale Latenz ein. Beide Modelle sind vollständig in das Python integriert, sodass Benutzer sie innerhalb eines einheitlichen Ökosystems leicht trainieren, validieren und einsetzen können.

Leistungsmetriken und Benchmarks

Die Leistungsunterschiede zwischen diesen beiden Modellen sind unterschiedlich. YOLOv9 treibt im Allgemeinen die mittlere durchschnittliche Genauigkeit (mAP) in die Höhe, insbesondere bei seinen größeren Varianten, und eignet sich daher für Szenarien, in denen die Genauigkeit von größter Bedeutung ist. Umgekehrt ist YOLOv10 auf Effizienz ausgelegt und reduziert die Inferenzlatenz und die Anzahl der Parameter beträchtlich, was ideal für den Edge-Einsatz ist.

Die folgende Tabelle veranschaulicht diese Unterschiede anhand des COCO . Bemerkenswert ist, dass YOLOv10n auf T4-GPUs unglaubliche Geschwindigkeiten erreicht, während YOLOv9e bei der Erkennungsgenauigkeit dominiert.

ModellGröße
(Pixel)
mAPval
50-95
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

YOLOv9: Die Lösung des Informationsengpasses

Erscheint im Februar 2024, YOLOv9 befasst sich mit einer grundlegenden theoretischen Herausforderung bei tiefen neuronalen Netzen: dem Verlust von Informationen, wenn sich Daten durch tiefe Schichten fortpflanzen. Dieses Modell wurde entwickelt, um sicherzustellen, dass das Netzwerk die wesentlichen Merkmale, die für eine genaue Objekterkennung erforderlich sind, beibehält.

Technische Details:

Architektur: PGI und GELAN

YOLOv9 führt zwei bahnbrechende Konzepte ein:

  1. Programmierbare Gradienteninformation (PGI): Ein zusätzlicher Überwachungsrahmen, der Informationsverluste während des Trainings verhindert. Es stellt sicher, dass verlässliche Gradienten für die Aktualisierung der Netzwerkgewichte generiert werden und löst damit die Probleme der Tiefenüberwachung, die bei früheren Architekturen festgestellt wurden.
  2. Generalized Efficient Layer Aggregation Network (GELAN): Eine neuartige Architektur, die die Parametereffizienz maximiert. GELAN ermöglicht es dem Modell, im Vergleich zu konventionellen Entwürfen mit weniger Parametern eine höhere Genauigkeit zu erreichen, indem es die Aggregation von Merkmalen auf verschiedenen Ebenen optimiert.

Stärken und Schwächen

YOLOv9 eignet sich hervorragend für Anwendungen, bei denen es auf Genauigkeit ankommt. Dank seiner Fähigkeit, detaillierte Merkmalsinformationen zu erhalten, ist es für die Erkennung kleiner Objekte oder die Navigation in komplexen Szenen hervorragend geeignet. Diese Raffinesse geht jedoch mit einem Kompromiss bei der Komplexität einher. Die architektonischen Zusätze wie PGI sind in erster Linie für das Training gedacht, d. h. sie können während der Inferenz entfernt werden, aber die Trainingsressourcen könnten höher sein. Außerdem ist die Latenzzeit zwar effizient, aber im Allgemeinen höher als bei den spezialisierten effizienten Designs von YOLOv10.

Erfahren Sie mehr über YOLOv9

YOLOv10: Die Ära der NMS Detektion

YOLOv10Das von Forschern der Tsinghua-Universität entwickelte und im Mai 2024 veröffentlichte YOLOv10 legt den Schwerpunkt auf Echtzeitgeschwindigkeit und End-to-End-Bereitstellung. Sein entscheidendes Merkmal ist die Abschaffung der Non-Maximum Suppression (NMS), eines Nachverarbeitungsschritts, der traditionell ein Engpass für die Inferenzlatenz war.

Technische Details:

Architektur: Konsistente Doppelzuweisungen

Die wichtigste Neuerung von YOLOv10 ist die konsistente Doppelzuweisung während des Trainings. Das Modell verwendet eine Eins-zu-Viele-Zuweisungsstrategie für eine umfassende Überwachung während des Trainings, wechselt aber zu einer Eins-zu-Eins-Zuweisung für die Inferenz. Dank dieser Architektur kann das Modell direkt die optimale Bounding Box für jedes Objekt vorhersagen, wodurch die Nachbearbeitung NMS überflüssig wird. In Verbindung mit einem ranggesteuerten Blockdesign reduziert YOLOv10 Redundanz und Rechenaufwand (FLOPs).

Stärken und Schwächen

Der Hauptvorteil von YOLOv10 ist die geringe Latenzzeit. Durch die Entfernung von NMS wird die Inferenzlatenz deterministisch und deutlich geringer, was für die Echtzeit-Videoverarbeitung entscheidend ist. Es zeichnet sich auch durch eine hervorragende Parametereffizienz aus, wie in der Vergleichstabelle zu sehen ist, in der YOLOv10 eine konkurrenzfähige Genauigkeit mit weniger FLOPs erreichen. Ein potenzieller Schwachpunkt ist seine relativ junge Einführung im Vergleich zu etablierten Ökosystemen, was jedoch durch die Integration in Ultralytics gemildert wird. Außerdem ist es hochgradig auf die Erkennung spezialisiert, während andere Modelle im Ökosystem eine breitere Multi-Task-Unterstützung bieten.

End-to-End-Export

Da YOLOv10 von Haus aus NMS ist, ist der Export in Formate wie ONNX oder TensorRT oft einfacher und führt zu "reinen" End-to-End-Modellen, ohne dass komplexe Post-Processing-Plugins erforderlich sind.

Erfahren Sie mehr über YOLOv10

Vergleichende Analyse für Entwickler

Bei der Integration dieser Modelle in die Produktion kommen neben den reinen Kennzahlen auch mehrere praktische Faktoren ins Spiel.

Benutzerfreundlichkeit und Ökosystem

Beide Modelle profitieren immens davon, Teil des Ultralytics zu sein. Das bedeutet, dass Entwickler zwischen YOLOv9 und YOLOv10 wechseln können, indem sie einfach einen Modellstring ändern und dabei dieselben Trainingspipelines, Validierungstools und Bereitstellungsformate verwenden.

  • Trainingseffizienz: Ultralytics benötigen in der Regel weniger Speicherplatz als transformatorbasierte Detektoren, so dass das Training auf handelsüblichen GPUs möglich ist.
  • Vielseitigkeit: Während sich YOLOv9 und YOLOv10 auf die Erkennung konzentrieren, unterstützt die Ultralytics API andere Aufgaben wie Instanzsegmentierung und Posenschätzung durch Modelle wie YOLO11 und YOLOv8 und bietet damit ein umfassendes Toolkit für verschiedene Bildverarbeitungsprojekte.

Ideale Anwendungsfälle

  • Wählen Sie YOLOv9 , wenn:

    • Ihre Anwendung erfordert die höchstmögliche Genauigkeit (z. B. medizinische Bildgebung, Fehlererkennung in der Fertigung).
    • Sie arbeiten mit schwer detect erfassenden Objekten, bei denen das Behalten von Informationen entscheidend ist.
    • Die Latenzzeit ist im Vergleich zur Präzision zweitrangig.
  • Wählen Sie YOLOv10 , wenn:

    • Geschwindigkeit ist entscheidend. Anwendungen wie autonomes Fahren, Roboternavigation oder Videoanalyse mit hohen FPS profitieren von dem NMS Design.
    • Einsatz auf Edge-Geräten (wie NVIDIA Jetson oder Raspberry Pi), bei denen die GPU begrenzt sind.
    • Sie benötigen eine deterministische Inferenzzeit ohne die durch die NMS eingeführte Variabilität.

Code-Beispiel: Beide Modelle ausführen

Dank der vereinheitlichten Ultralytics ist der Vergleich dieser Modelle mit Ihren eigenen Daten ein Kinderspiel. Der folgende Python veranschaulicht, wie Inferenzen mit beiden Architekturen geladen und ausgeführt werden.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")

# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")

# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")

# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")

Fazit

Sowohl YOLOv9 als auch YOLOv10 stellen wichtige Meilensteine in der Computer Vision dar. YOLOv9 stößt an die theoretischen Grenzen der Merkmalserhaltung und der Genauigkeit, was es zu einem Kraftpaket für Forschung und präzisionsintensive Aufgaben macht. YOLOv10 definiert die Effizienz neu, indem es den NMS beseitigt und eine optimierte Lösung für Echtzeitanwendungen bietet.

Für Benutzer, die ein optimales Gleichgewicht zwischen Genauigkeit, Geschwindigkeit und Merkmalsreichtum für verschiedene Aufgaben (einschließlich Segmentierung und Klassifizierung) suchen, empfehlen wir außerdem die Erkundung von YOLO11. Als neueste Iteration von Ultralytics verfeinert YOLO11 die besten Attribute seiner Vorgänger zu einem robusten, unternehmenstauglichen Paket, das sich für praktisch jede KI-Anwendung eignet.

Andere Modelle entdecken

Das Ultralytics ist riesig. Wenn sich Ihre Projektanforderungen unterscheiden, sollten Sie diese Alternativen in Betracht ziehen:

  • YOLO11: Das neueste Modell auf dem neuesten Stand der Technik bietet überragende Leistung und Vielseitigkeit in den Bereichen Erkennung, Segmentierung, Pose, OBB und Klassifizierung.
  • YOLOv8: Ein sehr beliebtes und stabiles Modell, das für seine breite Kompatibilität und Multitasking-Unterstützung bekannt ist.
  • RT-DETR: Ein auf einem Transformator basierender Detektor, der eine hohe Genauigkeit bietet, ohne dass ein NMS erforderlich ist, und der als Alternative zu YOLO für bestimmte Anwendungsfälle dient.

Durch die Nutzung der Ultralytics erhalten Sie Zugang zu dieser ganzen Reihe von Modellen und können so sicherstellen, dass Sie immer das richtige Werkzeug für Ihre Aufgabe haben.


Kommentare