Skip to main content

Meituan YOLOv6

Übersicht

Meituan YOLOv6, veröffentlicht im Jahr 2022, bietet ein starkes Gleichgewicht 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 Trainingsstrategie ein, einschließlich der Implementierung eines Bidirectional Concatenation (BiC) Moduls, einer Anchor-Aided Training (AAT) Strategie und eines verbesserten backbone und Neck-Designs für hohe Genauigkeit auf dem COCO Datensatz.

YOLOv6 Echtzeit-Objekterkennungsmodell von Meituan Diagramm der YOLOv6 Modellarchitektur Übersicht über YOLOv6. Diagramm der Modellarchitektur, das die neugestalteten Netzwerkkomponenten und Trainingsstrategien zeigt, die zu signifikanten Leistungssteigerungen geführt haben. (a) Der Neck von YOLOv6 (N und S sind dargestellt). Hinweis: 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 sowohl von anchor-based und anchor-free Paradigmen zu nutzen, ohne die Inferenz-Effizienz zu beeinträchtigen.
  • Verbessertes Backbone- und Neck-Design: Indem YOLOv6 um eine weitere Stufe im Backbone und Neck erweitert wurde, erzielte 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, indem der zusätzliche Regressionszweig während des Trainings verstärkt und bei der Inferenz entfernt wird, 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 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 und Modelle, die für mobile Plattformen optimiert sind.

Anwendungsbeispiele

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

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")

Unterstützte Aufgaben und Modi

Die YOLOv6-Serie bietet eine Reihe von Modellen, die jeweils für eine hohe Leistung optimiert sind Objekterkennung. Diese Modelle decken unterschiedliche Rechenanforderungen und accuracy Anforderungen ab, was sie vielseitig für eine breite Palette von Anwendungen macht.

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

Diese Tabelle bietet eine detaillierte Übersicht der YOLOv6-Modellvarianten und hebt ihre Fähigkeiten bei Objekterkennungs Aufgaben und ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inference, Validierung, Training, und Export hervor. Diese umfassende Unterstützung stellt sicher, dass Nutzer die Fähigkeiten der YOLOv6-Modelle in einer Vielzahl von Objekterkennungsszenarien voll ausschöpfen können.

Zitate und Danksagungen

Wir möchten den Autoren für ihre signifikanten 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 ursprüngliche YOLOv6-Paper findest du auf arXiv. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebase ist auf GitHub zugänglich. Wir schätzen ihre Bemühungen, das Feld 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. Es bietet bemerkenswerte architektonische Verbesserungen wie das Bi-directional Concatenation (BiC) Modul und eine Anchor-Aided Training (AAT) Strategie. Diese Innovationen bieten erhebliche Leistungszuwächse bei minimalem Geschwindigkeitsverlust, was YOLOv6 zu einer konkurrenzfä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 die Lokalisierungssignale im Neck des Detektors und liefert Leistungsverbesserungen mit vernachlässigbarem Einfluss auf die Geschwindigkeit. Dieses Modul kombiniert effektiv verschiedene Feature Maps, was die Fähigkeit des Modells erhöht, Objekte präzise zu erkennen. Weitere Details zu den Funktionen von YOLOv6 findest du in der Hauptmerkmale .

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)

Funktion verwenden. Stelle sicher, dass deine Dateien mit separaten Verzeichnissen für Bilder und Labels organisiert sind.Train Seite.

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

Diese Modelle werden auf dem COCO-Datensatz unter Verwendung einer NVIDIA T4 GPU bewertet. Mehr zu den Leistungskennzahlen findest du in der Leistungskennzahlen .

Wie profitiert YOLOv6 von der Anchor-Aided Training (AAT) Strategie?

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 Anchors während des Trainings, um die Bounding Box Vorhersagen zu verbessern, was YOLOv6 in verschiedenen Objekterkennungsaufgaben effektiv macht.

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 erlaubt es Nutzern, die Fähigkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Sieh dir den Unterstützte Aufgaben und Modi Abschnitt für eine detaillierte Übersicht jedes Modus an.

Kommentare