Meituan YOLOv6#
Übersicht#
Meituan YOLOv6, das 2022 veröffentlicht wurde, bietet eine starke Balance zwischen Geschwindigkeit und Genauigkeit, was es zu einer beliebten Wahl für Echtzeitanwendungen macht. Dieses Modell führt mehrere nennenswerte Verbesserungen an seiner Architektur und seinem Trainingsschema ein, darunter die Implementierung eines Bi-directional Concatenation (BiC)-Moduls, einer Anchor-Aided Training (AAT)-Strategie sowie eines verbesserten Backbone- und Neck-Designs für hohe Genauigkeit auf dem COCO Dataset.
Übersicht über YOLOv6. Diagramm der Modellarchitektur, das die neu gestalteten Netzwerkkomponenten und Trainingsstrategien zeigt, die zu signifikanten Leistungsverbesserungen geführt haben. (a) Der Neck von YOLOv6 (N und S werden gezeigt). Hinweis für M/L: RepBlocks wird durch CSPStackRep ersetzt. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle).
Hauptfunktionen#
- Bidirectional Concatenation (BiC) Modul: YOLOv6 führt ein BiC-Modul im Neck des Detektors ein, das Lokalisierungssignale verbessert und Leistungszuwächse bei vernachlässigbarem Geschwindigkeitsverlust liefert.
- Anchor-Aided Training (AAT)-Strategie: Dieses Modell schlägt AAT vor, um die Vorteile sowohl von anchor-based als auch anchor-free Paradigmen zu nutzen, ohne die Inferenzeffizienz zu beeinträchtigen.
- Verbessertes Backbone- und Neck-Design: Durch die Erweiterung von YOLOv6 um eine weitere Stufe im Backbone und Neck erreichte dieses Modell zum Zeitpunkt seiner Veröffentlichung eine starke Leistung auf dem COCO dataset bei hochauflösendem Input.
- Self-Distillation-Strategie: Eine neue Self-Distillation-Strategie wurde implementiert, um die Leistung kleinerer YOLOv6-Modelle zu steigern. Dabei wird der Hilfs-Regressionszweig während des Trainings verstärkt und bei der Inferenz entfernt, um einen deutlichen Geschwindigkeitsabfall zu vermeiden.
Leistungsmetriken#
YOLOv6 bietet verschiedene vortrainierte Modelle in unterschiedlichen Skalierungen:
- 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: Stand der Technik bei der Genauigkeit in Echtzeit.
YOLOv6 bietet zudem quantisierte Modelle für verschiedene Präzisionen sowie für Mobilplattformen optimierte Modelle.
Anwendungsbeispiele#
Dieses Beispiel bietet einfache Beispiele für das Training und die Inferenz mit YOLOv6. Vollständige Dokumentationen 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, von denen jedes für eine hochleistungsfähige Objekterkennung optimiert ist. Diese Modelle decken unterschiedliche Rechenbedürfnisse und Genauigkeitsanforderungen ab, wodurch sie für eine Vielzahl von Anwendungen vielseitig einsetzbar sind.
| Modell | Dateinamen | Aufgaben | Training | Validation | Inference | 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 eine detaillierte Übersicht über die YOLOv6-Modellvarianten und hebt deren Fähigkeiten bei Objekterkennungs-Aufgaben sowie deren Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Nutzer die Funktionen von YOLOv6-Modellen in einem breiten Spektrum von Objekterkennungsszenarien voll ausschöpfen können.
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}
}Das originale YOLOv6-Paper ist auf arXiv zu finden. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und auf die Codebasis kann auf GitHub zugegriffen werden. Wir schätzen ihre Bemühungen, das Fachgebiet voranzutreiben und ihre Arbeit der breiteren Community zugänglich zu machen.
FAQ#
Meituan YOLOv6, veröffentlicht im Jahr 2022, ist ein Objektdetektor, der Geschwindigkeit und Genauigkeit ausbalanciert und für Echtzeitanwendungen konzipiert wurde. Es bietet bemerkenswerte architektonische Verbesserungen wie das Bi-directional Concatenation (BiC)-Modul und eine Anchor-Aided Training (AAT)-Strategie. Diese Innovationen liefern erhebliche Leistungszuwächse bei minimalem Geschwindigkeitsverlust, was YOLOv6 zu einer wettbewerbsfähigen Wahl für Objekterkennungsaufgaben macht.
Das Bi-directional Concatenation (BiC)-Modul in YOLOv6 verbessert Lokalisierungssignale im Neck des Detektors und liefert Leistungsverbesserungen bei vernachlässigbarem Einfluss auf die Geschwindigkeit. Dieses Modul kombiniert effektiv verschiedene Feature Maps und erhöht so die Fähigkeit des Modells, Objekte präzise zu erkennen. Weitere Details zu den Funktionen von YOLOv6 findest du im Abschnitt Hauptfunktionen.
Du kannst ein YOLOv6-Modell mit Ultralytics über einfache 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: Stand der Technik bei der Genauigkeit in Echtzeitszenarien
Diese Modelle werden auf dem COCO-Dataset unter Verwendung einer NVIDIA T4 GPU evaluiert. Mehr zu Leistungsmetriken findest du im Abschnitt Leistungsmetriken.
Anchor-Aided Training (AAT) in YOLOv6 kombiniert Elemente von anchor-based und anchor-free Ansätzen und verbessert die Erkennungsfähigkeiten des Modells, ohne die Inferenzeffizienz zu beeinträchtigen. Diese Strategie nutzt Anker während des Trainings zur Verbesserung von Bounding-Box-Vorhersagen, wodurch YOLOv6 bei verschiedenen Objekterkennungsaufgaben effektiv wird.
YOLOv6 unterstützt verschiedene Betriebsmodi einschließlich Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Nutzern, die Fähigkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Sieh dir den Abschnitt Unterstützte Aufgaben und Modi für eine detaillierte Übersicht zu jedem Modus an.