Overslaan naar inhoud

YOLOv4: Snelle en nauwkeurige detectie van objecten

Welkom op de Ultralytics documentatiepagina voor YOLOv4, een geavanceerde, realtime objectdetector die in 2020 is gelanceerd door Alexey Bochkovskiy op https://github.com/AlexeyAB/darknet. YOLOv4 is ontworpen om een optimale balans te bieden tussen snelheid en nauwkeurigheid, waardoor het een uitstekende keuze is voor veel toepassingen.

YOLOv4 architectuurdiagram YOLOv4 architectuurdiagram. Toont het ingewikkelde netwerkontwerp van YOLOv4, inclusief de ruggengraat, nek en hoofdcomponenten en hun onderling verbonden lagen voor optimale realtime objectdetectie.

Inleiding

YOLOv4 staat voor You Only Look Once versie 4. Het is een realtime objectdetectiemodel dat is ontwikkeld om de beperkingen van eerdere YOLO versies zoals YOLOv3 en andere objectdetectiemodellen aan te pakken. In tegenstelling tot andere op convolutionele neurale netwerken (CNN) gebaseerde objectdetectoren is YOLOv4 niet alleen toepasbaar voor aanbevelingssystemen, maar ook voor standalone procesbeheer en vermindering van menselijke invoer. De werking op conventionele grafische verwerkingseenheden (GPU's) maakt massaal gebruik tegen een betaalbare prijs mogelijk, en het is ontworpen om in real-time te werken op een conventionele GPU terwijl er slechts Ć©Ć©n zo'n GPU nodig is voor training.

Architectuur

YOLOv4 maakt gebruik van verschillende innovatieve functies die samenwerken om de prestaties te optimaliseren. Deze omvatten Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization en CIoU loss. Deze eigenschappen worden gecombineerd om state-of-the-art resultaten te behalen.

Een typische objectdetector bestaat uit verschillende onderdelen, waaronder de invoer, de ruggengraat, de nek en het hoofd. De backbone van YOLOv4 is voorgetraind op ImageNet en wordt gebruikt om klassen en bounding boxes van objecten te voorspellen. De ruggengraat kan van verschillende modellen zijn, waaronder VGG, ResNet, ResNeXt of DenseNet. Het nekgedeelte van de detector wordt gebruikt om feature maps van verschillende stadia te verzamelen en omvat meestal meerdere bottom-up paden en meerdere top-down paden. Het hoofdgedeelte wordt gebruikt om de uiteindelijke objectdetecties en classificaties te maken.

Zak met gratis spullen

YOLOv4 maakt ook gebruik van methoden die bekend staan als "bag of freebies". Dit zijn technieken die de nauwkeurigheid van het model tijdens de training verbeteren zonder de inferentiekosten te verhogen. Gegevensuitbreiding is een veelgebruikte "bag of freebies"-techniek voor objectdetectie, die de variabiliteit van de invoerbeelden vergroot om de robuustheid van het model te verbeteren. Enkele voorbeelden van gegevensuitbreiding zijn fotometrische vervormingen (helderheid, contrast, tint, verzadiging en ruis van een afbeelding aanpassen) en geometrische vervormingen (willekeurig schalen, bijsnijden, omkeren en roteren) toevoegen. Deze technieken helpen het model om beter te generaliseren naar verschillende soorten afbeeldingen.

Functies en prestaties

YOLOv4 is ontworpen voor optimale snelheid en nauwkeurigheid in objectdetectie. De architectuur van YOLOv4 omvat CSPDarknet53 als ruggengraat, PANet als nek en YOLOv3 als detectiekop. Dankzij dit ontwerp kan YOLOv4 objectdetectie uitvoeren met een indrukwekkende snelheid, waardoor het geschikt is voor real-time toepassingen. YOLOv4 blinkt ook uit in nauwkeurigheid en behaalt de beste resultaten in benchmarks voor objectdetectie.

Voorbeelden

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

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

  1. Bezoek de YOLOv4 GitHub repository: https://github.com/AlexeyAB/darknet.

  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 YOLOv4 repository. Daarom wordt het sterk aangeraden om direct de instructies in de YOLOv4 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 YOLOv4 is geĆÆmplementeerd.

Conclusie

YOLOv4 is een krachtig en efficiƫnt objectdetectiemodel dat een balans vindt tussen snelheid en nauwkeurigheid. Door het gebruik van unieke eigenschappen en 'bag of freebies'-technieken tijdens de training kan het uitstekend presteren in realtime objectdetectietaken. YOLOv4 kan worden getraind en gebruikt door iedereen met een conventionele GPU, waardoor het toegankelijk en praktisch is voor een breed scala aan toepassingen.

Citaten en Erkenningen

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

@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Het originele YOLOv4 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 YOLOv4 en waarom zou ik het gebruiken voor objectdetectie?

YOLOv4, wat staat voor "You Only Look Once versie 4", is een geavanceerd real-time objectdetectiemodel dat in 2020 is ontwikkeld door Alexey Bochkovskiy. Het bereikt een optimale balans tussen snelheid en nauwkeurigheid, waardoor het zeer geschikt is voor real-time toepassingen. De architectuur van YOLOv4 bevat verschillende innovatieve functies, zoals Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) en Self-adversarial-training (SAT), om state-of-the-art resultaten te behalen. Als je op zoek bent naar een model met hoge prestaties dat efficiƫnt werkt op conventionele GPU's, dan is YOLOv4 een uitstekende keuze.

Hoe verbetert de architectuur van YOLOv4 de prestaties?

De architectuur van YOLOv4 bestaat uit verschillende hoofdcomponenten: de ruggengraat, de nek en het hoofd. De ruggengraat, die kan bestaan uit modellen zoals VGG, ResNet of CSPDarknet53 , is voorgetraind om klassen en bounding boxes te voorspellen. De nek, die PANet gebruikt, verbindt feature maps uit verschillende stadia voor uitgebreide gegevensextractie. Het hoofd tenslotte, dat configuraties van YOLOv3 gebruikt, maakt de uiteindelijke objectdetecties. YOLOv4 maakt ook gebruik van "bag of freebies" technieken zoals mozaĆÆek data augmentatie en DropBlock regularisatie, waardoor de snelheid en nauwkeurigheid verder worden geoptimaliseerd.

Wat zijn "zakjes met gratis cadeautjes" in de context van YOLOv4?

"Bag of freebies" verwijst naar methoden die de trainingsnauwkeurigheid van YOLOv4 verbeteren zonder de inferentiekosten te verhogen. Deze technieken omvatten verschillende vormen van gegevensvergroting zoals fotometrische vervormingen (helderheid, contrast, enz. aanpassen) en geometrische vervormingen (schalen, bijsnijden, omkeren, roteren). Door de variabiliteit van de invoerafbeeldingen te vergroten, helpen deze augmentaties YOLOv4 om beter te generaliseren naar verschillende typen afbeeldingen, waardoor de robuustheid en nauwkeurigheid worden verbeterd zonder dat dit ten koste gaat van de realtime prestaties.

Waarom wordt YOLOv4 geschikt geacht voor realtime objectdetectie op conventionele GPU's?

YOLOv4 is ontworpen om zowel snelheid als nauwkeurigheid te optimaliseren, waardoor het ideaal is voor real-time objectdetectietaken die snelle en betrouwbare prestaties vereisen. Het werkt efficiƫnt op conventionele GPU's en heeft er maar ƩƩn nodig voor zowel training als inferentie. Dit maakt het toegankelijk en praktisch voor verschillende toepassingen, variƫrend van aanbevelingssystemen tot standalone procesbeheer, waardoor er minder uitgebreide hardwareopstellingen nodig zijn en het een kosteneffectieve oplossing is voor real-time objectdetectie.

Hoe kan ik aan de slag met YOLOv4 als Ultralytics het momenteel niet ondersteunt?

Om met YOLOv4 aan de slag te gaan, moet je de officiĆ«le YOLOv4 GitHub repository bezoeken. Volg de installatie-instructies in het README-bestand, waaronder het klonen van de repository, het installeren van afhankelijkheden en het instellen van omgevingsvariabelen. Eenmaal geĆÆnstalleerd kun je het model trainen door je dataset voor te bereiden, de modelparameters te configureren en de meegeleverde gebruiksinstructies te volgen. Omdat Ultralytics op dit moment geen ondersteuning biedt voor YOLOv4, is het aan te raden om direct naar de YOLOv4 GitHub te gaan voor de meest actuele en gedetailleerde richtlijnen.



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

Reacties