Innholdsfortegnelse[Gjemme seg][Forestilling]
Objektdeteksjon er en type bildekategorisering der et nevralt nettverk forutser elementer i et bilde og tegner avgrensende bokser rundt dem. Å oppdage og lokalisere ting i et bilde som samsvarer med et forhåndsinnstilt sett med klasser, kalles objektdeteksjon.
Objektgjenkjenning (også kjent som objektgjenkjenning) er et spesielt viktig underdomene til Computer Vision fordi oppgaver som deteksjon, identifikasjon og lokalisering finner bred anvendelse i virkelige kontekster.
YOLO-tilnærmingen kan hjelpe deg med å utføre disse oppgavene. I dette essayet skal vi se nærmere på YOLO, inkludert hva det er, hvordan det fungerer, ulike varianter og mer.
Så, hva er YOLO?
YOLO er en metode for sanntids objektidentifikasjon og gjenkjenning i fotografier. Det er et akronym for You Only Look Once. Redmond et al. foreslo tilnærmingen i et papir som opprinnelig ble publisert i 2015 på IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
OpenCV People's Choice Award ble gitt til avisen. I motsetning til tidligere objektidentifikasjonsmetoder, som gjenbrukte klassifikatorer til å gjøre deteksjon, foreslår YOLO bruk av en ende-til-ende nevrale nettverket som forutsier grensebokser og klassesannsynligheter samtidig.
YOLO produserer toppmoderne resultater ved å ta en fundamentalt ny tilnærming til gjenkjenning av objekter, som lett utkonkurrerer tidligere metoder for gjenkjenning av objekter i sanntid.
YOLO jobber
YOLO-metoden deler bildet inn i N rutenett, hver med en like stor SxS-dimensjonal sektor. Hvert av disse N-nettene har ansvaret for å oppdage og lokalisere objektet det inneholder.
Disse rutenettene, i sin tur, forutsier B-grensebokskoordinater i forhold til cellekoordinater, så vel som elementnavnet og sannsynligheten for at objektet er tilstede i cellen. På grunn av at mange celler forutsier det samme elementet med varierte grenseboksprediksjoner, reduserer denne teknikken beregningen betraktelig fordi både deteksjon og gjenkjenning håndteres av celler fra bildet.
Imidlertid produserer det mange dupliserte spådommer. For å løse dette problemet, bruker YOLO ikke-maksimal undertrykkelse. YOLO undertrykker alle grensefelter med lavere sannsynlighetsscore i ikke-maksimal undertrykkelse.
YOLO gjør dette ved å undersøke sannsynlighetsskårene knyttet til hvert alternativ og velge den med høyest poengsum. Avgrensningsboksene med det største skjæringspunktet over foreningen med den gjeldende grenseboksen med høy sannsynlighet blir deretter undertrykt.
Denne prosessen fortsetter til avgrensningsboksene er fullført.
Ulike varianter av YOLO
Vi skal se på noen av de vanligste YOLO-versjonene. La oss komme i gang.
1. YOLOv1
Den første YOLO-versjonen ble annonsert i 2015 i publikasjonen "Du ser bare én gang: Samlet objektgjenkjenning i sanntid” av Joseph Redmon, Santosh Divvala, Ross Girshick og Ali Farhadi.
På grunn av sin hastighet, nøyaktighet og læringsevne, dominerte YOLO raskt området for objektidentifikasjon og ble den mest brukte algoritmen. I stedet for å adressere objektdeteksjon som et klassifiseringsproblem, nærmet forfatterne det som et regresjonsproblem med geografisk adskilte grensebokser og tilhørende klassesannsynligheter, som de løste ved å bruke en enkelt nevrale nettverket.
YOLOv1 behandlet bilder med 45 bilder per sekund i sanntid, mens en mindre variant, Fast YOLO, behandlet med 155 bilder per sekund og fortsatt oppnådde dobbelt så mye som andre sanntidsdetektorer.
2. YOLOv2
Et år senere, i 2016, ga Joseph Redmon og Ali Farhadi ut YOLOv2 (også kjent som YOLO9000) i avisen "YOLO9000: Bedre, raskere, sterkere».
Modellens kapasitet til å forutsi til og med 9000 forskjellige varekategorier mens den fortsatt kjører i sanntid, ga den betegnelsen 9000. Ikke bare ble den nye modellversjonen samtidig trent på objektdeteksjons- og klassifiseringsdatasett, men den fikk også Darknet-19 som den nye grunnlinjen modell.
Fordi YOLOv2 også var en stor suksess og raskt ble den neste toppmoderne objektgjenkjenningsmodellen, begynte andre ingeniører å eksperimentere med algoritmen og produsere sine egne, unike YOLO-versjoner. Noen av dem vil bli diskutert på ulike punkter i artikkelen.
3. YOLOv3
I avisen "YOLOv3: En inkrementell forbedring,” Joseph Redmon og Ali Farhadi publiserte en ny versjon av algoritmen i 2018. Den ble bygget på Darknet-53-arkitekturen. Uavhengige logistikkklassifiserere erstattet softmax-aktiveringsmekanismen i YOLOv3.
Det binære kryssentropitapet ble brukt under trening. Darknet-19 ble forbedret og omdøpt til Darknet-53, som nå har 53 konvolusjonslag. Bortsett fra det, ble spådommene gjort på tre forskjellige skalaer, noe som hjalp YOLOv3 med å forbedre nøyaktigheten i å forutsi små ting.
YOLOv3 var Joseph Redmons endelige YOLO-versjon, siden han valgte å ikke jobbe med ytterligere YOLO-forbedringer (eller til og med i datasynsområdet) for å unngå at arbeidet hans hadde en skadelig innflytelse på verden. Det brukes nå mest som et utgangspunkt for å konstruere unike objektdeteksjonsarkitekturer.
4. Yolov4
Alexey Bochkovskiy, Chien-Yao Wang og Hong-Yuan Mark Liao publiserte "YOLOv4: Optimal hastighet og nøyaktighet ved gjenkjenning av objekter” i april 2020, som var den fjerde iterasjonen av YOLO-algoritmen.
Vektede gjenværende tilkoblinger, tverrtrinn-partielle tilkoblinger, cross mini-batch-normalisering, selvmotstridende trening, mish-aktivering, drop-blokkering og CIoU-tap ble alle introdusert som en del av SPDarknet53-arkitekturen.
YOLOv4 er en etterkommer av YOLO-familien, men den ble utviklet av separate forskere (ikke Joseph Redmon og Ali Farhadi). SPDarknet53-ryggraden, romlig pyramidpooling, PANet-baneaggregering som nakke og YOLOv3-hode utgjør arkitekturen.
Som en konsekvens, sammenlignet med overordnet, YOLOv3, oppnår YOLOv4 10 % høyere gjennomsnittlig presisjon og 12 % bedre rammer per sekund.
5. YOLOv5
YOLOv5 er et åpen kildekode-prosjekt som inkluderer en rekke objektidentifikasjonsmodeller og algoritmer basert på YOLO-modellen som er forhåndstrent på COCO-datasettet.
YOLOv5 er en samling av sammensatt-skalerte objektidentifikasjonsmodeller trent på COCO-datasettet, med enkle muligheter for TTA, modellmontering, hyperparameterutvikling og eksport til ONNX, CoreML og TFLite. Fordi YOLOv5 ikke implementerer eller utvikler noen unike tilnærminger, kunne ikke det formelle papiret frigis. Det er ganske enkelt YOLOv3s PyTorch-utvidelse.
Ultranytics brukte dette scenariet for å publisere den "nye YOLO"-versjonen under sponsing. Fordi det også er fem forhåndstrente modeller tilgjengelig, er YOLOv5-hjemmesiden ganske grei og profesjonelt strukturert og skrevet, med en rekke leksjoner og forslag om trening og bruk av YOLOv5-modellene.
YOLO-begrensninger
Selv om YOLO ser ut til å være den beste teknikken for å løse objektdeteksjon problemer, har den en rekke ulemper. Fordi hvert rutenett bare kan identifisere ett element, har YOLO problemer med å oppdage og separere små ting i bilder som forekommer i grupper. Små ting i svermer, for eksempel en sverm av maur, er vanskelig for YOLO å identifisere og lokalisere.
Sammenlignet med betydelig langsommere objektidentifikasjonsmetoder som Fast RCNN, er YOLO også preget av mindre nøyaktighet.
Begynn å bruke YOLOv5
Hvis du er interessert i å se en YOLOv5 i aksjon, sjekk ut offisielle GitHub og YOLOv5 i PyTorch.
konklusjonen
YOLOv5s første versjon er ekstremt rask, ytende og enkel å bruke. Selv om YOLOv5 ikke legger til noen ny modellarkitektur til YOLO-familien, gir den et nytt PyTorch-trenings- og distribusjonsrammeverk som forbedrer toppmoderne for objektdetektorer.
Videre er YOLOv5 ekstremt brukervennlig og kommer "ut av esken" klar til bruk på skreddersydde objekter.
Legg igjen en kommentar