Ansiktsigenkänning med MATLAB



Relevanta dokument
Fingerprint Matching

Histogramberäkning på en liten bild

Signaler, information & bilder, föreläsning 15

Signaler, information & bilder, föreläsning 15

Projekt i bildanalys Trafikövervakning

Bildanalys. Segmentering. Föreläsning 7. Split and Merge. Region Growing

TEM Projekt Transformmetoder

Bildanalys för vägbeläggningstillämplingar

Laboration 2. Grafisk teknik (TNM059) Digital Rastrering. S. Gooran (VT2007)

Så här använder du de enklaste funktionerna i programmet: Starta programmet. Programmet startas från ikonen på skrivbordet.

Histogram över kanter i bilder

Laboration 1. Grafisk teknik Rastrering. Sasan Gooran (HT 2004)

Övervakningssystem. -skillnader i bilder. Uppsala Universitet Signaler och System ht Lärare: Mathias Johansson

Ett enkelt OCR-system

TNM030 Tentasammanfattning (frågor) Nathalie Ek, Sammanfattning. TNM030 - Bildbehandling och bildanalys

Tillämplingar av bildanalys

TNM030 -Sammanfattning Nathalie Ek, Sammanfattning. TNM030 - Bildbehandling och bildanalys

1.1 Verktygslådan översikt

Bildredigering i EPiServer & Gimp

Laboration 4: Digitala bilder

Facit till Signal- och bildbehandling TSBB

Signaler, information & bilder, föreläsning 12

L A B R A P P O R T 1

TSBB31 Medicinska bilder Föreläsning 3

Signal- och bildbehandling TSEA70

8 Binär bildbehandling

1 som går genom punkten (1, 3) och är parallell med vektorn.

Signal- och Bildbehandling FÖRELÄSNING 7. En bild är en 2D signal. För en digital bild gäller. Fig. 2.1

Bildmosaik. Bilddatabaser, TNM025. Anna Flisberg Linne a Mellblom. linme882. Linko pings Universitet

Kravspecifikation Fredrik Berntsson Version 1.3

Matematisk modellering fortsättningskurs Visuell variation

Grundredigering i Photoshop Elements. Innehåll. Lennart Elg Grundredigering i Elements Version 2, uppdaterad

KOKBOKEN 1. Håkan Strömberg KTH STH

Tentamen, Programmeringsteknik för BME, F och N

Två sorters bilder - högfrekvent och lågfrekvent. Bilden ovan räknas som högfrekvent bild, vilket betyder att den är detaljrik

7 MÖNSTERDETEKTERING

Signaler, information & bilder, föreläsning 13

Bildbehandling, del 1

Signal- och bildbehandling TSBB14

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Shannon-Fano-Elias-kodning

Transformationer i R 2 och R 3

Bildbehandling i spatialdomänen och frekvensdomänen

Linjär algebra på några minuter

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN

Retuschering inkl Skönhetsretusch. Kalle Prorok Okt 2010

Crash Course Algebra och geometri. Ambjörn Karlsson c januari 2016

Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder

Avancerad Bildbehandling Stitching av bilder

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

TANA17 Matematiska beräkningar med Matlab

8. TRE- OCH FYRDUBBEL HUVUDBELYSNING

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Lösningsförslag till övningsuppgifter, del V

P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R

Tentamen i Linjär algebra (TATA31/TEN1) ,

TANA17 Matematiska beräkningar med Matlab

SKRIVNING I VEKTORGEOMETRI

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

Bildförbättring i spatial domänen (kap. 3) Bildförbättring (enhancement) Spatial domän. Operatorer. Tröskling (threshold) Gråskale-transformationer

SKRIVNING I VEKTORGEOMETRI

Bildoptimering för webben

MMA132: Laboration 2 Matriser i MATLAB

Tentamen Bildanalys (TDBC30) 5p

HDR den enkla vägen. Råkonverteraren Det första vi gör i råkonverteraren är att öppna våra tre bilder. av Kristoffer Ingemansson

Macromedia Flash MX 2004

RESTAURERING AV GAMLA FOTOGRAFIER

Kristian Pettersson Feb 2016

Bilaga 1. Markering av förankrade ballonger, drakar m.m.

Signal- och bildbehandling TSBB03

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Digitalisera analoga bilder

GRÖNARE, ENKLARE, SKÖNARE

TNM059 Grafisk teknik Laboration 4 - Färg

'LJLWDODELOGHUR KGLJLWDOELOGPDQLSXOHULQJ

Mus. Mike McBride Brad Hards Översättare: Stefan Asserhäll

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

x 23 + y 160 = 1, 2 23 = ,

Bildbehandling i frekvensdomänen

TNM011 Grafisk teknik Laboration 3 - Färg

Ansiktsigenkänning med en mobil robot

TAIU07 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Nationella Biotopkarteringsdatabasen

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Gå till nästa bygge. Ibland vill man hoppa till nästa bild i presentationen utan att behöva gå igenom alla byggen på diabilden igen.

Bilaga 1. Markering av förankrade ballonger, drakar m.m.

Geometriska transformationer

Lär dig grunderna om Picasa

För ingenjörs- och distansstudenter Linjär Algebra ma014a ATM-Matematik Mikael Forsberg

Sirius II Installation och Bruksanvisning

DIGITAL KOMMUNIKATION

Uppgift 1a (Aktiekurser utan poster)

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

Optical Music Recognition

Tentamen i Linjär algebra (TATA31/TEN1) ,

Flerdimensionella signaler och system

Fokus. Mirjam HY, Hovåsskolan F- 9, Hovås

Transkript:

Ansiktsigenkänning med MATLAB Avancerad bildbehandling Christoffer Dahl, Johannes Dahlgren, Semone Kallin Clarke, Michaela Ulvhammar 12/2/2012

Sammanfattning Uppgiften som gavs var att skapa ett system i MATLAB för enklare ansiktsigenkänning där bilderna kan ha roterats, translaterats, tonvärdesändrats och skalats. Detta görs genom att först detektera ögon och ansikte. När bilderna med hjälp av denna information har normaliserats skapas egenansikten som bildar en databas. Mot denna databas kan sedan nya bilder jämföras. Resultatet blir förhållandevis bra. 2

Innehållsförteckning Inledning... 4 Metod... 4 Ljuskompensering vid ansiktsdetektering... 4 Ansiktsdetektering... 4 Ögondetektering... 5 Egenansikte... 6 Resultat... 7 Ljuskompensering vid ansiktsdetektering... 7 Ansiktsdetektering... 8 Ögondetektering... 9 Egenansikte... 9 Diskussion... 11 Ljuskompensering vid ansiktsdetektering... 11 Ansiktsdetektering... 11 Ögondetektering... 11 Egenansikte... 12 Övrigt... 12 Källor... 13 3

Inledning I kursen Avancerad Bildbehandling, vid Linköpings Universitet gavs uppgiften att utveckla ansiktsigenkänning. Uppgiften består vidare av att ett visst antal givna personer i en databas ska kännas igen och ges tillträde då samma bilder men med olika modifikationer testas. Bilder på personer som inte finns med i den givna databasen inte ska ges tillträde. Modifikationerna på bilderna på personerna i den givna databasen kan vara rotation med max +/- 5 grader, translation och skalning med max +/- 10% samt att tonvärdet kan ha ändrats med max +/- 10 %. Lösningen beräknas med hjälp av MATLAB. Metod Ljuskompensering vid ansiktsdetektering Ljuskompensering görs då bilder tagna i olika ljusförhållanden kan medföra att samma huds färgvärden kan skilja. Om bilden då ljuskompenseras fås mer jämna färgvärden vilka är lättare att jämföra med varandra. Detta görs genom att använda referensvitt. När detta görs tas de pixlar med de högsta 5% i luminanskanalen, vilken är Y-kanalen, och anger att det är referensvitt 1. Då bilden som läses in är definierad i RGB-färgrymden fås Y-kanalen genom formeln 1. Där R är den röda färgkanalen, G är den gröna färgkanalen och B är den blåa färgkanalen. (1) Därefter justeras även R-, G- och B-kanalerna i bilden. Det görs genom det genomsnittliga värdet på de referensvita pixlarna tas och skalas sedan linjärt med värdet 255. Detta multipliceras sedan med hela den ursprungliga bilden. Ansiktsdetektering I -färgrymden kan hudfärgen göras luminansoberoende och därför söks vilket intervall i - och -kanalerna som kan klassas som typisk hudfärg. Genom att söka dessa värden i ett antal kända ansikten gavs tabellvärden på inom intervallet [90, 135] och på inom intervallet [139, 176]. Se bild 1. Då dessa intervall inte gav ett fullgott resultat har de genom experiment justerats till att ligger inom intervallet [95, 125] och på inom intervallet [142, 180]. 1 Se källa 3 4

Bild 1 - - värden för hud När det tagits fram vilka värden som ligger i dessa intervaller skapas en binär bild där det som klassats som hud i bilden blir vitt och de andra delarna sätts till svart. Med risk för artefakter utförs ett antal morfologiska operationer för att för ta bort de delar utanför ansiktet som kan ha klassats som hud. Det kan även hända att delar i ansiktet inte har klassats som hud men efter de tidigare nämna morfologiska operationerna ska även dessa artefakter försvunnit. För att komma fram till exakt vilka operationer och i vilken ordning dessa ska utföras gör experiment tills ett tillräckligt bra resultat uppnåtts. Ögondetektering För att finna ögon i en bild skapas två separata ögonkartor, en för luminanskanalen och en för de två krominanskanalerna. Då ögonkartan för krominanskanalerna beräknas används kunskapen om att ofta har höga värden vid ögat och låga. Denna beräknas således med formeln 2 i vilken,, är normaliserade inom området [0, 255]. (2) För att beräkna ögonkartan för luminanskanalen används morfologiska operationer. Först skapas ett halvsväriskt strukturelement. Detta används sedan i en dilation i bildens Y-kanal och i en erosion i samma kanal. Därefter divideras resultatet från dilationen med resultatet från erosionen. Detta ses i formel 3 där är bilden, är ett strukturelement, är en dilation och är en erosion. (3) 5

Ögonkartan för krominanskanalen histogramutjämnas innan denna slås ihop med ögonkartan för luminanskanalen som sedan dilateras, maskas (med ansiktsmasken från ansiktsdetekteringen) och normaliseras för att få den slutgiltiga ögonkartan 2. Den slutgiltiga ögonkartan är en gråskalebild med hög intensitet vid ögonen. För att hitta ögonen delas kartan på två mellan ögonen samt görs svart i de delar av bilden där ögonen inte kan finnas och pixeln med högst intensitet tas ut på varje sida. Detta värde används sedan för att tröskla bilden och finna koordinaterna för ögonen. Egenansikte I ansiktsigenkänning används egenansikten genom att ett medelansikte skapas med hjälp av ett antal ansiktsbilder. Detta ansikte används sedan för att avgöra vem en bild på en person som testas mot denna bild är mest lik och därmed med högst sannolikhet är. Egenansiktet skapas genom att de viktigaste kännetecknen i ett ansikte sparas. När detta görs är det viktigt att bilderna som används är normerade och innehåller så lite annan information än själva ansiktet som möjligt då det ger en större chans till ett bra resultat. Därför görs först en förprocessering av bilderna på de personer som ligger i den databas som ska ges tillträde. Vidare benämns denna Databas1. Denna förprocessering görs med hjälp av de tidigare nämnda metoderna. Först detekteras ansiktet i bilden. När detta är gjort och det finns en mask för ansiktet är nu området som ögonen kan detekteras i begränsat och det blir lättare att finna dem. Med hjälp av ögonens position kan nu bilden roteras så att ögonen ligger på en horisontell linje. Därefter beskärs bilden till att innehålla samma information som visas i bild 2. Bild 2 Beskärning av ansiktet 2 Se källa 1 6

Sista steget innan egenansiktena kan skapas är att göra om bilden till en gråskalebild. Denna procedur görs sedan även på de bilder som ska jämföras med bilderna i Databas1. Så att alla bilder som jämförs har genomgått förprocesseringen och därmed ser likadana ut. Nu skapas egenansikten genom att bilderna först beskrivs som vektorer och läggs i en och samma vektor efter varandra. Därefter skapas en medelbild från denna vektor. Denna bild är då ett medel för alla bilder i Databas1. Nu kan en kovariansmatris beräknas. Ur denna hämtas de egenvektorer som beskriver egenansikten. När det nu finns egenansikten till alla bilder i Databas1 kan en valfri bild läsas in och jämföras mot dessa. Den bild som skall jämföras görs efter förprocesseringen även den om till en vektor. Nu kan en skillnadsbild tas fram genom skillnaden mellan testbilden och tidigare skapad medelbild. Med skillnadsbilden jämförs nu dennes euklidiska avstånd till alla bilder i Databas1. Om detta avstånd understiger ett fördefinierat tröskelvärde klassas det som att testbilden liknar den matchade bilden i Databas1 så pass mycket att de föreställer samma person. 3 Resultat Ljuskompensering vid ansiktsdetektering Ljuskompenseringen används främst då bildernas tonvärden ändrats. Detta gör att det blir lättare att senare göra ansiktsdetekteringen. Resultatet av ljuskompenseringen ses i följande bilder. Bild 3 Original Bild 4 Ljuskompenserad 3 Se källa 4 7

Bild 5 - Original med tonvärdesändring Bild 6 Bild5 med ljuskompensering Ansiktsdetektering Ansiktsdetekteringen ger ett bra resultat för alla bilder i den givna databasen på de bilder som ska ges tillträde då masken endast tar med det som är hud i bilden och som hör ihop med ansiktet. Exempel på detta ses i bilderna nedan. Bild 7 Första bilden i ansiktsdetektering Bild 8 Bild 7 efter morfologiska operationer I den andra databasen med bilder på personer som inte ska ges tillträde fungerar ansiktsmasken inte lika bra då vissa bilder innehåller för lite information i vissa delar av ansiktet. Exempel på detta ses i bilderna nedan. Bild 9 - Första bilden i en sämre ansiktsdetektering Bild 10 Bild 9 efter morfologiska operationer 8

Ögondetektering Resultatet för ögondetekteringen var bra för alla bilder i den givna Databas1. I bild 11-bild 14 visas de olika stegen i detekteringen av ögon. Här kan ses att ögonkartan för krominanskanalerna gav ett en betydligt tydligare karta än ögonkartan för luminanskanalen. Bild 11 - Ögonkarta för krominanskanalerna Bild 12 - Ögonkarta för luminanskanalen Bild 13 - Kombinerad ögonkarta efter dilation, maskning och normalisering Bild 14 - Funna ögon markerade med rött Egenansikte De värden som vill fås ut efter matchingen av egenansikten är det euklidiska avståndet mellan egenansiktet av den inmatade bilden och egenansiktena i databasen. För inbilder ur Databas1 fås det största av de 20 bildernas minimivärden till medans det minsta minimivärdet för databas 2 är. Därför sätts gränsen för godkänna bilder till att vara mindre än. Detta gör att alla bilder som inte är tillräckligt lika någon bild i databasen får ett högre värde än och blir därmed inte godkända. Skillnaden mellan högsta minimivärdet i databas1 och minsta minimivärdet i databas2 är dock så pass litet att det inte kan finnas en tillräckligt bra tröskling för bilder som är modifierade på ett eller 9

annat sätt. Många av de bilder som roteras 5 grader hamnar därför över denna tröskel och blir därmed inte godkänd. För translation, skalning och tonvärdesförändring är dock tröskeln väldigt bra och klarar nästan alla bilder för den maximala gränsen i varje kategori av modifiering. Resultat som egenansiktesmetoden ger ses i bilderna nedan. Bild 15 Återskapad egenansiktesbild från Databas1 Bild 16 - Återskapad egenansiktesbild från Databas2 10

Diskussion Ljuskompensering vid ansiktsdetektering Den metod som används vid ljuskompensering fungerar, men ansiktsigenkänningen får ett likvärdigt resultat både med och utan ljuskompensering av bilden. Att ljuskompenseringen ändå görs är att den kan komma till bättre användning om tonvärdena ändras mer än vad de gör för de krav som ställs. Ansiktsdetektering För att ansiktsdetektera finns det många olika sätt att tackla problemet. De flesta metoder som undersöktes för projektet gick ut på att leta efter hud i bilden. Skillnaden mellan det som valdes i metoden och andra alternativ är främst vilken eller vilka färgrymder som det arbetas i. Att föredra är en kombination av huddetektering i de olika färgrymderna. Exempelvis i HSV-rymden sticker ofta huden ut som väldigt mörka pixlar medans resten av bilden blir mycket ljusare. Att kombinera detta med andra kanaler i andra färgrymder hade möjligtvis kunnat ge ett bättre resultat. Dock fanns att ansiktsmaskerna som gavs i den valda metoden gav ett tillfredställande resultat för alla bilder i den givna databasen. Av de andra bilderna som testades fanns att vid mycket skugga i ansiktet blev det svårt att detektera hela huden då delar av ansiktet blev för mörkt. Ögondetektering Metoden som användes för ögondetektering med två ögonkartor ansågs vara den bästa för ändamålet. En alternativ metod som kollades upp var att finna ögonen med hjälp av korrelation. För detta användes ett filter som skulle motsvara ett öga. Filtret som användes skapades genom att klippa ut ett öga på en av de givna bilderna. Detta fungerade bra för några av bilderna, men inte alla. Förmodligen hade ett bättre filter behövts användas. Ögonkartan för krominanskanalerna gav som tidigare nämnt en tydligare karta än luminanskanalens. Ett alternativ hade kunnat vara att endast arbeta med krominanskanalerna vad gällde ögondetektering. Ögonkartan för luminanskanalen valdes dock att behållas då den förstärkte intensiteten kring ögonen något. Metoden för att finna de olika ögonkartorna fanns tydligt beskriven i källa 1. Dock var det svårare att med ögonkartorna ta ut de två korrekta ögonen. För att göra detta testades olika metoder. En metod som testades var att hitta ögon i krominans- och luminanskanalen för sig och sedan analysera dessa, dock ställde luminanskanalen till det och resultatet blev inte bra. För att hitta ögonen valdes att använda två trösklar, en på varje sida av ansiktet. Detta gjordes efter att ha testat en tröskel för hela ansiktsområdet. Dock kunde det vara så att ena ögat hade högre intensitet än det andra och ett öga på så sätt missades vid detekteringen. 11

Det behöver inte vara så att ögat är den delen i bilden som har högst intensitet exempelvis märktes det att de som log på sina bilder hade hög intensitet vid munnen (tänderna). För att få bort detta ur bilden valdes det att beskära ansiktsmasken strax under mitten och anta att det inte fanns några ögon där. Ett annat alternativ för att göra ögondetekteringen ännu bättre hade kunnat vara att använda sig av en iterativ metod för att tröskla bilden samt att sätta geometriska villkor för vad som kan vara ett öga. Den iterativa metoden skulle gå till så att man trösklar bilden för att sedan kolla om man har hittat några ögon och i så fall om de ligger geografisk rätt i ansiktet. Ligger de fel alternativt att man har hittat för få ögon byter man tröskelvärde och försöker igen 4. Denna metod hann dock inte implementeras. Egenansikte För att få en större gräns mellan bilder som ska bli godkända och inte skulle det kunna göras en bättre beskäring av bilderna innan de jämförs mot egenansiktena i den genererade databasen. Försök har gjorts för att bättre optimera de avstånd beskäringen skall göras med, men utan några större skillnader i tröskelvärden mellan de olika databaserna. Ett annat test som kan göras är att mäta skillnaden mellan det maximala och minimala euklidiska avstånden för varje bild mot den genererade databasen. Denna metod gör att gränsen för minsta euklidiska avstånd kan höjas och därmed släppa in fler versioner av bilderna i Databas1. Dock medför detta att fler bilder på felaktiga personer släpps igenom och därför har metoden uteslutits då beslutet togs att det är bättre att utesluta rätt person än att släppa in en felaktig. Övrigt Då kraven som gavs var att bilden bara roteras med max +/- 5 grader behöver munnen inte detekteras i bilden. Hade bilderna däremot roteras mer än 90 grader hade mundetektering behövts då bilderna hade kunnat vara upp och ner. Detta hade kunnat lösas genom att kolla om munnen var över ögonen. 4 Se källa 2 12

Källor Hämtad; 22-11-12 [1] http://www.znu.ac.ir/data/members/fazli_saeid/dip/paper/36.pdf Hämtad; 29-11-12 [2] http://profdoc.um.ac.ir/articles/a/359.pdf Hämtad: 22-11-12 [3] http://bit.kuas.edu.tw/~jihmsp/2011/vol2/jih-msp-2011-04-001.pdf Hämtad: 23-11-13 [4] http://www.pages.drexel.edu/~sis26/eigenface Tutorial.htm 13