HAMMASVALOSTEN AUTOMATISOITU MITTAUSMENETELMÄ
|
|
|
- Sanna-Kaisa Haavisto
- 10 vuotta sitten
- Katselukertoja:
Transkriptio
1 SÄHKÖ- JA TIETOTEKNIIKAN OSASTO TIETOTEKNIIKAN KOULUTUSOHJELMA HAMMASVALOSTEN AUTOMATISOITU MITTAUSMENETELMÄ Työn tekijä Anne Pulli Työn valvoja Janne Heikkilä Hyväksytty / 2008 Arvosana
2 Pulli A. (2008) Hammasvalosten automatisoitu mittausmenetelmä. Oulun yliopisto, sähkö- ja tietotekniikan osasto. Diplomityö, 59 s. TIIVISTELMÄ Oulun yliopistossa kirjoitettiin 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
3 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 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
4 TIIVISTELMÄ ABSTRACT SISÄLLYSLUETTELO ALKULAUSE SISÄLLYSLUETTELO LYHENTEIDEN JA MERKKIEN SELITYKSET 1. JOHDANTO Mittauksia hammasvaloksista Uusi käyttöliittymä NOrtho Työn rakenne D-RAKENTEEN ESTIMOINTI KUVASTA Digitaalikamerat Kamerageometria Linssivääristymä Kameran kalibrointi D-pinnan estimointi kuvasta EPIPOLAARIGEOMETRIA JA PIIRREVASTAAVUUKSIEN HAKU Epipolaarigeometrian määritelmä Fundamentaalimatriisi Fundamentaalimatriisin geometrinen määrittely Fundamentaalimatriisin algebrallinen määrittely Fundamentaalimatriisin numeerinen ratkaisu Fundamentaalimatriisin tarkkuuden parantaminen Mallin ja piirrepisteiden vastaavuuksien haku RANSAC-algoritmi Iteratiivinen lähimmän pisteen algoritmi ICP PIIRREPISTEIDEN HAKU Ryvästämismenetelmät Ryvästämismenetelmien luokittelu K-means-algoritmi Skaala-invariantti piirremuunnos SIFT TOTEUTUS JA TULOKSET Piste-ehdokkaiden tunnistus k-means-algoritmin avulla Pisteisiin kuuluvien pikseleiden luokittelu Hylkäyskriteerit Vastinpisteiden tunnistaminen Referenssipisteiden haku
5 Pisteiden siirto tasoprojektiota käyttäen Pistevastaavuuksien etsintä ICP-algoritmilla Pistevastaavuuksien etsintä epipolaarigeometrian avulla Mittausten teko Käyttöliittymä Hammasmalli Pisteiden käsittely POHDINTAA Tavoitteiden saavuttaminen NOrthon ja Orthometrics:n käyttönopeusvertailu Tuleva työ YHTEENVETO LÄHTEET 56
6 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
7 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
8 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 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
9 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-
10 teet mallipisteille. Näin voidaan pisteiden käsin merkitsemisestä päästä lähes kokonaan. Tätä varten tehtiin uusi käyttöliittymä, NOrtho 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 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
11 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 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 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 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
12 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 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
13 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 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
14 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 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 , (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 = [ I3 3 t ] [ R ] 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 16 Kuva 9. Translaatio ja rotaatio 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 17 L(0) = 1 ja se voidaan esittää Taylorin sarjojen avulla seuraavasti äärettömänä funktiona L(r) = 1 + k1 r + k2 r2 + k3 r (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 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.
18 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.
19 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 D-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ä
20 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.
21 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ä.
22 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 kerrotaan, kuinka fundamentaalimatriisi voidaan ratkaista numeerisesti vähintään kahdeksalla pisteparilla ja kohdassa 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 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) 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 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 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
24 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 ja 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 esitetyllä tavalla 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.
25 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 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 u nu n u nv n u n v nu n v nv n v n u n v n (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
27 F = U minimoi ns. Frobeniuksen normin F ˆF ja jolle ehto det ˆF = 0 toteutuu. Jos matriisin F singulaariarvohajotelma on V T, (29) σ σ σ 3 jossa S = diag(σ 1, σ 2, σ 3 ) on diagonaalimatriisi ja U ja V ovat ortogonaalimatriiseja, asettamalla pienin ominaisarvo nollaksi ˆF = UŜV T = U σ σ V T (30) saadaan singulaarinen matriisi F, joka samalla minimoi Frobeniuksen normin 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.
28 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..
29 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 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) 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.
30 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
31 toiselle pisteelle on 1/29, ja niin edelleen, ja seitsemän pisteen algoritmilla todennäköisyys, että kaikki seitsemän pistettä valitaan oikein on vähemmän kuin yksi 10:stä miljardista. Kahdeksan pisteen algoritmilla todennäköisyys olisi yli 20 kertaa pienempi. Ilman mitään lisäheuristiikkoja laskenta kestäisi aivan liian kauan. On muutamia tapoja, joilla laskentaa voitaisiin nopeuttaa. Jos ei vertailla pelkästään pisteitä, vaan vertaillaan kuvaa pisteen läheisyydestä, esimerkiksi laskemalla pisteen kohdalta SIFT piirrevektorin (katso kohta 4.2), kutakin mallin pisteen piirrevektoria vastaisi ehkä vain muutama mittakuvan piirrevektori, mikä rajoittaisi etsintäavaruutta huomattavasti. Toinen tapa on tutkia mallin rakennetta, eli sitä minkälaisia kuvioita pisteet muodostavat, tähtikuvioiden tapaan. Kuva 24 näyttää esimerkin. Jos esimerkiksi neljä ensimmäistä mallipistettä muodostaa suunnikkaan (piirretty mustalla vasempaan kuvaan), ja neljä mittakuvan pistettä, joiden toivotaan vastaavan mallipisteitä ovat lähes samalla viivalla (merkitty punaisella pilkkuviivalla oikeaan kuvaan), tai muodostavat aivan liian suuren suunnikkaan (vihreä katkoviiva oikeassa kuvassa), voidaan jo hylätä kaikki arvaukset, jotka alkaisivat näiden neljän pisteen joukolla. Oikeat vastinpisteet muodostavat lähes samanlaisen suunnikkaan (mustat viivat oikeassa kuvassa). Jos tämä ajatus pistekuvioiden sovittamisesta viedään pidemmälle, voidaan kokeilla koko mallin muodostaman pistekuvion sovittamista saman tien. 31 Kuva 24. Kuvioita vertaamalla voidaan päätellä, onko osajoukolla pistevastaavuuksia mahdollisuutta olla oikea ratkaisu.
32 Iteratiivinen lähimmän pisteen algoritmi ICP Iteratiivinen lähimmän pisteen algoritmi (iterative closest point algorithm, ICP) on kehitetty sovittamaan tunnettu malli joukkoon mittauspisteitä [39 41]. Algoritmi toimii seuraavasti. Kullekin mallin pisteistä etsitään sitä lähinnä oleva mittauspiste. Sen jälkeen lasketaan mallille siirto siten että virhe, mallin pisteiden ja niiden parien etäisyyksien neliöiden summa, minimoituu. Mallia siirretään, sen pisteille etsitään uudet niitä lähinnä olevat vastinpisteet ja algoritmia toistetaan niin kauan kuin virhe pienenee. Alkuarvaus ICP suppenee aina ja päätyy johonkin minimiin [39]. Ongelmana on että tuloksena ei välttämättä ole oikea vastaus, globaali minimi, vaan paikallinen minimi. Yksi ratkaisu on lähteä liikkeelle monesta eri alkutilanteesta ja valita vastaus, jossa lopputilan virhe on kaikista pienin. Parempi ratkaisu on, jos pystyy jotenkin muuten päättelemään alkutilanteen, joka on edes suurin piirtein oikeassa suunnassa, usein sitä lähinnä oleva minimi tuottaa oikean ratkaisun. Tässä työssä hammasvalokset on aina asetettu mittausalustalle, jossa on helposti löydettävät tapit nurkissa. Tappien siirtymästä kuvien välillä voidaan laskea, kuinka mittausalusta on siirtynyt. Koska hammasvalokseen merkityt mittapisteet eivät ole samassa tasossa kuin tapit, mittapisteet siirtyvät eri tavalla kuin mittausalusta. Mittapisteet ovat kuitenkin keskenään suurin piirtein samassa tasossa, joten mittausalustan liikkeestä saadaan hyvä alkuarvaus mittapisteiden siirtymälle ja sille miten niiden kuvio on vääristynyt. Homograa eli tasoprojektio on määritelty muunnoksena, joka projisoi 2D kuvion toiseksi 2D kuvioksi. 1 Jos tasomainen kuvio liikkuu 3D:ssä, sen muodostamat 2D kuvat kuvatasolla kameraprojektion jälkeen ovat tasoprojektioita toisistaan. Toisin sanoen kaikki homogeeniset kuvapisteet m ensimmäisestä kuvasta projisoituvat saman 3 3 matriisin H avulla toisen kuvan homogeenisiksi kuvapisteiksi m': m = Hm. Heckbertin M.Sc.-opinnäytetyö [42] määrittelee kaavat ja antaa C-lähdekoodin kahden nelikulmion väliselle tasoprojektiolle. Alkuarvaus sille, miten mallikuvio on vääristynyt toisessa kuvassa, saadaan laskemalla tasoprojektion mallikuvan mittausalustan nurkista toisen kuvan mittausalustan nurkkiin ja siirtämällä mallikuvan pisteitä käyttäen samaa muunnosta. Lähimmän pisteen haku Helppo tapa etsiä kullekin mallipisteelle lähin piste mittapisteiden joukosta on laskea jokaisen malli- ja mittapisteparin välinen etäisyys ja valita mallipisteelle pariksi sitä lähinnä oleva mittapiste. Jos mallipisteitä on N ja mittapisteitä on M, pisteiden etäisyydet pitää laskea O(N M) kertaa. Monissa sovelluksissa mallipisteitä saattaa olla satoja, jopa tuhansia, ja mittapisteitä voi olla monta kertaa suurempi lukumäärä kuin mallipisteitä. Tällöin lähimmän pisteen etsintä voi muodostua laskennassa pullonkaulaksi. Parempi suorituskyky saadaan, 1 Katso kohta
33 jos mittapisteet pistetään tietorakenteeseen, joka mahdollistaa nopeamman etsinnän lähimmälle pisteelle. KD-puu (KD-tree) [43] on yksi tällainen tietorakenne, josta lähin piste voidaan löytää O(logM) ajassa, ja koko etsintä vaatii vain O(N logm) vertailua. Koska tässä työssä mallipisteitä on yleensä alle 20 ja mittapisteitä ehkä pari kertaa enemmän, lineaarinen haku toimii riittävän nopeasti. Pisteiden välisen etäisyyden minimointi Kun kullekin mallipisteelle on löydetty sitä lähinnä oleva mittapiste, lasketaan muunnos, joka siirtää mallipisteet lähemmäksi niiden pareja. Mallipisteitä siirretään käyttämällä 2D similariteettimuunnosta (translaatio, rotaatio ja skaalaus). Tässä työssä käytetään Hornin Closed-form solution of absolute orientation using unit quaternions [44] esittämää suljetun muodon ratkaisun erikoistapausta, jossa kaikki pisteet ovat yhdessä tasossa. Aluksi voidaan olettaa, että pistejoukot a i ja b i ovat eri koordinaatistoissa eli eri kuvissa. Lasketaan kunkin joukon painopisteet p a = 1 n n i=1 a i ja p b = 1 n ja siirretään ne origoon. Translaatio t määritetään laskemalla kuinka kaukana painopisteet ovat toisistaan: t = p b p a. Laskemalla pisteiden a i ja b i keskimääräiset etäisyydet origosta s a ja s b ja ottamalla niiden suhde s b s a saadaan muunnoksen skaala s. Rotaatio lasketaan minimoimalla etäisyyksien summat pistejoukkojen välillä [44]. Käytetään Hornin esittämää yhtälöä: C cos θ = S sin θ, (33) jossa C on pisteiden a i ja b i pistetulojen summa ja S on samojen pisteiden ristitulojen summa. Rotaatiokulma θ saadaan edellisestä kaavasta ratkaisemalla sin θ = ± S n i=1 b i 33 ja cos θ = ± S2 + C 2 S2 + C. (34) 2 Valitsemalla positiiviset arvot saadaan kulma acos(cos θ), jos asin(sin θ) 0, muutoin acos(cos θ). Merkitsemällä kulmaa θ vastaavaa rotaatiomatriisia R(θ) pisteet a i siirretään käyttäen yhtälöä sr(θ)(a i p a ) + p a + t = sr(θ)(a i p a ) + p b. (35) C
34 4. PIIRREPISTEIDEN HAKU Kirjallisuudessa mainitaan useita menetelmiä piirteiden erotteluun kuvista [11]. Tässä työssä etsitään tummia pisteitä vaalealta pohjalta. Pisteiden etsintä voidaan toteuttaa klusteroimalla eli ryvästämällä tummia pisteitä yhteen. Kun pisteeseen kuuluvat pikselit on löydetty, voidaan sen keskipiste laskea tarkasti. Aloitetaan eri ryvästämismenetelmien yleiskatsauksella kohdassa 4.1. Sen jälkeen kohdassa kuvataan k-means-ryvästämismenetelmä, jota tässä työssä käytetään luokittelemaan pikselit joko pisteeseen tai taustaan kuuluviksi. Kohdassa 4.2 kuvataan skaala-invariantti piirremuunnos (SIFT), jota usein käytetään erilaisten kohteiden löytämiseen kuvista sekä pohditaan, miten sitä olisi voitu käyttää tässä työssä Ryvästämismenetelmät Ryvästämisellä tarkoitetaan aineiston ryhmittelyä samankaltaisuuden perusteella. Aineistosta yritetään etsiä ryhmiä ja jakaa aineisto niin, että kussakin klusterissa eli ryppäässä on keskenään mahdollisimman samankaltaisia alkioita ja kukin ryväs alkioineen on mahdollisimman erilainen muihin ryppäisiin verrattuna. Ryvästämisessä vaaditaan, että kukin alkio kuuluu vain yhteen ryppääseen. Poikkeuksen tästä muodostaa sumeaan logiikkaan perustuva ryvästäminen, jossa kukin alkio voi kuulua useampaan kuin yhteen ryppääseen, ja kuhunkin ryppääseen osittain [45]. Ryvästämistä käytetään usein datan analysointiin ja sillä on useita sovelluksia niin arkeologiassa, biologiassa, geologiassa, maantieteessä, psykologiassa, psykiatriassa, sosiologiassa kuin markkinoinnissakin [46] Ryvästämismenetelmien luokittelu Ryvästämismenetelmiä on useita, eikä niiden luokittelemiseksi ole mitään yhtenäistä linjaa [45]. Karkeasti ryvästämismenetelmät voidaan jakaa hierarkisiin ja osittaviin menetelmiin. Seuraavaksi esitellään kuvassa 25 kuvattu jako. Näiden perusmenetelmien lisäksi jotkin ryvästämismenetelmät ovat yhdistelmiä esitellyistä. 34 Kuva 25. Ryvästämismenetelmät.
35 Hierarkiset menetelmät voidaan jakaa yhdistäviin ja jakaviin menetelmiin. Yhdistävissä menetelmissä kukin kohde on ensin omana ryppäänään, ryvästäminen tapahtuu yleensä liittämällä kaksi lähintä ryvästä yhteen. Ryvästäminen etenee jonkin ennalta määrätyn kynnysarvon mukaan ja sitä jatketaan, kunnes ryppäitä on jäljellä riittävän vähän. Ryppäiden voidaan ajatella muodostavan hierarkian, jossa isommat ryppäät koostuvat useasta pienemmästä ryppäästä. Jakavissa menetelmissä kaikki kohteet ovat ensin yhdessä ryppäässä. Niin kauan kuin ryppäät ovat liian suuria tai eivät tarpeeksi yhtenäisiä, ne jaetaan kahdeksi tai useammaksi ryppääksi yksi kerrallaan. Menetelmät eroavat toisistaan siinä, millä tavalla seuraava jaettava rypäs valitaan, ja millä tavalla se jaetaan. Kun ryppäitä on riittävä määrä tai kaikki ryppäät ovat riittävän pieniä tai yhtenäisiä, algoritmi päättyy. Osittavat menetelmät tuottavat aineistolle joukon ryppäitä, jotka muodostetaan yhtä aikaa. Ryppäät eivät muodosta hierarkiaa. Osittavia menetelmiä ovat optimointimenetelmät sekä verkkoteoreettiset, tiheysperustaiset, ristikkoperustaiset ja malliperustaiset menetelmät. Optimointimenetelmissä aineisto jaetaan haluttuun määrään ryppäitä minimoimalla tai maksimoimalla annettu tavoitefunktio. Ryppäiden lukumäärä on siis joko tiedettävä etukäteen tai se on osattava arvioida hyvin. Minimoitavana tavoitefunktiona on yleensä keskineliövirhe MSE = 1 N N d (x i, c pi ) 2. i=1 Se saadaan lasketuksi ottamalla aineiston pisteiden x i ryppäiden keskipisteiden c pi välisten etäisyyksien neliöiden keskiarvo M SE eli mean squared error. Yksi tunnetuimmista optimointimenetelmistä on k-means-algoritmi, jota käsitellään yksityiskohtaisemmin kohdassa Verkkoteoreettiset menetelmät muodostavat aineistosta verkon, jota käytetään ratkaisemaan ryvästämisongelma. Voidaan esimerkiksi muodostaa pienin virittävä puu, joka voidaan pilkkoa N:ään osaan poistamalla N-1 pisintä kaarta solmujen väliltä. Tiheysperustaiset klusterointimenetelmät sopivat erityisesti tilaa kuvaavan aineiston klusterointiin. Esimerkiksi satelliittikuvat ovat tilaa kuvaavaa tietoa. Aineisto pyritään jakamaan sen tiheyden suhteen. Ryppäät valitaan aineistosta niin, että niiden alkiot ovat mahdollisimman tiheässä. Menetelmä vaatii hyvän aineiston tuntemisen, että tiheyden käsitteen voi määritellä. Ristikkoperustaiset menetelmät jakavat aineiston muodostaman tason neliöihin, jotka muodostavat ristikkorakenteen. Ryvästäminen tehdään ristikossa. Malliperustaiset menetelmät käyttävät jotain matemaattista mallia, joka kuvaa aineistoa mahdollisimman hyvin. Esimerkiksi tilastotieteellisessä mallissa aineisto voi olla todennäköisyysjakaumien tuottamaa K-means-algoritmi Tässä kohdassa kuvataan tarkemmin k-means-algoritmi, jota käytetään pistekandidaattien etsintään. Algoritmia ja sen toimintaa tarkastellaan ensin yleisluontoisesti, jonka jälkeen kerrotaan, miten algoritmia voi soveltaa kuvien segmentoimiseen sävyjakaumien perusteella. 35
36 Algoritmin kuvaus Heuristinen k-keskiarvon klusterointialgoritmi on helpoimpia itseoppivia algoritmeja ryhmittymisongelman ratkaisemiseksi [47]. Se on osittava menetelmä, jossa ryppäiden lukumäärä määritetään ensin. Ryppäät kilpailevat keskenään siitä, mihin kukin alkio kuuluu [48]. Ensin valitaan datan joukosta haluttu määrä ryppäiden keskipisteitä. Nämä keskipisteet voidaan valita satunnaisesti tai käyttäjä voi valita ne. Tämän jälkeen kukin kohde assosioidaan sitä lähimpänä olevan keskipisteen kanssa, ja lopuksi kullekin ryppäälle lasketaan uusi painopiste eli keskiarvo. Data ryhmitetään uudelleen niin, että kuhunkin ryhmään valitaan ne, jotka ovat lähimpänä sen painopistettä. Painopisteet lasketaan uudelleen ja tätä jatketaan, kunnes muutoksia ryhmissä ei enää tapahdu, eli datapisteet eivät vaihda enää ryhmää tai painopisteet eivät enää muutu. Jos painopisteet valitaan itse alussa, ne kannattaa valita niin, että eri ryhmien painopisteet ovat mahdollisimman kaukana toisistaan. Algoritmi toimii kaavion 26 osoittamalla tavalla: 36 Kuva 26. K-means algoritmi. Kuvien segmentointi k-means-algoritmin avulla Konenäössä segmentoinnilla tarkoitetaan digitaalikuvan jakoa useisiin osiin eli pikseliryhmiin. Tavoitteena on muuttaa tai yksinkertaistaa kuvaa niin, että sitä on helpompi analysoida. Segmentointia käytetään yleensä eri objektien tai ominaisuuksien tunnistamiseen kuvasta. Kuvasegmentointia voidaan käyttää apuna mm. lääketieteen eri sovelluksissa, konenäössä, satelliittikuvien analyysissa ja sormenjälki- tai kasvojen tunnistamisessa [49, 50]. Segmentointimenetelmiä on useita, joita tässä ei kuitenkaan
37 aleta tarkemmin erittelemään, vaan kerrotaan ainoastaan, miten k-means-algoritmia voi soveltaa kuvan sävyerojen klusterointiin. Algoritmin kulku on periaatteessa sama kuin kaaviossa Valitse k kappaletta ryppäiden painopistettä, joko satunnaisesti tai jonkin ennalta sovitun heuristiikan mukaan. 2. Assosioi jokainen pikseli kuvassa ryppääseen, joka minimoi pikselin ja ryppään painopisteen välisen varianssin. 3. Laske painopisteen paikka uudelleen ottamalla ryppään pikseleiden keskiarvo. 4. Toista askeleita 2. ja 3., kunnes muutoksia ei enää tapahdu eli mikään pikseli ei vaihda enää rypästä. Varianssi on yleensä keskimääräinen tai absoluuttinen ero pikselin ja ryppään painopisteen välillä. Erona voi käyttää niin pikselin sävyeroa, intensiteettieroa, rakennetta, paikkaa tai kaikkien edellisten yhdistelmää. Kuvissa 27 on esimerkkikuvat k-meansalgoritmilla luoduista segmentoinneista [51]. 37 (a) (b) (c) Kuva 27. Kuvasegmentointi k-means-algoritmilla. (a) Alkuperäinen kuva. (b) Ryppäät ryhmitelty harmaasävyjen perusteella. (c) Ryppäät ryhmitelty painopisteen värin mukaan Skaala-invariantti piirremuunnos SIFT Skaala-invariantti piirremuunnos eli SIFT [52] on nykyisin hyvin suosittu algoritmi, jota käytetään kuvien tunnistamiseen ja kohteiden löytämiseen kuvista. SIFT algoritmi on suunniteltu siten, että piirteet ovat robusteja ja invariantteja yleisille kuvamuunnoksille, kuten skaalalle eli koolle ja kierrolle, sekä ainakin osittain invariantteja valaistukselle ja afini- tai projektiomuunnoksille. Samanaikaisesti piirrevektorit ovat ilmaisuvoimaisia, eli pystyvät melko luotettavasti kertomaan, jos kuvapiirteet ovat eri kohdasta näkymää tai aivan eri näkymästä. SIFT-menetelmässä on kaksi vaihetta: piirteen paikantaminen ja piirrevektorin laskeminen. Lisäksi yleensä tarvitaan tietorakenne, joka auttaa etsimään annetulle piirrevektorille lähimmän parin suuresta joukosta muita piirrevektoreita.
38 Skaala-invariantit piirteet paikannetaan käyttäen eri mittakaavojen Gauss-suodatusta. Gauss-suodatus sumentaa kuvan sekoittamalla kuvan jokaiseen väripisteeseen arvoja viereisistä pisteistä normaalijakauman suhteessa. Normaalijakauman eli Gaussin käyrän yhtälö on g(x) = 1 2πσ e x2 2σ 2. Kuva suodatetaan usealla eri mittakaavalla eli σ:n arvolla ja eri skaaloista otetaan erotukset kuvan 28 osoittamalla tavalla. 38 Kuva 28. Gauss-suodatus ja suodatuskuvien erotus. Pisteiden paikannus suoritetaan seuraavasti [53]. 1. Etsitään kussakin tasossa erotuskuvia paikalliset minimi- ja maksimikohdat vertaamalla pikseleitä lähimpään kahdeksaan naapuriin samassa tasossa ja yhdeksään naapuriin viereisillä tasoilla. Jos minimi- tai maksimikohta löydetään, piste (sekä 2D kuvakoordinaatti että skaala) valitaan piirrepisteeksi. Tarkempi paikannus tehdään interpoloimalla käyttäen Taylorin sarjakehitelmää. 2. Piirrepistekandidaatit, joiden kontrasti on liian heikko, hylätään. Samoin tehdään kandidaateille, joilla on vahva minimi tai maksimi, mutta joita ei voi luotettavasti paikantaa. Esimerkiksi vahvalla suoralla reunalla olevat pisteet ovat tällaisia, kun taas nurkissa olevat pisteet voidaan paikantaa luotettavasti. Pisteen nurkkuus tai reunuus voidaan arvioida analysoimalla kuvan derivaattojen Hessin matriisia.
39 . Paikannetuille piirteille lasketaan piirrevektori seuraavasti. 1. Aluksi määritetään piirteen orientaatio. Muodostetaan orientaatiohistogrammi esimerkiksi kymmenen asteen välein, mistä saadaan 36 histogrammilaatikkoa. Piirteen alueelta (alueen määrää aiemmin löydetty skaala) lasketaan gradientit Gauss-sumennetusta kuvasta, ja gradientin suuntien mukaan kerätään orientaatiohistogrammi. Suunta, joka saa eniten ääniä, valitaan piirteen suunnaksi. 2. Kuva kierretään orientaation perusteella perusasentoon. Piirrealueen pikselit jaetaan 4 4 lokerikkoon, ja kunkin lokeron alueelta lasketaan uusi orientaatiohistogrammi, tällä kertaa 45:n asteen välein. Tästä tuloksena saadaan = 128 pituinen piirrevektori, joka normalisoidaan yksikkövektoriksi. Kun yhdestä kuvasta on valittu piirrevektori ja toisesta kuvasta sille pitäisi löytää pari, toisen kuvan piirrevektorit laitetaan hakutietorakenteeseen kuten kd-puuhun, jonka avulla lähin vektori voidaan löytää nopeasti. Lähin vektori on se, jonka pistetulo ensimmäisen vektorin kanssa on pienin. Kuvassa 29 on esimerkki siitä, millaisia piirrevektoreita hammasvaloskuvasta löytyy. Kuva on tehty vapaasti internetistä ladattavalla SIFT-demo-ohjelmalla [54]. 39 Kuva 29. SIFT-piirrevektorit hammasmalleissa. Jos tässä työssä olisi käytetty SIFT-menetelmää, siihen olisi kannattanut tehdä useita yksinkertaistuksia. Pisteiden paikat valittaisiin k-means algoritmin löytämien pistekandidaattien perusteella eikä käyttäen Gauss-kuvien erotuksia. Koska kaikissa kuvissa on sama skaala ja orientaatio, voidaan kaikille piirrevektoreillekin valita sama skaala ja orientaatio. Pisteiden naapuruston värivaihtelut tuottaisivat erilaiset piirrevektorit, jotka auttaisivat valitsemaan oikeat vastinpisteet mallin pisteille. Työssä toteutettu ICPmenetelmä toimi kuitenkin riittävän hyvin, joten SIFT-menetelmän käytölle ei löytynyt tarvetta.
40 5. TOTEUTUS JA TULOKSET Tässä luvussa kerrotaan, miten edellisissä luvuissa esiteltyjä menetelmiä on käytetty tässä työssä. Kohdassa 5.3 kerrotaan, miten käyttöliittymä on toteutettu ja miten sitä käytetään. Jos tässä työssä mittauspisteet olisi merkitty jollain kuvasta helposti erottuvalla värillä, kuten punaisella, olisi värikameran käyttö mahdollistanut pisteiden helpomman ja luotettavamman paikannuksen. Tehtävä olisi ollut vielä helpompi, jos eri pisteet olisi merkitty eri väreillä, kun taas valokset ja tausta olisi pidetty eri harmaasävyinä. Värikuvat voidaan kuitenkin muuttaa mustavalkoisiksi, joten metodi, joka toimii mustavalkoisilla kuvilla, on yleiskäyttöisempi, se toimii sekä väri- että mustavalkokuville Piste-ehdokkaiden tunnistus k-means-algoritmin avulla Pisteiden etsinnässsä käytetään k-means-ryvästämismenetelmää, joka ryhmittelee pikselit joko vaaleaan taustaan tai tummaan pisteeseen kuuluviksi. Lisäksi algoritmille on annettu tiettyjä rajoittavia tekijöitä perustuen pisteen ulkonäköön liittyviin odotuksiin Pisteisiin kuuluvien pikseleiden luokittelu Koska pisteet ovat tummia pikselirykelmiä vaalealla pohjalla, piste-ehdokkaita voidaan löytää etsimällä paikalliset maksimit pikseleiden tummuuden perusteella. Nämä maksimit eivät saa olla liian lähellä toisiaan, joten kuva käydään läpi pilkkomalla se pikselin kokoisiin palasiin. Kunkin pikkukuvan pikselit jaetaan kahteen ryppääseen: pisteeseen ja taustaan, ja aluksi ainoa pistepikseli on tummin pikseli. Kaikki muut pikselit asetetaan taustaksi ja taustaryppään väriarvoksi asetetaan aluksi taustan painopistearvo hakuikkuna keskitetään pistepikselin ympärille. Algoritmi ottaa keskimmäisen eli tummimman pisteen neljä naapuria (ylös, alas ja sivuille) käsittelyyn. Kutakin pisteryppään naapurina olevan taustapikselin väriarvoa verrataan piste- ja taustaryppään väriarvoihin. Jos sen väri on lähempänä pisteryppään keskiarvoa kuin taustaryppään keskiarvoa, tämä taustapikseli liitetään pisteryppääseen. Kun kaikki naapurit on käsitelty, ryppäät jaetaan uusiksi ja uudet painoarvot lasketaan. Algoritmia jatketaan kuvan 30 osoittamalla tavalla valitsemalla seuraavat taustanaapurit uudelle pisteryppäälle ja vertaamalla kutakin ryppäiden keskiarvoihin. Tätä jatketaan, kunnes muutoksia ei enää tapahdu tai jokin ennalta määrätyistä heuristisista rajoitteista toteutuu. Kuvasta 30 voi nähdä, että algoritmi löytää esimerkkikohdasta pisteen jo neljällä iterointikerralla. Alkuperäisen keskustan naapureita käsitellään yksi kierros kerrallaan. Ensin aluetta yritetään laajentaa vihreiden nuolien osoittamiin pikseleihin, sitten punaisten, sinisten, ja lopulta keltaisten nuolien osoittamiin pikseleihin. Ensimmäinen pisteeseen kuulumaton pikseli löytyy jo toisella kierroksella. Kolmannen kierroksen pikseleistä vain neljällä voi vielä mahdollisesti olla pisteeseen kuuluva naapuri. Neljäs kierros varmistaa ryppäiden jaon pisteeseen ja taustaan. Lopullinen pisteen keskustan paikka lasketaan tummuusarvoilla painotettuna keskiarvona pisteryppään pikselikoor- 40
41 dinaateista. Se on merkitty kuvaan pienellä keltaisella täplällä, joka on alkuperäisen keskustan ja sen yläpuolisen naapurin välissä. 41 Kuva 30. K-means algoritmin eteneminen Hylkäyskriteerit Jokaisen ikkunan tummin pikseli ei kuulu valokseen piirrettyyn mittapisteeseen, vaan voi johtua taustan väriarvojen kohinasta tai taustan kuvioista. Käytetään useita yksinkertaisia sääntöjä karsimaan pois ryppäät, jotka todennäköisesti eivät ole mittapisteitä. Jos alueen tummin pikseli on liian vaalea, se hylätään välittömästi. Samoin käy, jos hakuikkunan kirkkain pikseli on liian tumma. Jos pikselin kontrasti on liian alhainen, eli vaalean ja tumman alueen väriero on liian pieni, ehdokas hylätään. Pisteen pinta-ala pitää olla tiettyjen rajojen sisällä. Testikuvissa pisteet olivat pääsääntöisesti vähintään neljän ja korkeintaan neljänkymmenen pikselin kokoisia; pienemmät tai isommat pisteet hylätään. Vaihtoehtoisesti, jos piste levittäytyy yli viiden pikselin päähän lähtöpisteestä, piste hylätään. Tällä voidaan välttää esimerkiksi hammasvaloksissa esiintyvät tekstit ja numerot, sekä mahdolliset muut kuva-alueelle unohtuneissa tavaroissa näkyvät pisteentapaiset täplät. Pitämällä kuvausalue mahdollisimman siistinä ja hyvällä valokuvausrutiinilla useimmat tälläiset tapaukset saadaan estettyä jo ennalta. Piste on määritelmän mukaan pyöreähkö. Jos tuloksena on liian kapea piste (kaikki tummat pikselit samalla rivillä tai sarakkeella), ehdokas hylätään. Näillä muutamalla rajoittavalla tekijällä päästään jo melko hyvään tulokseen eli kaikki tai lähes kaikki pisteet löytyvät. Kuvassa 31 on neljä löydettyä pistekandi-
42 daattia. Kahdessa ensimmäisessä kuvassa kandidaatit vastaavat oikeaa mittauspistettä ja kahdessa viimeisessä kuvassa kandidaatit johtuvat kohinasta. Kuvassa 32 on esimerkkikuvia, millaisia ryppäitä voidaan hylätä edellä esitetyillä säännöillä. 42 (a) (b) (c) (d) Kuva 31. K-means-algoritmilla löydetyt pistekandidaatit. (a) (b) (c) (d) Kuva 32. Esimerkkejä hylätyistä pisteistä. (a) Liian kapea piste. (b) Liian iso piste. (c) Piste leviää kuva-alueen reunoille. (d) Pisteen ja taustan kontrasti liian pieni. Kuten kohdan 2.4 lopussa todettiin, esineet eivät säilytä muotoaan perspektiiviprojektiossa. Pyöreän ja viistosti projisoidun täplän oikea keskipiste ei ole sama kuin täplistä laskettu painopiste [19]. Tässä työssä tätä poikkeamaa ei mallinnettu, sillä se jää hyvin pieneksi. Pisteet ovat käsin piirrettyjä ja pieniä, joten niiden projisointivirheetkin ovat hyvin pieniä Vastinpisteiden tunnistaminen Hammaskuvien rakennetta ja samankaltaisuutta voidaan käyttää hyväksi pistevastaavuuksien etsinnässä. Referenssipisteiden sijainti ja niiden etäisyys toisistaan tiedetään. Muille mallipisteille voidaan tehdä tasoprojektiosiirto kuvasta A kuvaan B referenssipisteiden suhteen. Koska referenssipisteet ja mallipisteet eivät ole samassa tasossa, tämä antaa vain arvion siitä, mistä mallipistevastaavuudet voitaisiin löytää. Seuraavana askeleena suoritetaan lähimmän pisteen algoritmi, jonka avulla lähes kaikki pistevastaavuudet saadaan selville. Lopuksi vastinpisteet varmistetaan käyttämällä epipolaarigeometriaa.
43 Referenssipisteiden haku Mittausalustan nurkissa on neljä referenssipistettä, jotka muodostavat suorakaiteen muotoisen kuvion ja ovat aina suunnilleen samoilla etäisyyksillä toisistaan. Tätä ennakkotietoa voidaan käyttää hyväksi ja etsiä aluksi nämä referenssipisteet k-meansalgoritmilla löydettyjen pisteiden joukosta. Käyttäjä voi joko hyväksyä tai hylätä löydetyt referenssipisteet. Jos referenssipisteet hylätään, voi käyttäjä seuraavaksi merkitä itse yhden tai useampia pisteitä ja pyytää ohjelmaa etsimään referenssipisteet uudelleen. Kuvassa 33 referenssipisteet ovat löytyneet ja ne on siirretty oikeille paikoille. K-means-algoritmilla löydetyt pisteet on merkitty vihreillä täplillä ja hyväksytyt mallipisteet punaisilla täplillä. 43 Kuva 33. Referenssipisteiden siirto Pisteiden siirto tasoprojektiota käyttäen Kussakin mittauksessa otetaan tyypillisesti viisi kuvaa. Ensimmäisessä kuvassa valos ja mittausalusta, johon se on kiinnitetty kuvataan suoraan päältä, kun taas muissa kuvissa alustaa kallistetaan vasemmalle, oikealle, ylös ja alas, ja valos tietysti liikkuu samalla tavalla. Kun jokaisesta mittauskuvasta on ensin löydetty referenssipisteet, voidaan niitä käyttäen arvioida, kuinka muutkin mittapisteet siirtyvät. Kuvassa 34(a) on ensimmäinen kuva, jota käytetään mallikuvana, ja kuvassa 34(b) on kuva, jossa alustaa on kallistettu ylöspäin. Laskemalla tasoprojektion referenssipisteiden välillä (neljä sinistä pistettä kuvassa (a), ei erikseen merkitty kuvassa (b)) saadaan karkea arvio siitä, miten mallipisteet ovat liikkuneet (kuva 34(c)). Jos mittapisteet olisivat samassa tasossa kuin referenssipisteet, tasoprojektion avulla saataisiin varsin tarkka ennuste mittapisteiden liikkeelle. Koska mittapisteet ovat kauem-
44 pana alustan rotaatiokeskipisteestä, ne liikkuvat enemmän kuin referenssipisteet, mutta kuitenkin hiukan lähemmäksi oikeita paikkojaan. 44 (a) (b) (c) Kuva 34. Tasosiirto. (a) ICP mallikuva mallipisteineen. (b) Ennen tasosiirtoa; pisteet samoissa pikselikoordinaateissa kuin mallikuvassa. (c) Tasosiirron jälkeen mallipisteiden muodostama kuvio on hiukan lähempänä oikeaa paikkaansa. Kun alustaa on kallistettu, mittapisteet eivät pelkästään siirry, vaan niiden muodostama kuvio vääristyy hiukan. Koska mittapisteet ovat keskenään yleensä lähes samassa tasossa, ja tämä taso on samansuuntainen kuin referenssipisteiden taso, tämä kuvio muuttuu käyttäen samaa tasoprojektiota kuin referenssipisteiden muutos. Seuraavan ICP-vaiheen kannalta tämä kuvion muutos on jopa tärkeämpi ominaisuus kuin se, että pisteet siirtyvät hiukan lähemmäksi lopullisia paikkojaan. Kuvasta 34(c) huomataan, kuinka pistekuvio on lyhentynyt pystysuunnassa ja kuvion muoto on lähempänä mittapisteiden muodostamaa kuviota Pistevastaavuuksien etsintä ICP-algoritmilla Pistevastaavuuksien etsintään kuvien välillä käytettiin iteratiivista lähimmän pisteen menetelmää, jossa kullekin mallipisteelle valitaan sitä lähinnä oleva vastinpiste. ICPalgoritmissa ratkaistaan kaksiulotteinen siirto, skaala ja kiertymä, joita toistetaan, kunnes pisteet eivät enää liiku tai maksimimäärä iteraatioita on ylitetty. ICP-algoritmissa käytetyn siirron, kiertymän ja skaalan parametrit on ratkaistu Hornin menetelmällä. Algoritmi iteroituu kuusi kertaa. Ensimmäisellä ja toisella kierroksella suoritetaan 2D-siirto, kolmannella ja neljännellä kierroksella tehdään translaation lisäksi myös rotaatio ja viimeisillä kierroksilla edellisiin lisätään vielä muunnoksen skaala. Kuvassa 35 on kuvattu, miten pisteet siirtyvät kunkin iterointikerran jälkeen kohti oikeita paikkoja. Jos pistevastineet ovat sellaisia, jotka ovat aikaisemmin löytyneet k-means-algoritmin avulla, ne vahvistetaan automaattisesti. Käyttäjä voi halutessaan toistaa iteroinnit, tosin vahvistetut pisteet eivät enää tällöin siirry.
45 45 (a) (b) (c) (d) (e) (f) Kuva 35. ICP-algoritmin iterointi 6 kertaa. (a) 1. kierros. Translaatio. (b) 2. kierros. Translaatio. (c) 3. kierros. Translaatio ja rotaatio. (d) 4. kierros. Translaatio ja rotaatio. (e) 5. kierros. Translaatio, rotaatio ja skaalaus. (f) 6. kierros. Translaatio, rotaatio ja skaalaus Pistevastaavuuksien etsintä epipolaarigeometrian avulla K-means-algoritmi ei aina löydä kaikkia pisteitä. Pisteet ovat merkintävaiheessa joko jääneet liian pieniksi tai kuvissa värierot ovat liian lähellä toisiaan. Tällaisten pisteiden löytämiseen voidaan käyttää epipolaarigeometriaa. Fundamentaalimatriisi lasketaan normalisoidulla 8 pisteen algoritmilla käyttäen LMiterointialgoritmia. Kuvissa 36(a) ja 36(b) nähdään esimerkki, miten normalisoitu 8 pisteen algoritmi ja sama algoritmi iteroinnin kera vaikuttaa saman pisteen sijaintiin. Pisteen painopiste on merkitty pienellä keltaisella täplällä. Algoritmien tarkkuusero on hyvin pieni, alle puolen pikselin. Estimointi voi silti joskus epäonnistua, etenkin jos epipolaaripisteet ovat kuvassa, eivätkä jossain äärettömän kaukana. LM-algoritmi ei voi parantaa tulosta, joka on jo valmiiksi väärä. Siksi algoritmi aloitetaan viidellä eri epipolaaripisteen arvolla. Ensin iteroidaan laskettua epipolaaripistettä, jonka jälkeen asetetaan neljä eri epipolaaripistettä selvästi kuvan ulkopuolelle, iteroidaan uudelleen ja valitaan tuloksista paras.
46 46 (a) (b) Kuva 36. Fundamentaalimatriisin tarkkuuden vaikutus pisteiden sijaintiin. (a) Piste siirretty normalisoidulla 8 pisteen algoritmilla. (b) Piste siirretty epipolaaripistettä iteroiden. Epipolaariviivojen sijainti lasketaan ja ne projisoidaan kuviin. Jos esimerkiksi mittauskuvien 2. ja 4. epipolaariviivat projisoidaan kuvaan 5., kuten kuvissa 37(a) ja 37(b), vastinpisteitä voidaan etsiä näiden epipolaariviivojen leikkauskohdista. Lasketaan, mikä vahvistamaton piste on lähinnä tällaista leikkauskohtaa ja siirretään se siihen. Esimerkkikuvissa vahvistamaton piste näkyy vihreänä; se on sama piste kuin kuvissa 36. (a) (b) Kuva 37. Epipolaariviivojen projisointi kuviin. (a) Epipolaariviivat projisoitu kuvasta 2. kuvaan 5. (b) Epipolaariviivat projisoitu kuvasta 4. kuvaan Mittausten teko Työ on tehty Python-nimisellä ohjelmointikielellä. Python voidaan vapaasti ladata netistä ja käyttää. Versio, jota käytettiin tässä ohjelmassa, on Pythonin lisäksi käytettiin useita Pythoniin soveltuvia työkaluja, laskennassa käytettiin Numarray
47 ja Numerics -moduuleita ja varsinainen käyttöliittymä tehtiin käyttäen wxpythonkirjastoa Käyttöliittymä NOrthon käyttöliittymässä on otettu huomioon, että se on yhteen sopiva Orthometrics-ohjelman kanssa. Tekstitiedostot eli malli- ja mittaustiedostot luodaan käyttäen Orthometrics:n tapaa. Mallitiedostoilla on tiedostopääte.mdl ja mittaustiedostoilla pääte.msd. Mittaustiedostoon voidaan lisätä tietoa Orthometrics:ssa, mm. päivämäärä, potilaan nimi ja muistiinpanoja kohteesta. Orthometrics hyväksyy vain pakkaamattomia bittikarttakuvia (.bmp) ja pikseleiden värisyvyys ei saa ylittää kahdeksaa bittiä. NOrthossa pikseleiden värisyvyyttä ei ole rajattu. Orthometrics:lla otettujen kuvien resoluutio on yleensä Kuvankaappauskorttina, joka digitoi kuvan binaarimuotoon, käytetään Data Translation-valmistajan DT3153 frame grabber -korttia. Tässä työssä ohjelmoitiin käyttöliittymä, jonne käyttäjä voi ladata haluamiaan hammaskuvia ja käsitellä niitä yhtenä kokonaisuutena. Ohjelman toiminnot löytyvät menuvalikossa otsikoiden File, Edit, View, Measurement ja Calibration alta. File-menusta löytyvät lataukset, tallentamiset ja lopetukset. Edit-menun alla on pisteiden löytämiseen ja käsittelyyn liittyvät toiminnot. View-menun avulla voidaan näyttää pisteiden järjestystä ja epipolaariviivoja. Measurement-menusta voidaan määritellä mittaukset. Kalibrointitiedosto löytyy Calibration-menun alta. 47 Kuva 38. Ohjelman alku. Ohjelman ikkuna on jaettu kolmeen eri paneeliin. Yläpaneelissa on mallikuva ja kaikki hammasmallit pikkukuvina, käyttäjä voi liikkua näiden kuvien välillä joko
48 nuolinäppäimillä tai hiirellä osoittamalla. Kuvasta 38 voi nähdä, että valittuna olevan kuvan ympärillä on punainen kehys. Jos mallikuva ei ole valittuna, sitä kehystää vihreä kehys, jotta se erottuisi mittauskuvista. Suuressa paneelissa näkyy kulloinkin valittuna oleva kuva isona. Tässä paneelissa tapahtuu myös kaikki pisteisiin liittyvä työ. Vasemmassa sivupaneelissa näkyy suurennos joko valittuna olevan pisteen ympäristöstä tai paikasta, johon käyttäjä osoittaa (vasen hiirinäppäin alhaalla). Kuvat näytetään sellaisina, kun ne kamerasta tulivat eli vääristyneinä. Linssivääristymän poistoon käytetään Orthometrics-ohjelman kalibrointitiedostoa. Kalibrointiparametrien avulla lasketaan pisteiden ideaaliset paikat käyttäen kohdassa 2.4 esitettyä yhtälöä 12. Kaikki kuvatason mittaukset tehdään liukuluvuilla, ei pikselikokonaisluvuilla, ja nimenomaan ideaalisessa kuvakoordinaatossa, eli vääristymät on poistettu. Visualisointia varten pisteet näytetään kuitenkin vääristyneen kuvan koordinaateissa. Kun epipolaariviivat piirretään vääristyneisiin kuviin, kuten kuvassa 37, näistä suorista tulee käyriä Hammasmalli Aluksi käyttäjän täytyy luoda malli. Mallipisteitä voidaan lisätä tai poistaa ainoastaan mallikuvassa. Muissa kuvissa pisteitä voidaan ainoastaan siirtää. Lisätessään pisteitä käyttäjä antaa niille myös nimet. Referenssipisteet ovat valmiina kuvissa etukäteen määritetyillä paikoilla; ohjelma etsii niille oikeat paikat käyttämällä Editvalikon Find Reference Points -toimintoa. Käyttäjä voi ladata tekemiään malleja pisteineen suoraan hyödynnettäväksi. Orthometrics:lla tehdyt mallit eroavat pisteentallennustyyliltään NOrthon vastaavasta, joten niistä ei ole visuaalisesti juurikaan apua. Jos käyttäjä lataa tälläisen mallin, kaikki pisteet näkyvät hyvin suppealla alueella kuvassa ja niiden siirtäminen oikeille paikoille voi olla työlästä. NOrthossa pisteiden löytäminen perustuu sille, että mallikuvana käytetään hammaskuvasarjan ensimmäistä kuvaa ja pisteiden löytyminen muista kuvista perustuu tälle mallille. Jos tehdään useampia mittauksia saman mallitiedoston avulla, joudutaan uutta mittausta tehdessä aina siirtämään pisteet käsin oikeille paikoille mallikuvassa. Ohjelman käynnistyessä ikkunat ovat tyhjiä ja käyttäjän on ladattava mallikuva ja mittauskuvat. Ladattavien mittauskuvien määrää ei ole NOrthossa rajoitettu, mutta Orthometrics-ohjelma hyväksyy vain viisi kuvaa. Käyttäjän pitää itse huolehtia tallentaessaan pisteiden paikkoja tiedostoon, ettei yhteen tiedostoon tule enempää kuin viiden kuvan tiedot. Kun mallikuvaan on merkitty halutut mittauspisteet, voidaan Measurement-menusta valita joko etäisyys- tai kulmamittaukset. Käyttäjä valitsee haluamansa mittauksen dialogista, jonka jälkeen hän merkitsee pisteet työpaneelista (suuresta kuvasta). Jos hän on valinnut etäisyysmittauksen, työpaneelissa näkyy kahden pisteen valinnan jälkeen näiden välillä viiva. Kulmamittauksissa tarvitaan kolme pistettä ja kulma näkyy A- kirjaimen näköisenä joukkona viivoja, jotka yhdistävät nämä kolme pistettä. Käyttäjä tallentaa mittaukset Add-näppäimellä, jolloin mittausviivat mallikuvassa jäävät näkyviin ja ne voidaan tallentaa mdl-tiedostoon yhdessä mittauspisteiden kanssa. Kuvassa 39 on esimerkki siitä, miten mittaukset asetetaan. 48
49 49 Kuva 39. Mittaukset. Etäisyysmittaukset näytetään vihreillä viivoilla, kulmamittaukset sinisillä. Jos käyttäjä poistaa myöhemmin jonkin pisteistä, joka samalla on jonkin mittauksen osapiste, mittaustiedot katoavat ruudulta, muttei mallitiedostosta. Alapalkin vasemmassa reunassa kerrotaan kulloisenkin valitun pisteen nimi Pisteiden käsittely Pisteitä voi siirtää käsin hiirellä. Ohjelma etsii automaattisesti parhaimman paikan valitulle pisteelle keskittäen sen pikselin murto-osan tarkkuudella käyttäen kohdan menetelmää. Kaaviossa 40 on esitetty, missä järjestyksessä vastinpisteiden haku etenee. Ensimmäiseksi järjestelmä olettaa, että kaikki kuvat ovat oikein päin, ja etsii neljä nurkkaa mittausalustasta. Jos nurkat löytyvät oikein, käyttäjä vahvistaa, muussa tapauksessa hän voi etsiä ja määrittää yhden tai useamman nurkan ja systeemi etsii uudestaan. Vahvistetut pisteet näkyvät sinisenä. Jos käyttäjä on ladannut mdlmallitiedoston, hän joutuu siirtämään referenssipisteet oikeille paikoille ja keskittämään ja vahvistamaan loput pisteet. Tämä johtuu siitä, että Orthometrics ei hyväksy liukulukuja mallitiedostoon ja pisteet on tallennettu pikselikokonaisluvuilla. Mallikuvan vahvistamisen jälkeen käyttäjä käy läpi varsinaiset mittauskuvat, joille tehdään tasoprojektion siirros ja etsitään ICP-algoritmia käyttäen lähimmät pisteet, kuten kuvassa 35 on esitetty. Jos piste on löydetty k-means-algoritmilla, ohjelma vahvistaa ne automaattisesti. Viimeiseksi tehdään pisteiden projisointi epipolaariviivoiksi, jolloin vahvistamatta jääneet pisteet siirtyvät oikeille paikoille. Jos piste on
50 k-means-algoritmilla löydetty, se vahvistetaan. Muussa tapauksessa se jää näkyviin vihreänä, kuten myös kuvasta 37 voi nähdä. 50 Kuva 40. Vastinpisteiden haku. Kaaviossa 41 kerrotaan, mitä vaiheita tarvitaan mittaustulosten laskemiseen. Mittaukset aloitetaan kameran kalibroinnilla ja kuvien otolla, jotka molemmat tehdään Orthometrics-ohjelmalla. Seuraavaksi siirrytään NOrthoon, jossa luodaan ja tallennetaan mallitiedosto, ladataan mittauskuvat ja etsitään sekä pisteiden että niiden vastinpisteiden tarkat paikat edellä kuvatuilla menetelmillä. Kalibrointitiedoston parametrien avulla lasketaan pisteiden vääristymättömät koordinaatit, jotka talletetaan mittaustiedostoon. Tämän jälkeen palataan takaisin Orthometrics-ohjelmaan, jonne ladataan malli- ja mittauskuvat ja lasketaan vaaditut etäisyydet ja kulmat. Kuva 41. Vaiheet, joita tarvitaan mittaustulosten laskemiseen.
51 6. POHDINTAA 6.1. Tavoitteiden saavuttaminen Työn tavoitteena oli vähentää käyttäjän työmäärää automatisoimalla pisteiden hakua. Alunperin tämä oli tarkoitus tehdä lisäämällä epipolaarianalyysi olemassa olevaan Orthometrics-ohjelmaan. Koska alkuperäinen Orthometrics-ohjelma oli kirjoitettu niin vanhalla Borlandin C++-kääntäjän ja Matlabin versiolla, että niihin ei löytynyt dokumentaatiota eikä yhteensopivia kuvankäsittely- tai käyttöliittymäkirjastoja, oli lopulta helpompaa kirjoittaa uusi ohjelma ja tallettaa saavutetut tulokset sellaisessa muodossa, jossa Orthometrics-ohjelma ne ymmärtää. Tavoitteeseen on päästy, vaikkakin hieman toisin menetelmin kuin aluksi suunniteltiin. Malli ja mallipisteet käyttäjän pitää edelleen merkitä itse, sillä ohjelma käyttää näitä pisteitä etsiessään muista kuvista pisteitä ja niiden vastaavuuksia. K-meansalgoritmia käytetään etsimään sopivia pistekandidaatteja ja kandidaatin tarkka paikka määritellään käyttäen painokertoimina pikseleiden värisävyjä. Osa näistä pisteistä vastaa mallipisteitä, osa on taas kohinaa. Jos käyttäjä on merkinnyt pisteet liian varovaisesti, osa pisteistä voi jäädä löytämättä. Käyttäen RANSAC-algoritmia olisi mahdollista tehdä arvauksia, mitkä kandidaatit vastaavat mitäkin mallin pistettä, laskea kuvien väliset epipolaarivastaavuudet, ja erotella kandidaatit mallin pisteiksi ja kohinaksi. Tämä olisi kuitenkin laskennallisesti laaja kombinatoorinen ongelma. Päädyttiin käyttämään laskennallisesti paljon kevyempää vaihtoehtoa. Ottaen alkuarvauksen mittaustason täplien liikkeestä käytettiin ICP-algoritmia laskemaan, kuinka mallipisteet siirtyivät kussakin kuvassa. Tulokset tarkistettiin laskemalla vastaushypoteesille epipolaarigeometria ja fundamentaalimatriisi, joita käyttämällä voidaan arvioida paikat mahdollisille löytämättä jääneille pisteille. Käyttäjän vastuulla on, että hän merkitsee pisteet hammasvaloksiin tarpeeksi selvästi ja huolellisesti. Käyttäjän vastuulla on myös, että valokuvat hammasvaloksista ovat tarkkoja. Automaattisen haun tulokset voidaan niin halutessa jättää huomioimatta ja käyttäjä voi siirtää itse pisteet haluamilleen paikoille NOrthon ja Orthometrics:n käyttönopeusvertailu NOrthon ja Orthometrics:n käyttönopeutta verrattin mittaamalla, kuinka kauan aikaa mittauksiin menee ja kuinka kauan mittauspisteiden siirto oikeille paikoille kestää. Molemmilla ohjelmilla tehtiin kaksi erilaista mallitiedostoa. Ensimmäisessä mallitiedostossa on 10 mallipistettä sekä kaksi etäisyys- ja kulmamittausta, ja toisessa mallitiedostossa 20 mallipistettä sekä kaksi etäisyys- ja kulmamittausta. Taulukossa 1 on esitetty saadut suoritusajat mallikuvan ja sen mittausten laatimiselle. Taulukossa 2 on esitetty suoritusajat mittauspisteiden siirrolle Orthometrics:lla ja NOrtholla. Mallitiedoston luominen Orthometrics:lla tai NOrtholla vie, riippuen mallipisteiden määrästä, yleensä yli 2 minuuttia. Mitä enemmän pisteiden nimeämisiä ja asetettuja mittauksia, sitä enemmän aikaa kuluu. Kuvissa 42(a) ja 42(b) on esitetty saman mittauksen asettaminen kummallakin ohjelmalla. Orthometrics:ssa mittaukset asetetaan valitsemalla pisteet luettelosta. NOrthon etuna on, että siinä asetetut mittaukset ovat 51
52 52 Taulukko 1. Mallitiedoston luontinopeus Orthometrics:lla ja NOrtholla. Mallin luonti 10 pistettä 20 pistettä Orthometrics 2 min 30 s 3 min NOrtho 2 min 2 min 30 s Taulukko 2. Mittauspisteiden siirtonopeus Orthometrics:lla ja NOrtholla. Pisteiden siirto 10 pistettä 20 pistettä Orthometrics 3 min 5 min 20 s Orthometrics zoomaamalla 4 min 7 min NOrtho 1 min 1 min visuaalisesti nähtävissä kuvan 42(b) tavalla, jolloin käyttäjä voi heti varmistaa, että hän on asettanut oikeat mittaukset. Myös mallipisteiden nimeäminen on osin automatisoitu. (a) (b) Kuva 42. (a) Mallitiedoston luonti Orthometrics:ssa (b) Mallitiedoston luonti NOrthossa. Mittauspisteiden siirtoon kuluvista ajoista huomaa selvästi, kuinka paljon nopeampi NOrtho on. Orthometrics:ssa jokainen piste täytyy siirtää manuaalisesti oikealle paikalle. Jos on asetettu 20 mallipistettä, mittauskuvissa joudutaan tällöin tekemään jo 100 siirtoa. Jos käyttäjä haluaa merkitä pisteet mahdollisimman tarkasti, hän joutuu tarkentamaan kuvaa ja siirtämään pisteitä yhä uudelleen ja uudelleen. NOrthossa pisteet keskitetään automaattisesti ja niitä ei välttämättä jouduta siirtämään manuaalisesti ollenkaan. Lisäksi NOrthossa mittauspisteiden määrä ei juurikaan vaikuta sen suoritusnopeuteen. Kun pisteet keskitetään automaattisesti, myös kolmiulotteinen malli saadaan tarkemmaksi. Taulukon 2 esimerkkitapauksissa molemmilla ohjelmilla luoduista mittauspis-
53 tetiedostoista tehtiin kolmiulotteinen malli ja verrattiin näin saatuja etäisyys- ja kulmatuloksia. Orthometrics laskee, kuinka monta iterointikertaa käytetään ja kuinka paljon keskivirhe (juurikeskineliövirhe eli RMSE, root mean squared error) on. Mittaustiedostojen keskivirhe NOrthossa oli noin kymmenesosan pienempi kuin Orthometrics:ssa. Etäisyystuloksissa tämä voi näkyä jopa 3 mm:n erona ja kulmatuloksissa lähes 2 asteen erona. Pitää muistaa, että kolmiulotteinen malli on sitä tarkempi, mitä enemmän pisteitä on. Orthometrics-ohjelmassa suositellaan vähintään viiden pisteen käyttöä referenssipisteiden lisäksi, jottei mittausten tarkkuus kärsisi liikaa Tuleva työ Tällä hetkellä NOrtho ja Orthometrics ovat kaksi eri ohjelmaa jotka kommunikoivat tiedostojen välityksellä. Orthometrics-ohjelmaa tarvitaan kameran kalibrointiin, valokuvien ottoon ja kolmiulotteisen mallin laskemiseen. Myös nämä toiminnot voitaisiin siirtää osaksi NOrthoa. Toimintojen lisäämistä ei tehty, sillä tämän työn ohjelmointitavoitteena oli pelkästään mittauspisteiden haun automatisointi. Pisteiden ja vastinpisteiden haku voitaisiin automatisoida täysin, jolloin mallikuvaankaan ei tarvitsisi merkitä pisteitä. Tällöin myös pisteiden nimeäminen olisi ohjelman vastuulla, eikä käyttäjän tarvitsisi tehdä muuta kuin ladata kuvat, asettaa mittaukset ja tallettaa tulokset. Käyttäjälle jätettäisiin kuitenkin vapaus poistaa tai lisätä pisteitä. Tämä voitaisiin toteuttaa käyttämällä k-means-algoritmin löytämiä pisteitä, joista käyttäjä voisi valita haluamansa mittauspisteet. Jos käytettäisiin värikuvia ja valoksiin merkityt pisteet merkittäisiin esimerkiksi punaisella värillä, pisteiden paikannus pystyttäisiin tekemään luotettavammin ja taustasta ei löytyisi yhtä monta kohinapistettä. Tarvittavat modikaatiot NOrtho-ohjelmaan olisivat varsin pieniä, sillä ohjelma tukee jo värikuvien latausta. 53
54 7. YHTEENVETO Tässä työssä tehtiin ohjelma, jolla voidaan etsiä pisteitä ja pistevastaavuuksia hammasvaloskuvista. NOrthoksi nimetty ohjelma on kirjoitettu Python ohjelmointikielellä ja sen tuloksia käytetään hyväksi Orthometrics-ohjelmassa. Ohjelmat kommunikoivat keskenään tekstitiedostojen avulla. Orthometrics-ohjelma suorittaa kameran kalibroinnin ja tallettaa kalibrointiparametrit tiedostoon, jota sekä NOrtho että Orthometrics käyttävät. Se myös ottaa valokuvia hammasvaloksista viidestä eri asennosta. Käyttäjä luo hammasmallin, johon hän merkitsee ja nimeää pisteitä sekä määrittää millaisia mittauksia hän haluaa tehdä. Kalibrointiparametrien ja käyttäjän merkitsemien malli- ja mittauspisteiden avulla ohjelma laskee yksinkertaisen kolmiulotteisen mallin. Se myös laskee kulma- ja etäisyysmittauksia käyttäjän haluamista mallipisteistä. Orthometrics:ssa käyttäjä merkitsee kaikki pisteet jokaiseen mittauskuvaan käsin hiirellä, mikä voi aiheuttaa tarkkuusvirheitä. NOrthon avulla haluttiin vähentää käyttäjän työmäärää automatisoimalla pisteiden ja pistevastineiden etsintää. NOrthossa käyttäjä merkitsee mallipisteet ja haluamansa mittaukset mallikuvaan, joka on aina oltava jokin mittauskuvista. Kulma- ja etäisyysmittaukset tehdään valitsemalla hiirellä halutut pisteet. Mittaukset jäävät näkyviin mallikuvaan ja käyttäjä voi muuttaa niitä halutessaan. Orthometrics:ssa mallikuva luodaan eri ikkunassa ja sen editointi aloittaa aina uuden projektin, jolloin myös malli ja mittaukset ovat joko tehtävä tai ladattava uudelleen. NOrthossa mittauskuvat jäävät näkyviin, vaikka mallia muutettaisiinkin välillä. Referenssipisteet ovat pisteitä, jotka on merkitty kuvausalustan nurkkiin, niiden sijainti ja etäisyys toisistaan tiedetään. Referenssipisteet ovat myös ainoat pisteet, jotka ovat merkitty valmiiksi sekä mallikuvaan että mittauskuviin, eikä käyttäjä voi poistaa niitä. Niiden siirtämiseksi oikeille paikoilleen kehitettiin algoritmi, joka etsii kuvista tietyn mittausuhteen omaavia suunnikkaan muotoisia kuvioita. Kun käyttäjä on merkinnyt kaikki haluamansa pisteet ja mittaukset mallikuvaan ja siirtänyt referenssipisteet, hän voi aloittaa mittauskuvien käsittelyn. Tässä työssä kehitettiin k-means-algoritmiin pohjautuva menetelmä, joka etsii tummia pisteitä vaalealta pohjalta ja laskee löydetyn pisteen tarkan paikan automaattisesti. Näiden potentiaalisten pisteiden joukosta etsitään mittapisteet käyttämällä referenssipisteisiin ja mallikuvan pisteisiin perustuvaa tasoprojektiosiirrosta. Referenssipisteiden siirtymästä kuvien välillä voidaan laskea, kuinka mittausalusta on kääntynyt. Mittausalustan liikkeestä saadaan alkuarvaus sille, miten mittapisteet siirtyvät ja miten niiden kuvio vääristyy. Tämän jälkeen voidaan etsiä kutakin mallipistettä vastaava mittapiste käyttämällä lähimmän pisteen algoritmia ja siirtää pisteitä käyttäen kaksiulotteista similariteettimuunnosta. Jos kaikki mittapisteet eivät löydy edellä esitetyllä tavalla, jo löydettyjen vastinpisteiden avulla luodaan epipolaarigeometriamallit kuvien välille. Lasketaan epipolaariviivojen sijainnit ja projisoidaan ne kuviin. Jos tunnetaan vähintään kolme kuvaa, kuvien 1. ja 2. epipolaariviivat voidaan projisoida kuvaan 3. ja etsiä aiemmin tunnistamatta jääneitä pisteitä epipolaariviivojen leikkauskohdista. Jos järjestelmä ei löydä jotain pistettä tai siirsi sen väärin, käyttäjä voi auttaa järjestelmää ja korjata virheen. 54
55 Kun kaikki mittapisteet ovat löydetty jokaisesta mittauskuvasta, tulokset talletetaan tiedostoon. Malli- ja mittaustiedostot ladataan Orthometrics-ohjelmaan, joka laskee mittaukset ja kolmiulotteisen mallin. NOrthon avulla on onnistuttu vähentämään mittauksiin kuluvaa aikaa huomattavasti. Käytetyt menetelmät löytävät pisteet ja pistevastineet nopeasti ja tarkasti. Pisteiden automaattinen keskittäminen auttaa myös saamaan tarkemmat mittaustulokset. 55
56 8. LÄHTEET [1] Pirilä-Parkkinen K., Pirttiniemi P., Alvesalo L., Silvén O., Heikkilä J. & Osborne R.H. (2001) The relationship of handedness to asymmetry in the occlusal morphology of rst permanent molars. European Journal of Morphology 39(2), pp [2] Pirttiniemi P., Alvesalo L., Silvén O., Heikkilä J., Julku J. & Karjalahti P. (1998) Asymmetry in the occlusal morphology of rst permanent molars in 45,x/46,xx mosaics. Archives of Oral Biology 43(1), pp [3] Hayashi K., Uechi J. & Mizoguchi I. (2002) Three-dimensional analysis of dental casts based on a newly dened palatal reference plane. The Angle Orthodontist 73(5), pp [4] Gracco A., Buradello M., Cozzani M. & Siciliani G. (2007) Digital and plaster models: a comparison of measurements and times. Progress in Orthodontics, Mediterranean Journal of Orthodontics 8(2), pp [5] Orthometric users' manual, 3Dent IT solutions for dental applications. (luettu ). URL: Orthometric_Ingles%203.0.pdf. [6] Karttunen H. (luettu ), CCD kamera, Tähtitieteen tietokanta, Ursa ja Tuorlan observatorio. URL: ccd.htm. [7] Charge coupled device (CCD) image sensors, CCD primer. (luettu ). URL: plugins/acrobat/en/supportdocs/chargecoupleddevice. pdf. [8] Hartley R.I. & Zisserman A. (2003) Multiple View Geometry in Computer Vision. Cambridge University Press, 2nd ed., 655 p. [9] Heyden A. & Pollefeys M. (2004) Multiview geometry. In: Emerging Topics in Computer Vision, Prentice-Hall, pp [10] Sonka M., Hlavac V. & Boyle R. (1998) Image Processing, Analysis, and Machine Vision. Thomson Engineering, PWS, 2nd ed., 800 p. [11] Zhang Z., Deriche R., Faugeras O. & Luong Q.T. (1995) A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry. Articial Intelligence Journal 78(1 2), pp [12] Weeks A.R. (1996) Fundamentals of Electronic Image Processing. IEEE Press, 1st ed., 570 p. [13] Hecht E. (2002) Optics. Addison-Wesley, 4th ed., 698 p. [14] Clarke T.A. & Fryer J.F. (1998) The development of camera calibration methods and models. Photogrammetric Record 16(91), pp
57 [15] Triggs B., McLauchlan P.F., Hartley R.I. & Fitzgibbon A.W. (2000) Bundle adjustment - a modern synthesis. In: ICCV '99: Proceedings of the International Workshop on Vision Algorithms, Springer-Verlag, pp [16] Brown D.C. (1966) Decentering distortion of lenses. Photogrammetric Engineering 32(3), pp [17] Slama C.C. (ed.) (1980) Manual of Photogrammetry. American Society of Photogrammetry and Remote Sensing, Falls Church, Virginia, USA, 4th ed. [18] Tsai R.Y. (1987) A versatile camera calibration technique for high-accuracy 3d machine vision metrology using off-the-shelf tv cameras and lenses. IEEE Journal of Robotics and Automation 3(4), pp [19] Heikkilä J. & Silvén O. (1997) A four-step camera calibration procedure with implicit image correction. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'97), San Juan, Puerto Rico, pp [20] Barnard S. & Fischler M. (1982) Computational stereo. Computing Surveys 14(4), pp [21] Scharstein D. & Szelinski R. (2002) A taxonomy and evaluation of dense twoframe stereo correspondence algorithms. International Journal of Computer Vision 47(1 3), pp [22] Dhond U. & Aggarwal J. (1989) Structure from stereo a review. IEEE Transactions on Systems, Man and Cybernetics 19(6), pp [23] Davis J., Nehab D., Ramamoorthi R. & Rusinkiewicz S. (2005) Spacetime stereo: A unifying framework for depth from triangulation. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI) 27(2), pp [24] Pentland A.P. (1987) A new sense for depth of eld. IEEE Trans. Pattern Anal. Mach. Intell. 9(4), pp [25] Longuet-Higgins H.C. (1981) A computer algorithm for reconstructing a scene from two projections. Nature 293, pp [26] Luong Q.T., Deriche R., Faugeras O. & Papadopoulo T. (1993) On determining the fundamental matrix: Analysis of different methods and experimental results. Tech. Rep. RR-1894, INRIA, Institut National de Recherche en Informatique et en Automatique. [27] Luong Q.T. & Faugeras O.D. (1996) The fundamental matrix: Theory, algorithms, and stability analysis. International Journal of Computer Vision 17(1), pp [28] Faugeras O. (1992) What can be seen in three dimensions with an uncalibrated stereo rig? In: Proc. European Conf. on Computer Vision, pp
58 [29] Hartley R.I. (1992) Estimation of relative camera positions for uncalibrated cameras. In: Lecture Notes in Computer Science, Proceedings of the Second European Conference on Computer Vision, pp [30] Hartley R.I. (1993) Computing matched-epipolar projections. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'93), pp [31] Hartley R.I. (1994) Projective reconstruction and invariants from multiple images. IEEE Transactions on Pattern Analysis and Machine Intelligence 16(10), pp [32] Zhang Z. (1998) Determining the epipolar geometry and its uncertainty: A review. International Journal of Computer Vision 27(2), pp [33] Hartley R.I. (1997) In defense of the eight-point algorithm. IEEE Transactions on Pattern Analysis and Machine Intelligence 19(6), pp [34] Hartley R.I. (1998) Minimizing algebraic error in geometric estimation problems. In: Proceedings of Sixth International Conference on Computer Vision(ICCV'98), IEEE Computer Society, pp [35] Fischler M.A. & Bolles R.C. (1981) Random sample consensus: A paradigm for model tting with application to image analysis and automated cartography. Communications of the ACM 24(6), pp [36] Torr P.H.S. (1995) Outlier Detection and Motion Segmentation. Ph.D. thesis, Department of Engineering Science, University of Oxford. [37] Fisher R.B. (luettu ), The RANSAC (Random Sample Consensus) Algorithm, in CVonline: On-Line Compendium of Computer Vision [Online]. URL: [38] Torr P.H.S. & Murray D.W. (1997) The development and comparison of robust methods for estimating the fundamental matrix. Intl. J. of Computer Vision 24(3), pp [39] Besl P.J. & McKay N.D. (1992) A method for registration of 3-D shapes. IEEE Trans. Patt. Anal. Machine Intell. 14(2), pp [40] Zhang Z. (1992) Iterative point matching for registration of free-form curves. Tech. Rep. RR-1658, INRIA, Institut National de Recherche en Informatique et en Automatique. [41] Pulli K. (1999) Multiview registration for large data sets. In: Second International Conference on 3D Digital Imaging and Modeling (3DIM'99), pp [42] Heckbert P.S. (1989) Fundamentals of Texture Mapping and Image Warping. Master's thesis, Dept. of Electrical Engineering and Computer Science, University of California, Berkeley. 58
59 [43] Friedman J.H., Bentley J.L. & Finkel R.A. (1977) An Algorithm for Finding Best Matches in Logarithmic Expected Time. ACM Transactions on Mathematical Software 3(3), pp [44] Horn B.K.P. Closed-form solution of absolute orientation using unit quaternions. Journal of the Optical Society of America A 4(4), number = 4, pages =. [45] Jain A.K., Murty M.N. & Flynn P.J. (1999) Data clustering: A review. ACM Computing Surveys 31(3), pp [46] Jain A.K. & Dubes R.C. (1988) Algorithms for Clustering Data. Prentice Hall, 1st ed., 334 p. [47] MacQueen J. (1967) Some methods for classication and analysis of multivariate observations. In: Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability, Vol.1, pp [48] MacKay D.J.C. (2003) Information Theory, Inference, and Learning Algorithms. Cambridge University Press, 1st ed., 628 p. [49] Shapiro L.G. & Stockman G.C. (2001) Computer Vision. Prentice-Hall, 608 p. [50] Pham D.L., Xu C. & Prince J.L. (2000) Current methods in medical image segmentation. Annual Review of Biomedical Engineering 2. [51] IJ Plugins: Clustering. (luettu ). URL: sourceforge.net/plugins/clustering/index.html. [52] Lowe D.G. (1999) Object recognition from local scale-invariant features. In: Proc. of the International Conference on Computer Vision ICCV, Corfu, pp [53] Lowe D.G. (2004) Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision 60(2), pp [54] Lowe D.G. (luettu ), Demo software: SIFT keypoint detector. URL: 59
Malleja ja menetelmiä geometriseen tietokonenäköön
Malleja ja menetelmiä geometriseen tietokonenäköön Juho Kannala 7.5.2010 Johdanto Tietokonenäkö on ala, joka kehittää menetelmiä automaattiseen kuvien sisällön tulkintaan Tietokonenäkö on ajankohtainen
Luento 3: 3D katselu. Sisältö
Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran
Maa-57.260. Kameran kalibrointi. TKK/Fotogrammetria/PP
Kameran kalibrointi Kameran kalibroinnilla tarkoitetaan sen kameravakion, pääpisteen paikan sekä optiikan aiheuttamien virheiden määrittämistä. Virheillä tarkoitetaan poikkeamaa ideaalisesta keskusprojektiokuvasta.
Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)
Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe 26.10.2017 Ratkaisuehdotus 1. (35 pistettä) (a) Seuraavat matriisit on saatu eräistä yhtälöryhmistä alkeisrivitoimituksilla. Kuinka monta ratkaisua yhtälöryhmällä
S09 04 Kohteiden tunnistaminen 3D datasta
AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen
Numeeriset menetelmät
Numeeriset menetelmät Luento 5 Ti 20.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 5 Ti 20.9.2011 p. 1/40 p. 1/40 Choleskyn menetelmä Positiivisesti definiiteillä matriiseilla kolmiohajotelma
MS-A0004/A0006 Matriisilaskenta
4. MS-A4/A6 Matriisilaskenta 4. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto..25 Tarkastellaan neliömatriiseja. Kun matriisilla kerrotaan vektoria, vektorin
Tekijä Pitkä matematiikka
K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π
Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste
Suora 1/5 Sisältö KATSO MYÖS:, vektorialgebra, geometriset probleemat, taso Suora geometrisena peruskäsitteenä Pisteen ohella suora on geometrinen peruskäsite, jota varsinaisesti ei määritellä. Alkeisgeometriassa
Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2
8. Geometriset kuvaukset 8.1. Euklidiset kuvaukset 344. Esitä muodossa x = Ax + b se avaruuden E 3 peilauskuvaus, jonka symmetriatasona on x 1 3x + x 3 = 6. A = 1 3 6 6 3, b = 1 1 18. 3 6 6 345. Tason
2 Pistejoukko koordinaatistossa
Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia
y=-3x+2 y=2x-3 y=3x+2 x = = 6
MAA Koe, Arto Hekkanen ja Jussi Tyni 5.5.015 Loppukoe LASKE ILMAN LASKINTA. 1. Yhdistä kuvaaja ja sen yhtälö a) 3 b) 1 c) 5 d) Suoran yhtälö 1) y=3x ) 3x+y =0 3) x y 3=0 ) y= 3x 3 5) y= 3x 6) 3x y+=0 y=-3x+
Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).
Tekijä Pitkä matematiikka 4 9.12.2016 212 Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Vastaus esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4) 213 Merkitään pistettä
MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009
EB-TUTKINTO 2009 MATEMATIIKKA 5 VIIKKOTUNTIA PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009 KOKEEN KESTO: 4 tuntia (240 minuuttia) SALLITUT APUVÄLINEET: Eurooppa-koulun antama taulukkovihkonen Funktiolaskin, joka ei saa
Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2
3D-kuvauksen tekniikat ja sovelluskohteet. Mikael Hornborg
3D-kuvauksen tekniikat ja sovelluskohteet Mikael Hornborg Luennon sisältö 1. Optiset koordinaattimittauskoneet 2. 3D skannerit 3. Sovelluskohteet Johdanto Optiset mittaustekniikat perustuvat valoon ja
Luento 7: 3D katselu. Sisältö
Tietokonegrafiikka / perusteet Tik-.3/3 4 ov / 2 ov Luento 7: 3D katselu Lauri Savioja /4 3D katselu / Sisältö Koorinaattimuunnokset Kameran ja maailmankoorinaatiston yhteys Perspektiivi 3D katselu / 2
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.
3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta
Fotogrammetrian termistöä
Fotogrammetrian termistöä Petri Rönnholm, Henrik Haggrén, 2015 Hei. Sain eilen valmiiksi mukavan mittausprojektin. Kiinnostaako kuulla yksityiskohtia? Totta kai! (Haluan tehdä vaikutuksen tähän kaveriin,
Demo 1: Simplex-menetelmä
MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x
Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on
13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko 5 Tehtävä 1 (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 3 =, b) z + 3 i < 3, c) 1/z >. Yleisesti: ehto z = R, z C muodostaa kompleksitasoon
Luento 6: 3-D koordinaatit
Maa-57.300 Fotogrammetrian perusteet Luento-ohjelma 1 2 3 4 5 6 7 8 9 10 11 12 13 Luento 6: 3-D koordinaatit AIHEITA (Alkuperäinen luento: Henrik Haggrén, 16.2.2003, Päivityksiä: Katri Koistinen 5.2.2004
RATKAISUT: 16. Peilit ja linssit
Physica 9 1 painos 1(6) : 161 a) Kupera linssi on linssi, jonka on keskeltä paksumpi kuin reunoilta b) Kupera peili on peili, jossa heijastava pinta on kaarevan pinnan ulkopinnalla c) Polttopiste on piste,
Epäeuklidista geometriaa
Epäeuklidista geometriaa 7. toukokuuta 2006 Sisältö 1 Johdanto 1 1.1 Euklidinen geometria....................... 1 1.2 Epäeuklidinen geometria..................... 2 2 Poincarén kiekko 2 3 Epäeuklidiset
MS-C1340 Lineaarialgebra ja
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt QR-hajotelma ja pienimmän neliösumman menetelmä Riikka Kangaslampi Kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto PNS-ongelma PNS-ongelma
Inversio-ongelmien laskennallinen peruskurssi Luento 4
Inversio-ongelmien laskennallinen peruskurssi Luento 4 Kevät 20 Regularisointi Eräs keino yrittää ratkaista (likimääräisesti) huonosti asetettuja ongelmia on regularisaatio. Regularisoinnissa ongelmaa
Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A000 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2..205 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x x 2 =
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.
Tekijä Pitkä matematiikka 5 7..017 37 Pisteen (x, y) etäisyys pisteestä (0, ) on ( x 0) + ( y ). Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y. Merkitään etäisyydet yhtä suuriksi ja ratkaistaan
Moniulotteisia todennäköisyysjakaumia
Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia TKK (c) Ilkka Mellin (007) 1 Moniulotteisia todennäköisyysjakaumia >> Multinomijakauma Kaksiulotteinen
Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.
Tekijä Pitkä matematiikka 5 7..017 31 Kirjoitetaan yhtälö keskipistemuotoon ( x x ) + ( y y ) = r. 0 0 a) ( x 4) + ( y 1) = 49 Yhtälön vasemmalta puolelta nähdään, että x 0 = 4 ja y 0 = 1, joten ympyrän
9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa
9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.
x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b)
MAA4 ratkaisut. 5 a) Itseisarvon vastauksen pitää olla aina positiivinen, joten määritelty kun 5 0 5 5 tai ( ) 5 5 5 5 0 5 5 5 5 0 5 5 0 0 9 5 9 40 5 5 5 5 0 40 5 Jälkimmäinen vastaus ei toimi määrittelyjoukon
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt
MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt ja pienimmän neliösumman menetelmä Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 18 R. Kangaslampi QR ja PNS PNS-ongelma
Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon
Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon KA1-kurssi on ehkä mahdollista läpäistä, vaikkei osaisikaan piirtää suoraa yhtälön perusteella. Mutta muut kansiksen kurssit, no
Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016
Osakesalkun optimointi Anni Halkola Turun yliopisto 2016 Artikkeli Gleb Beliakov & Adil Bagirov (2006) Non-smooth optimization methods for computation of the Conditional Value-at-risk and portfolio optimization.
BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016
BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016 1. Hahmottele karkeasti funktion f : R R 2 piirtämällä sen arvoja muutamilla eri muuttujan arvoilla kaksiulotteiseen koordinaatistoon
Lineaarikuvauksen R n R m matriisi
Lineaarikuvauksen R n R m matriisi Lauseessa 21 osoitettiin, että jokaista m n -matriisia A vastaa lineaarikuvaus L A : R n R m, jolla L A ( v) = A v kaikilla v R n. Osoitetaan seuraavaksi käänteinen tulos:
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35
Numeeriset menetelmät TIEA381 Luento 8 Kirsi Valjus Jyväskylän yliopisto Luento 8 () Numeeriset menetelmät 11.4.2013 1 / 35 Luennon 8 sisältö Interpolointi ja approksimointi Funktion approksimointi Tasainen
Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28
Numeeriset menetelmät TIEA381 Luento 5 Kirsi Valjus Jyväskylän yliopisto Luento 5 () Numeeriset menetelmät 3.4.2013 1 / 28 Luennon 5 sisältö Luku 4: Ominaisarvotehtävistä Potenssiinkorotusmenetelmä QR-menetelmä
Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia
Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia TKK (c) Ilkka Mellin (006) 1 Moniulotteisia todennäköisyysjakaumia >> Multinomijakauma Kaksiulotteinen
JAKSO 2 KANTA JA KOORDINAATIT
JAKSO 2 KANTA JA KOORDINAATIT Kanta ja dimensio Tehtävä Esittele vektoriavaruuden kannan määritelmä vapauden ja virittämisen käsitteiden avulla ja anna vektoriavaruuden dimension määritelmä Esittele Lause
Oppimistavoitematriisi
Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Arvosanaan 1 2 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä ja yhtälöpareja Osaan muokata
MAA4 Abittikokeen vastaukset ja perusteluja 1. Määritä kuvassa olevien suorien s ja t yhtälöt. Suoran s yhtälö on = ja suoran t yhtälö on = + 2. Onko väittämä oikein vai väärin? 2.1 Suorat =5 +2 ja =5
Oppimistavoitematriisi
Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Esitiedot Arvosanaan 1 2 riittävät Arvosanaan 3 4 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä
Suorista ja tasoista LaMa 1 syksyllä 2009
Viidennen viikon luennot Suorista ja tasoista LaMa 1 syksyllä 2009 Perustuu kirjan Poole: Linear Algebra lukuihin I.3 - I.4 Esko Turunen [email protected] Aluksi hiukan 2 ja 3 ulotteisen reaaliavaruuden
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.
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
Lineaariset kongruenssiyhtälöryhmät
Lineaariset kongruenssiyhtälöryhmät LuK-tutkielma Jesse Salo 2309369 Matemaattisten tieteiden laitos Oulun yliopisto Sisältö Johdanto 2 1 Kongruensseista 3 1.1 Kongruenssin ominaisuuksia...................
Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio
Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä
Konformigeometriaa. 5. maaliskuuta 2006
Konformigeometriaa 5. maaliskuuta 006 1 Sisältö 1 Konformigeometria 1.1 Viivan esitys stereograasena projektiona............ 1. Euklidisen avaruuden konformaalinen malli........... 4 Konformikuvaukset
Numeeriset menetelmät
Numeeriset menetelmät Luento 14 To 20.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 14 To 20.10.2011 p. 1/39 p. 1/39 Nopeat Fourier-muunnokset Diskreetti Fourier-muunnos ˆf k = 1 N 1 N
MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.
MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. Antti Rasila Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kevät 2016
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN
Lineaarinen yhtälöryhmä
Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.
Muodonmuutostila hum 30.8.13
Muodonmuutostila Tarkastellaan kuvan 1 kappaletta Ω, jonka pisteet siirtvät ulkoisen kuormituksen johdosta siten, että siirtmien tapahduttua ne muodostavat kappaleen Ω'. Esimerkiksi piste A siirt asemaan
MAB3 - Harjoitustehtävien ratkaisut:
MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla
Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia: Mitä opimme?
TKK (c) Ilkka Mellin (4) Moniulotteisia todennäköisyysjakaumia Johdatus todennäköisyyslaskentaan Moniulotteisia todennäköisyysjakaumia TKK (c) Ilkka Mellin (4) Moniulotteisia todennäköisyysjakaumia: Mitä
Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:
Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman
Kohdeyleisö: toisen vuoden teekkari
Julkinen opetusnäyte Yliopisto-opettajan tehtävä, matematiikka Klo 8:55-9:15 TkT Simo Ali-Löytty Aihe: Lineaarisen yhtälöryhmän pienimmän neliösumman ratkaisu Kohdeyleisö: toisen vuoden teekkari 1 y y
MS-A0003/A Matriisilaskenta Laskuharjoitus 6
MS-A3/A - Matriisilaskenta Laskuharjoitus 6 Ratkaisuehdotelmia. Diagonalisointi on hajotelma A SΛS, jossa diagonaalimatriisi Λ sisältää matriisin A ominaisarvot ja matriisin S sarakkeet ovat näitä ominaisarvoja
Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut
Insinöörimatematiikka D, 29.3.2016 4. laskuharjoituksien esimerkkiratkaisut 1. Olkoon u (4,0,4,2) ja v ( 1,1,3,5) vektoreita vektoriavaruudessa R 4. Annetun sisätulon (x,y) indusoima normi on x (x,x) ja
PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011
PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan
1 Rajoittamaton optimointi
Taloustieteen matemaattiset menetelmät 7 materiaali 5 Rajoittamaton optimointi Yhden muuttujan tapaus f R! R Muistutetaan mieleen maksimin määritelmä. Funktiolla f on maksimi pisteessä x jos kaikille y
Luento 2 Stereokuvan laskeminen. 2008 Maa-57.1030 Fotogrammetrian perusteet 1
Luento 2 Stereokuvan laskeminen 2008 Maa-57.1030 Fotogrammetrian perusteet 1 Aiheet Stereokuvan laskeminen stereokuvan piirto synteettisen stereokuvaparin tuottaminen laskemalla stereoelokuva kollineaarisuusyhtälöt
Päättelyn voisi aloittaa myös edellisen loppupuolelta ja näyttää kuten alkupuolella, että välttämättä dim W < R 1 R 1
Lineaarialgebran kertaustehtävien b ratkaisuista. Määritä jokin kanta sille reaalikertoimisten polynomien lineaariavaruuden P aliavaruudelle, jonka virittää polynomijoukko {x, x+, x x }. Ratkaisu. Olkoon
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN
4 Yleinen potenssifunktio ja polynomifunktio
4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako
Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:
Simo K. Kivelä, 13.7.004 Frégier'n lause Toisen asteen käyrillä ellipseillä, paraabeleilla, hyperbeleillä ja niiden erikoistapauksilla on melkoinen määrä yksinkertaisia säännöllisyysominaisuuksia. Eräs
s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4
BM0A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 5, Syksy 05. (a) i. Jotta vektori c sijaitsisi a:n ja b:n virittämällä tasolla, c on voitava esittää a:n ja b:n lineaarikombinaationa. c ta + sb
Suorien ja tasojen geometriaa Suorien ja tasojen yhtälöt
6. Suorien tasojen geometriaa 6.1. Suorien tasojen yhtälöt 55. Osoita, että yhtälöt x = 3 + τ y = 1 3τ esittävät samaa tason suoraa. Yhteinen piste 1,5) suunta i 3j. x = 1 6τ y = 5 + 9τ 56. Määritä suoran
5.3 Suoran ja toisen asteen käyrän yhteiset pisteet
.3 Suoran ja toisen asteen käyrän yhteiset pisteet Tämän asian taustana on ratkaista sellainen yhtälöpari, missä yhtälöistä toinen on ensiasteinen ja toinen toista astetta. Tällainen pari ratkeaa aina
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN
Ratkaisuehdotukset LH 8 / vko 47
Ratkaisuehdotukset LH 8 / vko 47 Tehtävä 1: Olkoot A R n n matriisi, jonka singulaariarvohajotelma on A [ ] [ ] Σ U 1 U r 0 [V1 ] T 2 V 0 0 2 Jossa Σ r on kääntyvä matriisi, [ U 1 U 2 ] ja [ V1 V 2 ] ovat
Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus
Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus 2 7.2.2013 1. Matematiikan lukiokurssissa on esitetty, että ylöspäin aukeavan paraabelin f(x) = ax 2 +bx+c,a > 0,minimikohtasaadaan,kunf
k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu
LIS AYKSI A kirjaan Reaalimuuttujan analyysi 1.6. Numeerinen integrointi: Gaussin kaavat Edella kasitellyt numeerisen integroinnin kaavat eli kvadratuurikaavat Riemannin summa, puolisuunnikassaanto ja
Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin
HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta I, kesä 2015 Harjoitus 4 Ratkaisut palautettava viimeistään maanantaina 862015 klo 1615 Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin
Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus
Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)
7 Vapaus. 7.1 Vapauden määritelmä
7 Vapaus Kuten edellisen luvun lopussa mainittiin, seuraavaksi pyritään ratkaisemaan, onko annetussa aliavaruuden virittäjäjoukossa tarpeettomia vektoreita Jos tällaisia ei ole, virittäjäjoukkoa kutsutaan
5 OMINAISARVOT JA OMINAISVEKTORIT
5 OMINAISARVOT JA OMINAISVEKTORIT Ominaisarvo-ongelma Käsitellään neliömatriiseja: olkoon A n n-matriisi. Luku on matriisin A ominaisarvo (eigenvalue), jos on olemassa vektori x siten, että Ax = x () Yhtälön
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019
Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt
Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.
Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja
7 NELIÖMATRIISIN DIAGONALISOINTI. Ortogonaaliset matriisit Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja A - = A T () Muistutus: Kokoa n olevien vektorien
Näihin harjoitustehtäviin liittyvä teoria löytyy Adamsista: Ad6, Ad5, 4: 12.8, ; Ad3: 13.8,
TKK, Matematiikan laitos Gripenberg/Harhanen Mat-1.432 Matematiikan peruskurssi K2 Harjoitus 4, (A=alku-, L=loppuviikko, T= taulutehtävä, P= palautettava tehtävä, W= verkkotehtävä ) 12 16.2.2007, viikko
2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio
x = x 2 = 5/2 x 3 = 2 eli Ratkaisu on siis x = (x x 2 x 3 ) = ( 5/2 2) (Tarkista sijoittamalla!) 5/2 2 Tämä piste on alkuperäisten tasojen ainoa leikkauspiste Se on myös piste/vektori jonka matriisi A
Ratkaisuehdotukset LH 7 / vko 47
MS-C34 Lineaarialgebra, II/7 Ratkaisuehdotukset LH 7 / vko 47 Tehtävä : Olkoot M R symmetrinen ja positiividefiniitti matriisi (i) Näytä, että m > ja m > (ii) Etsi Eliminaatiomatriisi E R siten, että [
Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin
HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta I, kesä 2014 Harjoitus 4 Ratkaisujen viimeinen palautuspäivä: pe 662014 klo 1930 Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun
MAB3 - Harjoitustehtävien ratkaisut:
MAB3 - Harjoitustehtävien ratkaisut: 1 Funktio 1.1 Piirretään koordinaatistoakselit ja sijoitetaan pisteet: 1 1. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä.
Matriisilaskenta Luento 8: LU-hajotelma
Matriisilaskenta Luento 8: LU-hajotelma Antti Rasila 2016 Matriisihajotelmat 1/2 Usein matriisiyhtälön Ax = y ratkaiseminen on epäkäytännöllistä ja hidasta. Siksi numeerisessa matriisilaskennassa usein
7.4 PERUSPISTEIDEN SIJAINTI
67 7.4 PERUSPISTEIDEN SIJAINTI Optisen systeemin peruspisteet saadaan systeemimatriisista. Käytetään seuraavan kuvan merkintöjä: Kuvassa sisäänmenotaso on ensimmäisen linssin ensimmäisessä pinnassa eli
Vanhoja koetehtäviä. Analyyttinen geometria 2016
Vanhoja koetehtäviä Analyyttinen geometria 016 1. Määritä luvun a arvo, kun piste (,3) on käyrällä a(3x + a) = (y - 1). Suora L kulkee pisteen (5,1) kautta ja on kohtisuorassa suoraa 6x + 7y - 19 = 0 vastaan.
