Ansiktsdetektion och ansiktsigenkänning Av: Björn Brundin, [email protected] Marcus Lindberg, [email protected] Mikael Svensson, [email protected] Handledare: Christina Olsén Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen Abstract Ansiktsdetektion är en metod som har som mål att lokalisera ett ansikte från bakgrunden. Detta görs genom olika algoritmer och metoder. Dessa metoder kan vara användbara vid tex. videokonferenser för att hålla användaren i fokus. Ansiktsdetektionen är grunden till ansiktsigenkänning. Denna metod ska utifrån en given input i form av ett ansikte matcha den mot en databas och ge en output i form av en identifikation. Ett välfungerande sådant system är väl användbart vid biometriska metoder för identifikation och kan hjälpa tex. polisen vid identifikation av gärningsmän. Lawrence teknik och eigenfaces är två olika metoder för att genomföra en ansiktsigenkänning. 1 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen Innehållsförteckning 1 Introduktion s. 3 2 Metod 3 Syfte 4 Ansiktsdetektion s. 3 s. 3 s. 4-5 s. 4 s. 4-5 s. 5 s. 5 s. 6-12 s. 6 s. 7 s. 7-9 s. 7 s. 7-8 s. 8 s. 9 s. 9-11 s. 9 s. 10 s. 11 s. 11 s. 11-12 s. 12 s. 12 s. 12 s. 13 s. 14-15 4.1 Feature-based approach 4.2 Image-based approach 4.3 Användningsområden 4.4 Problem 5 Ansiktsigenkänning 5.1 Metoder 5.2 Forskningsområden 5.2.1 Lawrence tekniken 5.2.1.1 Local Image Sampling 5.2.1.2 SOM (selforganizing map) 5.2.1.3 CNN (Convolutional Neural Networks) 5.2.1.4 Resultat 5.2.2 Eigenface-tekniken för ansiktsigenkänning 5.2.2.1 Generell Eigenface-algoritm 5.2.2.2 Att skapa ett eigenface 5.2.2.3 Bildidentifiering med Eigenface- tekniken 5.2.2.4 Pre-processing 5.3 Användningsområden 5.3.1 Generella användningsområden 5.3.2 Specifika användningsområden 5.4 Problem 6 Diskussion 7 Referenser 2 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 1 Introduktion Kapitlet vi valt att arbeta utifrån är ”Perception” från boken ”Artificiall Intelligence A modern Approach” av Stuart Russell och Peter Norvig. Delkapitlet från Perception är kap 24.5 som heter Objekt Recognition. Biometriska metoder för identifiering bygger på kroppliga kännetecken. Dessa kan vara handavtryck, fingeravtryck, handstilen, rösten eller vad som kommer att presenteras i denna rapport, ansiktet. Ansiktsigenkänning är en metod som med hjälp av olika algoritmer ska känna igen ett givet ansikte som matchas mot en databas innehållande ett visst antal ansikten. Ett nödvändigt första steg i ett ansiktsigenkänningssystem är ansiktsdetektion som har som uppgift att urskilja vad som är ett ansikte från en given bild (i två eller tre dimensioner). Vi kommer endast att presentera material som berör tvådimensionell identifikation eftersom det är denna metoden som är mest förekommande. I denna rapport presenteras begreppen ansiktsdetektion (face detection) och ansiktsigenkänning (face recognition) och hur de används i samhället. Två olika forskningsparadigm inom ansiktsdetektion; Lawrence teknik, samt Turk och Pentlands eigenface teori, kommer att presenteras. Slutligen förs en sammanfattande diskussion om ämnet. 2 Metod Metoden vi använts oss av är att sammanställa information och testresultat från olika vetenskapliga artiklar. Även information från tidsskrifter har till viss mån stått till grund för rapporten för att få en annan infallsvinkel på systemet. 3 Syfte Syftet med rapporten är att ge en lättförstålig presentation av ansiktsdetektion och ansiksigenkänning samt utifrån denna diskutera för och nackdelar med användningen av dessa system och sedan presentera detta för kurskamraterna. 3 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 4 Ansiktsdetektion Ansiktsdetektion är ett nödvändigt första steg i ansiktsigenkänningssystem. Dess mål är att lokalisera ett ansikte ur bakgrunden med hjälp av ett datorsystem. Ansiktsdetektion kan delas upp i två huvudkategorier av tekniker: Feature-based approaches och Imagebased approaches [2]. 4.1 Feature-based approach Denna teknik använder sig av den klassiska detektionsmetodiken som delas in i tre underkategorier. Först low-lewel analysis som behandlar aspekter som kanter, gråskalor, färger och rörelser. Därefter följer Feature analysis som behandlar visuella föremål i ett mer globalt koncept. I denna del kommer systemet att kunna urskilja exempelvis om det finns en bild med ett stort, avlångt föremål under ett litet så leder det till att det lilla föremålet över det stora är ett huvud där ett ansikte sitter. Den tredje underkategorin är Active Shape Models som agerar i ett större sammanhang genom att om en bild ges som inte är fullständig så sätter den ihop en fullständig bild genom att systemet interagerar med för systemet redan kända objekt. Detta är användbart då konturer är svåra att urskilja från en likfärgad bakgrund [2]. 4.2 Image-based approach Feature-based tekniken att lokalisera ansikten är problematiskt pga. de oförutsägbara framträdandena av ansikten med tanke på form, färg, vinkel m.m. samt bakgrundsmiljöns skiftningar. Detta system har stora problem med att skilja ur flera ansikten ur en plottrig och intensiv bakgrund. Det är här som image-based tekniken tar vid. Genom träningsprocedurer med klassificerade exempel uppdelade i ansikts och icke ansiktsklasser lär sig systemet vad som är ett ansikte och icke. Även image-based tekniken är uppdelad i tre underkategorier. Den första är linear subspace methods vars grund består av att varje individuellt ansikte kan delas upp i linjära kombinationer av egenvektorer, sk. eigenfaces. Den andra kategorin som blivit en populär teknik för ansiktsdetektion är ANN (artificiella neurala nätverk). Dessa består av ett nätverk med noder som får och ger input mellan varandra. Vilka output som skickas till vilka noder är beroende av hur de är kopplade i nätverket. En stark koppling gör att det som skickas iväg till nästa nod förstärks, är kopplingen svag 4 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen försvagas det. Nätverket lät sig genom att vikterna mellan noderna förstärks eller försvagas efter att de körts med en mängd olika träningsbilder, vilket medför en starkare eller svagare koppling mellan noderna. Därefter körs testbilderna i nätverket och detekteras som ansikte eller inte. Den tredje kategorin är Statistical Approaches som är system som är grundade på informationsteorier [2]. 4.3 Användningsområden Ansiktsdetektions största användningsområde är att ligga till grund för ansiktsigenkänningssystem som kommer att behandlas senare i rapporten. Videokonferenser styrda av datorsystem är beroende av ansiktsdetektion för att kunna lokalisera människor och hålla talaren i fokus. Ett enkelt tillägg till ansiktsdetektionssystemet är att använda sig av sensorer för ljud så kameran lättare kan filma den som pratar [2]. 4.4 Problem Att urskilja ett ansikte från en bild är för en människa en väldigt enkel operation, men detta är för ett datorsystem ett stort problem eftersom en människas ansikte är dynamiskt och har många olika variationer individer emellan som är svåra för ett system att behandla och uppfatta. Ett annat problem för att urskilja vad som är ett ansikte från en bild är om bakgrunden är plottrig och intensiv. Konturerna från ansiktet kan lätt flyta ut i omgivningen. Många av de nuvarande systemen kan endast behandla bilder av en viss storlek och endast framifrån. För att ansiktsdetektion bättre ska kunna tillämpas i verkligheten är det av stor vikt att kunna detektera ett ansikte mot olika bakgrunder och i olika vinklar, även olika storlekar, både ansiktets storlek proportionellt mot bilden samt bildens pixelstorlek [2]. 5 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5 Ansiktsigenkänning Ansiktsigenkänning är en biometrisk metod som fungerar på följande vis: Systemet har som uppgift att utifrån en given input, ett ansikte (2D eller 3D), matcha det mot en given databas med ett visst antal lagrade ansikten. Sedan ska det försöka ta reda på om personen finns med i databasen och ge en output i form av individens identifikation [1]. Det som ligger till grund för ansiktsigenkänning är ansiktsdetektion [2]. Det ett ansiktsdetektionssystem behöver ta reda på är om objektet är ett ansikte eller inte, dvs. två klasser av objekt. Ansiktsigenkänning måste skilja på varje individ vilket leder till att varje individ representerar en klass vilket medför att detta system är betydligt svårare. Punkter att ta hänsyn till vid systemutvecklingen och vid användningen av systemet [7]: Identifiering, verifiering eller övervakningstillämpning Databasens storlek Demografiska uppgifter om förväntade användare (ålder, kön etc) Ljusförhållanden Öppen eller gömd (i vissa fall vid övervakning, om individen vet att den blir övervakad) Användares förväntade beteende Hur gamla är bilderna i databasen Vilken är den krävda träffsäkerheten 5.1 Metoder Det finns mängder av olika metoder som det forskats i vid ansiktsigenkänning som: LDA (Linear discriminant analysis), SVM (support vector machine), Bayesian shape model, eigenface/ PCA (Principal Component Analysis) och Lawrence teknik mfl. De två sistnämnda metoderna kommer att presenteras i 5.2. 6 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5.2 Forskningsområden 5.2.1 Lawrence tekniken Lawrence tekniken behandlar ansiktigenkänning i tre steg. Local Image Sampling, SOM och CNN [1]. Ansiktsdatabasen består av 40 individer med 5 träningsbilder och 5 testbilder per person. 5.2.1.1 Local Image Sampling Först delas bilden upp i en mängd vektorer. Dessa bildas genom att ett 5*5 pixlar stort fönster stegas över bilden. I varje steg bildas det en 25 dimensionell stor vektor bestående av gråskalevärden. Storleken på bilderna i denna undersökning är 92*112 pixlar vilket ger totalt 412 vektorer för varje bild [1]. 5.2.1.2 SOM (selforganizing map) Vektorerna som bildas i Local Image Sampling projiceras till 3-dimensionella vektorer genom en SOM med 3 dimensioner, utifrån dessa bildas tre 2 dimensionella kartor av storleken 23*28 pixlar. De tre kartorna hämtar värden från varsin dimension i de 3 dimensionella vektorerna. Värdena från de 3 dimensionella vektorerna placeras på exakt samma ställe som motsvarande 25 dimensionella vektor hade i bilden [1]. Figur 1: Bilden till vänster (92*112 pixlar) omvandlas till 412 5*5 vektorer. SOM gör dessa till 412 3 dimensionella vektorer. Sedan bildas tre stycken 2 dimensionella kartor [1]. 7 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen Figur 2: Översta bilden är ett ansikte som omvandlas till tre kartor som visas i den nedre bilden [1]. 5.2.1.3 CNN (Convolutional Neural Networks) Ett CNN består likt ANN av olika lager. Utöver input och output lager består den av convolutional lager och subsampling lager. Ett convolutional lager har som uppgift att urskilja särdrag från det tidigare lagret medan ett subsampling lager minskar antalet noder genom att räkna ut medelvärden. Dessa olika lager delas upp i olika plan. Ett convolutional lager har ett godtyckligt antal noder medan ett subsampling lager alltid har samma antal plan som föregående lager. Kartorna SOM bildar används för att träna ett CNN som är en speciell typ av FeedForward ANN. Detta består av av ett inputlager med 3 plan med vardera 23*28 noder som är storleken på kartorna. Inputlagret är kopplat till ett convolutional lager bestående av 20 plan av storleken 21*26 noder. Vidare följer ett subsamling lager bestående av 20 plan med 11*13 noder vardera. Därefter följer ytterligare ett conventional lager med 25 plan bestående av 9*11 noder. Varje av dessa plan är kopplade till 6 st av planen i det tidigare subsampling lagret. Efter detta lager återkommer ett subsampling lager med 25 plan och 5*6 noder per plan. Detta lagret kopplas ett output lager som är det sista av lagren. Det består av 40 noder och varje nod motsvaras av en av dessa. Nätverket tränas genom att enbart aktivera den nod som representerar den person som fanns på det ursprungliga fotografiet [1]. 8 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5.2.1.4 Resultat En undersökning gjord med denna ansiktsigenkänningsmetod visade korrekt identifiering i 96 % av fallen [1]. 5.2.2 Eigenface-tekniken för ansiktsigenkänning Eigenface- tekniken är en av de populäraste image-based ansiktsigenkänningsmetoderna [8]. Det är en teknik som baseras på Principal Component Analysis (PCA). Eigenfacetekniken var först framställd av ”Turk and Pentland” [5]. Tekniken är konstruerat till att jämföra en önskad digital testbild av ett ansikte mot en mängd bilder som är lagrade i en databas. Dessa bilder kommer kallas träningsbilder. Testbilden finns inte i databasen bland träningsbilderna. Systemet tränar sig med databas-bilderna genom en eigenfacealgoritm, för att sedan kunna identifiera den av bilderna från databasen som är mest lik testbilden. Denna teknik kan ses som en grundteknik inom ansiktsigenkänning och flera nya tekniker, så som LDA (linear discriminant analysis) och Fisherface, härstammar från idén med Eigenface och försöker effektivisera den [8]. 5.2.1.1 Generell Eigenface-algoritm En digital bild kan ses som en vektor med pixlar, och varje pixel innehåller ett värde. Detta värde är ett heltal ur en gråskala. En bild med 4*4 pixlar kan behandlas som en vektor med längden 16. Denna vektorrepresentation av en testbild betraktas som bildens original space. Testbilden ska sedan projiceras i en ett annat utrymme som kallas subspace och utvärderas och identifieras med bilder från en databas. En generell algoritm för identifiering av bilder i en subspace är [8]: Man väljer en lämplig subspace att projicera bilderna på. Därefter projiceras alla träningsbilder i samma subspace. Till sist projiceras den testbild man vill jämföra träningsbilderna med. Testbilden jämförs med avseende på likheter eller avståndsmätningar med varje träningsbild. Den träningsbild som är mest lik testbilden identifieras. Den subspace som används i Eigenface-tekniken kallas eigenspace och är skapad av eigenvektorer från träningsbilderna. Nästa avsnitt 5.2.2.2 ska ses som en begränsad redogörelse för Eigenface- teknikens originalalgoritm [8] för att skapa ett eigenface (det finns flera algoritmvarianter). 9 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5.2.2.2 Att skapa ett eigenface Varje träningsbild sparas i en vektor med storlek N, där N är antalet pixlar i bilderna. Detta antalet måste lika för alla bilder, med andra ord: alla testbilder och träningsbilder ska vara lika stora och innehålla lika många pixlar (mer information ges i avsnitt Preprocessing 5.2.2.4) . Träningsbilderna ska medelcentreras genom att man subtraherar varje träningsbild med medelvärdet av alla träningsbilder. Denna medelbild är uträknad från ett snittvärde för varje pixel i varje träningsbild. Om P är antalet träningsbilder, så bildas en matris N*P med de medelcentrerade träningsbilderna. En kovariansmatris skapas av N*P- matrisen för att kunna beräkna eigenvektorer. Varje eigenvektor kan representeras som en bild av dess eigenvärden. Denna bild kallas eigenface (se figur 3). Eigenfaces är en modulerad representation av träningsbilderna [4][8]. Figur 3: Exempel på eigenfaces [4]. 10 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5.2.2.3 Bildidentifiering med Eigenface- tekniken När man projicerad bilder i en subspace finns det två olika typer av metoder för att jämföra hur lika två bilder är varandra, likheter och avstånd. En metod som kallas L1norm, mäter avstånden mellan två vektorer (vektorerna representerar bilden) och de vektorer som mest liknar varandra är de med minst avstånd. En annan metod bygger på likheter mellan bilderna och standardvarianser. De kan returnera ett värde mellan -1 och 1, där värdet 1 visar på en identisk bildjämförelse [8]. 5.2.2.4 Pre-processing Två olika bilder med samma ansikte kan skilja mycket i utseende beroende på förhållandena kring bildtagningen. Bakgrund, ljussättning, ljusintensitet, ansiktsuttryck, och huvudorientering är några exempel på skillnader som uppstår mellan bilder. Eigenface- system analyserar alla variationer i ett ansikte och ovan nämnda exempel påverkar ansiktets bildrepresentation kraftigt. Därför är det lämpligt med en pre-process innan ansiktsigenkänningstekniker som Eigenface tillämpas, med målet att öka träffsäkerheten för dess bildjämförelser. Dessa bildjämkningar ska utföras för både testbilder och träningsbilder och det ska ske innan de projiceras i Eigenspacealgoritmen [5]. Vid ansiktsigenkänning finns två stora begränsning: minnet och beräkningkomplexiteten. Även en bild med låg upplösning genererar ett enormt dimensionsutrymme (en bild som innehåller 200*100 pixlar ger 20 000 dimensioner). Man kringgår problemet genom att använda reducerade representationer av träningsbilderna och testbilderna [3]. Att leta upp en optimal upplösning (d.v.s. antalet pixlar bilden ska innehålla) är ett exempel på en pre-process- metod för att optimera ansiktsigenkänning. I studier av Heseltine [5] påvisas att träffsäkerheten kan vara lika hög, även om man rejält minskar en bild i upplösning, och fördelen är att det uppstår en stor förtjänst i tid och beräkningskomplexitet. 5.3 Användningsområden Ett ansiktsigenkänningssystem har mängder av användningsområden. Här följer några generella användningsområden samt några specifika med exempel från verkligheten. 11 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 5.3.1 Generella användningsområden Identifiering av gärningsmän genom att bilder jämförs mot existerande databaser innehållande brottslingar. Passersystem. I byggnader där ens identifikation redan är känd. Ansiktet lagras i en databas och jämför den/ de bilderna mot ansiktet, med tillhörande kropp, som vill passera. Säkerhetskänsla. Kameror med ansiktsigenkänningssystem kan avskräcka brottslingar att begå brott 5.3.2 Specifika användningsområden Polisen i Tampa i Florida införde 2001 ett ansiktigenkänningssystem utvecklat av Identix som tidigare hette Visionics Corporation. Efter två år är det nu nerlagt pga. att inte ett enda gripande skett med hjälp av denna tekniken [6]. Samma företag han introducerat denna tekniken på Logan airport i Boston för att identifiera sina passagerare [9]. 5.5 Problem Samma problem som uppstår vid ansiktsdetektion uppstår naturligtvis även vid ansiktigenkänning eftersom den står till grund för ansiktsigenkänningen. Andra problem som tillkommer är att personer kan se olika ut vid olika tillfällen som kan ha betydelse vid igenkänningen som olika frisyrer, ansiktsuttryck m.m. En annan problematisk punkt är när databaser växer. Det ökar chanserna att olika individer liknar varandra som kan leda till felidentifieringar. Även hur gamla bilderna är som finns i databasen är av vikt. En person kan förändras mycket över ett längre tidsperspektiv. 12 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 6 Diskussion Ansiktsdetektion och ansiktsigenkänning är metoder som är mycket intressanta som biometriska identifikationer. Fördelen med denna tekniken är att ingen insats krävs från den som ska identifieras, varken passerkort eller andra identifikationsbevis krävs. Nackdelen med detta är att endast med hjälp av en kamera och ett ansiktsigenkänningssystem kan man hålla koll på var alla människor är (och gör) utan att de vet om det. Tekniken är fortfarande bristande vilket leder till att felmarginalen blir för stor. I Tampa i Florida tex. där inte en enda brottsling lyckats identifieras tyder på att tekniken långt ifrån är fulländad. Lawrence teknik som uppvisade en 96% träffsäkerhet är förvisso god men att ha i åtanke där är att databasen innehöll endast 40 individer, en större databas leder direkt till problematik. De ansiktsigenkänningssystemen som vi presenterat är endast 2 dimensionella, men metoder och forskning pågår även kring 3 dimensionella metoder. Välfungerande 3dimensionella ansiktsigenkänningsmetoder anser vi kommer att vara kraftfullare än de 2-dimensionella eftersom ansiktet kan ges ur flera olika perspektiv vid en identifikation. Avslutningsvis vill vi kommentera ämnesvalet och vår egen insats. Det har varit svårt att få grepp om det mastiga ämnesområdet Ansiktsigenkänning, och alla dess olika tekniker på den utsatta laborationstiden. Många tekniker och dess algoritmer är väldigt komplicerade och mer tid för att sätta sig in i dem hade behövts för att få grepp om ämnet. Vi har också upplevt att de flesta artiklar vi studerat haft en tendens att ligga på en för hög nivå för denna ”lilla” rapport och ofta misslyckas de med att förklara vad de olika igenkänningsalgoritmerna gör och hur de tillämpas i praktiken. Trots alla komplikationer finner vi ämnet intressant. 13 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen 7. Referenser [1] Anders Nystrand, ”Ansiktsigenkänning med Artificiella Neurala Nätverk”, 1999, Examensarbete på programmet för systemprogrammering under vårterminen 1999, Institutionen för datavetenskap högskolan i Skövde [2] Erik Hjelmås och Boon Kee Low, “Face detection, A Survey”, Computer Vision and Image Understanding, 2003 Elsevier Inc, Volume 83, Issue 3, September 2001, Pages 236-274 [3] Javier Ruiz del Solar och Pablo Navarrete, ”Towards a Generalized Eigenspacebased Face Recognition Framework”, 2002, Department of Electrical Engineering, Universidad de Chile [4] Jang Kim Fung, “Face recognition by Eigenface and Elastic bunch graph matching”, Master of Philosophy Research Project First-term Report, Department of computer science and engineering the Chinese university of Hong kong [5] Thomas Heseltine, Nick Pears, Jim Austin, “Evaluation of image pre-processing techniques for eigenface based face recognition”, 2002, Society of Photo-Optical Instrumentation Engineers, The Proceedings of the Second International Conference on Image and Graphics, SPIE vol. 4875, pp. 677-685 (2002) [6] Tomas Gilså, ”Ansiktsigenkänning avslutas”, 2003, Säkerhet och sekretess (Besöksdatum: 2003-10-23) http://www.sakerhet.idg.se/ArticlePages/200308/21/20030821103620_SOS165/200308 21103620_SOS165.dbp.asp [7] P.Johnathon Phillips, Patrick Grother, Ross J Michaels, Duane M Blackburn, Elham Tabassi, Mike Bone, “Face recognition vendor test 2002”, utvärdering från Face recognition vendor test 2002 i U.S government Dahlgren, Virginia i juli och augusti 2002. (Besöksdatum: 2003-10-23) http://www.frvt.org/DLs/FRVT_2002_Overview_and_Summary.pdf 14 Artificiell Intelligens, 5 p Ansiktsdetektion och ansiktsigenkänning Andra inlämningen [8] Wendy S. Yambor , “Analysis of PCA-based and Fisher discriminant-based image recognition algoritms”, 2000, Computer Science Technical Report, In Partial Fulfillment of the Requirements For the Degree of Master of Science Colorado State University [9] “Epicalert”, 2001, published by the Electronic Privacy Information Center Washington, D.C, vol 8.22 november 13 (Besöksdatum: 2003-10-23) http://www.epic.org/alert/EPIC_Alert_8.22.html 15