Meituan YOLOv6

Übersicht

Meituan YOLOv6, veröffentlicht im Jahr 2022, bietet eine starke Balance zwischen Geschwindigkeit und Genauigkeit, was es 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 sowie ein verbessertes Backbone- und Neck-Design für hohe Genauigkeit auf dem COCO-Datensatz.

YOLOv6 Echtzeit-Objekterkennungsmodell von Meituan YOLOv6 Modellarchitekturdiagramm Überblick über YOLOv6. Modellarchitekturdiagramm, das die überarbeiteten Netzwerkkomponenten und Trainingsstrategien zeigt, die zu signifikanten Leistungsverbesserungen geführt haben. (a) Der Neck von YOLOv6 (N und S sind dargestellt). Beachte: Für M/L wird RepBlocks durch CSPStackRep ersetzt. (b) Die Struktur eines BiC-Moduls. (c) Ein SimCSPSPPF-Block. (Quelle).

Hauptmerkmale

  • 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 von anchor-based und anchor-free Paradigmen zu nutzen, ohne die Inferenz-Effizienz zu beeinträchtigen.
  • Verbessertes Backbone- und Neck-Design: Durch die Erweiterung von YOLOv6 um eine weitere Stufe im Backbone und Neck erreichte dieses Modell bei seiner Veröffentlichung eine starke Leistung auf dem COCO-Datensatz 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辅助-Regressionszweig während des Trainings verbessert und zur Inferenz entfernt, um einen deutlichen Geschwindigkeitsabfall zu vermeiden.

Leistungskennzahlen

YOLOv6 bietet verschiedene vortrainierte Modelle mit 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: Modernste Genauigkeit in Echtzeit.

YOLOv6 bietet auch quantisierte Modelle für verschiedene Präzisionen sowie Modelle, die für mobile Plattformen optimiert sind.

Anwendungsbeispiele

Dieses Beispiel bietet einfache YOLOv6-Trainings- und Inferenzbeispiele. Für eine vollständige Dokumentation zu diesen und anderen Modi, siehe die Dokumentationsseiten für Predict, Train, Val und Export.

Beispiel

YOLOv6 *.yaml-Dateien können an die YOLO()-Klasse ü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 eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle decken unterschiedliche Rechenanforderungen und Genauigkeitsansprüche ab, was sie vielseitig für eine breite Palette von Anwendungen macht.

ModellDateinamenTasksInferenzValidierungTrainingExportieren
YOLOv6-Nyolov6n.yamlObjekterkennung
YOLOv6-Syolov6s.yamlObjekterkennung
YOLOv6-Myolov6m.yamlObjekterkennung
YOLOv6-Lyolov6l.yamlObjekterkennung
YOLOv6-Xyolov6x.yamlObjekterkennung

Diese Tabelle bietet einen detaillierten Überblick über die YOLOv6-Modellvarianten und hebt ihre Fähigkeiten bei Objekterkennungsaufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass du die Möglichkeiten der YOLOv6-Modelle in einer breiten Palette von Objekterkennungsszenarien voll ausschöpfen kannst.

Zitate und Danksagungen

Wir möchten den Autoren für ihre bedeutenden Beiträge im Bereich der Echtzeit-Objekterkennung danken:

Zitat
@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 findest du auf arXiv. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebasis kann auf GitHub eingesehen werden. Wir schätzen ihre Bemühungen, den Bereich voranzubringen und ihre Arbeit der breiteren Community zugänglich zu machen.

FAQ

Was ist Meituan YOLOv6 und was macht es einzigartig?

Meituan YOLOv6, veröffentlicht im Jahr 2022, ist ein Objektdetektor, der Geschwindigkeit und Genauigkeit ausbalanciert und für Echtzeitanwendungen konzipiert ist. 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 Leistungszuwächse bei minimalem Geschwindigkeitsverlust, was YOLOv6 zu einer wettbewerbsfähigen Wahl für Objekterkennungsaufgaben macht.

Wie verbessert das Bi-directional Concatenation (BiC)-Modul in YOLOv6 die Leistung?

Das Bi-directional Concatenation (BiC)-Modul in YOLOv6 verbessert Lokalisierungssignale im Neck des Detektors und liefert Leistungsverbesserungen bei vernachlässigbarem Geschwindigkeitseinfluss. 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 Key Features.

Wie kann ich ein YOLOv6-Modell mit Ultralytics trainieren?

Du kannst ein YOLOv6-Modell mit Ultralytics mithilfe einfacher Python- oder CLI-Befehle 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)

Für weitere Informationen besuche die Train-Seite.

Was sind die verschiedenen Versionen von YOLOv6 und ihre Leistungsmetriken?

YOLOv6 bietet mehrere Versionen an, 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

Diese Modelle wurden auf dem COCO-Datensatz unter Verwendung einer NVIDIA T4 GPU evaluiert. Mehr zu Leistungsmetriken findest du im Abschnitt Performance Metrics.

Wie kommt die Anchor-Aided Training (AAT)-Strategie YOLOv6 zugute?

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 Inferenz-Effizienz zu beeinträchtigen. Diese Strategie nutzt Anker während des Trainings, um Bounding Box-Vorhersagen zu verbessern, wodurch YOLOv6 bei diversen Objekterkennungsaufgaben effektiv wird.

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 Nutzern, die Möglichkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Sieh dir den Abschnitt Supported Tasks and Modes für einen detaillierten Überblick über jeden Modus an.

Kommentare