Meituan YOLOv6#
Überblick#
Meituan YOLOv6 wurde 2022 veröffentlicht und bietet ein ausgewogenes Verhältnis zwischen Geschwindigkeit und Genauigkeit, wodurch das Modell eine beliebte Wahl für Echtzeitanwendungen ist. Dieses Modell führt mehrere bemerkenswerte Verbesserungen an seiner Architektur und seinem Trainingsverfahren ein, darunter die Implementierung eines Moduls für bidirektionale Konkatenation (BiC), eine Strategie für ankerunterstütztes Training (AAT) sowie ein verbessertes Backbone- und Neck-Design für hohe Genauigkeit auf dem COCO-Datensatz.
Überblick über YOLOv6. Diagramm der Modellarchitektur mit den neu gestalteten Netzwerkkomponenten und Trainingsstrategien, die zu deutlichen Leistungsverbesserungen geführt haben. (a) Der Neck von YOLOv6 (N und S sind dargestellt). Hinweis: Bei M/L wird RepBlocks durch CSPStackRep ersetzt. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle).
Wichtige Funktionen#
- Modul für bidirektionale Konkatenation (BiC): YOLOv6 führt ein BiC-Modul im Neck des Detektors ein, das Lokalisierungssignale verbessert und Leistungssteigerungen bei vernachlässigbarer Geschwindigkeitsminderung ermöglicht.
- Strategie für ankerunterstütztes Training (AAT): Dieses Modell verwendet AAT, um die Vorteile sowohl ankerbasierter als auch ankerfreier Verfahren zu nutzen, ohne die Inferenzleistung zu beeinträchtigen.
- Verbessertes Backbone- und Neck-Design: Durch die Erweiterung von YOLOv6 um eine zusätzliche Stufe im Backbone und Neck erzielte dieses Modell bei seiner Veröffentlichung eine starke Leistung auf dem COCO-Datensatz mit hochauflösenden Eingaben.
- Selbstdestillationsstrategie: Eine neue Selbstdestillationsstrategie wird implementiert, um die Leistung kleinerer YOLOv6-Modelle zu steigern. Dabei wird der zusätzliche Regressionszweig während des Trainings verbessert und während der Inferenz entfernt, um einen deutlichen Geschwindigkeitsverlust zu vermeiden.
Leistungsmetriken#
YOLOv6 bietet verschiedene vortrainierte Modelle in unterschiedlichen Größen:
- YOLOv6-N: 37,5 % AP auf COCO val2017 bei 1187 FPS mit einer NVIDIA T4 GPU.
- YOLOv6-S: 45,0 % AP bei 484 FPS.
- YOLOv6-M: 50,0 % AP bei 226 FPS.
- YOLOv6-L: 52,8 % AP bei 116 FPS.
- YOLOv6-L6: Hervorragende Genauigkeit in Echtzeit.
YOLOv6 bietet außerdem quantisierte Modelle für verschiedene Genauigkeiten sowie für mobile Plattformen optimierte Modelle.
Verwendungsbeispiele#
Dieses Beispiel zeigt einfache Beispiele für das Training und die Inferenz mit YOLOv6. Die vollständige Dokumentation zu diesen und anderen Modi findest du auf den Dokumentationsseiten zu Predict, Train, Val und Export.
YOLOv6-*.yaml-Dateien können an die Klasse YOLO() übergeben werden, um das entsprechende Modell in Python zu erstellen:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Unterstützte Aufgaben und Modi#
Die YOLOv6-Serie bietet eine Reihe von Modellen, die jeweils für leistungsstarke Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Anforderungen an Rechenleistung und Genauigkeit ab und eignen sich dadurch für zahlreiche Anwendungen.
| Modell | Dateinamen | Aufgaben | Training | Validierung | Inferenz | Export |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Diese Tabelle bietet einen detaillierten Überblick über die Varianten des YOLOv6-Modells und hebt ihre Fähigkeiten bei Aufgaben der Objekterkennung sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass du die Fähigkeiten der YOLOv6-Modelle in einer Vielzahl von Szenarien zur Objekterkennung vollständig nutzen kannst.
Zitate und Danksagungen#
Wir möchten den Autoren für ihre bedeutenden Beiträge auf dem Gebiet der Echtzeitobjekterkennung danken:
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Die ursprüngliche YOLOv6-Publikation ist auf arXiv verfügbar. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und der Quellcode kann auf GitHub eingesehen werden. Wir würdigen ihre Anstrengungen, das Fachgebiet voranzubringen und ihre Arbeit der breiteren Gemeinschaft zugänglich zu machen.
FAQ#
Meituan YOLOv6 wurde 2022 veröffentlicht und ist ein Objektdetektor, der Geschwindigkeit und Genauigkeit ausbalanciert und für Echtzeitanwendungen entwickelt wurde. Das Modell bietet bemerkenswerte architektonische Verbesserungen wie das Modul für bidirektionale Konkatenation (BiC) und eine Strategie für ankerunterstütztes Training (AAT). Diese Neuerungen ermöglichen deutliche Leistungssteigerungen bei minimaler Geschwindigkeitsminderung und machen YOLOv6 zu einer konkurrenzfähigen Wahl für Aufgaben der Objekterkennung.
Das Modul für bidirektionale Konkatenation (BiC) in YOLOv6 verbessert die Lokalisierungssignale im Neck des Detektors und steigert die Leistung bei vernachlässigbarem Einfluss auf die Geschwindigkeit. Dieses Modul kombiniert verschiedene Merkmalskarten effektiv und verbessert dadurch die Fähigkeit des Modells, Objekte präzise zu erkennen. Weitere Informationen zu den Funktionen von YOLOv6 findest du im Abschnitt Wichtige Funktionen.
Du kannst ein YOLOv6-Modell mit Ultralytics mithilfe einfacher Python- oder CLI-Befehle trainieren. Zum Beispiel:
Beispielfrom ultralytics import YOLO # Build a YOLOv6n model from scratch model = YOLO("yolov6n.yaml") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Weitere Informationen findest du auf der Seite Train.
YOLOv6 bietet mehrere Versionen, die jeweils für unterschiedliche Leistungsanforderungen optimiert sind:
- YOLOv6-N: 37,5 % AP bei 1187 FPS
- YOLOv6-S: 45,0 % AP bei 484 FPS
- YOLOv6-M: 50,0 % AP bei 226 FPS
- YOLOv6-L: 52,8 % AP bei 116 FPS
- YOLOv6-L6: Hervorragende Genauigkeit in Echtzeitszenarien
Diese Modelle werden auf dem COCO-Datensatz mit einer NVIDIA T4 GPU evaluiert. Weitere Informationen zu Leistungswerten findest du im Abschnitt Leistungswerte.
Das ankerunterstützte Training (AAT) in YOLOv6 kombiniert Elemente ankerbasierter und ankerfreier Ansätze und verbessert die Erkennungsfähigkeiten des Modells, ohne die Inferenzleistung zu beeinträchtigen. Diese Strategie nutzt während des Trainings Anker, um Begrenzungsboxen besser vorherzusagen, wodurch sich YOLOv6 für vielfältige Aufgaben der Objekterkennung eignet.
YOLOv6 unterstützt verschiedene Betriebsmodi, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es dir, die Fähigkeiten des Modells in unterschiedlichen Szenarien vollständig zu nutzen. Im Abschnitt Unterstützte Aufgaben und Modi findest du einen detaillierten Überblick über die einzelnen Modi.