Valonlähteen suunnan estimointi kasvokuvasta
Ijäs, Matias (2020)
Ijäs, Matias
2020
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-11-18
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202011057818
https://urn.fi/URN:NBN:fi:tuni-202011057818
Tiivistelmä
Valonlähdettä tai sen suuntaa ei ole helppoa havainnoida kasvokuvasta, etenkään kun valonlähde ei ole näkyvissä kuvassa tai mikäli valonlähteitä on useita. Nykyteknologialla ongelmaan on mahdollista tehdä hyviä estimaattoreita. Työn tarkoituksena on ohjelmoida kokonaisuus, joka pystyy arvioimaan ensisijaisen valonlähteen suunnan kuvan keskipisteen suhteen.
Ohjelman käyttötarkoitus on tarkastella valon suuntaa kaksiulotteisesta (2D) kasvokuvasta. Valon suunnan estimointi tapahtuu pikselidatasta, jolle suuntakulma määrää tunnisteen asteina välillä [0, 360). Käyttökohteita ohjelmalle ovat muun muassa auringon suunnan tunnistaminen ulkona otetuista valokuvista, muokattujen kuvien tunnistaminen sekä useiden valonlähteiden sijaintien tunnistaminen useiden kuvien perusteella.
Tutkimuksen tärkeänä osana tarkastellaan ohjelman kehittämistä. Ohjelma koostuu seuraavita asioista: Opetus- ja testausdatan luomisesta virtuaalisesti. Erilaisten koneoppimismenetelmien soveltamisesta ongelman ratkaisemiseksi. Käytännön toteutuksen tekemisestä käyttäen konvoluutionaalista neuroverkkoa (CNN). Tulosten parantamisesta käyttäen esikäsittelyä, kuten kuvan suodattamista, kasvojen havainnointia etukäteen sekä opetusdatan painottamista eri kertoimin.
Työn tarkimmalle mallille käytettiin ohjattua oppimista, jossa optimointifunktiona käytettiin Adamia ja tulosten tappiofunktiona käytettiin keskineliövirhettä eli MSE:tä. Valittu malli koostui viidestä konvoluutiokerroksesta ja kolmesta täysin yhdistetystä kerroksesta. ReLU:a käytettiin aktivointifunktiona. Parametreja oli yhteensä 490 000. Tarkin malli antoi opetusdatan kaltaisesti generoidulle testidatalle keskimääräiseksi virheeksi 4,2 astetta. Oikeille valokuville, joista kasvot oli havaittu, malli antoi keskimääräiseksi virheeksi 15,8 astetta. Oikeat valokuvat olivat peräisin Yalen datasetistä sekä opinnäytetyön tekijän datasetistä.
Projektissa käytetty ohjelmakoodi on avoimesti saatavilla tutkimuskäyttöön osoitteesta
https://github.com/NemoHostem/CNN_Source_of_Light.
Ohjelman käyttötarkoitus on tarkastella valon suuntaa kaksiulotteisesta (2D) kasvokuvasta. Valon suunnan estimointi tapahtuu pikselidatasta, jolle suuntakulma määrää tunnisteen asteina välillä [0, 360). Käyttökohteita ohjelmalle ovat muun muassa auringon suunnan tunnistaminen ulkona otetuista valokuvista, muokattujen kuvien tunnistaminen sekä useiden valonlähteiden sijaintien tunnistaminen useiden kuvien perusteella.
Tutkimuksen tärkeänä osana tarkastellaan ohjelman kehittämistä. Ohjelma koostuu seuraavita asioista: Opetus- ja testausdatan luomisesta virtuaalisesti. Erilaisten koneoppimismenetelmien soveltamisesta ongelman ratkaisemiseksi. Käytännön toteutuksen tekemisestä käyttäen konvoluutionaalista neuroverkkoa (CNN). Tulosten parantamisesta käyttäen esikäsittelyä, kuten kuvan suodattamista, kasvojen havainnointia etukäteen sekä opetusdatan painottamista eri kertoimin.
Työn tarkimmalle mallille käytettiin ohjattua oppimista, jossa optimointifunktiona käytettiin Adamia ja tulosten tappiofunktiona käytettiin keskineliövirhettä eli MSE:tä. Valittu malli koostui viidestä konvoluutiokerroksesta ja kolmesta täysin yhdistetystä kerroksesta. ReLU:a käytettiin aktivointifunktiona. Parametreja oli yhteensä 490 000. Tarkin malli antoi opetusdatan kaltaisesti generoidulle testidatalle keskimääräiseksi virheeksi 4,2 astetta. Oikeille valokuville, joista kasvot oli havaittu, malli antoi keskimääräiseksi virheeksi 15,8 astetta. Oikeat valokuvat olivat peräisin Yalen datasetistä sekä opinnäytetyön tekijän datasetistä.
Projektissa käytetty ohjelmakoodi on avoimesti saatavilla tutkimuskäyttöön osoitteesta
https://github.com/NemoHostem/CNN_Source_of_Light.