Zum Inhalt springen

Meituan YOLOv6

Übersicht

Meituan YOLOv6 ist ein hochmoderner Objektdetektor, der eine bemerkenswerte Balance zwischen Geschwindigkeit und Genauigkeit bietet, was ihn zu einer beliebten Wahl fĂŒr Echtzeitanwendungen macht. In diesem Modell wurden mehrere bemerkenswerte Verbesserungen an der Architektur und dem Trainingsschema vorgenommen. Dazu gehören die Implementierung eines Bi-direktionalen Verkettungsmoduls (BiC), eine ankerunterstĂŒtzte Trainingsstrategie (AAT) und ein verbessertes Backbone- und Neck-Design fĂŒr modernste Genauigkeit im COCO-Datensatz.

Meituan YOLOv6 Modell Beispielbild Überblick ĂŒber YOLOv6. Das Diagramm der Modellarchitektur zeigt die neu gestalteten Netzwerkkomponenten und Trainingsstrategien, die zu erheblichen Leistungsverbesserungen gefĂŒhrt haben. (a) Der Hals von YOLOv6 (N und S sind dargestellt). Beachte, dass RepBlocks fĂŒr M/L durch CSPStackRep ersetzt wurde. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle).

Hauptmerkmale

  • Bidirektionales Verkettungsmodul (BiC): YOLOv6 fĂŒhrt ein BiC-Modul im Nacken des Detektors ein, das die Lokalisierungssignale verbessert und eine Leistungssteigerung bei vernachlĂ€ssigbarer Geschwindigkeitsverringerung ermöglicht.
  • Anchor-Aided Training (AAT) Strategie: In diesem Modell wird AAT vorgeschlagen, um die Vorteile des ankerbasierten und des ankerfreien Paradigmas zu nutzen, ohne die Effizienz der Schlussfolgerungen zu beeintrĂ€chtigen.
  • Verbessertes Backbone- und Neck-Design: Durch die Vertiefung von YOLOv6 um eine weitere Stufe im Backbone und Neck erreicht dieses Modell die modernste Leistung auf dem COCO-Datensatz bei hochauflösendem Input.
  • Selbst-Destillationsstrategie: Um die Leistung kleinerer Modelle von YOLOv6 zu steigern, wurde eine neue Selbstdistillationsstrategie implementiert, die den Hilfsregressionszweig wĂ€hrend des Trainings verbessert und ihn bei der Inferenz entfernt, um einen deutlichen Geschwindigkeitsabfall zu vermeiden.

Leistungsmetriken

YOLOv6 bietet verschiedene vortrainierte Modelle mit unterschiedlichen Skalen:

  • YOLOv6-N: 37,5% AP auf COCO val2017 bei 1187 FPS mit NVIDIA Tesla 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: Modernste Genauigkeit in Echtzeit.

YOLOv6 bietet auch quantisierte Modelle fĂŒr verschiedene Genauigkeiten und Modelle, die fĂŒr mobile Plattformen optimiert sind.

Verwendungsbeispiele

Dieses Beispiel zeigt einfache YOLOv6-Trainings- und Inferenzbeispiele. Die vollstÀndige Dokumentation zu diesen und anderen Modi findest du auf den Seiten Predict, Train, Val und Export docs.

Beispiel

PyTorch vorgebildet *.pt Modelle als auch die Konfiguration *.yaml Dateien können an den YOLO() Klasse, um eine Modellinstanz 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")

CLI Befehle sind verfĂŒgbar, 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 eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle erfĂŒllen unterschiedliche Anforderungen an die Rechenleistung und die Genauigkeit, was sie fĂŒr eine Vielzahl von Anwendungen geeignet macht.

Modell Typ Vortrainierte Gewichte UnterstĂŒtzte Aufgaben Inferenz Validierung Ausbildung exportieren
YOLOv6-N yolov6-n.pt Objekt-Erkennung ✅ ✅ ✅ ✅
YOLOv6-S yolov6-s.pt Objekt-Erkennung ✅ ✅ ✅ ✅
YOLOv6-M yolov6-m.pt Objekt-Erkennung ✅ ✅ ✅ ✅
YOLOv6-L yolov6-l.pt Objekt-Erkennung ✅ ✅ ✅ ✅
YOLOv6-L6 yolov6-l6.pt Objekt-Erkennung ✅ ✅ ✅ ✅

Diese Tabelle gibt einen detaillierten Überblick ĂŒber die YOLOv6-Modellvarianten und hebt ihre FĂ€higkeiten bei der Objekterkennung sowie ihre KompatibilitĂ€t mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende UnterstĂŒtzung stellt sicher, dass die Nutzer/innen die FĂ€higkeiten der YOLOv6-Modelle 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 auf dem Gebiet 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-Veröffentlichung ist auf arXiv zu finden. Die Autoren haben ihre Arbeit öffentlich zugĂ€nglich gemacht, und die Codebasis kann auf GitHub eingesehen werden. Wir freuen uns ĂŒber ihre BemĂŒhungen, das Feld voranzubringen und ihre Arbeit einer breiteren Gemeinschaft zugĂ€nglich zu machen.

FAQ

Was ist Meituan YOLOv6 und was macht es einzigartig?

Meituan YOLOv6 ist ein hochmoderner Objektdetektor, der ein ausgewogenes VerhĂ€ltnis zwischen Geschwindigkeit und Genauigkeit bietet und ideal fĂŒr Echtzeitanwendungen ist. Er verfĂŒgt ĂŒber bemerkenswerte architektonische Verbesserungen wie das Bi-directional Concatenation (BiC) Modul und eine Anchor-Aided Training (AAT) Strategie. Diese Innovationen sorgen fĂŒr erhebliche Leistungssteigerungen bei minimalen Geschwindigkeitseinbußen und machen YOLOv6 zu einer konkurrenzfĂ€higen Wahl fĂŒr Objektdetektionsaufgaben.

Wie verbessert das Bi-direktionale Verkettungsmodul (BiC) in YOLOv6 die Leistung?

Das Modul Bi-directional Concatenation (BiC) in YOLOv6 verbessert die Lokalisierungssignale im Nacken des Detektors und sorgt so fĂŒr Leistungssteigerungen bei vernachlĂ€ssigbarer GeschwindigkeitsbeeintrĂ€chtigung. Dieses Modul kombiniert effektiv verschiedene Feature Maps und erhöht so die FĂ€higkeit des Modells, Objekte genau zu erkennen. Weitere Einzelheiten zu den Funktionen von YOLOv6 findest du im Abschnitt Hauptfunktionen.

Wie kann ich ein YOLOv6-Modell mit Ultralytics trainieren?

Du kannst 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 findest du auf der Seite des Zuges.

Was sind die verschiedenen Versionen von YOLOv6 und ihre Leistungskennzahlen?

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: Modernste Genauigkeit in Echtzeitszenarien

These models are evaluated on the COCO dataset using an NVIDIA Tesla T4 GPU. For more on performance metrics, see the Performance Metrics section.

Wie profitiert YOLOv6 von der Strategie der ankergestĂŒtzten Ausbildung (AAT)?

Das ankerunterstĂŒtzte Training (AAT) in YOLOv6 kombiniert Elemente von ankerbasierten und ankerfreien AnsĂ€tzen, um die ErkennungsfĂ€higkeiten des Modells zu verbessern, ohne die Effizienz der Schlussfolgerungen zu beeintrĂ€chtigen. Diese Strategie nutzt Anker wĂ€hrend des Trainings, um die Vorhersagen fĂŒr die Bounding Box zu verbessern und macht YOLOv6 fĂŒr verschiedene Aufgaben der Objekterkennung effektiv.

Welche Betriebsmodi werden von den YOLOv6-Modellen in Ultralytics unterstĂŒtzt?

YOLOv6 unterstĂŒtzt verschiedene Betriebsmodi wie Inferenz, Validierung, Training und Export. Diese FlexibilitĂ€t ermöglicht es den Nutzern, die FĂ€higkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Einen detaillierten Überblick ĂŒber die einzelnen Modi findest du im Abschnitt UnterstĂŒtzte Aufgaben und Modi.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (10)

Kommentare