S-114.240 Laskennallisen tekniikan seminaari, Hahmontunnistus ihmisläheisissä käyttöliittymissä

Vuokko Vuori, 43200R, Tik

 

Lineaariset objektiluokat: kasvojen syntetisointi yhdestä esimerkkikuvasta

 

  1. Johdanto
  2. Tämä työ on tiivistelmä artikkelista

    "Linear Object Classes and Image Synthesis from a Single Example Image", Thomas Vetter ja Tomaso Poggio, MIT, A.I. Memo No. 1531, C.B.C.L. Paper No. 119, 1995.

    Työssä esitellään menetelmä, jonka avulla voidaan syntetisoida kolmiulotteisesta kohteesta kaksiulotteinen kuva uudessa katselukulmassa. Menetelmä perustuu ns. lineaarisiin objektiluokkiin ja prototyyppikuviin. Tarkasteltavasta kohteesta tarvitaan vain yksi kuva. Kohteen kolmiulotteista rakennetta ei mallinneta eksplisiittisesti vaan prototyyppien avulla päätellään miltä samaan kohdeluokkaan kuuluva objekti näyttää eri suunnasta tarkasteltuna.

  3. Teoria: lineaariset objektiluokat
  4. Kolmiulotteiset kohteet eroavat toisistaan sekä muodon (rakenteen) että tekstuurin perusteella. Työssä esitellään kolmiulotteisille kohteille esitysmuoto, joka voidaan laskea kaksiulotteisesta kuvasta ja jossa sekä kohteen muoto että tekstuuri on esitetty vektoreiden avulla. Aluksi kuvista etsitään kiinnostavat kohdat eli ns. piirrepisteet. Piirrepisteiden on löydyttävä kaikista kohteista. Piirrepisteiden etsinnän voi toteuttaa erillaisilla kuvan käsittelyalgoritmeilla, esimerkiksi reunan, kulmien tai etsintään sopivilla maskeilla. Tässä kuvattua syntetisointimenetelmää voidaan käyttää myös siten että valitaan kuvien kaikki pisteet piirrepisteiksi kuten tässä työssä esitetyissä esimerkeissä on tehty. Kohteiden muotovektorit koostuvat piirrepisteiden koordinaateista. Vastaavasti tekstuurivektorit koostuvat kuvan tekstuuri- tai väriarvoista piirrepisteissä. Jokainen kuva voidaan esittää referenssikuvan sekä sen ja prototyyppikuvien poikkeavuuksia kuvaavien vektorikenttien avulla. Prototyyppikuvia tarvitaan samaan luokkaan kuuluvista kohteista kuin tarkasteltava kohde sekä samassa asennossa kuin esimerrkikuvassa että uudessa, toivotussa asennossa. Kun oletetaan, että kuvissa olevat kohteet kuuluvat samaan ns. lineaariseen objektiluokkaan, voidaan halutusta kohteesta syntetisoida uusi kuva uudessa kuvakulmassa muiden kohteiden perusteella.

    1. kolmiulotteisen objektin muoto
    2. Kolmiulotteisen kohteen muoto voidaan esittää antamalla sen pinnan pisteiden koordinaatit:

      . (1)

      Kun näihin pisteisiin vielä liitetään tieto pinnan tekstuurista tai väristä, voidaan kohteesta muodosta kuva mielivaltaisesta tarkastelukulmasta. Kun oletetaan, että kohde on lineaarikombinaatio muista samaan luokkaan kuuluvista ja samoin asemoiduista kohteista, saadaan muodolle seuraava esitys:

      . (2)

      Tässä tarkasteltava kohde on esitetty q:n muun kohteen avulla. Jos kohteelle suoritetaan lineaarinen kuvaus L, eli muutetaan esimerkiksi tarkastelusuuntaa tai –etäisyyttä, saadaan kaavasta (2) uudeksi esitysmuodoksi:

      . (3)

      Eli jos kohteen kolmiuloitteinen pinta voidaan esittää toisten kohteiden pintojen lineaarikombinaationa, saadaan sen pinnan esitys lineaarisen muunnoksen jälkeen saman lineaarikombinaation avulla ja suorittamalla lineaarikuvaus muille kohteille.

      Mikäli kohteesta on käytettävistä kolmiulotteisen kuvan sijasta kaksiulotteinen kuva, jolle voidaan muodostaa kaavan (2) mukainen hajotelma, ei kaavan (3) mukainen hajotelma välttämättä onnistu kohteiden lineaarikuvausten jälkeen. Kaksiulotteisten kuvien tapauksessa hajotelma (2) on välttämätön muttei riittävä ehto hajotelman (3) toteutumiselle. Riittävä ehto saadaan käsitteen lineaarinen objektiluokka avulla:

      Joukko kolmiulotteisia kuvia muodostaa lineaarisen objektiluokan lineaarisen projektion P suhteen, jos , .

      Toisin sanoen, projisoituja kuvien hajotelmia (2) ja (3) vastaavissa hajotelmissa tarvittavien muiden kohteiden lukumäärän tule säilyä, kun kohteet projisoidaan matalampaan ulottuvuuteen.

      Oletetaan, että kohteet kuuluvat saamaan lineaariseen objektiluokkaan ja niistä on muodostettu kuvat projektion P avulla: . Alkuperäisten ja lineaarimuunnettujen kohteiden projisoiduille kuville saadaan seuraavat hajotelmat:

      , (4)

      . (5)

      Näiden hajotelmien perusteella nähdään, että kolmiulotteisesta kohteesta voidaan muodostaa kaksiulotteinen kuva uudessa asennossa, kun tarkasteltavasta kohteesta on vain yksi kuva ja muista kohteista on kaksi kuvaa (alkuperäinen ja uusi asento) olettaen, että kohteet kuuluvat samaan lineaarisen objektiluokkaan. Kohteesta voidaan siis muodostaa kuva uudessa asennossa tuntematta sen kolmiulotteista rakennetta eksplisiittisesti.

      Edellisille hajotelmille saadaan kätevämpi muoto, kun valitaan yksi kohteista referenssipisteeksi ja sen piirrepisteiden koordinaatit origoksi:

      , (6)

      . (7)

      Kuvassa 1 on esitetty yksinkertaistettu esimerkki, kuinka hajotelmia (6) ja (7) käyttäen voidaan muodostaa suorakulmaisen särmiön rautalankamallille kuva uudesta tarkastelusuunnasta.

    3. kolmiulotteisen objektin tekstuuri

    Jotta voidaan laskea edellä esitetyt hajotelmat (6) ja (7) kohteen muodolle, tulee kaikista kuvista etsiä piirrepisteet. Tässä esitellyssä työssä kuvien kaikki pisteet käsitetään piirrepisteiksi. Eri kuvien toisiaan vastaavat pisteet etsitään käyttäen vakiintunutta, optiseen vuohon perustuvaa tekniikkaa. Hajotelmissa (6) ja (7) esiintyvät koordinaatit vastaavat optista vuota tarkasteltavan kuvan ja referenssikuvan välillä. Tarkasteltavan kohteen tekstuuri esitetään vektorin avulla, jonka alkioita ovat poikkeamat kohteen ja referenssikuvan toisiaan vastaavien piirrepisteiden tekstuuriarvoissa.

    Kun oletetaan, että kaikkien kohteiden tekstuurit ovat keskenään identtisiä, voidaan uusi kuva muodostaa yksinkertaisesti etsimällä kuvista piirrepisteet, muodostamalla hajotelma (6) ja lopuksi siirtämällä referenssikuvan piirrepisteitä hajotelmassa (7) laskettujen suhteellisten koordinaattien verran. Kuvassa 2 on esitetty, kuinka "ilmapallokoiralle", jonka pinta on aina saman värinen valaistuksesta ja tarkastelusuunnasta riippumatta, voidaan tällä tavoin muodostaa uusi kuva.

    Realistisemmissa ongelmissa tekstuuri riippuu albedosta (heijastumiskerroin), pinnan orientaatiosta ja valaistuksesta. Työssä oletetaan kuitenkin, että tekstuuri riippuu ainoastaan albedosta. Lisäksi tekstuurivektoreiden oletetaan muodostavan samankaltaisen lineaarisen objektiluokan kuin muotovektorit. Tällöin tekstuurivektorille voidaan laskea muotovektorien tapaan seuraavat hajotelmat:

    , (8)

    . (9)

    Koska oletettiin, että tekstuuri ei riipu pinnan orientaatiosta, saatin kohteen pinnan muodolle ja tekstuurille erilliset hajotelmat ja niihin liittyvät kertoimet voidaan laskea toisistaan riippumatta. Kohteesta voidaan muodostaa uusi kuva laskemalla muotovektorien hajotelmat (6) ja (7), muodostamalla näiden perusteella tarvittavat tekstuurivektorit, laskemalla tekstuurivektorien hajotelman (8) kertoimet, ja lopuksi uusi tekstuurivektori hajotelman (9) avulla. Uusi kuva saadaan korjaamalla referenssikuvan piirrepisteiden tekstuuriarvoa uudella tekstuurivektorilla ja siirtämällä pisteet lopuksi uuden muotovektorin osoittamaan paikkaan.

    Kuvassa 3 on esitetty kuinka edellä kuvattu menetelmä toimii kasvokuvilla. Testikuva on muodostettu prototyyppikuvista morffaamalla siten että hajotelmissa (6) ja (7) vaaditut lineaarisuusoletukset toteutuvat.

  5. Toteutus
  6. Edellisessä kappaleessa kuvattu syntetisointimenetelmän toteutus harmaatasokuville koostuu kolmesta pääkohdasta: 1) kuvien vastaavuuksien analysointi eli piirrepisteparien etsintä, 2) lineaarisen transformaation estimointi eli muoto- ja tekstuurivektorien hajotelmien laskeminen ja 3) uuden kuvan syntetisointi. Seuraavissa kohdissa kuvaillaan kuinka nämä vaiheet on toteutettu käytännössä.

    1. Toisiaan vastaavien pisteiden etsintä
    2. Työssä tehdään oletus, että kuvissa olevat kohteet ovat aina tietyllä, tunnetulla tavalla asemoituja. Tämä helpottaa huomattavasti kahdessa eri kuvassa olevien vastaavuuksien eli piirrepisteparien etsimistä. Kasvokuvien ja "ilmapallokoirien" tapauksessa kaikki pisteet ovat piirrepisteitä. Muotovektorien hajotelmissa tarvittavat suhteelliset koordinaatit piirrepisteiden välillä etsitään optisen vuon laskentaan perustuvalla menetelmällä. Menetelmässä käytetään asteittaan tarkentuvaa gradienttihakua, joka pyrkii minimoimaan seuraavan virhetermin:

      (10)

      muuttujien ja (optinen vuo) suhteen. Muuttujat ovat toisen kuvan intensiteetin derivaatat ja kuvien intensiteettien erotus. Tällä tavoin löydettyä optista vuota voidaan käyttää sellaisenaan kuvan muotovektorina suhteessa referenssikuvaan. Optista vuota tarvitaan luonnollisesti myös tekstuurivektorin muodostuksessa. Optisen vuon laskenta on menetelmän laskennallisesti vaativin kohta. Mikäli kaikkia kuvan pisteitä ei käsitellä piirrepisteinä, toisiaan vastaavien pisteiden etsintä helpottuu huomattavasti. Tästä saatu hyöty riippuu kuitenkin piirreirrotusvaiheen vaativuudesta.

    3. Lineaarisen transformaation estimointi
    4. Hajotelmissa (6) ja (7) tarvittavat kertoimet lasketaan etsimällä pienimmän neliösumman (PNS) mielessä paras ratkaisu. Samalla saadaan laskettua lineaarikuvaus L, jonka avulla alkuperäisen kuvan muotovektorista saadaan uuden, syntetisoidun kuvan muotovektori. PNS-ongelma on seuraavanlainen:

      . (11)

      Kun kirjoitetaan hajotelma (6) matriisimuodossa kokoamalla kantavektorit matriisin pystyvektoreiksi saadaan ratkaisu

      . (12)

      Uuden kuvan muotovektori hajotelman (7) ja kaavan (12) perusteella seuraa:

      . (13)

      Mikäli kantavektorit ovat lineaarisesti riippumattomia,. Muutoin (11) ratkaistaan singulaariarvohajotelman (SVD) avulla.

      Tekstuurivektoreiden hajotelmassa (9) tarvittavat kertoimet lasketaan vastaavasti etsimällä hajotelmalle (8) PMS-ratkaisu.

    5. Uuden kuvan syntetisointi

    Uusi kuva syntetisoidaan halutussa asennossa olevasta referenssikuvasta korjaamalla sen tekstuurivektoria kaavalla (9) lasketulla tekstuurivektorilla ja siirtämällä sen pisteitä kaavalla (13) lasketun vektorin mukaisesti. Yleensä ongelmaksi muodostuu se, että uudet pisteet eivät välttämättä osu yhteen kuvapisteiden hilan kanssa. Tässä työssä syntetisoidun kuvan pikselien arvot määrätään interpoloimalla kolmen sitä lähimmäksi siirrettyjen pisteiden arvoista.

  7. Toteutuuko oletus lineaarisista objektiluokista kasvokuville?
  8. Keinotekoisille objekteille oletus lineaarisista objektiluokista on joissain tapauksissa selviö. Esimerkiksi suorakulmaisen särmiö dimensio on kolme, koska sen rakenne määräytyy täydellisesti sivun pituuksista ja siksi se voidaan lausua kolmen muun särmiö lineaarikombinaationa. Luonnollisten kohteiden tapauksessa – kuten ihmiskasvot – dimensio ei ole yhtä selvä. Tässä kuvatussa työssä testattiin esitettyä kuvan syntetisointimenetelmää ja lineaarisen objektiluokan toteutumista käyttäen 50:n ihmisen kasvokuvista koostuvaa tietokantaa. Jokainen henkilö oli kuvattu kahdesta eri suunnasta. Kaikkien henkilöiden suoraan edestä kuvatut kasvot syntetisoitiin sivusta otetusta kuvasta ja käyttäen kaikkien muiden henkilöiden molempia kasvokuvia. Mikäli oletus lineaarisista objektiluokista toteutuu, pitäisi henkilöiden sivukuvat pystyä esittämään täydellisesti muiden henkilöiden sivukuvien lineaarikombinaationa. Koe osoitti, että vaikka oletus ei toteudu, tulokset ovat tyydyttäviä. Kokeen tuloksia on esitelty kuvassa 4.

    Ihmiskasvot ovat sen verran monimutkainen kokonaisuus, ettei niitä voida esittää täydellisesti 50:n ulottuvuuden avulla. Työssä esiteltiin ideatasolla menetelmä, jonka avulla tarvittavien prototyyppikasvojen lukumäärä voitaisiin pienentää: kasvot pilkottaisiin osakokonaisuuksiin, jotka syntetisoitaisiin erikseen. Yksi osa voisi muodostua esimerkiksi nenästä tai suusta ja koska sen ulottuvuus olisi kokonaisuuteen nähden pieni, voitaisiin se syntetisoida paremmin käytettävissä olevien esimerkkikuvien avulla. Kokonaisuus saataisiin osien suorana summana. Tämän lähestymistavan ongelma on osakokonaisuuksien segmentointi kuvista.

  9. Pohdinnat

Työssä esitetyn syntetisointimenetelmän erityispiirre on se, että tarkasteltavassa kohteesta tarvitaan vain yksi kuva. Tämän ja muista samaan luokkaan kuuluvien kohteiden kuvien avulla voidaan kohteesta muodostaa kuva uudessa asennossa. Menetelmän etu on se, että syntetisointi tehdään käyttäen kaksiulotteisia kuvia eikä kohteiden kolmiulotteista rakennetta tarvitse mallintaa. Toisaalta, kohteiden asento kuvissa on tarkkaan määritelty ja se täytyy tuntea etukäteen. Menetelmään liittyy monimutkaisten luonnonkohteiden tapauksessa seuraava sisäänrakennettu vaatimus: muista kohteista tarvitaan paljon kuvia, jotta syntetisointi voidaan tehdä tarkasti. Menetelmää voidaan käyttää esimerkiksi tunnistusongelmissa uusien, keinotekoisten näytteiden tuottamiseen. Lisäksi muoto- ja tekstuurivektorien hajotelmiin liittyvät kertoimet ovat hyviä piirteitä, koska ne ovat invariantteja lineaaristen kuvausten suhteen.

Työssä esitettyjen tulosten arvioiminen on hankalaa. Ensinnäkin, luonnollisille kohteille, joiden kolmiulotteista rakennetta ei tunneta, on vaikea määritellä sopivaa mittaa, joka kertoisi kuinka hyvin niiden syntetisoidut kuvat muistuttavat todellisia kuvia. On varmasti mahdotonta muodostaa metriikkaa, joka vastaisi esimerkiksi ihmisen tapaa arvioda syntetisoinnin onnistumista. Toiseksi, tässä esitetyn menetelmän vertaaminen muihin syntesisointimenetelmiin on hankalaa, koska eri töissä on käytetty eri kuvatietokantoja. Lisäksi tässä työssä käytettiin vain yhtä esimerkki kuvaa, kun taas muissa, viitatuissa, töissä käytetiin useampia kuvia.

Kuva 1: Esimerkki siitä kuinka suorakulmaiselle särmiölle voidaan syntetisoida kuva uudesta tarkastelusuunnasta käyttäen tarkasteltavalle kohteelle yhtä esimerkkikuvaa ja prototyypeille kahta kuvaa. Syntetisoinnissa särmiöt on esitetty ainoastaan muotovektoreiden avulla.

Kuva 2: Esimerkki siitä kuinka vakiotekstuuriselle kohteelle voidaan syntetisoida kuva uudesta tarkastelusuunnasta. Kohde on esitetty sekä muoto- että tekstuurivektoreiden avulla.

Kuva 3: Esimerkki kuinka kahdesta prototyyppikuvasta morffaamalla muodostettulle kuvalle voidaan syntetisoida kuva uudesta tarkastelukulmasta. Kuvat on esitetty sekä muoto- että tekstuurivektoreiden avulla. Syntetisointimenetelmässä tehtävät lineaarisuusoletukset toteutuvat tässä esimerkissä.

Kuva 4: Esimerkkejä siitä, kuinka syntetisointi menetelmä toimii aidoilla kuvilla. Tehdyt lineaarisuusoletukset eivät toteudu, joten tarkasteltavan kuvan rekonstruaatio ei onnistu täydellisesti.