Eötvös Loránd Tudományegyetem Informatikai Kar
Digitális arckifejezés-mérték
Mikó Szilárd programtervező matematikus hallgató
témavezető: Dr. habil. Lőrincz András tudományos főmunkatárs ELTE Információs Rendszerek Tanszék
Budapest, 2009
Tartalomjegyzék 1.
Bevezetés .................................................................................................... 4 A dolgozat felépítése......................................................................................... 5 Tézisek .............................................................................................................. 5
2.
Arckifejezések, érzelmek............................................................................ 6 Arckifejezések................................................................................................... 6 Arckifejezések fajtái: ........................................................................................ 7 Érzelmek ........................................................................................................... 7 Érzelmek fajtái: ................................................................................................. 8 Érzelmek csoportosítása.................................................................................... 8 Összetevő-elméletek ......................................................................................... 9 Alapérzelem-elméletek ..................................................................................... 9 Kulturális-szociális hatások az alapérzelmekre .............................................. 10
3.
Elméleti áttekintés..................................................................................... 11 Active Appearance Modellek.......................................................................... 11 Bevezetés ................................................................................................... 11 Lineáris alakzat és megjelenés modellek ................................................... 12 Független AAM-ek .................................................................................... 12 Kombinált AAM-ek .................................................................................... 16 AAM illesztése............................................................................................ 17 Lucas-Kanade képillesztés.......................................................................... 17 Forwards compositional kép illesztés ......................................................... 18 Inverse compositional kép illesztés............................................................. 19 Szupport vektor gépek ................................................................................... 20 F-score jellemző választó stratégia ............................................................ 21 RBF kernel ................................................................................................. 23 Kereszt-validáció és rácspont keresés ........................................................ 23
4.
Felhasznált erőforrások............................................................................. 27 1
5.
A tanítóhalmaz létrehozása....................................................................... 29 Jellemzők bevezetése ...................................................................................... 32 Jellemzők válogatása....................................................................................... 33
6.
Érzelempárok értékelése ........................................................................... 35 Düh – undor .................................................................................................... 36 Düh – félelem.................................................................................................. 37 Düh – öröm ..................................................................................................... 37 Düh – bánat ..................................................................................................... 38 Düh – meglepetés............................................................................................ 39 Undor – félelem .............................................................................................. 40 Undor – öröm .................................................................................................. 41 Undor – bánat.................................................................................................. 42 Undor – meglepetés ........................................................................................ 42 Félelem – öröm ............................................................................................... 44 Félelem – bánat ............................................................................................... 45 Félelem – meglepetés...................................................................................... 46 Öröm – bánat................................................................................................... 46 Öröm – meglepetés ......................................................................................... 47 Semlegesség – düh .......................................................................................... 48 Semlegesség – undor....................................................................................... 49 Semlegesség – félelem .................................................................................... 50 Semlegesség – öröm........................................................................................ 50 Semlegesség – bánat ....................................................................................... 51 Semlegesség – meglepetés .............................................................................. 52 Bánat – meglepetés ......................................................................................... 53
7.
Az arckifejezés mérték ismertetése........................................................... 54
8.
Humán felhasználóval folytatott kísérlet .................................................. 56
9.
Kitekintés, a dolgozat tágabb keretbe helyezése ...................................... 58 Turing teszt ..................................................................................................... 58 A teszt lefolyása .............................................................................................. 58 Gépi Turing-tanítás ......................................................................................... 58
10.
Irodalomjegyzék ....................................................................................... 59
11.
Függelék.................................................................................................... 60
2
3
1. Bevezetés A képelemzés témakörében különleges helyet foglal el az arcképek elemzése. Az olyan népszerű témákkal ellentétben, mint például a biometrikus azonosítás, a videofelvételről
történő
beszédfelismerés,
a
szemkövetés
vagy
az
alacsony
sávszélességű videokonferencia, ez a téma rendelkezik egy alapvető különbséggel. Mindannyian járatosak vagyunk arcképek felismerésében és feldolgozásában. Elég egy apró változás az emberi arcon, máris észrevesszük azt, sőt, sok esetben önkéntelenül is válaszolunk azokra. Röviddel születés után a gyermekek már tudják azonosítani szüleik arcát. Látványuk megnyugvással tölti el őket, és biztonságérzetet ad, majd röviddel ezután kifejlődik az arckifejezések felismerésének képessége. Mivel a felismerés és a tanulás lépcsőfokain mi magunk is végighaladtunk, ráadásul sikerrel vettük az akadályt, óhatatlanul felmerül bennünk a kérdés, mire lehet képes megfelelő algoritmusokkal felvértezve egy számítógép ezen a területen. Napjainkban egyre több helyen alkalmaznak különböző alakzatok felismerésére készített algoritmusokat. Egyre nagyobb igény van az emberi munkát megkönnyítő vagy felváltó módszerekre, legyen szó az orvostudományról, a tömegközlekedésről, vagy egy egyszerű fényképezőgépről. Mint minden területen, itt is egyre nagyobb bonyolultságú feladatok megoldására törekszünk, de a feladat összetettségétől eltekintve az arckifejezés felismerése önmagában is izgalmas feladat. Gondoljunk csak bele abba, hogy még a scifi írók is az érzelmekben húzzák meg a határvonalat gép és ember között. Egy gép számára mi más lehet az első lépés, mint átlépni ezt a határvonalat, ha nem az emberi érzelmek felismerése és feladatától függően az azokra való reakció. Mielőtt azonban nagyon belelovallnánk magunkat a „felismerésbe”, ne felejtsük el, nem az evolúció évmilliói alatt kifinomodott érzékekkel és ösztönökkel állunk szemben. Nagyon is egzakt, kézzelfogható viszonyrendszert kell teremtenünk, ami jól nyomon követhető, összehasonlítható, és ami a legfontosabb, mérhető. Egy
megfelelő
arckifejezés
mérték
kialakítása
már
a
kezdetekkor,
alapkövetelménye a későbbi fejlődésnek. Lehetőséget ad az érzelmek és az arcmimika olyan összefüggéseinek feltárására, melyet tapasztalattá alakítva elkezdhetjük 4
ledolgozni azt a bizonyos évmilliós hátrányt. Diplomamunkámban egy ilyen rendszer kialakítására törekedtem, melyet számos teszttel és számítással igyekeztem a legjobb mederben tartani.
A dolgozat felépítése A
dolgozat
második
fejezetében
rövid
áttekintést
adok
az
emberi
arckifejezésekről, érzelmekről, bemutatom fajtáikat és az érzelmek csoportosítására született néhány elméletet. A harmadik fejezetben bemutatom az általam használt módszerek elméleti hátterét. A
negyedik
fejezetben
bemutatom
azokat
az
eszközöket,
amiket
a
diplomamunkám elkészítéséhez, a kísérletek elvégzéséhez felhasználtam. Az ötödik fejezetben bemutatom, miként alakítottam ki SVM tanításra alkalmas halmazt, a Feedtum adatbázis és az AAM library segítségével. A hatodik fejezetben bemutatom, mik a legfontosabb arcrészletek a különböző arckifejezés-párok szemszögéből, és milyen eredményeket értem el tanításukkal. A hetedik fejezetben bemutatom az arckifejezés-mértéket az eddigi eredmények tükrében. A nyolcadik fejezetben bemutatom a humán felhasználóval végzett kísérletemet. A kilencedik fejezetben áttekintem a Turing-tesztek témakörét, és összefoglalom az eredményeket.
Tézisek 1.
Algoritmust fejlesztek, amely az arckifejezések mértékét becsülni tudja.
2.
Algoritmust fejlesztek annak megállapítására, hogy mely arcrészletek voltak fontosak az arckifejezés mértékének megbecsléséhez.
3.
Az adatbázist módosítom, az arccal kapcsolatos információkat torzítom.
4.
Megvizsgálom, hogy humán felhasználó teljesítménye mely információk hatására romlik le torzított adatbázison.
5.
Tágabb keretbe helyezem a diplomamunkámat. Áttekintem az úgynevezett Turingtesztek témakörét. Ugyanis a Turing-teszt szempontjából a fenti eljárást a gépi tanulás elnevezés
mintájára
„gépi
Turing-tanításnak”
5
is
lehet
nevezni.
2. Arckifejezések, érzelmek Arckifejezések Az arckifejezések az arcizmok mozgásának és elhelyezkedésének az eredményei. Ezek a mozgások elárulják az egyén érzelmi állapotát a szemlélő számára. Az arckifejezések a nem verbális kommunikáció részét képezik. Ez az elsődleges formája az emberek közötti szociális információcserének, de hasonló megfigyelhető egyéb emlősöknél, sőt néhány további élőlénynél is. Az emberek képesek arckifejezésükkel mímelni egy adott érzelmet, de legtöbbször, mivel szorosan kötődnek érzelmeikhez, tudat alatt használjuk őket. Közel lehetetlen bizonyos érzelmeket elfojtani, még akkor is, ha amúgy azt a helyzet megkívánná. Egy személy, aki a másikat el akarja mindenáron kerülni, mert nagyon ellenszenves, esetleg taszító számára, ám meglepetésszerűen szembekerül vele, könnyedén elárulhatja magát egy rövidke undorodó pillantással. Az arckifejezés és az érzelmek közötti szoros kapcsolat lehet kétirányú, előfordulhat, hogy egy érzelem mímelése, de főleg a látványa hasonló érzetet kelt az emberben. Mivel az emberi arc mozgatásának megvannak a maga korlátai, sok esetben egészen apró dolgok különböztetnek meg két érzelmet egymástól, ezért a leolvasásukra is kifinomult érzékelés szükséges. Találkozhatunk olyan arcokkal is, amelyek félrevezetőek lehetnek, akár még semleges állapotukban is, mert bizonyos vonások hasonlítanak azokra, amit egy bizonyos érzelem esetén elvárnánk. Új Guineában végeztek egy kísérletet a főként elszigetelten élő South Fore népcsoport körében. A kísérletben 189 felnőtt és 130 gyerek vett részt, emellett egy azonos kultúrájú 23 tagú kontroll-csoport, akik kevésbé izolált módon éltek. A résztvevőknek elmondtak egy történetet, ami egy bizonyos érzelmet írt le, ezután megmutattak nekik három képet (gyerekeknek kettőt), amik arckifejezéseket ábrázoltak, és megkérték őket, válasszák ki az imént leírt érzelemnek megfelelő képet. Az eredmények mindkét csoportnál hasonló pontosságúak voltak, egyetlen esetben volt probléma: a félelmet és a meglepetést rendszeresen összekeverték. A kísérlet nyomán írt tanulmányban megállapították, hogy bizonyos arckifejezések
6
ugyanahhoz az érzelemhez kapcsolódnak, függetlenül a kulturális háttértől és az izoláció mértékétől. [5]
Arckifejezések fajtái: • dühös • koncentráló • zavarodott • megvető • vágyakozó • undorodó • izgalomban lévő • unatkozó • félő • csalódott • szúrósan néző • nevető • szomorkodó • vicsorító • meglepődő
Érzelmek A pszichológiában és a köznyelvben az érzelem a személy létérzetének, mentális (lelki) állapotának (tudatának) egy aspektusa, vonatkozása, amely rendszerint az illető belső (szociális) és külső (fizikai) érzékelésének érzetéhez kötődik, azon alapszik. Érzelemnek nevezzük a szeretetet, a gyűlöletet, a bátorságot, a félelmet, az örömöt, a szomorúságot, a gyönyört és az undort, amelyeket mind pszichológiai, mind fiziológiai jelek kísérnek. Az érzelem az a terület, ahol a gondolat és a fiziológia sajátosan összefonódik, ahol az én elválaszthatatlan az énnel kapcsolatos, az értékekre és az ítélőképességre vonatkozó, magunkkal és másokkal szemben kialakuló egyéni észleléseinktől.
7
Az érzelmet szokás szembeállítani az értelemmel. Az érzelmek elszabadulásának lehetnek nem kívánatos következményei, ezért az emberek igyekeznek érzelmeiken uralkodni, és az értelem uralmát fenntartani. Az értelem működése során azonban az érzelmek is természetesen mozgásban vannak, örömöt okoz az ismert dolgokkal való találkozás, a jól sikerült dolgokat igyekszünk megismételni stb. – ez az alapja a tanulásnak is. Az érzelmeket újabban az ember-gép kapcsolat tervezésében is figyelembe veszik, és fontos szempontnak számít a technika, a tárgyi világ örömszerző képességének a növelésében. [6]
Érzelmek fajtái: • elfogadás • düh • vágyakozás • unalom • undor • irigység • félelem • bűntudat • gyűlölet • öröm • féltékenység • szerelem • lelkiismeret-furdalás • bánat • meglepettség • csalódottság
Érzelmek csoportosítása A legtöbb kutató egyetért abban, hogy az érzelmeknek biológiai alapja van. Az érzelmek csoportosításának pontos módja és az érzelmek meghatározása mégis heves 8
viták tárgya az érzelemkutatásban. Reisenzen (1992) szerint az elméletek két fő megközelítés szerint csoportosulnak: 1. Az érzelmeket olyan részekre, összetevőkre redukálják, amik maguk nem érzelmek (pl. kiértékelések vagy dimenziók). Ezek az ún. összetevő-elméletek. 2. Az érzelmek sokféleségét egyetemesen létező alapérzelmekre vezetik vissza. Ezek az ún. alapérzelem-elméletek.
Összetevő-elméletek Az összetevő-elméletek követői úgy tartják, hogy az érzelmek más összetevőkből épülnek fel, attól függően, hogy az adott kultúra mely vonásokat hangsúlyozza. A nyelvhez hasonlóan az érzelmeket is öröklött, biológiai hátterünk segítségével sajátítjuk el, de a konkrét érzelmeket az elemi viselkedésegységek azon mintázata adja, ami az adott kultúra élet- és szocializációs stílusát tükrözi. Mivel a különböző kultúrák különböző összetevőket tartanak fontosnak és emelnek ki, az érzelmekre használt nyelvi kifejezések is sokfélék, és kultúránként eltérőek lehetnek. Például Russell (1997) kétdimenziós elmélete szerint az érzelmek jellemezhetők a valencia (pozitív- negatív) ill. az aktivitási szint/arousal (izgatott-nyugodt) dimenzióival. Például a negatív és nyugalmi összetevők együtt a depresszió érzetét alkotják, míg a negatív és izgatottság összetevők a stresszt. Egy dimenzión belül csak mennyiségi különbségek vannak, így az érzelmeket ebben az értelmezésben nem lehet élesen elkülöníteni egymástól.
Alapérzelem-elméletek Az alapérzelem-elméletek szerint univerzális érzelmeink vannak, amelyek az evolúciós szelekció során alakultak ki, így alapvető biológiai indítóprogrammal rendelkeznek. [Oatley, Keith & Jenkins, Jennifer M. (2001)] E programok kifejlődése azonban másokkal való interakciót igényel, akárcsak a nyelv elsajátítása. Ennek következtében az alapérzelmekben is előfordulhatnak a különböző társadalmak és a különböző egyének közötti különbségek, a nyelvek sokféleségéhez
hasonlóan.
Az
elmélet
szerint
az
és kulturális szokások alapérzelmek
biológiailag
meghatározott véges halmazt alkotnak, amiből a kultúra dolgozza ki az átélt érzelmek sokszínű és komplex csoportját. 9
Az alapérzelem-elmélet hívei evolúciós elképzeléseket vallanak, mely szerint minden diszkréten azonosítható érzelem különböző adaptív célok szolgálatában állt, így különböző idegrendszeri hálózatokhoz kapcsolódnak. Az alapérzelmek veleszületettségének újabb igazolását találták azokban a vizsgálatokban, ahol vakon született csecsemőknél figyelték meg ezeknek az alapérzelmeknek a megjelenését (mosolygás, sírás, szemöldökráncolás, meglepődés). Ezek a bizonyítékok amellett szólnak, hogy alapérzelmeink kultúrától függetlenül, egyetemesen jelen vannak. Ez pedig jelentős érv a biológiai meghatározottság mellett; génkészletünk őrzi közös evolúciós történetünk örökségét. [Evans, 2003]
Kulturális-szociális hatások az alapérzelmekre Az alapérzelmek - egyetemességük ellenére - nem minden embernél jelennek meg egyformán. Az érzelmi kifejezések alkalmazásakor a saját kultúránk szabályait alkalmazzuk, ami eltérő kultúrájú embereknél látszólagos különbségekhez vezethet. Általánosságban jellemző például, hogy a japánok sokkal inkább igyekeznek elrejteni az érzelmeiket, mint az európaiak és az amerikaiak. Paul Ekman és Wallace Friesen ezt a jelenséget is vizsgálták. Érzelmeket kiváltó filmeket nézettek japán és amerikai kísérleti személyekkel kétféle feltételben: először egyedül nézték a filmet, majd úgy, hogy a kísérletvezető is jelen volt. Azt az eredményt kapták, hogy az eltérések csak az utóbbi feltételben jelentek meg japánok és amerikaiak között, ám akkor is csak látszólag. A felvételek lassított elemzésénél kiderült, hogy a tanult kifejezési szabályok (a japánoknál az érzelmek elrejtése) csak késve, a tudatosulás után jelentek meg, az alapérzelem valójában, bár csak a pillanat töredékéig, de náluk is kifejezésre jutott. A kulturálisan meghatározott kifejezési szabályok tehát mindig csak azután jelennek meg, hogy az alapvető érzelmi válasz már beindult. [7]
10
3. Elméleti áttekintés Active Appearance Modellek Bevezetés [1] Az
active
appearance
modellek
(továbbiakban
AAM)
objektumok
változékonyságának kompakt paraméterezését valósítják meg. A tanító halmazon történő tanítás ún. rejtett változók becslésével történik. A modellezett objektum tulajdonságok általában forma- és pixel intenzitások. Az utóbbit textúrának is szokták nevezni. Ezekből az adatokból a tanítóhalmazhoz hasonló képek generálhatóak. Az objektumok definiálása a különböző képeken lévő összefüggő pontok bejelölésével történik. Ilyen összefüggő pontok lehetnek a minden képen könnyen beazonosítható kiugró részek, szín- vagy árnyalatátmenetek. A pontok kiválasztása történhet kézzel, félautomata vagy teljesen automata módon. A létrehozott modellek kompaktsága az alakzatok változékonyságának megfelelő ellensúlyozásán múlik, még a textúra változékonyság modellezésének megkezdése előtt. Olyan modellek, melyek nem tesznek eleget ennek a kritériumnak, a változékonyság modellezése során akadályokba fognak ütközni. Erre jó példa az Eigenface modell, melyet az első sikeres arc-felismerő módszernek tartanak, de mára már elavult, hiszen például elforgatott arcoknál hatékonysága drasztikusan csökken. Ezzel szemben az AAM elkülöníti az arc alakját a textúrától, így biztosítva nagyobb hatékonyságot szokatlan szögű felvételek esetén. Az AAM-ek és a hozzá közel álló módszerek, mint az alakítható (morphable) modellek és az aktív blobok egy bizonyos vizuális jelenség generátor modelljei. Bár lineáris mind alakban, mind megjelenésben, az AAM a pixel intenzitás tekintetében mégis nemlineáris paraméteres modell. Amikor az AAM képre illesztéséről beszélünk, az a bemeneti kép és a legközelebbi modell példány közötti hiba minimalizálását jelenti, például egy nemlineáris optimalizációs feladat megoldását. Egy hatékony módja az AAM-ek illesztésének az inverz kompozícionális (inverse compositional) kép-hangolási algoritmus. Először nézzük meg részletesebben,
11
mit lehet tudni az active apearence modellekről, majd bemutatom az inverz kompozícionális algoritmust is.
Lineáris alakzat és megjelenés modellek [2] Mint azt már korábban említettem, az AAM csak egy a hasonló lineáris alakzat és megjelenés modellek közül. Az AAM-en kívül beszélhetünk még Shape AAM-ekről [Cootes and Kittipanya-ngam, 2002], Active Blob-okról [Sclaroff and Isidoro, 1998], Morphable Modellekről [ Vetter and Poggio, 1997, Jones and Poggio, 1998,Blanz and Vetter, 1999], és Direct Appearance Modellekről [Hou et al., 2001]. A köztudatban az AAM elnevezés terjedt el, ezért gyakori, hogy a lineáris alakzat és megjelenés modelleket egységesen AAM-nek hívják. A gyakorlatban két fő fajtát különböztetünk meg közöttük. Vannak, amelyek a formát és a megjelenést külön modellezik, és amelyek mindkettő információt egy lineáris paraméterhalmazba helyezik. Az első halmazt független AAM-nek, a másodikat kombinált AAM-nek szokták nevezni.
1. ábra: Az ábrán egy független AAM lineáris alakzat modellje látható. A modell egy háromszögekből összeálló hálóból (
) és n darab alakzat vektor lineáris
kombinációjából áll (
).
Független AAM-ek [2] Alakzat Mint a neve is mutatja, a független AAM-ek külön modellezik az alakot és a megjelenést. Az alakzat modellt egy háló, a hálót az őt összekötő csúcsok elhelyezkedése határozza meg. A háló általában háromszögekből áll, bár létezik módszer ennek kikerülésére. Matematikailag s alakzat kifejezhető egy alakzattal és n alakzat vektor lineáris kombinációjával ( ): 12
bázis
(1) Az AAM lehetővé teszi a lineáris alakzat variációt. Ez azt jelenti, hogy s alakzat kifejezhető s0 bázisalakzat és n darab alakzatvektor lineáris kombinációjaként ( ):
(2) A képletben látható
együtthatók az alakzat-paraméterek. Mivel szükség
szerint lineárisan újra paraméterezhető az egyenlet, azt feltételezzük, hogy
vektorok
ortonormálisak. Az AAM-eket általában tanító adatok segítségével alkotják. Az alapvető hozzáállás Principal Component Analysis (továbbiakban PCA) alkalmazása a tanító az átlag alakzat, és n darab eigenvektor
hálókra [Cootes et al., 2001]. A bázis-alakzat tartozik az n legnagyobb eigenértékhez. Megjelenés A független AAM megjelenése az
bázishálóban van definiálva. Ennek
köszönhetően csak a számunkra fontos pixelek vannak modellezve, figyelmen kívül hagyva a háttérben elhelyezkedő pixeleket. , melyek az
jelentse a pixelek azon halmazát
háló belsejében helyezkednek el.
2. 2. ábra: az ábrán egy független AAM lineáris megjelenés variációja látható. A modell a bázisháló belsejében lévő pixeleket tartalmazó a bázisképből
és m megjelenés kép
lineáris kombinációjából áll össze, melyek ugyanazon a pixelhalmazon vannak definiálva.
13
Az AAM megjelenési képe
mely az
pixelhalmaz felett van
definiálva, ahol lehetőségünk van a lineáris megjelenés variálására. Azaz bázisképpel és az m darab megjelenési kép
megjelenés kifejezhető
lineáris
kombinációjával.
(3) A képletben látható
együttható a megjelenés paraméter. Mivel szükség szerint
lineárisan újra paraméterezhető az egyenlet, azt feltételezzük, hogy ortonormálisak. Az alakzat komponenshez hasonlóan
bázis és
képek
megjelenési képek
PCA-val számolhatóak egy tanítóhalmaz segítségével. A bázis megjelenés az átlagkép, és az
képek az m legnagyobb eigenértékkel rendelkező m darab eigenkép. Modell létrehozása A (2) és (3) egyenletek leírják az AAM alakzat és megjelenés variációit, de nem
tudjuk meg ebből, hogy készül egy modell. Ha adottak az AAM alakzat paraméterek használhatjuk a (2) egyenletet AAM alakzatok generálására. Hasonlóan az AAM megjelenési paramétereinek legenerálhatjuk az
birtokában
megjelenést. Ezek után a p és λ
hálóban definiált
paraméterek által meghatározott AAM modellt elkészíthetjük az A megjelenés bázisról történő s alakzatra való kifeszítésével. Lényegében az transzformációt
és s hálópár meghatároz egy elemenkénti affin
-ból s-be. Minden
-beli háromszögnek megfeleltethető egy s-beli
háromszög.
14
A kép alakzatra illesztésekor minden x pixelre kiszámoljuk
bázisalakzat
melyik háromszögéhez tartozik, majd végrehajtjuk rá a háromszöghöz tartozó transzformációt.
A megjelenés:
+
-
-
+
Generált AAM modell M(W(x;p)) s alakzat:
+
+
-
–
3. ábra: Példa az AAM modell segítségével létrehozott arcra. Az alakzat paramétereket az s alakzat modell kiszámításához, a megjelenési paramétereket az A megjelenési modell kiszámításához használjuk. A modell megjelenése a bázisalakzatban transzformációt határoz meg
van definiálva. Az
és s pár egy elemenkénti affin
-ból s-be, amit W(x,p)-vel jelölünk. A végső AAM
példányt M(W(x;p))-el jelöltük és A megjelenés
-ból s-be illesztésével kaptuk W(x,p)
szerint.
Jelöljük az elemenkénti affin transzformációt W(x,p)-vel. Ez a folyamat a következő egyenlőséggel definiálható:
(4)
15
Ez az egyenlőség ún. előre illesztést jelent, ami annyit tesz, hogy egy x pixelnek -ban, az illesztési célja W(x,p). Az AAM modell M a W(x,p) pixelnél s-ben meghatározza
megjelenését. Ennek a folyamatnak az implementálása anélkül,
hogy M-ben lyukak lennének némi trükköt igényel (és legjobban visszafelé illesztéssel oldható meg, ami egy inverz illesztés s-ből algoritmusnál csak az
-ba). Szerencsére az AAM illesztő
bázishálóba kell visszafelé illesztést végeznünk.
Kombinált AAM-ek A független AAM-ek külön alakzati p és megjelenési λ paraméterekkel rendelkeznek. A kombinált AAM-eknek ezzel szemben csak egy paraméterhalmazuk van az alakzat paraméterezésére:
(5) és a megjelenés paraméterezésére:
(6) Ebből kifolyólag az alakzat és megjelenés része a modellnek összefüggő. Ez a függőség számos hátránnyal jár. Például azt jelenti, nem feltételezhetjük
és
vektorokról, hogy ortonormálisak és az illesztési eljárást is nehezebbé teszi. Másfelől viszont rendelkezik számos előnnyel is. Először is a kombinált formula általánosabb, ráadásul a független formula valódi részhalmaza a kombináltnak. Ennek belátásához vegyük a
halmazt, és láthatjuk a megfelelő
és
paramétereket. Másodsorban a kombinált AAM-ek gyakran igényelnek kevesebb paramétert ugyanazon virtuális jelenség hasonló pontosságú ábrázolásához. A kombinált AAM-eket általában egy független AAM segítségével számolunk egy harmadik PCA futtatásával a megfelelően súlyozott p alakzat és λ megjelenési tanító paramétereken. Ekkor az alakzat és megjelenés paramétereket lineárisan újra paraméterezzük a kombinált PCA új eigenvektorainak formájában.
16
AAM illesztése Ha egy I(x) képhez akarjuk illeszteni az AAM-et, az a következőt jelenti. Feltételezzük, hogy ismerjük az optimális p és λ paramétereket. Ez azt jelenti, hogy a képünk I(x) és a modell példány
azonos kell, hogy legyen. Ahhoz,
hogy definiálni tudjuk az illesztési folyamatot, formálisan definiálnunk kell az optimalizálandó kritériumot az illesztési folyamathoz. Természetesen minimalizálni akarjuk a hibát I(x) és
között. Két koordináta rendszer van, amik
között számolható ez a hiba: a kép és az AAM koordinátái. A gyakorlatban bebizonyosodott, hogy hasznosabb az AAM koordinátáit használni, például bázishálót. Feltételezzük, hogy x egy pixel
-ban. A hozzá tartozó pixel az I képünkön
. Az x pixelnél az AAM megjelenése pixelnél a képünk
-át a
. A
intenzitással rendelkezik. Minimalizáljuk a két mennyiség
közötti különbség négyzetösszegét:
(7) ahol az összeadás minden
-beli x pixelre vonatkozik. A célunk, hogy ezt az
egyenletet a p és λ paraméterek felhasználásával minimalizáljuk. Általában az alakzati paraméterek optimalizálása nemlineáris, a megjelenési paramétereké pedig lineáris.
Lucas-Kanade képillesztés A képillesztés célja, hogy egy konstans mintakép helyét megtaláljuk egy bemeneti képen. A gradiens leereszkedés alapú képillesztés elmélete először 1981-ben jelent meg Lucas és Kanade publikációjában, innen ered a módszer elnevezése. A cél a legjobb lokális illeszkedés megtalálása egy fix mintakép
és a példakép I(x)
között. A p paraméterrel vett különbség négyzetösszegének minimalizálásával:
(8)
17
ahol
a mintával megegyező dimenziójú kép, és az I képet hozzuk a
mintával azonos koordináta rendszerbe visszafelé illesztéssel. p megoldása egy nemlineáris optimalizációs probléma, még akkor is, ha
lineáris p-vel, mert
általában I(x) pixel értékei nemlineárisak, és alapvetően nem függnek x pixel koordinátától. A probléma lineárissá tételéhez a Lucas-Kanade algoritmus feltételezi, hogy p kezdeti becslése ismert, és utána iteratív módon dolgozik ∆p paraméter növelésével. Például, minimalizáljuk az
(9) egyenletet ∆p értékének megfelelően, utána növeljünk rajta
. A
kifejezés p szerint is lineárissá tehető Taylor-sor használatával:
(10) ahol
a kép gradiense
pontban, és
az illesztés p szerint kiértékelt
Jacobi-mátrixa. A Lucas-Kanade algoritmus a modern módszerekhez képest lassú, főként azért, mert
és
is p-től függ, így lényegében minden iterációban
újraszámoljuk az egész egyenletet.
Forwards compositional kép illesztés A Lucas-Kanade algoritmusnál az illesztési paramétereket az aktuális p paraméterhez becsült ∆p eltolással számoltuk ki. A kompozíciós rendszerben egy inkrementális illesztésnek
és a jelenlegi illesztésnek
vesszük a
kompozícióját:
(11) és minden további lépésben vesszük az inkrementális és a jelenlegi illesztés kompozícióját:
(12) 18
Ha kiszámoljuk a megoldást
-re a (11)-es egyenletben, megtaláltuk az
inkrementális illesztést a „kép” irányába. Ennek vehetjük a jelenlegi illesztéssel vett kompozícióját és az eredmény a forwards compositional algoritmus [Baker and Matthews, 2003], továbbá [Shum and Szeliski, 2000]. A (11)-es egyenletet kibővítve Taylor-sorral a következőt kapjuk:
(13) Itt feltételezzük, hogy p = 0 egy identikus leképezés, azaz nagy különbség van (10) és (13) között. Először is a gradienst másodszor a Jakobi-mátrix
. Két -n számolja,
-án értékelődik ki, tehát előre kiszámolható. A
kompozíció ugyan költségesebb, mint az additív megoldás, de ez az ára annak, hogy ne kelljen minden iterációban Jakobi-mátrixot számolnunk.
Inverse compositional kép illesztés Az inverse compositional a forwards compositional algoritmus egy módosított változata, ahol a minta és a példa szerepe felcserélődik. Az inkrementális illesztést nem szerint, hanem
minta szerint végezzük. Az intuitív ötlet a módszerben,
hogy a képek szerepének felcserélésével (a kompozíciós esetben), csak az inkrementális illesztés becslése változik ellenkező, inverz irányba. A
és
szerepeinek felcserélésével (11)–ből a következő
minimalizációt kapjuk:
(14) az illesztés finomítása:
(15) (14) kibővítése Taylor-sorral:
(16)
19
Feltételezve, hogy
identikus illesztés, a megoldása ennek a legkisebb
négyzetek problémának:
(17) ahol H egy Hesse-mátrix, amiben I-t kicseréltük
-al:
(18) Mivel a minta
egy konstans, és a Jakobi-mátrixot
mindig p = 0-ra
számoljuk, a számítások többsége (17) és (18) előre elvégezhető. Az eredmény egy nagyon hatékony képillesztő algoritmus. A számításigényes lépések többsége csak az elején fut le. A fő algoritmus iterációjának számításigénye a teljesítményben jócskán alulmaradó ún. ad-hoc algoritmusokkal van egy szinten.
Szupport vektor gépek [3] Manapság a szupport vektor gépek (továbbiakban SVM) egy nagyon ígéretes eszközt biztosítanak adatok osztályozására. Az alapelvük, hogy eltárolják az adatokat nagy dimenziós terekben, majd elválasztó hipersíkot keresnek hozzá maximális szegéllyel.
4. ábra: a zöld nem választja el a két osztályt, a kék igen, de nem maximális szegéllyel, a piros pedig maximális szegéllyel is. A második ábrán a szaggatott vonalon lévő határpontok a szupport vektorok.
20
Legyen
a tanítóminták halmaza, ahol
tanítóvektor,
az n dimenziós
pedig az egyes mintákhoz tartozó osztályok címkéje. Az SVM
egy kvadratikus optimalizációs feladatot old meg:
(19)
ahol a tanító adatokat egy nagydimenziós térbe helyezzük segítségével, és
egy „büntető” paramétere a tanítási hibának. Minden
függvény tesztesetre a
döntésért felelős függvény (prediktor):
(20) Gyakorlatilag elég tudnunk
kernel függvényt az SVM
betanításához. A kísérleteimben a RBF (Radial Basis Function) kernelt használtam:
(21) RBF kernel esetében (21) két meghatározásra váró paraméterünk van az SVM modellhez:
és
. Egy jó általánosító képesség meghatározásához szükségünk van
valamilyen validációs folyamatra a paraméterek eldöntéséhez. Az eljárás legyen a következő: 1. Határozzunk meg egy
-hoz tartozó rácspont teret (grid space) a
következő értékekkel:
és
2. Minden hiperparaméter párhoz
.
a keresési térben kapcsoljunk egy 5
halmazos kereszt-validációt (cross validation) a tanító halmazon. 3. Válasszuk ki azt a
párt, mely a legkisebb CV súlyozott hibához vezet.
4. Használjuk a legjobb paramétereket, hogy elkészítsük a predikátor modellt.
F-score jellemző választó stratégia [3] Az F-score egy egyszerű technika, ami összehasonlítja két valós számhalmaz különbségét. Adottak a következő tanító vektorok negatív példák száma
és
, akkor az i-edik iteráció F-score-ja:
21
ha a pozitív és
(22) ahol
az átlaga az i-edik jellemzőnek az egész, a pozitív vagy a
negatív adathalmazon.
az i-edik jellemzője a k-adik pozitív példánynak, és
az
i-edik jellemzője a k-adik negatív példánynak. A számláló a pozitív és negatív halmazok közötti, a nevező a halmazokon belüli különbséget jelzi. Minél nagyobb az Fscore, a különböző osztályhoz tartozó jellemzők annál jobban elkülönülnek egymástól. Ezért ez a módszer hatékony jellemző választó kritériumnak. Az F-score módszer hátránya, hogy nem mutatja meg a jellemzők közti kölcsönös információt:
5. ábra: mindkét jellemzőnek alacsony F-score-ja van, mivel (22) a nevező (a pozitív és negatív halmazok közötti különbség összege) sokkal nagyobb a számlálónál.
Eltekintve ettől a hátránytól, az F-score egy egyszerű és rendszerint hatékony módszer. Kiválasztjuk a nagy értékkel rendelkező jellemzőket, majd ezeket használjuk tanításra, predikcióra. A folyamat a következő: 1. Az F-score kiszámítása minden jellemzőre. 2. Az ember számára jól észrevehető küszöb választása az alacsony és magas értékek elválasztásához, 3. Minden határ megállapításhoz a következőt kell tenni. a) A küszöb alatti jellemzők eldobása. b) A tanító adatok véletlen szétválasztása
22
és
halmazokra.
c) Legyen
az új tanító adat. Használjuk az SVM eljárást egy
prediktor létrehozására és teszteljük az
halmazon.
d) Ismételjük meg a fenti lépéseket ötször, és számoljunk egy átlagos validációs hibát. 4. Azt válasszuk küszöbnek, ahol a legalacsonyabb a validációs hiba, majd az alacsony értékek eldobásával és az SVM tanítással kezdjük elölről a folyamatot.
RBF kernel [4] Általában az RBF kernel a legcélravezetőbb választás az SVM-eknél. A mintákat nemlineárisan menti a nagydimenziós térbe, így tudja kezelni azokat az eseteket is, mikor a kapcsolat az osztálycímkék és jellemzők között nemlineáris. Továbbá a lineáris kernel, az RBF kernel egy speciális esete, [Keerthi és Lin, 2003] megmutatta, hogy egy lineáris kernel
büntető paraméterrel hasonló teljesítményre
képes, mint az RBF kernel bizonyos
paraméterek esetén. Továbbá a szigmoid
kernel is az RBF-hez hasonlóan viselkedik bizonyos paraméterekre [Lin és Lin, 2003]. A hatékonyság másik oka a hiperparaméterek száma, mely befolyásolja a modellválasztás összetettségét. A polinomiális kernel rendelkezik csak több hiperparaméterrel az RBF kernelnél. Végül az RBF kernellel kevesebb numerikus nehézségbe ütközünk. Egy kulcspont lehet
lehet, míg a polinomiális esetben ez az érték akár végtelen is vagy nulla
miközben a fokszám magas. Továbbá
a szigmoid kernel bizonyos paraméterekkel nem ad értékelhető eredményt. Természetesen léteznek szituációk, mikor az RBF kernel nem a legmegfelelőbb választás. Például, ha a használt jellemzők száma nagyon magas, érdemesebb lehet sima lineáris kernellel próbálkozni.
Kereszt-validáció és rácspont keresés [4] Az RBF kernel használata során két paramétert használunk: a
-t és a
-át.
Előre nem tudjuk, milyen értékek lesznek megfelelőek egy problémához, így valamilyen modell választásra (paraméter keresésre) van szükség. A cél egy jó pár megtalálása, amellyel pontosan tudjuk becsülni az ismeretlen adatokat (teszt 23
adatok). Nem szerencsés magas tanító pontosságot elérni (az osztályozók pontosan tudják becsülni a már ismert adatokat). Ezért elterjedt szokás a tanító adatokat kettéválasztani, ahol az egyik fele az adatoknak továbbra is a tanítást szolgálja, a másik fele pedig ismeretlen adatnak számít. Ekkor a becslési pontosság meghatározásakor nagyobb eséllyel választunk olyan adatokat, amik valóban jól működnek ismeretlen adatok esetén. Ennek a módszernek egy fejlesztett verziója a kereszt-validáció. Egy v-s kereszt-validációban először felosztjuk a tanító halmazt v egyenlő részre. Majd egymás után leteszteljük a halmazokat egyenként, a másik v-1 tanítóhalmazként való felhasználásával. Mivel az eredeti tanító halmaz minden példánya megmérettetik tesztadatként, a kereszt-validáció pontossága az adatok annyi százaléka mely, helyesen lett osztályozva. A kereszt-validáció megelőzheti a túlillesztés (overfitting) előfordulását. Láthatjuk a mellékelt ábrán lévő bináris osztályozási problémán (körök és háromszögek), mit is jelent ez. A kitöltött körök és háromszögek jelölik a tanító adatokat és az üresek a tesztadatokat. A tesztelési pontossága az (a) és (b) osztályozónak nem jó, mert túlilleszkedik a tesztadatokon. Ha ezt a két halmazt egy 2-es kereszt-validációnak tekintjük, akkor nem jól választottuk meg a halmazokat, a megoldás nem pontos. Másfelől viszont a (c) és (d) jó eredménye jobb keresztvalidációt és így nagyobb teszt pontosság eredményez.
Tanító adatok egy túlilleszkedő osztályozónál adatokra
24
Az osztályozó alkalmazása a teszt
Tanító adatok a jobb osztályozón (d A jobb osztályozó alkalmazása a teszt adatokon
6. ábra: egy túlilleszkedő és egy jobb osztályozó (a kitöltöttek a tanító, az üresek a teszt adatok)
A
és
meghatározására népszerű módszer a kereszt-validációs rácspont
keresés. Lényegében
párokat próbálunk ki, és amelyiknek a legnagyobb a kereszt-
validációs pontossága, azt válasszuk. A tapasztalat azt mutatja, hogy exponenciálisan növekedő sorozatok
-re és
-ra különösen jó megoldásnak bizonyulnak jó
paraméterek meghatározásához (például:
).
A rácspont keresés egyszerű, de a megoldás a dolog próbálgatás jellege miatt „butának” tűnhet. A gyakorlatban léteznek módszerek, melyekkel számítási időt spórolhatunk például a kereszt-validációs ráta approximációjával. Bár két fő motiváció van, amiért a rácspont keresés mégis olyan elterjedt. Az első, hogy nem mindig biztonságos olyan módszerek használata, amelyek approximációval, vagy valamilyen heurisztikával végeznek paraméter keresést. A másik ok, hogy a számítási idő nem különbözik lényegesen a fejlettebb módszerekétől, mivel csak két paraméterünk van. További előnye a módszernek, hogy könnyedén párhuzamosítható, mivel a
párok egymástól függetlenek. Sok fejlett módszer
iteratív folyamat, aminek a párhuzamosítása nehéz feladatnak bizonyulna.
25
7. ábra: „laza” rácspont keresés
).
Mivel egy teljes rácspont keresés időigényes lehet, ezért ajánlott először durvább rácsot alkalmazni. Ha ezzel sikerül feltérképezni a „jobb” területeket, utána azon újabb, pontosabb keresés futtatható. Ez a módszer jól működik akár többezer adatra is. Igazán nagy halmazoknál azonban megfontolandó egy részhalmaz véletlen kiválasztása, aztán az ott megismert adatok alapján egy újabb keresés futtatása a teljes halmazra, de már csak a korábbiakban jól szerepelő területeken.
26
4. Felhasznált erőforrások Open Computer Vision Library (OpenCV) Képfeldolgozási és mesterséges intelligencia területhez kapcsolódó eljárások gyűjteménye. http://sourceforge.net/projects/opencvlibrary
AAMLibrary Yao Wei (2008) Az OpenCV felhasználásval készült platform független kódgyűjtemény. Tartalmazza a Cootes's basic active appearance modell és a Matthews and S. Baker's Inverse Compositional modell implementációját is. Osztályai és tagfüggvényei lehetővé teszik a képek és pontfájlok gyors egyszerű kezelését. AAM objektum létrehozását, melyet megfelelő adatokkal feltöltve a fent említett kétfajta modell létrehozására használhatunk.
Elkészített
modell
birtokában
jól
paraméterezhető
illesztést
végezhetünk. Az eredményt megjeleníthetjük az OpenCV kínálta eszközökkel, vagy el is menthetjük. http://code.google.com/p/aam-library/downloads/list
FG-NET Database with Facial Expressions and Emotions Institute for Human-Machine Communication Technische Universität München Dr.-Ing. Frank Wallhoff Senior Researcher Kifejezetten arckifejezések megörökítésére készített kép- és videó adatbázis. Az adatbázisban 18 személy szerepel, mindről rögzítettek 7 fajta arckifejezést háromszor. A rögzített videó felvételek hozzáférhetőek képsorozatok formájában is, én a későbbiekben ezekkel dolgoztam. Az adatbázis képei elsődlegesen érzelmek, azután személyek alapján vannak csoportosítva. Az adatbázisban helyet kapó arckifejezések a harag, az undor, a szomorúság, a meglepetés, a félelem, a boldogság és a semleges. Az egyetlen probléma az adatbázissal a kiszámíthatatlansága volt; a képsorozatokon teljesen estleges időben váltanak
27
semleges arckifejezésről az elvártra. Ezért a későbbiekben mintaként szolgáló képek feldolgozását csak részben lehetett automatizálni. http://www.mmk.ei.tum.de/~waf/fgnet/feedtum.html
LIBSVM -- A Library for Support Vector Machines Chih-Chung Chang and Chih-Jen Lin Platform-független kódgyűjtemény SVM-hez, mely megfelelő eszközt biztosít a kezdőktől egészen a haladókig. Számos kiegészítő script létezik hozzá Python nyelven, melyek a gnuplot (http://www.gnuplot.info/) felhasználásával könnyedén vizualizálhatóak. http://www.csie.ntu.edu.tw/~cjlin/libsvm/
LIBSVM Tools F-score feature selection tool Yi-Wei Chen Az elméleti részben bemutatott F-score algoritmus implementációja, mely lehetővé teszi nagyszámú jellemzőből a tanítás szempontjából fontosak gyors és hatékony megtalálását. http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#5
SVM.NET 1.5 Matthew Alastair Johnson A libsvm 2.89 tiszta .NET-es konverziója. A konverzió az eredeti java-s implementációjából lett létrehozva. Rendelkezik annak teljes funkcionalitásával és hatékonyságával, de az objektumstruktúrát a készítő módosította a .NET platform követelményeinek megfelelően. Használható C++, C# és VB.NET környezetben is. http://www.matthewajohnson.org/software/svm.html
Microsoft Visual Studio 2008 Microsoft Visual C++ 2008 http://msdn.microsoft.com/en-us/vstudio/default.aspx
28
5. A tanítóhalmaz létrehozása A feedtum adatbázis birtokában első feladatom a kísérletre alkalmas képek kiválogatása és felmarkerezése volt. A válogatásra későbbi osztályozás miatt volt szükség, a markerezésre pedig egyrészt a későbbi tanításkor használt jellemzők kiszámításához, másrészt az AAM-mel történő képgeneráláshoz. Első lépésben a markerezés problémáját kellett megoldanom. A rendelkezésemre álló AAM library jó lehetőséget biztosított a képek gyors és automatikus markerezésére, ám ehhez rendelkeznem kellett volna egy megfelelő modellel az illesztéshez. Az első AAM modell létrehozásához kiválasztottam az adatbázisban lévő 18-ból 4 személyt, és az AAM pontfájlok formátumának megfelelően felmarkereztem azokat mind a 7 arckifejezésre.
8. ábra: a markerezésre használt program.
29
Ezt a markerezést egy erre a célra készített programban végeztem, melyben lehetőség volt betölteni a teljes feedtum képadatbázis fájlstruktúráját. Egy képet kiválasztva, azt szükség szerint nagyítva, kicsinyítve elvégeztem az említett képek bejelölését. Egy átlagos arcon elhelyezett pontok jelentek meg automatikusan minden kép felett, amikre rákattintva azokat a megfelelő helyre lehetett rakni. Mivel minden pontnak kitüntetett helye volt, ezért egy pont kijelölésekor a program kiírta annak sorszámát és helyét.
Miután minden pont a helyére került, elmentettem az adatokat egy, az AAM library által ismert formátumban, és a fájl nevében rögzítettem minden adatot, amiről a későbbiekben be lehetett azonosítani, milyen érzelmet ábrázol, és melyik képhez kötődik. Így elkészültek a pontfájlok a modell létrehozására, amikkel Yao Wei tanító algoritmusával létrehoztam az első inverse compositional modellt. Az adatbázis képeinek automatikus feldolgozásához írtam az AAM library segítségével egy parancssorból használható programot, mely a megadott könyvtárban található összes képet betöltötte, a modell alapján megkereste a tőle elvárható legjobb illesztést, majd a tanításhoz hasonló pontformátumban lementette az alakzatfájlokat. Az alakzatfájlok mentésére kibővítettem Yao Wei eredeti Shape osztályát egy WritePTS() függvénnyel. A teljes adatbázisra legenerált pontfájlok neve egyben azonosítójuk is volt, így szerkesztőprogramomnak ezt megadva már nem az alapbeállított átlagos képet, hanem a generált képeket kaptam. A tanításban részvevő személyeknél az eredmény kielégítő volt, a többieknél azonban arcszerkezettől függően néha kisebb, de általában inkább nagyobb eltérések voltak tapasztalhatóak a pontok elvárt és valós helye között. Ezeknek a képeknek a feldolgozására beépítettem a programba egy ún. „fastmarking” lehetőséget, melynek lényege, hogy rákattintok a kép egy pontjára, és a legközelebbi pont odaugrik automatikusan. Kevés vagy apró hibákat tartalmazó képeknél ezt a módszert nagyon jól lehetett alkalmazni, és ez jelentősen megkönnyítette a második tanítóhalmaz elkészítését. Ekkor további négy emberről mentettem el minden érzelemhez a tanítófájlokat, és a maradék 10-ről pedig csak egy kitüntetett érzelmet, az örömöt.
30
Megismételve a tanítást ez az előző halmazzal ötvözve már lényegesen jobb eredményt kaptam. Lényegében egy alany kivételével mindenkiről gyorsan lehetett így már mintákat gyűjteni. A végeredmény 549 pontfájl lett, melyek megoszlása a következő: • düh – 70 • undor – 97 • félelem – 56 • öröm - 165 • bánat – 77 • semleges – 90 • meglepetés – 71 A számok kicsit meglepőek lehetnek, de tudnunk kell, hogy az adatbázis 18 * 3 képsorozata érzelmenként 54 képet jelent. Szerencsére a képsorozatokon gyakran előfordult, hogy több, egymástól eltérő módon is ábrázolták az adott érzelmet, ilyenkor lehetett megnövelni a számokat. A boldogság nagy száma abból ered, hogy itt a „kis” és „nagy” mosoly is elmentésre került azonos fajta, ámde eltérő érzelemként.
31
Jellemzők bevezetése Adott volt az 549 pontfájl, ezekből kellett kinyernem olyan információkat, melyek hasznosak lehetnek a tanításhoz. A pontfájlokról eddig nem esett sok szó, nézzük meg őket közelebbről. Az AAM modell számára 68 pont jelentette az emberi arcra ráhelyezett háromszöghálót. Ez lényegében 68 pixelkoordináta volt. A pixelkoordináták rendezett sorozatot alkotnak, azaz mindegyik pontnak megvan a kitüntetett helye az arcon. Ezt a sorrendet egy point_info.txt nevű fájlban elmentettem, amiben
először
az
azonosító,
utána
pontosvesszővel
elválasztva
a
rövid
helymeghatározás szerepelt. Az alapvető irány, amivel a koordinátákban rejlő információt ki akartam nyerni, a koordináták egymáshoz való viszonya volt. Itt nem távolságra gondolok, hiszen az képről-képre, arcról-arcra változhat, hanem a három pont összekötésével kapható szögekre. Az képmarkerező programhoz létrehozott Facemarkers osztályt így kibővítettem néhány hasznos függvénnyel, például három pont sorszámát megadva (első a csúcs) visszaadta az általuk bezárt szöget. Az alapötlet megvolt, a szögszámítás is rendelkezésre állt, már csak arra kellett megoldást találnom, miképpen választom ki azokat a szögeket minden arcon, melyek a legtöbb információt hordozzák egy adott érzelempár szempontjából. Mivel több forgatókönyvet is szerettem volna kipróbálni, első lépésben kidolgoztam egy egyszerű technikát, mellyel könnyedén tudok leírni nagyszámú koordinátákból számolt szöget. A gyors alakíthatóság és variálhatóság miatt lényegében konfigurációs fájlok mellett döntöttem, melyek címkéket és a hozzá tartozó markerpontok sorszámait tartalmazzák (a rövid helyleíró szöveggel együtt). A feldolgozásra létrehozott Recognition desk nevű alkalmazásból ezeket a megfelelő helyre lementett konfigurációs fájlokat, vagy ahogyan a programban nevezem, feature listákat egy listbox segítségével könnyen ki lehet választani. Az algoritmus egy gomb lenyomásával a fájlban megadottaknak megfelelően kiszámolja az érzelempárokra lebontott jellemzőket, és lementi azokat listafájl nevének megfelelő utótaggal és a vonatkozó két arckifejezésnek megfelelő előtaggal.
32
A konfigurációs fájlok feldolgozása a következőképpen történt. Az egy címkéhez tartozó pontok összes lehetséges permutációjából szöget számolt az algoritmus, de az egy csúcshoz tartozó szárak végpontjait csak egyszer vette figyelembe. Ezeket az eredményeket felcímkézte, és létrehozta a jellemzők kiértékelésére készített jellemző fájlt.
Jellemzők válogatása A válogatás a már ismertetett F-score algoritmus segítségével történt három hatalmas kezdeti halmazon. Az első halmaz az arcon jól elkülöníthető különböző részletekre koncentrált, mint szemöldök, szem, száj, orr és ezek mellé a pontok mellé még bevette az orr csúcspontját, mint egyfajta kontrollpontot. A második halmaz sokkal inkább az arc középponti tengelyén és a különböző részletek szélén elhelyezkedő pontok egymáshoz való viszonyát vizsgálta. A harmadik pedig az arc körvonalán és felezőtengelyén elhelyezkedő pontokat, valamint a szemek és szemöldök kapcsolatáért felelős pontokat társította össze. • Első halmaz – 2010 jellemző • Második halmaz – 1715 jellemző • Harmadik halmaz – 1860 jellemző Miután mindhárom halmazra lefutott az F-score algoritmus, fel kellett dolgoznom a birtokomba került rengeteg információt. Ne feledjük, az érzelempároknak megfelelően 21 eredmény jött ki mindegyik halmazra. Az adatok válogatásához a jellemzők generálására használt listafájlból létrehoztam egy szöginformációs fájlt, mely tartalmazta minden létrehozott jellemzőnek a címkézett adatait (a hozzá tartozó markersorszámokat). Ennek birtokában az F-score algoritmus eredményét jelentő, a címkéket fontossági sorrendbe állító lista segítségével, képes voltam külön fájlba válogatni a számomra fontos szögeket meghatározó koordinátákat. Ennek egyszerű és szabadon variálható véghezviteléhez egy list-boxba töltöttem a szöginformációt tartalmazó fájlokat, ahol azt kijelölve egy kattintással a hozzá tartozó legjobb adatokat hozzáfűzte egy új, az eddigieknél jóval kevesebb adatot tartalmazó konfigurációs fájlhoz. Ebben a fájlban már minden címkéhez csak három pont tartozott.
33
Ezzel a módszerrel a három halmaz legjobb jellemzőiből többféle variációban újabb konfigurációs fájlokat hoztam létre figyelembe véve mind a hármat, vagy csak kettőt közülük. Ha elkészült egy új válogatott jellemzőhalmaz, a 21 párra legeneráltam a hozzájuk tartozó jellemző fájlokat. Ezekre a halmazokra újra lefutattam az F-score algoritmust, majd egy táblázatba gyűjtöttem az elért eredményeket. Az eredmények összehasonlításával létrehoztam a 21 „legjellemzőbb” jellemzőt tartalmazó konfigurációs fájlt. A legjobb megoldások figyelembe vételénél a hatékonyság mellett fontos szempont volt az ehhez szükséges jellemzők száma. 1-2% plusz hibát bizonyos esetekben elnéztem, ha az a jellemzők nagymértékű csökkenésével járt. A
jellemzők
számát
két
esetben
nem
sikerült
igazán
hatékonyan
lecsökkentenem. Ez a két eset a félő-meglepett és a semleges-haragos arckifejezéspárok, ahol kompromisszumként 50 jellemzőnél megálltam, mert itt még csak kissé romlott le a hatékonyságuk. Harmadik negatív példának a semleges-szomorú párt említhetném, ahol ugyan sikerült a jellemzők számát 37-re csökkentenem, a hatékonyság azonban a legrosszabb, azaz 80,24% volt, ehhez mérhetően alacsony arányt 81,89%-ot csak az előbb említett félő-meglepett pár ért el. Ez azért érdekes, mert az „Arckifejezések” részben említett Új-Guineai kísérletben a bennszülötteknek is ennek a két érzelemnek a felismerése okozta a legtöbb gondot. A legkiválóbb eredményeket a boldog-szomorú (100%, 7 jellemző), a semleges-meglepett (98,76%, 7 jellemző) és a szomorú-meglepett (98,65%, 7) érték el, bár hatékonysági szempontból meg kell említenem még a szintén tökéletesen szereplő harag-boldogságot és a semleges-boldogságot, melyek azonban a teszthalmaz kereszt-validációja során csak 29 jellemzővel tudták produkálni a 100%-ot.
34
6. Érzelempárok értékelése A legjobb esetek kiválasztása után kézzel összeválogattam azok F-score listáját és a hozzájuk tartozó konfigurációs fájlt. Ezekből az adatokból már automatikusan generálni lehetett az arckifejezés-párokhoz tartozó legjobb jellemzők halmazát. A következő oldalakon sorba veszem a tanulmányozott párokat, hogy közelebbről is megismerjük legfontosabb jellemzőiket és a kísérletek során szerzett tapasztalatokat. Amikor az eredmények felsorolásakor kereszt-validációra hivatkozom, az a legjobb jellemzőkkel végzet teljes kiértékelés, melynek során egy n elemű teszthalmaz minden elemére betanítottam a maradék n-1 elemet, és megpróbáltam az így megkapott modellel felismerni azt. Ha a sikeres felismerések száma k darab, akkor a keresztvalidáció értéke
.
A torzított adatokra vonatkozó tesztelésnél 10 esetet vizsgáltam, mely a marker koordináták egyre kaotikusabb elmozdulását tette lehetővé véletlen irányban. Minden esetben a teszthalmaz markerpontjait alakítottam újra a következő algoritmussal. Paraméternek megadtam a elmozdulást határozott meg minden
bizonytalansági változót, mely egy véletlen koordinátára. Az elmozdulás kiszámításának
képlete:
A humán kísérletet is torzított pontfájlok segítségével végeztem, ahol az átalakított fájlokat a meglévő AAM modell segítségével visszaraktam az arcokra. Kis eltéréseknél is különös benyomást keltenek ezek az arcok, ami gyorsan egészen absztrakt formákba csap át. Érdekes megfigyelés volt számomra, hogy az így létrejött képek sokszor olyan érzelmet keltettek, ami a kutatott pár egyikével sem volt azonos. Például a szájvonal természetellenes meggyűrődése az undor képzetét keltette egy másik csoportba tartozó képen.
35
Düh-undor Ez az érzelempár az egyik legnehezebben megkülönböztethető párosnak bizonyult, bár a jellemzők válogatásakor néhány esetben egészen jól szerepelt, így kaptuk a biztató 86,23%-ot és a 13 jellemzőt. A kereszt-validáció viszont itt hozta a legrosszabb eredményt. Ha a paraméter meghatározáskor a 2 páratlan hatványain lépkedtem, az egészen kiábrándító 72,46%-ot, míg páros lépkedés esetén 77,84%-ot kaptam. A másik eredmény már valamivel jobb, de még így is a legrosszabb az összes pár közül. A legjellemzőbb szögeknek a szemek szélső sarkában volt a csúcsa, és a szárak végpontja az állcsúcsban, valamint az alsó ajak közepén vagy ehhez közel volt található. Másodiknak szintén a szemek szélső sarkából kiindulva a szájszélek és a velük egy vonalban lévő arcél-pontok bizonyultak. Ez jól mutatja az arcon ilyen estben lejátszódó változásokat. Míg dühös tekintetnél szánkat összehúzzuk és az a szokásosnál vízszintesen és függőlegesen is kevesebb helyet foglal, addig undor esetén pont az ellenkezője játszódik le. Sokszor megfigyelhető az alsó ajkak lebiggyesztése, ezzel is csökkentve az áll és az ajkak közötti távolságot, valamint a száj kinyílik, az arc kiszélesedik.
36
Düh-félelem A végső eredmények tudatában ezt átlagos párosnak gondolnánk, mely nem tartozik sem az igazán könnyű, sem az igazán nehéz esetek közé. Mégis ennél a párosnál volt a legnagyobb ingadozás a jellemzőválogatásnál elért eredmények között. Végül egy 37 jellemzőből álló halmaz hozta a legjobb eredménynek bizonyuló 94,44%ot, és ez választás a kereszt-validációnál elért 93,65%-nál is stabilnak bizonyult. A legjobb jellemző címért a száj és a szemek nyitottságát legjobban jellemző szögek versenyeztek, ami nem csoda, hiszen ezeken a helyeken többnyire ellentétes változásokat figyelhetünk meg a két arckifejezésnél. A dühös arcnál, mind a szem, mind a száj sarkából mért szögek összeszűkülnek, félelem esetén azonban a szem elkerekedik, a száj tátva marad. Kiemelhetjük még azt a jellemzőt, mely az orr csúcsához viszonyítva nézi a szem alsó és felső része között bezárt szöget, valamint azokat, melyek a szemöldök, vagy a száj eltávolodását mérik akár a szemhez, akár a fülhöz képest.
Düh-öröm Ez a pár elég markánsan elválasztható, bár 29 jellemzőjével azért hátul kullog. Cserébe majdnem tökéletes felismerést nyújt, sőt a jellemzőkeresés során volt példa a 100%-os találatra is. Ez a kereszt-validáció során alig romlott, és 98,73%-os precizitásra 37
volt elég. A többi „öröm” párnál is látni fogjuk, hogy ez az érzelem nagyon jól tanítható ismérvekkel rendelkezik. Természetesen a legerősebbek a bizonyos száj- és ajakpontokból mérhető szögek, közülük is azok, melyek a száj jobb és bal oldala között ívelnek át. Aztán előkerülnek még a „dühös” párokból jól ismert szemöldök-száj által bezárt szögek, valamint a nevetéskor kiszélesedő arc miatt az arcél szájvonalon lévő pontja, mely az orrcimpánál lévő csúcs egyik szárát jelöli a száj széle mellett.
Düh-bánat Ismét egy átlagos párhoz érkeztünk, mely a jellemzőkeresések során legjobb eredményként 86,39%-ot és 29 jellemzőt ért el. Ahogy azt a 90% alatti eredményektől megszokhattuk, a teljes kereszt-validáció során ez az érték tovább romlott egészen 79,59%-ra, ezzel a páros kiérdemelte a harmadik legrosszabb osztályozó címet. A legerősebb osztályozó a száj alján található csúcsból induló és a felső ajkak bal középső és bal felső részén megállapodó szárakból áll. Ez talán a száj dühös összehúzásával magyarázható, mely lecsökkenti ezt a szöget egy kényelmesebb szájtartáshoz képest. Másik fontos szög a szemöldök belső széléből induló csúcs, mely az álcsúcsban és a túloldali szem szélében végződik. A szemöldök szélei minden eddigi párnál erőteljesebben jelennek meg, ez nyilván abból adódik, hogy dühös viselkedéskor összeráncoljuk a homlokunkat, ezzel leeresztve a szemöldökünk belső szélét, míg bánatos viselkedés esetén inkább ellazítjuk azt nyugalmi helyzetben hagyva 38
szemöldökünket. Ezek az apró különbségek jól mutatják, hogy ez a két pár apróságokban különbözik csak egymástól.
Düh-meglepetés Egy átlag feletti párossal van dolgunk, ami a jellemzőkeresés során az ideális jellemzők számában produkálta a legnagyobb ingadozást. Az egyik teszt során sikerült a legjobb 95,74%-os eredményt 2 darab jellemzővel elérnie, de úgy gondoltam, az adatok torzulása esetén ilyen kevés jellemző végzetes lehet, ezért a 29 jellemzőt tartalmazó halmaz mellett döntöttem. A kereszt-validáció pontosan ugyanazt a 95,74%-os eredményt hozta, mint a jellemzőkeresés során végzett tesztelés. A jellemzők egyértelműen a száj meglepett elkerekedésére figyelnek, teszik ezt többnyire a száj közepéből, vagy esetleg az orrcsúcsból. Amolyan biztonsági tartaléknak a hátsó sorokban megtalálhatjuk az előző párosnál megismert szemöldök, állcsúcs, túloldali szem hármasokat is. A két szájtartás közötti különbség akkora, hogy valószínűleg ennek volt köszönhető a csak két jellemzőt használó megoldás, de mivel előfordulhat, hogy valaki nem a szájával csodálkozik, hanem csak a szemét nyitja tágra, biztosabbnak érzem a tanítást szemöldökön és szemen lévő pontok felhasználásával.
39
Undor-félelem Az előzőt megközelítő pontosságot, 94,77%-ot ért el ez a pár a jellemzőkeresés során, mindezt mindössze 18 jellemzővel. A teljes kereszt-validáció során kis csökkenés volt megfigyelhető, így végül az osztályozó hatékonysága 92,16% lett. A
jellemzőket
uralják
a
szemkoordináták
különböző
kombinációi.
Természetesen a legelöl található szög csúcsa a szem széle és a két szára a szem tetején és alján végződik. A félelemtől elkerekedő szem és az undorodó összehúzott tekintet igazi ellentétei egymásnak. Található továbbá olyan szög is, mely kihasználja, hogy a két érzelem hatása alatt az ajkak általában más alakot vesznek fel, valamint a szemöldök dőlésszöge is ismét szerephez jut.
40
Undor-öröm Ez a pár nagyon jó eredményekkel rendelkezett mindenhol, de a második kezdeti teszthalmazon 26 jellemzővel elért 97,3%-ot már egyik variáció sem tudta felülmúlni. A kereszt-validáció után 95,68%-os pontosságot kaptam, ami kicsit alacsonyabb ugyan, de ez még így is magasabb, mint a jellemzőkeresésnél elért átlagos hatékonyság. A legjellemzőbb motívumok a mindenhol jelenlévő orrpontok. Ez lehet az orr csúcsa, vagy az orrcimpák teteje is. Azt eddig is tudtuk, hogy az undorodó arckifejezés sok esetben az orr felhúzásával jár, de már arra is fény derült, hogy egy mosolygó arccal szemben ez jelenti a legkönnyebben mérhető különbséget. Szerepet kapnak még a fültető és a szemöldök, valamint a fültető és az arcél szájvonala között a száj széléből mérhető szögek.
41
Undor-bánat Ismét egy problémásabb párhoz érkeztünk, melynek a jellemzőkeresés során 86,21% volt a legjobb eredménye 29 paraméter mellett. A kereszt-validáció során elért eredménye 83,91%, amit 84,48%-ig sikerült felnövelni a rácspontos paraméter meghatározás közbeni kereszt-validáció 5-ről 10-re növelésével. Legjellemzőbb pontjai a szem- vagy a szemöldökpontok, amik általában csúcsként szerepelnek, és a szög szárai az áll közepe és a száj valamelyik széle felé tartanak. Kétségtelen, hogy az undort általában heves szájmozgás kíséri, míg a bánatot maximum az ajkak lebiggyesztése. Említést érdemel még az orrcsúcsból induló és a két belső szemöldökszélbe tartó szög, ami szintén a homlokráncolásra, a szemöldökök összehúzására utal.
Undor-meglepetés A
harag-meglepetés
párhoz
hasonló
eredményeket
kaptam
itt
is
a
jellemzőkeresés során, de ez a 29 jellemző melletti 95,24% hatékonyság az első és a harmadik nagy teszthalmaz legjobbjainak vegyítésével jött létre. A teljes keresztvalidáció során először csak a 94,64%-os eredményt értem el, de az egyenként lépkedő rácspont kereséssel sikerült itt is elérnem a 95,24%-ot. 42
43
A szögek között az alsó és felső ajkak pontjainak kombinációja, és az undorfélelem párnál már megismert, a szem kitártságára utaló szögek váltogatják egymást. Kétségtelen, hogy ez is az ajkak eltérő alakjából adódó előnyöket használja ki, a meglepetésnél sokkal nagyobb szemekkel megerősítve.
Félelem-öröm Az arckifejezés-párok közül talán csak a semleges-félelem párnál volt könnyebb feladatom a jellemzők számának lecsökkentésében, végső eredményként 98,61%-os hatékonyságot értem el 13 jellemző felhasználásával. A kereszt-validáció során is elértem a 98,61%-os pontosságot. A szemsarkakból induló szögek vannak többségben, melyek egyik szára a száj valamelyik középső pontján vagy az áll közepén, másik szára pedig az orrcsúcson állapodik meg. Ez a szög lényegében a száj alsó pontjainak és az állnak szemhez és orrhoz viszonyított eltávolodását használja ki, mely a félelem kimutatásának következménye. Nevetés esetén is gyakran előfordul a száj kinyitása, de ez mégsem jár akkora állkapocsmozgással.
44
Félelem-bánat Egy kevés jellemzőt használó, viszonylag pontos párról beszélhetünk. A legjobb eredmény 92,48% volt 7 szöggel. Más csoportosításban sikerült még alacsonyabbra csökkenteni ezt a számot, de azok az eredmények nem voltak ilyen meggyőzőek. A kereszt-validáció során elért 95,49% azon kevés pár közé emeli, amelyek az összes elem tesztelése után jobb eredményt értek el, mint a jellemzőválogatásra használt 5 halmazos módszerben. A jellemzőknél vagy mindhárom pont a száj valamelyik részén van, vagy a fültető a kiinduló csúcs és a szár két pontja tartozik a szájhoz. Nyilvánvalóan azt használják ki, hogy a félelem, ijedtség sokszor a száj kitátásával jár, miközben a bánatos arckifejezés sokkal kevésbé tér el a semlegestől.
45
Félelem-meglepetés Mint azt már korábban is említettem, ez a páros az egyik legproblematikusabb kombináció. Nem elég, hogy nagyon nehéz megállapítani éppen melyik érzelemmel van dolgunk, ráadásul a jellemzők kiválasztása is problémás. A végső választás az 59 jellemzővel 81,89%-ot elérő halmazra esett, amiből aztán csak 50-et tartottam meg. Ez a döntés helyesnek bizonyult, mert a kereszt-validáció során páratlan hatványú léptetésnél 82,68%-ot, míg páros hatványú léptetésnél 88,19%-ot értem el. A két léptetés között ez a páros érte el a legnagyobb különbséget. A legerősebb szögcsúcs egyértelműen az alsó ajak közepe, innen az egyik szár valamelyik szájszéli pontba, a másik az arcél szájvonalában lévő pontba, szemöldökök szélébe, vagy a szemek szélébe mutat. Persze ez önmagában nem elegendő a pontos osztályozáshoz a félelem és a meglepetés hasonló mimikája, intenzitása miatt. További jellemző pont a száj középpontja, mely azt mutatja meg, hogy a szájszélek milyen szöget zárnak be az arc olyan kitüntetett pontjaival, melyek a szemöldökön, orron, állon helyezkednek el.
Öröm-bánat Ez a két arckifejezés legalább olyan markánsan különbözik egymástól, mint a két érzelem átélése. A jellemzők leszűkítése 7-re könnyűnek bizonyult, és közben
46
elértem a 100%-os találati arányt. A párok között először, a kereszt-validáció során is elértem a 100%-os pontosságot. A jellemzők magától értetődően a száj adataival dolgoznak főként. Legerősebb jellemző az alsó ajkak görbülete, melyet a szájon belüli ponthármasok mind kihasználnak. A másik felhasználja az orrcsúcsot vagy a szemszélén lévő pontot, és a száj közepéhez, vagy az alsó ajkakhoz képest relatív magasan elhelyezkedő szájszélekre épít.
Öröm-meglepetés Szintén a jobb osztályozók egyike, melynek a válogatás során elért legjobb esete 98,74% volt 18 jellemzővel. Hasonló értéket sikerült elérnem a kereszt-validáció során is. Jellemző erre az osztályozóra, hogy szöge az orrcsúcsban van, és olyan főbb pontokat köt össze, mint a szájszéli és szemszéli, vagy szemöldökszéli pontok. Egy biztos: a szög csúcsa bárhol is legyen, valamelyik szájszél biztosan benne van a hármasban, hiszen ezzel fogható meg az öröm mosolyra görbülő szája és a meglepetés kerekedő „ó”-ja közötti különbség.
47
Semlegesség-düh Elég jó hatékonysággal, de annál több jellemzővel rendelkező arckifejezés-pár, a kiválasztás során még 53 jellemzővel rendelkezett és 94,38%-ot ért el, de a jellemzők számát lecsökkentettem 50-re. Ezután a kereszt-validáció során a legjobb esetben 93,75%-ot sikerült elérnem. Legerősebben a szem és a szemöldök közötti viszonyt kifejező ponthármasok vannak jelen, némelyik az orrcsúcsot is figyelembe veszi, mint támpontot. Mivel sok jellemzővel dolgozunk, ezek után a szem és a száj közötti hármasoktól, az arcél kitüntetett pontjait (szájvonalbeli pont, fültetőnél lévő pont) használó hármasokon át, egészen az álcsúcsból induló száj- és szemszögeket méricskélő hármasokig szinte minden megtalálható. Az eredmények láttán kimondhatjuk, hogy bár csak apró eltérések vannak a semleges arckifejezésekhez képest, ezek az apró eltérések akkora számban vannak jelen, hogy ezáltal alapvetően meghúzzák a határt a két osztály között.
48
Semlegesség-undor Az itt született legjobb eredmény 74 jellemzővel
92,51% volt, de ezt olyan
soknak találtam, hogy más lehetőség után néztem. Szerencsére ugyanaz a halmaz 18 jellemzővel is alig kisebb, egészen pontosan 90,37% pontosságú. A kereszt-validáció eredménye eredetileg 89,3% lett, de egyenkénti léptetéssel sikerült 90,91%-ot elérnem. Többségben vannak a száj nyitására érzékeny szögek, de találhatunk orrcsúcsból kiinduló, és a szem tetejében, aljában végződő szárakat is. A száj állapotát figyelő jellemzők jelenléte természetes ebben a szituációban, a szem relatív állapotának figyelése pedig az undorodó arckifejezés szemösszehúzó reakciójának tudható be.
49
Semlegesség-félelem Ez a pár is rendkívül kis jellemzőhalmaz segítségével a leghatékonyabb, de jóval elmarad a többi, 10 jellemző alatti osztályozótól. Ez számokban kifejezve 93,84%-ot és 9 jellemzőt jelent. Kereszt-validációval 93,15% pontosságot sikerült elérnem. A legjobb jellemzőnek a felső ajkon van a csúcsa és az alsó ajkon vannak a szárai. Egy kivétellel az összes pont a szájra korlátozódik, és azon belül is az ajkakra. Ez bizonyos szempontból érthető, de azért meglepetés, hogy a szemek nem kapnak szerepet ebben a modellben.
Semlegesség-öröm Ez újabb, 100%-os hatékonyságú páros, és mindez a düh-öröm párhoz hasonlóan 29 jellemző segítségével. Azzal ellentétben azonban, itt lett volna lehetőségem ennek a számnak a lejjebb szorítására, a pontosság rovására. A kereszt-validáció során ez volt az egyetlen pár, amelyik minden esetben 100%-os pontosságot ért el.
50
Talán nem véletlenül, a legerősebb jellemzők a két szájszél és az alsó ajak által bezárt háromszögek szögei, ezen kívül még megfigyelhető egy olyan hármas, mely egyenest húz a szemek szélei közé, majd az egyik végét összeköti valamelyik szájszéllel. Nyilván utóbbi esetben minél kisebb ez a szög, a megfigyelt személy annál inkább mosolyog.
Semlegesség-bánat Ez az utolsó alulteljesítő páros, és jellemzőkeresés szempontjából talán a legkeményebb dió. A legjobb eredmény 74 jellemző mellett 83,83%-os hatékonyság volt, de ezt lecsökkentettem egy 37 / 80,24%-os esetre. A nagy számok már előre jelzik, hogy nehéz volt találni egy igazán meghatározó jellemzőt, amivel könnyedén elválasztható egymástól a két osztály. A kereszt-validáció értéke 78,44% lett, kissé alulteljesítve. Minden eddigi tapasztalatot megcáfolva, itt az arcélen lévő pontok olyan meghatározóak, hogy a legfontosabb jellemzőkben kettő is van belőlük. A két pont közül az egyik a fülön, a másik az állon helyezkedik el, és olyan fix elhelyezkedésű pontokkal állnak kapcsolatban, mint az orrcsúcs vagy a szájközéppont. Ezeken kívül főleg a szem arányait mérő szögek vannak még túlsúlyban. Az arcél előtérbe kerülését annak tulajdonítom, hogy amikor a tesztalanyok mímelni akarják a bánatot, óhatatlanul
51
is kissé előredöntik a fejüket, és ez a legerősebb különbség a szempilla lejjebb eresztése mellett.
Semlegesség-meglepetés Ez egy nagyon jó osztályozó, mely főleg az első két jellemzőhalmazzal hozta a legjobb eredményeket. Ezek ötvözetéből jött létre a 7 jellemzővel elért 98,76%-os pontosság. A kereszt-validáció értéke is hasonlóan alakult minden futtatáskor. Az osztályozó lényegében kizárólag az ajkak és a szájszélek figyelembevételével dönt, ami nem is csoda, ismerve a két állapot szájtartása közötti különbséget. Az már más kérdés, hogy a szájjal kapcsolatos információk hiánya vagy félrevezető volta elvben teljességgel megzavarná. Mint az a mellékelt ábrán (9) látszik, az arc markerkoordinátáinak torzítását elég jól bírja.
52
Bánat-meglepetés Az utolsó arckifejezés-pár is igen jó eredményekkel szolgál, hasonlóan az előzőhöz, 7 jellemzővel 98,65%-ot ért el a keresés során. A kereszt-validációban megfigyelhetünk egy picike visszaesést minden futtatásnál, így 97,97% lett a pontossága. Nem véletlen az eredményekben való hasonlóság, lénygében az előzőhöz hasonló, kizárólag a szájon lévő pontokat használó jellemzőkről van szó. A meglepetés közben tátva maradt száj nyújtotta lehetőségeket kiválóan ki lehet használni az alapvetően passzív semlegességgel és bánattal szemben.
53
7. Az arckifejezés-mérték ismertetése Az eddig bemutatott módszerek célja az eredetileg eltervezett arckifejezésmérték precíz meghatározása volt. Célom a hét tesztelt arckifejezés párokra bontásával, egy olyan összefüggő rendszer létrehozása volt, ahol konkrétan meg tudjuk nevezni a hasonlóságokat és különbségeket bizonyos érzelmek kifejezése között, sőt tágabb kontextusba helyezve a gépi tanulás tanulmányozásával és eredményeinek elemzésével én magam is jobban tisztában leszek a „saját” arckifejezés-mértékemmel. Az eddigi eredmények letesztelésére véletlenszerűen kiválasztottam három személyt az adatbázisból (2 férfit és egy nőt), és az eddigi tesztektől eltérően az összes osztályozót lefuttattam a jellemzőiket tartalmazó fájlokra. Természetesen a jellemzőket a 21 osztályozónak megfelelően külön-külön számoltam ki, és a kapott eredményeket összegeztem. A jobb áttekinthetőség végett először összeadtam a különböző érzelmekre adott szavazatokat, majd készítettem ezekből egy százalékos összesítő táblázatot:
érzelmek düh undor félelem öröm semleges bánat meglepetés
düh 77,8 55,6 55,6 27,8 55,6 66,7 44,4
undor félelem 72,2 50,0 94,4 61,1 55,6 83,3 72,2 44,4 44,4 66,7 38,9 66,7 55,6 83,3
öröm semleges 5,6 66,7 16,7 16,7 11,1 50,0 100,0 5,6 5,6 100,0 0,0 83,3 11,1 22,2
bánat meglepetés 50,0 27,8 38,9 66,7 55,6 38,9 22,2 77,8 61,1 16,7 77,8 16,7 33,3 100,0
A táblázatból jól látható az átlósan keresztben végighúzódó tengely, amely egy tökéletes mértéknél mindenhol 100%-ot adna, ez azt jelentené, hogy az adott érzelem felismerésekor mindig a jót választottuk. Innentől fogva a többi adat már csak egyfajta hasonlósági faktorként funkcionálna, amely megmutatná adott metrikában, mely érzelmek állnak közel, illetve távol egymástól. Jelen estben még van egy szépséghibája a táblázatnak a sok biztató adat mellet, ez a bánat és a semleges érzelem összekeverése. A korábbi tesztekből tudjuk, átlagosan itt is bőven pozitív a felismerés (78,44%), de ezen a konkrét teszthalmazon most más eredményt kaptunk. Érdekes lehet még a színkódok tanulmányozása a táblázatban. A piros az 1/3 és az alatti eredményeket, a zöld a 2/3 feletti eredményeket és a sárga a maradékot jelöli. 54
Jól látható, amilyen könnyű felismerni az örömöt, legalább annyira nehéz összetéveszteni azt mással. Továbbá az is látható, hogy a sok arcizmot megmozgató érzelmek minden kategóriában egész jól szerepelnek. Készítettem egy másik táblázatot, mely az egyes személyek összes érzelmét tartalmazza összeadva:
3-as személy 4-es személy 5-ös személy Összesen
düh 23 24 22 69
undor 26 29 23 78
félelem 25 29 28 82
öröm 6 13 8 27
semleges 27 12 23 62
bánat meglepetés 24 16 13 27 24 19 61 62
Jól látható, hogy a különböző érzelmek azonos súllyal szerepelnek, mint az előző táblázatban, azaz a félelem és az undor vezeti a sort, az öröm pedig hátul van. Ha ez nem három emberre elvégzett kísérlet lenne, meghatározhatnánk egy átlagértéket, ami kifejezné egy átlagos arc érzelmi értékeit. Ha ekkor, ezzel összehasonlítva megnéznénk egy egyén értékeit, az ő arcvonásait illetően plusz információhoz jutnánk. Nézzük csak meg a mi táblázatunkat: látható, hogy a középső személy értékei négy kategóriában is eltérnek. Történetesen ez a személy egy nő. Lehet, hogy ez nem véletlen? Ilyen módszerekkel és egy pontosabb metrika meghatározásával az érzelmek meghatározása mellett, lehetőség nyílhatna akár bizonyos arctípusok leírására, esetleg gyermek és felnőtt arcok elkülönítésére, felismerésére. Egy ilyen univerzális arc-metrika meghatározása egyelőre még várat magára, de remélem, már nem sokáig.
55
8. Humán felhasználóval folytatott kísérlet Eddigi eredményeim eredményei,
szögek,
matematikai formulák
koordináták, bájtok,
és számítógépes eljárások
melyeket alaposan leteszteltem és
hatékonyságukra különböző százalékos értékeket kaptam válaszul. Ez mind dicséretes, de ennyi munka után már joggal tehetjük fel magunknak a kérdést: ezzel közelebb kerültünk saját és embertársaink arckifejezéseinek megértéséhez? Ezek után, ha valaki megkérdezi tőlünk, mit tanultunk ebből, tudunk mondani bármi olyat, ami e dolgozat megírása előtt még nem fogalmazódott meg bennünk? Erre a kérdésre keresve a választ összeállítottam az algoritmuson tesztelt torzított markerképek mintájára egy torzított AAM-mel generált, torzításonként 21x21es méretű képteszt halmazt. A tesztalanynak nem volt más dolga, mint hogy a nehezített környezetben a számítógéphez hasonlóan próbálja meg megmondani a látott képekről, hogy az adott arckifejezés-pár éppen melyik darabját látja.
9. ábra: balra a 2 pixeles torzítás, jobbra a 4 pixeles torzítás eredménye látható
A kísérletet két halmazra végeztem el, az egyikben 2, a másikban 4 pixel volt a torzítás mértéke. A teszt során a célszemély visszajelzést nem kapott, elkerülendő az új feltételekhez való alkalmazkodást.
56
A teszt a következő eredményekkel zárult: a 2 pixeles torzításon a tesztalany még jobban szerepelt a számítógépnél, de 4 pixelen már nem. A durván eltorzult arcvonások jobban lerontották a teljesítményét. Az más kérdés, hogy a teszt végrehajtása után a hibás döntéseket megismerve egy következő alkalommal már biztosan jobb eredményeket kaptunk volna.
10. ábra: a humán kísérlet eredményei
57
9. Kitekintés, a dolgozat tágabb keretbe helyezése Turing-teszt Alan Turing 1950-ben vetette fel a Turing-teszt koncepcióját, ami arra hivatott, hogy egy adott gépről megállapítsa, az képes-e a gondolkodásra. Ez a mesterséges intelligencia hajnalán megalkotott teszt mára valóságos legendává vált, és jelentős mértékben hozzájárult a gondolkodó gépezet ősi mítoszának újbóli felelevenítéséhez a számítástechnika korában. [8]
A teszt lefolyása A teszt lényegében abból áll, hogy az ember pusztán billentyűzet és monitor közvetítésével kérdéseket tesz fel a két tesztalanynak, akiket így se nem láthat, se nem hallhat. A két alany egyike valóban ember, míg a másik egy gép – és mindketten megpróbálják meggyőzni a kérdezőt arról, hogy ők gondolkodó emberek. Ha a kérdező hosszadalmas faggatás után sem tudja teljesen egyértelműen megállapítani, hogy a két alany közül melyik az ember, akkor a gép sikerrel teljesítette a tesztet. [8]
Gépi Turing-tanítás Egy Turing-teszt sikeres teljesítéséhez egy gépnek emberinek, és nem tökéletesnek kell lennie, azaz, ha a gépi arckifejezés felismerést tekintjük, mint egy ember meggyőzésére szolgáló folyamatot, akkor annak rendelkezni kell az emberi felismerés előnyeivel és hátrányaival egyaránt. Ha a korábban tárgyalt arckifejezésmértékre visszatérünk, találnunk kell egy módot annak folyamatos finomítására az emberi elvárásokhoz. A gépi tanítási módszerek, például az SVM, ha döntési határon vannak nagyon érzékenyek, de ettől távol nem változnak. Ha emberszerű arckifejezés-felismerésre törekszünk, azt egy embertől kell kölcsönvennünk. Azaz, a tanítóhalmazokat felválhatják
azok
a
tapasztalatok,
melyeket
összehasonlításából
ember
és
gép
eredményeinek nyerünk.
58
10.
Irodalomjegyzék
[1]
Mikkel B. Stegmann Analysis and Segmentation of Face Images using Point Annotations and Linear Subspace Techniques IMM Technical Report
[2]
Iain Matthews and Simon Baker Active Appearance Models Revisited The Robotics Institute, Carnegie Mellon University
[3]
Combining SVMs with Various Feature Selection Strategies Yi-Wei Chen and Chih-Jen Lin Department of Computer Science, National Taiwan University, Taipei 106, Taiwan
[4]
A Practical Guide to Support Vector Classification Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin National Taiwan University, Taipei 106, Taiwan http://www.csie.ntu.edu.tw/~cjlin 2009. május 19.
[5]
Arckifejezések http://en.wikipedia.org/wiki/Facial_expression 2009. június 7.
[6]
Érzelmek http://en.wikipedia.org/wiki/Feeling 2009. június 7.
[7]
Érzelmek csoportosítása http://hu.wikipedia.org/wiki/%C3%89rzelmek_csoportos%C3%ADt%C3%A1sa 2009. június 8.
[8]
Turing-teszt http://hu.wikipedia.org/wiki/Turing-teszt 2009. június 12.
59
11.
Függelék
Érzelem párok düh_undor düh_félelem düh_öröm düh_bánat düh_meglep undor_félelem undor_öröm undor_bánat undor_meglep félelem_öröm félelem_bánat félelem_meglep öröm_bánat öröm_meglep semleges_düh semleges_undor semleges_félelem semleges_öröm semleges_bánat semleges_meglep bánat_meglep Átlag
Teszt 1 Jellemzők Teszt 2 Jellemzők Teszt 3 Jellemzők 83,23 31 86,23 13 85,03 232 88,10 62 92,06 26 84,92 14 95,57 31 98,10 13 98,10 29 78,23 62 80,27 26 86,39 58 92,91 62 95,74 53 92,91 29 93,46 62 89,54 26 92,16 58 92,97 62 97,30 26 96,22 29 83,91 62 87,93 214 86,21 29 91,07 31 94,64 26 86,90 14 95,83 15 98,61 13 98,61 29 89,47 31 91,73 53 87,22 116 75,59 15 81,10 214 80,32 232 97,58 62 99,39 26 99,39 14 96,23 62 98,11 13 98,11 116 87,50 125 94,38 53 92,50 232 90,91 62 89,30 53 87,70 232 92,47 15 95,21 107 88,36 232 98,88 62 98,31 13 99,44 14 71,86 125 71,86 13 83,23 116 98,76 15 98,76 13 93,17 464 97,97 15 98,65 13 95,95 58 90,12 50,90 92,25 47,95 91,09 111,76
11. ábra: a teszthalmazok legjobb eredményei az F-score módszer használatakor
60
Érzelem párok düh_undor düh_félelem düh_öröm düh_bánat düh_meglep undor_félelem undor_öröm undor_bánat undor_meglep félelem_öröm félelem_bánat félelem_meglep öröm_bánat öröm_meglep semleges_düh semleges_undor semleges_félelem semleges_öröm semleges_bánat semleges_meglep bánat_meglep Átlag
Teszt '25' Jellemzők Teszt'50' Jellemzők Teszt'100' Jellemzők 86,8263 37 86,83 37 84,43 74 90,48 18 94,44 74 94,44 37 99,3671 4 98,73 37 99,37 74 78,91 37 79,59 37 80,27 149 95,04 74 95,74 2 94,33 4 93,46 37 94,77 18 94,12 74 95,14 37 95,14 74 95,68 37 86,21 37 85,63 74 84,48 149 92,86 37 92,86 2 94,64 37 97,22 9 97,92 4 98,61 18 90,98 4 90,98 4 92,48 9 82,68 74 82,68 149 77,95 149 99,39 9 99,39 9 99,39 4 97,48 2 98,11 37 98,74 18 90,00 37 90,00 37 91,25 74 91,98 74 92,51 74 93,58 149 93,15 9 92,47 4 93,84 9 98,88 18 98,31 18 99,44 74 83,83 74 84,43 149 83,23 149 98,76 9 98,76 4 98,76 9 98,65 4 98,65 9 98,65 18 92,44 30,52 92,76 40,62 92,75 62,62
12. ábra: a válogatott jellemzőket tartalmazó teszthalmazok legjobb eredményei
61
Érzelem párok düh_undor düh_félelem düh_öröm düh_bánat düh_meglep undor_félelem undor_öröm undor_bánat undor_meglep félelem_öröm félelem_bánat félelem_meglep öröm_bánat öröm_meglep semleges_düh semleges_undor semleges_félelem semleges_öröm semleges_bánat semleges_meglep bánat_meglep Átlag
Teszt 1-2 Jellemzők Teszt 1-3 Jellemzők Teszt 2-3 Jellemzők 85,63 59 85,63 59 84,43 14 93,65 59 88,89 14 92,06 29 100,00 29 98,73 7 99,37 29 78,23 29 86,39 29 82,31 59 95,04 3 94,33 119 95,74 29 94,12 29 92,81 29 90,85 29 94,05 14 94,05 7 95,14 59 85,06 119 87,36 119 87,93 59 93,45 3 95,24 29 92,26 14 98,61 3 97,22 3 97,92 7 92,48 7 88,72 3 90,98 3 77,95 14 80,32 119 81,89 59 98,79 14 100,00 7 98,18 3 98,11 7 98,11 14 98,11 29 88,75 59 91,88 119 91,88 39 90,37 59 94,12 119 91,44 119 91,78 3 91,10 3 93,84 29 99,44 3 100,00 29 98,31 14 81,44 119 83,23 59 83,83 119 98,76 7 98,76 3 98,76 3 98,65 7 98,65 7 98,65 3 92,11 30,76 92,64 42,71 92,57 35,62
13. ábra: csak két halmazból összeválogatott teszthalmazok
62