Meituan YOLOv6#
Übersicht#
Meituan YOLOv6, das 2022 veröffentlicht wurde, bietet eine ausgewogene Kombination aus Geschwindigkeit und Genauigkeit und ist daher eine beliebte Wahl für Echtzeitanwendungen. Das Modell bringt mehrere bemerkenswerte Verbesserungen an Architektur und Trainingsverfahren mit sich, darunter ein Zweirichtungsverkettungsmodul (BiC), eine ankerunterstützte Trainingsstrategie (AAT) sowie ein verbessertes Backbone- und Neck-Design für hohe Genauigkeit auf dem COCO-Datensatz.
Überblick über YOLOv6. Architekturdiagramm des Modells mit den neu gestalteten Netzwerkkomponenten und Trainingsstrategien, die zu deutlichen Leistungsverbesserungen geführt haben. (a) Der Neck von YOLOv6 (N und S sind abgebildet). Hinweis: Bei M/L wird RepBlocks durch CSPStackRep ersetzt. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle.)
Wichtige Funktionen#
- Zweirichtungsverkettungsmodul (BiC): YOLOv6 führt im Neck des Detektors ein BiC-Modul ein, das Lokalisierungssignale verstärkt und die Leistung verbessert, ohne die Geschwindigkeit nennenswert zu beeinträchtigen.
- Strategie des ankerunterstützten Trainings (AAT): Dieses Modell schlägt AAT vor, um die Vorteile sowohl ankerbasierter als auch ankerfreier Ansätze zu nutzen, ohne die Inventionseffizienz zu beeinträchtigen.
- Verbessertes Backbone- und Neck-Design: Durch eine zusätzliche Stufe im Backbone und Neck von YOLOv6 erzielte das Modell bei seiner Veröffentlichung starke Ergebnisse auf dem COCO-Datensatz mit Eingaben hoher Auflösung.
- Selbstdestillationsstrategie: Eine neue Selbstdestillationsstrategie steigert die Leistung kleinerer YOLOv6-Modelle. Dazu wird der zusätzliche Regressionszweig während des Trainings optimiert und bei der Inferenz entfernt, um einen deutlichen Geschwindigkeitsverlust zu vermeiden.
Leistungskennzahlen#
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: Höchste Genauigkeit in Echtzeit.
YOLOv6 bietet außerdem quantisierte Modelle mit verschiedenen Genauigkeiten sowie für mobile Plattformen optimierte Modelle.
Anwendungsbeispiele#
Dieses Beispiel enthält einfache Beispiele für das Training und die Inferenz mit YOLOv6. Die vollständige Dokumentation zu diesen und weiteren Betriebsmodi findest du auf den Dokumentationsseiten zu Vorhersage, Training, Validierung und Export.
YOLOv6-Dateien *.yaml können an die Klasse YOLO() übergeben werden, um das entsprechende Modell in Python zu erstellen:
from ultralytics import YOLO
# Ein YOLOv6n-Modell von Grund auf erstellen
model = YOLO("yolov6n.yaml")
# Modellinformationen anzeigen (optional)
model.info()
# Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Mit dem YOLOv6n-Modell eine Inferenz auf dem Bild „bus.jpg“ ausführen
results = model("path/to/bus.jpg")Unterstützte Aufgaben und Modi#
Die YOLOv6-Reihe umfasst verschiedene Modelle, die jeweils für leistungsstarke Objekterkennung optimiert sind. Die Modelle erfüllen unterschiedliche Anforderungen an Rechenleistung und Genauigkeit und eignen sich dadurch für viele verschiedene Anwendungen.
| Modell | Dateinamen | Aufgaben | Training | Validierung | Inferenz | Exportieren |
|---|---|---|---|---|---|---|
| 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 YOLOv6-Modellvarianten und zeigt ihre Leistungsfähigkeit bei Aufgaben der Objekterkennung sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export. Dank dieser umfassenden Unterstützung können Nutzer die Fähigkeiten der YOLOv6-Modelle in den unterschiedlichsten Szenarien der Objekterkennung voll ausschöpfen.
Zitate und Danksagungen#
Wir möchten den Autoren für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung 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-Arbeit ist auf arXiv verfügbar. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und der Quellcode ist auf GitHub verfügbar. Wir schätzen ihre Bemühungen, das Fachgebiet voranzubringen und ihre Arbeit einer breiteren Gemeinschaft zugänglich zu machen.
Häufig gestellte Fragen#
Meituan YOLOv6, das 2022 veröffentlicht wurde, ist ein für Echtzeitanwendungen entwickelter Objektdetektor, der Geschwindigkeit und Genauigkeit ausgewogen kombiniert. Zu den bemerkenswerten Verbesserungen der Architektur gehören das Zweirichtungsverkettungsmodul (BiC) und eine Strategie für ankerunterstütztes Training (AAT). Diese Neuerungen sorgen für deutliche Leistungssteigerungen bei minimalen Geschwindigkeitseinbußen und machen YOLOv6 zu einer leistungsfähigen Option für Aufgaben der Objekterkennung.
Das Zweirichtungsverkettungsmodul (BiC) in YOLOv6 verstärkt die Lokalisierungssignale im Neck des Detektors und verbessert so die Leistung, ohne die Geschwindigkeit nennenswert zu beeinträchtigen. Das Modul kombiniert verschiedene Merkmalskarten effektiv und verbessert dadurch die Fähigkeit des Modells, Objekte genau zu erkennen. Weitere Einzelheiten zu den Funktionen von YOLOv6 findest du im Abschnitt Wichtige Funktionen.
Mit einfachen Python- oder CLI-Befehlen kannst du YOLOv6 mit Ultralytics trainieren. Zum Beispiel:
Beispielfrom ultralytics import YOLO # Ein YOLOv6n-Modell von Grund auf erstellen model = YOLO("yolov6n.yaml") # Das Modell 100 Epochen lang mit dem COCO8-Beispieldatensatz trainieren results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Weitere Informationen findest du auf der Seite Training.
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: Höchste Genauigkeit in Echtzeitszenarien
Diese Modelle werden auf dem COCO-Datensatz mit einer NVIDIA T4 GPU ausgewertet. Weitere Informationen zu den Leistungskennzahlen findest du im Abschnitt Leistungskennzahlen.
Das ankerunterstützte Training (AAT) in YOLOv6 kombiniert Elemente ankerbasierter und ankerfreier Ansätze. So werden die Erkennungsfähigkeiten des Modells verbessert, ohne die Inferenzleistung zu beeinträchtigen. Bei diesem Verfahren werden während des Trainings Anker genutzt, um die Vorhersagen von Begrenzungsrahmen zu verbessern. Dadurch eignet sich YOLOv6 für vielfältige Aufgaben der Objekterkennung.
YOLOv6 unterstützt verschiedene Betriebsmodi, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Nutzern, die Fähigkeiten des Modells in unterschiedlichen Szenarien voll auszuschöpfen. Eine ausführliche Übersicht über die einzelnen Modi findest du im Abschnitt Unterstützte Aufgaben und Betriebsmodi.