YOLOv7 vs. YOLOv10: Architektonische Entwicklung und Leistungsanalyse
Die Entwicklung der YOLO (You Only Look Once) stellt eine faszinierende Zeitlinie der Fortschritte in der Computer Vision dar, die den ewigen Kompromiss zwischen Inferenzgeschwindigkeit und Erkennungsgenauigkeit ausgleicht. Dieser Vergleich befasst sich mit zwei wichtigen Meilensteinen: YOLOv7ein robustes Modell, das im Jahr 2022 neue Maßstäbe gesetzt hat, und YOLOv10, eine Version aus dem Jahr 2024, die mit dem NMS Training einen Paradigmenwechsel einleitet.
Obwohl beide Modelle eine ausgezeichnete Wahl für die Objekterkennung sind, verfolgen sie unterschiedliche Architekturphilosophien. YOLOv7 stößt an die Grenzen der trainierbaren "Bag-of-Freebies" und der Gradientenpfad-Optimierung, während YOLOv10 sich auf die Beseitigung von Engpässen bei der Nachverarbeitung konzentriert, um eine End-to-End-Effizienz in Echtzeit zu erreichen.
YOLOv7: Optimierung des Gradientenpfads
YOLOv7 wurde im Juli 2022 veröffentlicht und führte bedeutende architektonische Änderungen ein, die sich auf die Optimierung des Trainingsprozesses konzentrierten, ohne die Inferenzkosten zu erhöhen. Aufgrund seiner hohen Genauigkeit im COCO wurde es schnell zu einem Favoriten für allgemeine Computer-Vision-Aufgaben.
Die Autoren: Chien-Yao Wang, Alexey Bochkovskiy, und Hong-Yuan Mark Liao
Organisation: Institute of Information Science, Academia Sinica, Taiwan
Datum: 2022-07-06
ArXiv:YOLOv7: Trainierbare Bag-of-Freebies setzt neuen Stand der Technik für Echtzeit-Objektdetektoren
GitHub:WongKinYiu/yolov7
Wichtige architektonische Merkmale
Mit YOLOv7 wurde das Extended Efficient Layer Aggregation Network (E-ELAN) eingeführt. Diese Architektur ermöglicht es dem Modell, mehr verschiedene Merkmale zu lernen, indem es die kürzesten und längsten Gradientenpfade kontrolliert und so sicherstellt, dass das Netzwerk während des Trainings effektiv konvergiert.
Außerdem nutzt YOLOv7 in hohem Maße "Bag-of-Freebies"-Methoden, die die Genauigkeit beim Training verbessern, ohne die Inferenzkosten zu erhöhen. Dazu gehört die Neuparametrisierung des Modells, bei der eine komplexe Trainingsstruktur in eine optimierte Inferenzstruktur vereinfacht wird, wodurch die Latenzzeit verringert und gleichzeitig die erlernte Leistung beibehalten wird.
YOLOv10: Das Ende der NMS
YOLOv10, das im Mai 2024 von Forschern der Tsinghua-Universität veröffentlicht wurde, behebt einen langjährigen Engpass bei der Objekterkennung: Nicht-Maximum-UnterdrückungNMS). Traditionelle YOLO sagen mehrere Bounding Boxes für ein einzelnes Objekt voraus und sind auf NMS angewiesen, um Duplikate herauszufiltern. Dieser Nachbearbeitungsschritt verursacht eine zusätzliche Latenzzeit, die von der Anzahl der Objekte in der Szene abhängt.
Die Autoren: Ao Wang, Hui Chen, Lihao Liu, et al.
Organisation: Tsinghua Universität
Datum: 2024-05-23
ArXiv:YOLOv10: End-to-End-Objekt-Erkennung in Echtzeit
GitHub:THU-MIG/yolov10
Wichtige architektonische Merkmale
YOLOv10 führt eine konsistente Doppelzuweisungsstrategie ein. Während des Trainings verwendet das Modell sowohl einen One-to-Many-Kopf (für eine umfassende Überwachung) als auch einen One-to-One-Kopf (für eine End-to-End-Vorhersage). Während der Inferenz wird nur der Eins-zu-Eins-Kopf verwendet, wodurch die NMS vollständig überflüssig wird. Dies führt zu einer vorhersehbaren Inferenz mit geringer Latenz, die sich hervorragend für Edge-KI-Anwendungen eignet, bei denen die Verarbeitungszeit konstant sein muss.
Erfahren Sie mehr über YOLOv10
Technischer Vergleich: Architektur und Leistung
Der Hauptunterschied zwischen diesen Modellen liegt in ihrem Ansatz zur Inferenz-Effizienz. YOLOv7 stützt sich auf ein hochoptimiertes Grundgerüst (E-ELAN), um Merkmale effizient zu extrahieren, erfordert aber immer noch eine traditionelle Nachbearbeitung. YOLOv10 modifiziert den grundlegenden Erkennungskopf, um die Nachbearbeitungsschritte zu entfernen, und erreicht so eine geringere Latenzzeit bei ähnlicher Genauigkeit.
Leistungsmetriken
Wie aus der nachstehenden Tabelle hervorgeht, weist YOLOv10 eine höhere Effizienz auf. So erreicht YOLOv10b beispielsweise einen höheren mAP (52,7 %) als YOLOv7l (51,4 %), während deutlich weniger Parameter (24,4 M gegenüber 36,9 M) und Gleitkommaoperationen (FLOPs) benötigt werden.
Verständnis der Latenzzeit
Die "Speed"-Metriken zeigen die Auswirkungen des NMS Designs von YOLOv10. Durch den Wegfall des NMS reduziert YOLOv10 den Rechenaufwand während der Inferenz, was besonders auf Hardware-Beschleunigern wie TensorRT von Vorteil ist, wo die Nachbearbeitung ansonsten zu einem Engpass werden kann.
| Modell | Größe (Pixel) | mAPval 50-95 | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Parameter (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Stärken und Schwächen
YOLOv7 Stärken:
- Bewährte Robustheit: Seit 2022 in verschiedenen akademischen und industriellen Umgebungen ausgiebig getestet.
- Unterstützung hoher Auflösungen: Hervorragende Leistung bei Eingängen mit höherer Auflösung (z. B. 1280 Pixel) über bestimmte W6/E6-Varianten.
- Ressourcen der Gemeinschaft: Aufgrund seines Alters gibt es eine große Anzahl von Tutorials und Implementierungen von Drittanbietern.
YOLOv7 Schwachstellen:
- Kompliziertheit: Die Neuparametrisierung und die Hilfskopfstruktur können die Trainingspipeline im Vergleich zu modernen Ultralytics verkomplizieren.
- NMS : Die Inferenzgeschwindigkeit ist aufgrund von NMS teilweise von der Szenendichte abhängig.
YOLOv10 Stärken:
- Geringste Latenzzeit: Die NMS Architektur ermöglicht eine extrem schnelle Inferenz, ideal für Echtzeit-Inferenzen.
- Effizient: Erzielt modernste Genauigkeit mit weniger Parametern und geringerem Speicherbedarf.
- Einfacher Einsatz: Der Wegfall des NMS vereinfacht den Exportprozess in Formate wie ONNX und TensorRT.
YOLOv10 Schwachstellen:
- Aufgabenspezifität: Schwerpunkt ist die Objekterkennung, während andere Modelle im Ultralytics (wie YOLO11) von Haus aus Segmentierung, Posenschätzung und OBB in einem einheitlichen Rahmen unterstützen.
Ideale Anwendungsfälle
Die Wahl zwischen YOLOv7 und YOLOv10 hängt oft von den spezifischen Einschränkungen der Einsatzumgebung ab.
- Verwenden Sie YOLOv7 , wenn: Sie an einem älteren Projekt arbeiten, das bereits die v7-Architektur integriert, oder wenn Sie spezielle hochauflösende Varianten (wie YOLOv7) für die Erkennung kleiner Objekte in großen Bildern benötigen, bei denen die Geschwindigkeit der Rückschlüsse zweitrangig ist gegenüber der reinen Präzision.
- Verwenden Sie YOLOv10 , wenn: Sie auf ressourcenbeschränkten Edge-Geräten (Raspberry Pi, Jetson Nano, Mobiltelefone) arbeiten oder absolut minimale Latenzzeiten für Anwendungen wie autonomes Fahren oder Hochgeschwindigkeitsrobotik benötigen. Dank des geringeren Speicherbedarfs ist die Ausführung in Cloud-Umgebungen auch günstiger.
Der Ultralytics
Unabhängig davon, ob Sie sich für YOLOv7 oder YOLOv10 entscheiden, bietet die Verwendung dieser Modelle über die Ultralytics Python erhebliche Vorteile gegenüber der Verwendung von rohem Repository-Code. Ultralytics hat diese Modelle in ein einheitliches Ökosystem integriert, bei dem Benutzerfreundlichkeit, Schulungseffizienz und Vielseitigkeit im Vordergrund stehen.
Optimierte Benutzererfahrung
Die Schulung komplexer Deep-Learning-Modelle erforderte in der Vergangenheit die Verwaltung komplizierter Konfigurationsdateien und Abhängigkeiten. Das Ultralytics standardisiert diesen Prozess. Entwickler können zwischen verschiedenen Architekturen wechseln (z. B. von YOLOv10n zu YOLOv10s oder sogar zu YOLO11) wechseln, indem sie ein einziges String-Argument ändern, ohne Datenlader oder Validierungsskripte neu zu schreiben.
Code-Beispiel
Das folgende Beispiel zeigt, wie diese Modelle mit dem Ultralytics geladen und vorhergesagt werden können. Beachten Sie, dass die API unabhängig von der zugrunde liegenden Modellarchitektur konsistent bleibt.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")
# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")
# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")
# Print results
for result in results_v10:
result.show() # Display predictions
Ökosystem und Zukunftssicherungen
YOLOv7 und YOLOv10 sind zwar leistungsstark, aber das Ultralytics wird ständig weiterentwickelt. Das neueste YOLO11 Modell baut auf den Erkenntnissen von v7 (Funktionsverdichtung) und v10 (Effizienz) auf.
- Gut gewartet: Häufige Updates gewährleisten die Kompatibilität mit den neuesten Versionen von PyTorch, CUDA und ExportformatenCoreML, ONNX, TensorRT).
- Speichereffizienz: Die Ultralytics sind so konzipiert, dass die GPU während des Trainings minimiert wird, was im Vergleich zu vielen Transformer-basierten Alternativen (wie RT-DETR) größere Stapelgrößen auf Consumer-Hardware ermöglicht.
- Trainingseffizienz: Mit vorab eingestellten Hyperparametern und "intelligentem" Scannen von Datensätzen wird die Konvergenz beim Training oft beschleunigt, was Rechenkosten spart.
Für Entwickler, die heute neue Projekte beginnen, ist die Erkundung von YOLO11 ist sehr empfehlenswert, da es ein ausgewogenes Verhältnis zwischen der Geschwindigkeit von YOLOv10 und der robusten Merkmalsextraktion der Vorgänger bietet, zusammen mit nativer Unterstützung für Aufgaben, die über die einfache Erkennung hinausgehen, wie Instanzsegmentierung und Posenschätzung.
Andere Modelle entdecken
Wenn Sie sich für weitere Vergleiche oder andere Architekturen interessieren, sollten Sie sich diese Ressourcen ansehen:
- YOLO11 vs. YOLOv8 - Vergleichen Sie die neuesten und modernsten Modelle.
- RT-DETR vs. YOLOv10 - Transformer-basierte Erkennung vs. CNN-basierte Effizienz.
- YOLOv9 vs. YOLOv10 - Untersuchung von Programmable Gradient Information (PGI) vs. NMS Designs.