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

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.

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.

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

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.

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 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
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)
Hastighed/nøjagtighed afvejninger for moderne foldede objektdetektorer
Andrew NGs YOLO-foredrag om Coursera
YOLO: Objektdetektion i realtid
Histogram af orienterede gradienter
Selvstudium: Implementer objektgenkendelse på livestream
YOLO — Du ser kun én gang, genstandsdetektering i realtid forklaret
UNDERSØGER MENNESKELIGE FORUDSOMHEDER FOR AFSPILNING AF VIDEO
COCO – Fælles objekter i kontekst

Andrea har arbejdet med IT i næsten 20 år og dækket over alt, lige fra udvikling til forretningsanalyse til projektledelse.
I dag kan vi fortælle, at han er en ubekymret nisse, der brænder for neurovidenskab, kunstig intelligens og fotografering