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.

FAQ

Wat is Meituan YOLOv6 en wat maakt het uniek?

Meituan YOLOv6 is een geavanceerde objectdetector die snelheid en nauwkeurigheid in balans brengt, ideaal voor realtime toepassingen. Het beschikt over opmerkelijke architectonische verbeteringen zoals de BiC-module (Bi-directional Concatenation) en een AAT-strategie (Anchor-Aided Training). Deze innovaties zorgen voor aanzienlijke prestatieverbeteringen met minimale snelheidsvermindering, waardoor YOLOv6 een concurrerende keuze is voor objectdetectietaken.

Hoe verbetert de bidirectionele aaneenschakeling (BiC) module in YOLOv6 de prestaties?

De BiC-module (Bi-directional Concatenation) in YOLOv6 verbetert lokalisatiesignalen in de nek van de detector en levert prestatieverbeteringen met een verwaarloosbare impact op de snelheid. Deze module combineert effectief verschillende feature maps, waardoor het model beter in staat is om objecten nauwkeurig te detecteren. Meer details over de functies van YOLOv6 vind je in het hoofdstuk Belangrijke functies.

Hoe kan ik een YOLOv6-model trainen met Ultralytics?

Je kunt een YOLOv6-model trainen met Ultralytics met eenvoudige commando's Python of CLI . Bijvoorbeeld:

Voorbeeld

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

Ga voor meer informatie naar de Trein pagina.

Wat zijn de verschillende versies van YOLOv6 en hun prestatiecijfers?

YOLOv6 biedt meerdere versies, elk geoptimaliseerd voor verschillende prestatie-eisen:

  • YOLOv6-N: 37,5% AP bij 1187 FPS
  • 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 realtime scenario's

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

Wat is het voordeel van de AAT-strategie (Anchor-Aided Training) voor YOLOv6?

Anker-ondersteunde training (AAT) in YOLOv6 combineert elementen van anker-gebaseerde en anker-vrije benaderingen, waardoor de detectiemogelijkheden van het model worden verbeterd zonder afbreuk te doen aan de inferentie-efficiëntie. Deze strategie maakt gebruik van ankers tijdens training om bounding box voorspellingen te verbeteren, waardoor YOLOv6 effectief is in diverse objectdetectietaken.

Welke operationele modi worden ondersteund door YOLOv6-modellen in Ultralytics?

YOLOv6 ondersteunt verschillende operationele modi, waaronder Inferentie, Validatie, Training en Exporteren. Deze flexibiliteit stelt gebruikers in staat om de mogelijkheden van het model in verschillende scenario's volledig te benutten. Bekijk de sectie Ondersteunde taken en modi voor een gedetailleerd overzicht van elke modus.



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

Reacties