Zum Inhalt springen

Meituan YOLOv6

Übersicht

Meituan YOLOv6 ist ein hochmoderner Objektdetektor, der ein bemerkenswertes Gleichgewicht zwischen Geschwindigkeit und Genauigkeit bietet, was ihn zu einer beliebten Wahl für Echtzeitanwendungen macht. Dieses Modell enthält mehrere bemerkenswerte Verbesserungen seiner Architektur und seines Trainingsschemas, einschließlich der Implementierung eines Bi-direktionalen Verkettungsmoduls (BiC), einer ankerunterstützten Trainingsstrategie (AAT) und eines verbesserten Backbone- und Neck-Designs für eine hochmoderne Genauigkeit im COCO-Datensatz.

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

Wesentliche Merkmale

  • 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.
  • Anker-gestütztes Training (AAT) Strategie: Dieses Modell schlägt AAT vor, um die Vorteile sowohl des ankerbasierten als auch des ankerfreien Paradigmas zu nutzen, ohne die Effizienz der Inferenz 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ösender Eingabe.
  • Selbst-Destillations-Strategie: 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 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: Höchste Genauigkeit in Echtzeit.

YOLOv6 bietet auch quantisierte Modelle für verschiedene Genauigkeiten und für mobile Plattformen optimierte Modelle.

Beispiele für die Verwendung

Dieses Beispiel zeigt einfache YOLOv6-Trainings- und Inferenzbeispiele. Eine vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Seiten Predict, Train, Val und Export docs.

Beispiel

PyTorch vorgebildet *.pt Modelle sowie 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 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 eine leistungsstarke Objekterkennung optimiert sind. Diese Modelle erfüllen unterschiedliche Rechenanforderungen und Genauigkeitsanforderungen und sind somit vielseitig für eine breite Palette von Anwendungen einsetzbar.

Modell Typ Vorgefertigte 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 Objekterkennungsaufgaben sowie ihre Kompatibilität mit verschiedenen Betriebsmodi wie Inferenz, Validierung, Training und Export hervor. Diese umfassende Unterstützung stellt sicher, dass die Benutzer 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}
}

Das ursprüngliche YOLOv6-Papier kann auf arXiv gefunden werden. Die Autoren haben ihre Arbeit öffentlich zugänglich gemacht, und die Codebasis kann auf GitHub abgerufen werden. Wir schätzen 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 mit einem ausgewogenen Verhältnis zwischen Geschwindigkeit und Genauigkeit, ideal für Echtzeitanwendungen. 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 Objekterkennungsaufgaben.

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

Das Bi-direktionale Verkettungsmodul (BiC) in YOLOv6 verbessert die Lokalisierungssignale im Nacken des Detektors und sorgt so für Leistungssteigerungen bei vernachlässigbaren Geschwindigkeitsauswirkungen. 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 finden Sie im Abschnitt Hauptfunktionen.

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 Zug.

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: Genauigkeit auf dem neuesten Stand der Technik in Echtzeitszenarien

Diese Modelle werden anhand des COCO-Datensatzes unter Verwendung eines NVIDIA T4 GPU bewertet. Weitere Informationen zu Leistungsmetriken finden Sie im Abschnitt Leistungsmetriken.

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

Das verankerungsgestützte Training (AAT) in YOLOv6 kombiniert Elemente von verankerungsbasierten und verankerungsfreien Ansätzen und verbessert die Erkennungsfähigkeiten des Modells, ohne die Effizienz der Schlussfolgerungen zu beeinträchtigen. Diese Strategie nutzt Anker während des Trainings, um die Bounding-Box-Vorhersagen zu verbessern, wodurch YOLOv6 bei verschiedenen Objekterkennungsaufgaben effektiv ist.

Welche Betriebsarten werden von den YOLOv6-Modellen in Ultralytics unterstützt?

YOLOv6 unterstützt verschiedene Betriebsmodi, darunter Inferenz, Validierung, Training und Export. Diese Flexibilität ermöglicht es den Benutzern, die Fähigkeiten des Modells in verschiedenen Szenarien voll auszuschöpfen. Einen detaillierten Überblick über die einzelnen Modi finden Sie im Abschnitt Unterstützte Aufgaben und Modi.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 2 Monaten

Kommentare