Naar de content

Hoe computers steeds beter worden in het herkennen van beelden

Het analyseren van een video is de kunst van het negeren

Flickr, callandresponse, CC BY-NC 2.0, aangepast

Het duurde lang maar de computer wordt eindelijk beter in het herkennen van beelden. Hij kijkt daarvoor een trucje af van de mens. Als het mogelijk is om automatisch te zien wat er op videobeelden gebeurt, dan zijn er belangrijke toepassingen in het onderwijs, maar ook op YouTube. Nederlandse wetenschappers ‘leren’ de computer kijken.

Wat zouden we zonder de computer moeten? Hij verbindt ons met de hele wereld, regelt het betalingsverkeer, helpt artsen met het stellen van diagnoses en vervult een sleutelrol in de wetenschap. Maar er is een ding waarin hij waardeloos is, en dat is het kijken naar een YouTube-video.

Het líjkt zo simpel. Neem een video van iemand die fietst, mensen die elkaar begroeten of een stel dat trouwt. Klik door de inhoud van YouTube en je hebt (meestal) razendsnel door wat je ziet. De ‘omstandigheden’ in de video maken nauwelijks uit, of iemand binnen of buiten fietst, of mensen elkaar boven- of onderwater het ja-woord geven. Maar het zijn juist deze eindeloze variaties die het een computer ontzettend moeilijk maken. Hij is meer in zijn element met recht-toe-recht-aan-informatie en weet simpelweg niet waar hij moet ‘kijken’. Welke elementen zijn belangrijk en welke niet? Het analyseren van een video is de kunst van het negeren.

De laatste jaren lijkt hier verandering in te komen. De computer is steeds beter in het herkennen van objecten, dieren en mensen in foto’s en video’s. Wetenschappers nemen de computer bij de hand en leren hem kijken. Zo ook universitair docent Ronald Poppe van de Universiteit Utrecht. Hij gaat na of hij de computer kan leren om te bepalen wat bepaalde bewegingen van mensen betekenen.

De toepassingen van systemen die automatisch de juiste informatie uit beelden weten te halen zijn eindeloos. Het kan helpen om de gigantische hoeveelheid informatie die ligt opgeslagen in alle afbeeldingen en video’s op internet toegankelijk te maken. “Vroeger kreeg je relevante resultaten bij de zoekterm ‘hond’, als iemand het plaatje toevallig hond.jpg had genoemd, of een goede beschrijving bij een plaatje of video had gegeven”, zegt Poppe. “Maar dat is lang niet altijd zo. Tegenwoordig krijg je ook resultaten die gebaseerd zijn op de inhoud van beelden.”

Digitaal oogje in het zeil

Het doorzoeken van afbeeldingen en video’s op internet is slechts het topje van de ijsberg van toepassingen. Poppe zelf kijkt in het project COMMIT naar video’s van ouderen in tehuizen. “Door de fysieke interacties tussen ouderen, bezoekers en hulpverleners te analyseren proberen we de computer te laten nagaan wat er gebeurt”, zegt hij. “We hopen automatisch te bepalen wat voor interacties er zijn, dat de computer zegt: ‘deze mensen zijn familie van elkaar’. Dit kan je inzetten bij ouderen met dementie, waarbij dit systeem een extra oog in het zeil houdt en hulp inschakelt als dat nodig is.”

Een beveiligingscamera. In 2013 probeerde de website Sargasso te inventariseren hoeveel camera’s er in Nederland hangen. Ze kwamen op ruim 200.000, inclusief camera’s van particulieren.

kakhunwart via CC BY-NC-ND 2.0

Zo’n digitaal oog komt ook van pas bij het bekijken van beelden van de straat. Het grote aantal camera’s stelt overheden en bedrijven namelijk voor een uitdaging: wie bekijkt al die beelden? Nu al worden er systemen gebruikt die automatisch verdacht gedrag signaleren, zoals het heen en weer lopen op een plek. Op het moment dat dit gebeurt, geeft de computer het door aan een persoon die er daadwerkelijk naar kijkt. “Algoritmes kunnen ook helpen een persoon te volgen op verschillende camerabeelden of om snel te achterhalen met wie iemand contact heeft gehad”, zegt Poppe.

Verder ziet Poppe nog toepassingen in het onderwijs – om te zien of kinderen afgeleid of gefrustreerd zijn, in de zorg – om te achterhalen wat er misging tijdens een operatie, of op het politiebureau waar een algoritme kan helpen om aan de hand van bewegingen van een persoon te achterhalen of hij of zij de waarheid spreekt. Of hij bang is voor een _big brother_-samenleving? Dat valt mee, Poppe stelt dat als we toch naar het gedrag van mensen kijken we dat maar beter op een zo goed mogelijk manier kunnen doen. Ze voorkom je fouten of onhandige situaties.

Iemand die een backflip maakt. Een neuraal netwerk dat deze beweging herkent heeft doet dat niet op basis van een minutieuze beschrijving van wat een backflip is. In plaats daarvan zorgt een samenspel tussen alle verbindingen in het neurale netwerk (zie hieronder) voor een hoge ‘score’ op het moment dat het een backflip ziet.

Australian Paralympic Committee via CC BY-SA 3.0

Leren kijken

Poppe en collega’s onderzoeken maar een deel van deze toepassingen. Momenteel proberen ze hun algoritme het verschil tussen verschillende begroetingen te herkennen. “We willen in staat zijn om verschil te maken tussen bewegingen die op elkaar lijken”, zegt Poppe. “Neem bijvoorbeeld verschillende groeten van mensen. Sommigen geven elkaar een hand, anderen een high five, of fist bump. Maar het kan ook zijn dat ze iets kleins aan elkaar doorgeven. Het is voor een computer erg moeilijk om het verschil te zien.”

Met slechts een paar verschillende interacties lukt dit al aardig, aldus Poppe. Toch moet het nog veel beter. De computer dient eigenlijk zoveel mogelijk interacties te (her)kennen. “Het wordt lastig als twee mensen elkaar een ‘vriendelijke stomp’ geven”, zegt Poppe. “Toch heb je dit soort complexe interacties nodig als je wil begrijpen wat er gebeurt, en wie elkaars vrienden zijn en wie niet.”

Net als de mens moet een computer leren kijken. Een algoritme dient getraind te worden met zoveel mogelijk beelden: het krijg dan voorbeeldsituaties voorgeschoteld met het ‘juiste antwoord’. Die trainingsfase kost relatief veel computerkracht, het herkennen van vergelijkbare beelden daarna gaat stukken sneller. Poppe en collega’s willen uiteindelijk dat hun algoritme videobeelden real time analyseren.

Overigens bouw je een algoritme niet hélemaal vanaf de grond op, zegt Poppe. “Je kunt getrainde neurale netwerken (zie kader Neurale netwerken) vaak gewoon downloaden. Hiermee kun je al basale dingen als katten, theekopjes en mensen herkennen. Maar na die eerste herkenningslaag van het algoritme begint het echte werk pas. Met het herkennen van bijvoorbeeld verschillende begroetingen onderscheidt het algoritme zich. Het is ook veel meer werk om dát te trainen, en de grote uitdaging is om toch een goed model te maken met relatief weinig trainingsdata.”

Een zeer simpel neuraal netwerk met verschillende lagen van neuronen die informatie verwerken en aan elkaar doorgeven.

fdecomite via CC BY 2.0
Afkijken bij de hersenen

Het blijkt dat het herkennen van objecten, mensen en bewegingen in video’s het beste gaat met zogenoemde neurale netwerken. Dat zijn algoritmes waarvan de werking lijkt op die van onze hersenen. Dat is niet gek, want juist de mens is meester in het herkennen van patronen, zoals objecten of gezichten.

Een neuraal netwerk bestaat uit verschillende lagen van ‘neuronen’ (ofwel hersencellen) die met elkaar verbonden zijn: ze geven informatie aan elkaar door. Het netwerk verwerkt een video doordat iedere laag een klein stukje van de analyse doet. Neem de eerste laag, die kijkt bijvoorbeeld naar de afzonderlijke pixels in een beeld. De laag daarna zoekt naar patronen in de pixels, waar zitten grote contrastverschillen die de randen van een object vormen? “Bij iedere laag komt er steeds meer patrooninformatie in”, zegt Poppe. “Hier zit een object, dit is een arm, daar is een hoofd. Zo bouwt het netwerk het beeld van een lichaam op. Als je dan ook nog de beweging meeneemt en er is genoeg informatie, dan kan het neurale netwerk beslissen: dit is een persoon die een backflip maakt.”

Het mooie van deze aanpak is de computer door variaties heen kijkt. “Video’s van dezelfde handelingen kunnen enorm van elkaar verschillen”, zegt Poppe. “Het gebeurt op een andere plaats, je ziet het vanuit een andere hoek, er is een andere belichting, een andere timing. Een neuraal netwerk slaat dit soort variaties plat en ziet de relevant patronen.”

Robuuster

We proberen computers te leren begrijpen wat ze op foto’s en video’s zien, maar kijken ze dan net zoals mensen? “Een computer zoekt puur naar patronen, ze doen niet echt een interpretatie zoals een mens dat doet”, zegt Poppe. “Ondanks hun enorme rekenkracht zijn computers nog steeds dom, wat ze in dit geval slimmer lijkt te maken is dat ze snuggerder redeneren wat er gebeurt. En dat is waardevol. Je detecteert opvallende gebeurtenissen automatisch. Is op een beveiligingscamera bijvoorbeeld te zien dat iemand net voor de beveiliging op een vliegveld een fles met vloeistof in een koffer doet? Dan is dat reden tot verdere inspectie.”

De computer kan tijdens een voetbalwedstrijd de statistieken bijhouden: hoe vaak er is gepasst, het percentage balbezit of de afstanden die de spelers hebben afgelegd.

James Willamor via CC BY-SA 2.0

Onderzoekers willen hun algoritmes nu robuuster te maken, zodat ze in zoveel mogelijk situaties werken. Poppe laat weten dat er al veel vooruitgang is geboekt. Vroeger moest je bij wijze van spreken al een nieuw algoritme maken op het moment dat er een video werd opgenomen met een andere belichting. Nu worden algoritmes om voetbalwedstrijden te analyseren (bijvoorbeeld hoeveel passes er zijn gedaan) ook toegepast op andersoortige wedstrijden, zoals ijshockey.

Zoek bij Google Afbeeldingen naar ‘paard met een berg op de achtergrond’ en je krijgt een reeks afbeelding die daar aan voldoen. De algoritmes van de zoekmachine zijn steeds beter in staat te bepalen wat er op een foto te zien is.

orientalizing via CC BY-NC-ND 2.0

“We willen uiteindelijk een computer gewoon laten uitleggen wat er in een video gebeurt”, zegt Poppe. “Het zou prachtig zijn als een computer voorspelt of een video een YouTube-hit wordt. Maar dat is verschrikkelijk moeilijk, wat er zijn oneindig veel variaties. Hoe leg je bijvoorbeeld uit dat een filmpje grappig is?”

De komende jaren gaat dit niet lukken, denkt Poppe. Volgens hem zijn er nog veel stappen nodig. Op technisch gebied, met betere neurale netwerken, maar er moet ook een ‘taal’ ontworpen worden waarmee een computer beschrijft wat er gebeurt. “Als mensen kunnen we dat vrij goed met onze taal”, zegt Poppe. “Een computer snapt daar niks van. Naast het kijken naar video’s moet de computer tegelijkertijd ook nog leren praten.”

ReactiesReageer