Overslaan naar inhoud

Meituan YOLOv6

Overzicht

Meituan YOLOv6 is een geavanceerde objectdetector die een opmerkelijke balans biedt tussen snelheid en nauwkeurigheid, waardoor het een populaire keuze is voor realtime toepassingen. Dit model introduceert een aantal opmerkelijke verbeteringen in de architectuur en het trainingsschema, waaronder de implementatie van een bidirectionele aaneenschakelingsmodule (BiC), een ankerondersteunde trainingsstrategie (AAT) en een verbeterd ontwerp van de ruggengraat en de nek voor ultramoderne nauwkeurigheid op de COCO dataset.

Meituan YOLOv6 Modelvoorbeeldafbeelding Overzicht van YOLOv6. Schema van de modelarchitectuur met de herontworpen netwerkcomponenten en trainingsstrategieën die tot aanzienlijke prestatieverbeteringen hebben geleid. (a) De hals van YOLOv6 (N en S zijn afgebeeld). Merk op dat voor M/L, RepBlocks is vervangen door CSPStackRep. (b) De structuur van een BiC module. (c) Een SimCSPSPPF blok. (bron).

Belangrijkste kenmerken

  • Bidirectionele Aaneenschakeling (BiC) Module: YOLOv6 introduceert een BiC-module in de nek van de detector, die lokalisatiesignalen verbetert en prestatieverbeteringen levert met verwaarloosbare snelheidsvermindering.
  • Strategie voor ankerondersteunde training (AAT): Dit model stelt AAT voor om te profiteren van de voordelen van zowel ankergebaseerde als ankerloze paradigma's zonder afbreuk te doen aan de inferentie-efficiëntie.
  • Verbeterd ontwerp van de ruggengraat en de nek: Door YOLOv6 uit te diepen met nog een fase in de ruggengraat en nek, behaalt dit model state-of-the-art prestaties op de COCO dataset met hoge resolutie invoer.
  • Zelfdestillatiestrategie: Er is een nieuwe zelfdestillatiestrategie geïmplementeerd om de prestaties van kleinere modellen van YOLOv6 te verbeteren, waarbij de hulpregressietak tijdens de training wordt uitgebreid en bij de inferentie wordt verwijderd om een duidelijke snelheidsafname te voorkomen.

Prestatiecijfers

YOLOv6 biedt verschillende voorgetrainde modellen met verschillende schalen:

  • YOLOv6-N: 37,5% AP op COCO val2017 bij 1187 FPS met NVIDIA Tesla T4 GPU.
  • YOLOv6-S: 45,0% AP bij 484 FPS.
  • YOLOv6-M: 50,0% AP bij 226 FPS.
  • YOLOv6-L: 52,8% AP bij 116 FPS.
  • YOLOv6-L6: State-of-the-art nauwkeurigheid in real-time.

YOLOv6 biedt ook gekwantiseerde modellen voor verschillende nauwkeurigheden en modellen die geoptimaliseerd zijn voor mobiele platforms.

Voorbeelden

Dit voorbeeld geeft eenvoudige YOLOv6 training en inferentie voorbeelden. Voor volledige documentatie over deze en andere modi zie de Predict, Train, Val en Export docs pagina's.

Voorbeeld

PyTorch voorgetraind *.pt modellen en configuratie *.yaml bestanden kunnen worden doorgegeven aan de YOLO() klasse om een instantie van een model te maken in python:

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 commando's zijn beschikbaar om de modellen direct uit te voeren:

# 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

Ondersteunde taken en modi

De YOLOv6 serie biedt een reeks modellen, elk geoptimaliseerd voor hoogwaardige Objectdetectie. Deze modellen voldoen aan verschillende rekenbehoeften en nauwkeurigheidseisen, waardoor ze veelzijdig zijn voor een breed scala aan toepassingen.

Type model Voorgetrainde gewichten Ondersteunde taken Inferentie Validatie Training Exporteer
YOLOv6-N yolov6-n.pt Objectdetectie ✅ ✅ ✅ ✅
YOLOv6-S yolov6-s.pt Objectdetectie ✅ ✅ ✅ ✅
YOLOv6-M yolov6-m.pt Objectdetectie ✅ ✅ ✅ ✅
YOLOv6-L yolov6-l.pt Objectdetectie ✅ ✅ ✅ ✅
YOLOv6-L6 yolov6-l6.pt Objectdetectie ✅ ✅ ✅ ✅

Deze tabel geeft een gedetailleerd overzicht van de YOLOv6 modelvarianten, met de nadruk op hun mogelijkheden in objectdetectietaken en hun compatibiliteit met verschillende operationele modi zoals Inferentie, Validatie, Training en Exporteren. Deze uitgebreide ondersteuning zorgt ervoor dat gebruikers volledig gebruik kunnen maken van de mogelijkheden van YOLOv6-modellen in een breed scala aan objectdetectiescenario's.

Citaten en Erkenningen

We willen de auteurs bedanken voor hun belangrijke bijdragen op het gebied van real-time objectdetectie:

@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}
}

Het originele YOLOv6 artikel is te vinden op arXiv. De auteurs hebben hun werk openbaar gemaakt en de codebase is toegankelijk op GitHub. We waarderen hun inspanningen om het veld vooruit te helpen en hun werk toegankelijk te maken voor de bredere gemeenschap.



Gemaakt op 2023-11-12, Bijgewerkt op 2024-01-07
Auteurs: glenn-jocher (5)

Reacties