Overslaan naar inhoud

YOLOv7: Trainbare zak met gratis spullen

YOLOv7 is een geavanceerde realtime objectdetector die alle bekende objectdetectoren overtreft in zowel snelheid als nauwkeurigheid in het bereik van 5 FPS tot 160 FPS. Het heeft de hoogste nauwkeurigheid (56,8% AP) van alle bekende realtime objectdetectors met 30 FPS of hoger op GPU V100. Bovendien presteert YOLOv7 beter dan andere objectdetectors zoals YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5 en vele andere in snelheid en nauwkeurigheid. Het model is vanaf nul getraind op de MS COCO dataset zonder gebruik te maken van andere datasets of vooraf getrainde gewichten. De broncode voor YOLOv7 is beschikbaar op GitHub.

YOLOv7 vergelijking met SOTA object detectors Vergelijking van geavanceerde objectdetectoren. Uit de resultaten in tabel 2 blijkt dat de voorgestelde methode de beste snelheid-nauwkeurigheid-afweging heeft. Als we YOLOv7-tiny-SiLU vergelijken met YOLOv5-N (r6.1), is onze methode 127 fps sneller en 10,7% nauwkeuriger op AP. Bovendien heeft YOLOv7 51,4% AP bij een framerate van 161 fps, terwijl PPYOLOE-L met dezelfde AP slechts 78 fps framerate heeft. In termen van parametergebruik is YOLOv7 41% minder dan PPYOLOE-L. Als we YOLOv7-X met 114 fps inferentiesnelheid vergelijken met YOLOv5-L (r6.1) met 99 fps inferentiesnelheid, kan YOLOv7-X AP met 3,9% verbeteren. Als YOLOv7-X wordt vergeleken met YOLOv5-X (r6.1) van vergelijkbare schaal, is de inferentiesnelheid van YOLOv7-X 31 fps sneller. Bovendien vermindert YOLOv7-X in termen van de hoeveelheid parameters en berekeningen 22% van de parameters en 8% van de berekeningen in vergelijking met YOLOv5-X (r6.1), maar verbetert het de AP met 2,2% (Bron).

Overzicht

Objectdetectie in realtime is een belangrijk onderdeel van veel computer vision-systemen, waaronder het volgen van meerdere objecten, autonoom rijden, robotica en medische beeldanalyse. In de afgelopen jaren heeft de ontwikkeling van real-time objectdetectie zich gericht op het ontwerpen van efficiënte architecturen en het verbeteren van de inferentiesnelheid van verschillende CPU's, GPU's en neurale verwerkingseenheden (NPU's). YOLOv7 ondersteunt zowel mobiele GPU's als GPU-apparaten, van de rand tot de cloud.

In tegenstelling tot traditionele realtime objectdetectors die zich richten op architectuuroptimalisatie, richt YOLOv7 zich op de optimalisatie van het trainingsproces. Dit omvat modules en optimalisatiemethoden die zijn ontworpen om de nauwkeurigheid van objectdetectie te verbeteren zonder de inferentiekosten te verhogen, een concept dat bekend staat als de "trainbare zak met gratis voorwerpen".

Belangrijkste kenmerken

YOLOv7 introduceert verschillende belangrijke functies:

  1. Model opnieuw parametriseren: YOLOv7 stelt een gepland opnieuw geparametreerd model voor, wat een strategie is die toepasbaar is op lagen in verschillende netwerken met het concept van gradiëntvoortplantingspad.

  2. Dynamische labeltoewijzing: De training van het model met meerdere outputlagen stelt ons voor een nieuw probleem: "Hoe wijs je dynamische doelen toe voor de uitgangen van verschillende takken?" Om dit probleem op te lossen, introduceert YOLOv7 een nieuwe labeltoewijzingsmethode genaamd grof-naar-fijn geleide labeltoewijzing.

  3. Uitgebreid en samengesteld schalen: YOLOv7 stelt "uitgebreide" en "samengestelde schalingsmethoden" voor de realtime objectdetector voor die parameters en berekeningen effectief kunnen gebruiken.

  4. Efficiëntie: De methode voorgesteld door YOLOv7 kan effectief ongeveer 40% parameters en 50% berekeningen van de meest geavanceerde real-time objectdetector verminderen, en heeft een snellere inferentiesnelheid en een hogere detectienauwkeurigheid.

Voorbeelden

Op het moment van schrijven ondersteunt Ultralytics nog geen YOLOv7 modellen. Daarom moeten gebruikers die YOLOv7 willen gebruiken direct naar de YOLOv7 GitHub repository gaan voor installatie- en gebruiksinstructies.

Hier volgt een kort overzicht van de typische stappen die je zou kunnen nemen om YOLOv7 te gebruiken:

  1. Bezoek de YOLOv7 GitHub repository: https://github.com/WongKinYiu/yolov7.

  2. Volg de instructies in het README bestand voor de installatie. Dit bestaat meestal uit het klonen van de repository, het installeren van de benodigde afhankelijkheden en het instellen van de benodigde omgevingsvariabelen.

  3. Zodra de installatie is voltooid, kun je het model trainen en gebruiken volgens de gebruiksinstructies in het archief. Dit houdt meestal in dat je je dataset voorbereidt, de modelparameters configureert, het model traint en vervolgens het getrainde model gebruikt om objectdetectie uit te voeren.

Houd er rekening mee dat de specifieke stappen kunnen variëren, afhankelijk van je specifieke gebruikssituatie en de huidige staat van de YOLOv7 repository. Daarom wordt het sterk aangeraden om direct de instructies in de YOLOv7 GitHub repository te raadplegen.

We betreuren het ongemak dat dit kan veroorzaken en zullen proberen dit document bij te werken met gebruiksvoorbeelden voor Ultralytics zodra ondersteuning voor YOLOv7 is geïmplementeerd.

Citaten en Erkenningen

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

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

Het originele YOLOv7 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.



Aangemaakt 2023-11-12, Bijgewerkt 2024-01-07
Auteurs: glenn-jocher (5), sergiuwaxmann (1)

Reacties