32
AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Kandidaatintyö Tarkastaja: lehtori Heikki Huttunen Jätetty tarkastettavaksi 8. toukokuuta 2011

AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

AHTI OKSANEN

SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA

Kandidaatintyö

Tarkastaja: lehtori Heikki Huttunen Jätetty tarkastettavaksi 8. toukokuuta 2011

Page 2: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

ii

TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn ja tietoliikennetekniikan koulutusohjelma OKSANEN, AHTI: SIFT-menetelmä piirteensovituksessa Kandidaatintyö, 27 sivua Toukokuu 2011 Pääaine: Signaalinkäsittely Tarkastaja: lehtori Heikki Huttunen

Avainsanat: piirteentunnistus, piirteensovitus, SIFT, skaala-avaruus Tässä kandidaatintyössä tarkastellaan useissa konenäköjärjestelmissä käytettyjen piir-

teentunnistuksen sekä -sovituksen yleisimpiä ominaisuuksia sekä ongelmakohtia. Lisäk-

si työssä keskitytään tarkastelemaan David Lowen kehittämän SIFT-

piirteentunnistusalgoritmin toimintaa sekä teorian että käytännön näkökulmasta.

Tietokoneiden laskentatehon jatkuvasti kasvaessa piirteentunnistuksen sovellus-

kohteita syntyy koko ajan lisää, ja uusia tehokkaampia sekä luotettavampia algoritmeja

pyritään jatkuvasti kehittämään täyttämään sovelluksien tarpeet. Työn tarkoituksena on

selvittää SIFT-menetelmän soveltuvuus piirteen- sekä kuvansovituksessa testaamalla

algoritmia niin luotettavuuden kuin tehokkuudenkin kannalta. Lisäksi pyritään arvioi-

maan algoritmin kohdalle asetettuja väitteitä SIFT- piirteiden riippumattomuudesta sekä

häiriönsietokyvystä.

Page 3: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

iii

ALKUSANAT

Tämä kandidaatintyö on kirjoitettu osana Tampereen teknillisen yliopiston signaalinkä-

sittelyn laitoksen kandidaatintyöseminaaria keväällä 2011.

Haluaisin kiittää työni ohjaajana ja tarkastajana toiminutta lehtori Heikki

Huttusta, joka avusti työn etenemisessä esittämällä rakentavia kommentteja ja oh-

jaamalla työn kulkua oikeaan suuntaan. Lisäksi kiitän kaikkia niitä läheisiä ihmisiä,

jotka ymmärsivät sen tosiasian, että joskus kandidaatintyön kirjoittaminen nousee

prioriteettilistalla sosiaalisen elämän edelle.

Tampereella, 8. toukokuuta 2011

Ahti Oksanen

Page 4: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

iv

SISÄLLYS

1 Johdanto .................................................................................................................... 1

2 Piirteensovitus .......................................................................................................... 3

3 SIFT .......................................................................................................................... 6

3.1 SIFT yleisesti ................................................................................................... 6

3.2 Skaala-avaruuden ääriarvot ............................................................................. 7

3.2.1 Skaala .................................................................................................. 7

3.2.2 Skaalariippumattomuus ...................................................................... 8

3.2.3 Skaala-avaruuden muodostaminen .................................................... 8

3.2.4 Gaussin erotuskuvien laskeminen .................................................... 10

3.2.5 Ääriarvojen etsiminen ...................................................................... 11

3.3 Avainpisteiden päättäminen .......................................................................... 11

3.3.1 Avainpiste-ehdokkaiden paikallistaminen ...................................... 11

3.3.2 Reunapisteiden hylkääminen ........................................................... 13

3.4 Avainpisteiden asennon määrittäminen ........................................................ 14

3.5 Piirrevektorin luominen ................................................................................. 16

4 SIFT-menetelmän testaus ...................................................................................... 18

4.1 Avainpisteiden määrä .................................................................................... 18

4.2 Suorituskyky ................................................................................................... 19

4.3 Piirteen- / kuvansovitus ................................................................................. 20

4.3.1 Kohinasietoisuus ............................................................................... 21

4.3.2 Kiertoriippumattomuus .................................................................... 22

4.3.3 Skaalariippumattomuus .................................................................... 23

5 Johtopäätökset ........................................................................................................ 25

Lähteet ............................................................................................................................ 26

Page 5: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

v

TERMIT JA SYMBOLIT

FPS Frames per second, kehysnopeus – näytölle sekunnissa piir-

rettyjen kuvien määrä

MATLAB Numeeriseen laskentaan suunniteltu ohjelmisto ja ohjel-

mointikieli (Matrix Laboratory)

Pikseli Bittikarttagrafiikassa esiintyvä kuvan pienin osa, kuvapiste.

Merkitään usein lyhenteellä px

RGB Väriavaruus, jossa eri värejä muodostetaan sekoittamalla

keskenään punaista (red), vihreää (green) ja sinistä (blue)

SIFT Scale-invariant feature transform, piirteentunnistusalgoritmi

Funktion f osittaisderivaatta muuttujan xi suhteen

Det(H) Matriisin H determinantti

Tr (H) Matriisin H jälki

ℝ Reaalilukujen joukko

| x | Muuttujan x itseisarvo

|| x || Vektorin x euklidinen normi

σ 1° Todennkäköisyysjakauman keskihajonta, satunnaismuut-

tujan hajonnan mitta. 2° Skaalan arvo

σ² Todennäköisyysjakauman varianssi, vrt. σ

∗ Konvoluutio-operaattori

Page 6: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

1

1 JOHDANTO

Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se

kuvaa parhaiten prosessia, jossa kahdesta eri kuvasta, piirteentunnistuksen [1, s.

183–188] avulla, tunnistettuja piirteitä, eli kuvasisältöä parhaiten kuvaavia ominai-

suuksia, vertaillaan ja sovitetaan toisiinsa, tarkoituksena löytää vastaavuuksia [2, s.

19]. Yksi yleisimmistä piirteensovituksen sovelluskohteista on konenäköjärjestel-

missä usein käytetty piirteenseuranta (feature tracking), joka tarkoittaa seurattavasta

kohteesta irrotettujen piirteiden paikan määrittämistä tietyillä ajanhetkillä [1, s. 208].

Piirteenseuranta voidaankin usein mieltää tietokoneen näkökulmaksi liikkuvan koh-

teen seurannasta sillä ihmisen käsitys kohteen seuraamisesta perustuu objektiin ko-

konaisuutena eikä niinkään siinä esiintyviin yksittäisiin ominaisuuksiin tai piirteisiin

[3, s. 3]. Yleisemmällä tasolla voidaankin puhua objektinseurannasta (object

tracking), eli liikkuvan objektin paikantamisesta.

Tietokoneiden laskentatehon jatkuvan kasvun sekä kameroiden laatu- ja hin-

takehityksen myötä kiinnostus objektin- ja piirteenseurannan sovellusmahdollisuuk-

sia kohtaan on lisääntynyt huimasti. Piirteenseurannan sovelluksia käytetäänkin

useilla eri aloilla teollisuudesta lääketieteeseen; esimerkiksi robottiavusteinen kirur-

gia [4, s. 2] sekä lentokoneen navigointi maan pinnanmuotoihin perustuen [5, s. 41]

voidaan toteuttaa tietokonenäön ja piirteenseurannan avulla. Tutkimuskohteena piir-

teenseuranta on ollut jo pitkään yksi haastavista digitaalisen kuvankäsittelyn sovel-

luksista; useiden eri muuttujien, kuten valaistuksen ja objektin asennon vaihtelu tar-

kasteluhetkien välillä hankaloittaa seurantaprosessia - käytetyn algoritmin täytyisi-

kin olla häiriönsietokykyinen mahdollisimman monelle muutokselle jotta seurannas-

ta saataisiin luotettavaa ja ennen kaikkea hyödyllistä. Erilaisia lähestymistapoja piir-

teenseurantaan on yritetty onnistuneestikin, mutta usein ongelmaksi on koitunut me-

netelmien yksipuolisuus; tietyissä olosuhteissa hyvin toimivia algoritmeja ei pystytä

soveltamaan erityyppisissä tilanteissa [6, s. 2].

Tässä kandidaatintyössä syvennytään tutkimaan David Lowen vuonna

1999 julkaisemaa piirteentunnistusalgoritmia SIFT (Scale-invariant feature trans-

form) [2] ja sen soveltuvuutta piirteensovitukseen. Vaikka SIFT onkin jokseenkin

uusi piirteentunnistusalgoritmi, se perustuu suureksi osaksi jo kauan käytössä ollei-

siin menetelmiin, joiden parhaimpia puolia SIFT sulavasti yhdistelee ja soveltaa;

mainittakoon esimerkiksi skaala-avaruus [7], Gaussin erotuskuvat ja kulmantunnis-

tus [8], jotka kaikki ovat olleet käytössä jo useita vuosikymmeniä, ja joihin SIFT

vankasti pohjautuu. Käytännön osuutena tässä työssä toteutettiin MATLAB-

ohjelmiston päälle rakennettu SIFT-algoritmi. Vaikka toteutus toimiikin jokseenkin

Page 7: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

2

luotettavasti piirrejoukkojen sovituksessa, yksittäisten piirteiden sovituksessa esiintyy

epävarmuutta; lisäksi MATLAB-koodin tulkattavuudesta johtuen ohjelman suoritusaika

jää hyvin korkeaksi. Näistä syistä toteutuksen tarkempi testaaminen jäi pois luvusta 4

(SIFT-menetelmän testaus). Sen sijaan testaus suoritettiin David Lowen alkuperäiselle

SIFT-toteutukselle.

Seuraavissa luvuissa käydään läpi piirteentunnistuksen ja -sovituksen

yleisimpiä ominaisuuksia sekä ongelmakohtia - lisäksi tarkastellaan SIFT-algoritmin

yksityiskohtaista toimintaa sekä teorian että käytännön näkökulmasta.

Page 8: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

2. Piirteentunnistus 3 3

2 PIIRTEENSOVITUS

Konenäköjärjestelmän yksi olennaisimmista vaiheista on piirteentunnistus (feature

detection), jossa nimensä mukaisesti mittausdatasta pyritään tunnistamaan loppupro-

sessin kannalta olennainen informaatio, eli mittausdataa parhaiten kuvaavat piirteet

[1, s. 183]. Yleisesti mittausdata voi olla esimerkiksi kiihtyvyysanturista saatavaa

dataa tai vaikkapa äänisignaalia, mutta tässä työssä mittausdatalla tarkoitetaan digi-

taalikameran kennolta saatavaa näytteistettyä kuvadataa. Se, mitä olennainen infor-

maatio kuvan tapauksessa tarkoittaa, riippuu täysin sovelluskohteesta. Esimerkiksi

liikennemerkkejä tunnistaessa halutaan mahdollisesti löytää kuvasta kaikki tietyn

väriset ja muotoiset alueet, kun taas numeroiden luokittelussa keskitytään symmetri-

syyden ja massakeskipisteen tarkasteluun. Yleisessä tapauksessa, mihin tässäkin

työssä syvennytään, ei voida suoraan sanoa mitkä ovat kuvassa juuri niitä karakteris-

tisia piirteitä, sillä kuva saattaa sisältää monentyyppisiä objekteja joista jokainen on

tunnistamisen kannalta yhtä merkittävässä asemassa. Tällöin varmimpia tapoja etsiä

piirteitä on etsiä kuvasta esimerkiksi reunoja, kulmia ja yhtenäisiä alueita, joiden

avulla voidaan kuvata lähes mikä tahansa objekti [6, s. 5-6].

On tärkeää että piirre on stabiili, eli pysyvä. Pysyvyydellä tarkoitetaan mah-

dollisuutta löytää piirre samasta kohdasta kuvassa, vaikka kuvausolosuhteet muut-

tuisivatkin tai kuvaan aiheutuisi häiriötä [9, s. 2]. Epästabiilit piirteet tekevät kuvien

vertailusta ja piirteiden luokittelemisesta epäluotettavaa jolloin lopputulos ei usein-

kaan ole haluttu – tästä syystä tunnistusalgoritmi voi sisältää vaiheita joissa epästa-

biileista piirteistä yritetään päästä eroon. SIFTin tapauksessa eräs menetelmä on

eliminoida matalakontrastiset piirteet jotka usein aiheutuvat satunnaisesta kuvakohi-

nasta, ja näin ollen ovat epästabiileja [2, s. 11]. Mahdollinen skenaario voisi olla

esimerkiksi kuva, jossa vaalean seinäpinnan matalakontrastisesta tekstuurista löyde-

tään tunnistuksen kannalta merkityksettömiä piirteitä, jotka kaiken lisäksi ovat epä-

stabiileja. Tällöin olisi suotavaa että algoritmi hylkäisi nämä turhat piirteet. Sano-

taankin että menetelmä voi olla robusti, eli häiriönsietokykyinen tietyille ominai-

suuksille – esimerkiksi SIFT on robusti vähäiselle kuvakohinalle sekä pienille va-

laistuksen muutoksille sovitettavien kuvien välillä [2, s. 4].

Piirre voi olla myös riippumaton (invariant) erilaisista spatiaalisista muutok-

sista kuten skaalasta, kierrosta ja siirrosta [10, s. 14–15(1)] – tällöin kuvassa olevaa

objektia voidaan pienentää tai suurentaa, kääntää ja liikuttaa kuvatasossa vapaasti,

niin että siitä on edelleen mahdollista tunnistaa samat piirteet kuin alkuperäisessä

kuvassa. Riippumattomuus yhdelle tai useammalle tekijälle on tärkeässä roolissa

etenkin tunnistettaessa piirteitä videon peräkkäisissä kuvakehyksissä, joiden välillä

Page 9: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

2. Piirteentunnistus 4

objektit usein liikkuvat eri tavoin. Jotta objektia olisi mahdollista seurata, täytyy

menetelmän osata tunnistaa se eri asennoissa ja paikoissa – tämän mahdollistaa piir-

teiden riippumattomuus. Toisena esimerkkinä mainittakoon panoraamakuvien auto-

maattinen koostaminen, jossa useista vierekkäin otetuista valokuvista yhdistetään

laajempia kokonaisuuksia sovittamalla kuvien reunojen piirteitä - tällöin täytyy ottaa

huomioon kuvien väliset pienet geometriset muutokset ja vääristymät jotta lopputu-

loksesta saataisiin realistinen [1, s. 377]. Eri menetelmät ja algoritmit suhtautuvat eri

tavoin mainittuihin spatiaalisiin muutoksiin; esimerkiksi SIFT-algoritmi on riippu-

maton skaalasta, kierrosta sekä siirrosta [2, s. 2], mikä tekee siitä piirteensovituksen

kannalta luotettavan ja monipuolisen menetelmän.

Ennen piirteentunnistuksen suorittamista voidaan alkuperäinen kuva vielä

esikäsitellä parhaan mahdollisen lopputuloksen saavuttamiseksi. Esikäsittelyssä al-

kuperäinen kuva voidaan muuntaa harmaasävymuotoon ja esimerkiksi esisuodattaa

kuva epästabiileja piirteitä aiheuttavan kuvakohinan poistamiseksi [1, s. 89]. Har-

maasävymuunnos on kannattavaa tapauksissa joissa piirteet eivät ole väririippuvai-

sia; 24-bittisen RGB-värikuvan kolmen ulottuvuuden kuvaaminen 8-bittiseksi yhteen

ulottuvuuteen keventää lopullista laskentaprosessia huomattavasti, mistä on hyötyä

etenkin reaaliaikaisissa sovelluksissa joissa laskenta-aika pitää minimoida.

Mahdollisen esikäsittelyn jälkeen käydään kuvan jokainen kuvapiste eli pik-

seli yksi kerrallaan läpi. Kuvapisteille ja tarvittaessa niiden naapurustoille suorite-

taan vuorotellen haluttuja matemaattisia tarkasteluja, joiden perusteella tunnistetaan

piirteet, eli päätetään mitkä kuvapisteet ovat sopivia piirteiksi. Kuvapisteelle voi-

daan laskea esimerkiksi x- ja y-suuntainen gradientti (kuva 2.1), jonka perusteella

tiedetään sijaitseeko piste reunalla [1, s. 211] – muita keinoja ovat esimerkiksi ku-

vapisteen ääriarvotarkastelu ja Hessen matriisin laskeminen etsittäessä kulmapisteitä

[1, s. 189].

Kuva 2.1. Vasemmalla alkuperäinen testikuva, keskellä siitä laskettu x-suuntainen gradienttikuva, ja

oikealla y-suuntainen gradienttikuva.

Kuvassa 2.1. on esitetty testikuvan kaikille kuvapisteille laskettujen x- ja y-

suuntaisten gradienttien tuloskuvat. Gradienttikuvista havaitaan selvästi alkuperäi-

sessä kuvassa olevien objektien reunat sekä yhtenäiset alueet, joiden avulla objektit

voidaan täysin tunnistaa.

Page 10: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

2. Piirteentunnistus 5 5

Digitaalisten kameroiden kennojen koon kasvaessa myös niiden tuottamien kuvien

pikselimäärä kasvaa – kuluttajaluokan digitaalikameroista saatavissa kuvissa saat-

taakin nykyään olla jopa yli 10 miljoonaa kuvapistettä. Näin ollen kuvien keskinäi-

nen vertailu kuvapiste kerrallaan olisi laskennallisesti hyvin raskasta otettaessa

huomioon erilaisten kiertojen, siirtojen sekä skaalojen variaatiot. Lisäksi kuvien vä-

lillä vaihtelevat häiriötekijät, kuten valaistuksen muutokset sekä kohina tekisivät

vertailusta epävarmaa ja käytännössä mahdotonta. Piirteenirrotuksen (feature ext-

raction) avulla voidaan kuvasta tunnistetut piirteet esittää alkuperäiseen mittausda-

taan verrattuna matalampiulotteisten piirrevektoreiden avulla [1, s. 184]. Jokainen

piirrevektori yksilöi kuvaamansa piirteen ja mahdollisesti sen naapuruston niihin

liittyvien ominaisuuksien perusteella, jättäen kaiken epäoleellisen informaation

huomiotta. Tällöin piirteitä vertaillessa ja sovittaessa keskitytään vain olennaisen,

loppusovelluksen kannalta tärkeän datan käsittelyyn, jolloin laskentatehokkuus saa-

daan maksimoitua.

Kun piirrevektorit on luotu, päästään piirteitä vertailemaan ja sovittamaan eri

kuvien välillä. Tätä prosessia kutsutaan piirteensovitukseksi. Yksittäisiä piirteitä

voidaan verrata helposti piirrevektoreiden samankaltaisuuden perusteella; yleinen

keino on laskea kahden piirrevektorin etäisyys esimerkiksi euklidista metriikkaa

käyttäen – menetelmää kutsutaan lähimmän naapurin menetelmäksi (nearest neigh-

bor). Lähimmän naapurin menetelmässä piirrevektoria verrataan kaikkiin vertailu-

kuvasta löytyneiden piirteiden piirrevektoreihin, tarkoituksena löytää paras vastaa-

vuus, eli niin sanottu ”lähin naapuri”. [1, s. 200–207]. Löydettyjen vastaavuuksien

joukkoa voidaan rajoittaa esimerkiksi etäisyyden perusteella, jos tiedetään että piirre

ei voi liikkua kuvien välillä tiettyä matkaa enempää – näin laskenta-aluetta voidaan

pienentää ja samalla nopeuttaa koko prosessia.

Usein kuitenkin halutaan sovittaa kokonaisia kuvia tai kuvissa olevia objekte-

ja, eli piirrejoukkoja. Puhutaan objektinsovituksesta tai kuvansovituksesta. Eräs toi-

miva tapa objektinsovitukseen on soveltaa lähimmän naapurin menetelmää sekä

klusterointia [10, s. 25(10)]. Sovitettavan objektin alueella sijaitseville kaikille piir-

teille etsitään lähimmät naapurit vertailukuvasta; voi olla että useat piirteet tunnistu-

vat väärin ja näin hajaantuvat eri puolille kuvaa. Todennäköistä kuitenkin on, että

suuri osa piirteistä täsmää, ja näin ollen kasaantuu vertailukuvassa objektin alueelle.

Tässä vaiheessa otetaan käyttöön klusterointi, jonka tarkoituksena on löytää hajaan-

tuneesta piirrejoukosta mahdollisimman yhtenäisiä ryhmiä eli klustereita. Kluste-

roinnin avulla oikein tunnistuneiden piirteiden muodostava tiivis rypäs pystytään

paikantamaan ja näin ollen objektit saadaan sovitettua [2, 19–21]. Tunnettuja kluste-

rointimenetelmiä on useita erilaisia – mainittakoon esimerkiksi k-means [10, s.

13(10)] sekä Hough muunnos [11, s. 25].

Page 11: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

6

3 SIFT

3.1 SIFT yleisesti

SIFT (scale-invariant feature transform) on David Lowen vuonna 1999 julkaisema

piirteentunnistusalgoritmi stabiilien piirteiden löytämiseksi kuvadatasta. Algoritmin

avulla tunnistetut piirteet, joita kutsutaan myös avainpisteiksi (keypoint), ovat riip-

pumattomia skaalasta, kierrosta sekä sijainnista kuvassa. Lisäksi ne ovat robusteja

vähäisille valaistuksen muutoksille, kuvakohinalle sekä pienille geometrisille vääris-

tymille [2, s. 2]; menetelmä onkin varsin mainio apuväline videokuvassa olevien

objektien seurannassa. Muita SIFTin sovelluskohteita ovat panoraamakuvien koos-

tamisessa käytetty kuvien yhdistäminen (image stitching), sekä eleiden tunnistus

esimerkiksi ihmisen liikkeitä analysoitaessa.

SIFT-avainpisteet ovat pääosin kuvassa sijaitsevia lokaaleja ääriarvoja, jotka

ovat sijoittuneet reunojen risteyskohtiin ja kulmiin, kuten kuvasta 3.1 voidaan havai-

ta. Tyypillisestä 512 x 512 kuvapisteen kokoisesta kuvasta löydetään yleensä noin

2000 stabiilia avainpistettä, riippuen tietenkin kuvan sisällöstä. Voidaan kuitenkin

sanoa että mitä suurempi määrä avainpisteitä löydetään, sitä luotettavampaa ja tar-

kempaa tunnistuksesta saadaan. Toisaalta piirreavaruuden ollessa kovin suuri saattaa

piirteiden vertailu kuluttaa paljon laskenta-aikaa ja -tehoa, jolloin varsinkin reaaliai-

kaisissa sovelluksissa kohdataan ongelmia. Löytyvien piirteiden lukumäärää on tar-

vittaessa kuitenkin mahdollista vähentää tai lisätä tiettyjä parametreja muuttamalla;

tällä tavoin algoritmi saadaan mukautettua kuhunkin sovellukseen yksilöllisesti [2]

Kuva 3.1. SIFT-avainpisteet sijoittuvat pääosin kuvasta löytyviin kulmiin. Vasemmalla puolella on

alkuperäinen testikuva ja oikealla siitä tunnistetut SIFT-avainpisteet.

Page 12: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

7

SIFT-algoritmi voidaan jakaa neljään päävaiheeseen:

o skaala-avaruuden (scale space) ääriarvojen etsiminen

o avainpisteiden päättäminen

o avainpisteiden asennon määrittäminen

o piirrevektoreiden (descriptor) luominen

Algoritmi on suunniteltu niin, että raskaimmat operaatiot suoritetaan aina mahdolli-

simman pienelle kuvapistejoukolle – toisin sanoen avainpiste-ehdokkaita eliminoi-

daan jatkuvasti algoritmin edetessä [2, s. 5]. Lisäksi tiettyjen operaatioiden tulokset,

kuten gradienttimatriisit, tallennetaan työmuistiin jolloin niitä voidaan käyttää hyö-

dyksi myöhemmissä vaiheissa. Näin säästytään ylimääräiseltä laskemiselta ja voi-

daan edesauttaa algoritmin suoritusnopeutta.

Seuraavissa aliluvuissa käydään algoritmin päävaiheet yksitellen läpi.

3.2 Skaala-avaruuden ääriarvot

3.2.1 Skaala

Kun objekti liikkuu kamerasta pois päin, sen koko kuvassa pienenee suhteessa kuvan

kokoon – sanotaan että objektin skaala pienenee spatiaalisesti. Toisaalta, kun objek-

tin koko pienenee, myös siitä löydettyjen yksityiskohtien määrä vähenee. Ajatellaan

esimerkiksi auton rekisterikilpeä, jossa olevat merkit voi helposti lukea kun sitä ta r-

kastellaan metrin etäisyydeltä. Auton liikkuessa tarkastelupisteestä pois päin merk-

kien hahmottaminen vaikeutuu koko ajan, kunnes jossain vaiheessa merkeistä ei saa

enää selvää. Tämä johtuu merkkien reunojen sumentumisesta, eli korkeimpien taa-

juuksien suodattumisesta pois. Voidaan päätellä että skaalalla on spatiaalisuuden

lisäksi myös taajuudellinen ominaisuus, eli skaalan arvo kertoo objektin koon lisäksi

sen taajuussisällön alkuperäiseen objektiin verrattuna. On siis mahdollista että kah-

della erikokoisella kuvalla on sama skaala ja toisaalta kahdella samankokoisella ku-

valla voi olla eri skaala – kyse on vain taajuussisällön ja koon välisestä suhteesta.

Skaala ilmoitetaan reaaliluvulla ℝ, jolloin arvo tarkoittaa alkuperäistä

tai sitä täysin vastaavaa objektia. Mitä suurempi skaalan arvo on, sitä enemmän ob-

jektista on suodattunut korkeita taajuuksia pois tai toisaalta sitä pienempi sen koko

on alkuperäiseen verrattuna. Vastaavasti voidaan soveltaa skaalan arvon ollessa ne-

gatiivinen [12, s. 2].

Page 13: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

8

3.2.2 Skaalariippumattomuus

Avainpiste on riippumaton skaalan muutoksesta (scale invariant) jos sen vastaavuus

on mahdollista löytää kaikilta mahdollisilta skaaloilta halutulla välillä [2, s. 5].

Skaalariippumattomuuden määritelmän nojalla kuvasta kohteen alueelta löydettyjen

kaikkien stabiilien avainpisteiden vastaavuudet täytyisi siis pystyä löytämään kaikis-

ta kuvan skaalavariaatioista tietyllä skaalavälillä. Riippumattomuuden saavuttami-

nen laskemalla alkuperäisestä kuvasta kaikki mahdolliset skaalat yksitellen olisi

paitsi laskennallisesti äärimmäisen hidasta, myös käytännössä mahdotonta, sillä

kaikkien skaalojen kattaminen vaatisi äärettömän määrän kuvia. Laskemalla vain

äärellinen määrä skaaloja voitaisiin skaalaväli toteuttaa hyvin karkeasti, mutta sen

seurauksena algoritmi toimisi epäluotettavasti ja laskeminen olisi edelleen hidasta.

Skaalariippumattomuus on mahdollista kuitenkin saavuttaa yksinkertaisesti muodos-

tamalla kuvasta jatkuva ja lineaarinen skaalan funktio, jota kutsutaan skaala-

avaruudeksi [7, 11]. Skaala-avaruus koostetaan SIFTin tapauksessa vain 20 skaala-

kuvasta; näin minimoidaan tarvittavan datan määrän toteutuksen ollessa kui tenkin

toimiva ja tehokas.

3.2.3 Skaala-avaruuden muodostaminen

SIFTin skaala-avaruus koostuu neljästä oktaavista. Yksi oktaavi sisältää viisi skaa-

laa, eli keskenään samankokoista, mutta toinen toistaan enemmän alipäästösuodatet-

tua kuvaa. Jokaisessa oktaavissa olevien kuvien koko on puolet edellisen oktaavin

kuvakoosta [2, s. 5]. Tämän niin kutsutun kuvapyramidin avulla voidaan esittää

kaikki skaalat halutulla välillä ottaen samalla huomioon skaalan spatiaalisen sekä

taajuudellisen ominaisuuden.

Kuva 3.2. SIFTin skaala-avaruus koostetaan neljästä oktaavista joissa jokaisessa on viisi skaalaa.

Kuvien muodostamaa kokonaisuutta kutsutaan usein myös kuvapyramidiksi.

Useista eri syistä [7, s. 1020] paras mahdollinen ikkunafunktio skaala-avaruuden

alipäästösuodatukseen on yleisesti käytetty normaalijakauman funktio (Gaussian

function), ja kuvan tapauksessa funktion yleistys kahteen ulottuvuuteen (kaava 3.1).

Jatkossa funktiosta käytetään nimitystä Gaussin ikkuna (Gaussian kernel).

Page 14: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

9

(3.1)

∗ (3.2)

Skaala-avaruuden kuva määritellään konvoluutio-operaation tuloksena

Gaussin ikkunan sekä kuvan välillä (kaava 3.2). Alipäästösuodate-

tun kuvan korkeimmat taajuudet ovat suodattuneet pois, minkä seurauksena kuvassa

havaitaan pehmenemistä. Suodatuksen, ja toisaalta pehmenemisen määrään voidaan

vaikuttaa keskihajonnan σ arvoa muuttamalla (kuva 3.2). Alipäästösuodatuksen tar-

koituksena on myös estää laskostuminen seuraavia oktaaveja interpoloidessa jolloin

vältetään uusien epästabiilien avainpisteiden syntyminen [2, s. 5].

Kuva 3.3. Alkuperäinen kuva (vasemmalla) suodatettuna kahdella eri Gaussin ikkunalla: keskim-

mäisessä kuvassa ja oikeanpuoleisessa . Keskihajonnan arvoa kasvattamalla kuvan

yksityiskohdat häviävät taajuussisällön vähentyessä.

Ennen skaala-avaruuden rakentamista alkuperäinen kuva suurennetaan bilineaarista

interpolointia käyttäen kaksinkertaiseksi, minkä jälkeen se alipäästösuodatetaan

Gaussin ikkunalla keskihajonnan σ arvolla σ = 1. Näin tuloksena saadun kuvan pin-

ta-ala on alkuperäiseen kuvaan verrattuna nelinkertainen minkä seurauksena stabiile-

ja avainpisteitä löydetään yhtä lailla nelinkertainen määrä. Jotta lopullinen ääriarvo-

jen etsintä kattaisi tasaisesti koko skaala-avaruuden, suodatetaan jokainen oktaavissa

oleva skaalakuva , missä S on oktaavissa olevien kuvien lukumäärä,

Gaussin ikkunalla keskihajonnan arvolla:

σ0 (3.2)

Oktaavin peräkkäisten kuvien on siis aina k-kertainen, jolloin skaala-avaruudesta

saadaan tasavälinen (taulukko 3.1). Vakion k arvoksi on määritetty √ ja vaki-

on σ0 aloitusarvoksi σ0 = 1.6. Nämä vakiot on valittu Lowen työryhmän tekemien

tutkimusten perusteella, ja niitä käyttämällä voidaan maksimoida stabiilien avainpis-

teiden määrä koko skaala-avaruudessa [2, s. 10]. Parametrien k ja σ0 arvoja muutta-

malla voidaan tarvittaessa vaikuttaa avainpisteiden määrään sovelluskohtaisesti.

Page 15: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

10

Taulukko 3.1. Skaalan σn arvot oktaaveittain On, kun σ0 = 1.6 ja k = √

σ 1 σ 2 σ 3 σ 4 σ 5

O1 1,600 2,263 3,200 4,525 6,400

O2 3,200 4,525 6,400 9,051 12,800

O3 6,400 9,051 12,800 18,102 25,600

O4 12,800 18,102 25,600 36,204 51,200

Kuten taulukosta 3.1. nähdään, jokaisen oktaavin aloituskuvaksi valitaan aina edell i-

sestä oktaavista pinon kolmas kuva, eli kuva jonka skaala on kaksinkertainen σ0 ar-

voon nähden, toisin sanoen σ0 kaksinkertaistuu peräkkäisissä oktaaveissa. Aloitus-

kuva interpoloidaan eli uudelleennäytteistetään ottamalla siitä joka toinen kuvapiste

pysty- että vaakasuunnassa, minkä seurauksena kuvan koko puolittuu.

3.2.4 Gaussin erotuskuvien laskeminen

Viimeisessä vaiheessa ennen ääriarvojen etsimistä lasketaan skaala-avaruuden ku-

vista Gaussin erotuskuvat (difference of Gaussians). Kyseisessä menetelmässä ok-

taavissa olevat kaksi vierekkäistä, vakion k verran toisistaan eroavaa skaalakuvaa

vähennetään keskenään, jolloin jäljelle jää suodattamaton taajuuskaista spatiaali-

tasoon kuvattuna [14] (kuva 3.4).

– (3.4)

Kuva 3.4. Gaussin erotuskuva, jossa on jäljellä vain reunat sekä kirkkaimmat ja tummimmat alueet.

Kuva on laskettu arvoilla √ ja 1.6. Kuvan havainnollistamiseksi harmaasävyarvoja on

korjattu tasoittamalla kuvan histogrammi.

Menetelmä on tarkka approksimaatio Gaussin ikkunan toisesta derivaatasta [13]

(Laplacian of Gaussian), jonka avulla kuvasta voidaan etsiä sen kirkkaimpia ja

tummimpia alueita, mikä SIFTin tapauksessa tarkoittaa merkittävien pisteiden, yhte-

näisten alueiden sekä reunojen löytymistä. Gaussin erotuskuvia lasketaan jokaiseen

oktaaviin yhteensä neljä kappaletta peräkkäisten kuvien erotuksina; erotuskuvat toi-

mivat jatkossa perustana SIFT-piirteiden etsimiselle [2, s. 7].

Page 16: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

11

3.2.5 Ääriarvojen etsiminen

Lopuksi Gaussin erotuskuvista D etsitään ääriarvot, tässä tapauksessa lokaalit mak-

simit ja minimit, jotka määrätään avainpiste-ehdokkaiksi. Oktaavin sisältämistä nel-

jästä Gaussin erotuskuvasta kahden keskimmäisen kuvan jokaista kuvapistettä verra-

taan sen kahdeksaan skaalanaapuriin ja yhdeksään naapuriin ylemmällä sekä alem-

malla skaalatasolla (kuva 3.5). Jos kuvapisteen arvo on joko suurin tai pienin tässä

26 kuvapisteen naapurustossa, valitaan kyseinen piste ääriarvoehdokkaaksi [2, s. 7-

8]. Täytyy huomioida, että ääriarvojen etsimistä ei suoriteta oktaavin ylimmälle tai

alimmalle skaalalle, sillä niillä molemmilla on vain yksi naapuriskaala.

Kuva 3.5. Skaalakuvan kuvapistettä (merkitty mustalla) verrataan kaikkiin sitä ympäröiviin harmaalla

merkittyihin naapureihin - sekä ylemmällä että alemmalla skaalatasolla. Tämä toistetaan kaikille kuvan

kuvapisteille.

Tähän mennessä alkuperäisestä kuvasta on muodostettu mahdollisimman kattava

skaala-avaruus, jonka sisältämien skaalojen pohjalta on laskettu Gaussin erotuskuvi-

en lokaalit ääriarvot eli avainpiste-ehdokkaat. Seuraavassa luvussa 3.3 määritetään

avainpisteiden täsmälliset sijainnit.

3.3 Avainpisteiden päättäminen

3.3.1 Avainpiste-ehdokkaiden paikallistaminen

Gaussin erotuskuvista laskettuja lokaaleja ääriarvoja kutsutaan avainpiste-

ehdokkaiksi sillä ne eivät ole vielä lopullisia avainpisteitä. Kuvadata on näytteistet-

tyä eli diskreettiä, joten löydetyistä ääriarvoista ei voida sanoa että ne ovat aidosti

ääriarvoja; on mahdollista että oikea ääriarvopiste kelluu jossain kuvapisteiden välil-

lä (kuva 3.6), jolloin jokin toinen kuvapiste saattaa olla lähempänä oikeaa ääriarvoa .

Tästä syystä jokainen avainpiste-ehdokas sovitetaan sen lähellä olevaan dataan käyt-

tämällä paraboloidin toisen asteen Taylorin laajennusta (kaava 3.5), minkä avulla

oikean ääriarvon tarkka sijainti voidaan interpoloida [11, s. 25].

Page 17: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

12

Kuva 3.6. Mustat rastit esittävät jatkuvasta kuvatasosta näytteistettyjä diskreettejä kuvapisteitä. Sovitta-

malla pisteet paraboloidiin pyritään löytämään oikeaa maksimiarvoa (valkoinen rasti) lähinnä olevan

kuvapisteen sijainti

Pisteen naapurustoonsa sovittava funktio on muotoa:

, (3.5)

missä D on avainpiste-ehdokkaan arvo ja T ehdokkaan etäisyys sovite-

funktion origosta. Laskemalla yhtälön 3.5 derivaatan

nollakohdat saadaan tu-

loksena aidon ääriarvon etäisyys ehdokaspisteestä:

(3.6)

Derivaatat

sekä

approksimoidaan avainpiste-ehdokkaan ja sen kahdeksan

naapuripisteen erotuksina. Jos lasketun etäisyyden minkä tahansa dimension (x, y,

σ) itseisarvo on yli 0.5, voidaan päätellä että oikea ääriarvo sijaitsee lähempänä jo-

tain toista kuvapistettä (kuva 3.7). Tällöin alkuperäinen avainpiste-ehdokas hylätään

ja interpolointi suoritetaan seuraavalle kuvapisteelle, joka valitaan uudeksi avainpis-

te-ehdokkaaksi. Proseduuria toistetaan niin kauan kunnes paras mahdollinen approk-

simaatio on saatu laskettua. Lopuksi etäisyys summataan avainpiste-ehdokkaan

sijaintiin, jolloin saadaan riittävä estimaatti lopullisen avainpisteen sijainnista. Täs-

mällisempiä yksityiskohtia ääriarvoehdokkaiden paikallistamisesta löytyy Lowen

tutkimuksesta [2, s. 10–11].

Kuva 3.7. Kahden kuvapisteen keskustojen välinen etäisyys on 1 pikseli, mistä seuraa että liikuttaessa

kuvapisteen keskustasta yli 0.5 pikseliä x- tai y-suunnassa, saavutaan toisen kuvapisteen alueelle.

Page 18: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

13

Koska matalakontrastiset piirteet ovat epästabiileja, ne halutaan poistaa avainpistei-

den joukosta. Ääriarvojen kontrasti voidaan helposti laskea kaavoista 3.5 ja 3.6 yh-

distetyn kaavan 3.7 avulla.

(3.7)

Koska kontrasti tarkoittaa kuvapisteen intensiteettiarvon suhdetta sen ympäristön

gradientteihin, voidaan päätellä että matalakontrastisilla pisteillä tämä suhde on pie-

ni. SIFTin tapauksessa kaikki avainpisteet, joille laskettu kontrasti | | eli gra-

dienttisuhde on pienempi kuin 0.03, hylätään. Sovelluksesta riippuen minimiarvo

voidaan valita sopivaksi halutulla välillä [0, 1], mutta arvon ollessa liian suuri myös

stabiileja avainpisteitä saatetaan hylätä [2, s. 11].

3.3.2 Reunapisteiden hylkääminen

Tähän mennessä kuvasta on löydetty suuri määrä avainpisteitä, toisten sijoittuessa tar-

kasti objektien kulmiin ja reunojen risteyskohtiin kun taas osa sijaitsee jossain objektien

reunojen lähistöllä. Kulmissa ja risteyksissä olevat pisteet, joita kutsuttakoon kulmapis-

teiksi, ovat mainioita avainpisteitä, sillä ne ovat stabiileja ja säilyvät myös skaalan

muuttuessa. Lisäksi ne paikantuvat tarkasti paraboloidin sovituksessa. Sen sijaan reu-

noilla olevat avainpisteet ovat usein epästabiileja liikkuessaan edestakaisin reunoja pit-

kin; tämä johtuu reunapisteiden huonosta paikantuvuudesta ja kohinansietokyvystä,

mistä johtuen sama avainpiste saattaa lokalisoitua reunan eri kohtiin eri kuvissa (kuva

3.8) Näistä syistä reunapisteistä halutaan päästä eroon algoritmin luotettavuuden lisää-

miseksi [2, s. 12, 8].

Kuva 3.8. Objektien reunoilla sijaitsevat epästabiilit avainpisteet saattavat liikkua kuvien välillä kohinas-

ta ja valaistuksenmuutoksista johtuen, joten kyseiset avainpisteet täytyy eliminoida

Laskemalla jokaiselle avainpisteelle 2x2 -kokoinen Hessen matriisi H (kaava 3.8), voi-

daan päätellä sijaitseeko piste Gaussin erotuskuvassa D objektin reunalla vai kulmassa.

Matriisin derivaatat approksimoidaan erotuskuvasta avainpisteen ja sen naapurustonsa

välisten erotuksien perusteella. Objektin reunalla olevan pisteen ympäristöllä on vain

vähäinen muutosnopeus reunan suuntaisesti, mutta erittäin suuri muutosnopeus koh-

Page 19: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

14

tisuorasti reunaan nähden (kuva 3.9). Jotta siis pystyttäisiin määrittämään onko avain-

piste reunalla, tarvitsee ainoastaan tietää x- ja y-suuntaisten muutosnopeuksien välinen

suhde, joka maksimoituu reunapisteissä.

[

] (3.8)

Kuva 3.9. Objektien reunoilla harmaasävyarvojen muutosnopeus on pieni reunan suuntaisesti, mutta

reunan normaaliin suunnassa muutosnopeus voi olla erittäin suuri.

Hessen matriisin ominaisarvot ovat verrannollisia pisteen ympäristön muutosnopeuk-

siin, joten niitä voidaan käyttää muutosnopeuksien suhteen laskemisessa [Harris88].

Koska olemme kiinnostuneita vain ominaisarvojen α ja β välisestä suhteesta, vältymme

kokonaan yksittäisten ominaisarvojen laskemiselta. Sen sijaan matriisin jäljen Tr(H)

(kaava 3.9) sekä determinantin Det(H) (kaava 3.10) avulla saamme laskettua muutos-

nopeuden suhteen ilmoittavan kynnysarvon (kaava 3.11), jolloin tarkastelusta selvitään

hyvin yksinkertaisilla laskutoimituksilla [8, s. 150].

= α + β (3.9)

= α β (3.10)

(3.11)

Vakion r arvoksi on tutkimuksissa valittu 10, jolloin muutosnopeuden suhteen ollessa

yli 12.3 avainpiste hylätään. Tarkempaa tietoa reunapisteiden hylkäämisestä löytyy Lo-

wen tutkimuksesta [2, s. 12].

Lähes kaikki lopulliset avainpisteet on nyt päätetty ja niiden tarkat sijainnit paikallistet-

tu. Seuraavassa aliluvussa määritetään avainpisteiden asento.

3.4 Avainpisteiden asennon määrittäminen

Avainpisteellä on naapurustonsa perusteella tietty asento, eli kiertokulma, jonka tunte-

malla avainpiste voidaan esittää asennosta riippumattomana piirrevektorinsa avulla.

Jokainen piirrevektori muodostetaan suhteessa avainpisteen asentoon; näin ollen kuvas-

sa oleva objekti voi vapaasti kiertyä 0-359° ilman että sitä kuvaavien piirrevektoreiden

Page 20: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

15

sisältö radikaalisti muuttuu; tällöin vastaava objekti ja vastaavat piirteet on mahdollista

löytää muistakin kuvista joissa objekti on.

Avainpisteen skaalaa lähinnä olevasta kuvapyramidin skaalakuvasta L laske-

taan avainpisteen ympäristön kaikille kuvapisteille gradientin voimakkuus

sekä orientaatiokulma pisteiden 3x3-naapuruston erojen perusteella (kaavat

3.12 ja 3.13). Laskenta-alueen kokoa ei Lowen tutkimuksessa ole ilmoitettu, mutta

omassa toteutuksessani alueen koko suhteutettiin kunkin avainpisteen skaalaan.

√( ) (3.12)

(

) (3.13)

Alueen äärimmäisten pisteiden arvot eivät välttämättä korreloi avainpisteen asennon

kanssa merkittävästi, joten niiden painoarvoa on syytä pienentää. Tästä syystä gra-

dientin voimakkuuksia painotetaan pyöreällä Gaussin ikkunalla (kuva 3.10), jolloin

asennon määrittäminen perustuu pääasiassa avainpisteen lähimpiin naapureihin. Ik-

kunan keskihajonnan arvoksi σ valitaan 1.5-kertainen arvo avainpisteen skaalaan σ

nähden [2, s. 13].

Kuva 3.10. Avainpisteen (musta rasti) ympäristölle laskettuja gradientin voimakkuuksia painotetaan

pyöreällä Gaussin ikkunalla (tässä σ = 7), jolloin avainpisteen asento määritetään pääasiassa sen lä-

hinaapureiden arvojen perusteella. Mitä tummempi ruutu on, sitä pienempi painokerroin on.

Lasketuista arvoista muodostetaan 36 osaväliin jaettu histogrammi (kuva 3.11), jossa

kukin osaväli kattaa 10° laajuisen sektorin. Jokaista laskettua gradienttikulmaa vas-

taava painotettu gradientin voimakkuus lisätään histogrammissa oikeaan osaväliin,

jonka jälkeen arvot normalisoidaan välille jakamalla kaikki arvot histogram-

min maksimiarvolla. Nyt histogrammin huippuarvot kuvaavat siis avainpisteen ym-

päristössä vallitsevia orientaatioita. Näistä arvoista korkeinta huippua vastaava osa-

väli valitaan avainpisteen suurpiirteiseksi asennoksi. Lisäksi jokaisesta yli 0.8 kor-

kuisesta huipusta luodaan uusi avainpiste joka eroaa alkuperäisestä avainpisteestä

vain orientaationsa osalta. Lopuksi sovitetaan toisen asteen paraabeli jokaisen löyde-

tyn huipun kolmen lähimmän naapurin arvoihin, jolloin paraabelin maksimiarvosta saa-

daan määritettyä avainpisteen tarkka asento [2, s. 13].

Page 21: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

16

Kuva 3.11. Painotetun histogrammin maksimiarvoon ja sen lähimpiin naapureihin sovitetaan paraabeli,

jolloin tuloksena saadaan avainpisteen tarkka asento - tässä tapauksessa 115°.

Arviolta vain 15 %:ssa histogrammeista esiintyy useita huippuja, joten lopullinen

avainpisteiden määrä ja toisaalta algoritmin suoritusnopeus ei muutu merkittävästi. Sen

sijaan uusien avainpisteiden syntymisellä voidaan vaikuttaa piirteensovituksen luotetta-

vuuteen ratkaisevasti [2, s. 13].

3.5 Piirrevektorin luominen

Tässä vaiheessa avainpisteille on määritelty sijainti, skaala sekä asento. Näiden para-

metrien perusteella voidaan jokainen avainpiste jo yksilöidä, mutta tehokkaamman ver-

tailun saavuttamiseksi avainpisteistä luodaan niitä kuvaavat piirrevektorit. Piirrevekto-

reiden luomisen perustana käytetään lähestymistapaa biologiseen näköön; tarkemmin

sanottuna prosessissa pyritään mallintamaan primäärisen näköaivokuoren (V1) komp-

leksisten neuronien toimintaa. Kyseisillä neuroneilla on voimakas vaste gradienteille

tietyllä orientaatiolla sekä spatiaalisella taajuudella. Nämä gradientit eivät kuitenkaan

paikannu verkkokalvolla tarkasti, vaan ne voivat liikkua hieman eri suuntiin tietyn re-

septiivisen kentän alueella, aiheuttamatta muutoksia vasteessa [15]. Näin ne toimivat

hyvänä mallina piirrevektoreita rakentaessa, kun vektoreista halutaan saada mahdollisen

riippumattomia objektin muodonmuutoksille.

Avainpisteen ympärillä olevan 16x16 – kokoisen alueen kaikille kuvapisteille

lasketaan gradientin voimakkuus sekä kiertokulma avainpisteen skaalaa lähimpänä ole-

vasta kuvapyramidin kuvasta. Kulmat suhteutetaan avainpisteen asentoon saavuttaak-

semme riippumattomuuden asennosta. Käytännössä tämä tapahtuu vähentämällä kaikis-

ta lasketuista kiertokulmista alkuperäisen avainpisteen asento. Koska avainpiste on ha-

kualueen keskimmäinen arvo, eli se sijaitsee teoriassa neljän keskimmäisen kuvapisteen

välissä, täytyy kuvapisteiden väliin jäävät arvot interpoloida esimerkiksi bilineaarista

interpolointia käyttäen. Tämän jälkeen gradientin voimakkuudet painotetaan etäisyyden

mukaan pyöreällä Gaussin ikkunalla (kuva 3.12), jonka keskihajonnan σ arvoksi vali-

taan puolet laskenta-alueen koosta, eli tässä tapauksessa σ = 8. Painotuksen tarkoitukse-

na on estää äkilliset muutokset piirrevektorissa avainpisteen liikkuessa vähäisen määrän

kuvan alueella [2, s. 15–16].

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

Page 22: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

17

Kuva 3.12. Vasemmanpuoleisessa kuvassa on 16x16 – alueelta lasketut orientaatiot Gaussin ikkunalla

painotettuine gradientin voimakkuuksineen. Oikealla on 4x4 – ikkunoista lasketut painotetut histogrammit

- toisin sanoen kyseessä on piirrevektori graafisessa muodossa. Molemmissa kuvissa nuolien suunta ker-

too gradienttikulman, ja nuolien pituus gradientin voimakkuuden.

Painotettu 16x16 kuvapisteen kokoinen matriisi jaetaan seuraavaksi 16 yhtä suureen

ikkunaan; näistä jokaiselle ikkunalle lasketaan erikseen gradientin voimakkuuksilla pai-

notettu histogrammi, jonka muodostavat kahdeksan yhtä suurta osaväliä. Osaväleistä

kukin kattaa siis 45° laajuisen sektorin. Nämä 4x4 kuvapisteen kokoiset histogrammi-

ikkunat mahdollistavat yksittäisen kuvapisteen liikkumisen kuvassa jopa neljän pikselin

verran vaikuttamatta piirrevektorin arvoihin. Tästä syystä yksittäiset objektit voivat siir-

tyä kuvassa huomattaviakin määriä ilman että piirteiden tunnistettavuus kärsii. Ikkunoi-

ta voidaankin verrata aiemmin mainittuihin silmän verkkokalvon reseptiivisiin kenttiin.

Lopuksi muodostetaan piirrevektori v asettamalla peräkkäin kaikki 16 histo-

grammia – tällöin jokaiselle avainpisteelle luodaan 4x4x8 = 128 lukua käsittävä vektori.

Vektori v normalisoidaan jakamalla jokainen sen arvo vektorin euklidisella normilla

‖ ‖; tällä tavoin päästään eroon vektorin sisäisestä kontrastinvaihtelusta, joka aiheutuu

kuvapisteen intensiteetin vakiolla kertomisesta ja näin ollen muuttaa gradienttien voi-

makkuuksia samassa suhteessa. Kirkkauden lineaarinen vaihtelu, eli vakioarvon sum-

maaminen kuvapisteen intensiteettiarvoon, ei kuitenkaan vaikuta vektorin arvoihin, sillä

gradientin voimakkuudet lasketaan kuvapisteiden välisistä eroista jotka tässä tapaukses-

sa pysyvät suhteessa samoina. Sen sijaan epälineaariset kirkkauden vaihtelut, jotka joh-

tuvat lähinnä kameran saturaatiosta sekä kolmiulotteisten kappaleiden valaistuksen

vaihteluista, vaikuttavat joidenkin gradienttien suhteellisiin voimakkuuksiin kasvatta-

malla niiden arvoa merkittävästi; tästä johtuen piirrevektorin arvot kynnystetään luvulla

0.2 minkä jälkeen vektori normalisoidaan uudelleen. Tällöin saadaan aikaan osittain

epälineaarisille valaistuksenvaihteluille robusti piirrevektori. Vakio 0.2 on löydetty Lo-

wen tutkimuksissa vertailemalla eri valaistuksissa otettuja kuvia samoista kolmiulottei-

sista kappaleista [2, s. 16].

Nyt kuvasta on löydetty kaikki SIFT-piirteet, ja ne on saatu esitettyä skaalasta,

kierrosta sekä siirrosta riippumattomina. Lisäksi luodut piirrevektorit ovat robusteja

vähäiselle kuvakohinalle, lineaarisille kontrastin ja kirkkauden muutoksille sekä hienoi-

sille geometrisille vääristymille. Seuraavassa luvussa testataan SIFT-menetelmän toimi-

vuutta käytännössä.

Page 23: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

18

4 SIFT-MENETELMÄN TESTAUS

Tässä luvussa testataan SIFT-menetelmän toimivuutta tarkastelemalla kuvasta löytynei-

den stabiilien avainpisteiden määrää, algoritmin ajallista suorituskykyä sekä piirteen- ja

kuvansovituksen toimivuutta. Testikuvana käytettiin neliön muotoista, 2048x2048 ku-

vapisteen kokoista valokuvaa, joka sisältää erimuotoisia sekä -kokoisia objekteja – li-

säksi kuvassa on paljon yksityiskohtia, objektien heijastuksia ja matalakontrastinen

taustatekstuuri, joten se soveltuu erinomaisesti piirteentunnistuksen testaamiseen. Testit

on toteutettu MATLAB–ohjelmiston päällä toimivan David Lowen alkuperäisen C-

kielisen SIFT-toteutuksen [17] sekä yksinkertaisten MATLAB-testiskriptien avulla.

Vertailumenetelmänä käytettiin suositun Harrisin kulmantunnistimen MATLAB-

toteutusta [18]. Harrisin kulmatunnistin perustuu nimensä mukaisesti ainoastaan kuvan

objekteista etsittäviin kulmiin, joten SIFTiin verrattuna se on toteutukseltaan huomatta-

vasti yksinkertaisempi. Lisää Harrisin menetelmästä voi lukea alkuperäisestä raportista

[8].

4.1 Avainpisteiden määrä

Yksi hyvä mittari SIFT-algoritmin toimivuudelle on tarkastella sen avulla kuvasta löy-

dettyjen avainpisteiden määrää. Mitä suurempi määrä stabiileja avainpisteitä pystytään

paikantamaan, sitä suuremmalla todennäköisyydellä objektit ja yksittäiset piirteet saa-

daan sovitettua ja täsmättyä. Testiskriptinä käytettiin silmukkarakennetta, joka pienen-

tää alkuperäisen kuvan kokoa jokaisella kierroksella kokonaisluvun n verran, ja laskee

pienennetystä kuvasta löytyneiden SIFT-avainpisteiden lukumäärän sekä vertailuna

Harris-piirteiden lukumäärän. Kierrosten välissä kuvaa alipäästösuodatetaan hieman

laskostumisen estämiseksi.

for n = 1:N % n kertoo kierrosten määrän

img_lowpass = lowpass(img, n); % alipäästösuodatus

img_res = resize(img_lowpass, 1/n) % kuvakoon muuttaminen

amount_sift(n) = sift(img_res) % avainpisteiden etsiminen

amount_harris(n) = harris(img_res)

end

Page 24: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

19

Kuva 4.1. Löytyneiden avainpisteiden lukumäärät kuvan sivunpituuden funktiona. Huomaa logaritminen

y-akseli.

Kuva 4.1. esittää testikuvasta löytyneiden SIFT- ja Harris-piirteiden lukumäärän kuvan

sivunpituuden funktiona. Kuten tiedetään, kuvapinta-ala kasvaa suhteessa neliöllisesti

sivunpituuden kasvaessa; tämä voidaan hyvin havaita molemmilla menetelmillä löydet-

tyjen avainpisteiden määrästä; käyrät mukailevat eksponentiaalifunktiota melko tarkasti.

SIFTin löytämien avainpisteiden määrä alkuperäisessä kuvassa (2048 x 2048 px) on yli

7-kertainen Harris-piirteiden määrään verrattuna; tämä kertoo menetelmän luotettavuu-

desta objektinsovituksessa, sillä suuremmasta avainpistejoukosta on todennäköisempää

löytää vastaavuuksia ja näin ollen tunnistaa helposti yksittäisiä objekteja.

4.2 Suorituskyky

Etenkin videokuvan tapauksessa on syytä tarkastella SIFTin suorituskykyä, sillä useissa

piirteen- ja objektinseurannan sovelluksissa vaaditaan reaaliaikaista prosessointia – käy-

tännössä tämä tarkoittaa vähintään 15 fps (frames per second) laskentanopeutta, mikä

vastaa noin 0.07 sekunnin laskenta-aikaa kehystä kohden. Laskentanopeus voidaan suh-

teuttaa kuvan resoluutioon tai esimerkiksi löytyneiden stabiilien avainpisteiden mää-

rään; on kuitenkin selvää että kuvan koolla ja siitä löydettyjen avainpisteiden määrällä

on vahva korrelaatio, joten tässä keskitytään tarkastelemaan SIFTin laskentanopeutta

ainoastaan kuvan koon funktiona. Testikokoonpanona käytettiin hieman vanhempaa

3.00 GHz Pentium 4 – suorittimellista kotitietokonetta 2 Gt keskusmuistilla; voidaan

olettaa että uudella tietokoneella lasketut arvot olisivat jonkin verran pienemmät. Käy-

tetty testiskripti on sama kuin luvussa 4.1

1

10

100

1000

10000

Sivunpituus (px) / avainpisteiden määrä

Avain

pis

teid

en

määrä

SIFT

Harris

SIFT 132 136 147 182 189 219 225 273 291 373 467 606 933 1349 2322 6201

Harris 29 34 35 38 40 46 52 58 70 82 94 120 161 228 363 852

128 137 147 158 171 187 205 228 256 293 342 410 512 683 1024 2048

Page 25: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

20

Kuva 4.2. Algoritmien suoritusaika sivunpituuden funktiona. Suoritusajat eivät sisällä skriptissä tehtyjen

alipäästösuodatuksen ja kuvakoon muutoksen kuluttamaa aikaa. Huomaa logaritminen y-akseli.

Kuten arveltua, kuvasta 4.2. voidaan nähdä sivunpituuden, ja näin ollen avainpistemää-

rän vahva korrelaatio suoritusajan kanssa. Laskenta-aika on estimoitu jokaiselle sivunpi-

tuudelle viiden suorituksen keskiarvona, joten suurimmat huiput ovat tasoittuneet pois.

SIFT-algoritmin laskenta-aika jo pienimmällä sivunpituudella (128 px) on lähes 0.4

sekuntia, mikä vastaa 2.5 fps kehysnopeutta. Toisin sanoen SIFT ei olisi testikokoon-

panolla soveltuva reaaliaikaiseen suoritukseen. Sama pätee myös Harrisin algoritmiin,

jota käyttämällä kehysnopeus nousee 9 fps suuruiseksi, mikä ei edelleenkään olisi riittä-

vä suurimmassa osassa reaaliaikaisuutta vaativissa sovelluksissa. Toisaalta voidaan aja-

tella, että esimerkiksi teollisuuskäytössä konenäön taustalla toimiva prosessointi olisi

kotitietokoneeseen verrattuna huomattavasi nopeampaa. Lisäksi useamman prosessorin

sekä esimerkiksi näytönohjainkortin valjastaminen laskentaprosessiin laskisi suoritusai-

kaa merkittävästi.

4.3 Piirteen- ja kuvansovitus

Piirteensovituksen eksakti tarkastelu vaatisi tuhansia, ellei jopa kymmeniätuhansia piir-

teitä käsittävän tietokannan, johon kuvista löytyneitä piirteitä voitaisiin verrata ja näin

ollen laskea niiden perusteella tarkkoja virhearvoja. Tässä työssä keskitytään piirteenso-

vituksen osalta kuitenkin vain karkeaan tarkasteluun. Tarkoituksena on testata SIFT-

menetelmän soveltuvuutta avainpistejoukkojen sovittamiseen kahden kuvan välillä, ot-

taen huomioon skaala-, ja asentoriippumattomuuden sekä robustisuuden kuvakohinalle.

Käytännössä tämä toteutetaan laskemalla kahdelle kuvalle SIFT-avainpisteet, ja etsimäl-

lä kullekin avainpisteelle sen lähin vastine vertailukuvasta käyttämällä lähimmän naapu-

rin menetelmää. Lisäksi lasketaan vastinpiirrevektoreiden välisen kulman kosini θ kaa-

van 4.1 avulla; kulma saa kosinin arvoja välillä , ja sen avulla voidaan määrit-

0,1

1

10

100

Sivunpituus (px) / suoritusajat (s)

Aik

a (

s)

SIFT

Harris

SIFT 0,39 0,55 0,52 0,57 0,59 0,63 0,69 0,7 0,88 1,08 1,18 1,73 2,73 4,53 9,04 51,8

Harris 0,12 0,11 0,14 0,15 0,21 0,22 0,25 0,39 0,41 0,52 0,74 1,01 1,54 2,75 6,39 27,5

128 137 147 158 171 187 205 228 256 293 342 410 512 683 1024 2048

Page 26: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

21

tää vektoreiden samankaltaisuus. Jos kulma θ on alle 0.6, oletetaan piirrevektoreiden

esittävän samaa avainpistettä ja näin ollen vastineet voidaan hyväksyä. Muussa tapauk-

sessa avainpiste voidaan erilaisuuden nojalla hylätä [19]. Menetelmällä saadaan vain

erittäin suurpiirteinen approksimaatio vektoreiden samankaltaisuudesta, ja sen antamat

tulokset ovat siis vain suuntaa-antavia.

(

‖ ‖‖ ‖) (4.1)

4.3.1 Kohinasietoisuus

SIFT-menetelmän kohinasietoisuutta testattiin lisäämällä testikuvaan normaalijakautu-

nutta kohinaa progressiivisesti. Kohinan lisääminen toteutettiin yksinkertaisella silmu-

kalla käyttäen MATLABin imnoise–funktiota, jonka parametreina annettiin kohinatyy-

piksi normaalijakautunut kohina (gaussian), kohinan keskiarvoksi valittiin 0, ja varians-

sin σ arvoa muutettiin silmukan sisällä kohinan määrän lisäämiseksi:

for n = 1:N

% lisätään kuvaan kohinaa varianssilla 0.01/n

img_noisy = imnoise(img, ”gaussian”, 0, 0.01/n)

%lasketaan kahden kuvan välillä täsmänneiden avainpistei-

den määrä

match(img, img_noisy);

end

Kierrosten määräksi valittiin N = 20, jolloin kuvakohinan varianssi σ² sai arvoja väliltä

σ . Funktion tuloksena saatiin täsmänneiden avainpisteiden lukumäärä.

Tulokset on esitetty kuvassa 4.3.

Kuva 4.3. Täsmänneiden avainpisteiden osuus testikuvan avainpisteistä normaalijakautuneen kohinan

varianssin funktiona. Katkoviivalla merkitty käyrä on toisen asteen funktion sovite. Alkuperäisestä testi-

kuvasta (410 x 410 px) löytyneiden avainpisteiden lukumäärä 606 kpl (100 %).

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Täsm

än

ne

ide

n a

vain

pis

teid

en

os

uu

s

%

Kohinan varianssi σ²

Page 27: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

22

Kuvasta 4.3. havaitaan kuinka täsmänneiden piirteiden määrä vähenee toisen asteen

paraabelia mukaillen kohinan varianssin kasvaessa. Tämä on ymmärrettävää, sillä kohi-

nan lisääntyessä kuvaan syntyy paljon epästabiileja avainpisteitä joita kaikkia SIFT-

algoritmi ei pysty eliminoimaan – tästä johtuen osa avainpisteistä tunnistuu täysin vää-

rin ja ne hylätään. Kuten Lowen tutkimuksessa todetaan, SIFT-menetelmä on robusti

vähäiselle kuvakohinalle, eli se ei ole riippumaton kohinan määrästä. Tämä pitää paik-

kaansa testitulosten nojalla.

Kuva 4.5. Täsmänneet avainpisteet alkuperäisen kuvan ja kohinakuvan (σ = 0.01) kuvan välillä..

4.3.2 Kiertoriippumattomuus

Avainpisteiden riippumattomuutta kierrosta testattiin yhtä lailla silmukkarakenteisella

testiskriptillä. Jokaisella kierroksella vertailukuvaa käännettiin 18° lisää, jolloin 20 kier-

roksen jälkeen kuvaa oli kierretty yhteensä 360°. Tulosten perusteella menetelmä oli

lähes täysin (> 95 %) riippumaton kuvan kierrosta, eli lähes kaikki piirteet voitiin sovit-

taa missä tahansa kuvan asennossa välillä 1-360°.

Kuva 4.6. Kiertoriippumattomuuden testausta piirteensovituksessa. Vasemmalla rajattu alue testikuvasta,

ja oikealla vastaava alue 90° kierrettynä.

Page 28: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

23

Kuvassa 4.6. on esimerkki piirteiden sovituksesta kahden eri kulmassa olevan kuvan

välillä, vertailukuvan kierron ollessa 90°. Kuten kuvasta havaitaan, lähes kaikki piirteet

saatiin sovitettua oikein. SIFTin tapauksessa voidaan siis puhua kiertoriippumattomuu-

desta.

4.3.3 Skaalariippumattomuus

Skaalariippumattomuutta tutkittiin pienentämällä testikuvan spatiaalista skaalaa prog-

ressiivisesti silmukan sisällä. Pienennetystä kuvasta löydetyt avainpisteet sovitettiin

alkuperäisen testikuvan (2048 x 2048 px) avainpisteisiin. Tuloksena saatiin laskettua

kaikkien täsmänneiden avainpisteiden lukumäärän suhde skaalatun kuvan avainpistei-

den lukumäärään, mikä on esitetty kuvassa 4.7.

Kuva 4.7. Skaalakuvan avainpisteiden lukumäärän suhde alkuperäisen kuvan kanssa täsmänneiden

avainpisteiden määrään.

Alkuperäistä testikuvaa (2048 x 2048 px) skaalattiin välillä [0.95, 0.1] yhteensä 18 ker-

taa, jolloin pienimmän lasketun skaalakuvan pinta-ala oli vain 5 % alkuperäisen kuvan

pinta-alasta; käytännössä tämä tarkoittaa 204 x 204 pikselin kokoista kuvaa. Testikuvas-

sa olevat objektit pienenivät siis 95 prosenttia, joten on oletettua että kuvainformaatiota

katosi samalla valtava määrä Kuten kuvasta 4.7. havaitaan, skaalaa pienennettäessä

täsmänneiden avainpisteiden suhde pysyy kuitenkin hyvin vakaana, lähellä 80 prosent-

tia. Tämä tarkoittaa, että pienennetyistä kuvista löydettiin hyvin paljon samoja avainpis-

teitä kuin alkuperäisestä kuvasta.

60%

65%

70%

75%

80%

85%

90%

95%

100%

Täsm

än

neid

en

avain

pis

teid

en

osu

us

Skaala

Page 29: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

24

Kuva 4.8. Vasemmalla rajattu alue 0.7-kertaiseksi skaalatusta testikuvasta, oikealla rajattu alkuperäinen

testikuva.

Kuvasta 4.8. nähdään että lähes kaikki piirteet saatiin sovitettua oikein skaalatun ja al-

kuperäisen testikuvan välillä. Ei voida kuitenkaan sanoa että SIFT olisi täysin riippuma-

ton skaalasta, sillä täydellinen riippumattomuus vaatisi sen, että kaikki skaalatun kuvan

avainpisteet pystyttäisiin sovittamaan alkuperäiseen kuvaan. Kuitenkin lähes 80 %

avainpisteistä saadaan sovitettua kaikilla skaaloilla, mikä käytännössä tarkoittaa sitä,

että kaikki kuvassa olevat objektit on mahdollista tunnistaa skaalasta riippumatta;

SIFTin tapauksessa voidaankin siis puhua skaalariippumattomuudesta.

Page 30: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

25

5 JOHTOPÄÄTÖKSET

Työssä esiteltiin piirteisiin sekä piirteentunnistukseen ja -sovitukseen liittyvää perusteo-

riaa, mutta pääpaino oli SIFT-piirteentunnistusalgoritmin yksityiskohtaisessa tarkaste-

lussa sekä algoritmin soveltuvuudessa piirteensovitukseen. SIFT-algoritmin jakautuessa

neljään päävaiheeseen, jokainen vaiheista käytiin yksitellen läpi kuvaten niissä suoritet-

tavat matemaattiset operaatiot sekä toimintojen syyt ja seuraukset. Lisäksi algoritmia

testattiin eri menetelmillä, tarkoituksena ottaa selville pitääkö SIFTin kohdalle asetetut

väitteet riippumattomuudesta ja robustisuudesta paikkaansa – samalla tarkasteltiin algo-

ritmin toimivuutta piirteen- ja kuvansovituksessa.

Vaikka SIFT onkin teknologian näkökulmasta ajateltuna suhteellisen vanha me-

netelmä, testien perusteella se on kuitenkin erittäin kilpailukykyinen ja luotettava mene-

telmä piirteentunnistuksen sektorilla. Niin yksittäiset piirteet kuin piirrejoukot on mah-

dollista sovittaa SIFTin avulla eri kuvien välillä, ja testituloksiin viitaten voidaan sanoa

että algoritmi toimii lähes virheettömästi normaaliolosuhteissa. Tässä työssä esiteltyjen

testien ulkopuolisista menetelmistä yksi parhaista olisi ehdottomasti subjektiivinen ver-

tailu, jossa voitaisiin tarkastella menetelmän luotettavuutta ihmisen näkökulmasta; tie-

tokoneen tekemä testaus on usein eksaktia tulosten ollessa yleensä vain suuntaa antavia

lukuarvoja, joiden perusteella on hyvin vaikea sanoa mitään tulosten oikeellisuudesta.

Ihmisen biologinen näkö osaa kuitenkin kertoa onko objekti tunnistettu oikein, tai esiin-

tyykö esimerkiksi panoraamakuvassa luonnottomia virheitä, jotka ehkä tietokoneen mu-

kaan olisivat merkityksettömiä.

Algoritmin ollessa riippumaton skaalasta sekä kierrosta, sen ollessa häiriönsie-

tokykyinen useille ominaisuuksille, ja sen toimiessa universaalisti monenlaisille kuville,

voidaankin vain ihmetellä mitä algoritmilta voitaisiin enää vaatia. Suurin ongelma

SIFTin kohdalla on kuitenkin vielä tänä päivänä, yli kymmenen vuotta algoritmin kehit-

tämisen jälkeen, laskentatehokkuus. SIFT on monivaiheinen algoritmi ja se sisältää

useita raskaita laskuoperaatioita, joten tehokkaammallakin tietokoneella reaaliaikainen

laskenta ei luultavasti olisi mahdollista. Teknologisen kehityksen valossa on kuitenkin

vain ajan kysymys, milloin SIFTin toiminta tavallisella kotitietokoneella saataisiin reaa-

liaikaiseksi, ja näin ollen algoritmille voitaisiin löytää uusia käyttökohteita.

Page 31: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

26

LÄHTEET

[1] Szeliski, R. Computer Vision: Algorithms and Applications. 1st Edition, Springer

2011. 812p.

[2] Lowe, D. 2004. Distinctive Image Features from Scale-Invariant Keypoints. In: In-

ternational Journal of Computer Vision. Vol. 60(2). Springer. pp. 91-110.

[3] Liu, G., Austen, E., Booth, K., Fisher, B., Rempel, M. & Enns, J. Multiple object

tracking is based on scene, not retinal, coordinates. In: Journal of Experimental

Psychology: Human Perception and Performance, Vol 31(2), April 2005. pp. 235-

247.

[4] Doignon, C., Nageotte, F., Maurin, B. & Krupa, A. 2008. Pose Estimation and

Feature Tracking for Robot Assisted Surgery with Medical Imaging. In: Kragic, D

& Kyrki, V (ed.). Unifying Perspectives in Computational and Robot Vision. Vol.

8. 2008, Springer. pp. 79-101.

[5] Gray, J. 2009. Deeply-Integrated Feature Tracking for Embedded Navigation.

Dissertation. Ohio, USA. Air Force Institute of Technology. 92 p.

[6] Yilmaz, A., Javed, O. & Shah, M. 2006. Object tracking: A survey. ACM Comput.

Surv. Vol. 38(4), Article 13. 45p.

[7] Witking, A. Scale-space filtering. Proceedings of the 8th international Joint Con-

ference on Artificial Intelligence, Karlsruhe, Germany, 1983. San Francisco, CA,

USA 1983, Morgan Kaufmann Publishers Inc. pp. 1019–1022.

[8] Harris, C., Stephens, M. A combined corner and edge detector. Proceedings of the

4th Alvey Vision Conference, Manchester, UK, August31 – September 2, 1988.

pp. 147-151.

[9] Lowe, D. Object Recognition From Local Scale-invariant Features. Proceedings

of the International Conference on Computer Vision, Kerkyra, Greece, September

20-27, 1999. pp. 1150–1157.

[10] Duda, R., Hart, P. & Stork, D. Pattern Classification. 2nd Edition, Wiley-

Interscience 2000. 654 p.

[11] Brown, M., Lowe, D. Invariant Features from Interest Point Groups. British Ma-

chine Vision Conference, Cardiff, Wales, September, 2002. pp. 656-665.

Page 32: AHTI OKSANEN SIFT-MENETELMÄ PIIRTEENSOVITUKSESSA Oksanen.pdf · 2017-02-08 · 1 1 JOHDANTO Piirteensovitus (feature matching) ei ole suomen kieleen vakiintunut termi, mutta se kuvaa

27

[12] Lindeberg, T. 2008. Scale-space. In: Wah, B. (ed.). Encyclopedia of Computer

Science and Engineering. Vol. 4. Hoboken, New Jersey, John Wiley and Sons. pp.

2495-2504.

[13] Lindeberg, T. Scale-Space Theory in Computer Vision. Kluwer Academic Publish-

ers/Springer, Dordrecht, Netherlands, 1994.

[14] Burt, P., Adelson, E. The Laplacian Pyramid as a Compact Image Code. In: IEEE

Transactions on Communications, Vol. Com-3l, No. 4, April 1983. pp. 532-430.

[15] Edelman, S., Intrator, N,. & Poggio, T. Complex cells and Object Recognition.

NIPS 97, 1997.

[16] Gonzalez, R. C., Woods, R. E. Digital Image Processing. 2nd Edition, Prentice

Hall 2002. 793 p.

[17] Keypoint detector [WWW]. [viitattu 7.5.2011]. Saatavissa:

http://www.cs.ubc.ca/~lowe/keypoints/.

[18] Harris Corner Detector – File Exchange – MATLAB Central [WWW]. [viitattu

7.5.2011]. Saatavissa: http://www.mathworks.com/matlabcentral/fileexchange/

9272-harris-corner-detector.

[19] Shi, J., Tomasi, C. Good Features to Track. IEEE Conference of Computer Vision

and Pattern Recognition, Seattle, WA , USA, June