Hoe computers foto's herkennen via deep learning

Er zijn vele redenen waarom het handig is om automatisch beelden te kunnen herkennen. Naast de wetenschappelijke uitdaging is er ook de enorme groei van video en foto’s online. Op Facebook alleen al worden op dit moment per minuut 136.000 foto’s gepubliceerd. Het zoeken in deze gigantische verzamelingen vergt uiterst slimme technologie: deep learning.

Bij de foto’s die we maken met onze smartphones en digitale camera’s bestaat de enige informatie vaak uit generieke metadata zoals datum, tijd, type toestel en eventueel gps-coördinaten.

In veel gevallen weten we niet wat er op die foto’s staat en is de enige manier om daarachter te komen, de foto’s bekijken. Tenminste, tot voor kort.

De afgelopen jaren zien we een sterke groei in het onderzoek naar deep learning en ook een aantal startups het gebied van deep learning, het geautomatiseerd in kaart brengen van de inhoud van visuele content, het zogenoemde taggen.

Gezichtsherkenning

De afgelopen jaren hebben we al kennisgemaakt met gezichtsherkenning in foto’s. Google Picasa (nu vervangen door Google Photo’s) was een van de eerste programma’s (voor het grote publiek) dat dit kon.

De reden voor Google om dit te doen was aan de ene kant het ontwikkelen van nieuwe technologie, maar er was ook een commerciële overweging: door het aanbieden van deze functie kun je je verzameling foto’s beter doorzoeken en ga je hopelijk meer gebruikmaken van de diensten van Google.

Een andere partij die heel duidelijk de waarde kent van een verzameling foto’s is stockfotoleverancier iStock. Iedere foto die de dienst online aanbiedt is voorzien van tussen de 20 en 50 tags die de inhoud beschrijven. Dit taggen wordt grotendeels door mensen gedaan met behulp van een standaardlijst van tags. Afhankelijk van de foto zijn tags in gebruik die het onderwerp (vrouw, auto), de sfeer (vrijheid) of het concept beschrijven.

De waarde van tags

Alle tags helpen je om de foto te vinden doordat ze zoektermen bevatten. Zonder deze zoektermen is de omvangrijke verzameling van iStock veel minder waardevol, je zou dan alle foto’s moeten gaan bekijken.

Afhankelijk van de wijze van publicatie en uit welke fotoverzameling wordt gekozen, kan het gebruik van een foto van enkele euro’s tot honderden euro’s kosten. Er is dus ook echt een businessmodel: beter vindbaar betekent meer omzet. De tags overlappen qua inhoud, omdat dit de vindbaarheid vergroot. In het praktijkvoorbeeld aan het einde van het artikel gaan we zelf de foto uit het kader analyseren en kijken zelf welke tags er worden gegenereerd.

Opvallend is dat er zowel stemmingen of gevoelens (Freedom) zijn getagd, als harde feiten zoals Mountain Range. Sommige tags worden handmatig toegevoegd op basis van de informatie van de fotograaf (locatie, leeftijd modellen en etniciteit).

Hoe werkt deep learning?

Deep learning is qua technologie niet echt nieuw, in die zin dat er al jaren aan gewerkt wordt. Het herkennen van objecten is een technologie die teruggaat tot de jaren 50 met Rosenblatt’s Perceptron, een systeem geïnspireerd door de werking van het menselijk brein. Voordat deep learning en geautomatiseerde herkenning rond 2012 met de opmars begon zijn, zijn er diverse technologieën ontwikkeld die het mogelijk maken om te selecteren op bepaalde aspecten.

Dit waren op regels gebaseerde systemen. Een voorbeeld is herkenning van seksueel getinte afbeeldingen waar de aanwezigheid van een hoog percentage huidkleurige pixels een indicatie is om een afbeelding als zodanig te labelen. Hier zit ook de makke, een close-up van een gezicht zal waarschijnlijk als seksueel getint wordt aangemerkt. Een mens moet op dat moment de uiteindelijke beslissing nemen bij de classificatie.

Ook andere op regels gebaseerde modellen werden gebruikt om afbeeldingen te taggen. Zo zijn de grote aanwezigheid van gele pixels (zandkleurig) en blauwe pixels (water, lucht) een indicatie van een mogelijke strandopname. Regels zijn echter beperkt doordat zij altijd uitgaan van een vooraf beschreven situatie. Dat maakt modellen die erop gebaseerd zijn inflexibel.

Deep learning is het vermogen van een computer om kennis te vergaren zonder expliciet te worden geprogrammeerd.

-

In 2012 begon het tijdperk van deep learning. Dat beschrijft het vermogen van een computer of systeem om te leren (kennis vergaren) zonder expliciet te worden geprogrammeerd. Geautomatiseerde beeldherkenning werkt met het voeden van een systeem met een groot aantal voorbeelden, waarna het in staat moet zijn om soortgelijke voorbeelden te beoordelen. Het bestaat uit de software die kan leren, in dit geval het in kaart brengen van afbeelding met daarbij de kennis wat in de afbeelding te zien is (berg, auto, vrouw, zomer). Dit wordt gebundeld in een model. Dit model kan specifiek zijn, zoals bij auto’s, of meer generiek. In het laatste geval ziet het model wel dat het een auto is, maar waarschijnlijk niet het merk.

Deze technologie is trouwens niet alleen geschikt voor beeldverwerking, ook handschriftherkenning, ocr (optical character recognition) en spraakherkenning zijn geschikte toepassingen. Ook hierbij geldt dat het gaat om het herkennen van woorden, handschriften enzovoort.

Herkennen

Herkennen van objecten is kinderspel. Letterlijk zelfs: op jonge leeftijd leren we objecten te herkennen en maken we verbindingen tussen een object en de naam. We beginnen met iets een ‘ding’ te noemen (of zelfs ‘dat’), dan wordt het een ‘vogel’ en eindigen, afhankelijk van onze kennis, bij bijvoorbeeld een mus. Wanneer een specifiek type vogel wordt geleerd dan wordt die soort toegevoegd.

Daarnaast kijken we naar kenmerken. Daarbij maken we al snel een hele slimme inschatting: we herkennen de basisvorm (vleugels, snavel) en classificeren het dier als een vogel, ook al hebben we deze vogel nog nooit gezien. We leren objecten herkennen doordat we dus niet ‘absoluut’ kijken maar relatief. We kijken meer naar generieke aspecten dan naar specifieke zaken. Als je een kind vraagt om een huis te tekenen is de kans groot dat het een vierkant blok wordt met een driehoek erboven. Dat is de essentie van een huis, raam, schoorsteen en deur horen daar ook bij. Dat wordt aangeleerd en helpt om zaken te kunnen classificeren.

Een computer kijkt niet naar het totaalplaatje, maar deelt het beeld op in kleine vierkantjes. Bij ieder vierkant wordt gekeken of er een vorm of kleur op staat die het kent (van de voorbeelden waarmee het getraind is, bijvoorbeeld een stukje van een wiel. Op na een aantal van deze analyses worden de stukjes bij elkaar gelegd en vormen bijvoorbeeld een of twee wielen. Op dat moment neemt de waarschijnlijkheid toe dat het een vervoersmiddel is (want die hebben vaak wielen). Het zou ook een hoepel kunnen zijn, wat ook rond is, dus als een hoepel ook een bekend object is neemt daarvan ook de waarschijnlijkheid toe.

Als alle afzonderlijke zaken uiteindelijk zijn bekeken en opgesteld, komt er bijvoorbeeld uit dat het vanwege het herkennen van twee wielen en een stuur zeer waarschijnlijk een fiets is. Als het systeem nog meer objecten kent met wielen, niet zijnde een fiets, zal het daar ook nog een waarschijnlijkheid aan verbinden.

Een computer kijkt niet naar het totaal plaatje maar deelt het beeld op inkleine vierkantjes.

-

Trainen

Zoals gezegd wordt het ‘leren’ van het systeem gedaan door het aanbieden van een aantal afbeeldingen met tags (de ‘ground truth’) die worden gebruikt om het model te maken. Later in dit artikel gaan we zelf aan de slag met geautomatiseerde beeldherkenning. We gebruiken hiervoor de api’s van Clarifai, een bedrijf dat is gespecialiseerd in geautomatiseerde beeldherkenning. Clarifai wordt gebruikt bij stockfotografie bedrijven zoals 500px en Pond5 om het taggen van stockfoto’s te ondersteunen en te versnellen. Clarifai biedt een volledige suite van diensten inclusief het zelf maken van een model.

Een model zoals dat van Clarifai is getraind met miljoenen foto’s. Clarifai gebruikt meerdere modellen, generiek (breed) of meer specifiek, inclusief een model met de titel NSFW. Op dit moment is het nog niet haalbaar om alle concepten en objecten in een model onder te brengen, dan zou de analyse te lang duren.

Het hoofdmodel van Clarifai identificeert meer dan 11.000 generieke concepten zoals objecten, concepten en gevoelens. Vooral dit laatste is subjectief omdat bijvoorbeeld vrijheid moeilijk te definiëren is als visuele vorm.

Als je een verkeerd model (met kennis) gebruikt bij een afbeelding, bijvoorbeeld een model voor voedsel met een foto van een tropisch strand, levert dat geen of foute tags op. Het model kent tenslotte niet de zaken die in de foto’s staan. In het generieke model wordt wel voedsel als tag herkend maar is een specifiek model nodig om daar verfijning in aan te brengen (bijvoorbeeld pizza).

Hoewel we op dit moment volgens sommigen bijna op menselijk niveau beeldherkenning kunnen doen is er nog voldoende ruimte voor verbetering. Een van die gebieden is het ‘voor de gek houden’ van het systeem. Het blijkt redelijk eenvoudig om beelden fout te laten classificeren, door bijvoorbeeld zoekpatronen mee te nemen. Hierdoor kan het systeem beweren dat een afbeelding met 99,99 procent zekerheid een bepaalde voorstelling is, terwijl het in feite nergens op lijkt. Het systeem zou kunnen worden getraind met ‘anti afbeeldingen’ om dit tegen te gaan.

Tekst: Rob Blaauboer

Deel dit artikel
Voeg toe aan favorieten
ID.nl logo

ID.nl, onderdeel van Reshift BV, is in 2022 gestart en uitgegroeid tot de meest toonaangevende en complete consumentensite van Nederland. Het doel van ID.nl is om de consument te helpen met alle technologie die hoort bij het dagelijks leven: van smart-health-meters tot e-bikes, van warmtepompen tot zonnepanelen - en alles daar tussenin!

Duidelijk, betrouwbaar en onafhankelijk: ID.nl maakt moeilijke dingen makkelijk.

Contact

ID.nl

Nijverheidsweg 18

2031 CP Haarlem

info@id.nl

Telefoon: 023-5430000