HAMMASVALOSTEN AUTOMATISOITU MITTAUSMENETELMÄ



Samankaltaiset tiedostot
Malleja ja menetelmiä geometriseen tietokonenäköön

Luento 3: 3D katselu. Sisältö

Maa Kameran kalibrointi. TKK/Fotogrammetria/PP

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

Teoreettisia perusteita II

S09 04 Kohteiden tunnistaminen 3D datasta

Numeeriset menetelmät

MS-A0004/A0006 Matriisilaskenta

Tekijä Pitkä matematiikka

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

2 Pistejoukko koordinaatistossa

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

3D-kuvauksen tekniikat ja sovelluskohteet. Mikael Hornborg

Luento 7: 3D katselu. Sisältö

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Fotogrammetrian termistöä

Stereopaikannusjärjestelmän tarkkuus (3 op)

Demo 1: Simplex-menetelmä

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Luento 6: 3-D koordinaatit

RATKAISUT: 16. Peilit ja linssit

Epäeuklidista geometriaa

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

MS-C1340 Lineaarialgebra ja

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Moniulotteisia todennäköisyysjakaumia

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b)

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Lineaarikuvauksen R n R m matriisi

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia

JAKSO 2 KANTA JA KOORDINAATIT

Oppimistavoitematriisi


Oppimistavoitematriisi

Suorista ja tasoista LaMa 1 syksyllä 2009

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Lineaariset kongruenssiyhtälöryhmät

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Konformigeometriaa. 5. maaliskuuta 2006

Numeeriset menetelmät

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

Lineaarinen yhtälöryhmä

Muodonmuutostila hum

MAB3 - Harjoitustehtävien ratkaisut:

Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia: Mitä opimme?

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Kohdeyleisö: toisen vuoden teekkari

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut

JOHDATUS TEKOÄLYYN TEEMU ROOS

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

1 Rajoittamaton optimointi

Luento 2 Stereokuvan laskeminen Maa Fotogrammetrian perusteet 1

Päättelyn voisi aloittaa myös edellisen loppupuolelta ja näyttää kuten alkupuolella, että välttämättä dim W < R 1 R 1

JOHDATUS TEKOÄLYYN TEEMU ROOS

4 Yleinen potenssifunktio ja polynomifunktio

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

Suorien ja tasojen geometriaa Suorien ja tasojen yhtälöt

5.3 Suoran ja toisen asteen käyrän yhteiset pisteet

JOHDATUS TEKOÄLYYN TEEMU ROOS

Ratkaisuehdotukset LH 8 / vko 47

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

7 Vapaus. 7.1 Vapauden määritelmä

5 OMINAISARVOT JA OMINAISVEKTORIT

Algoritmit 2. Luento 13 Ti Timo Männikkö

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

Näihin harjoitustehtäviin liittyvä teoria löytyy Adamsista: Ad6, Ad5, 4: 12.8, ; Ad3: 13.8,

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Ratkaisuehdotukset LH 7 / vko 47

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin

MAB3 - Harjoitustehtävien ratkaisut:

Matriisilaskenta Luento 8: LU-hajotelma

7.4 PERUSPISTEIDEN SIJAINTI

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Transkriptio:

SÄHKÖ- JA TIETOTEKNIIKAN OSASTO TIETOTEKNIIKAN KOULUTUSOHJELMA HAMMASVALOSTEN AUTOMATISOITU MITTAUSMENETELMÄ Työn tekijä Anne Pulli Työn valvoja Janne Heikkilä Hyväksytty / 2008 Arvosana

Pulli A. (2008) Hammasvalosten automatisoitu mittausmenetelmä. Oulun yliopisto, sähkö- ja tietotekniikan osasto. Diplomityö, 59 s. TIIVISTELMÄ Oulun yliopistossa kirjoitettiin 1997-1998 Orthometrics-ohjelma, jonka avulla voi tehdä erilaisia mittauksia hammasvaloksiin merkityistä pisteistä. Tämän työn tarkoituksena on lisätä Orthometrics-ohjelmaan ominaisuuksia, jotka helpottavat käyttäjän työtä. Tätä varten kehitettiin uusi ohjelma NOrtho, joka automatisoi pisteiden ja pistevastaavuuksien etsintää samasta valoksesta otetuista valokuvista. Pisteiden etsintää varten kehitettiin k-means-pohjainen algoritmi, joka etsii kuvista sopivia piste-ehdokkaita. Käyttäjä merkitsee ensimmäiseen kuvaan haluamansa mallipisteet, joiden avulla etsitään pistevastaavuudet muista kuvista. Pistevastaavuuksien etsimiseen käytetään tasoprojektiota, iteroivaa lähimmän pisteen algoritmia ja epipolaarigeometriaa. Edellä mainittujen käsitteiden ymmärtämiseksi käydään läpi kamerageometriaa eli kameran ja kuvien mallintamista. Työssä esitellään myös fundamentaalimatriisi ja miten epipolaarigeometriaa voidaan käyttää päättelemään, missä vastinpisteet toisissa kuvissa voivat olla. Epipolaarigeometria voidaan laskea automaattisesti RANSAC-algoritmin avulla. Algoritmi kuvataan ja kerrotaan syistä, miksi sitä ei tässä työssä käytetä. Tässä työssä käytetään kuvien rakennetta hyväksi pistevastaavuuksien löytämiseen. Kerrotaan, miten tasoprojektio ja lähimmän pisteen algoritmi auttavat löytämään pistevastaavuudet. Työssä kuvataan myös erilaisia piirteentunnistamismenetelmiä, joiden avulla pisteitä voidaan tunnistaa oikein ja esitellään k-means-algoritmi ja skaala-invariantti piirremuunnos. Käyttäjän haluamat mittaukset ja pistevastaavuudet merkitään kahteen eri tiedostoon. Orthometrics-ohjelma laskee tiedostojen avulla mallipisteiden paikat, etäisyydet ja kulmat ja piirtää yksinkertaisen kolmiulotteisen mallin. NOrthossa mallipisteitä ja mittauksia voidaan muuttaa vaivattomasti. Mallikuvan avulla pistevastaavuudet muista kuvista löytyvät nopeasti ja tarkasti. Lähes kaikki pistevastaavuudet löydetään lähimmän pisteen algoritmilla ja jos ne on tunnistettu k-means-algoritmilla, ne keskitetään automaattisesti. Loput pistevastaavuudet löytyvät epipolaarigeometrian avulla. Avainsanat: kamerageometria, tasoprojektio, epipolaarigeometria, fundamentaalimatriisi, ICP-algoritmi, k-means-algoritmi

Pulli A. (2008) Automation of Dental Cast Measurements. Department of Electrical and Information Engineering, University of Oulu, Oulu, Finland. Master's thesis, 59 p. ABSTRACT Orthometrics is a software program, written in 1997 1998 at University of Oulu. It allows researchers to take measurements of dental arch plaster models. The user marks dots in plaster models, which are then photographed in ve different orientations. Orthometrics calculates the three-dimensional coordinates of the dots, distances between them, and angles between three dots, and creates a simple three dimensional model of them. In this work we have created a new program called NOrtho, which partially automates the search of dots in the images. We used a k-means-based algorithm to search for shapes that can be possible dots. The user marks the dots in the model image and the program nds their matches from the pool of possible dots in the other images using homography, Iterative Closest Point algorithm, and epipolar geometry. To understand these concepts, we describe how camera geometry and single view geometry in computer vision can be modelled. We describe also the geometry of two perspective views: the epipolar geometry. Epipolar geometry is represented by fundamental matrix and its computation from corresponding image points is explained. We describe how the RANSAC algorithm can be used to compute the epipolar geometry automatically and we describe the reasons why we do not use it in this work. We explain how we can use the structure of the images to nd corresponding points and describe the homography and iterative closest point algorithm. We demonstrate how clustering can be used to nd suitable points from the images and explain how scale-invariant feature transform (SIFT) might help nd the dots. The user saves the model and the measurement data in two different les which can be downloaded to Orthometrics. In NOrtho the measurements and model are easily changed. If the dots have been found with the help of the k-meansalgorithm, the corresponding dots in images are found quickly and precisely. If the registration attempt fails on some dots, the epipolar geometry is used to nd the exact dot locations. Keywords: camera geometry, homography, epipolar geometry, fundamental matrix, ICP algorithm, k-means algorithm

TIIVISTELMÄ ABSTRACT SISÄLLYSLUETTELO ALKULAUSE SISÄLLYSLUETTELO LYHENTEIDEN JA MERKKIEN SELITYKSET 1. JOHDANTO 8 1.1. Mittauksia hammasvaloksista...................... 8 1.2. Uusi käyttöliittymä NOrtho....................... 10 1.3. Työn rakenne.............................. 10 2. 3D-RAKENTEEN ESTIMOINTI KUVASTA 12 2.1. Digitaalikamerat............................ 12 2.2. Kamerageometria............................ 13 2.3. Linssivääristymä............................ 16 2.4. Kameran kalibrointi........................... 17 2.5. 3D-pinnan estimointi kuvasta...................... 19 3. EPIPOLAARIGEOMETRIA JA PIIRREVASTAAVUUKSIEN HAKU 22 3.1. Epipolaarigeometrian määritelmä.................... 22 3.2. Fundamentaalimatriisi......................... 23 3.2.1. Fundamentaalimatriisin geometrinen määrittely........ 24 3.2.2. Fundamentaalimatriisin algebrallinen määrittely....... 25 3.2.3. Fundamentaalimatriisin numeerinen ratkaisu......... 26 3.2.4. Fundamentaalimatriisin tarkkuuden parantaminen....... 27 3.3. Mallin ja piirrepisteiden vastaavuuksien haku............. 29 3.3.1. RANSAC-algoritmi...................... 29 3.3.2. Iteratiivinen lähimmän pisteen algoritmi ICP......... 32 4. PIIRREPISTEIDEN HAKU 34 4.1. Ryvästämismenetelmät......................... 34 4.1.1. Ryvästämismenetelmien luokittelu............... 34 4.1.2. K-means-algoritmi....................... 35 4.2. Skaala-invariantti piirremuunnos SIFT................. 37 5. TOTEUTUS JA TULOKSET 40 5.1. Piste-ehdokkaiden tunnistus k-means-algoritmin avulla........ 40 5.1.1. Pisteisiin kuuluvien pikseleiden luokittelu........... 40 5.1.2. Hylkäyskriteerit......................... 41 5.2. Vastinpisteiden tunnistaminen..................... 42 5.2.1. Referenssipisteiden haku.................... 43

5.2.2. Pisteiden siirto tasoprojektiota käyttäen............ 43 5.2.3. Pistevastaavuuksien etsintä ICP-algoritmilla.......... 44 5.2.4. Pistevastaavuuksien etsintä epipolaarigeometrian avulla... 45 5.3. Mittausten teko............................. 46 5.3.1. Käyttöliittymä......................... 47 5.3.2. Hammasmalli.......................... 48 5.3.3. Pisteiden käsittely....................... 49 6. POHDINTAA 51 6.1. Tavoitteiden saavuttaminen....................... 51 6.2. NOrthon ja Orthometrics:n käyttönopeusvertailu........... 51 6.3. Tuleva työ................................ 53 7. YHTEENVETO 54 8. LÄHTEET 56

ALKULAUSE Tämä työ on tehty Oulun yliopiston tietotekniikan osastolle diplomi-insinööritutkinnon opinnäytteenä. Hammaslääketieteen tiedekunnan oikomisopin laitos halusi automatisoida jo olemassa olevaa Orthometrics-ohjelmaa käyttäjäystävällisemmäksi. Tämä työ toteuttaa menetelmiä, jotka vähentävät käyttäjän työmäärää automatisoimalla osan prosessia. Alunperin kaikki työ oli tarkoitus sisällyttää suoraan Orthometrics-ohjelmaan. Ohjelmaan haluttiin lisätä haluttuja piirteitä käyttäen samoja työkaluja kuin alkuperäisessä ohjelmassa. Pian kuitenkin tuli selväksi, ettei tämä enää ollut käytännöllistä työkalujen yhteensopimattomuuksien vuoksi. Päädyttiin kirjoittamaan uusi ohjelma, joka toimii Orthometrics-ohjelman apuohjelmana. Uusi ohjelma NOrtho tallentaa saadut tulokset Orthometrics-ohjelman ymmärtämään tiedostoon, ja lopulliset mittaustulokset voidaan laskea Orthometrics:lla. Pistevastaavuuksien etsimiseen kokeiltiin useita eri menetelmiä, joista sopivimmat esitellään tässä työssä. Ohjelmointi- ja kirjoitustyötä tehtiin ajoittain useamman vuoden aikana. Kiitokset Karille, joka jaksoi aina patistaa minut uudelleen työn pariin. Palo Alto, CA, USA 20. heinäkuuta 2008 Anne Pulli

LYHENTEIDEN JA MERKKIEN SELITYKSET κ 1, κ 2 ρ 1, ρ 2 Radiaaliset vääristymävakiot Tangentiaaliset vääristymävakiot C Kameran optinen keskipiste D u, D v x- ja y-koordinaattiakselien suuntaiset polttovälit e, e Epipolaaripiste F Fundamentaalimatriisi f Polttoväli H π Homograanen muunnos kuvatasolta toiselle K Kalibrointimatriisi L(r) Linssivääristymäfunktio l, l Epipolaariviiva M Kolmiulotteinen piste m Kaksiulotteinen piste P Perspektiiviprojektiomatriisi p Kuvatason pääpiste p 1, p 2 Tangentiaaliset vääristymävakiot r Radiaalinen etäisyys kameran optisesta keskipisteestä C R Rotaatiomatriisi s Skaalaustekijä s u Vinouma t Siirtovektori T, T Translaation ja skaalauksen sisältävät normalisointimuunnokset u, v Ideaaliset kuvakoordinaatit u, v Vääristyneet kuvakoordinaatit u 0, v 0 Kuvatason pääpisteen koordinaatit w Homogeeninen koordinaatti X, Y, Z, x, y, z Kolmiulotteisia koordinaatteja 2D 3D A/D CAD CCD DLT ICP LM MSE RANSAC RMSE SIFT Kaksiulotteinen Kolmiulotteinen Analogia/Digitaalimuunnin Computer Aided Design Charge Coupled Device Direct Linear Transformation Iterative Closest Point Levenberg-Marquardt optimointialgoritmi Mean squared Error Random Sample Consensus Root Mean Squared Error Scale-Invariant Feature Transform

1. JOHDANTO 1.1. Mittauksia hammasvaloksista Hammasvaloksista saatava tieto on hyvin tärkeää hampaiden kehitys- ja oikomisopin tieteenhaaralle. Hammasvaloksista voidaan mitata hampaiden kokoa, muotoa ja sijaintia. Oikomishoidossa hammasvalokset auttavat diagnoosin ja hoitosuunnitelman tekemisessä ja niiden avulla voidaan arvioida hoidon edistymistä. Hampaiden muodon ja rakenteen, sekä niiden välisten etäisyyksien ja kulmien mittaaminen auttavat myös tutkimaan eroja eri ihmisryhmien välillä [1,2]. Hammasvaloksista tehdyt mittaukset on perinteisesti tehty työntömitan tai viivottimen avulla. Nykyisin konenäön menetelmiä voidaan käyttää apuna kolmiulotteisten eli 3D mallien tekoon hammasvaloksista. Tarkimmat mallit voidaan luoda lasermittauksilla; laserilla voidaan päästä muutaman sadasosamillin tarkkuuteen [3]. Lasermittaus kannattaa tehdä useista suunnista ja kulmista, millä varmistetaan, että kaikki pisteet kuvakohteesta tulee kuvatuksi. Saadut kuvat yhdistetään ja niistä rakennetaan CAD-malli (computer aided design). Kuvassa 1 on esimerkki tällaisestä järjestelmästä [3]. Kuva 1. Hayashin lasermittausjärjestelmä. a) Jarjestelmäkaavio. b) Kolme mittausta yhdistetty yhdeksi malliksi. On olemassa hammasvalosten kolmiulotteiseen mallintamiseen erikoistuneita yrityksiä, jotka luovat ohjelmistoillaan hammasvaloksista digitaalisia malleja, joista hammaslääkärit voivat tehdä haluamiaan mittauksia. Tällaisen ohjelmiston käytöllä voidaan huomattavasti vähentää mittauksiin kuluvaa aikaa [4]. Kuvassa 2 nähdään 3Dent ohjelmisto, jolla voidaan visualisoida 3D dataa ja tehdä erilaisia mittauksia kuten etäisyyksiä ja kulmia [5]. Oulun yliopistossa kirjoitettiin 1997-1998 Orthometrics-ohjelma C++ ja Matlabohjelmointikielillä. Orthometrics-ohjelman avulla voi tehdä erilaisia mittauksia hammasvaloksiin merkityistä pisteistä. Kuvassa 3 on esimerkki Orthometrics-ohjelmasta. Kun kameran kalibrointiparametrit tunnetaan, voidaan pisteistä luoda yksinkertainen 3D-malli. Hammasvalos kiinnitetään alustaan, se käännetään viiteen eri asentoon ja joka asennossa kamera ottaa alustasta ja valoksesta valokuvan. Käyttäjä laatii ensin hammasmallin, johon hän merkitsee ja nimeää haluamansa pisteet ja mitä mittauksia

hän haluaa tehdä. Ongelmana on ollut, että käyttäjä on joutunut merkitsemään kaikkien pisteiden keskikohdan hiiren avulla jokaiseen kuvaan. Jos hän haluaa tehdä paljon mittauksia, tarvitaan paljon pisteitä ja niiden merkitseminen yksitellen jokaiseen kuvaan vie aikaa ja vaatii kärsivällisyyttä. Se, että käyttäjä merkitsee pisteet itse, voi aiheuttaa tarkkuusvirheitä ja vaikuttaa siten mittausten tarkkuuteen. 9 Kuva 2. Kaksi näkymää 3Dent mittausohjelmistosta. Kuva 3. Orthometrics-ohjelma. Tässä diplomityössä on kehitetty uusi ohjelma, joka automatisoi pisteiden löytämistä ja identiointia, mutta sallii käyttäjän auttaa järjestelmää, jos se ei itse löydä kaikkia pisteitä. Käyttämällä hahmontunnistusta löydetään pisteet ja käyttämällä rekisteröintialgoritmeja ja epipolaarigeometriaa löydetään oikeat vastineet eli vastinpis-

teet mallipisteille. Näin voidaan pisteiden käsin merkitsemisestä päästä lähes kokonaan. Tätä varten tehtiin uusi käyttöliittymä, NOrtho. 1.2. Uusi käyttöliittymä NOrtho NOrthon pääidea on automatisoida hammasvaloksiin merkittyjen pisteiden paikantamista ja tunnistamista. NOrtho tallentaa nämä tiedot tiedostoihin jotka voidaan ladata alkuperäiseen Orthometrics-ohjelmaan, joka puolestaan laskee pisteiden 3D-paikat sekä pyydetyt etäisyydet ja kulmat. Ensimmäiseksi ohjelma lataa mallikuvan (yhden mittakuvista) ja käyttäjä laatii tai lataa mallin. Malli kertoo kunkin mittauspisteen nimen ja määrittää, mitä pisteitä käyttäen lasketaan etäisyys- ja kulmamittaukset. Seuraavaksi ohjelma analysoi kuvat ja etsii potentiaaliset mittapisteet. Tätä varten kehitettiin algoritmi, joka etsii tummia pisteitä vaalealla pohjalla. Algoritmi mahdollistaa myös pisteiden paikantamisen hiiren avulla. Orthometrics-ohjelmassa käyttäjän piti huolellisesti paikantaa kunkin pisteen keskikohta, mutta NOrthossa riittää, kun käyttäjä nopeasti merkitsee pisteen paikan summittaisesti, niin pisteen tarkka paikka lasketaan automaattisesti. Jokaisessa kuvassa oletetaan löytyvän neljä referenssipistettä, jotka muodostavat suorakaiteen. Nämä pisteet tunnistetaan automaattisesti. Koska mallitiedosto ei sisällä metristä tietoa mittapisteiden geometriasta, on käyttäjän nimettävä yhdestä kuvasta kukin mittapisteistä. Mallikuvan ja mittauskuvan referenssipisteet etsitään ja näiden perusteella lasketaan tasoprojektiosiirros kuvien välille. Muut mallin pisteet siirretään mittauskuvaan käyttäen tätä siirrosta, ja mallipisteille löydetään niitä vastaavat mittapisteet iteratiivisen lähimmän pisteen rekisteröintialgoritmin avulla. Jos kaikki vastinpisteet eivät löydy näin, luodaan jo löydettyjen pisteiden pohjalta kuvien välille epipolaarimallit. Loput mallipisteet etsitään kuvista epipolaarigeometriaa hyväksi käyttäen. Jos järjestelmä ei löydä jotain mittapistettä, tai tekee väärän päätöksen, käyttäjä voi auttaa järjestelmää, korjata virheen, ja antaa järjestelmän löytää loput pistevastaavuudet. Kun kaikista kuvista on löydetty oikeat mittapisteet ja ne vastaavat oikeita mallipisteitä, tulokset talletetaan tiedostoon, josta Orthometrics-ohjelma laskee pisteiden paikat ja määritellyt mittaukset. NOrthon avulla voidaan vähentää käyttäjän työmäärää huomattavasti, sillä hänen ei enää tarvitse merkitä jokaista mittapistettä itse. Mittauksia voidaan nopeuttaa ja tarkentaa automaattisen pisteenhaun avulla. 1.3. Työn rakenne Tämä työ käyttää konenäön menetelmiä automatisoimaan hammasvalosten mittausta valokuvista. Luvussa 2 esitellään työssä käytetty kameramalli ja kameran kalibrointi. Työssä käydään myös läpi muutamia kirjallisuudessa esitettyjä tapoja mitata 3D tietoa kuvissa näkyvistä kohteista. Luvussa 3 määritellään epipolaarigeometria. Sen avulla saman kohdepisteen kahdella eri kuvalla näkyvät kuvapisteet voidaan kytkeä toisiinsa. Kohdassa 3.2 kerrotaan, 10

miten epipolaarigeometria voidaan mallintaa fundamentaalimatriisin avulla. Kerrotaan myös, miten fundamentaalimatriisi määritellään geometrisesti ja algebrallisesti, miten se voidaan ratkaista ja miten sen tarkkuutta voidaan parantaa. Jotta epipolaarigeometria voidaan määritellä ja käyttää sitä hyväksi löytämään pistevastaavuudet, tarvitaan vähintään seitsemän pistevastaavuutta kuvien välillä. (Tässä työssä käytetään kahdeksan pistevastaavuutta.) Tämä muodostaa kehäongelman. Kohdassa 3.3 kerrotaan, miten mallin ja piirrepisteiden vastaavuuksien haku on toteutettu. Kohdassa 3.3.1 kuvataan RANSAC-algoritmi (RANdom SAmple Consensus), joka määrittelee kuinka hyvin näytteet sopivat annettuun malliin ja jota käytetään usein fundamentaalimatriisin arvioinnissa. Kerrotaan myös syistä, miksi sitä ei käytetä. Vaihtoehtoinen, mallipohjainen lähestymistapa määrittää pistevastaavuudet on iteroiva lähimmän pisteen algoritmi, ICP eli Iterative Closest Point, joka kuvataan kohdassa 3.3.2. Jotta epipolaarigeometria voidaan laskea tai ICP-algoritmia soveltaa, täytyy ensin löytää joukko mittauspiste-ehdokkaita. Luvussa 4 esitellään tapoja, miten kuvista voidaan tunnistaa erilaisia piirteitä. Käydään läpi erilaisia ryvästämistapoja, joilla samanlaisia piirteitä voidaan ryhmittää. Kohdassa 4.1.2 esitellään ryvästämismenetelmiin kuuluva k-means algoritmi, josta hammasvaloksiin merkittyjen pisteiden automaattiseen löytämiseen käytetty algoritmi on johdettu. Kohdassa 4.2 kuvataan lyhyesti, miten skaalainvarianttia piirremuunnosta (Scale-Invariant Feature Transform, SIFT) voidaan käyttää tunnistamaan erilaisia piirteitä kuvista ja miten sitä olisi voitu hyödyntää myös tässä työssä. Luku 5 kuvaa tarkemmin järjestelmän toteutuksen ja käytön, sekä antaa tuloksia kuinka hyvin pisteet löydetään useasta kuvasarjasta. Tätä seuraa yleinen keskustelu työstä ja siinä vastaan tulleista ongelmista ja keskustelua kuinka työtä voisi laajentaa (luku 6). Työ päättyy yhteenvetoon luvussa 7. 11

2. 3D-RAKENTEEN ESTIMOINTI KUVASTA Tässä työssä arvioidaan hammasvalosten 3D-rakennetta joukosta valokuvia. Kohdassa 2.1 kuvataan digitaalikameroiden pääkomponentit, minkä jälkeen kohdassa 2.2 esitetään ideaalinen kamerajärjestelmä ja sen matemaattinen mallinnus. Tässä mallissa on useita parametreja, jotka voidaan estimoida joukosta kalibrointikuvia. Lisäksi oikeat linssit aiheuttavat usein kuvaan linssivääristymiä (kohta 2.3), jotka voidaan myös poistaa kalibroimalla. Kohdassa 2.4 kuvataan, miten kalibrointi toimii. 2.1. Digitaalikamerat Kuva 4 näyttää tyypillisen digitaalikamerajärjestelmän. Kuvattava esine on kameran edessä, kameran linssi kerää kohteesta heijastuvan valon ja kohdentaa sen valoherkälle sensorille. Sensorilla oleva tieto siirretään tietokoneelle jatkokäsittelyä varten. 12 Kuva 4. Digitaalikamerajärjestelmä. CCD-kamera (charge-coupled device, kuva 5) on mikropiiri, jonka pinnalla on joukko valoherkkiä kuvaelementtejä eli pikseleitä. Kameraan osuva fotoni kasvattaa Kuva 5. Kuvatieto CCD-kamerasta siirretään sarake kerrallaan puskuriin ja sieltä rivi kerrallaan A/D muuntimen kautta eteenpäin. jonkin pikselin varausta, ja valotuksen päätyttyä nämä varaukset luetaan tietokoneen

muistiin. Analoginen varaus kvantisoidaan diskreetiksi, usein 8-bittiseksi luvuksi, jossa 0 vastaa karkeasti mustaa ja 255 valkoista. Kuvassa 5 esitetään, kuinka CCDkamerassa pikseleiden kohdalle kertyy kunkin luvun osoittama määrä elektroneja. Kukin pystyrivi siirtyy vuorotellen lukupuskuriin ja lukupuskuri siirtyy pikseli kerrallaan alas A/D-muuntimeen (eli analogia-digitaalimuuntimeen) ja edelleen tietokoneeseen [6]. Kukin kuvaelementti mittaa vain valon intensiteettiä, ei väriä. Jos halutaan kuvata värikuvia, pitää käyttää vähintään kolmea eri suodatinta, jotka suodattavat valoa eri tavoin. Yleensä tieto talletetaan kolmeen eri kanavaan: esimerkiksi punaiseen (R, red), vihreään (G, green) ja siniseen (B, blue). Tällöin väritietoa kutsutaan RGB-arvoiksi. Kuva 6 osoittaa kolme tapaa mitata väritieto. Ensimmäisessä kuvassa on suodatinkiekko kuvasensorin edessä. Otetaan kolme kuvaa, ja kunkin kuvan oton välillä kiekkoa kierretään. Haittana on, että kuvat otetaan eri ajan hetkinä. Seuraavassa kuvassa valonsäteet hajautetaan kolmeen osaan, joista kukin menee kuvasensorille, jonka edessä on värisuodatin. Nyt kaikki värikomponentit mitataan samanaikaisesti, mutta kamerasta tulee kalliimpi, ja kullekin sensorille tulee kolme kertaa vähemmän valoa, mikä voi lisätä mittauksen kohinaa [7]. Nykyään yleisin tapa on käyttää Bayermatriisia, jossa kunkin yksittäisen elementin edessä on värisuodatin. Neljän pikselin ryhmistä otetaan yksi punainen, yksi sininen ja kaksi vihreää näytettä. Haittana on, että värinäytteet tulevat eri paikoista ja jatkuva valosignaali pitää estimoida näytteistä. Etuna on kuvasensorin pieni koko, toteutushelppous ja halpa hinta. 13 Kuva 6. Kolme tapaa mitata väritietoa: värikiekko, 3-sensorikamera, Bayer-matriisi. 2.2. Kamerageometria Kamera muodostaa kuvan kolmiulotteisesta näkymästä kuvan 7 osoittamalla tavalla. Kohde tallentuu kuvatasolle linssin keskipisteen kautta kulkevia suoria viivoja pitkin ylösalaisin. Tätä mallia kutsutaan perspektiiviprojektioksi. Matemaattisessa mallinnusjärjestelmässä virtuaalinen kuva voidaan esittää oikein päin virtuaalisella kuvatasolla projektion keskipisteen edessä. Tätä mallia tarkastellaan yksityiskohtaisemmin kuvassa 8. Kuva 8 näyttää yksinkertaisen neulansilmämallin. Valo kolmiulotteisesta kohteesta projisoituu kaksiulotteiselle eli 2D kuvatasolle. Projektio voidaan mallintaa piirtämällä säde kolmiulotteisesta pisteestä M = (X, Y, Z, 1) T

kameran optisen keskipisteen C kautta. Säteen leikkauskohta kuvatasolla Z edustaa kolmiulotteisen pisteen kuvaa m = (u, v, 1) T. Tässä työssä m ja M ovat homogeenisia koordinaatteja. Homogeenisissä koordinaateissa 3D-pistettä (X, Y, Z) vastaavat homogeeniset pisteet (wx, wy, wz, w), joissa w 0. Homogeeninen piste (X, Y, Z, 0) vastaa suuntavektoria pisteestä (0, 0, 0) pisteen (X, Y, Z) suuntaan. 14 Kuva 7. Perspektiiviprojektio. Neulansilmämallissa ei oteta huomioon kameran linssin paksuutta tai linssin aukon äärellistä kokoa, vaan oletetaan, että kaikki säteet kulkevat yhden pisteen, linssin keskipisteen kautta. Kamerasta kuvatason kohtisuorasti leikkaavaa viivaa kutsutaan pääakseliksi. Kohta, jossa tämä leikkaa kuvatason on pääpiste p. Kameran ja pääpisteen etäisyys on kameran polttoväli f. Tilapiste M muunnetaan kuvapisteeksi m projektiomatriisin avulla: X u su sm = s v = sv = P Y Z = PM, (1) 1 s 1 jossa s on skaalaustekijä (s 0) ja P on 3 4 perspektiiviprojektiomatriisi. Lopullinen perspektiiviprojektio homograasista 2D-koordinaateista kuvakoordinaatteihin kuvatasolle, joka on etäisyydellä f origosta, saadaan jakamalla s pois ja jättämällä homograanen koordinaatti huomiotta. Matriisi P:llä on 12 elementtiä, mutta koska se on projektiomatriisi, sillä on vain 11 vapausastetta. Se voidaan kirjoittaa P = K [R t], (2)

15 Y X C Kameran optinen keskipiste m Kuvataso v p u Z Pääpiste. Piste, jossa pääakseli leikkaa kuvatason M Pääakseli. Kameran optisesta keskipisteestä lähtevä viiva, joka lävistää kuvatason kohtisuorasti. polttoväli f Kuva 8. Kameran neulansilmämalli. jossa K on 3 3 kalibrointimatriisi, joka muuntaa normalisoidut kuvakoordinaatit kamerakoordinaatteihin. Matriisi K on muotoa D u s u u 0 K = 0 D v v 0 0 0 1, (3) jossa D u ja D v ovat u- ja v-koordinaattiakselien suuntaiset polttovälit, s u on vinouma ja u 0 ja v 0 ovat pääpisteen p koordinaatit [8]. Nämä sisäiset parametrit kuvaavat kameran sisäisiä ominaisuuksia. Useimmilla kameroilla pikseleiden rivit ovat tarkalleen kohtisuorassa sarakkeisiin nähden, jolloin vinouma s u on nolla. Kameran sisäiset parametrit on kalibroitu, jos matriisi K tunnetaan [9,10]. Matriisi [R t] = r 00 r 01 r 02 t x r 10 r 11 r 12 t y r 20 r 21 r 22 r z (4) sisältää kameran ulkoiset parametrit, eli missä paikassa ja asennossa kamera sijaitsee näkymän koordinaatiston suhteen [11, 12]. Kolmiulotteisessa siirtymässä suoritetaan ensin rotaatio ja sitten translaatio. Muunnos koordinaateista C 1 koordinaatteihin C 2 voidaan ilmaista C 12 = [ ] R t = 0 1 3 1 [ I3 3 t 0 1 3 1 ] [ R ] 03 1 0 1 3 1 Rotaatio R kiertää kohdetta origon ympäri, mutta siirtämällä jokin toinen piste ensin origoon, suorittamalla kierto, ja siirtämällä origo alkuperäiselle paikalleen on myös mahdollista kiertää kohde kyseisen pisteen ympäri. Translaatio suoritetaan lisäämällä objektin koordinaatteihin siirtovektori t = [t x, t y, t z ]. Kuvassa 9 on esimerkit translaatiosta, rotaatiosta origon ympäri ja rotaatiosta jonkin tietyn pisteen ympäri. (5)

16 Kuva 9. Translaatio ja rotaatio. 2.3. Linssivääristymä Edellä kuvattu ideaalinen neulansilmäprojektio toimii, jos kaikki valonsäteet kulkevat saman pienen reiän kautta. Ongelmana on, että valoa pääsee sensorille liian vähän, mistä johtuen kuvan ottaminen kestää liian kauan ja kuvasta tulee kohinainen. Myös jos reikä on liian pieni, valon difraktio tuottaa epätarkan kuvan. Jos reikää laajennetaan ja aukkoon laitetaan linssi tai linssijärjestelmä, joka kokoaa valon yhteen, kuvasta tulee tarkka ja kuva voidaan ottaa riittävän nopeasti. Valitettavasti todelliset linssit aiheuttavat kuvaan usein vääristymistä. Kuvassa 10 on esitetty sekä tynnyri- että neulatyynyvääristymä. Positiivinen radiaalinen vääristymä eli tynnyrivääristymä siirtää kuvapistettä ulospäin suhteessa ideaaliseen sijaintiin. Neulatyynyvääristymällä tarkoitetaan puolestaan negatiivista eli kuvapistettä sisäänpäin siirtävää radiaalista vääristymää. [13] Kuva 10. Tynnyri -ja neulatyynyvääristymät. Linssivääristymän voi poistaa kalibroinnilla. Käyttämällä tietoa, että projektio pitää suorat viivat suorina, voidaan vääristyneet viivat muuntaa suoriksi sopivalla yhtälöllä. Siten radiaalinen linssivääristymä voidaan ilmaista [ ] u = L(r) v [ u v ], (6) jossa (u, v) ovat ideaaliset kuvakoordinaatit, (u, v ) ovat vääristyneet kuvakoordinaatit, r on radiaalinen etäisyys u 2 + v 2 optisesta keskipisteestä C ja L(r) on funktio vääristymälle. Funktio L(r) on määritelty ainoastaan positiivisilla arvoilla r ja

17 L(0) = 1 ja se voidaan esittää Taylorin sarjojen avulla seuraavasti äärettömänä funktiona L(r) = 1 + k1 r + k2 r2 + k3 r3 +.... (7) Koska radiaalinen vääristymä oletetaan symmetriseksi optisen keskipisteen suhteen, voidaan sarjan parittomien termien kertoimet k1, k 3,..., k n merkitä nolliksi. Usein käytetty yhtälö radiaaliselle linssivääristymälle huomioi vain etäisyyden mäistä parillista kerrointa k2, k 4, r pari ensim- jotka riittävät tarpeelliseen tarkkuuteen. Näitä ker- κ1, κ2. Yhtälö voidaan kirjoittaa ui (κ1 ri2 + κ2 ri4 ). (8) = vi (κ1 ri2 + κ2 ri4 ) toimia kutsutaan radiaalisiksi vääristymävakioiksi u0 i v0i Tangentiaalinen linssivääristymä voidaan ilmaista yhtälöllä 0 u 2ρ1 ui vi + ρ2 (r2 + 2ui 2 ) =, 2ρ2 ui vi + ρ1 (r2 + 2vi 2 ) v0 jossa (9) ρ1 ja ρ2 ovat tangentiaaliset vääristymävakiot. Yhdistämällä yhtälöt 8 ja 9 linssivääristymä voidaan kirjoittaa 0 u u(1 + κ1 r2 + κ2 r4 ) + 2ρ1 uv + ρ2 (r2 + 2u2 ). = v0 v(1 + κ1 r2 + κ2 r4 ) + 2ρ2 uv + ρ1 (r2 + 2v 2 ) (10) Useimmat linssivääristymät voidaan mallintaa riittävän tarkasti käyttämällä kaavaa 10. 2.4. Kameran kalibrointi Kameran kalibrointitekniikka kehittyi fotogrammetristen mittaus- ja kartoitusmenetelmien kehittymisen myötä. Ilmakuvakartoituksessa on ollut tapana suorittaa mittauksia stereotarkastelun avulla ja aika pian tuli selväksi, että kameran kalibrointia tarvittiin paremman tarkkuuden saamiseksi. [14] Myös konenäköjärjestelmien toimivuus on usein sidoksissa siihen, kuinka hyvin kameran kalibrointi on tehty. Yleensä kalibroinnissa käytetään tunnettua kalibrointiesinettä, kuten kuvan 11 kalibrointilevyä, josta otetaan useita kuvia eri suunnista. Kuva 11. Kalibrointilevyt. Kameran kalibroinnissa lasketaan sekä kameran ulkoiset ja sisäiset parametrit; ulkoisia parametreja tarvitaan objektin koordinaattien muunnossa kamerakoordinaatteihin, kun taas sisäisiin parametreihin lasketaan polttoväli, kuvakeskus eli pääpiste ja skaalaustekijät. Kameran kalibroinnilla voidaan laskea sekä linssivääristymä (esimerkiksi säteittäinen ja tangentiaalinen vääristymä) että perspektiiviprojektiomatriisiin sisältyvät matriisi K, rotaatio ja translaatio.

Kameran geometriseen kalibrointiin on esitetty useita menetelmiä. Koska kalibroinnissa täytyy ratkaista useita parametreja, klassinen tapa ratkaista ne on epälineaarinen optimointi. Ne antavat yleensä hyvän tarkkuuden, mutta vaativat hyvän alkuarvauksen ja voivat olla laskennallisesti raskaita [15]. Epälineaarisiin optimointimenetelmiin voidaan laskea mm. bundle adjustment, jossa samanaikaisesti lasketaan niin kohteen koordinaatit, kameran sijainti kuin linssiparametritkin [14, 16]. Nimi bundle adjustment kuvaa tapaa, miten valonsädekimput lähtevät 3D kohteesta ja konvergoituvat kameran keskipisteessä. Sillä viitataan myös tapaan ratkaista kaikki parametrit samanaikaisesti yhtenä kimppuna. Perinteisesti bundle adjustment ja muut samankaltaiset optimointimenetelmät esitetään epälineaarisina pienimmän neliösumman yhtälöinä [15,17]. Jos linssivääristymää ei oteta huomioon, voidaan muunnos maailmankoordinaateista kuvakoordinaatistoon esittää lineaarisilla yhtälöillä, jolloin perspektiivimatriisi saadaan ratkaistua pienimmän neliösumman menetelmällä ja kameraparametrit perspektiivimatriisin avulla. Tällaiset menetelmät voivat kuitenkin olla alttiita kohinalle ja antaa vääriä tuloksia. Eritoten kolmiulotteisissa mittauksissa linssivääristymän huomiotta jättäminen voi aiheuttaa virheitä [18]. Monet menetelmät laskevat lineaarisella menetelmällä karkean alkuarvauksen, jota sitten tarkennetaan epälineaarisella minimoinnilla [15]. Tässä työssä käytetty Heikkilän ja Silvénin kehittämä kalibrointimenetelmä on laajennettu versio tällaisesta kahden askeleen kalibrointimenetelmästä. Aluksi ratkaistaan yhtälön 3 parametrit D u, D v, s u, u 0, v 0 käyttämällä suoraa lineaarista muunnosta eli DLT:tä (Direct Linear Transformation) ja joukkoa 3D-2D vastinpistepareja, jotka on mitattu tunnetusta kalibrointikuviosta [19]. Seuraavaksi pikselikoordinaatit muutetaan fyysisiksi koordinaateiksi merkitsemällä ũ i = u i u 0 D u s u, v i = v i v 0 D v ja r i = 18 u i2 + v i2. (11) Edellä kuvatuissa yhtälöissä on kuvattu kuinka ideaaliset koordinaatit vääristyvät. Useammin tarvitaan kuitenkin muunnosta vääristyneistä koordinaateista ideaalisiksi. Heikkilä ja Silvén tekevät tämän määrittelemällä yhtälön [ ũi ṽ i ] = δ(ũ i) = 1 [ ũ i + ũ i (a 1 r 2 i + a 2 r 4 i ) + 2a 3 ũ iṽ i + a 4 (r 2 i + 2ũ 2 i ) G ṽ i + ṽ i (a 1 r 2 i + a 2 r 4 i ) + 2a 4 ũ iṽ i + a 3 (r 2 i + 2ṽ i 2 ) ], (12) jossa G = ( ) a 5 r 2 i + a 6 ũ i + a 7 ṽ i + a 2 8 ri + 1. Yhtälössä on kahdeksan tuntematonta a 1, a 2,..., a 8, jotka voidaan ratkaista esimerkiksi käyttämällä iteratiivista pienimmän neliösumman menetelmää. Jos ideaalisille kuvapisteille pitää laskea linssivääristymä ja tunnetaan takaisinprojektioyhtälö 12, tämä voidaan tehdä iteroimalla pari askelta seuraavasti: ũ i = ũ i δ(ũ i δ(ũ i)). (13) Perspektiiviprojektio ei säilytä muotoa, vaikka viivat projisoituvatkin viivoiksi. Kaksi- ja kolmiulotteiset esineet vääristyvät, jos ne eivät ole samassa tasossa kuvatason kanssa. Esimerkiksi ympyrä voi projisoitua ellipsiksi, kuten kuvassa 12.

Projisoidun ympyrän keskipiste ei ole sama kuin kuvatasossa vääristyneen ellipsin keskipiste. Jos kalibrointipisteet ovat laajempia kuin yhden pikselin kokoisia ympyröitä, tämä projisointivääristymä kannattaa ottaa huomioon Heikkilän ja Silvénin kuvaamalla tavalla [19]. 19 Kuva 12. Ympyrän perspektiiviprojektio. 2.5. 3D-pinnan estimointi kuvasta Kuten aiemmin kerrottiin, kamera muuntaa näkymän kolmiulotteisista esineistä kaksiulotteisiksi kuviksi. Jos samasta esineestä on useita kuvia, on olemassa useita tapoja yrittää palauttaa kolmas ulottuvuus, etäisyys, kamerakuvaan. Seuraavaksi käydään läpi lyhyesti muutamia näistä tavoista. Etäisyys- eli syvyystieto kuvista voidaan ratkaista kolmiomittauksen avulla. Kolmiomittauksia käyttäviä metodeja on esimerkiksi stereokuvaus, laserviivaskannaus ja aika- tai värikoodattu valaistus. Perinteisessä stereokuvauksessa kolmiulotteinen malli rakennetaan ottamalla kaksi kuvaa kohteesta eri paikoista kuten kuvassa 13 on esitetty [20]. Stereokuvaus on yksi tutkituimpia konenäon tutkimusaloja ja uusia metodeja kehitetään jatkuvasti [21]. Kolmiomittaus käyttää vähintään kahta tunnettua (scene viewpoints) pistettä kohdekuvasta. Yhtäläiset piirteet pisteistä tunnistetaan, ja niistä piirrettyjen säteiden avulla etsitään kunkin piirteen 3D-paikka. Kirjallisuudessa kolmiomittaustekniikat jaetaan usein joko aktiivisiin tai passiivisiin metodeihin. Aktiiveja metodeja ovat mm. laserskannaus ja valaistusmetodit. Niissä tarkoituksellisesti valaistaan kohde, jotta jotkin piirteet erottuisivat helpommin. Passiiviset stereoalgoritmit sen sijaan yrittävät löytää vastaavuuksia kuvista, joista ei tiedetä

mitään etukäteen [22]. Kolmiomittaustekniikat voidaan myös ryhmitellä tilan tai ajan avulla. 20 Kuva 13. Stereokuvaussysteemikaavio. Perinteinen laserskannaus ja passiivinen stereo yleensä tunnistavat piirteitä vain tilassa eli vastaavuudet löydetään määrittelemällä pikseleiden samankaltaisuutta kuvatasolla. Aikakoodattu valaistus ja -laserskannaus käyttävät taas piirteitä, jotka ovat ajallisia [23]. Aikakoodattu valaistus auttaa löytämään vastinpisteet esimerkiksi silloin, kun kohde on tasavärinen. Kuvassa 14 on esitetty, kuinka kohde voidaan valaista erilaisilla valaistuskuvioilla. Kuviot on järjestetty siten, että valaistusraidat voidaan tunnistaa ja jokaisen pikselin etäisyys kamerasta voidaan laskea. Kuva 14. Valaistuskuvioiden käyttö etäisyysmittauksessa. Etäisyystieto voidaan saada selville myös liikuttamalla joko kameraa tai kohdetta. Tätä tapaa kutsutaan nimityksellä structure from motion eli rakenne liikkeestä. Kuvien välinen liike voidaan määrittää ottamalla vähintään kaksi kuvaa samasta kohteesta. Tätä tapaa käytetään Orthometrics-ohjelmassa, jossa samasta kohteesta otetaan viisi eri kuvaa. Laskennallisesti menetelmä on melko samanlainen kuin stereokuvauksessa.

Kuvassa 15 on esitetty, miten etäisyystieto voidaan rakentaa structure from motion tavasta. 21 Kuva 15. Liikkeen käyttö rakenteen mallinnuksessa. Depth from focus/defocus -tavassa 3D-malli rakennetaan kahdesta tai useammasta kuvasta vaihtamalla kameran polttoväliä. Kuvassa 16 esitetään tapa, jolla kohteesta voidaan ottaa kuva samanaikaisesti siten, että kameran kuvataso on eri etäisyydellä linssistä. Järjestelmässä käytetään peiliä jakamaan kuva, jonka jälkeen se menee kahden erilaisen linssin läpi. Tuloksena on kaksi samanlaista kuvan 17 esittämää kuvaa, joiden ainoa ero on terävyysalue (depth of eld) [24]. Kuva 16. Depth from focus linssijärjestelmä. Kuva 17. Kuvat samasta kohteesta eri terävyyksillä.

3. EPIPOLAARIGEOMETRIA JA PIIRREVASTAAVUUKSIEN HAKU Epipolaarigeometria määrittelee, kuinka yhden kameran kuvatason pisteitä vastaavat 3D-viivat kuvautuvat toisen kameran kuvatasolle. Epipolaarigeometriaa käytetään tässä työssä etsimään pistevastaavuuksia kuvien välillä. Se miten itse pisteet löydetään, kuvataan seuraavassa luvussa 4. Sen sijaan tämä luku keskittyy siihen, miten oikeille mallipisteille löydetään oikeat parit lukuisien piste-ehdokkaiden joukosta. Kohdassa 3.1 määritellään epipolaarigeometria ja kohdassa 3.2 fundamentaalimatriisi. Kohdassa 3.2.3 kerrotaan, kuinka fundamentaalimatriisi voidaan ratkaista numeerisesti vähintään kahdeksalla pisteparilla ja kohdassa 3.2.4 kerrotaan, kuinka sen tarkkuutta voidaan parantaa normalisoinnilla ja Levenberg-Marquardt eli LM-optimointialgoritmilla. Lopuksi käydään läpi kaksi tapaa etsiä mallipisteitä vastaavat kuvapisteet. Kohdassa 3.3.1 kuvataan RANSAC-algoritmi ja miten sitä voidaan käyttää fundamentaalimatriisin estimointiin ja piirrevastaavuuksien etsintään. Samalla kerrotaan myös syistä, miksi sitä ei tässä työssä käytetä. Tässä työssä piirrevastaavuudet kuvissa ovat lähes samassa tasossa, joten tasoprojektiota voidaan käyttää hyväksi ja pistevastaavuudet voidaan etsiä iteratiivisella lähimmän pisteen algoritmilla (ICP, kohta 3.3.2). 3.1. Epipolaarigeometrian määritelmä Jos samasta kohteesta M otetaan kuvat kahdesta eri näkökulmasta, nämä kuvat voidaan yhdistää toisiinsa niiden keskinäisellä projektiivisilla geometrialla eli epipolaarigeometrialla. Epipolaarigeometrialla voidaan kuvata, miten saman kohdepisteen kahdella eri kuvatasolla olevat kuvapisteet m ja m vastaavat toisiaan. Epipolaariehdon mukaan jokaiselle kuvapisteelle m on olemassa toisella kuvatasolla epipolaari- eli sydänsuora l m, jolle kyseisen kuvapisteen vastinpiste kuvautuu. Kuvasta 18 voidaan nähdä, että kamerapisteet C ja C, tilapiste M ja kuvapisteet m ja m ovat koplanaarisia eli sijaitsevat samalla epipolaaritasolla Π. Epipolaaripisteet e ja e ovat pisteitä, joissa kamerapisteiden välinen viiva eli kantaviiva CC leikkaa kuvatasot I ja I. Kaikki toisen kuvan pisteiden epipolaariviivat l m kulkevat yhteisen epipolaaripisteen e läpi. Tästä tasoehdosta huomataan, että epipolaariviiva l m on kuvatason I ja epipolaaritason Π leikkaus. Kuvassa 18 kameran C kuvapistettä m vastaa kameran C kuvatasolla I epipolaariviiva l m. Kaikki tilapisteet, jotka projisoituvat kuvapisteelle m kuvatasolla I projisoituvat myös tälle samalle epipolaariviivalle kuvatasolla I. Epipolaarigeometria on symmetrinen, sillä kuvatason I pisteiden m vastinpisteet sijaitsevat kuvatason I epipolaariviivalla l m. Kuvassa 19 on esimerkki epipolaarigeometriasta. Kuvista voi nähdä, että molempien epipolaaripisteet sijaitsevat kuvan ulkopuolella, eli toisen kuvan kameran keskipiste on kuvan ulkopuolella. Viivoista voi nähdä, mihin suuntaan ne konvergoituvat ja niiden perusteella voi kertoa, missä suunnassa kamera on. 22

23 M l m C Epipolaaritaso Π l m m m e e C Kuvataso I Kuvataso I Kuva 18. Epipolaarigeometria. Kuva 19. Pisteet ja niiden epipolaariviivat. 3.2. Fundamentaalimatriisi Epipolaarigeometria voidaan mallintaa käyttämällä joko essentiaali- tai fundamentaalimatriisia. Longuett-Higgins esitti essentiaalimatriisin periaatteen 1981 ilmestyneessä artikkelissa A Computer Algorithm for Reconstructing a Scene from Two Projections [25]. Luong, Faugeras ja Hartley ovat määritelleet fundamentaalimatriisin ja käsitelleet sen luonnetta useissa artikkeleissa [26 30]. Molemmat matriisit ovat periaatteessa samoja. Jos kamera on kalibroitu eli kameran kalibrointiparametreja voidaan käyttää epipolaarigeometrian laskemiseen, matriisia kutsutaan essentiaalimatriisiksi. Nimitystä fundamentaalimatriisi käytetään, jos kameraa ei ole kalibroitu ja epipolaarigeometrian laskemiseen tarvitaan vastinpisteitä. Fundamentaalimatriisi voidaan johtaa monella tavalla [8]. Kuvasta 18 nähdään, että jokainen pistettä m vastaava 3D piste projisoituu e :n kautta kulkevalle viivalle l, joten

pistettä m vastaava piste m täytyy löytyä tältä epipolaariviivalta (olettaen että piste M näkyy kuvassa I ). On siis olemassa kuvaus m l. (14) Projektiivinen kuvaus pisteestä viivaksi esitetään fundamentaalimatriisin F avulla: l = Fm. (15) Kohdissa 3.2.1 ja 3.2.2 johdetaan fundamentaalimatriisi F sekä geometrisesti että algebrallisesti. Nämä johtamiset auttavat ymmärtämään fundamentaalimatriisin luonnetta, mutta eivät suoraan auta ratkaisemaan matriisia. Fundamentaalimatriisilla on seitsemän vapausastetta, joten se on mahdollista estimoida seitsemällä pistevastaavuudella [8, 31, 32]. Yleensä kuitenkin pistevastaavuuksia on enemmän kuin seitsemän ja fundamentaalimatriisin ratkaiseminen voidaan tehdä helpommin ja luotettavammin kohdassa 3.2.3 esitetyllä tavalla. 3.2.1. Fundamentaalimatriisin geometrinen määrittely Kuvassa 20 piste m kuvatasolla I kuvautuu tason Π kautta kuvatasolle I m = H Π m, (16) jossa H Π on homogranen muunnos yhdeltä tasolta toiselle, tässä tapauksessa pisteeltä m pisteelle m tason Π kautta. 24 Kuva 20. Fundamentaalimatriisin määritys geometrisesti. Epipolaariviiva l saadaan, kun m ja epipolaaripiste e yhdistetään viivalla. Epipolaariviiva voidaan kirjoittaa ristitulona l = e m = [e ] m, (17) missä [e ] on 3 3 vinosymmetrinen matriisi, joka toteuttaa ristitulon. Yhdistämällä yhtälöt 16 ja 17 saadaan l = [e ] H Π m = Fm, (18) jossa F = [e ] H Π on fundamentaalimatriisi.

3.2.2. Fundamentaalimatriisin algebrallinen määrittely Fundamentaalimatriisi voidaan kuvata algebrallisesti kahden kameraprojektiomatriisin P ja P avulla kuvan 21 osoittamalla tavalla. Matriisi P projisoi pisteen M kuvatasolle pisteeksi m PM = m (19) ja matriisi P projisoi pisteen M toiselle kuvatasolle pisteeksi m 25 P M = m. (20) Kuva 21. Fundamentaalimatriisin määritys algebrallisesti. Jos piste m ja matriisi P tunnetaan, yhtälö muille samalla suoralla sijaitseville pisteille M (λ) voidaan muodostaa M (λ) = P + m + λc, (21) missä P + on matriisin P pseudoinverssi (eli PP + = I) ja C on matriisin P nollavektori eli kameran keskipiste PC = 0. Säde on parametrisoitu skalaarilla λ. Kun λ:n arvoksi sijoitetaan nolla, saadaan piste M: M(0) = P + m, ja arvolla λ = tuloksena on ensimmäisen kameran keskus C. Nämä kaksi pistettä kuvautuvat jälkimmäiselle kameralle pisteinä P P + m ja P C. Epipolaariviiva, joka yhdistää pisteet, on siten Piste P C on epipolaaripiste e, joten missä F = [e ] P P + on fundamentaalimatriisi. l = (P C) (P P + m). (22) l = [e ] (P P + m) = Fm, (23)

26 3.2.3. Fundamentaalimatriisin numeerinen ratkaisu Fundamentaalimatriisi toteuttaa seuraavan ehdon kullekin pistevastaavuudelle m m koska m sijaitsee epipolaariviivalla l = Fm. Toisin sanoen m T Fm = 0, (24) m T l = m T Fm = 0. (25) Yhtälö antaa mahdollisuuden laskea fundamentaalimatriisi ilman kameramatriiseja pelkkien pistevastaavuuksien avulla. Pisteiden m i = [u i, v i, 1] T ja m i = [u i, v i, 1] T pitää toteuttaa epipolaariyhtälö 24 eli Tämä voidaan kirjoittaa muodossa m T i Fm i = 0. u iu i f 11 + u iv i f 12 + u if 13 + v iu i f 21 + v iv i f 22 + v if 23 + u i f 31 + v i f 31 + f 33 = 0, (26) joka voidaan ilmaista vektorien sisätulona (u iu i, u iv i, u i, v iu i, v iv i, v i, u i, v i, 1) f = 0, kun f = f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 Jos pistevastaavuuksia on n kappaletta muodostuu lineaarinen yhtälöryhmä Af = u 1u 1 u 1v 1 u 1 v 1u 1 v 1v 1 v 1 u 1 v 1 1.... u nu n u nv n u n v nu n v nv n v n u n v n 1...... (27) f = 0. (28) Jos A:n asteluku on kahdeksan, uniikki ratkaisu f:lle löytyy A:n oikeanpuoleisesta nolla-avaruudesta. Jos asteluku on seitsemän, nolla-avaruus on kaksiulotteinen. Käyttämällä rajoitetta että fundamentaalimatriisin asteluvun on oltava kaksi voidaan f:lle ratkaista yksi tai kolme ratkaisua ratkaisemalla kolmannen asteen yhtälö [8, 32]. Käytännössä helpoin tapa löytää lineaarinen ratkaisu on käyttää vähintään kahdeksaa pistevastaavuutta, tehdä A:lle singulaariarvohajotelma UDV T ja ottaa vastaukseksi pienintä ominaisarvoa vastaava ominaisvektori (V:n oikeanpuoleisin sarake). Fundamentaalimatriisin tärkeä ominaisuus on kuitenkin, että se on singulaarinen ja sen aste on kaksi eli sen determinantin pitää olla nolla. Jos singulaarisuusehto ei toteudu, lasketut epipolaariviivat eivät kulje yhden epipolaaripisteen kautta. Fundamentaalimatriisi F voidaan korjata jälkikäteen korvaamalla matriisi F matriisilla ˆF, joka

F = U minimoi ns. Frobeniuksen normin F ˆF ja jolle ehto det ˆF = 0 toteutuu. Jos matriisin F singulaariarvohajotelma on V T, (29) σ 1 0 0 0 σ 2 0 0 0 σ 3 jossa S = diag(σ 1, σ 2, σ 3 ) on diagonaalimatriisi ja U ja V ovat ortogonaalimatriiseja, asettamalla pienin ominaisarvo nollaksi ˆF = UŜV T = U σ 1 0 0 0 σ 2 0 0 0 0 27 V T (30) saadaan singulaarinen matriisi F, joka samalla minimoi Frobeniuksen normin. 3.2.4. Fundamentaalimatriisin tarkkuuden parantaminen Jos fundamentaalimatriisin laskennassa käytetään pikselikoordinaatteja, voivat tulokset olla hyvin epätarkkoja. Pisteiden normalisoinnilla voidaan parantaa tuloksia huomattavasti. Ratkaisun tarkkuutta voidaan edelleen parantaa matriisin laskennallisen virheen iteratiivisella epälineaarisella minimoinnilla, johon voidaan käyttää LM-optimointialgoritmia. Vielä tarkempaan tulokseen voidaan päästä minimoimalla pisteiden ja epipolaariviivojen välistä geometrista etäisyyttä kuvatasossa käyttämällä esimerkiksi nk. Gold-Standard menetelmää. Hartleyn ja Zissermanin mukaan LM tuottaa kuitenkin lähes yhtä tarkan tuloksen ja on huomattavasti helpompi toteuttaa [8]. Seuraavaksi kuvataan normalisointi ja virheen iteratiivinen minimointi LM-algoritmilla. Normalisointi Moni numeerinen algoritmi antaa paljon tarkempia tuloksia kun mittatiedot on ensin normalisoitu. Pisteiden normalisointi 2D-koordinaatistossa tehdään seuraavasti [8,33, 34]: Pisteet m i siirretään niin, että uusien pisteiden m i keskiarvo eli sentroidi on origossa (0, 0) T. Pisteet skaalataan isotrooppisesti siten, että kunkin pisteen m i keskimääräinen etäisyys origosta on 2. (Kolmiulotteisessa koordinaatistossa etäisyys olisi 3.) Muunnos tehdään molemmille kuville erikseen. Pisteet normalisoidaan siten, että m i = Tm i ja m i = T m i, joissa T ja T ovat translaation ja skaalauksen sisältävät normalisointimuunnokset.

Kuvassa 22 nähdään kuvapisteet pikselikoordinaatistossa ja normalisoidussa koordinaatistossa. Tämän jälkeen normalisoitujen pistejoukkojen m ja m avulla lasketaan fundamentaalimatriisi edellä kuvatulla tavalla. Lopuksi puretaan normalisointi eli ratkaistaan fundamentaalimatriisi F alkuperäisille pisteille yhtälöstä F = T T ˆFT. 28 Kuva 22. Pikselikoordinaatit ja normalisoidut koordinaatit. Virheen iteratiivinen minimointi Edellä kuvattu lineaarinen ratkaisu on vain likiarvo oikealle vastaukselle. Aluksi minimoidaan Af f:n suhteen kun f = 1, ja vasta sen jälkeen haetaan sitä lähellä oleva singulaarinen matriisi. Parempi ratkaisu löytyy jos nämä rajoitteet otetaan huomioon samanaikaisesti. Tälle ei löydy lineaarista suljetun muodon ratkaisua, mutta iteratiivinen ratkaisu on mahdollinen [8]. Ratkaisun perusidea on ensin laskea arvio epipolaaripisteen e paikalle. Sitten lasketaan fundamentaalimatriisi f joka on singulaarinen ja jonka epipolaaripiste on e, ja joka minimoi yhtälön Af kun f = 1. Tämä voidaan tehdä määrittelemällä f = Em, jossa E on 9 9 matriisi ja [e] E = [e] = [e] [e] 0 e z e y e z 0 e x e y e x 0 (31) Lopulta minimoidaan yhtälö AEm siten, että Em = 1, ja tulos on f = Em. Lasketaan hajotelma E = USV T, otetaan U:n kuusi ensimmäistä saraketta U' (koska E:n aste on kuusi), lasketaan AU :n pienintä ominaisarvoa vastaava ominaisvektori v, vastaukseksi saadaan f = U v. Yllä laskettiin f:lle arvo olettaen, että e on tunnettu. Iteroimalla e:n paikkaa siten, että AEm minimoituu päädytään lopulliseen ratkaisuun. Tämä iterointi tehdään käyttämällä LM-algoritmia..

Ensimmäinen arvio e:lle saadaan laskemalla F käyttäen aiemmin esiteltyä lineaarista ratkaisua, tekemällä F:lle singulaariarvohajotelma ja ottamalla V:n viimeinen sarake. 3.3. Mallin ja piirrepisteiden vastaavuuksien haku Jotta epipolaarigeometria kuvien välillä pystyttäisiin määrittelemään edellä kuvatulla tavalla, täytyy ensin tuntea vähintään kahdeksan malli-piirrepiste paria. Perinteinen tapa, RANSAC algoritmi pisteparien löytämiseksi esitellään ensin. Sen jälkeen esitellään vaihtoehtoinen tapa löytää kerralla kaikille tai lähes kaikille mallipisteille vastaavat piirrepisteet käyttäen iteratiivista lähimmän pisteen algoritmia (ICP, Iterative Closest Points). 3.3.1. RANSAC-algoritmi RANSAC-menetelmä julkaistiin ensimmäisen kerran Fischlerin ja Bollesin vuoden 1981 artikkelissa Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography [35]. Oletetaan, että on joukko näytteitä, joista vain osa kuuluu etsittyyn malliin. Menetelmässä valitaan satunnaisesti riittävän suuri joukko näytteitä, joista voidaan arvioida etsityn mallin parametrit. Jos esimerkiksi etsittäisiin yhtälöä viivalle, joka kulkee näytejoukon kautta, riittää, että valitaan kaksi näytettä, jotka määrittävät viivan parametrit. Tämä arvaus viivasta tarkistetaan käyttäen muita näytteitä: jos viiva on lähellä tarpeeksi suurta joukkoa näytepisteitä arvaus oli hyvä. Arvaus toistetaan riittävän monta kertaa ja malli, joka parhaiten sopii näytearvoihin, tai edes osaan näytearvoista, valitaan, kuten kuvassa 23 on esitetty. 29 (a) (b) Kuva 23. (a) Joukko pisteitä, mistä 2D-viiva olisi löydettävä. (b) RANSACalgoritmilla löydetty viiva.

Seuraavaksi tarkastellaan yleistä RANSAC-algoritmia [36,37]. Aluksi tehdään joukko määritelmiä: Parametrit voidaan ratkaista käyttäen N näytettä. Näytteitä on yhteensä M kappaletta. Todennäköisyys sille, että yksittäinen valittu kuuluu etsittävään malliin, on p. Todennäköisyys sille, että algoritmi epäonnistuu, on p f. Algoritmi etenee seuraavasti. 1. Valitaan satunnaisesti N näytettä ja estimoidaan niiden perusteella parametrivektori x. 2. Selvitetään, kuinka monta näytettä joukosta M sopii parametrien x muodostamaan malliin käyttäjän asettaman kynnysarvon mukaan. Kutsutaan tätä joukkoa kirjaimella K. Jos K on tarpeeksi suuri, hyväksytään malli ja lopetetaan. 3. Edellisiä kohtia toistetaan L kertaa. 4. Jos K ei ollut kertaakaan tarpeeksi suuri, etsintä epäonnistui. Hyväksyttävä suuruus joukolle K riippuu siitä, kuinka suuri osa näytteistä oletetaan kuuluvan malliin sopivaan rakenteeseen ja kuinka monta rakennetta kuvassa on. Jos kuvassa on useita malliin sopivia rakenteita, algoritmi voidaan ajaa uudelleen. Tarvittavien toistojen lukumäärä L voidaan arvioida seuraavasti: p f = todennäköisyys sille, että epäonnistutaan L kertaa p f = (todennäköisyys sille, että yksi yritys epäonnistuu) L p f = (1 - todennäköisyys sille, että yritys onnistuu) L p f = (1 - (todennäköisyys sille, että satunnainen näyte sopii malliin) N ) L, joka voidaan merkitä p f = (1 p N ) L, ja josta voidaan ratkaista log p f L = log(1 p N ). (32) Jos esimerkiksi puolet näytteistä on viivalla ja viivan yhtälöä etsitään 95%:n todennäköisyydellä, L:n arvoksi tulee 11. Jos kyseessä ei ole viiva vaan kahdeksannen asteen yhtälö, yrityksiä pitää tehdä 766 kertaa [36]. Tässä työssä pitää etsiä mallin pisteille vastinpisteet, eli ei riitä, että mielivaltaiset malliin kuuluvat pisteet löytyvät, vaan kullekin mallipisteelle pitää löytää oma vastinpiste. Käyttämällä epipolaarirajoitetta etsimään loput mallin vastinpisteistä riittäisi, että löydetään seitsemän tai kahdeksan pistevastaavuutta [36, 38] riippuen siitä, mitä fundamentaalimatriisin ratkaisualgoritmia käytetään. Oletetaan, että mallipisteitä on 15 ja malliin kuulumattomia pisteitä on saman verran. Todennäköisyys, että ensimmäinen valittu piirrepiste vastaa ensimmäistä mallipistettä on 1/30, todennäköisyys 30