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



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

Reacties