Meituan YOLOv6
Überblick
Meituan YOLOv6 ist ein hochmoderner Objektdetektor, der ein bemerkenswertes Gleichgewicht zwischen Geschwindigkeit und Genauigkeit bietet und ihn zu einer beliebten Wahl für Echtzeitanwendungen macht. Dieses Modell führt mehrere bemerkenswerte Verbesserungen an seiner Architektur und seinem Trainingsschema ein, darunter die Implementierung eines Bi-directional Concatenation (BiC)-Moduls, eine Anchor-Aided Training (AAT)-Strategie und ein verbessertes Backbone- und Neck-Design für modernste Genauigkeit auf dem COCO-Datensatz.
Überblick über YOLOv6. Architekturdiagramm des Modells, das die neu gestalteten Netzwerkkomponenten und Trainingsstrategien zeigt, die zu erheblichen Leistungsverbesserungen geführt haben. (a) Der Neck von YOLOv6 (N und S sind dargestellt). Beachten Sie, dass für M/L RepBlocks durch CSPStackRep ersetzt wird. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle), oder Auto-Modus mit angegebener Auslastungsfraktion (
Hauptmerkmale
- Bidirectional Concatenation (BiC) Module: YOLOv6 führt ein BiC-Modul im Neck des Detektors ein, das Lokalisierungssignale verbessert und Leistungssteigerungen bei vernachlässigbarer Geschwindigkeitsreduzierung liefert.
- Anchor-Aided Training (AAT) Strategy: Dieses Modell schlägt AAT vor, um die Vorteile von sowohl ankerbasierten als auch ankerfreien Paradigmen zu nutzen, ohne die Inferenzeffizienz zu beeinträchtigen.
- Verbessertes Backbone- und Neck-Design: Durch die Vertiefung von YOLOv6 um eine weitere Stufe im Backbone und Neck erzielt dieses Modell eine hochmoderne Leistung auf dem COCO-Datensatz bei hochauflösender Eingabe.
- Self-Distillation-Strategie: Eine neue Self-Distillation-Strategie wird implementiert, um die Leistung kleinerer Modelle von YOLOv6 zu steigern, wodurch der Hilfsregressionszweig während des Trainings verbessert und bei der Inferenz entfernt wird, um einen deutlichen Geschwindigkeitsabfall zu vermeiden.
Leistungsmetriken
YOLOv6 bietet verschiedene vortrainierte Modelle mit unterschiedlichen Skalierungen:
- YOLOv6-N: 37,5 % AP auf COCO val2017 bei 1187 FPS mit 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: State-of-the-Art Genauigkeit in Echtzeit.
YOLOv6 bietet auch quantisierte Modelle für verschiedene Genauigkeiten und für mobile Plattformen optimierte Modelle.
Anwendungsbeispiele
Dieses Beispiel bietet einfache YOLOv6-Trainings- und Inferenzbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Dokumentationsseiten Predict, Train, Val und Export.
Beispiel
YOLOv6 *.yaml
Dateien können an die YOLO()
Klasse, 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")
Es stehen CLI-Befehle zur Verfügung, um die Modelle direkt auszuführen:
# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg
Unterstützte Aufgaben und Modi
Die YOLOv6-Serie bietet eine Reihe von Modellen, die jeweils für hochleistungsfähige Objekterkennung optimiert sind. Diese Modelle erfüllen unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen und sind somit vielseitig für eine breite Palette von Anwendungen einsetzbar.
Modell | Dateinamen | Aufgaben | Inferenz | Validierung | Training | 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 YOLOv6-Modellvarianten und hebt ihre Fähigkeiten bei Objekterkennungs-Aufgaben und ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Benutzer die Fähigkeiten von YOLOv6-Modellen in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen können.
Zitate und Danksagungen
Wir möchten die Autoren für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung würdigen:
@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 Original YOLOv6 Paper ist auf arXiv zu finden. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und der Code ist auf GitHub verfügbar. Wir schätzen ihre Bemühungen, das Feld voranzutreiben und ihre Arbeit der breiteren Community zugänglich zu machen.
FAQ
Was ist Meituan YOLOv6 und was macht es einzigartig?
Meituan YOLOv6 ist ein hochmoderner Objektdetektor, der Geschwindigkeit und Genauigkeit ausbalanciert und sich ideal für Echtzeitanwendungen eignet. Er zeichnet sich durch bemerkenswerte architektonische Verbesserungen wie das Bi-directional Concatenation (BiC)-Modul und eine Anchor-Aided Training (AAT)-Strategie aus. Diese Innovationen bieten erhebliche Leistungssteigerungen bei minimaler Geschwindigkeitsverschlechterung, was YOLOv6 zu einer wettbewerbsfähigen Wahl für Objektdektionsaufgaben macht.
Wie verbessert das Bi-directional Concatenation (BiC) Modul in YOLOv6 die Leistung?
Das Bi-directional Concatenation (BiC)-Modul in YOLOv6 verbessert die Lokalisierungssignale im Neck des Detektors und liefert Leistungsverbesserungen mit vernachlässigbaren Auswirkungen auf die Geschwindigkeit. Dieses Modul kombiniert effektiv verschiedene Feature Maps und erhöht die Fähigkeit des Modells, Objekte genau zu erkennen. Weitere Informationen zu den Funktionen von YOLOv6 finden Sie im Abschnitt Hauptmerkmale.
Wie kann ich ein YOLOv6-Modell mit Ultralytics trainieren?
Sie können ein YOLOv6-Modell mit Ultralytics mit einfachen Python- oder CLI-Befehlen trainieren. Zum Beispiel:
Beispiel
from 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)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
Weitere Informationen finden Sie auf der Seite Trainieren.
Welche verschiedenen Versionen von YOLOv6 gibt es und welche Leistungsmetriken haben sie?
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: State-of-the-Art Genauigkeit in Echtzeit-Szenarien
Diese Modelle werden auf dem COCO-Datensatz mit einer NVIDIA T4 GPU evaluiert. Weitere Informationen zu den Leistungsmetriken finden Sie im Abschnitt Leistungsmetriken.
Wie profitiert YOLOv6 von der Anchor-Aided Training (AAT) Strategie?
Anchor-Aided Training (AAT) in YOLOv6 kombiniert Elemente von anchor-basierten und anchor-freien Ansätzen und verbessert so die Erkennungsfähigkeiten des Modells, ohne die Inferenz-Effizienz zu beeinträchtigen. Diese Strategie nutzt Anker während des Trainings, um die Vorhersagen von Bounding Boxes zu verbessern, wodurch YOLOv6 bei verschiedenen Objekterkennungsaufgaben effektiv ist.
Welche Betriebsmodi werden von YOLOv6-Modellen in Ultralytics unterstützt?
YOLOv6 unterstützt verschiedene Betriebsmodi, einschließlich Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es Benutzern, die Fähigkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Im Abschnitt Unterstützte Aufgaben und Modi finden Sie einen detaillierten Überblick über jeden Modus.