EETU KUUSISTO PÄÄN ASENNON TUNNISTUS KUVASTA. Kandidaatintyö

Samankaltaiset tiedostot
Kaksiluokkainen tapaus, lineaarinen päätöspinta, lineaarisesti erottuvat luokat

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia.

Puumenetelmät. Topi Sikanen. S ysteemianalyysin. Laboratorio Aalto-yliopiston teknillinen korkeakoulu

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

Harha mallin arvioinnissa

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

JOHDATUS TEKOÄLYYN TEEMU ROOS

S09 04 Kohteiden tunnistaminen 3D datasta

ImageRecognition toteutus

S Laskennallinen Neurotiede

NIKO VUORINEN POLKUPYÖRIEN ETSIMINEN VALOKUVISTA KÄYTTÄEN LATENT SVM -MENETELMÄÄ. Kandidaatintyö

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Laskennallinen data-analyysi II

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Diskriminanttianalyysi I

Kognitiivinen mallintaminen. Nelli Salminen

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Luku 8. Aluekyselyt. 8.1 Summataulukko

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Avainsanojen poimiminen Eeva Ahonen

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus tekoälyn taustalla olevaan matematiikkaan

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Tee-se-itse -tekoäly

JOHDATUS TEKOÄLYYN TEEMU ROOS

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Tekoäly ja koneoppiminen metsävaratiedon apuna

Harjoitus 7: NCSS - Tilastollinen analyysi

Sovellettu todennäköisyyslaskenta B

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

Johdatus tekoälyn taustalla olevaan matematiikkaan

SSL syysseminaari Juha Hyssälä

Polaarisatelliittidataan perustuva lumentunnistusalgoritmi (valmiin työn esittely)

Algoritmit 1. Luento 3 Ti Timo Männikkö

1. LINEAARISET LUOKITTIMET (jatkoa)

Logistinen regressio, separoivat hypertasot

1, kun m = 0 ja n = 0, 0, muulloin.

Lineaariset luokittelumallit: regressio ja erotteluanalyysi

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi

MS-A0503 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Johdatus tekoälyn taustalla olevaan matematiikkaan

JOHDATUS TEKOÄLYYN TEEMU ROOS

MS-A0503 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

MS-C1340 Lineaarialgebra ja

Algoritmi I kuvioiden ja niille johtavien ajourien erottelu. Metsätehon tuloskalvosarja 7a/2018 LIITE 1 Timo Melkas Kirsi Riekki Metsäteho Oy

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Miehittämättömän lennokin ottamien ilmakuvien käyttö energiakäyttöön soveltuvien biomassojen määrän nopeassa arvioinnissa

Tekoäly muuttaa arvoketjuja

1. TILASTOLLINEN HAHMONTUNNISTUS

Koneoppiminen ja tekoäly suurten tietomassojen käsittelyssä yleensä ja erityisesti sovellettuina satelliittidatan käyttöön metsien arvioinnissa

805306A Johdatus monimuuttujamenetelmiin, 5 op

Johdatus tekoälyn taustalla olevaan matematiikkaan

Matematiikan tukikurssi

Demo 1: Simplex-menetelmä

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Harjoitus 9: Excel - Tilastollinen analyysi

2D piirrelaskennan alkeet, osa I

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

Impedanssispektroskopia

Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)

MLP-hermoverkko ja sen soveltaminen kuvien luokitteluun

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Johdatus tekoälyn taustalla olevaan matematiikkaan

Viikko 3: Lineaarista regressiota ja luokittelua Matti Kääriäinen

ÄÄNEKKÄÄMMÄN KANTELEEN MALLINTAMINEN ELEMENTTIME- NETELMÄLLÄ

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad

pitkittäisaineistoissa

805306A Johdatus monimuuttujamenetelmiin, 5 op

1. NEUROVERKKOMENETELMÄT

TUTKIMUSAINEISTON ANALYYSI. LTKY012 Timo Törmäkangas

Datatähti 2019 loppu

Trimmitysongelman LP-relaksaation ratkaiseminen sarakkeita generoivalla algoritmilla ja brute-force-menetelmällä

Laskennallinen data-analyysi II

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Määrittelydokumentti

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

Algoritmit 2. Luento 13 Ti Timo Männikkö

3 9-VUOTIAIDEN LASTEN SUORIUTUMINEN BOSTONIN NIMENTÄTESTISTÄ

Integrointialgoritmit molekyylidynamiikassa

Kun yhtälöä ei voi ratkaista tarkasti (esim yhtälölle x-sinx = 1 ei ole tarkkaa ratkaisua), voidaan sille etsiä likiarvo.

Testaa onko myrkkypitoisuus eri ryhmissä sama. RATK. Lasketaan kaikkien havaintoarvojen summa: k T i = = 486.

Tulosten arviointi. tulosten arviointi. voimmeko luottaa saamiimme tuloksiin?

Hissimatkustajien automaattinen tunnistaminen. Johan Backlund

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

805306A Johdatus monimuuttujamenetelmiin, 5 op

Lineaarinen optimointitehtävä

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Kuvien (tai muun datan) luokittelusta

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

Luku 14 - Koneoppiminen ja luokittelu

4. Tukivektorikoneet

Aki Taanila AIKASARJAENNUSTAMINEN

Transkriptio:

EETU KUUSISTO PÄÄN ASENNON TUNNISTUS KUVASTA Kandidaatintyö Tarkastaja: Yliopistonlehtori Heikki Huttunen Jätetty tarkastettavaksi 17.5.2015

i TIIVISTELMÄ EETU KUUSISTO: Pään asennon tunnistus kuvasta Tampereen teknillinen yliopisto Kandidaatintyö, 22 sivua Toukokuu 2015 Signaalinkäsittelyn ja tietoliikennetekniikan koulutusohjelma Pääaine: Signaalinkäsittely ja multimedia Tarkastaja: Yliopistonlehtori Heikki Huttunen Avainsanat: Histogram of Oriented Gradients, neuroverkko, random forest, tukivektorikone Ihmisen ja koneen välinen vuorovaikutus on tulevaisuudessa yhä tärkeämpää, kun älykkäät ympäristöt ja järjestelmät lisääntyvät. Yksi kanssakäymisen osa on sanaton viestintä ja eleiden tunnistaminen. Tässä työssä tutkittiin pään asennon tunnistusta kuvasta HOG-piirteiden perusteella. Pään asennon tunnistuksessa käytettiin apuna kolmea eri luokitinta, joista jokaisesta opetettiin kaksi eri versiota, toinen tunnistamaan pään vaakasuuntaisen kulman ja toinen tunnistamaan pystysuuntaisen kulman. Käytetyt luokittimet olivat neuroverkko, random forest sekä tukivektorikone. Tulokset osoittavat, että pään asento pystytään tunnistamaan kuvista melko luotettavasti HOG-piirteiden perusteella. Parhaat tulokset pään asentoa tunnistettaessa saavutettiin tukivektorikonetta käyttämällä. Saavutetut tulokset olivat yhteneviä muualla saavutettujen tuloksien kanssa.

ii ABSTRACT EETU KUUSISTO: Head pose estimation from image Tampere University of Technology Bachelor s Degree Programme in Signal Processing, 22 pages May 2015 Bachelor s Degree Programme in Signal Processing Major: Signal Processing Examiner: Lecturer Heikki Huttunen Keywords: Histograms of Oriented Gradients, Artificial Neural Network, Random Forest, Support Vector Machine Human-Computer interaction will be more and more important in future, as smart environments and systems become more popular and common. One part of this interaction is nonverbal communication and gestures. In this paper, head pose is estimated from images using Histogram of Oriented Gradients features. Head pose estimation was performed with three different classifier, of which two different versions were trained. One version for vertical head angles and another version for horizontal angles. Used classifiers were artificial neural network, random forest and support vector machine. Results showed that head pose can be estimated rather reliably from images with HOG features. The best head pose estimation results were achieved with support vector machine. The results obtained were convergent with the results achieved elsewhere.

iii ALKUSANAT Tämä työ on Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kandidaatintyöseminaarin opinnäytetyö, joka on kirjoitettu keväällä 2015. Kiitokset ohjaajalleni Heikki Huttuselle arvokkaista kommenteista sekä hyvästä ohjauksesta. Kiitokset perheelleni ja suvulleni kannustuksesta, rohkaisemisesta ja ymmärtämisestä. Kiitokset kotikylän väelle vapaa-ajan aktiviteeteista. Kiitokset myös kaikille muille tähän työhön osallistuneille ja aikaisemmille opettajilleni. Tampereella, 17.5.2015 Eetu Kuusisto

iv SISÄLLYSLUETTELO 1. JOHDANTO... 1 2. KUVA-ANALYYSI JA LUOKITTELU... 3 2.1 Piirteiden laskeminen... 3 2.2 Neuroverkot... 4 2.3 Random forest... 7 2.4 Tukivektorikone... 8 2.5 Luokittelutarkkuuden arviointi... 10 3. AINEISTO JA TOTEUTUS... 12 4. TULOKSET... 14 4.1 Piirteiden vaikutus luokittelutulokseen... 14 4.2 Luokittimen vaikutus luokittelutulokseen... 16 5. YHTEENVETO... 21 LÄHTEET... 22

v LYHENTEET JA MERKINNÄT HCI HOG ICPR MAE SVM TUT UoCTTI Ihmisen ja koneenvälinen vuorovaikutus. engl. Human-Computer Interaction Reunahistogrammeihin perustuva piirre. engl. Histogram of Oriented Gradients Kansainvälinen hahmontunnistus konferenssi. engl.international Conference on Pattern Recognition Absoluuttinen keskivirhe. engl. Mean Absolute Error Tukivektorikone eli luokittelija, joka perustuu luokkien erottamiseen rajapinnan avulla. engl. Support Vector Machine Tampereen teknillinen yliopisto. engl. Tampere University of Technology Histogram of Oriented Gradients muunnelma

1 1. JOHDANTO Pään asennon tunnistaminen on ihmisille luonnollinen ja tärkeä kyky, joka vaikuttaa muun muassa ihmisten väliseen sosiaaliseen kanssakäymiseen. Siksi on luontevaa, että pään asentoa on viime aikoina pyritty lisääntyvissä määrin hyödyntämään ihmisen ja koneen välisessä vuorovaikutuksessa, tuomaan mukaan luonnollisemman kommunikointitavan. Jo nykyisin on kehitetty monia pään asentoa hyödyntäviä sovelluksia, kuten Oculus Rift sekä älykkäät ympäristöt, jotka seuraavat käyttäjän pään tilaa ja reagoivat siihen tarjoten käyttäjälle erilaisia aputoimintoja. Lisäksi autoihin on kehitetty kuljettajan tilaa seuraavia järjestelmiä [1], jotka varoittavat kuljettajaa huomion herpaantumisesta, sekä autoja joiden ajovalot suuntautuvat kuljettajan päänasennon ja katseen mukaan [2]. Ihmisille pään asennon tunnistaminen on helppoa, mutta koneille pään asennon tunnistaminen on huomattavasti hankalampaa. Pään asennon tunnistus muodostaa tärkeän tutkimusalueen konenäössä. Yleisesti pään asento pyritään selvittämään tulkitsemalla pään suuntaa ja sijaintia, mikä on haastavaa erilaisten muuttuvien tekijöiden vuoksi. Esimerkiksi silmälasit ja kampaus voivat vaikeuttaa pään asennon tunnistusta. Myös fyysiset olosuhteet luovat oman haasteensa asennon tunnistukseen, sillä olosuhteiden vaihtelu tuo mukanaan kuviin erilaisia muuttujia. Konenäön alalla on viime aikoina keskitytty erityisesti nopean ja tarkan pään asennon tunnistusmenetelmän kehittämiseen. Tässä työssä tutkitaan pään asennon tunnistamista kuvasta Histogram of Oriented Gradients -piirteiden (HOG) perusteella käyttäen arvioinnissa tukivektorikonetta, neuroverkkoa sekä random forest -luokitinta. Erityisesti työssä perehdytään HOG-piirteiden, sekä eri luokittimien parametrien valintaan sekä näiden vaikutukseen asennon arvion tarkkuudessa. Työssä kuvataan piirteiden muodostamisen ja luokituksen toimintaperiaatteet sekä näiden menetelmien taustalla olevat teoriat. HOG-piirteiden irrotus on alun perin Navneet Dalalin ja Bill Triggsin kehittämä menetelmä ihmisten tunnistamiseen kuvista [3]. Menetelmää on myöhemmin sovellettu onnistuneesti myös moniin muihin konenäköön liittyviin ongelmiin. Pään asennon tunnistamisessa HOG-piirteitä on sovellettu onnistuneesti useiden eri ryhmien toimesta ja muun muassa Tampereen teknillisellä yliopistolla järjestetty maailmanlaajuinen TUT Head Pose Estimation Challenge keräsi runsaasti osallistujia [4].

Työn alussa esitellään lyhyesti HOG-menetelmän, sekä tukivektorikoneen, neuroverkon ja random forest -luokittimien teoriaa. Tämän jälkeen siirrytään toteutuksen ja käytetyn aineiston kuvaamiseen. Luvussa 4 tarkastellaan ja vertaillaan eri parametreilla ja menetelmillä saatuja tuloksia. Lopussa esitetään johtopäätökset ja lyhyt yhteenveto työstä. 2

3 2. KUVA-ANALYYSI JA LUOKITTELU Tässä luvussa käsitellään pään asennon tunnistuksessa käytettyä piirteiden erottelumenetelmän, piirteiden luokittelumenetelmien sekä tulosten arviointimenetelmien teoriat omissa alaluvuissaan. Ensimmäisenä tarkastellaan piirteiden laskemista, tämän jälkeen perehdytään piirteiden pohjalta tapahtuvan luokittelun toimintaperiaatteisiin eri menetelmillä. Lopuksi tarkastellaan vielä luokittelun arviointimenetelmiä. 2.1 Piirteiden laskeminen Tässä työssä pään asennon tunnistaminen perustuu Histograms of Oriented Gradientspiirteisiin. Käytetty menetelmä perustuu normalisoitujen reunahistogrammien muodostamiseen kuvan gradienttien suunnista. Periaatteena on laskea kuvasta tarkasteltavan kohteen muoto. Kuvan 1 lohkokaaviossa on esitettynä HOG-piirteiden laskemisen eri vaiheet UoCTTI muunnelman mukaisesti [5]. Kuvassa 2 on esitetty millaiset HOGpiirteet saadaan laskettua esimerkkikuvasta. Värin ja gamman normalisointi Gradienttien laskenta Tekstuurienergian laskenta Paikallinen normalisointi lohkoittain Piirrevektorien laskenta Piirrevektorien normalisointi Kuva 1. Piirteiden muodostuksen vaiheet. Piirteiden laskemisessa käsiteltävä kuva ensin normalisoidaan värin ja gamman suhteen, minkä jälkeen kuva jaetaan pienempiin osiin, niin sanottuihin soluihin. Jokaiselle kuvapisteelle solussa lasketaan paikallinen yksiulotteinen histogrammi gradienttien suunnista ja reunan suunnista. Valaistuksen suhteen paremman invarianssin saamiseksi saadut arvot tavallisesti vielä normalisoidaan kontrastin suhteen. Tämä tapahtuu laskemalla paikallisten histogrammien energia useamman ympäröivän solun alueelta ja normalisoimalla kohdesolun arvot saadulla tuloksella [3]. Jokaisen solun histogrammi tallennetaan vektoriin, jolloin HOG-piirrevektori on valmis.

4 Kuva 2. Esimerkkikuva ja HOG-piirteet. Tässä työssä käytettiin alkuperäisen HOG menetelmän UoCTTI muunnelmaa. Muunnelma toimii pääpiirteissään kuteen alkuperäinenkin menetelmä, mutta gradienttien lisäksi solun ympäristöstä lasketaan myös tekstuurienergia [5]. 2.2 Neuroverkot Kun kuvasta on laskettu HOG-piirrevektori, sitä käytetään luokittimien opetusdatana. Tässä työssä keskitytään kolmeen erilaiseen luokittimeen: neuroverkkoon, random forest -luokittelijaan ja tukivektorikoneeseen. Neuroverkot kattavat käsitteenä monia erilaisia oppimismalleja ja metodeja, mutta tässä työssä on keskitytty käyttämään pääasiassa yksinkertaista yhden piilotason (engl. single hidden layer) neuroverkkoa. Tämän lisäksi tutkitaan myös kahden piilotason neuroverkkoa. Perusperiaatteeltaan neuroverkot ovat epälineaarisia tilastollisia malleja, joita kuvataan yleensä kaksitasoisella regressio- tai luokittelumallilla, kuten kuvassa 3 on esitetty [6].

5 Kuva 3. Neuroverkon malli. Kuten nimestä voi päätellä, neuroverkkotutkimuksen pohjana on ihmisaivojen malli, jotka pyrittiin toteuttamaan keinotekoisesti tietokoneilla. Kuten biologinen hermosto, myös luokittelussa käytettävät neuroverkot koostuvat neuroneista. Neuronit toimivat verkossa pieninä itsenäisinä laskentayksikköinä, jotka koostuvat synapseista, summaajasta ja aktivaatiofunktiosta, kuten kuvassa 4 on havainnollistettu. Kuva 4. Neuroni. Summaaja laskee yhteen kaikki neuronin sisääntuloihin eli synapseihin saapuvat herätteet, joilla voi olla erilaisia kytkentäkohtaisia painokertoimia. Sisääntulojen summaan lisätään tavallisesti vielä vakiotermi (engl. bias), minkä jälkeen saatu tulos syötetään aktivaatiofunktioon, joka laskee neuronin ulostulosignaalin. Aktivaatiofunktiona voi olla esimerkiksi logistinen funktio σ(v) = 1/(1 + e v ), missä v on funktion saama heräte. Logistisen funktion vaste on esitetty kuvassa 5.

6 Matemaattisesti neuronin malli voidaan kuvata seuraavasti: Z m = σ(b m + α m T X m ), m = 1,, M (2.1.) missä Z m on neuronin ulostulo, σ on aktivaatiofunktio, b 0m on vakiotermi, α m T on synapsin painokerroin, X m on edellisen kerroksen neuronin ulostulovektori tai neuroverkon syötevektori, m on neuronin indeksi ja M on neuronien lukumäärä [6]. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0-6 -4-2 0 2 4 6 Kuva 5. Logistisen funktion vaste. Oppimismenetelmä neuroverkoissa on takaisinlevitysmenetelmä (engl. backpropagation). Takaisinlevitysmenetelmä algoritmi opettaa neuroverkon opetusjoukon piirteiden ja tunnettujen luokkien pohjalta. Opetus tapahtuu antamalla neuroverkolle opetusjoukon piirteitä ja laskemalla aloituskertoimilla ulostulo. Saatua ulostuloa verrataan haluttuun ulostuloon ja näiden pohjalta lasketaan virhe. Virheen pohjalta neuroverkon kertoimia muutetaan ja ulostulo lasketaan uudelleen. Virheen minimoinnissa etsitään niin sanottu loss function gradientin minimi kohtaa laskeutumalla satunnaisesta kohdasta lähtien alaspäin gradientissa. Kuvassa 6 on havainnollistettu kaksiulotteisella mallilla miten laskeutumisen satunnainen aloituskohta vaikuttaa tulokseen. Myös laskeutumisessa käytetty laskeutumisväli vaikuttaa lopputulokseen, esimerkiksi aivan pohjalle voi olla mahdotonta päästä, mikäli hyppy on liian suuri. Gradientilla laskeutumista jatketaan kunnes neuroverkon ulostulon ja tavoitellun ulostulon välinen virhe ei enää pienene.

7 2.3 Random forest Kuva 6. Havainnollistus gradientin minimin etsimisestä. Random forest on viimeaikoina suosiota saavuttanut koneoppimismenetelmä, joka esiteltiin ensimmäisen kerran vuonna 2001 Leo Breimanin artikkelissa Random Forests [7]. Menetelmän perustuu päätöspuihin, joista muodostetaan nimenmukaisesti metsä, eli opetusaineistosta luodaan useita erilaisia päätöspuita. Päätökset random forest muodostaa antamalla luokiteltavan datan jokaiselle päätöspuulle ja äänestämällä puiden kesken suosituinta luokkaa. Päätöspuu on yleinen koneoppimismenetelmä, jossa tavoitteena on luoda puumainen malli, joka ennustaa annetun aineiston luokan. Puussa jokaisessa solmu kohdassa tehdään vertailu jonkin annetun piirteen perusteella. Vertailun perusteella tehdään päätös mihin suuntaan puussa edetään opitun säännön mukaisesti. Puussa edetään päätöksien mukaan kunnes päästään puun loppuun. Esimerkiksi kuvassa 7 on kuvattu yksinkertainen päätöspuu, jossa päätellään vallitseva vuodenaika maassa olevan lumen ja lämpötilan pohjalta. Ensimmäisenä tarkastellaan onko maassa lunta, jos maassa on lunta puu antaa vastaukseksi talvi. Mikäli massa ei ole lunta, siirrytään puussa eteenpäin seuraavaan solmukohtaan, jossa tarkastellaan lämpötilaa. Mikäli lämpötila on yli 10 astetta, tulee vastaukseksi kesä ja jos lämpötila on alle 10 astetta tulee vastaukseksi kevät. Kuva 7. Yksinkertainen päätöspuu.

8 Päätöspuiden yhdistämisellä (engl. boosting) metsäksi pyritään estämään ylioppimista, sillä yksittäiset päätöspuut oppivat annetun opetusmateriaalin herkästi liian hyvin [5]. Periaatteena on luoda paljon heikkoja luokittimia, jotka sitten muunnetaan yhdeksi vahvemmaksi luokittimeksi ja näin vähentää ylioppimista ja varianssia. Päätöspuiden määrän lisäksi random forest -luokittimissä ylioppimista estetään myös valikoimalla opetusaineistosta satunnaisia näytteitä. Satunnaisotoksen valinta tehdään käytännössä niin, että jokainen otos valitaan koko aineistosta (engl. sampling with replacement), jolloin osa päätöspuista saa samojakin näytteitä. Lisäksi valituista näytteistä valitaan satunnaisesti luokitteluun vaikuttavat piirteet, mikä mahdollistaa useampia erilaisia päätöspuita. Random forest -luokittimen opettamiseen voidaan käyttää monia erilaisia algoritmeja kuten ID3, CART, CHAID sekä ID3:sta kehitetty C4.5. Pääpiirteissä random forest -algoritmi on pseudokoodina seuraava: 1. Valitaan satunnaisotos opetusaineistosta yksittäisen puun rakentamista varten. 2. Satunnainen päätöspuu rakennetaan solmu solmulta valitsemalla satunnaisesti M:stä piirteestä n piirrettä ja muodostamalla paras mahdollinen jako. 3. Luotu puu kasvatetaan täyteen mittaansa. 4. Toistetaan vaiheet 1.-3. kunnes on kasvatettu N puuta. 5. Kun puita on kasvatettu N kappaletta, luokitellaan annettu aineisto siihen luokkaan joka on saanut eniten ääniä. 2.4 Tukivektorikone Tukivektorikone eli SVM (engl. support vector machine) on lineaarinen luokitinmalli, joka perustuu kahden näytejoukon erottamiseen sovittamalla päätöstaso näiden väliin [8]. Tukivektorikoneen toiminta idea esitettiin jo 60-luvulla, mutta suurempaan suosioon se nousi vasta 90-luvulla, kun Bernhard Boser, Isabelle Guyon ja Vladimir Vapnik keksivät hyödyntää kerneltemppua (engl. kernel trick) joukkojen erottamisessa. Kerneltempussa näytejoukkoa käsitellään kernelfunktiolla, jonka avulla näytejoukko kyetään luokittelemaan paremmin lineaarisesti. Kernelfunktioita on useita erilaisia ja esimerkiksi tässä työssä käytettiin lineaarista kernelfunktiota k(x, y) = x T y + c. Kuvassa 8 on esitetty miten kernelfunktiota voidaan hyödyntää yksinkertaisessa yksiulotteisessa tapauksessa joukkojen erottamiseen. Kuvan tapauksessa pisteille voidaan antaa lukuarvot -1, 0 ja 1, joita ei voida yhdellä lineaarisella tasolla erottaa. Kernelfunktion avulla pisteet voidaan kuitenkin kuvata projisoituina pisteisiin -1,1; 0,0 ja 1,1. Näin projisoidut pisteet voidaan erottaa lineaarisella päätöstasolla.

9 Kuva 8. Kernelfunktion käyttö joukkojen erottamisessa. Käytännössä kerneltemppu tekee erottelun implisiittisesti eli todellisuudessa sisääntuloja ei projisoida, vaan erottelu tapahtuu korvaamalla sisätulon kernelillä. Näin erilaisten näytejoukkojen luokkarajat saadaan epälineaarisiksi ja itse erottelu voidaan toteuttaa lineaarisesti päätöstasoilla. Hyödyntämällä kernelfunktiota joukkojen erottelussa, saadaan luotua yhteys lineaarisen ja epälineaarisen menetelmän välille. Päätöstasoon perustuvasta erottelusta johtuen tukivektorikoneella useamman luokan erotteluun on kaksi erilaista mallia. Ensimmäinen malli perustuu yhden luokan vertaamiseen kaikkia muita luokkia vastaan (engl. one-versus-all). Tällöin näytteen sopivuutta kuhunkin jokaiseen testataan erikseen. Testaus suoritetaan siten, että valittua luokkaa verrataan kaikkien muiden luokkien muodostamaa suurempaa luokkaa vastaa ja saaduista tuloksista valitaan parhaan varmuuden saanut tulos. Tällöin on tärkeää, että tukivektorikone on säädetty oikein, jotta eri luokkien saamat tulokset ovat vertailukelpoisia keskenään, eikä muutama yksittäinen luokka pääse dominoimaan valintaa. Toinen mahdollinen luokittelumalli on verrata yhtä luokkaa kerrallaan kaikkiin muihin luokkiin (engl. one-versus-one). Tällöin luokittelun tulos määräytyy sen mukaan mikä luokka saa eniten voittoja näissä vertailuissa. Ongelmana tässä menetelmässä on sen laskennallinen vaativuus, sillä jokaisen luokan vertaaminen jokaiseen muuhun luokkaan voi etenkin suurilla luokkamäärillä vaatia paljon laskentatehoa. Kuva 9. Päätöstason etsiminen.

10 Pelkkä satunnaisen päätöstason valitseminen ei kuitenkaan riitä, vaan tukivektorikone pyrkii löytämään mahdollisimman suuren marginaalin päätöstason ja luokkien välille. Kuvassa 9 on esitetty miten kahden pistejoukon välille hahmotellaan toimiva päätöspinta. Ruskea taso T1 ei kelpaa päätöstasoksi, koska se ei kykene erottelemaan pistejoukkoja. Vihreä taso T2 sen sijaan kykenee erottelemaan pistejoukot, mutta marginaali pisteiden ja tason välillä jää varsin pieneksi. Violetti T3 taso sen sijaan kykenee luokittelemaan kaikki pisteet oikein ja huomattavasti suuremmalla marginaalilla. T3 päätöstason ympärille on vaalean sinisillä katkoviivoilla hahmoteltu päätöstason tukivektorit, joiden etäisyyttä 2 w (kuvassa 9 vaaleansininen viiva) pyritään minimoimaan. Tämä voidaan matemaattisesti esittää optimointi ongelmana, jonka tukivektorikone yrittää ratkaista. Yksinkertaistetusti yhtälö on seuraava: min w,ξ 1 2 w 2 + c ξ (2.2) missä w on luokittimen päätöstaso, c on cost parametri ja ξ on väärinluokittuvan näytteen etäisyys päätöspintaan [8]. Cost parametri vaikuttaa tukivektorikoneen optimointiin säätäen kuinka paljon väärin luokittuvilla näytteillä on merkitystä luokittimeen. Tukivektorikoneen opetusalgoritmi on verrattain monimutkainen, mutta siihen voi tutustua esimerkiksi viitteessä [8]. 2.5 Luokittelutarkkuuden arviointi Luokittelutarkkuuden arviointi on yleisesti melko haastavaa, sillä opetusjoukosta laskettuna virhe on usein liian optimistinen. Näin ollen on käytettävä muita menetelmiä virheen arviointiin. Lisäksi pään asennon tunnistuksessa haasteena on asennon tarkkuus ja sen suhteellisuus eri ihmisille. Esimerkiksi, kun pään asennon pitäisi olla suoraan vasempaan saattaa osa ihmisistä kääntää päätään vasempaan vähemmän, kuin on tarkoitus. Tällöin myös silmien asento ratkaisee ja koehenkilön näkökulmasta pään asento saattaa olla oikea, vaikka ulkopuolisen tarkkailijan mielestä asento olisikin epätäydellinen. Yksi mahdollisuus estää opetusaineistoa vaikuttamasta luokittelun arviointiin on aineiston jakaminen opetus- ja testausaineistoon. Vieläkin paremman arvion luokittelun tarkkuudesta voi saada jakamalla opetusaineisto usealla eri tavalla. Tässä työssä luokittelun tulosten arvioinnissa hyödynnetään yleisesti käytössä olevaa ristiinvalidointia (engl. cross-validation), joka on muodostunut standardimenetelmäksi. Ristiinvalidoinnissa satunnainen osa opetusaineistosta jätetään pois käytettäväksi testauksessa, jotta luokittelussa voidaan käyttää dataa, joka ei ole vaikuttanut luokittelijan opetuksessa.

11 Luokitteluun käytettävä data jaetaan K määrään yhtä suuria lohkoja kuten kuvassa 10, minkä jälkeen jokaista lohkoa käytetään vuorollaan luokittimen arviointiin, samalla kun muita osia käytetään luokittimen opettamiseen. 1 2 3 4 5 Opetus Opetus Testaus Opetus Opetus Kuva 10. Ristiinvalidoinnin datajako K:n arvolla 5. Datan jakamista K osaan kutsutaan K-kertaiseksi ristiinvalidoinniksi (engl. K-fold cross-validation). Ristiinvalidointi antaa arvion luokitteluvirheestä ξ, joka on määritelty kaavalla seuraavasti: ξ = 1 K L(y K i=1 i, f K(i) (x i )) (2.3) missä f tarkoittaa mallia, joka on opetettu ilman osaa i {1,2,, K}. K:n arvoksi valitaan tavallisesti joko 5 tai 10. [4] Pääpiirteissä ristiinvalidointi algoritmi on pseudokoodina seuraava: 1. Jaetaan aineisto satunnaisesti k:hon yhtä suureen osaan. 2. Valitaan yksi osista testaukseen. 3. Opetetaan luokittelija opetukseen varatulla aineistolla. 4. Testataan luokittelijaa testaukseen varatulla aineistolla ja tallennetaan saadut tulokset. 5. Toistetaan vaiheet 2.-4. k kertaa, siten että jokainen aineiston osa toimii vuorollaan testi aineistona. 6. Lasketaan saaduista tuloksista keskiarvo.

12 3. AINEISTO JA TOTEUTUS Työssä käytettiin Pointing'04 ICPR (International Conference on Pattern Recognition) Workshopissa käytettyä Head Pose Image Databasea 1, joka koostuu viidestätoista kuvaryhmästä. Jokainen kuvaryhmä sisältää kaksi 93 kuvan sarjaa koehenkilöstä katsomassa eri suuntiin, eli yhteensä kuvia on 2790. Kuvajoukon koehenkilöiden etninen alkuperä ja sukupuoli vaihtelevat, minkä lisäksi osa heistä käyttää silmälaseja. Esikäsittelynä jokaisesta kuvasta on poistettu ylimääräinen tausta, jolloin kasvot ovat kuvan keskiössä. Kuva 11. Esimerkkikuva aineistosta. Kuvissa pään asento on jaettu vaaka- ja pystykomponentteihin, jotka vaihtelevat -90 ja 90 asteen välillä taulukon 1 mukaisesti. Negatiivinen pystysuuntainen kulma kuvaa alaspäin katsomista ja vaakasuuntainen negatiivinen kulma puolestaan kuvaa vasemmalle katsovaa koehenkilöä. Esimerkiksi kuvan 11 koehenkilön kohdalla pystysuuntaisen akselin kulma on -15 ja vaakasuuntainen kulma -45. Taulukko 1. Pään asennon kulmat. Pään asennon kulmat Pystysuuntainen akseli -90, -60, -30, -15, 0, 15, 30, 60, 90 Vaakasuuntainen akseli -90, -75, -60, -45, -30, -15, 0, 15, 30, 45, 60, 75, 90 Kuvaustilanteessa koehenkilöitä pyydettiin istumaan tuolille kameran eteen ja säätämään tuoli siten, että kamera näkyy suoraan edessä kuvan 12 mukaisesti. Tämän jälkeen heitä pyydettiin katsomaan huoneen seinille asetettuihin merkkeihin liikuttamatta silmiä. Merkit olivat asetettu siten, että koehenkilöt katsoivat vaakasuunnassa kolmeentoista ja pystysuunnassa yhdeksään kulmaan taulukon 1 mukaisesti. 1 Saatavissa: http://www-prima.inrialpes.fr/pointing04/data-face.html

13 Kuva 12. Kuvausjärjestely ylhäältäpäin kuvattuna. Työ toteutettiin MATLAB ohjelmiston versiolla R2014a, hyödyntäen pääasiassa ohjelman valmiina tarjoamia kirjastoja. Poikkeuksena HOG-piirteiden laskennassa käytettiin avoimen lähdekoodin VLFeat kirjaston 2 HOG-piirteiden laskemiseen tarkoitettua vl_hog funktiota. Lisäksi tukivektorikoneen kohdalla hyödynnettiin laajasti käytettyä avoimen lähdekoodin LIBSVM koneoppimiskirjastoa 3. Työssä jokainen opetusaineiston kuva ladattiin ohjelman muistiin samalla, kun aineiston kuvien tiedostonimistä kerättiin tiedot kuvien koehenkilöiden pään asennosta. Tämän jälkeen jokaisesta kuvasta laskettiin VLFeatin funktiolla HOG-piirrevektori. Saadulla piirrevektorilla suoritettiin päänasennon tunnistus neuroverkolla, random forestilla sekä tukivektorikoneella. Koska tavoitteena oli saada piirteistä kaksi kulmaa, jokaisesta luokittimesta opetettiin kaksi eri versiota, toinen vakkasuuntaisiin ja toinen pystysuuntaisiin kulmiin. Molemmat opetetut luokittimet saivat samat parametrit ja aineiston. Saatuja tuloksia arvioitiin 5-kertaisella ristiinvalidoinnilla MAE arvon perusteella. Luokittimia vertailtaessa kaikkia mahdollisia parametreja ja niiden yhdistelmiä ei testattu, vaan jokaisesta luokittimesta valittiin tutkittavaksi parametri, jonka vaikutusta asennon tunnistukseen tutkittiin. Poikkeuksena neuroverkkojen kohdalla testattiin piiloneuronien lisäämisen lisäksi myös miten piiloneuronitasojen lisääminen vaikuttaa luokitteluun. Testatut parametrit olivat seuraavat: Neuroverkko o Piiloneuroneiden lukumäärä o Tasojen lukumäärä Random forest o Päätöspuiden lukumäärä SVM o Cost parametri 2 Saatavissa: http://www.vlfeat.org/ 3 Saatavissa: http://www.csie.ntu.edu.tw/~cjlin/libsvm/

14 4. TULOKSET Tuloksissa on keskitytty pääasiassa vertailemaan HOG-piirteiden vaikutusta sekä luokittimia, eikä niinkään säätämään yksittäisiä parametreja tai luokittimia huippuunsa. Tuloksissa ilmenevät vaihtelut johtuvat pääsääntöisesti eri luokittimien opetuksessa olevasta satunnaisuudesta, minkä lisäksi myös ristiinvalidoinissa on mukana jonkin verran satunnaisuutta. Vertailukohtana tuloksissa toimii TUT Head Pose Estimation Challenge -kilpailun parhaiden ryhmien tulokset. 4.1 Piirteiden vaikutus luokittelutulokseen HOG-piirteiden osalta tutkittiin solun koon, sekä gradienttien mahdollisten suuntien määrän vaikutusta luokittelutulokseen. Kuvassa 13 on havainnollistettu testattujen parametrien vaikutusta piirrevektoreihin. Lisäksi parametrien vaikutusta HOG-piirteiden laskenta-aikaan mitattiin. Saadut ajat on esitetty kuvassa 14. Kuva 13. Parametrienvaikutus HOG-piirteisiin. a) esimerkkikuva. b) solun koko 9, gradienttisuuntien määrä 9. c) 30, 9. d) 20, 4. e) 20, 21. f) 12, 21.

MAE Suoritusaika (s) 15 250 HOG solun koko Gradienttien suuntien määrä 200 150 100 50 0 0 5 10 15 20 25 30 35 40 45 50 Kuva 14. HOG-parametrien vaikutus suoritusaikaan. Merkittävin suoritusaikaan vaikuttava tekijä HOG-piirteiden laskennassa on solun koko. Kun solujen koko pienenee, myös laskennan määrä lisääntyy, mikä näkyy suoraan laskenta-ajan kasvamisessa. Gradienttien suuntien määrän kohdalla puolestaan vaikutus suoritusaikaan on päinvastainen. Mitä enemmän suuntia on käytössä, sitä pidempään laskenta kestää. 7.5 7 Neuroverkko Random forest SVM 6.5 6 5.5 5 4.5 4 3.5 10 15 20 25 30 35 40 45 50 HOG solun koko Kuva 15. HOG-solun koon vaikutus luokittelu tulokseen. Testeissä solujen koon havaittiin vaikuttavan merkittävästi luokittelun tulokseen, kuten kuvassa 15 on esitetty. Solujen koon kasvattaminen tarkoittaa käytännössä vähemmän piirteitä kuvista, sekä nopeampaa piirteiden laskenta-aikaa. Liian pienet solut voivat

MAE 16 toisaalta aiheuttaa liiallista vaihtelua piirteisiin, kun taas liian suuret solut voivat kadottaa tarpeellista tietoa. Neuroverkon ja random forest -luokittimien kohdalla tuloksista voidaan havaita, että optimaalinen solun koko on noin 30. Liian pieni tai suuri solu aiheuttavat suurempaa virhettä, ja erityisesti neuroverkko kärsii suuremmista soluista. Tukivektorikoneen kohdalla puolestaan HOG-solun koko vaikuttaa hieman eri tavalla. Tukivektorikone pystyy hyödyntämään pienempiä soluja huomattavasti paremmin kuin neuroverkko tai random forest. Kuitenkin solujen kokoa kasvatettaessa yli kolmenkymmenen, alkaa tukivektorikoneen luokittelu tulos heikentyä, kun taas neuroverkko ja random forest saavuttivat parhaimpia tuloksiaan. 6.5 6 5.5 5 4.5 Neuroverkko Random forest SVM 4 3.5 0 5 10 15 20 25 Gradienttien suuntien määrä Kuva 16. Gradienttien mahdollisten suuntien määrän vaikutus luokittelutulokseen. Gradientti kulmien vaikutus luokittelu tulokseen ei ole yhtä suuri kuin solun koolla, mutta joitakin vaikutuksia on kuitenkin havaittavissa. Saadut tulokset on esitetty kuvassa 16. Kun mahdollisia gradienttikulmia on käytössä enemmän, saavat luokittimet myös enemmän tietoa kustakin solusta. Neuroverkon ja random forest luokittimen kohdalla on havaittavissa lievää tulosten heikentymistä suuntien kasvaessa, kun taas tukivektori koneen kohdalla tulokset pysyvät melko tasaisina alun suurien arvojen jälkeen. 4.2 Luokittimen vaikutus luokittelutulokseen Ennen testausta hypoteesina oli, että kaikki luokittimet pääsisivät kutakuinkin samalle tasolle. Testattaessa kuitenkin osoittautui, että tukivektorikone kykeni parhaiten luokittelemaan annetun aineiston. Neuroverkko puolestaan osoittautui hieman random forest - luokitinta paremmaksi, joskin tulokset vaihtelivat parametrien mukaan.

17 Vertailukohtana toimivassa TUT Head Pose Estimation Challenge -kilpailun tuloksissa parhaat ryhmät saavuttivat omilla menetelmillään noin 4,38-4,77 MAE virheen [4]. Kuitenkin erona tässä työssä saavutettuihin tuloksiin kilpailun ryhmät eivät saaneet itse suorittaa HOG-piirteiden irrotusta kuvista, vaan saivat käyttöönsä valmiiksi annetut arvot. Lisäksi kilpailun tuloksiin vaikutti huomattavasti myös datan jakautuminen opetus- ja testausdataan, joten kilpailuryhmien tulokset ovat enemmän viitteellisiä. Taulukko 2. Luokittimien MAE virheet. Sarakkeen paras tulos lihavoitu. Luokitin Vaakasuuntainen virhe Pystysuuntainen virhe Virhekeskiarvo SVM 4,93±0,43 2,64±0,48 3,87±1,28 Neuroverkko (20 piiloneuronia kahdella tasolla) Random forest (100 päätöspuuta) 5,37±0,49 4,02±0,47 4,69±0,84 6,97±0,37 5,56±0,63 6,27±0,89 TOP-6-median 5,04 3,35 4,20 Taulukossa 2 on yhteenvetona luokittelusta saatuja tuloksia. Vertailuna TUT Head Pose Estimation Challenge kilpailun tuloksiin toimii TOP-6-median rivi, jossa on kerätty kilpailun kuuden parhaan joukkueen mediaani tulos. Kuten taulukosta 2 nähdään, tässä työssä saadut tulokset ovat melko lähellä kilpailun parhaiden tiimien tuloksia ja tukivektorikoneen tapauksessa jopa parempia. Erityisesti pystysuuntaisen kulman kohdalla tukivektorikone saavuttaa todella hyviä tuloksia verrattuna kilpailussa saavutettuihin tuloksiin. Vaakasuuntaisen kulman osalta tukivektorikone saavuttaa myös hyviä tuloksia verrattuna kilpailussa olleisiin tuloksiin, häviten ainoastaan neuroverkkoon perustuneelle luokittelijalle, joka saavutti MAE-virheen 4,78 [4].

MAE MAE 18 6.4 6.2 6 5.8 5.6 Pystysuunta Vaakasuunta Keskiarvo 5.4 5.2 5 4.8 4.6 4.4 100 200 300 400 500 600 700 800 900 1000 Random forest puiden määrä Kuva 17. Puiden määrän vaikutus random forest -luokittimen tuloksiin. Random forest luokitimen kohdalla tutkittiin päätöspuiden määrän vaikutusta luokittelutulokseen. Kuten kuvasta 17 näkyy, puiden määrällä on selkeästi merkitystä saatuihin luokittelutuloksiin. Lisäämällä päätöspuiden määrää luokittelu tarkkuus paranee jonkin verran, joskin samalla myös suoritusaika kasvaa. 5.5 5 4.5 4 Pystysuunta Vaakasuunta Keskiarvo 3.5 3 2.5 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 SVM cost Kuva 18. SVM cost parametrin vaikutus luokittelutulokseen.

MAE 19 Tukivektorikoneen kohdalla tarkastelussa oli cost parametri, joka vaikuttaa tukivektorikoneen optimointiin säätäen kuinka paljon väärin luokittuvilla näytteillä on merkitystä luokitteluun kuten luvussa 2.4 on esitetty. Tässä työssä parametrin vaikutusta tutkittiin hieman tavallista suppeammin, tutkien parametria vain arvoilla väliltä 0.1 10 kymmenyksen välein, kun tavallisesti cost parametria kasvatetaan kymmenen potensseina. Saadut tulokset ovat esitettynä kuvassa 18. Kuitenkin jo näistä tuloksista on nähtävissä, että minimivirhe saavutetaan kun parametrin arvoksi valitaan hieman yli yksi. Myöskään tulosten hajontaan cost parametrin valinnalla ei vaikuta olevan juurikaan vaikutusta. 7.5 7 Pystysuunta Vaakasuunta Keskiarvo 6.5 6 5.5 5 4.5 4 10 20 30 40 50 60 70 80 90 100 Piiloneuronien lukumäärä Kuva 19. Piiloneuronien määrän vaikutus neuroverkon luokittelutulokseen. Neuroverkon osalta tutkittiin piiloneuronien määrän vaikutusta luokittelutulokseen. Saaduista tuloksista havaitaan piiloneuronien määrän vaikuttavan hieman yllättävästi luokittelutulokseen, heikentäen tulosta, kun piiloneuronien määrää kasvatetaan. Saadut tulokset ovat esitetty kuvassa 19. Tuloksen heikentyminen johtuu pääasiassa vaakasuuntaisista kulmista, joiden kohdalla neuronimäärän kasvattaminen heikentää tulosta. Pystysuuntaisilla kulmilla luokittelun tulos ei juuri heikkene piiloneuronien kasvaessa, vaan jopa paranee paikoittain. Lisättäessä toinen piiloneuronitaso neuroverkon luokittelu tarkkuus paranee jonkin verran, kuten kuvassa 20 on esitetty. Muutoin tulokset vastaavat melko paljon yhdellä tasolla saatuja tuloksia.

MAE 20 7 6.5 Pystysuunta Vaakasuunta Keskiarvo 6 5.5 5 4.5 4 3.5 10 20 30 40 50 60 70 80 90 100 Piiloneuronien lukumäärä kahdella tasolla Kuva 20. Kahden tason piiloneuronien määrän vaikutus luokittelutulokseen. Kuten saaduista tuloksista on nähtävissä, vaakasuuntaisen kulman luokittelu on vaikeampaa, kuin pystysuuntaisenkulman. Tämä johtuu pääasiassa vaakakulmien suuremmasta mahdollisesta määrästä, jolloin luokittimilla on enemmän mahdollisuuksia erehtyä. Taulukko 3. Luokitimien suuntaa-antavia suoritusaikoja. Sarakkeen paras tulos lihavoitu. Luokitin Opetus 2232 kuvaa (s) Luokittelu 558 kuvaa (s) Neuroverkko (20 piiloneuronia) 4 12 Random forest (100 päätöspuuta) 46 2 SVM (cost = 1) 5 2 Opetuksen suoritusaikoja vertailtaessa neuroverkko oli nopein, joskin myös tukivektorikone suoriutui opetuksesta nopeasti. Hitain menetelmä oli random forest, jonka opetus kesti selkeästi pidempään kuin kahden muun luokittimen. Luokitteluajoissa sen sijaan neuroverkko oli selkeästi hitain. Random forest ja tukivektorikone puolestaan olivat lähes yhtä nopeita luokittelussa. Kaikkien luokittimien kohdalla parametrien valinta vaikuttaa jonkin verran suoritusaikaan. Parametrien lisäksi myös laitteisto, jolla opetus ja luokittelu suoritetaan vaikuttaa suoritusnopeuteen. Suuntaa-antavia suoritusaikoja on kirjattu taulukkoon 3.

21 5. YHTEENVETO Tässä työssä tavoitteena oli tutkia HOG-piirteiden vaikutusta pään asennon luokitteluun. Lisäksi selvitettiin eri luokittimien ja niiden parametrien vaikutusta asennon tunnistukseen. HOG-piirteillä havaittiin myös olevan merkittäviä vaikutuksia luokittelu tulokseen. Tukivektorikoneen kohdalla pieni solunkoko tuotti parhaat tulokset, kun taas neuroverkko ja random forest -luokittimet vaativat selvästi suurempia soluja saavuttaakseen hyviä tuloksia. Gradienttien suuntien määrällä puolestaan ei ollut yhtä suurta vaikutusta tuloksiin. Kulmien suhteen suurin merkitys oli sillä, että niitä oli riittävästi, eli noin 5, jolloin luokittelijat saivat riittävästi aineistoa. Kun kulmia oli käytössä riittävästi tulokset eivät tukivektorikoneen kohdalla enää merkittävästi muuttuneet. Neuroverkko ja random forest luokittimien tulokset kärsivät hieman, mikäli kulmia oli käytössä runsaasti. Ennen testausta hypoteesina oli, että kaikki luokittimet pääsisivät kutakuinkin samalle tasolle. Testattaessa kuitenkin osoittautui, että tukivektorikone kykeni parhaiten luokittelemaan annetun aineiston. Neuroverkko puolestaan osoittautui hieman random forest - luokitinta paremmaksi, joskin tulokset vaihtelivat parametrien mukaan. Saadut tulokset olivat hyviä verrattuna muualla saavutettuihin tuloksiin ja tukivektorikone saavutti jopa parempia tuloksia. Tuloksissa vaakasuuntaisten kulmien havaittiin olevan huomattavasti vaikeampia luokitella, mikä osaltaan johtui useammasta mahdollisesta kulmasta suhteessa pystysuuntaisiin kulmiin. Rajallisen ajan sekä laskentatehon vuoksi kaikkia mahdollisia parametreja tai parametriyhdistelmiä ei kyetty käymään läpi, minkä vuoksi tuloksia on luultavasti jonkin verran mahdollista parantaa. Esimerkiksi neuroverkoilla yhdistelemällä erikokoisia piiloneuronitasoja voisi olla mahdollista luoda malli, joka luokittelisi pään asennon vieläkin paremmin. Laskentatehon kasvaessa voi lisätä päätöspuiden määrää random forest luokittelijassa, jolloin tulokset todennäköisesti paranevat. Toisaalta myös tukivektorikonetta on mahdollista säätää vieläkin paremmaksi ja esimerkiksi erilaisilla kernelfunktioilla voi saavuttaa vielä parempia tuloksia. Lisäksi erilaisia opetusdataan kohdistuvia augmentointi menetelmiä hyödyntämällä lienee mahdollista parantaa nyt saatuja tuloksia, vaikka tässä työssä ei augmentointi menetelmiä käytettykään. Esimerkiksi peilaamalla, vääntelemällä tai rajaamalla opetusaineiston kuvia, saadaan lisättyä luokittimien opetukseen käytettävän datan määrä.

22 LÄHTEET [1] S. Borhade, M. Shah, P. Jadhav, D. Rajurkar, A. Bhor, Advanced driver assistance system, Sensing Technology (ICST), 2012. Sixth International Conference on, pp. 718-722. [2] S. Hucknall, Guiding Light: Eye-Tracking Technology from Opel/Vauxhall, [WWW]. [viitattu 26.4.2015] Saatavissa julkisesti: http://media.gm.com/media/gb/en/vauxhall/news.detail.html/content/pages/news/gb/en/ 2015/vauxhall/03-19-eye-tracking-technology.html [3] N. Dalal, B. Triggs, Histograms of oriented gradients for human detection, Computer Vision and Pattern Recognition, CVPR 2005. IEEE Computer Society Conference on vol. 1, pp. 886-893. [4] H. Huttunen, K. Chen, A. Thakur, A. Krohn-Grimberghe, O. Gencoglu, X. Ni, M. Al-Musawi, L. Xu, H. Jacob van Veen, Computer Vision for Head Pose Estimation: Review of a Competition, 2014. [5] P.F. Felzenszwalb, R.B. Girshick, D. McAllester, D. Ramanan, Object Detection with Discriminatively Trained Part-Based Models, Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2010, Vol. 32, No. 9, pp. 1627-1645. [6] T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning, Second Edition ed. Springer New York, 2009. [7] L. Breiman, Random Forests, Machine Learning, 2001, Vol. 45, No. 1, pp. 5-32. [8] C. Chang, C. Lin, LIBSVM: A Library for Support Vector Machines, 2013.