Thursday, May 13, 2010

Hoe werkt intelligent cameratoezicht?

Vier voorbeelden van een eigenface, afkomstig van AT&T Laboratories, Cambridge (Bron: Wikipedia)

Cameratoezicht in de openbare ruimte is in de afgelopen jaren steeds meer opgerukt: in winkels, op straat, in parkeergarages en in voetbalstadions. Met deze toename is ook de behoefte aan intelligent cameratoezicht toegenomen, waarbij niet een mens maar een computer de beelden automatisch interpreteert.

Nu is het menselijke vermogen om beelden te interpreteren in miljoenen jaren geĆ«volueerd tot een uiterst snel en efficiĆ«nt waarnemingssysteem. Maar voor een computer is het interpreteren van een beeld een van de moeilijkste uitdagingen die er zijn – nog moeilijker dan het analyseren van schrift, geluid en spraak. In essentie komt dat doordat hetzelfde voorwerp er voor een computer onder een andere hoek en bij een andere belichting heel anders uitziet. Nog moeilijker wordt het als voorwerpen ook nog in het beeld bewegen.

Gezichtsherkenning
Stel dat een intelligent camerasysteem een mensenmenigte in de gaten houdt en naar personen moet zoeken die in een database met verdachten voorkomen. Dan moet de camera eerst gezichten onderscheiden van de omgeving en erop inzoomen. Dat is een taak die de computer nog vrij gemakkelijk uitvoert op basis van het herkennen van een ovale vorm met twee ogen en een neus. Maar daarna wordt het moeilijker: hoe komt de gezichtsherkenningssoftware erachter of het gezicht in de bestaande database voorkomt?

Traditionele tweedimensionale gezichtsherkenning gaat ervan uit dat het gezicht recht in de camera kijkt en dat de belichting nauwelijks afwijkt van die van de foto in de database. Tegenwoordig wordt er hard gewerkt aan driedimensionale gezichtsherkenning waarbij het gezicht niet langer recht in de camera hoeft te kijken.

Zowel bij de twee- als bij de driedimensionale gezichtsherkenning moet het gezicht worden uitgedrukt in getalsmatige kenmerken, zoals de afstand tussen de ogen, de breedte van de neus, de diepte van de oogbollen, de vorm van de jukbeenderen en de lengte van de kaaklijn – allemaal kenmerken die bij volwassenen in de tijd nauwelijks veranderen. Deze getallen worden samengevoegd in een unieke numerieke code: de digitale gezichtsafdruk. Haarstijlen, baarden, snorren en brillen tellen trouwens niet mee, omdat die in de tijd nogal veranderen.

Eigenfaces
Voor het genereren van de digitale gezichtsafdruk bestaan talloze algoritmen. Een van de meest toegepaste is gebaseerd op het idee dat je elk gezicht kunt uitdrukken in een combinatie van basisvormen die in alle menselijke gezichten voorkomen (eigenfaces). Net zoals je elk punt in de driedimensionale ruimte kunt beschrijven in termen van drie eigenvectoren (in x-, y- en z-richting), kun je ook proberen om gezichten uit te drukken in termen van een optelsom van eigenfaces. Bij de ene persoon is de ene basisvorm sterker aanwezig dan de andere, vandaar dat de som van eigenfaces een gewogen som moet zijn, die verschillende gewichten toekent aan verschillende basisvormen.

De eigenfaces kun je construeren uit een grote verzameling gedigitaliseerde gezichten. Omdat de afstand tussen de ogen onderling en die tussen de horizontale ooglijn en de mond van persoon tot persoon verschillen, worden alle gedigitaliseerde gezichten eerst als het ware in dezelfde mal geperst waarin deze afstanden kunstmatig gelijk worden getrokken. Dan vallen de ogen en monden in alle foto’s over elkaar heen. Vervolgens kun je met de wiskundige techniek van de principal component analyse de eigenfaces uit de database bepalen. Praktische toepassingen werken meestal met honderd tot tweehonderd eigenfaces. Vervolgens kun je elke digitale foto van een gezicht uitdrukken in een gewogen combinatie van eigenfaces.

Identificatie
Hoewel deze methode snel is, werkt hij niet goed onder verschillende aangezichten en verschillende belichtingen. Sinds de eerste toepassing van eigenfaces voor gezichtsherkenning in 1991 zijn daarom talloze verbeterde versies ontwikkeld. Maar aan de basis van veel commercieel verkrijgbare gezichtsherkenningssoftware staat vaak nog steeds de eigenface-methode.

Wil je nu weten of een willekeurig persoon in een database voorkomt (identificatie), dan moet je in een score uitdrukken in welke mate het gezicht van die persoon overeenkomt met foto’s in de database. Wil je weten of iemand de persoon is voor wie hij zich uitgeeft (verificatie), dan hoef je alleen maar een een-op-eenvergelijking te maken tussen de huidige gezichtsopname en die uit een database. De softwaregebruiker bepaalt zelf hoe hoog de score moet zijn om te gelden als identificatie of verificatie.

Hoe goed presteert deze gezichtsherkenningssoftware? Volgens het Amerikaanse National Institute of Standards and Technology identificeert de beste software 0,1 procent van de gezichten ten onrechte, terwijl de software tussen 1,0 en 2,5 procent van de gezichten juist niet herkent terwijl ze wel in de database voorkomen. Maar deze percentages gelden alleen voor niet bewegende gezichten, die recht in de camera kijken, goed belicht zijn en een neutrale gezichtsuitdrukking hebben.

Volautomatische realtime gezichtsherkenning van bewegende personen in de publieke ruimte is daar nog ver van vandaan. Vooralsnog dient intelligent cameratoezicht daarom vooral als een handige aanvulling op cameratoezicht door mensen. Het grote voordeel is dat de software niet in aandacht verslapt en de mens wel.

Dit artikel heb ik oorspronkelijk geschreven voor het boek Omringd door informatica. Ik heb aan de populair-wetenschappelijke website Kennislink toestemming gegeven om het over te nemen, vandaar dat ik het ook op mijn eigen site heb gezet.