en ultrahurtig open source-algoritme til computersyn i realtid – Nonteek

4

Fra proceduremæssig anerkendelse til YOLO. Med single pass-dekodere tager computervision et generationsspring; et kig ind i den.

Computersyn er et af de felter, hvor kunstig intelligens ekspanderer. Tænk bare på de autonome og førerløse biler, hvor Tesla har været førende, og hvor alle de andre bilproducenter nu dykker ned i.

I årevis har genkendelse og kategorisering været et problem, især i betragtning af vanskeligheden ved en traditionel algoritme at genkende det samme objekt i forskellige positioner og vinkler. I betragtning af hvor let og spontan denne opgave ser ud til at være for os, er det ikke så indlysende at indse de problemer, der opstår ved automatisk genkendelse.

Problemer

Vi bør skelne mellem to klasser af problemer: kategorisering og lokalisering. Den første, relativt enklere, byder allerede på nogle ikke-trivielle vanskeligheder.

yolo-hunde-kat

Det er nemt for os for eksempel at genkende en stol, men ville du kunne beskrive den entydigt? Vi kunne definere det som et møbel at sidde på med fire ben, armlæn og ryglæn. Men ser vi på billedet nedenfor, bemærker vi allerede problemer: nogle har kun 3 ben, nogle har endda kun to, den røde faktisk kun et, den ene på kontoret er på hjul osv.

Men for os er det ligetil at identificere dem alle som stole. At lære en maskine at genkende dem ved at præsentere enhver mulig undtagelse er naturligvis umuligt. Som følge heraf er en regelbaseret anerkendelse dømt til i bedste fald at give utilfredsstillende resultater, fuld af falske positiver (anerkendelse af stole, hvor der ikke er nogen) og negative (stole, der ikke anerkendes som sådanne). Problemet bliver endnu mere kompliceret, hvis objekterne præsenteres med forskellige orienteringer, eller med manglende dele (se nedenfor).

Klassiske tilgange

Uden at grave for meget i historien om automatisk genkendelse af objekter kan vi sige, at før æraen med deep learning var et af de mest succesfulde forsøg på ansigtsgenkendelse. Viola-Jones Denne algoritme var relativt enkel: For det første blev en slags kort, der repræsenterede et ansigts træk, genereret gennem tusindvis af simple binære klassifikatorer vha. Haar funktioner. Dette kort blev derefter “kablet” ind i algoritmen ved at bruge det til at træne en SVM som en klassificering for at lokalisere selve ansigtet inde i scenen. Denne algoritme var så enkel og hurtig, at den stadig bruges i dag i nogle low-end point-and-shoot-kameraer. Dette præsenterede imidlertid præcis den slags problemer, der er beskrevet ovenfor, det vil sige, at de ikke var fleksible nok til at generalisere objekter præsenteret med små variationer til læringssættet.

Viola-Jones algoritme

Mere præcise var algoritmer som f.eks Dalal og Triggssom brugte HOG (histogrammer med orienterede gradienter). Dette tager ud over kanterne hensyn til orienteringen af ​​gradienterne i hver del af billedet og SVM til klassificering.

svin
Histogramekstraktion fra gradienter og genkendelse

Men selvom den opnåede meget mere præcise resultater end den forrige, var den væsentligt langsommere. Ydermere lå hovedproblemet stadig i manglen på robusthed og den deraf følgende vanskelighed med at genkende billeder med en vis mængde “støj” eller distraktioner i baggrunden.

At identificere og nedbryde billeder som dette var et svært problem for den første generations algoritmer

Et andet problem med disse algoritmer var evnen til kun at genkende et enkelt billede, og de var ikke gode til at generalisere. Med andre ord kunne de kun “konfigureres” på én type billeder (ansigter, hunde osv.), de havde store problemer med de ovenfor nævnte problemer, og formatet af de billeder, de kunne arbejde på, var meget begrænset.

Deep Learning til undsætning

Faktisk, for at være virkelig nyttig, burde genkendelse af objekter kunne fungere på komplekse scener, ligesom de scener, vi står over for i hverdagen (nedenfor).

Scene med forskellige typer objekter, i forskellige proportioner, farver og vinkler

Udvidelsen af ​​brugen af neurale netværk i Big Data-æraen og den deraf følgende popularitet af Deep Learning ændrede spillet virkelig, især takket være udviklingen af Konvolutionelle neurale netværk (CNN).

En fælles tilgang til næsten alle algoritmerne (inklusive de foregående) var “glidevinduet”, det vil sige at scanne hele billedområdet zone for zone, analysere en del (vinduet) ad gangen.

I tilfældet med CNN er ideen at gentage processen med forskellige vinduesstørrelser, for hver af dem opnå en forudsigelse af indholdet med en vis grad af selvtillid. I sidste ende kasseres forudsigelserne med en lavere grad af tillid.

Klassificering med CNN

YOLO, pioneren inden for Single Shot-dekodere

I dag har vi brug for langt mere end en simpel klassificering eller lokalisering i statiske billeder, hvad vi har brug for er realtidsanalyse: ingen ville ønske at sidde i en autonom bil, der tager flere minutter (eller endda sekunder) at genkende billeder!

Løsningen på problemet er at bruge single-pass foldningsnetværk, det vil sige at analysere alle dele af billedet parallelt, samtidigt, og undgå behovet for glidende vinduer.

Yolo blev udviklet af Redmon og Farhadi i 2015 under deres doktorgrad. Konceptet er at ændre størrelsen på billedet for at opnå et gitter af firkantede celler. I v3 (den sidste) laver YOLO forudsigelser på 3 forskellige skalaer, hvilket reducerer billedet med henholdsvis 32, 16 og 8 gange for at forblive nøjagtige selv på mindre skalaer (tidligere versioner havde problemer med små billeder). For hver af de 3 skalaer er hver celle ansvarlig for forudsigelsen af ​​3 afgrænsningskasser ved hjælp af 3 ankerkasser (en ankerboks er intet andet end et rektangel med foruddefinerede proportioner. De bruges til at have større overensstemmelse mellem forudsagt og forventet afgrænsning kasser. Her du kan følge den fremragende forklaring af Andrew Ng).

Yolo v3 er i stand til at arbejde med 80 forskellige klasser. Ved afslutningen af ​​behandlingen er det kun de afgrænsningskasser, der har den højeste sikkerhed, der opbevares, og de andre kasseres.

Yolo v3 Architecture (Kilde: Ayoosh Kathuria)

YOLO v3 er meget mere præcis end tidligere versioner, og på trods af at den er en smule langsommere, er den stadig en af ​​de hurtigste algoritmer, der findes. V3 bruger som arkitektur en variant af Darknet, med 106 foldede lag. Også interessant er Lille YOLOarbejder på Lille mørkenetog i stand til at køre på begrænsede enheder såsom smartphones.

Nedenfor kan du se en realtidsoptagelse af YOLO v3 på arbejde.

Noter

P. Viola og M. Jones: Hurtig genstandsdetektion ved hjælp af en boostet kaskade af simple funktionerCVPR 2001.

N. Dalal, B. Triggs: Histogrammer af orienterede gradienter til menneskelig detektionCVPR 2005.

En ankerkasse er ikke andet end et rektangel med foruddefinerede proportioner. De bruges til at få en bedre pasform mellem jorden og forventet afgrænsningskasse (her du kan følge den fremragende forklaring fra Andrea Ng).

LINKS

Objektdetektion: et overblik i Deep Learnings tidsalder

Udvikling af objektdetekterings- og lokaliseringsalgoritmer

YOLO hjemmeside

Redmon J, Farhadi A. – Du ser kun én gang: Ensartet objektgenkendelse i realtid (arXiv:1506.02640v5)

Redmon J, Farhadi A. – YOLOv3: En inkrementel forbedring (arXiv:1804.02767v1)

Wei Liu et al. – SSD: Single Shot MultiBox-detektor (arXiv:1512.02325v5)

Hvad er nyt i YOLO v3?

Hastighed/nøjagtighed afvejninger for moderne foldede objektdetektorer

Enkeltskudsdetektorer

Andrew NGs YOLO-foredrag om Coursera

YOLO: Objektdetektion i realtid

Histogram af orienterede gradienter

RNN’er i Darknet

Selvstudium: Implementer objektgenkendelse på livestream

YOLO — Du ser kun én gang, genstandsdetektering i realtid forklaret

UNDERSØGER MENNESKELIGE FORUDSOMHEDER FOR AFSPILNING AF VIDEO

SPIL

COCO – Fælles objekter i kontekst

lignende indlæg

Leave a Reply