Julkisivutekstuurin liittäminen 3D-malliin

Transcription

Julkisivutekstuurin liittäminen 3D-malliin
HELSINKI UNIVERSITY OF TECHNOLOGY
Laboratory of Photogrammetry and Remote Sensing
Department of Surveying
Julkisivutekstuurin liittäminen 3D-malliin
Anna Erving
2007
Julkisivutekstuurin liittäminen 3D-malliin
Teknillisen korkeakoulun
Maanmittausosastolla tehty Diplomityö
Espoo, tammikuu 2007
Anna Erving
Tekniikan ylioppilas
Valvoja: Prof. Henrik Haggrén
Ohjaaja: Petteri Pöntinen
ii
TEKNILLINEN KORKEAKOULU
DIPLOMITYÖN TIIVISTELMÄ
Tekijä:
Anna Erving
Työn nimi:
Julkisivutekstuurin liittäminen 3D-malliin
Päivämäärä:
16.1.2007
Osasto:
Maanmittausosasto
Professuuri:
Maa-57. Fotogrammetria ja kaukokartoitus
Pääaine:
Fotogrammetria
Sivumäärä: 98
Työn valvoja: Professori Henrik Haggrén
Työn ohjaaja: Tekniikan lisensiaatti Petteri Pöntinen
Teksturointi tarkoittaa pintakuvioinnin liittämistä 3D-mallin pintaan. Pintakuviointi
eli tekstuuri voi koostua yhdestä väristä, keinotekoisesta kuviosta tai oikeasta valokuvasta. Teksturointi lisää kohdemallin realistisuutta ja tietosisältöä, ja sitä käytetäänkin nykyään paljon 3D-mallien yhteydessä.
Tämän diplomityön tavoitteena on selvittää rakennusten tasomaisten julkisivupintojen teksturointiprosessi, sen mahdollisuudet ja ongelmakohdat. Pääpaino on teksturointiprosessin eri vaiheiden kuvaamisessa. Lisäksi huomioitavia seikkoja ovat prosessin eri vaiheiden automatisointi ja sen soveltuvuus laajoille aineistoille.
Tekstissä käydään läpi perusteoria tekstuurin liittämiseksi 3D-mallin pintaan. Lisäksi tutkitaan eri menetelmiä tehtävän kehittämiseksi mahdollisimman automaattiseksi
ja suurelle aineistolle sopivaksi. Työssä kartoitetaan myös erilaisia ongelmatilanteita
ja niiden ratkaisuvaihtoehtoja. Ongelmia tuottavat muun muassa näkymäesteet ja
puutteelliset lähtötiedot. Tutkimuksen tueksi on tehty kaksi koetyötä. Toisessa teksturoitu julkisivumalli on muodostettu maakuvista PhotoModeler Pro -ohjelmalla.
Toisessa vastaava malli on tehty maalaserkeilauksen avulla.
Työ sisältää esimerkkejä teksturointimenetelmistä erilaisissa tapauksissa. Jopa viimeisimpiä tutkimustuloksia hyväksi käyttäen teksturointi on edelleen haastava tehtävä. Erityisesti näkymäesteiden huomioiminen ja automatisointi tuovat ongelmia
prosessin onnistumiseen. Teksturoinnissa tulisi löytää kompromissi tarkkuuden, visuaalisen ulkoasun ja käytettävissä olevien resurssien välille.
Työ on osa VTT:n (Valtion tieteellinen tutkimuskeskus) 3D Maasto –projektia, ja
tuloksia hyödynnetään projektissa käytettävän 3D-mallin julkisivujen teksturoinnissa.
Avainsanat: teksturointi, 3D-malli, projektiivinen Kieli: Suomi, tiivistelmä
muunnos, automaattinen, näkymäeste
englanniksi
iii
HELSINKI UNIVERSITY OF
ABSTRACT OF THE
TECHNOLOGY
MASTER’S THESIS
Author:
Anna Erving
Thesis title:
Façade texturing of a 3D-model
Date:
16.1.2007
Department:
Department of Surveying
Professorship:
Maa-57. Photogrammetry and remote rensing
Major:
Photogrammetry
Supervisor:
Henrik Haggrén, Professor
Instructor:
Petteri Pöntinen, Lic.Sc.
Number of pages: 98
Texture mapping means adding of a surface texture to the face of a 3D-model. Surface texture can be made up of single color, artificial pattern, or real photograph.
Texture mapping increases the realism and the data content of the object model and
nowadays it is often used with 3D-models.
The aim of this master thesis is to define the texture mapping process of planar
façade surfaces and explore its possibilities and problems. The main objective is to
describe the phases of the texture mapping process. In addition, automation of
different phases in this process and its suitability for extensive datasets are
discussed.
The thesis includes the basic theory of texture mapping. Additionally, different
methods for developing the task as automatic as possible and compatibility for
extensive datasets are studied. Various problematic situations and their solution
options are surveyed as well. Problem sources are, for example, occlusions and
insufficient source information. To support this research, two experimental tasks
have been done. In the first experiment, a textured façade model has been created
with terrestrial photographs and PhotoModeler Pro –software. In the second case,
the corresponding model has been constructed through terrestrial laser scanning.
The work includes a wide range of examples concerning texture mapping methods
in various cases. Texture mapping is a challenging task, even when using the state of
the art research findings. Particularly, taking into account the occluding objects and
automation produces problems for solving the process successfully. Furthermore, a
compromise should be found between accuracy, visual appearance and available
resources.
The work is part of the 3D Maasto –project at VTT (Technical Research Centre of
Finland). The results will be utilized in the façade texture mapping of 3D-models
used in the project.
Keywords: texture mapping, 3D-model, projec- Language: Finnish, English abtive transformation, automatic, occlusion
stract
iv
Alkusanat
Tämä diplomityö on tehty vuoden 2006 aikana osana VTT:n 3D Maasto –projektia
Teknillisen korkeakoulun Fotogrammetrian ja kaukokartoituksen laboratoriossa.
Haluaisin kiittää 3D Maasto –projektin projektinjohtaja Eija Parmesta mielenkiintoisesta aiheesta, tuesta ja kommenteista työn eri vaiheissa. Kiitokset myös työn valvojalle professori Henrik Haggrénille ja ohjaajalle Petteri Pöntiselle avustuksesta
ja neuvoista sekä laboratorion muulle henkilökunnalle, joka on ylläpitänyt mukavaa
työympäristöä ja opastanut tarvittaessa.
Erityiskiitoksen ansaitsevat lisäksi Tauno sekä kaikki kaverit, jotka ovat tehneet
opiskeluajasta ikimuistoisen.
Espoo, tammikuu 2007
Anna Erving
v
SISÄLLYSLUETTELO
1 JOHDANTO ........................................................................................................... 1
1.1 Nykyhetken tutkimusta ................................................................................ 4
1.2 Työn rakenne ............................................................................................... 6
2 TEOREETTISET PERUSTEET.......................................................................... 7
2.1 Tausta........................................................................................................... 7
2.2 Muunnokset ............................................................................................... 11
2.2.1 Affiininen muunnos ........................................................................... 11
2.2.2 Bilineaarinen muunnos....................................................................... 12
2.2.3 Projektiivinen muunnos ..................................................................... 13
2.2.4 Menetelmien vertailua........................................................................ 16
2.3 Projektiot.................................................................................................... 18
2.3.1 Ortografinen projektio........................................................................ 20
2.3.2 Perspektiivinen projektio ................................................................... 21
2.4 Yhdistelmämuunnos .................................................................................. 24
2.5 Muita toimenpiteitä.................................................................................... 25
2.5.1 Suodatus ............................................................................................. 26
2.5.2 Interpolointi........................................................................................ 27
2.5.3 Kuvanmuodostus................................................................................ 32
3 TEKSTUROINTI KÄYTÄNNÖSSÄ ................................................................. 34
3.1 Teksturointiprosessin kulku....................................................................... 34
3.2 Kuvaus ....................................................................................................... 36
3.3 Muunnosparametrien ratkaisu.................................................................... 39
3.3.1 Tuntemattomat orientointitiedot......................................................... 39
3.3.2 Likimääräiset orientointitiedot ........................................................... 40
3.3.3 Kalibroimaton kamera........................................................................ 40
3.4 Vastinpiirteiden määritys........................................................................... 40
3.4.1 Piirreirrotus ........................................................................................ 41
3.4.2 Yhteensovitus..................................................................................... 45
3.5 Näkymäesteiden huomioiminen ................................................................ 47
3.5.1 Liikkuvat näkymäesteet ..................................................................... 48
3.5.2 Paikallaan olevat näkymäesteet.......................................................... 52
vi
3.5.3 Mallinnetut näkymäesteet .................................................................. 53
3.5.4 Näkymäesteiden poisto laajoissa aineistoissa .................................... 54
3.6 Kuvan ehostus............................................................................................ 55
4 LAAJOJEN AINEISTOJEN TEKSTUROINTI............................................... 57
4.1 Laajan aineiston haasteita .......................................................................... 57
4.2 Hierarkisen tietorakenteen hyödyntäminen ............................................... 58
4.2.1 Nelipuu............................................................................................... 59
4.2.2 Kuvapyramidi..................................................................................... 60
4.2.3 Level of detail .................................................................................... 61
4.2.4 CityGML ............................................................................................ 62
4.3 Kuvattavan alueen määritys....................................................................... 63
4.4 Kuvien tallennus ja pakkaus ...................................................................... 64
5 KOETYÖT............................................................................................................ 65
5.1 Teksturointi laatikkomallin pinnalle .......................................................... 65
5.1.1 Lähtötiedot ja työn vaiheet................................................................. 65
5.1.2 Mallinnuksen tulokset ........................................................................ 67
5.2 Teksturointi pistepilvistä muodostetun mallin pinnalle............................. 74
5.2.1 Lähtötiedot ja työn vaiheet................................................................. 74
5.2.2 Mallinnuksen tulokset ........................................................................ 76
6 YHTEENVETO.................................................................................................... 80
LÄHDELUETTELO
LIITTEET
vii
KUVAT:
Kuva 1: Pintatekstuuri tuo lisäarvoa 3D-mallille.................................................................... 1
Kuva 2: Tekstuuri valokuvalta: vasemmalla valokuva, oikealla malli, johon kyseinen
tekstuuri on liitetty (Blinn et al., 1976) .......................................................................... 2
Kuva 3: (a), (b) ja (c) alkuperäisiä kuvia, (d) saatu alkuperäisiä yhdistelemällä (Ortin et al.,
2005) .............................................................................................................................. 5
Kuva 4: 1D-tekstuuri, 2D-tekstuuri ja 3D-tekstuuri (Anon 3)................................................ 7
Taulukko 1: Perinteisen ja fotogrammetrisen teksturoinnin eroja (mukailtu lähteestä
Weinhaus et al., 1997).................................................................................................... 8
Kuva 5: Teksturoinnin geometria (Weinhaus et al., 1997). .................................................... 9
Kuva 6: Affiinisesti muunneltuja kuvia, alkuperäinen kuva vasemmalla (Heckbert, 1989). 12
Kuva 7: Vasemmalla alkuperäinen kuva, oikealla alkuperäisestä bilineaarisesti muunneltu
kuva (Heckbert, 1989).................................................................................................. 13
Kuva 8: Bilineaarisesti muunnettuja nelikulmioita: (a) Ruudukko lähtöavaruudessa. (b) ja
(c) Lähtöruudukko muunnettuna erimuotoisiksi nelikulmioiksi (Heckbert, 1989)...... 14
Kuva 9: Projektiivisesti muunnettuja kuvia, jotka ovat samanmuotoisia kohtien 8 (b) ja (c)
kanssa. Lähtökuvana toimii sama ruudukko kuin kuvassa 8 kohta (a). (Heckbert, 1989)
...................................................................................................................................... 16
Kuva 10: Vasemmalla ruututekstuuri, oikealla teksturointi lineaarisen muunnoksen avulla
(Heckbert, 1989). ......................................................................................................... 17
Kuva 11: Teksturointi projektiivisen muunnoksen avulla (Heckbert, 1989)........................ 18
Kuva 12: (a) Alkuperäinen kuva. (b) Teksturointi lineaarisella muunnoksella. (c)
Teksturointi bilineaarisella muunnoksella. (d) Teksturointi projektiivisella
muunnoksella. (Weinhaus et al., 1997)........................................................................ 19
Kuva 13: Vasemmalla perspektiivinen ja oikealla ortografinen projektio (Farmer, 2002). . 19
Kuva 14: Ortografinen projektio (Anon 4). .......................................................................... 20
Kuva 15: Ortografinen projektio tekstuurin ja kohteen välillä (Weinhaus et al., 1999). ...... 21
Kuva 16: Perspektiiviprojektion geometria, kun kuva- ja kohdetasot ovat yhdensuuntaiset
(Inkilä, 2005)................................................................................................................ 21
Kuva 17: Perspektiiviprojektio tekstuurin ja kohteen välillä (Weinhaus et al., 1999).......... 24
Kuva 18: Tekstuurikuva (vasemmalla) ja näyttökuva (oikealla) ovat usein erikokoisia ja muotoisia...................................................................................................................... 26
Kuva 19: Vasemmalla: Tekstuurialue on pienempi kuin vastaava alue näytöllä. Oikealla:
Tekstuurialue on suurempi kuin vastaava alue näytöllä. (Neider et al.) ...................... 27
Kuva 20: Ruutukuvion teksturointi lähimmän naapurin interpoloinnilla (Heckbert, 1989). 28
viii
Kuva 21: Bilineaarisen interpoloinnin periaate (Peltonen, 2006)......................................... 28
Kuva 22: Kuutiokonvoluutiossa painojen jakautuminen naapuripisteille. Vaaka-akselilla on
pisteen etäisyys naapuripisteeseen ja pystyakselilla painotuksen suuruus.
Interpoloitava piste sijaitsee vaaka-akselin kohdassa nolla, eli lähimpiä naapuripisteitä
painotetaan enemmän. (Anon 5) .................................................................................. 29
Kuva 23: Alkuperäinen kuva (Bockaert). ............................................................................. 30
Kuva 24: Lähimmän naapurin interpolointi (Bockaert)........................................................ 30
Kuva 25: Bilineaarinen interpolointi (Bockaert). ................................................................. 30
Kuva 26: Kuutiokonvoluutio (Bockaert). ............................................................................. 30
Kuva 27: Interpolointi eteenpäinmuunnoksen tapauksessa. ................................................. 31
Kuva 28: Interpolointi taaksepäinmuunnoksen tapauksessa................................................. 32
Kuva 29: Renderöinti scanline-algoritmilla (vasemmalla) ja säteenjäljitysalgoritmilla
(oikealla) (Hormann, 2006).......................................................................................... 33
Kuva 30: Teksturointiprosessin kulku eri tapauksissa.......................................................... 36
Kuva 31: Julkisivutekstuuri koottu maakuvasta (alaosa) ja ilmakuvasta (yläosa) (Früh et al.,
2004). ........................................................................................................................... 37
Kuva 32: Etualalla olevien tekstuurien resoluutio on parempi kuin taka-alalla olevien (Früh
et al., 2004)................................................................................................................... 38
Kuva 33: 3D-mallin sisältämät viivat vasemmalla vihreällä, kuvalta löydetyt viivat oikealla
punaisella (Früh et al., 2004)........................................................................................ 42
Kuva 34: Hough-muunnoksen avulla erotettu rakennuksen reunaviiva kuvalta (Böhm et al.,
2002). ........................................................................................................................... 43
Kuva 35: Rakennuksesta löydettyjä viivoja. Kaikki saman seinätason vaakasuuntaiset viivat
risteävät samassa pisteessä eli pakopisteessä. Vastaava toteutuu myös pystyviivojen
tapauksessa. (Lee et al., 2002a).................................................................................... 44
Kuva 36: Vasemmalta oikealle: kuvalta havaitut viivat, mallin sisältämät viivat ja
yhteensovitus (David et al., 2003)................................................................................ 46
Kuva 37: Rakennuksesta muodostettu yksinkertainen näkökulmagraafi (Böhm et al., 2002).
...................................................................................................................................... 46
Kuva 38: Vastinpiirteisiin perustuva taaksepäinleikkaus (Klinec, 2004). ............................ 47
Kuva 39: Vasemmalla tunnettu karkea orientointi, oikealla korjaus taaksepäinleikkauksen
avulla (Böhm et al., 2002)............................................................................................ 47
Kuva 40: Neljä kuvaa rakennuksesta, jonka edessä kulkevat liikenne ja jalankulkijat
peittävät osittain julkisivun alaosaa. Kameran paikka ja kuvaussuunta on sama
jokaisena kuvanottohetkenä. (Böhm, 2004)................................................................. 48
Kuva 41: Kuva muodostettu niistä pikseliarvoista, joita esiintyi eniten vastinpikseleiden
vertailussa (Böhm, 2004). ............................................................................................ 49
ix
Kuva 42: Mediaanisuodatus (Metherall, 2000). ................................................................... 50
Kuva 43: Mediaanisuodatus näkymäesteiden poistamisessa (mukailtu lähteestä Bornik et al.,
2001). ........................................................................................................................... 50
Kuva 44: Vasemmalla joukko kuvia pinossa, oikealla vastinpikselien väriarvot taulukossa.
Yksi väriarvo poikkeaa selvästi kolmesta muusta arvosta, joten se on luultavasti
liikkuvasta näkymäesteestä. (Böhm, 2004).................................................................. 51
Kuva 45: Ylärivissä kolme eri suunnista otettua kuvaa julkisivusta. Julkisivun näkyvyyttä
haittaa liikkuvien ihmisten lisäksi keskellä oleva patsas. Alarivissä julkisivuosa on
muunnettu tasomaisen julkisivun suuntaiseksi ortokuvaksi. (Böhm, 2004) ................ 52
Kuva 46: Julkisivu ortokuvana, josta näkymäesteitä on poistettu (Böhm, 2004)................. 52
Kuva 47: Tekstuurikartasto (texture atlas) koostuu nelipuurakenteesta (Buckholz et al.,
2005) ............................................................................................................................ 53
Kuva 48: Peittävän kohteen vaikutus tekstuuripintaan (Bornik et al., 2001)........................ 54
Kuva 49: (a) Julkisivusta otettu useita eri kuvia. (b) Seinätekstuuri koottu yhdistämällä eri
kuvia, jolloin sävyerot näkyvät kuvien rajakohdissa. (Varshosaz, 2004) .................... 55
Kuva 50: Teksturoitu 3D-malli Stuttgartista (Kada, 2004)................................................... 58
Kuva 51: Yllä kaksi tekstuurikuvaa ja alla niitä vastaavat nelipuuesitykset. Kuvien
perspektiivistä johtuen resoluutio vaihtelee kuvan eri osissa. Siksi kuvat on jaettu
nelipuussa kolmeen eri osaan. (Bornik et al., 2001) .................................................... 59
Kuva 52: Tekstuuri yhdistettynä kahdelta eri kuvalta. Vasemmanpuoleinen osa on otettu
toiselta kuvalta ja oikeanpuoleinen ja keskiosa toiselta kuvalta siten, että parhaat alueet
molemmilta kuvilta tulee käytettyä. (Bornik et al., 2001) ........................................... 60
Kuva 53: Kuvapyramidi (Ofek et al., 1997). ........................................................................ 60
Kuva 54: Eri yksityiskohtatasoja kanimallien tapauksessa. Vasemmalta oikealle mallit
koostuvat 69451, 8680, 1085 ja 135 monikulmiosta. (Erikson, 2000) ........................ 61
Kuva 55: Tarkinta mallia käytetään lähitarkastelussa, karkeinta mallia kaukaa katsottuna.
Vasemmalta oikealle mallit sisältävät 17361, 8680, 4340, 2169 ja 1085 pintaa.
(Erikson, 2000)............................................................................................................. 62
Kuva 56: CityGML:n määrittelemät viisi yksityiskohtatasoa (Gröger et al., 2006). ............ 63
Kuva 57: Kuvauspaikat ja niistä otetut tekstuurikuvat. ........................................................ 66
Kuva 58: M-osaston julkisivun teksturointi eri suunnista otetuilta kuvilta. Kuva (a) on
vasemmanpuoleisimmasta kuvauspaikasta, (h) oikeanpuoleisimmasta asemasta........ 69
Kuva 59: Pää-aulan julkisivun teksturointi eri kuvilta. Kuva (a) on
vasemmanpuoleisimmasta kuvauspaikasta, (e) oikeanpuoleisimmasta asemasta........ 72
Kuva 60: Koko malli parhailla tekstuureilla. ........................................................................ 73
Kuva 61: Ruukkujen sijainnit julkisivujen suhteen. ............................................................. 73
x
Kuva 62: FARO-laserkeilain sekä muuta mittauksessa tarvittavaa kalustoa (Kuva: Hyyppä,
2006) ............................................................................................................................ 74
Kuva 63: Maalaserkeilaimella skannattu alue. ..................................................................... 75
Kuva 64: Teksturoitu 3D-malli laserkeilausaineistosta. ....................................................... 76
Kuva 65: Pikselit eivät ole kiinni toisissaan. ........................................................................ 77
Kuva 66: Mallin visuaalisia puutteita. .................................................................................. 78
xi
TAULUKOT:
Taulukko 1: Perinteisen ja fotogrammetrisen teksturoinnin eroja (mukailtu lähteestä
Weinhaus et al., 1997).................................................................................................... 8
xii
Luku 1
Johdanto
Tämä työ käsittelee tekstuurikuvien liittämistä 3D-malleihin. Pääpaino on sen työprosessin vaiheiden kuvaamisessa, jonka lopputuloksena kolmiulotteisen kohdemallin pintaan on lisätty tekstuuri-informaatiota. Tekstuuri tarkoittaa pikseleistä koostuvaa taulukkoa, jossa jokainen pikseli sisältää jonkin väriarvon. Teksturointi lisää
kohdemallin realistisuutta ja tietosisältöä, ja siksi useissa mallinnusprojekteissa mallien pinnoille määritellään jokin väri, keinotekoinen kuvio tai kuva oikealta valokuvalta (Kuva 1). Erityisesti silloin, kun tekstuuri tulee suoraan valokuvalta, on kohdemallista mahdollista tehdä erittäin todenmukaisen näköinen.
Kuva 1: Pintatekstuuri tuo lisäarvoa 3D-mallille.
Teksturoinnin sovelluskohteita on nykyään lukemattomia. Entistä tehokkaammat
menetelmät tuottavat yhä realistisemman näköisiä pintakuvioita. Tekstuureja voidaan käyttää minkä tahansa 3D-mallin yhteydessä. 3D-malleja tehdään paljon arvokkaista arkkitehtuurisista kohteista, arkeologisista löydöistä sekä laajoista kaupunkialueista. Näihin on mahdollista lisätä tekstuuri oikealta valokuvalta. Lisäksi
mallinnusta käytetään esimerkiksi teollisuuden simulointisovelluksissa ja kaupunki-
1
suunnittelussa. Näissä tapauksissa aitoa valokuvatekstuuria ei ole saatavilla, joten on
turvauduttava tekstuurikirjastoihin, keinotekoisiin kuvioihin tai yksittäisiin väreihin.
Teksturoinnin historia ulottuu 1920-luvulle saakka. Ensimmäisenä tekstuuripintojen
geometrisia muunnoksia sovellettiin ilmakuvien orto-oikaisussa. Siinä kuvamosaiikki oikaistaan karttaprojektioon tavallisimmin projektiivisen muunnoksen avulla. Julkisivujen teksturoinnissa kuva oikaistaan yleensä tasomaiselle pinnalle, ja se on näin
ollen verrattavissa orto-oikaisuun.
Alun perin idean ilmakuvien oikaisuun esitti Th. Scheimpflug vuonna 1897. Kesti
kuitenkin yli kolmekymmentä vuotta, ennen kuin O. Lacmann vuonna 1929 toteutti
orto-oikaisun käytännössä. 1900-luvun puolen välin jälkeen orto-oikaisuun oli saatavilla jo käyttökelpoisia kojeita, ja ortokuvia alettiin tuottaa yhä enemmän ja
enemmän. Nykyään ortokuvia käytetään monissa sovelluksissa, esimerkiksi maastokartoituksen digitointipohjana. (Schwidefsky et al., 1976)
Teksturoinnin uranuurtajana pidetään Edwin Catmullia, joka ensimmäisenä esitti tiilikuvion liittämistä mielivaltaiselle tasomaiselle ja sylinterimuotoiselle pinnalle
vuonna 1974 (Weinhaus et al., 1997). Kaksi vuotta myöhemmin oikea valokuva liitettiin tekstuuriksi teekannun muotoiselle pinnalle (Kuva 2) (Blinn et al., 1976).
Kuva 2: Tekstuuri valokuvalta: vasemmalla valokuva, oikealla malli, johon kyseinen tekstuuri
on liitetty (Blinn et al., 1976)
Teksturointiprosessin vaiheita ovat kuvaus, yhden tai useamman kuvan sisäinen ja
ulkoinen orientointi, teksturoitavan alueen määritys sekä kuvalla että kohdemallissa,
kuvan ja kohdemallin välisten muunnosparametrien ratkaisu ja tekstuurin liittäminen
kuvalta mallille. Lopuksi tulos voidaan esittää esimerkiksi tietokoneen näytöllä tai
tallentaa tietokantaan myöhempää käyttöä varten. Jos kuvia on useampia ja käytettävä kohdemalli muodostetaan näiden avulla, tehdään kuville sisäisen ja ulkoisen
orientoinnin lisäksi keskinäinen orientointi. Prosessin edetessä mallin visuaaliseen
esitykseen näyttökuvalla tarvitaan tekstuurikuvan suodatusta ja interpolointia. Prosessin eri vaiheissa on myös mahdollista tehdä kuvien ehostusta ja huomioida mah2
dollisia näkymäesteitä. Seuraavassa teksturoinnin vaiheita käsitellään hieman tarkemmin.
Teksturointiprosessi vaatii lähtöaineistoksi tietoa kohdemallin geometriasta, jotta
pintakuvio osataan liittää oikealle paikalle. Jos tekstuuri otetaan valokuvalta, tarvitaan lisäksi yksi tai useampi kuva kohteesta. Suurempi määrä kuvia antaa enemmän
vaihtoehtoja, jolloin tekstuurin visuaalista laatua voidaan tarvittaessa parantaa. Jo
kuvaustilanteessa on hyvä huomioida mahdolliset näkymäesteet, kuvanottogeometria sekä kuvan radiometriset ominaisuudet.
Kuvan sisäisen orientoinnin avulla selvitetään 2D-kuvakoordinaattien ja 3Dkamerakoordinaattien välinen yhteys. Muunnosparametrit ratkaistaan kamerakalibroinnilla. Kalibroinnin tuloksena saadaan selville kameran tarkat pääpisteen koordinaatit, kameravakio sekä optiikan piirtovirheet.
3D-malli koostuu yleensä monikulmioista, joiden kulmapisteiden koordinaatit ovat
tunnettuja. Malli muodostetaan esimerkiksi kuvilta mallintamalla tai laserkeilauksen
avulla. Jos malli luodaan kuvien perusteella, tehdään kuville keskinäinen orientointi,
jossa ne muunnetaan yhteiseen koordinaatistoon.
Kuvien sijainti ja orientointi 3D-mallin suhteen on myös tunnettava työn onnistumiseksi. Ulkoisen orientoinnin parametrit voi selvittää ennen kuvausta tai kuvauksen
jälkeen. Myös likimääräinen orientointi on riittävä, jos käytettävissä on menetelmiä
sen tarkentamiseksi.
Jos tekstuurina toimii keinotekoinen kuvio tai yksittäinen väri, ei geometrisiä muunnoksia juurikaan tarvita. Halutut pinnat 3D-mallilla väritetään ja tekstuuri on valmis.
Valokuvien tapauksessa prosessi on monimutkaisempi ja haastavampi. Teksturoitavia pintoja vastaavat alueet on selvitettävä kuvilta. Tämä vaihe on suoraviivainen,
jos kuvien ja kohdemallin tarkka keskinäinen orientointi on tunnettu. Muissa tapauksissa käytetään esimerkiksi manuaalista alueen määritystä tai piirreirrotusta kuvan
tulkitsemisessa.
Kun tekstuurialueet kuvilla ovat selvillä, projisoidaan ne mallin pintaan. Lisäksi
teksturoitu 3D-malli voidaan projisoida näyttökuvalle tai tallentaa tietokantaan.
Koska tekstuurikuvan, mallin ja näyttökuvan tekstuuriosat ovat usein erimuotoisia ja
kokoisia, pelkkä projisointi ei riitä, vaan tarvitaan tekstuurikuvan oikaisua ja siihen
liittyvää kuvan suodatusta ja interpolointia.
Teksturointiprosessi voi olla joko manuaalinen, puoliautomaattinen, tai täysin automaattinen. Manuaalisessa tapauksessa tekstuurialue kuvalla ja kohdemallilla mitataan ja merkitään käsin. Puoliautomaattisessa teksturoinnissa osa tehtävistä on au-
3
tomatisoitu ja osa tapahtuu manuaalisesti. Esimerkiksi osa kuvalla olevasta tekstuurialueesta sekä sitä vastaava kohta mallilla mitataan käsin, mutta loput havaitaan automaattisesti. Automaattinen menetelmä ei vaadi lainkaan käsityötä. Mitä automaattisempi menetelmä on, sitä nopeammin työ tapahtuu ja sitä paremmin menetelmä
sopii myös laajoille aineistoille.
Lisähaasteita työlle tuottavat erilaiset näkymäesteet kuvilla. Niiden huomioiminen ja
mahdollinen eliminointi voi tapahtua prosessin eri vaiheissa, kuten jo kuvaustilanteessa tai ennen kuvien liittämistä mallin pintaan. Näkymäesteiden poistamiseksi on
kehitetty monenlaisia menetelmiä. Täysin automaattista menetelmää, joka toimisi
kaikissa tilanteissa, ei kuitenkaan vielä ole. Käytettävät menetelmät on myös valikoitava sen mukaan, minkälaisesta aineistosta kyse. Laajoille aineistoille käytetään
erilaisia metodeja kuin pienille aineistoille.
1.1 Nykyhetken tutkimusta
Tietokoneiden tehokkuuden parantuminen mahdollistaa nykyään yhä vaativampien
teksturointitehtävien suorittamisen (Remondino et al., 2006). On olemassa valmiita
ohjelmia, joiden avulla 3D-mallia voi helposti täydentää pintakuvioinnilla. Tekstuurina käytetään useita eri lähteitä, kuten maakuvia, ilmakuvia ja satelliittikuvia keinotekoisten väri- ja tekstuuripintojen lisäksi. Viimeaikaisissa tutkimuksissa on keskitytty muun muassa teksturoinnin automatisointiin, reaaliaikaisuuteen, näkymäesteiden poistamiseen ja realistisuuden lisäämiseen. Osaa näistä aihealueista tullaan käsittelemään myös tässä työssä. Seuraavassa käydään lyhyesti läpi muutamia tutkimusaiheita. Tarkoituksena on antaa lukijalle yleiskuva eri aihealueista, ongelmista ja
huomionarvoisista asioista, joita teksturointitekniikka sisältää.
Teksturoitavat kohteen voivat olla sekä pieniä että isoja. Erikokoisiin kohteisiin tarvitaan luonnollisesti erilaisia menettelytapoja. Pienissä kohteissa, kuten patsaissa ja
sitä pienemmissä objekteissa, tarkkuus ja visuaalinen yksityiskohtaisuus ovat tärkeitä (Rocchini et al., 1999). Kontrolloitu mittausympäristö edesauttaa hyviä tuloksia.
Yksityiskohtaisia malleja on luotu myös kokonaisista rakennuksista laserkeilainaineiston ja kuvien avulla (Allen et al., 2003; Liu et al., 2006). Tällaisia menetelmiä
on käytetty erityisesti merkittävien arkkitehtuuristen rakennusten mallintamiseen ja
teksturointiin.
Laajoilla aineistoilla käsitetään yleensä kokonaisia kaupunkialueita. Näissä tapauksissa julkisivujen oletetaan yleensä olevan tasomaisia. Davis et al. (1999) tuovat artikkelissaan esiin laajojen aineistojen vaatimia menetelmiä, kuten hierarkiaan perustuvan tietorakenteen ja monien erilaisten aineistojen hyödyntämisen, ilman vaativia
tiedonkäsittelyresursseja.
4
Edellä kuvatuissa menetelmissä tekstuurikuvina käytetään maakuvia, mutta teksturointia tehdään myös ilmakuvilta, kuten Zebedin et al. (2006) kuvaavat artikkelissaan. Julkisivutekstuureja on vaikeampi saada ilmakuvilta, sillä kuvat otetaan yleensä kohtisuoraan alaspäin. Kuvien hankinnassa onkin käytettävä erilaisia periaatteita
kuin maakuvien tapauksessa.
Monissa tapauksissa kolmiulotteinen kohdemalli muodostetaan samoista kuvista,
joita käytetään myös teksturointiin. Näin on menetelty esimerkiksi artikkelissa (Dick
et al., 2000). Tämä nopeuttaa työn etenemistä, kun kuvien sijainti kohdemallin suhteen on jo etukäteen tunnettu. Myös mahdollisuuksien mukainen automatisointi lisää
prosessin tehokkuutta. Täysin automaattisen menetelmän toteuttaminen on kuitenkin
erittäin haastavaa tai jopa mahdotonta tapauksissa, joissa tarvittavat lähtötiedot ovat
puutteelliset, tekstuurikuvat sisältävät näkymäesteitä tai prosessissa on muita ongelmatilanteita.
Näkymäesteiden poistamiseksi on kehitelty useita teksturointiprosessin eri vaiheisiin
soveltuvia menetelmiä. Kuvaus voidaan tehdä siten, että kuvassa esiintyy mahdollisimman pieni määrä näkymäesteitä. Toisaalta myös usean samaa kohdetta esittävän
kuvan yhdistäminen poistaa näkymäesteitä. Kuvassa 3 kohtien (a), (b) ja (c) vastinpikseleiden sävyarvoista on laskettu mediaani, joka määrittää tuloskuvan vastaavan
tekselin, eli tekstuurilla olevan pikselin, arvon (Ortin et al. 2005).
Kuva 3: (a), (b) ja (c) alkuperäisiä kuvia, (d) saatu alkuperäisiä yhdistelemällä (Ortin et al.,
2005)
Tekstuurikuvien hankinta on usein hitain työvaihe erityisesti silloin, kun kuvat otetaan maanpinnalta. Yhdellä kuvalla näkyy suhteellisen pieni alue. Siksi kuvauspaik5
koja tarvitaan paljon laajalle alueelle, ja siirtymät paikasta toiseen vievät aikaa. Työtä on koetettu nopeuttaa ja automatisoida ajoneuvoista tehtävillä kuvauksilla ja mittauksilla (Früh et al., 2001). Mallinnuksessa ja teksturoinnissa käytettävät laitteet on
asennettu auton lavalle, ja tietoa kerätään ajamalla normaalin liikenteen seassa kortteleita ympäri.
Projekteja, joissa kohteiden teksturointi on vahvasti mukana, on käynnissä ympäri
maailmaa. Esimerkkeinä mainittakoon NEXUS (Anon 1) ja AVENUE (Georgiev et
al., 2005).
1.2 Työn rakenne
Tämä diplomityö on osa VTT:n 3D Maasto -projektia, ja sen tavoitteena on tutkia
tekstuurin liittämistä 3D-mallin pintaan ja erityisesti rakennuksen tasomaiseen julkisivuun. Projektissa käytetään malliaineistona Terrasolid Oy:n tekemää 3D-mallia
Otaniemestä, joka sisältää alueen rakennukset. Diplomityön ensisijaisena tehtävänä
on selvittää teksturointiprosessin vaiheet. Lukuun 2 on koottu perusteoriaa erilaisista
geometrisista muunnoksista, joita käytetään hyväksi teksturointitehtävissä. Tämän
jälkeen luvussa 3 käsitellään teksturointiprosessiin liittyvät vaiheet, sisältäen kuvien
hankinnan, piirreirrotuksen, muunnosparametrien ratkaisun, yhteensovituksen ja näkymäesteiden huomioimisen. Yleisesti tekstissä pohditaan automaattisuuden sisällyttämisestä prosessin eri vaiheisiin. Luku 4 sisältää tietoa laajan aineiston teksturoinnista. Lisäksi osana diplomityötä on tehty kaksi koetyötä, joissa toisessa teksturoitu malli muodostetaan valokuvien avulla ja toisessa maalaserkeilaamalla. Luku 5
sisältää tietoa ja tuloksia näistä kahdesta koetyöstä.
6
Luku 2
Teoreettiset perusteet
2.1 Tausta
Teksturointi tarkoittaa pintakuvioinnin liittämistä 3D-mallin pintaan. Tekstuuri voi
olla joko yksi-, kaksi- tai kolmiulotteinen (Kuva 4). Yksiulotteisen tekstuurin värin
määrittää vain yksi koordinaattiakseli. Siinä väriarvo muuttuu lineaarisesti kahden
värin välillä x-akselin suunnassa. Jos halutaan kuvata korkeusvaihteluita, onnistuu
se hyvin 1D-tekstuurilla, jolloin eri korkeudet kuvautuvat eri värisävyillä kun korkeus muuttuu x-akselin suunnassa. Kaksiulotteinen tekstuuri voidaan kuvata kahden
koordinaattiarvon avulla. 2D-tekstuuri voi olla mikä tahansa kuva, joka on tasossa,
esimerkiksi valokuva. Kolmiulotteisen tekstuurin määrää kolme koordinaattia. Tällöin 3D-tekstuuri sisältää väriarvoja myös kohteen muissa osissa kuin vain sen tasomaisessa pinnassa.
Kuva 4: 1D-tekstuuri, 2D-tekstuuri ja 3D-tekstuuri (Anon 3).
Tekstuuri voidaan esittää joko diskreetteinä arvoina taulukkona tai matemaattisena
funktiona. Näiden sisältämät arvot muodostavat tekstuurikuvan. Tässä työssä käsitellään 2D-tekstuurin liittämistä 3D-malliin.
7
Kun tarkoitetaan 2D-kuvien liittämistä tasomaisille kohteille, puhutaan 2Dteksturoinnista (2D-mapping). Yksinkertaisimmat kaksiulotteiset teksturointimenetelmät perustuvat affiiniseen, bilineaariseen ja projektiiviseen muunnokseen.
Teksturointimenetelmät voidaan jakaa ns. perinteiseen ja fotogrammetriseen menetelmään. Fotogrammetrinen teksturointi perustuu tässä perspektiivimuunnokseen, ja
3D-mallin muodostaminen, kuvien projisointi kohdemallin pinnalle, vääristymien
huomioiminen ja tehtävän automatisointi tehdään nimenomaan fotogrammetrisia
menetelmiä hyväksi käyttäen. Perinteisessä teksturoinnissa kuvat ovat yleensä keinotekoisia, kun taas fotogrammetrisessa teksturoinnissa ne on otettu oikeilta valokuvilta. Perinteisen menetelmän tekstuurikuvat otetaan yleensä kohtisuoraan kohdetasoa vasten ja ne liitetään tason pintaan ilman tekstuurin vääristymien huomioimista.
Fotogrammetrisessa tapauksessa kuvat voivat olla viistokuvia ja teksturointivaiheessa erilaiset vääristymät otetaan huomioon. Lisää tietoa löytyy taulukosta 1, johon on
listattu tärkeimpiä eroja menetelmien välillä. Tässä työssä käsitellään fotogrammetrista teksturointia.
Taulukko 1: Perinteisen ja fotogrammetrisen teksturoinnin eroja (mukailtu lähteestä Weinhaus
et al., 1997).
Perinteinen teksturointi
- Tekstuurit usein keinotekoisia
- Käytössä suhteellisen vähän erilaisia pieniä tekstuureja
- Samaa tekstuuria kopioidaan
useisiin paikkoihin mallille
- Tekstuurit yleensä ortokuvia
- Vääristymiä ei huomioida prosessin aikana
- Tekstuurin sijainnin määritys
kohdemalliin nähden manuaalisesti
Fotogrammetrinen teksturointi
- Tekstuurit oikeita valokuvia
- Käytössä useita isoja tekstuurikuvia
- Tekstuurit ovat uniikkeja kohdepintojen kanssa
- Tekstuurit yleensä viistokuvia
- Vääristymät otetaan huomioon
prosessin aikana
- Tekstuurin sijainnin määritys
kohdemalliin nähden automaattisesti
Teksturoinnin geometria on esitetty kuvassa 5. Se sisältää kaksi muunnosta, toinen
3D-kohde- ja 2D-tekstuuriavaruuden välillä ja toinen 3D-kohde- ja 2Dnäyttöavaruuden välillä.
8
Kuva 5: Teksturoinnin geometria (Weinhaus et al., 1997).
Kohdeavaruus sisältää 3D-mallissa olevien pintojen yhtälöt. Muunnos kohteen ja
tekstuurin välillä voi olla esimerkiksi affiininen, bilineaarinen tai projektiivinen.
Kohteen ja näytön välillä oleva projektio on yleensä ortografinen tai perspektiivinen.
Jos muunnos on projektiivinen, on se geometrialtaan yleensä perspektiiviprojektion
kaltainen.
Nykyään teksturointiprosessissa käytetään yleisimmin projektiivista muunnosta.
Projektiivisen muunnoksen yksi erikoistapaus on perspektiiviprojektio, jota useiden
muiden sovelluskohteiden tapaan käytetään tässäkin työssä kuvautumisgeometrian
perustana. Perspektiiviprojektiota voidaan siis käyttää sekä tekstuurin ja kohteen, että kohteen ja näytön välisessä muunnoksessa. Tekstuurin ja kohteen välissä voitaisiin käyttää myös esimerkiksi affiinista muunnosta. Jos kuitenkin tekstuurikuvat on
otettu viistosti julkisivuun nähden, on projektiivinen muunnos parempi vaihtoehto.
Tekstuurin ja kohteen välistä muunnoksen määritystä kutsutaan myös pinnan parametrisoinniksi, kun tekstuuri muunnetaan kohteen koordinaatistoon. Muunnosta
kohdeavaruudesta näyttöavaruuteen taas kutsutaan kuvausmuunnokseksi tai projektioksi. (Heckbert, 1989)
Usein muunnokset kohteen, tekstuurin ja näytön välillä yhdistetään, jolloin käytössä
on yhdistelmämuunnos. Yhdistelmämuunnosta tekstuuriavaruudesta näyttöavaruuteen käytetään silloin, kun teksturoitu malli halutaan esittää esimerkiksi näytöllä. Jos
tekstuurin, kohteen ja näytön välillä kuvautuminen tapahtuu keskusprojektion eli
perspektiiviprojektion avulla, on yhdistelmämuunnos 2D-tekstuuriavaruuden ja 2Dnäyttöavaruuden välillä projektiivinen muunnos. Myös silloin, kun parametrisointiin
käytetään affiinista muunnosta ja projisoinnissa perspektiivigeometriaa, on yhdistelmämuunnos projektiivinen. Yhdistelmämuunnoksen avulla saadaan minimoitua
9
laskentatyön määrä. Se voi olla joko suora muunnos tekstuurilta näytölle tai käänteinen muunnos näytöltä tekstuuriin. (Weinhaus et al., 1997)
Suorassa menetelmässä 2D-tekstuurikoordinaatit muunnetaan ensin 3Dkamerakoordinaateiksi.
Kamerakoordinaatisto
on
sama
kuin
2Dtekstuurikoordinaatisto, mutta lisänä kolmantena komponenttina on kameravakio c .
Vastaava ulottuvuus näytön kamerakoordinaatistolle on polttoväli f . Kamerakoordinaatit muunnetaan keskusprojektiogeometrian avulla 3D-kohdekoordinaateiksi.
Samaa perspektiiviprojektiota käyttäen siirrytään kohdeavaruudesta näytön 3Dkamerakoordinaatistoon ja jättämällä syvyyssuure pois edelleen 2Dnäyttökoordinaatistoon. Muunnokset 2D-kuva- ja 3D-kamera-avaruuden välillä tapahtuvat yhdensuuntaisprojektiolla, joka on ortografinen projektio. (Heckbert, 1989)
Vaikka suora menetelmä tuntuu yksinkertaiselta, voi ongelmaksi muodostua näyttökuvaan jäävät reiät ja päällekkäisyydet tekstuurissa, sillä pintakuvion matka tekstuurikuvalta näytölle kulkee muunnosten kautta ja erilaiset vääristymät voivat haitata
loppukuvan visuaalista tarkkuutta.
Yleisemmin käytetäänkin käänteistä menetelmää, ja edellä kuvattu prosessi kuljetaan päinvastaisessa järjestyksessä. Siinä siis lähdetään liikkeelle näyttökuvasta, ja
kohteen kautta haetaan halutut väriarvot tekstuurikuvalta.
Teksturoinnin vaiheet käänteisessä fotogrammetrisessa tapauksessa ovat tarkemmin
seuraavat (Weinhaus et al., 1999):
1. Valitaan pikseli 2D-näyttökuvalta ( x, y ) ja muunnetaan sen koordinaatit
näytön 3D-kamerakoordinaateiksi ( x, y, f ) (kolmantena koordinaattina polttoväli f ).
2. Projisoidaan säde projektiokeskuksesta näytön 3D-kamerakoordinaattien läpi
käyttäen kollineaarisuusehtoa (kameran sijainti ja orientointi tunnettu).
3. Säde leikkaa kohteen pinnan ja saadaan selville kuvalta valitun pikselin vastaava sijainti kohteessa ( X , Y , Z ) .
4. Käytetään tekstuurikuvan kollineaarisuusehtoa säteen projisoimiseksi kohteen leikkauskohdasta ( X , Y , Z ) kohti tekstuurikuvan projektiokeskusta, jotta löydettäisiin tekstuurille 3D-kamerakoordinaatit kuvatasossa (u, v, c) .
10
5. Muunnetaan tekstuurin 3D-kamerakoordinaatit (u, v, c) 2Dtekstuurikoordinaateiksi (u , v) .
6. Interpoloidaan tekstuuriarvo osoittamaan 2D-näyttökoordinaattia.
Suora ja käänteinen menetelmä toimivat samoin myös tekstuurikuvan ja kohdemallin välillä. Kohdemallin ja näyttökuvan välillä tapahtuvat vaiheet vain jäävät pois
prosessista. Myös tällöin käytetään projektiivista muunnosta.
Suoran ja käänteisen menetelmän etuja ja haittoja käsitellään tarkemmin kuvaarvojen interpoloinnin yhteydessä kohdassa 2.5.2.
Seuraavilla sivuilla käsitellään yksityiskohtaisemmin muunnoksia ja projektioita.
Niiden yhteydessä esitetyt kaavat sisältävät seuraavia parametreja:
(x, y, c ) = kuvapiste
( X , Y , Z ) = kohdepiste
( X C , YC , Z C ) = kameran sijainti eli projektiokeskuksen paikka
R = M T = 3D-kiertomatriisi
μ ja λ = mittakaavalukuja
c = kameravakio
f = kameran polttoväli
Kuvapiste voi sijaita joko tekstuurikuvalla tai näytöllä. Kameran sijainnilla tarkoitetaan joko tekstuurikuvan tai näytön kamerakoordinaatiston projektiokeskusta. Kameravakio on sama kuin kameran polttoväli silloin, kun objektiivi on tarkennettu äärettömyyteen.
2.2 Muunnokset
Yhteys tekstuurin, kohteen ja näytön välillä kuvataan yleisimmin joko affiinisen, bilineaarisen tai projektiivisen muunnoksen avulla. Teksturoinnissa käytetään 2Dmuunnoksia, kun lähtö- ja tulokohteet ovat tasomaisia. Muunnoksissa dimensio n
säilyy, eli n → n .
2.2.1 Affiininen muunnos
Affiininen muunnos on yleisin käytetty menetelmä silloin, kun tekstuurikuva on
otettu kohtisuoraan (face-on) kohdemallin tasoa vasten. Muunnos toteuttaa siirrot,
kierrot, skaalauksen sekä vinomuunnoksen (shear) tekstuurille, kun se liitetään koh11
teen pintaan. Muunnos säilyttää yhdensuuntaiset viivat yhdensuuntaisina, suorat viivat suorina ja viivalla olevat pisteet yhtä kaukana toisistaan lähtö- ja loppukuvassa.
Viistokuvien oikaisussa muunnos ei kuitenkaan ota huomioon perspektiiviä. Viistosta otettujen kuvien tekstuurit ovat oikaisunkin jälkeen samannäköisiä, kuin mitä ne
olivat viistosta katsottuna (Kuva 6). Menetelmä on lineaarinen, ja toteutukseltaan lähellä ortografista projektiota. Ortografista projektiota käsitellään kohdassa 2.3.1.
Kuva 6: Affiinisesti muunneltuja kuvia, alkuperäinen kuva vasemmalla (Heckbert, 1989).
Affiininen muunnos on 2D-tapauksessa 6-parametrinen ja 3D-tapauksessa 12parametrinen. 2D-tapauksessa muunnos tekstuurin ja näytön välillä voidaan ratkaista
kolmen vastinpisteen avulla, kunhan pisteet eivät sijaitse kaikki samalla suoralla.
2D-Affiininen muunnos on muotoa:
⎡ X ⎤ ⎡ X C ⎤ ⎡a1
⎢Y ⎥ = ⎢Y ⎥ + ⎢ b
⎣ ⎦ ⎣ C ⎦ ⎣ 1
a2 ⎤ ⎡ x ⎤
,
b2 ⎥⎦ ⎢⎣ y ⎥⎦
(1)
missä tuntemattomia parametreja ovat a1 , a 2 , b1 , b2 , X C ja YC .
3D-Affiininen muunnos on vastaavasti muotoa:
⎡ X ⎤ ⎡ X C ⎤ ⎡a1
⎢Y ⎥ = ⎢Y ⎥ + ⎢ b
⎢ ⎥ ⎢ C ⎥ ⎢ 1
⎢⎣ Z ⎥⎦ ⎢⎣ Z C ⎥⎦ ⎢⎣ c1
a2
b2
c2
a3 ⎤ ⎡ x ⎤
b3 ⎥⎥ ⎢⎢ y ⎥⎥ .
c3 ⎥⎦ ⎢⎣ z ⎥⎦
(2)
2.2.2 Bilineaarinen muunnos
Bilineaarinen muunnos esiintyy yleensä teksturoinnissa silloin, kun neliömäinen
tekstuurialue liitetään nelikulmion muotoiseen pintaan. Toisin kuin affiinisessa
muunnoksessa, neliön sisältämä tekstuuri ”venyy” loppukuvan vaatimaan muotoon
(Kuva 7). Muunnos on 8-parametrinen, joten vastinpisteitä sekä lähtö- että kohdeavaruudessa on määritettävä neljä kappaletta.
12
Kuva 7: Vasemmalla alkuperäinen kuva, oikealla alkuperäisestä bilineaarisesti muunneltu kuva (Heckbert, 1989).
2D bilineaarinen muunnos on muotoa:
⎧ X = a 0 + a1 x + a 2 y + a3 xy
.
⎨
⎩Y = b0 + b1 x + b2 y + b3 xy
(3)
Eteenpäinmuunnos lähtökuvalta loppukuvaan säilyttää ne viivat suorina, jotka ovat
lähtöavaruudessa pysty- ja vaakasuunnassa. Myös oikeat etäisyydet näillä viivoilla
sijaitsevilla pisteillä suhteessa toisiinsa säilyvät samoina. Muut suorat viivat kuitenkin kaareutuvat tuloskuvassa, jos kohde ei enää muunnoksen jälkeen olekaan neliö
(Kuva 8).
Taaksepäinmuunnos ei ole enää bilineaarinen, ja se on paljon vaikeampi laskea kuin
eteenpäinmuunnos.
2.2.3 Projektiivinen muunnos
Kameran kuvataso ei ole julkisivun kanssa välttämättä samansuuntainen. Tämä kuva- ja kohdetasojen välinen yhdensuuntaispoikkeama aiheuttaa kuvaan projektiivista
vääristymää. Projektiivisen muunnoksen avulla kuva- ja kohdetason välinen vääristymä saadaan poistettua.
13
Kuva 8: Bilineaarisesti muunnettuja nelikulmioita: (a) Ruudukko lähtöavaruudessa. (b) ja (c)
Lähtöruudukko muunnettuna erimuotoisiksi nelikulmioiksi (Heckbert, 1989)
Projektiivinen muunnos on yleiskäsite, ja esimerkiksi perspektiiviprojektio on tämän
erikoistapaus. Perspektiiviprojektiota käsitellään kohdassa 2.3.2. Projektiivisen
muunnoksen kuvasäteet eivät välttämättä kulje projektiokeskuksen kautta. Esimerkkinä voisi kuvitella seuraavan tapauksen. Muunnetaan pisteen koordinaatit perspektiiviprojektion avulla kohteesta kuvalle ja kuvalta vielä toiselle kuvalle. Kohteesta
kauemmalle kuvalle katsottuna geometria voidaan selittää projektiivisen muunnoksen avulla. Tämä on tällöin myös yhdistelmämuunnos.
14
Projektiivisen muunnoksen parametrit eivät vastaa yksittäisiä fysikaalisia suureita,
joita esimerkiksi perspektiiviprojektiossa ovat kameravakio ja projektiokeskuksen
paikka. Ne voivat olla esimerkiksi useamman suureen yhdistelmiä.
Myös käänteinen muunnos on projektiivinen muunnos.
2D projektiivinen muunnos on muotoa:
a 0 + a1 x + a 2 y
⎧
⎪X = c + c x + c y
⎪
0
1
2
.
⎨
b
b
x
b
y
+
+
0
1
2
⎪Y =
⎪⎩
c 0 + c1 x + c 2 y
(4)
Yleinen tapa on antaa parametrille c 0 arvo 1, jolloin muunnos on 8-parametrinen eli
ratkaisuun tarvitaan neljä vastinpistettä lähtö- ja tuloavaruudessa. 8-parametriseen
muotoon päästään myös muilla keinoilla, esimerkiksi asettamalla c0 + c1 + c 2 = 1 .
2
2
2
Jos neljä vastinpistettä sekä kuvalla että kohteessa ovat kaikki samassa tasossa, ei
kameran sijainnista tai muista parametreista tarvitse tietää mitään. Jos kohdepisteet
eivät olekaan tasossa, vaan monikulmio muodostuu kahdesta tai useammasta kolmiosta, tarvitaan tieto kameran sijainnista, kuvaussuunnasta ja sen sisäisistä parametreista.
Käänteinen projektiivinen muunnos on muotoa:
A0 + A1 X + A2Y
⎧
⎪x = C + C X + C Y
⎪
0
1
2
.
⎨
B
B
X
B
Y
+
+
0
1
2
⎪y =
⎪⎩
C 0 + C1 X + C 2Y
(5)
3D projektiivinen muunnos on muotoa:
⎧
a 0 + a1 x + a 2 y + a3 z
⎪X =
d 0 + d1 x + d 2 y + d 3 z
⎪
b0 + b1 x + b2 y + b3 z
⎪⎪
.
⎨Y =
d 0 + d1 x + d 2 y + d 3 z
⎪
⎪
c + c x + c 2 y + c3 z
⎪Z = 0 1
⎪⎩
d 0 + d1 x + d 2 y + d 3 z
(6)
3D-muunnos on 15-parametrinen, joten ratkaisuun tarvitaan viisi vastinpistettä.
15
Muunnos ei säilytä pisteiden välisiä etäisyyksiä viivalla samoina lähtö- ja loppukuvassa, vaan ne siirtyvät perspektiivin mukaan. Affiinisen muunnoksen tapaan viivat
kaikissa suunnissa pysyvät suorina muunnoksen aikana (Kuva 9).
Kuva 9: Projektiivisesti muunnettuja kuvia, jotka ovat samanmuotoisia kohtien 8 (b) ja (c)
kanssa. Lähtökuvana toimii sama ruudukko kuin kuvassa 8 kohta (a). (Heckbert, 1989)
2.2.4 Menetelmien vertailua
Lineaarinen muunnos (esimerkiksi affiininen muunnos) on yksinkertaisin ja helpoin
tapa tekstuurin liittämiseksi näyttökuvaan. Menetelmä ei kuitenkaan sovi kaikkiin tilanteisiin. Väärin käytettynä tuloskuvaan jää epäkohtia, jotka heikentävät sen ulkoasua (Kuva 10 ja 12 (b)).
Lineaarinen muunnos ei tuo tuloskuvaan perspektiivistä vääristymää eli sitä, että
mittakaava muuttuu etualan ja taaempien alueiden välillä. Teksturoitu kuva sisältää
myös epäjatkuvuuskohtia niiden vaakasuuntaisten viivojen kohdalla, jotka kulkevat
monikulmion nurkkapisteiden kautta. Epäjatkuvuuskohdat johtuvat siitä, että muunnos venyttää kuvaa haluttuun muotoon. Samalla se pitää yhdensuuntaiset viivat yhdensuuntaisina, suorat viivat suorina ja viivalla olevat pisteet yhtä kaukana toisistaan
lähtö- ja tuloskuvassa.
Lineaarinen muunnos toimii vain silloin, kun kohteesta toiseen voidaan siirtyä ilman
perspektiivin muutosta. Kuvatasojen tulisi keskenään olla sellaisessa asennossa, jotta
affiininen muunnos olisi riittävä kaikkien kuvalla tapahtuvien muutosten kuvaamiseen. Tällöin tekstuurikuvan, kohdemallin ja näyttökuvan perspektiivi pitäisi pysyä
samana eli tasojen tulisi olla keskenään samansuuntaisia.
16
Jos lineaarista muunnosta kuitenkin halutaan käyttää perspektiivin välillä muuttuessa, kannattaa teksturoitava monikulmio jakaa pienempiin osiin. Tällöin lopputulos
saattaa olla tasaisempi. (Heckbert, 1989)
Kuva 10: Vasemmalla ruututekstuuri, oikealla teksturointi lineaarisen muunnoksen avulla
(Heckbert, 1989).
Jotta vältyttäisiin epäjatkuvuuskohdilta, voidaan tekstuurikoordinaattien interpoloimiseen käyttää lineaarisen eli affiinisen muunnoksen sijaan bilineaarista muunnosta (Kuva 12 (c)). Bilineaarinen muunnos säilyttää viivat suorina kuitenkin vain
niissä tapauksissa, joissa viivat ovat koordinaattiakselien suuntaisia alkuperäisessä
tekstuurikuvassa. Diagonaaliset viivat eli kuvan lävistäjät näkyvät kaarevina viivoina tuloskuvassa.
Projektiivinen muunnos ottaa huomioon perspektiivin muutoksen kuvausten välillä.
Tällöin esimerkiksi tasaväliset etäisyydet projisoidulla viivalla eivät ole tasavälisiä
vastaavalla viivalla 3D-kohteessa. Kuvassa 11 ja 12 (d) viivavälit tihenevät kauemmas mentäessä, kun taas lineaarisen (Kuva 12 (b)) ja bilineaarisen (Kuva 12 (c))
muunnoksen tapauksessa viivojen väliset etäisyyden pysyvät vakiona joka suunnassa. Projektiivinen muunnos säilyttää kaikki suorat viivat suorina ja tuloskuvaan tulee
näkyviin mittakaavaero etu- ja taka-alan välillä.
17
Kuva 11: Teksturointi projektiivisen muunnoksen avulla (Heckbert, 1989).
Teksturoinnissa käytetään yleisimmin edellä esiteltyjä muunnoksia. On kuitenkin
olemassa myös muita muunnoksia, joita voidaan käyttää hyväksi esimerkiksi silloin,
kun ei ole kyse tasomaisista kohteista. Toisen asteen muunnos (quadratic transformation) muuntaa suorat viivat toisen asteen käyriksi. Kolmannen asteen muunnos
(cubic transformation) muuntaa suorat viivat kolmannen asteen käyriksi. (Weinhaus
et al., 1997)
2.3 Projektiot
Muunnoksena on käsitelty tähän saakka tekstuuriavaruuden ja kohdeavaruuden välistä tapahtumaa (Kuva 5). Muunnoksena voidaan käsittää myös koko systeemiä,
jossa tekstuuriarvo saadaan selville ja esitetään lopulta näyttökuvalla. Muunnos on
siis ikään kuin yleiskäsite. Tarkemmin eri vaiheissa käytetään joko ortografista tai
perspektiiviprojektiota (Kuva 13). Projektioissa dimensio n muuttuu, eli n → n − 1 ,
tässä tapauksessa kolmiulotteisesta avaruudesta kaksiulotteiseen.
18
Kuva 12: (a) Alkuperäinen kuva. (b) Teksturointi lineaarisella muunnoksella. (c) Teksturointi
bilineaarisella muunnoksella. (d) Teksturointi projektiivisella muunnoksella. (Weinhaus et al.,
1997)
Kuva 13: Vasemmalla perspektiivinen ja oikealla ortografinen projektio (Farmer, 2002).
19
2.3.1 Ortografinen projektio
Yhdensuuntaisprojektio eli paralleeliprojektio sisältää ortografisen projektion ja vinoprojektion. Ortografisessa projektiossa säteiden suunta on kohtisuorassa kuvatasoa vastaan, kun taas vinoprojektiossa säteet ovat vinossa tasoon nähden. Ortografisessa projektiossa kuvautuminen tapahtuu yhdensuuntaisten säteiden avulla, eikä
mittakaava muutu kuvan eri osissa (Kuva 14).
Käytännössä kohdekoordinaatit saadaan tiputtamalla vain haluttu koordinaatti pois,
esim. asettamalla kamerakoordinaatistossa z-arvo nollaksi. Projektio on muodoltaan
seuraavanlainen:
⎧x = X
.
(7)
⎨
⎩y = Y
Kuva 14: Ortografinen projektio (Anon 4).
Kuvassa 15 muunnos tekstuurin ja kohteen välillä on tehty ortografisen projektion,
ja muunnos näytön ja kohteen välillä perspektiiviprojektion mukaisesti. Yhdessä ne
muodostavat projektiivisen muunnoksen.
20
Kuva 15: Ortografinen projektio tekstuurin ja kohteen välillä (Weinhaus et al., 1999).
2.3.2 Perspektiivinen projektio
Perspektiiviprojektiossa eli keskusprojektiossa kuvautuminen toteutuu säteillä, jotka
risteävät projektiokeskuksessa (Kuva 16). Projektiokeskus ei saa olla kuvatasossa.
Jos projektiokeskus sijaitsisi äärettömän kaukana, olisi kyseessä ortografinen projektio. Erona ortografiseen projektioon säteiden kulkusuunnan lisäksi on se, että mittakaava muuttuu etualan ja taustan välillä. Tätä kutsutaan perspektiiviseksi vääristymäksi (perspective foreshortening).
Kuva 16: Perspektiiviprojektion geometria, kun kuva- ja kohdetasot ovat yhdensuuntaiset (Inkilä, 2005).
21
Perspektiivimuunnos perustuu fotogrammetrisiin kollineaarisuusyhtälöihin. Kollineaarisuusehdon mukaan kohdepiste, sitä vastaava kuvapiste ja projektiokeskus ovat
kaikki samalla suoralla.
Seuraavassa tapauksessa käytetään oikeakätistä koordinaatistoa. Projektiokeskus voi
sijaita myös kuva- ja kohdetason välissä.
Kuvan 16 yhdenmuotoisten kolmioiden avulla saadaan seuraavat yhtälöt:
x
c
y
c
=
ja =
.
X −Z
Y −Z
(8a)
Kun kohdan (8a) yhtälöistä ratkaistaan x ja y (ks. kaava 8b), muuntuvat ne kaavan
(9) muotoon (kollineaarisuusyhtälöt). Kuvakoordinaatit voidaan ratkaista tunnettujen XYZ -kohdekoordinaattien avulla. Muunnosta kohteesta kuvalle kutsutaan suoraksi perspektiivimuunnokseksi.
− cX
⎧
⎪⎪ x = Z
⎨
⎪ y = − cY
⎪⎩
Z
(8b)
Käänteinen perspektiivimuunnos on muotoa:
⎧ X = kx
⎪
⎨Y = ky
⎪Z = − kc
⎩
(9a)
eli
⎡X ⎤
⎡x ⎤
⎢Y ⎥ = k ⎢ y ⎥ , missä k = Z .
⎢ ⎥
⎢ ⎥
−c
⎢⎣ Z ⎥⎦
⎢⎣− c ⎥⎦
Parametri k skaalaa vektorin [x
(9b)
y − c ] vektorin [X
T
Y
Z ] pituiseksi.
T
Todellisuudessa on otettava huomioon kuva- ja kohdekoordinaatiston välinen skaalaero, kierrot ja siirrot. Edellä johdetut yhtälöt eivät siis riitä koordinaattiarvojen
projisoimiseen. Kun edellä mainitut parametrit otetaan huomioon, voidaan kollineaarisuusehto esittää eteenpäinmuunnoksena seuraavasti:
22
⎛ X − XC ⎞
⎛x ⎞
⎛ r11
⎜
⎟
⎜ ⎟
⎜
−1
−1
⎜ y ⎟ = μ R⎜ Y − YC ⎟ = μ ⎜ r21
⎜Z − Z ⎟
⎜ − c⎟
⎜r
⎝ ⎠
⎝ 31
C ⎠
⎝
r12
r22
r32
r13 ⎞ ⎛ X − X C ⎞
⎟
⎟ ⎜
r23 ⎟ * ⎜ Y − YC ⎟
r33 ⎟⎠ ⎜⎝ Z − Z C ⎟⎠
(10a)
eli
x = μ −1 [r11 ( X − X C ) + r12 (Y − YC ) + r13 ( Z − Z C )]
y = μ −1 [r21 ( X − X C ) + r22 (Y − YC ) + r23 ( Z − Z C )]
(10b)
− c = μ −1 [r31 ( X − X C ) + r32 (Y − YC ) + r33 ( Z − Z C )].
Mittakaavaluku μ saadaan selville kolmannesta yhtälöstä ja on seuraavanlainen:
μ =−
1
[r31 ( X − X C ) + r32 (Y − YC ) + r33 ( Z − Z C )] .
c
(11)
Kun mittakaavaluku sijoitetaan kahteen ensimmäiseen yhtälöön, saadaan kollineaarisuusyhtälöt:
− c[r11 ( X − X C ) + r12 (Y − YC ) + r13 ( Z − Z C )]
(12)
x=
[r31 ( X − X C ) + r32 (Y − YC ) + r33 ( Z − Z C )]
y=
− c[r21 ( X − X C ) + r22 (Y − YC ) + r23 ( Z − Z C )]
.
[r31 ( X − X C ) + r32 (Y − YC ) + r33 ( Z − Z C )]
(13)
Toinen vaihtoehto on taaksepäinmuunnos:
⎛ X ⎞ ⎛ XC ⎞
⎛x ⎞ ⎛ XC ⎞
⎛ r11
⎟
⎟
⎜ ⎟ ⎜
⎜ ⎟ ⎜
⎜
⎜ Y ⎟ = ⎜ YC ⎟ + μM ⎜ y ⎟ = ⎜ YC ⎟ + μ ⎜ r12
⎜Z ⎟ ⎜Z ⎟
⎜ − c⎟ ⎜ Z ⎟
⎜r
⎝ ⎠ ⎝ C ⎠
⎝ ⎠ ⎝ C ⎠
⎝ 13
r21
r22
r23
r31 ⎞⎛ x ⎞
⎟⎜ ⎟
r32 ⎟⎜ y ⎟
r33 ⎟⎠⎜⎝ − c ⎟⎠
(14a)
eli
X = X C + λ (r11 x + r21 y − r31c)
Y = YC + λ (r12 x + r22 y − r32 c)
(14b)
Z = Z C + λ (r13 x + r23 y − r33 c) .
Mittakaavaluku saadaan samoin kuin eteenpäinmuunnoksen tapauksessa kolmannesta yhtälöstä:
Z − ZC
λ=
.
(15)
(r13 x + r23 y − r33 c)
Kun λ sijoitetaan kahteen ensimmäiseen yhtälöön, saadaan yhtälöt seuraavaan
muotoon:
23
( Z − Z C )(r11 x + r21 y − r31c)
(r13 x + r23 y − r33 c)
(16)
( Z − Z C )(r12 x + r22 y − r32 c)
.
(r13 x + r23 y − r33 c)
(17)
X = XC +
Y = YC +
Kuvassa 17 sekä muunnos tekstuurin ja kohteen välillä että näytön ja kohteen välillä
on tehty perspektiiviprojektion mukaisesti. Yhdessä myös nämä muodostavat projektiivisen muunnoksen.
Kuva 17: Perspektiiviprojektio tekstuurin ja kohteen välillä (Weinhaus et al., 1999).
2.4 Yhdistelmämuunnos
Yhdistelmämuunnos sisältää 2D-tekstuurin liittämisen suoraan 2D-näytölle tai saman käänteisessä järjestyksessä. 3D-avaruutta välillä ei tällöin tarvitse huomioida
lainkaan.
Yhdistelmämuunnos, joka sisältää projektiivisen muunnoksen tekstuurin ja kohteen
välillä ja perspektiiviprojektion kohteen ja näytön välillä on projektiivinen muunnos.
Jos tekstuurin ja kohteen välillä on projektiivisen muunnoksen sijaan affiininen
muunnos, on yhdistelmämuunnos silti projektiivinen muunnos.
Seuraavassa kuvataan teksturointiprosessin kulku suorana menetelmänä, eli suunta
on tekstuurilta näytölle. Toteutuksessa käytetään yhdistelmämuunnosta, joka rajoittuu tasomaisten kohteiden teksturointiin. Tässä yhdistelmämuunnoksessa 2Dtekstuurikoordinaatit muunnetaan 2D-näyttökoordinaateiksi. Yhdistelmämuunnos on
3*3 matriisi ja muotoa (Heckbert, 1989):
24
M ts = M dropz × M os × M to × M addz , missä
M addz
on
matriisi,
joka
(18)
muuntaa
2D-tekstuurikoordinaatit
3D-
tekstuurikoordinaateiksi lisäämällä mukaan syvyyden.
M to on matriisi, joka liittää tekstuurin tasomaiselle pinnalle muuntamalla 3Dtekstuurikoordinaatit 3D-kohdekoordinaatteiksi. Prosessia kutsutaan pinnan parametrisoinniksi.
M os on kuvausmatriisi, joka tyypillisesti sisältää perspektiivin. Se muuntaa 3Dkohdekoordinaatit 3D-näyttökoordinaateiksi.
M dropz on matriisi, joka poistaa syvyyden 3D-näyttökoordinaateista ja tuloksena
saadaan 2D-näyttökoordinaatit.
Käänteinen yhdistelmämuunnos lasketaan päinvastaisessa järjestyksessä.
Yhdistelmämuunnos voidaan kuvata myös kaavojen (19) ja (20) avulla:
Suora yhdistelmämuunnos tekstuurilta näytölle:
Au + Bv + C
Du + Ev + F
x=
, y=
.
Gu + Hv + I
Gu + Hv + I
Käänteinen yhdistelmämuunnos näytöltä tekstuurille:
ax + by + c
dx + ey + f
u=
, v=
.
gx + hy + i
gx + hy + i
(19)
(20)
Yllä olevat yhdistelmämuunnokset kaavat eivät eroa muodoltaan aiemmin esitetyistä
projektiivisen muunnoksen kaavoista. Kuten jo aiemmin on todettu, voi projektiivinen muunnos olla myös useamman muunnoksen yhdistelmä.
2.5 Muita toimenpiteitä
Geometristen muunnosten lisäksi teksturointiin liittyy muitakin tärkeitä työvaiheita,
jotka on otettava huomioon esitettäessä mallia näyttöavaruudessa. Näitä ovat tekstuurikuvan suodatus, tekstuuriarvojen interpolointi ja kuvanmuodostus eli interpoloitujen arvojen siirtäminen näyttökuvalle. Seuraavassa näitä vaiheita käsitellään tarkemmin.
25
2.5.1 Suodatus
Tekstuurikuvan, mallin ja näyttökuvan tekstuuriosat ovat usein erimuotoisia ja kokoisia (Kuva 18). Tekstuuriarvoa ei siis voida suoraan siirtää pelkän muunnoksen
avulla tekstuurilta näytölle, sillä tällöin kohdekuva saisi vääriä tekstuuriarvoja joihinkin osiinsa. Sitä varten tekstuurikuva on suodatettava ennen sen näytteistystä.
Kuva 18: Tekstuurikuva (vasemmalla) ja näyttökuva (oikealla) ovat usein erikokoisia ja muotoisia.
Suodin on eräänlainen maski tai ikkuna, jota kuljetetaan kuvan yli ja jokaiselle pikselille lasketaan uusi arvo sen naapureiden tai muun määritelmän perusteella. Ikkunan koko määrää sen, miten laajalti pikselin naapuruustietoja käytetään hyväksi uuden arvon laskennassa. Lisäksi ikkunan sisältämät arvot määrittävät pikselien painotuksen.
Yksinkertaisin tapa on käyttää suodinta, joka on samanlainen kuvan jokaisessa kohdassa (space invariant filter). Tällöin kaikkia suotimen vaikutuspiirissä olevia pikseleitä painotetaan yhtä paljon. Jos muunnos kohteesta näytölle tapahtuisi yhdensuuntaisten säteiden avulla, kuten affiinisessa muunnoksessa esimerkiksi ortografisen
projektion avulla, olisi tämä myös toimiva ratkaisu. (Heckbert, 1989)
Yleensä kuitenkin muunnos kohteen ja näytön välillä on perspektiivinen, joten pikselit ovat eri kohdissa kuvaa erikokoisia ja muotoisia. Tällöin tilanne voi olla sellainen, että osaa tekstuurikuvasta suurennetaan (magnification) ja osaa pienennetään
(minification) näyttökuvausta varten (Kuva 19). Kuvaa pienennettäessä voi helposti
syntyä laskostumista. Tämä johtuu siitä, että kuvaa näytteistetään liian harvasti. Osa
tiedosta jää näytteistämättä ja sen puute näkyy tuloskuvassa. Laskostumista voidaan
ehkäistä alipäästösuodattamalla, joka pehmentää kuvaa ennen sen pienentämistä.
(Peltonen, 2006)
26
Kuva 19: Vasemmalla: Tekstuurialue on pienempi kuin vastaava alue näytöllä. Oikealla: Tekstuurialue on suurempi kuin vastaava alue näytöllä. (Neider et al.)
On olemassa myös suotimia, joiden muoto vaihtelee kuvan eri osissa eli näytteistys
tapahtuu suotimen läpi eri kohdissa eri painotuksilla (space variant filter). Tällaisia
suotimia käytetään yleensä projektiivisen muunnoksen yhteydessä. (Heckbert, 1989)
2.5.2 Interpolointi
Interpolointi tarkoittaa kuvan pikselien sävyarvojen uudelleenlaskentaa. Näytteistys
taas on interpoloinnin tuloksena saatujen pikseliarvojen digitoimista lähtökuvalta.
Yhdessä näytteistystä ja interpolointia voitaisiin kutsua uudelleennäytteistykseksi
(resampling). Tässä tekstissä näytteistys oletetaan sisältyväksi interpolointiin. Suotimen koko määrää sen, miten laajalta alueelta naapuripikseleitä otetaan mukaan interpoloitavan pikselin arvon uudelleenlaskentaan. Myös suotimen muoto eli maskin
painotus vaikuttaa interpolointiin.
Interpolointi on tarpeen silloin, kun kuvan pikselimäärää halutaan suurentaa tai pienentää (Kuva 19). Myös silloin, kun kuvaa kierretään tai sen muotoa muutetaan, tarvitaan pikselien arvojen uudelleenlaskentaa.
Lähimmän naapurin interpolointi eli pistenäytteistys (point sampling) on yksinkertaisin interpolointimenetelmä. Siinä tulospikseli saa arvokseen sitä lähimpänä sijaitsevan pisteen arvon. Menetelmä on laskennallisesti erittäin kevyt ja se sopiikin hyvin suurille aineistoille. Lähimmän naapurin interpolointi ei muuta kuvan alkuperäisiä arvoja, mutta voi aiheuttaa joidenkin pikselien tuplaantumista ja joidenkin häviämistä. Jos tekstuurikuvaa vaikkapa näytteistetään liian harvasti, saattaa osa pikseleistä jäädä pois laskuista. Tämän vuoksi tuloskuvassa voikin esiintyä epäjatkuvuuskohtia ja sahalaitaisia reunoja (Kuva 20).
27
Kuva 20: Ruutukuvion teksturointi lähimmän naapurin interpoloinnilla (Heckbert, 1989).
Lähimmän naapurin interpolointi aiheuttaa tuloskuvaan helposti vääristymiä, ja
usein käytetäänkin hieman monimutkaisempaa bilineaarista interpolointia. Siinä pikselin arvo määritetään neljän sitä ympäröivän pisteen arvon mukaan niiden etäisyydellä painotettuna (Kuva 21). Lähtöpisteiden koordinaattiarvot ovat
v( x1 , y1 ), v( x 2 , y1 ), v( x1 , y 2 ) ja v( x 2 , y 2 ) . Ensin interpoloidaan lineaarisesti vaakasuuntaan, jolloin päästään arvoihin v( x ′, y1 ) ja v( x ′, y 2 ) . Kun vielä näiden kahden
pisteen välille määritetään lineaarinen interpolointi pystysuunnassa, saadaan halutun
pisteen arvoksi v( x ′, y ′) . Interpoloinnit voidaan tehdä ensin myös pystysuuntaan ja
sitten vaakasuuntaan.
Kuva 21: Bilineaarisen interpoloinnin periaate (Peltonen, 2006).
28
Bilineaarisella interpoloinnilla saadaan visuaalisesti paremman näköisiä tuloksia
kuin lähimmän naapurin interpoloinnilla. Prosessin aikana syntyy uusia harmaasävyjä, kun eri pikseliarvoja yhdistellään. Se yleensä pehmentää kuvaa sekä vähentää
kontrastia. (Rönnholm, 2001)
Jos halutaan päästä bilineaarista interpolointia vieläkin parempiin tuloksiin, voidaan
laskennassa käyttää suurempaa määrää naapuripisteitä. Esimerkiksi kuutiokonvoluutio (bicubic) käyttää laskennassa yleensä 16 lähintä naapuripistettä eli 4*4naapurustoa. Pisteen sävyarvo saadaan naapuripisteiden arvojen ja niille määritettyjen painojen avulla (Kuva 22). Yleensä lähimpiä naapuripisteitä painotetaan eniten.
Lopputuloksena saadaan terävämpi kuva kuin lähimmän naapurin tai bilineaarisella
interpoloinnilla, mutta myös laskentatyön määrä kasvaa. Lisäksi myös tämän prosessin aikana kuvaan syntyy uusia harmaasävyjä.
Kuva 22: Kuutiokonvoluutiossa painojen jakautuminen naapuripisteille. Vaaka-akselilla on
pisteen etäisyys naapuripisteeseen ja pystyakselilla painotuksen suuruus. Interpoloitava piste
sijaitsee vaaka-akselin kohdassa nolla, eli lähimpiä naapuripisteitä painotetaan enemmän.
(Anon 5)
Kuvat 23 - 26 havainnollistavat edellä selostettujen interpolointimenetelmien eroja.
Rakeisin lopputulos syntyy lähimmän naapurin interpoloinnilla, kun taas bilineaarinen interpolointi ja kuutiokonvoluutio tuottavat selvästi paremman tuloksen.
29
Kuva 23: Alkuperäinen kuva (Bockaert).
Kuva 24: Lähimmän naapurin interpolointi (Bockaert).
Kuva 25: Bilineaarinen interpolointi (Bockaert).
Kuva 26: Kuutiokonvoluutio (Bockaert).
30
Eteenpäinmuunnoksessa tekstuurikuvalta siirrettävät pikseliarvot eivät osu säännöllisen ruudukon muotoon näyttökuvalle (Kuva 27). Osa näyttökuvan pikseleistä saattaa jäädä ilman tekstuuriarvoa ja osaan saattaa kohdistua useampi arvo tekstuurikuvalta. Niiden pikselien kohdalla, joihin on osunut useampi arvo, voidaan esimerkiksi
sopia, että viimeisin arvo otetaan käyttöön. Arvo voidaan valita myös z-puskurin
avulla silloin, kun kohdemalli on mukana käsittelyssä. Tällöin ei käytetä yhdistelmämuunnosta. Useampia arvoja osuu samaan pikseliin mallin kolmiulotteisuuden
vuoksi. Pikselin arvoksi valitaan näkymässä lähimpänä sijaitsevan pikselin arvo
(Cheng et al., 1993). Z-puskuria käsitellään kohdassa 2.5.3. Nyt osalla pikseleistä on
jokin arvo, osalla ei. Tyhjiksi jääneiden pikselien arvot interpoloidaan naapuripikselien arvojen perusteella.
Kuva 27: Interpolointi eteenpäinmuunnoksen tapauksessa.
Taaksepäinmuunnoksessa tekstuurikuvalta haettava arvo selvitetään interpoloimalla,
sillä muunnoksen takia tekstuurikuvan arvoja ei yleensä haeta säännöllisesti jokaisesta pikselistä (Kuva 28). Aluksi näyttökuvan pikselit ovat tyhjiä, eli ne eivät sisällä
mitään tekstuuritietoa. Pikseleille haetaan arvot tekstuurikuvalta siten, että arvo otetaan siitä kohden, mihin haku muunnoksen perusteella osuu. Koska haku ei yleensä
osu keskelle pikseliä, määrittyy näyttökuvaan siirrettävä tekstuuriarvo tekstuurikuvalla tehtävän interpoloinnin mukaisesti. Taaksepäinmuunnos on interpoloinnin
kannalta laskennallisesti edullisempi.
31
Kuva 28: Interpolointi taaksepäinmuunnoksen tapauksessa.
2.5.3 Kuvanmuodostus
Kuvanmuodostus eli renderöinti käsittää tekstuurin liittämisen näytölle. Se voidaan
tehdä kahdella tavalla, joko scanline- tai säteenjäljitysalgoritmilla. (Kuva 29). Kuvanmuodostusalgoritmeihin liittyy myös läheisesti z-puskuri (z-buffer), jolla kuvasta
poistetaan piiloon jäävät geometristen primitiivien osat. Z-puskuri sisältää etäisyystiedon katselupisteestä jokaiseen näkyvissä olevaan kohdepinnan pikseliin. (Anon 2)
Scanline-algoritmi toimii seuraavalla tavalla. Ensin kuvan geometriset primitiivit,
esimerkiksi viivat, projisoidaan kuvatasolle. Projektion perusteella määritetään, mitkä pikselit näytöllä ovat osa tätä primitiiviä. Seuraavaksi pikseleille osuvista primitiiveistä päätellään, mikä niistä on lähinnä katselupistettä ja tämän perusteella lasketaan pikselin saama arvo. Tietoa katselupisteen ja primitiivin välisestä etäisyydestä
säilytetään z-puskurissa. Kuvanmuodostus tapahtuu yleensä vaakarivi kerrallaan.
Kohdemallin monikulmioiden nurkkapisteiden koordinaatit on oltava etukäteen tiedossa. Näiden avulla oikeat kohdepinnat käydään läpi ja pikseleille saadaan oikeat
väriarvot tekstuurikuvalta. Koordinaattiarvoja on käytävä läpi tietyllä tiheydellä, jotta vältettäisiin laskostumisongelma. Algoritmi toimii sekä suorana tekstuurilta näytölle että käänteisenä näytöltä tekstuurille. (Anon 2)
Säteenjäljityksessä (ray tracing) seurataan säteen kulkua kuvan ja kohteen välillä.
Säde kulkee projektiokeskuksen ja kuvatason läpi näytöltä kohteeseen. Kun tunnetaan säteen kulkusuunta, saadaan selville säteen ja kohteen leikkauskohta. Vastaava
sijainti määritetään myös tekstuurikuvalta, ja tekselin väri siirretään näytölle. Yksi
säde vastaa aina yhtä pikseliä. Säde heijastetaan jokaisen kuvatason pikselin läpi, ja
nämä yhdessä määräävät tekstuurin. Myös tässä menetelmässä voi syntyä laskostumista. Menetelmä on aina käänteinen. (Anon 2)
Scanline-algoritmi on nopea, sillä menetelmä käyttää hyväkseen tietoa kohdemallin
sisältämistä nurkkapisteistä. Tällöin kohdemallin ulkopuolisia pikseleitä ei tarvitse
32
huomioida lainkaan, vaikka ne näkyisivätkin kuvalla. Myös tarkastelupistettä lähimpien pintojen taakse jäävät pinnat voidaan poistaa tarkastelusta Scanline-algoritmilla
ja z-puskurilla. Tämä keventää aineiston käsittelyä.
Säteenjäljitys käy läpi kaikki näkymän pikselit, ja se on laskennallisesti raskaampi
kuin scanline-algoritmi. Nykyään säteenjäljitys on lisännyt suosiotaan, sillä uudet
kohdemallit koostuvat yhä useammista ja pienemmistä monikulmioista. Tällöin
scanline-algoritmilla toteutettu renderöinti ei ole enää huomattavasti nopeampi, ja
yleensä kannattaakin käyttää säteenjäljitystä. Joissain tapauksissa säteenjäljitys voi
olla jopa nopeampi menetelmä.
Säteenjäljityksen etuna on lisäksi se, että teksturoinnissa voidaan huomioida myös
läpinäkyvät ja peilimäiset pinnat. Lisäksi normaaleihin pintoihin saadaan näkyviin
kuvitteellisen valonlähteen heijastuminen. Sen avulla saadaan parempilaatuisia pintoja muun muassa metalli-, lasi- ja vesipinnoille.
Kuva 29: Renderöinti scanline-algoritmilla (vasemmalla) ja säteenjäljitysalgoritmilla (oikealla)
(Hormann, 2006).
33
Luku 3
Teksturointi käytännössä
3.1 Teksturointiprosessin kulku
Oletetaan, että kohdemalli on tunnettu ja että se koostuu tasomaisista pinnoista. Tällöin tiedetään esimerkiksi sen sisältämien pinta-alueiden nurkkapisteiden koordinaatit. Lisäksi tunnetaan tekstuurikuvauksissa käytetyn kameran kalibrointiparametrit
sekä kameran tarkka sijainti ja kuvaussuunta kohdemalliin nähden. Kamerakalibroinnissa määritetään kameran sisäinen orientointi, eli kuva- ja kamerakoordinaatiston välinen yhteys, sekä optiikan piirtovirheet. Kalibrointi voidaan tehdä etukäteen testikentän avulla tai samanaikaisesti kohdetta kuvattaessa (itsekalibrointi).
On myös tapauksia, joissa kameran kalibrointi tai kuvien ulkoinen orientointi ei ole
tunnettu. Lisäksi tiedossa saattaa olla vain likimääräisiä arvoja näille suureille. Kappaleessa 3.3 käydään läpi eri vaihtoehtoja ja mahdollisia ratkaisuja.
Kohdemalli voidaan muodostaa myös kuvien perusteella. Tällöin kuville tehdään
keskinäinen orientointi. Kohdemalli muodostuu kuvilta mitatuille vastinpisteille saatujen 3D-koordinaattien avulla. Luonnollisesti tässä tapauksessa kuvien ja kohdemallin välinen orientointi selviää mallinnuksen yhteydessä.
Kun kuvan sisäiset ja ulkoiset orientointitiedot ovat tunnettuja, voidaan tekstuurikuvalta määrittää teksturoitava alue tasopinta kerrallaan. Määritys voi tapahtua esimerkiksi manuaalisesti mittaamalla alueen nurkkapisteet tai automaattisemmin piirreirrotuksen avulla.
Kuvalta on määritelty alue, jonka vastaava sijainti tunnetaan myös kohdemallilla.
Kuvausgeometria tekstuurin ja kohteen välille saadaan selville alueiden vastinpiir-
34
teiden avulla. Oikea tekstuuri liitetään sitä vastaavalle paikalle 3D-mallin pinnalle.
Kuvan ja kohteen välinen geometria selvitetään jokaiselle mallipinnalle erikseen.
Tekstuurin liittäminen kohdepintaan ja kohdemallin kuvaaminen tekstuureineen
näytölle tapahtuu projektiokaavojen avulla, kuten luvussa 2 on selitetty. Jos kuvautuminen tapahtuu affiinisella muunnoksella, tarvitaan ratkaisun saamiseksi kolme
vastinpistettä kuvalla ja kohteessa, projektiivisen muunnoksen tapauksessa vastinpisteitä tarvitaan neljä kappaletta.
Kuvassa 30 on esitetty teksturointiprosessin eri vaiheet. Yhtenäisellä viivalla on kuvattu vaiheita, jotka sisältyvät yleensä aina teksturointiprosessiin. Nämä vaiheet
kuuluvat prosessiin myös silloin, kun kuvien ja kohdemallin tarkka ulkoinen orientointi on tunnettu. Katkoviivalla taas on merkitty sellaisia toimintoja, joita toteutetaan muissa mahdollisissa tilanteissa.
Kun tarkat orientointitiedot ovat tunnettuja, tehdään kuvauksen jälkeen yhdelle tai
useammalle kuvalle sisäinen orientointi. Kuvien ja 3D-mallin tarkat ulkoisen orientoinnin parametrit ovat tiedossa esimerkiksi geodeettisen tai fotogrammetrisen mittauksen tuloksena. Koska ulkoinen orientointi on molemmissa aineistoissa tunnettu,
voidaan tiedot yhdistää ja tekstuuri liittää mallin pintaan. Lopuksi tulos joko tallennetaan tietokantaan tai esitetään näytöllä.
Keskinäinen orientointi tehdään silloin, kun mallinnus suoritetaan kuvien avulla.
Vastinpiirteiden määritystä käytetään, kun ulkoisen orientoinnin parametrit ovat
vain likimääräisiä tai niitä ei ole ollenkaan. Toiminto sisältää ainoastaan piirreirrotuksen. Piirteiden yhteensovitus tapahtuu vasta ulkoisen orientoinnin muunnosparametrien ratkaisuvaiheessa ja tekstuurin liittämisessä 3D-mallin pintaan. Näkymäesteet otetaan yleensä huomioon jo kuvaustilanteessa, kun suunnitellaan mahdollisia
kuvauspaikkoja. Lisäksi näkymäesteitä voidaan poistaa kuvilta ennen kuvien liittämistä mallin pintaan. Kuvan ehostusta tehdään heti alkuperäisille kuville sekä tekstuurin liittämisen jälkeen, jolloin esimerkiksi kuvien radiometrisiä ominaisuuksia
voidaan parantaa visuaalisen ulkoasun kannalta oikeaksi.
Periaatteessa teksturointi voidaan toteuttaa täysin automaattisesti, jos kuvien ja kohdemallin välinen orientointi on tarkasti tiedossa ja jos kuvilla ei ole mallintamattomia näkymäesteitä. Useissa tapauksissa kuvien ja kohdemallin välinen geometria
tunnetaankin valmiiksi, sillä kohdemallin muodostus ja teksturointi tapahtuvat samojen kuvien avulla. Tekstuuri voidaan liittää suoraviivaisesti mallin pinnalle, mutta
huomioitavaksi jäävät muun muassa näkymäesteiden poistamiset ja muut tekstuurin
ulkoasuun vaikuttavat tekijät. Automaattinen teksturointi on tehty esimerkiksi Stuttgartin kaupungista (Kuva 49) (Kada et al., 2005).
35
Kuva 30: Teksturointiprosessin kulku eri tapauksissa.
3.2 Kuvaus
Edellä esitetyissä menetelmissä kohteiden visualisointiin voidaan käyttää sekä maaettä ilmakuvia. Ilmakuvat ovat kuitenkin melko sopimattomia pystysuuntaisten julkisivujen teksturointiin. Normaalisti kattotekstuurit otetaan ilmakuvilta ja seinätekstuurit maakuvilta. Lisäksi julkisivutekstuurien resoluutio ilmakuvilla on heikompi
kuin maakuvilla (Lee et al., 2002a).
Ilmakuva otetaan yleensä lähes kohtisuoraan ylhäältä alas, joten vain kattotekstuurit
tulevat kunnolla näkyviin. Jos ilmakuvilta kuitenkin halutaan seinätekstuureja, on
kuvia otettava tiheästi kohdealueen yläpuolelta, jotta jokainen julkisivu olisi näkyvissä. Lisäksi vain kuvan reunoilla olevia julkisivutekstuureja voidaan käyttää, sillä
suoraan alapuolella sijaitsevista seinistä ei tekstuuria ole näkyvissä. (Zebedin et al.,
2006)
36
Myös viistoilmakuvia voidaan käyttää teksturointiin, jolloin koko kuva-aluetta voidaan hyödyntää tekstuurin hankinnassa. Kuvia pitää kuitenkin ottaa viistosti eri puolilta rakennusta, jotta jokainen sivu saadaan näkyviin. (Früh et al., 2004)
Ilmakuvilta teksturoitaessa on vielä otettava huomioon lentokorkeus, lentonopeus,
kameravakio ja kuvien peittoalueet, jotta tekstuuritietoja olisi riittävästi. (Zebedin et
al., 2006)
Ilmakuvia käytettäessä työ nopeutuu. Kuvalla näkyy yleensä laaja alue, kun taas
maakuva saattaa kuvata vain yhtä rakennusta kerrallaan. Lisäksi ilmakuvien tapauksessa näkymäesteiden määrä vähenee, kun maan pinnalla olevat ihmiset, ajoneuvot
ja kasvillisuus eivät peitä julkisivuja samalla tavalla ilmasta katsottuna. (Ulm, 2005)
Jos teksturoitava kohde on jokin korkea rakennus, ei maakuvillakaan välttämättä
onnistuta saamaan tarkkaa kuvaa julkisivun yläosista. Tällöin parempi vaihtoehto
saattaa olla ilmakuvien käyttö seinän yläosissa ja maakuvien käyttö seinän alaosissa
(Kuva 31). Halutusta tarkkuudesta riippuu, mikä on suurin sallittu kuvauskulma tason normaaliin verrattuna.
Kuva 31: Julkisivutekstuuri koottu maakuvasta (alaosa) ja ilmakuvasta (yläosa) (Früh et al.,
2004).
Jos kohde näkyy useammalla kuin yhdellä kuvalla, valitaan niistä paras tiettyjen parametrien perusteella. Näitä ovat kuvan resoluutio, näkymäesteiden määrä kuvalla,
kuvaussuunta pinnan normaaliin verrattuna ja kuvan yhteensopivuus naapurialueiden kanssa. Useita kuvia kannattaa ottaa sen takaamiseksi, että haluttu tekstuuri löytyy varmasti joltain kuvalta.
37
Tässä yhteydessä resoluutio tarkoittaa kuva-alalla olevien pikselien määrää. Mitä
enemmän pikseleitä kuvalla on, sitä parempi on resoluutio. Yksi kuva voi sisältää
useita tekstuurikuvia, joilla on keskenään eri resoluutio. Näin on esimerkiksi silloin,
kun jotkin kuvalla näkyvät rakennukset sijaitsevat lähempänä kameraa kuin toiset
(Kuva 32). Lisäksi yksittäisen julkisivutekstuurin sisäinen resoluutio voi vaihdella
sen eri osissa perspektiivistä johtuen. (Früh et al., 2004)
Kuva 32: Etualalla olevien tekstuurien resoluutio on parempi kuin taka-alalla olevien (Früh et
al., 2004).
Näkymäesteiden osuus kuvalla voidaan laskea kuvapinta-alasta esimerkiksi zpuskurilla. Mitä vähemmän kuva sisältää näkymäesteitä, sitä paremmin se soveltuu
pinnan tekstuuriksi.
Paras tapa olisi ottaa kuva kohtisuoraan julkisivuun nähden. Tällöin kuvaresoluutio
on mahdollisimman tasainen koko tekstuurin alueella ja perspektiivistä johtuvat vääristymät minimoituvat. Koherenssi naapurialueiden kanssa on paras silloin, kun 3Dmallin ja tekstuurikuvien peittämät alat ovat yhteneviä ja kaikkien tekstuurikuvien
resoluutio, valoisuus- ja sävyarvot ovat samat. Tehtäväkohtaisesti paras kuva voidaan valita painottaen juuri siinä tärkeäksi luokiteltuja parametreja. (Früh et al.,
2004)
Kuvien automaattinen hankinta on vaikeaa, ja kuvanottopaikkojen valinta vaatiikin
yleensä ihmisen harkintakykyä. Ympäristö sisältää paljon sellaista, minkä sijainnista
ei ole mitään tietoa. Tällöin niitä ei myöskään voida huomioida automatisoidussa
kuvauspaikan määrityksessä. Tiedon keruuseen on tosin kehitelty erilaisia tehtävää
nopeuttavia menetelmiä. Kuvia on otettu esimerkiksi liikkuvan auton lavalta, jolloin
tekstuurikuvat saadaan nopeasti laajaltakin alueelta (Früh et al., 2001).
38
3.3 Muunnosparametrien ratkaisu
Ideaalisessa tapauksessa kamera on kalibroitu, kuvien tarkka sijainti mallin suhteen
tunnetaan, kuvia on riittävä määrä jne. Usein tilanne on kuitenkin sellainen, että
kaikkia tarvittavia tietoja ei olekaan saatavilla. Tällöin on tehtävä normaalista poikkeavia toimenpiteitä ja pyrittävä mahdollisimman hyvään tulokseen käytettävissä
olevien tietojen avulla.
3.3.1 Tuntemattomat orientointitiedot
Normaalisti lähtötietona vaaditaan kameran tarkka orientointi kohdemallin suhteen,
jotta kuvia voitaisiin käyttää teksturoinnissa. Orientointiparametreja ovat kuvauspaikka ja -suunta. Nämä parametrit selviävät yleensä kuvilta mitattaessa epälineaarisella pienimmän neliösumman menetelmällä joko jokaiselle kuvalle erikseen tai kerralla suuremmalle joukolle toisiaan peittäviä kuvia. Ensimmäistä tapaa kutsutaan
taaksepäinleikkaukseksi avaruudessa, ja siihen tarvitaan kiintopisteitä, joiden sekä
kuva- että kohdekoordinaatit ovat tunnettuja. Jälkimmäinen tapa on sädekimpputasoitus, jossa kiintopisteiden lisäksi käytetään tihennyspisteistöä toisiaan peittävien
kuvien alueilla.
Kameran sijainti ja orientointi voidaan selvittää myös mittaamalla tiedot geodeettisesti maastossa, esimerkiksi takymetrillä. Kameran projektiokeskusta ei voida tällöin
kuitenkaan tarkasti mitata, joten se tuo mukanaan tiettyä epätarkkuutta.
Sekä geodeettinen että fotogrammetrinen tapa sisältävät omia hyviä ja huonoja puoliaan. Fotogrammetrisesti kameran paikkaa mitattaessa tarkkuuteen vaikuttavat kameran kalibrointi, kuvalta mitattavien pisteiden etäisyys kuvanottopaikkaan sekä
pisteiden sijainti kuvilla.
Kameran sijainnin voi määrittää myös reunantunnistusmenetelmällä. Kuvilta etsitään kohdemallia vastaavia reunoja. Kuvien ja kohteen väliset muunnosparametrit
saadaan selville, kun vastinpiirteet yhdistetään manuaalisesti toisiinsa. Reunanetsinnän avulla kameran sijaintitietojen tarkkuutta voidaan myös parantaa, jos alun perin
on tiedossa vain likimääräinen sijainti (Kappale 3.4.1).
Eräs vaihtoehto kuvanottopaikkojen selvittämiseksi on käyttää hyväksi julkisivupintoja ja niihin liittyviä pakopisteitä. Lee et al. (2002b) mukaan kolmea vastinviivaa
sekä kahta tai kolmea pakopistettä voidaan käyttää kameran sijainnin ja orientoinnin
määrittämiseen. Pakopisteet määrittävät automaattisesti kameran ulkoiset parametrit
eli X-, Y- ja Z-koordinaatit sekä kolme kiertokulmaa. Kun nämä tiedot ovat tunnet-
39
tuna, voidaan kameran tarkempi sijainti selvittää automaattisesti. Sekä kuvalta että
kohteesta etsitään vastinviivakandidaatit ja oikeat parit haetaan iteraatioiden avulla.
Edellä mainituista tavoista poikkeava menetelmä kuvien ja kohteen välisen suhteen
määrittämiseksi on rakennusten identifiointi. Jokainen teksturoitava rakennus merkitään yksilöitävällä tunnuksella ennen kuvausta. Tunnusten avulla kuvat ja kohdemalli pystytään liittämään yhteen ja oikeat tekstuurikuvat liitetään oikeisiin kohtiin mallilla. Yksi seinään liimattu lappu ei kuitenkaan riitä sekä rakennuksen sijaintitiedon
että orientaation selvittämiseen. Kohteeseen on liitettävä enemmän kuin yksi tunnus.
Vaihtoehtoisesti tunnuksen on oltava esimerkiksi sellainen kolmiulotteinen kappale,
josta orientointi on mahdollista selvittää yhden tunnuksen avulla.
3.3.2 Likimääräiset orientointitiedot
Kuvanottopaikkojen ja -suuntien likimääräinen tunteminen helpottaa teksturointia
huomattavasti. Likimääräinen kameran projektiokeskuksen paikka saadaan ilmakuvien tapauksessa GPS:n (Global Positioning System) avulla ja kuvaussuunnan kiertokulmat muiden sensorien, kuten inertiaalimittausjärjestelmän (IMU), kompassin ja
kallistusanturien avulla. Jos näitä tietoja ei ole saatavilla, voidaan vastaava sijainti
laskea kuvien yhteisten koordinaateiltaan tunnettujen vastinpisteiden avulla.
Maakuvien tapauksessa sijainti määritetään esimerkiksi GPS:n ja kompassin avulla.
GPS-vastaanottimen paikannustarkkuudeksi riittää monissa tapauksissa kymmenen
metrin tarkkuus kaikkien kolmen koordinaattiakselin suunnassa.
3.3.3 Kalibroimaton kamera
Jos kamerasta ei ole tiedossa sisäisen orientoinnin parametreja, eikä testikenttäkalibrointia ole mahdollista tehdä ennen kuvausta, voidaan kalibrointi tehdä itse kuvauspaikalla. Tätä sanotaan itsekalibroinniksi. Etuna on se, että kuvausolosuhteet tulee
huomioiduksi kalibroinnissa. Kohteesta on tunnettava joitakin likimääräisiä koordinaattipisteitä, jotta kameroiden karkeat sijainnit voidaan määrittää. Likimääräisiä
koordinaatteja ja kamera-asemia tarkennetaan iteroinnin avulla. Kameran kalibrointiparametrit ratkaistaan yhtä aikaa kohdepisteiden laskennan kanssa (Pöntinen,
2006). Samalla selviävät myös kuvauspaikkojen sijainnit ja kuvaussuunnat.
3.4 Vastinpiirteiden määritys
Perinteisesti teksturointimenetelmä on manuaalinen, jolloin teksturoitava alue osoitetaan kuvalta esimerkiksi alueen nurkkapisteiden avulla. Nämä pisteet yhdistetään
vastaaviin kohdemallin pisteisiin ja tekstuurin siirtogeometria kuvalta kohdepinnalle
40
voidaan selvittää. Manuaalinen menetelmä on työläs ja vaatii toimiakseen käyttäjän
ohjausta. Toki se on tällöin myös erittäin luotettava. Uudet teksturointisovellukset
pyrkivät lisäämään menetelmien automaattisuutta, sillä käsiteltävänä on yhä suurempia aineistoja ja työprosessia halutaan nopeuttaa. Automaattisuutta on hyödynnetty erityisesti vastinpiirteiden määrityksessä, joka sisältää piirteiden etsimisen sekä vastinpiirteiden yhdistämisen. Automaattisissa toteutuksissa täytyy olla selvästi
määriteltynä eri etenemisvaiheet ja se, miten toimitaan ongelmatilanteissa ja erikoistapauksissa.
3.4.1 Piirreirrotus
Automaattisessa menetelmässä kuvalla ja kohteessa sijaitsevat vastinpiirteet, kuten
pisteet ja viivat, etsitään usein piirreirrotuksen avulla. Kun tavoitteena on vastinpiirteiden yhteensovitus mahdollisimman hyvin, ovat tarkkuus ja luotettavuus tärkeitä
asioita jo piirreirrotuksessa. Monissa sovelluksissa käytetään viivojen etsintää pisteiden haun sijaan. Viivalöydöt ovat luotettavampia kuin pistelöydöt, sillä kohina
vaikeuttaa enemmän pisteiden kuin viivojen löytymistä. Lisäksi viivat ovat parempi
ratkaisu silloin, kun kohde ei ole kokonaan näkyvissä kuvalla. Menetelmä sisältää
kuitenkin paljon epävarmuutta. Kuvalta saatetaan löytää sellaisiakin viivoja, jotka
ovat erittäin vahvoja ja selkeitä, mutta eivät kuitenkaan ole tärkeitä 3D-mallin kannalta eivätkä siksi sisälly malliin.
Eräs paljon käytetty piirreirrotusmenetelmä on reunanetsintä (edge detection). Reuna
tunnistetaan kuvalla sinne, missä pikseleiden välinen kirkkaus muuttuu nopeasti.
Löydetyistä reunoista voidaan edelleen muodostaa suoria viivoja. Rakennukset voidaan yleensä kuvata suorien viivojen avulla, joten reunanetsintä on siksi todettu
käyttökelpoiseksi juuri rakennusmalleja käsiteltäessä.
Kuvalta etsitään reunanirrotuksen avulla tarpeelliset viivat, joita hyväksi käyttäen
kuva ja malli asetetaan kohdakkain. Monissa tapauksissa mallin sisältämät viivat
ovat jo etukäteen tunnettuja. Kuville tehtävä reunanetsintä voidaan toteuttaa esimerkiksi Canny-reunanetsinoperaattorilla. Löydetyt reunat voidaan muuntaa viivoiksi
useallakin menetelmällä, tässä tekstissä käsitellään Hough-muunnosta. Pienimmät
viivat poistetaan kynnystyksellä, sillä ne ovat yleisimmin vääriä viivoja eivätkä siten
sisällä mitään tärkeää tietoa kohteesta. Yleisesti kuvalta löytyy enemmän viivoja
kuin mitä malli sisältää (Kuva 33).
41
Kuva 33: 3D-mallin sisältämät viivat vasemmalla vihreällä, kuvalta löydetyt viivat oikealla punaisella (Früh et al., 2004).
Erilaisia reunanetsintämenetelmiä teksturointitehtävissä ovat käyttäneet myös Klinec
(2004) ja Zlatanova et al. (2002).
Hough-muunnos vaatii lähtöaineistoksi binäärikuvan, joka voidaan tehdä esimerkiksi Canny-operaattorilla. Binäärikuva käydään läpi pikseli kerrallaan. Jokaisen pikselin x - ja y -koordinaatin avulla piirretään suoria ab -koordinaatistoon, missä a on
viivan kulmakerroin ja b y -akselin leikkauskohta kaavan y = ax + b mukaisesti.
Suoria piirretään eri suuntiin eli a ja b saavat eri arvoja sen verran, että ympärillä
oleva alue tulee katetuksi riittävän hyvin. Tiedot suorien leikkauskohdista kerätään
erilliseen taulukkoon, josta valitaan sellaiset pisteet, joissa toisensa leikkaa kynnysarvoa useampi suora. Valittujen pisteiden a - ja b -arvojen perusteella xy koordinaatistoon piirretään suora, joka vastaa kuvassa näkyvää reunaviivaa.
Hough-muunnos on todettu erityisen käyttökelpoiseksi rakennusten julkisivujen löytämiseksi kuvilta. Menetelmä tunnistaa viivoja kuvilta sopivan karkeasti sen sijaan,
että yrittäisi tunnistaa yksittäisiä piirteitä. Jos esimerkiksi kohdemallin ja kuvan yksityiskohtaisuus poikkeaa paljon toisistaan, ei pienipiirteinen reunanirrotus ole välttämättä toimiva menetelmä. Hough-muunnos ei myöskään ole kovin herkkä näkymäesteille ja muille haittatekijöille.
Hough-muunnoksella viivoja voidaan etsiä erilaisilla kynnysehdoilla. Kuvalta voidaan etsiä jokaisen seinätason viivat erikseen tai vain karkeasti kokonaisen raken-
42
nuksen reunaviiva. Kuvassa 34 rakennuksesta on haettu vain koko kohteen ääriviivat.
Kuva 34: Hough-muunnoksen avulla erotettu rakennuksen reunaviiva kuvalta (Böhm et al.,
2002).
Kun Hough-muunnoksella erotetaan kokonaisen rakennuksen ääriviivat, saattaa se
sisältää useita seinätasoja. Tekstuuri liitetään koko rakennuksen pintaan kerralla, jolloin seinässä olevat syvennykset ja ulkonemat jäävät huomiotta. Tekstuuri kuvaa
vain niitä kohteen osia, jotka näkyvät käytetystä kuvaussuunnasta. Osa sisäseinistä
saattaa jäädä kokonaan ilman tekstuuria. Parhaiten menetelmä toimii kohteille, joiden seinät koostuvat kullakin sivulla vain yhdestä tasosta. Monimutkaisemmilla
kohteilla tekstuurikuvan kuvauspaikalla on suuri merkitys teksturoidun mallin ulkoasuun.
Hough-muunnosta voidaan käyttää myös pakopisteiden löytämiseen. Pakopisteitä
taas voidaan käyttää tekstuuriosien tunnistamiseen kuvalta (Kuva 35). Pakopiste
saadaan selville joukosta viivoja, jotka todellisuudessa ovat yhdensuuntaisia, mutta
näyttävät kuvalla perspektiivin vuoksi erisuuntaisilta ja risteävät näin ollen pakopisteessä. Lee et al. (2002a) esittelee artikkelissaan automaattisen menetelmän pakopisteiden löytämiseksi. Liebowitz et al. (1998) käsittelevät tekstissään myös menetelmää pakopisteiden havaitsemiseksi.
43
Kuva 35: Rakennuksesta löydettyjä viivoja. Kaikki saman seinätason vaakasuuntaiset viivat
risteävät samassa pisteessä eli pakopisteessä. Vastaava toteutuu myös pystyviivojen tapauksessa. (Lee et al., 2002a)
Jokainen julkisivu määrittää kaksi pakopistettä, yhden vaakasuuntaisille ja yhden
pystysuuntaisille viivoille. Kuvilta löydetyt viivat ryhmitellään sen mukaan, mikä
niiden pakopiste on. Saman pakopisteen kautta kulkevat viivat kuuluvat samaan
ryhmään. Julkisivualueet erotetaan kuvilta käyttämällä vaaka- ja pystysuuntaisten
viivaryhmien sijaintitietoa. Lopputuloksena kuvilta on tunnettuna sekä pakopisteet
että julkisivualueet. Näiden tietojen perusteella voidaan edelleen automaattisesti
määrittää kuvien ja 3D-mallin välinen geometria. Lisätietoja löytyy artikkelista (Lee
et al., 2002a).
Yllä esitelty menetelmä toimii myös tapauksissa, joissa koko julkisivu ei ole yhdellä
kuvalla näkyvissä. Tämä on erityisen tärkeää tiheästi rakennetuilla alueilla. Vain
osan rakennuksen näkyminen saattaa estää kameran ulkoisen orientoinnin määrittämisen normaalilla vastinpistemenetelmällä (Kappale 3.3.1), jos riittävää määrää vastinpisteitä ei ole saatavilla. Edellä kuvattu menetelmä käyttää sen sijaan viivapohjaista menetelmää. Vastaavaa ideaa on käytetty myös artikkelissa (Debevec et al.,
1996), mutta tässä menetelmä on käyttökelpoinen vain muutamalle rakennukselle
suuren manuaalisen työmääränsä vuoksi. (Lee et al., 2002a)
Julkisivuteksturointi vaatii normaalisti neljä vastinviivaa tai -pistettä kuvalla ja kohteessa. Näitä ovat julkisivun reunaviivat tai kulmapisteet. Monissa tapauksissa kaikki neljä kulmapistettä eivät kuitenkaan ole näkyvissä kuvalla. Tällöin on turvauduttava viivojen käyttöön. Usein on myös niin, ettei esimerkiksi julkisivun alareuna näy
kuvalla eikä tällöin kaikkia viivojakaan ole mahdollista löytää perinteisellä reunanir-
44
rotuksella. Laycock et al. (2006) käyttää puuttuvan viivan etsinnässä hyväksi julkisivun alareunan kohdalla kulkevaa pakoviivaa. Sen avulla teksturointi on mahdollista suorittaa automaattisesti tasomaiselle julkisivulle. Tarkempaa tietoa pakoviivan
käytöstä ja muusta menetelmään liittyvästä löytyy artikkelista (Laycock et al.,
2006).
3.4.2 Yhteensovitus
Automatisointia voidaan käyttää piirreirrotuksen lisäksi kohdemallin ja tekstuurikuvan yhteensovittamisessa. Yhteensovituksessa on kaksi eri vaihtoehtoa. Ensimmäisessä vaihtoehdossa kohdemalli on kolmiulotteinen ja sitä sovitetaan yhteen kaksiulotteisen kuvan kanssa. Toinen vaihtoehto on, että kolmiulotteinen kohdemalli jaetaan kaksiulotteisiin osiin, joista sitten etsitään vastaavuuksia niin ikään kaksiulotteisten kuvien kanssa.
Ensimmäisessä vaihtoehdossa ongelmaksi muodostuvat lukuisat eri yhteensovitusvaihtoehdot. Kohdemallin pitäisi olla sellaisessa asennossa katsojaan nähden, jotta
sen sisältämät monikulmiot voitaisiin tunnistaa suoraan vastaavasti kuvalta. Jos mitään etukäteistietoa kuvan ja kohdemallin välisestä orientaatiosta ei ole, täytyy sovitus tehdä useissa eri asennoissa. Kuvaa tai mallia kierretään ja siirretään kolmen
koordinaattiakselin suhteen. Lisäksi tekstuurin kokoa saatetaan muuttaa. Laskennassa määritetään samanaikaisesti mallin orientointi ja sijainti suhteessa kuvaan sekä
mallin ja kuvan väliset vastinviivat. Prosessi voi käydä turhan raskaaksi, jos eri vaihtoehtoja löytyy liian paljon. Eri kokeilujen jälkeen parhaiten sopivat vastinpiirteet
yhdistetään keskenään. Vastaavuus voidaan etsiä ensin pienelle joukolle viivoja ja
tarkentaa tulosta lisäämällä enemmän viivoja sovitukseen. Tulos voidaan siis saavuttaa myös iteroimalla. Varmuutta ei kuitenkaan aina ole siitä, yhdistetäänkö oikeat
vastinpiirteet toisiinsa. Potentiaalisia vaihtoehtoja voi löytyä useita.
Kuvassa 36 ensimmäinen kuva vasemmalla sisältää kuvalta havaitut viivat. Seuraavassa kuvan päälle on projisoitu mallin sisältämät viivat. Viimeisessä kuvassa kuvan
ja mallin viivat on sovitettu yhteen. Mallin ja kuvan välisestä orientoinnista on ensin
tehty hypoteesi. Hypoteesin perusteella mallin piirteet projisoidaan kuvalle. Jos projisoidut piirteet ja alkuperäinen kuva ovat riittävän samanlaisia, hypoteesi hyväksytään. Muussa tapauksessa tehdään uusi hypoteesi, kunnes riittävä vastaavuus löytyy.
Hyväksytty hypoteesi antaa suuntaviivoja mallin ja kuvan väliselle orientoinnille, jota sitten parannetaan iteroimalla. (David et al., 2003)
45
Kuva 36: Vasemmalta oikealle: kuvalta havaitut viivat, mallin sisältämät viivat ja yhteensovitus (David et al., 2003).
Kuvan ja kaksiulotteisen kohdemallin yhdistämisessä on myös omia heikkouksiaan.
Jokainen 2D-osa näyttää erilaiselta, kun sitä katsotaan eri suunnista. Niinpä ne on
esitettävä useana näkymänä. Eri näkymät sijoitetaan näkökulmagraafiin (aspect
graph) (Kuva 37). Näkymiä sovitetaan yhteen kuvilta tunnistettujen piirteiden kanssa. Lopulta parhaiten yhteensopivat piirteet kuvalla ja kohteessa yhdistetään, kun
kaikki mahdollisuudet on käyty läpi.
Kuva 37: Rakennuksesta muodostettu yksinkertainen näkökulmagraafi (Böhm et al., 2002).
Tehtävää helpottaa huomattavasti se, jos tunnetaan kuvien karkea orientointi. Tällöin
vastinpiirrevaihtoehdot mallin ja kuvan välillä vähenevät reilusti. Työ etenee nopeammin ja kevyemmin. Ensin kuva ja kohde asetetaan karkeiden orientointitietojen
avulla päällekkäin. Kuvalta valitaan pisteitä, jotka näkyvät myös mallilla. Kun näiden vastinpisteiden ja projektiokeskuksen kautta muodostetaan suorat, tarkentaa niiden leikkauskohta kameran sijaintia (Kuva 38). Tämän taaksepäinleikkauksen avulla
kuvan orientointitietoja voidaan tarkentaa iteroimalla useammankin kerran (Kuva
39). Kuvalta on valittava vähintään kolme pistettä kameran sijainnin tarkentamiseksi. Mitä useampi piste hyödynnetään, sitä tarkempi tulos saadaan. Pisteet kannattaa
valita selkeistä kohteista ja eri puolilta kuvaa, jotta tulos olisi paras mahdollinen.
Yleisesti mitä tarkemmat orientointitiedot ovat saatavilla, sitä nopeammin ja luotettavammin yhteensovitus tapahtuu.
46
Kuva 38: Vastinpiirteisiin perustuva taaksepäinleikkaus (Klinec, 2004).
Kuva 39: Vasemmalla tunnettu karkea orientointi, oikealla korjaus taaksepäinleikkauksen
avulla (Böhm et al., 2002).
3.5 Näkymäesteiden huomioiminen
Näkymäesteet ovat asioita, jotka peittävät teksturoitavia kohteita kuten julkisivuja.
Ne voivat olla joko mallinnettuja tai mallintamattomia. Mallinnettuja näkymäesteitä
ovat kaikki kohdemalliin kuuluvat osat, jotka jollain lailla peittävät teksturoitavaa
kohdetta kuvilla. Esimerkiksi kaupunkimallissa toiset rakennukset tai rakennus itsessään voi peittää julkisivua. Mallintamattomia näkymäesteitä ovat ne kohteet, joista ei ole olemassa mitään geometria- tai sijaintitietoa. Näitä ovat yleensä ihmiset,
ajoneuvot ja ympäristön kasvillisuus. (Bornik et al., 2001)
47
Näkymäesteet voidaan jakaa myös sen perusteella, ovatko ne liikkuvia vai paikallaan olevia kohteita. Liikkuvia näkymäesteitä ovat muun muassa ihmiset ja autot rakennusten edessä. Liikkumattomia taas ovat esimerkiksi liikennemerkit ja ympäristön kasvillisuus, joka haittaa tarkasteltavan kohteen näkymistä. (Böhm, 2004)
Näkymäesteitä on lähes mahdoton välttää erityisesti kaupunkialueilla kuvattaessa,
sillä kuvauspaikkoja on rajallisesti. Seuraavissa kappaleissa on selostettu erilaisia
menetelmiä näkymäesteiden poistamiseksi tekstuurikuvilta. Menetelmät toimivat tapauksissa, joissa esteitä häivytetään tasomaisten kohteiden edestä. Ensin käsitellään
liikkuvia ja liikkumattomia näkymäesteitä. Molemmissa tapauksissa esteiden oletetaan olevan mallintamattomia. Näiden jälkeen käsitellään erikseen mallinnettuja näkymäesteitä.
3.5.1 Liikkuvat näkymäesteet
Paljon käytetty menetelmä liikkuvien näkymäesteiden poistamiseksi on taustan arviointi (background estimation). Taustaksi kutsutaan kaikkea sitä, mikä ei liiku kuvausten aikana. Tässä tapauksessa juuri tausta on se kohde, joka halutaan teksturoida.
Taustan arvioinnissa kohteesta otetaan tavallisesti useita ajallisesti peräkkäisiä kuvia
(Kuva 40). Kaikki kuvat otetaan täysin samasta paikasta ja samaan suuntaan. Kuvien
oton aikana liikkuvat näkymäesteet vaihtavat paikkaa taustaan verrattuna. Näin ollen
liikkuvat kappaleet sijaitsevat eri ajan hetkillä otetuilla kuvilla eri kohdissa. Kuvia
verrattaessa vastinpikselit saavat eri sävyarvoja niihin kohtiin, joissa liikettä on tapahtunut. Oletetaan, että vastinpikselit saavat suurimmassa osassa kuvia saman arvon, sillä vain pienessä määrässä kuvia näkymäeste on peittänyt kohdetta. Tällöin
voidaan antaa pikselille useimmilla kuvilla ollut arvo, jonka siis ajatellaan kuvaavan
kohdetta. Vastaava pikselin arvon määritys tehdään kuva-alan kaikille pikseleille,
jotka sitten muodostavat kuvan kohteesta ilman liikkuvia näkymäesteitä (Kuva 41).
(Böhm, 2004)
Kuva 40: Neljä kuvaa rakennuksesta, jonka edessä kulkevat liikenne ja jalankulkijat peittävät
osittain julkisivun alaosaa. Kameran paikka ja kuvaussuunta on sama jokaisena kuvanottohetkenä. (Böhm, 2004)
48
Kuva 41: Kuva muodostettu niistä pikseliarvoista, joita esiintyi eniten vastinpikseleiden vertailussa (Böhm, 2004).
Seuraavaksi esitellään tarkemmin erilaisia menetelmiä tekstuurikuvan pikselien arvon määritykseen. Oletetaan niin ikään, että käytettävissä on joukko vastinpikseleitä
useilta eri kuvilta. Kuten jo edellä mainittiin, liikkuvat näkymäesteet voidaan eliminoida parhaiten käsittelemällä samasta paikasta ja samaan suuntaan otettuja kuvia.
Yksinkertaisimmillaan lasketaan vastinpikseleiden arvojen keskiarvo, joka sitten
määrittää sävyarvon tuloskuvalle. Tällöin kuvia tarvitaan melko paljon, lähes sata
kappaletta, jotta väärän väriarvon sisältämät pikselit eivät pääse liiaksi vaikuttamaan
tuloskuvaan. (Böhm, 2004)
Tekseleiden arvot voidaan määrittää myös mediaanisuodatuksen avulla. Mediaanisuodatus on yksinkertainen tapa näkymäesteiden poistamiseen. Yleensä sitä käytetään kohinan poistoon, mutta se sopii myös näkymäesteiden häivyttämiseen. Suodatuksessa käytetään maskia, jonka koko voidaan määritellä tarkoitukseen sopivaksi.
Esimerkiksi 3*3-kokoisen maskin tapauksessa tarkasteltavana on kohdepikseli ja sen
kahdeksan naapuria (Kuva 42). Näiden sävyarvot järjestetään jonoon suuruusjärjestykseen, ja keskimmäinen arvo eli mediaani valitaan kohdepikselin sävyarvoksi.
Menetelmässä pakotetaan huomattavasti poikkeavat sävyarvot ympäristönsä kaltaisiksi.
49
Kuva 42: Mediaanisuodatus (Metherall, 2000).
Näkymäesteiden poistamisessa mediaanisuodatuksen sävyarvoja kerätään yleensä
useilta eri kuvilta, joissa kaikissa sama kohde on näkyvissä (Kuva 43). Ei siis niinkään käytetä tietyn kokoista maskia yhdelle kuvalle, vaan eri kuvien vastinpikseleiden sävyarvot järjestetään jonoon ja niistä valitaan keskimmäinen arvo (mediaani)
kyseisen pikselin arvoksi tuloskuvaan. Kun suurimmassa osassa kuvia näkyy teksturoitava julkisivu, ja vain osassa sävyarvo tulee näkymäesteestä, voidaan esteet poistaa melko tehokkaasti. Kuvia on oltava riittävä määrä, jotta näkymäesteet eivät dominoi sävyarvoissa. Mediaanisuodatus poistaa myös kuvan valoisimmat ja korostuvimmat kohdat (highlights). (Bornik et al., 2001)
Kuva 43: Mediaanisuodatus näkymäesteiden poistamisessa (mukailtu lähteestä Bornik et al.,
2001).
Samantapainen menetelmä mediaanisuodatuksen kanssa on pikseleiden arvon määritys sen mukaan, miten ne sijoittuvat värisävytaulukkoon. Myös tässä joukko kuvia
asetetaan pinoon, jolloin kuvien vastinpikselit sijaitsevat täysin päällekkäin. Kerrallaan yhden pinon vastinpikseleiden arvot sijoitetaan värisävytaulukkoon. Eri vä-
50
risävyt sijoittuvat eri osiin taulukkoa. Tarkoituksena on löytää joukko pikseleitä, jotka kaikki sisältävät lähellä toisiaan olevan sävyarvon. Ulkopuoliset pikselit jätetään
kokonaan pois käsittelystä. Menetelmä toimii jopa alle kymmenellä kuvalla, joten
kaikki pikselit voidaan tutkia eikä siihen kulu liiaksi resursseja. (Böhm, 2004)
Kuva 44 esittää neljä kuvaa pinossa ja niistä valitun yhden vastinpisteen sävyarvojen
jakaumaa väriavaruudessa. Kolme pikseliä oikeassa yläkulmassa muodostavat ryhmän, kun taas vasemmassa alanurkassa yksi pikseli jää ulkopuoliseksi. Väriavaruudessa tarpeeksi lähellä olevia pikseleitä käytetään tuloskuvan laskentaan. Jos useamman pikselin ryhmiä on monta, valitaan niistä se, jossa lähekkäisiä pikseleitä on
eniten. Lopullisen pikselin väriarvo voidaan määrittää esimerkiksi ryhmän pikseleiden arvojen keskiarvosta. Jos selvästi erottuvaa pikselirykelmää ei löydy tai pikselin
arvoa ei muuten voida johdonmukaisesti selvittää, valitaan pikselin arvoksi esimerkiksi ensimmäisen kuvan sävyarvo. (Böhm, 2004)
Kuva 44: Vasemmalla joukko kuvia pinossa, oikealla vastinpikselien väriarvot taulukossa. Yksi
väriarvo poikkeaa selvästi kolmesta muusta arvosta, joten se on luultavasti liikkuvasta näkymäesteestä. (Böhm, 2004)
Kun kaikki kuvat otetaan samoilla orientoinneilla, ei liikkumattomia näkymäesteitä
ole mahdollista poistaa, sillä ne näkyvät kaikilla kuvilla samassa paikassa. Edellä
esitetyt menetelmät toimivat vain maakuville, koska kaikki kuvat on otettava samasta paikasta ja samaan suuntaan. Ilmakuvat otetaan yleensä liikkuvasta lentokoneesta,
jolloin kuvauspaikka vaihtuu koko ajan. Ilmakuvilta voidaan kuitenkin poistaa liikkuvia näkymäesteitä samaan tapaan kuin kappaleessa 3.5.2. poistetaan paikallaan
pysyviä näkymäesteitä.
Varjot ja muut valoisuusvaihtelut taustassa heikentävät edellä kuvattujen menetelmien toimivuutta.
51
3.5.2 Paikallaan olevat näkymäesteet
Paikallaan olevien näkymäesteiden poistamiseksi kohteesta on otettava kuvia useasta paikasta (Kuva 45). Eri paikoista otetut kuvat voidaan perspektiivimuunnoksen
avulla muuntaa julkisivun suuntaiseksi ortokuvaksi, kun ollaan kiinnostuneita erityisesti tasomaisesta rakennuksen seinästä. Kun kaikki kuvat on muunnettu samaan
projektioon, näyttää paikallaan oleva näkymäeste liikkuvan julkisivun editse. Tällä
tavoin paikallaan olevat näkymäesteet voidaan muuttaa liikkuviksi näkymäesteiksi,
ja tästä eteenpäin voidaan soveltaa edellä esitettyjä ratkaisuja (Kappale 3.5.1) liikkuvien esteiden poistamiseksi. (Böhm, 2004)
Yleisesti ottaen mitä lähempänä julkisivua näkymäesteet sijaitsevat, sitä vaikeampi
niitä on poistaa. Kuvia on otettava reilusti eri suunnista, jotta este saadaan ”liikkumaan” tason editse.
Kuva 46 esittää lopputuloksen paikallaan olevien näkymäesteiden poistamisesta.
Kuvaan on jäänyt joitakin osia esteistä. Parempi tulos olisi saatu, jos prosessissa olisi käytetty useampaa kuin kolmea kuvaa. Toisaalta myös osa liikkuvista näkymäesteistä on poistunut, sillä myös ne näkyvät eri paikoissa eri kuvilla.
Kuva 45: Ylärivissä kolme eri suunnista otettua kuvaa julkisivusta. Julkisivun näkyvyyttä haittaa liikkuvien ihmisten lisäksi keskellä oleva patsas. Alarivissä julkisivuosa on muunnettu tasomaisen julkisivun suuntaiseksi ortokuvaksi. (Böhm, 2004)
Kuva 46: Julkisivu ortokuvana, josta näkymäesteitä on poistettu (Böhm, 2004).
52
3.5.3 Mallinnetut näkymäesteet
Kohteiden näkyvyyttä ja mallinnettujen näkymäesteiden sijaintia kuvalla voidaan
laskea nelipuiden avulla. Nelipuita käytetään erityisesti moniresoluutioisten tekstuurien tuottamiseen, mutta ne ovat myös yksi vaihtoehto näkymäesteiden tunnistamiseen ja poistamiseen.
Nelipuun juuri kuvaa koko teksturoitavan monikulmion alueen. Tekstuurin laatua
parannetaan jakamalla juuri neljään osaan. Nämä osat taas jaetaan edelleen pienempiin osiin aina laatua parantamalla niin kauan kuin tarkempaa tietoa on saatavilla.
Lopulta puun lehdet kuvaavat tekstuurin suurinta resoluutiota. Puun eri tasot sisältävät siis kuvan eri osia eri resoluutioisina (Kuva 47). Jokaisesta kuvasta muodostetaan oma nelipuu. (Bornik et al., 2001)
Kuva 47: Tekstuurikartasto (texture atlas) koostuu nelipuurakenteesta (Buckholz et al., 2005)
Projektiokeskuksesta määritetään säteet nelipuun solmujen jokaiseen kulmaan eli
tekstuurialueen vastaaviin kulmiin (Kuva 48). Kuvan jako pienempiin osiin tehdään
niin kauan, kunnes jokin estää säteen kulkemista tai suurin resoluutio on saavutettu.
Tämän avulla voidaan valita teksturoinnissa käytettävät kuvat siten, että ne eivät sisällä mallinnettuja näkymäesteitä tai kohteen omia peittäviä osia. (Bornik et al.,
2001)
53
Kuva 48: Peittävän kohteen vaikutus tekstuuripintaan (Bornik et al., 2001).
Nelipuu-menetelmässä voidaan käyttää myös mediaanisuodatusta mallintamattomien näkymäesteiden poistamiseen. Mediaanisuodatus on selitetty kappaleessa 3.5.1.
Kun kaikista kuvista on muodostettu nelipuita, lasketaan vastinpikseleiden sävyarvoista mediaani kaikilla resoluutiotasoilla, joita kuvista löytyy. Mediaani ja vastaava
resoluutio kuvaavat siten nelipuun solmua. Laskennassa on kuitenkin aina oltava
mukana vähintään kolme kuvaa. Parhaista resoluutioista ja vastaavista mediaaneista
koostetaan edelleen lopullinen tekstuuripinta. (Bornik et al., 2001)
Mallinnettuja näkymäesteitä poistuu myös kappaleessa 3.5.2. esitetyllä menetelmällä, sillä ne vastaavat liikkumattomia näkymäesteitä. Aiheeseen liittyvässä kirjallisuudessa en ole törmännyt mallinnettuihin näkymäesteisiin, jotka liikkuisivat.
3.5.4 Näkymäesteiden poisto laajoissa aineistoissa
Suuria aineistoja käsiteltäessä teksturointiin saattaa olla käytettävissä vain yksi kuva
yhtä pintaa kohden. Tällöin näkymäesteiden poistamisessa ei voi turvautua usean
kuvan hyödyntämiseen ja tehtävä vaikeutuu huomattavasti. Helposti voi syntyä tilanteita, että käytettävissä olevan kuva-aineiston avulla kaikkia näkymäesteitä ei ole
mahdollista eliminoida. Jos teksturoitava pinta koostuu toistuvasta mallista, kuten
tiilikuviosta, voi puuttuvan tekstuurin kopioida jostain muusta paikasta, samalta tai
eri kuvalta ja liittää sopivaan kohtaan näkymäesteen päälle.
Yksi vaihtoehto esteen peittämiseen on myös värittää sen päälle mahdollisimman
sopivalla värillä. Tällöin ei enää ole kyse valokuvalta saatavasta tekstuurista. On
myös mahdollista käyttää tekstuurikirjastoja, jotka sisältävät erilaisia tekstuureja eri
materiaaleille. Tekstuurikirjastot voivat sisältää sekä valokuvia että keinotekoisia
kuvia.
54
3.6 Kuvan ehostus
Kuvien radiometriset ominaisuudet eroavat toisistaan, kun niitä otetaan eri kameroilla, eri valoisuusolosuhteissa ja eri paikoista (Ortin et al., 2005). Radiometrisillä
ominaisuuksilla tarkoitetaan tässä kuvien valoisuuksien voimakkuuksia ja sävyjä.
Radiometriset vääristymät näkyvät kuvilla erilaisina valoisuus-, kontrasti- ja sävyarvoina. Kun kohteen teksturointiin käytetään useita erilaisia kuvia, syntyy tekstuuriin
muun muassa epäjatkuvuuskohtia kahden kuvan rajalle (Kuva 49). Näiden välttämiseksi luotettavin tekniikka on säätää kuvien radiometriset ominaisuudet manuaalisesti yhteensopiviksi ennen niiden liittämistä mallin pintaan. Myös automaattisia
menetelmiä on kehitetty toimenpiteen nopeuttamiseksi. Esimerkki tällaisesta on sekoitusmenetelmä (blending method), jota Debevec et al. (1996) on käyttänyt erilaisilla painotusfunktioilla.
Kuva 49: (a) Julkisivusta otettu useita eri kuvia. (b) Seinätekstuuri koottu yhdistämällä eri kuvia, jolloin sävyerot näkyvät kuvien rajakohdissa. (Varshosaz, 2004)
Kuvien radiometrisiin ominaisuuksiin voi vaikuttaa muillakin tavoilla kuin kuvankäsittelyllä. Kuvanottohetki vaikuttaa paljon kuvan ominaisuuksiin. Pilvisellä säällä
kaikki kuvat ovat lähes saman sävyisiä, niiden valoisuus on samaa luokkaa eikä varjojakaan kuviin synny. Jos kuviin kuitenkin tulee varjoja, voi niitä käsitellä samoin
kuin näkymäesteitä. On otettava huomioon, että myös varjot voivat liikkua.
Kuvat kannattaa ottaa lyhyellä aikavälillä, jotta valoisuus olisi kaikilla kuvilla samanlainen. Lisäksi jokin oleellinen asia kohteessa voi muuttua, jos samasta kohteesta tehdään kuvauksia vaikkapa eri päivinä.
55
Moniresoluutioisten tekstuurien muodostaminen (Kappale 4.2) vähentää myös mahdollisia valoisuusvaihteluita tekstuurikuvilta.
56
Luku 4
Laajojen aineistojen teksturointi
4.1 Laajan aineiston haasteita
Laajalla aineistolla tarkoitetaan suurta tietomäärää, joka voi käsittää jopa useita kaupunkeja kattavia tietokantoja. Rakennusten lisäksi se saattaa sisältää paljon myös
muuta kohde- ja sijaintitietoa, kuten metsiä ja peltoja. Aineisto voi olla yhdistelmä
useita erilaisia tiedostoja, jotka saattavat olla jopa täysin eri formaateissa keskenään.
Suuren alueen teksturointi vaatii siis erilaisten tietokantojen ja aineistojen yhdistämistä. Jo nämä asiat tuottavat erityishaasteita teksturointityölle. Lisäksi teksturointimahdollisuudet ovat usein jollain lailla rajallisia laajojen aineistojen tapauksessa,
sillä jokaista rakennusta ei voida käsitellä yksitellen. Algoritmien automaattisuus
helpottaa prosessin kulkua huomattavasti.
Laajan aineistomäärän tapauksessa tekstuurikuvia ei voi olla rajattomasti, vaan pääsääntöisesti on rajoituttava muutamaan tai jopa vain yhteen kuvaan per tekstuuripinta. Rakennuksen kokonainen julkisivu tai katto muodostuu laajojen aineistojen tapauksessa yleensä yhdestä tasosta, joka voidaan kuvata yhtenä monikulmiona. Usein
laajojen aineistojen tapauksessa jo kohdemallia on yksinkertaistettu sen verran, että
teksturoitavat monikulmiot ovat sopivan yleistettyjä.
Laajoille aineistoille sopivat menetelmät toimivat usein juuri karkeille 3D-malleille,
joissa rakennukset koostuvat mahdollisimman yksinkertaisista tasoista. Manuaalisuus pyritään vähentämään minimiin, jotta työmäärä ei kasvaisi liian suureksi. Vastaavasti manuaalista työtä voidaan keskittää yksilöllisiin ja vaativampiin kohteisiin,
kuten kirkkoihin ja muihin merkittäviin rakennuksiin.
57
Kuva 50: Teksturoitu 3D-malli Stuttgartista (Kada, 2004).
Kun teksturoitavana on kokonainen julkisivu kerrallaan, on kuvakin otettava sellaiselta etäisyydeltä, että koko seinä on siinä näkyvissä. Jos tekstuuri on koottava usealta kuvalta, lisää se tehtävän monimutkaisuutta. Yhden kuvan käyttäminen koko
seinän alueelle tarkoittaa sitä, että kuvan täytyy olla riittävän tarkka pinnan kuvioiden esittämiseen. Lisähaastetta tuovat rajalliset kuvauspaikat ja näkymäesteet, joita
ei aina ole mahdollista välttää.
4.2 Hierarkisen tietorakenteen hyödyntäminen
Laajan aineiston käytössä voidaan hyödyntää hierarkiaperiaatetta, jossa tietokanta
sisältää tekstuureja, malleja tai molempia eri resoluutioisina. Näistä voidaan valita
tarkoitukseen sopivat mallit ja tekstuurit tapauskohtaisesti. Jos halutaan tuottaa
mahdollisimman tarkka kuvaus, valitaan tarkimmat olemassa olevat aineistot. Jos
taas karkeampi malli on riittävä, on turha kuluttaa resursseja liian yksityiskohtaiseen
kuvaukseen. Toki hierarkiaperiaatetta voidaan käyttää muussakin kuin laajojen aineistojen yhteydessä, mutta tämä on yksi esimerkki sen hyödyllisyydestä. Hierarkiaan perustuvia tietorakenteita ovat muun muassa nelipuut ja kuvapyramidit.
58
4.2.1 Nelipuu
Keräämällä tietoa useasta nelipuusta eli yhdistämällä tekstuuriosia usealta kuvalta
syntyy moniresoluutioinen tekstuuri (Kuvat 51 ja 52). Nelipuuhun tallennetaan tekstuurin resoluutio ja pikseleiden sävyarvot. Moniresoluutioesityksen avulla voidaan
poistaa näkymäesteitä (Kappale 3.5.3) ja samalla luoda mahdollisimman tarkka tekstuuri. Tällöin kohdepinta päällystetään useilla eri tekstuurikuvilla, jotka voivat olla
peräisin eri kuvilta. Eri osat ovat eri laatuisia, eli niiden resoluutio vaihtelee. Eri
kohtiin etsitään aina sitä kuvaava parasta laatua oleva tekstuuri. Samalla estetään
näkymäesteiden kuvautumista kohteen pintaan. (Bornik et al., 2001)
Ofek et al. (1997) käsittelevät muun muassa tekstuurikuvilla esiintyvien heijastusten
ja valoisuuserojen poistamista moniresoluutioesityksen avulla.
Kuva 51: Yllä kaksi tekstuurikuvaa ja alla niitä vastaavat nelipuuesitykset. Kuvien perspektiivistä johtuen resoluutio vaihtelee kuvan eri osissa. Siksi kuvat on jaettu nelipuussa kolmeen eri
osaan. (Bornik et al., 2001)
59
Kuva 52: Tekstuuri yhdistettynä kahdelta eri kuvalta. Vasemmanpuoleinen osa on otettu toiselta kuvalta ja oikeanpuoleinen ja keskiosa toiselta kuvalta siten, että parhaat alueet molemmilta
kuvilta tulee käytettyä. (Bornik et al., 2001)
4.2.2 Kuvapyramidi
Toinen mahdollinen rakenne on kuvapyramidi. Se muodostuu nelipuun tapaan eri
laatuisista tekstuurikuvista (Kuva 53). Sen alin osa sisältää alkuperäisen kuvan. Kuva alipäästösuodatetaan vaiheittain ja näytteistetään aina edellistä kuvaa harvemmalla välillä, jolloin pyramidiin saadaan kerroksittain eri resoluutioisia kuvia.
Kuva 53: Kuvapyramidi (Ofek et al., 1997).
Nelipuu on kuvapyramidia parempi vaihtoehto, sillä sen osapuut voidaan jakaa eri
määrään tarkempiresoluutioisia osapuita. Tällöin eri alueiden tarkimmat tekstuurit
voivat poiketa toisistaan. Hyvinkin eri resoluutioisia tekstuureja syntyy esimerkiksi
perspektiivivääristymien johdosta. (Bornik et al., 2001)
60
4.2.3 Level of detail
Kaupunkimallien muodostamisessa paljon käytetty yksityiskohtien määrään perustuva kuvaustekniikka on ”level of detail” eli eri yksityiskohtatasot. Kaukaa tarkasteltaessa kohdemalli sisältää vain likimääräiset muodot ja tekstuurin. Mallin ja sen
tekstuurin ei tarvitse kuvata kaikkein tarkimpia yksityiskohtia, sillä niitä ei kuitenkaan näkyisi kaukaa katsottuna. Usein pienessä mittakaavassa näkymä sisältää paljon kohteita. Mallin käsittely ei käy liian raskaaksi, kun kuvaus on tarpeeksi karkea.
Lähelle zoomattaessa tarkemmatkin yksityiskohdat olisi mukava nähdä. Tällöin käytetään enemmän yksityiskohtia sisältävää mallia.
Level of detail (LOD) tarkoittaa, että kohteesta muodostetaan useita erilaisia malleja, joiden yksityiskohtaisuus vaihtelee. Kuvassa 54 vasemmalta oikealle mentäessä
kani muodostuu yhä pienemmästä määrästä monikulmioita. Monikulmioiden määrän
lisäksi myös tekstuurin resoluutio voi vaihdella samaan tapaan. (Erikson, 2000)
Kuva 54: Eri yksityiskohtatasoja kanimallien tapauksessa. Vasemmalta oikealle mallit koostuvat 69451, 8680, 1085 ja 135 monikulmiosta. (Erikson, 2000)
Etäisyys kohteen ja katsojan välillä määrää, mitä tarkkuustasoa kulloinkin käytetään
(Kuva 55). Yksityiskohdat vähenevät, kun kohdemalli näkyy kauempana katsojasta.
Tällöin kohteen kuvaaminen vaatii vähemmän resursseja, ja valittu tarkkuustaso on
kuitenkin riittävä kohteen kuvaamiseksi. Tarkka yksityiskohtainen malli kaukana
olevasta kohteesta voi näyttää hyvin sekavalta, mutta kun ulkoasua pelkistetään, on
kohde helpompi hahmottaa. (Erikson, 2000)
61
Kuva 55: Tarkinta mallia käytetään lähitarkastelussa, karkeinta mallia kaukaa katsottuna. Vasemmalta oikealle mallit sisältävät 17361, 8680, 4340, 2169 ja 1085 pintaa. (Erikson, 2000)
4.2.4 CityGML
CityGML on avoin tietomalli ja XML-pohjainen formaatti kolmiulotteisten kaupunkimallien taltiointiin ja käsittelyyn. Se määrittelee luokat ja suhteet tärkeimmille topografisille kohteille 3D-kaupunkimalleissa. Sillä voidaan kuvata muun muassa
mallin sisältämien kohteiden geometriaa, niiden välisiä suhteita ja ulkoasua. CityGML erittelee viisi eri yksityiskohtatasoa (LOD). Kohteet muuttuvat sitä yksityiskohtaisemmiksi, mitä korkeammalle tasolle noustaan (Kuva 56). Malli voi sisältää
yhtäaikaisesti useita kuvauksia samasta kohteesta eri tasoilta. (Gröger et al., 2006)
LOD0 on karkein hierarkiataso. Sitä käytetään kaksi- ja puoliulotteisen (2,5D) digitaalisen maastomallin kuvaamiseen. Tekstuurina voi olla esimerkiksi ilmakuva tai
kartta. LOD1 käsittää laatikkomallin kohteesta. Rakennukset ovat suorakulmaisia ja
katot ovat tasoja. Malli voidaan johtaa esimerkiksi pohjapiirroksesta, johon lisätään
karkeasti rakennusten korkeudet. LOD2 on edelleen laatikkomalli, mutta siinä kattogeometria voi olla tasoa monimutkaisempi ja rakennus voi sisältää muissakin paikoissa erimuotoisia pintoja. Myös likimääräinen pintatekstuuri ja kasvillisuuden kuvaus saattavat sisältyä malliin. LOD3 on jo erittäin yksityiskohtainen rakennusmalli,
jossa arkkitehtuuriset piirteet, kuten seinien ja kattojen yksityiskohdat, parvekkeet,
syvennykset ja ulokkeet, ovat näkyvissä. Lisäksi pinnoille voidaan liittää tarkka
tekstuuri. Osana tätä tasoa ovat myös yksityiskohtaiset kuvaukset kasvillisuudesta ja
liikenteestä. LOD4 on tarkin yksityiskohtataso. Siinä LOD3-tasoa täydennetään rakennusten sisärakenteilla. Näitä ovat muun muassa huoneet, sisäovet, huonekalut ja
rappuset. (Gröger et al., 2006)
62
Kuva 56: CityGML:n määrittelemät viisi yksityiskohtatasoa (Gröger et al., 2006).
4.3 Kuvattavan alueen määritys
Level of detail on hyvä menetelmä liian raskaiden prosessien välttämiseksi. Toinen
mahdollisuus on määrittää vain se alue 3D-mallissa, joka kulloinkin esitetään näytöllä. Näkymän ulkopuolelle jääviä osia on turha ladata näytölle. Renderöitävä alue
voidaan määrittää esimerkiksi ympyrän muotoiseksi. Käyttäjä määrittää alueen keskipisteen ja ympyrän säteen pituuden, ja vain tämä alue ladataan tekstuureineen
näyttökuvalle. Prosessoitava tietomäärä riippuu kohteen tarkastelumittakaavasta,
määritetystä alueen koosta sekä kohteen sisältävien yksityiskohtien määrästä. (Lefebvre et al., 2004)
Level of detail ja piste-säde -tekniikka voidaan yhdistää siten, että ladattavien yksityiskohtien määrä vähenee keskipisteestä ympyrän reunalle kuljettaessa. Näin voidaan edelleen keventää näkymän muodostamista. (Lefebvre et al., 2004)
Niinimäki (2006) esittelee diplomityössään erilaisia menetelmiä kuvanmuodostusprosessin keventämiseksi. Vain osa aineistosta prosessoidaan kerralla visuaaliseen
muotoon, kuten jo edellä kerrottiin. Tässä tapauksessa renderöinti tapahtuu ainoastaan näkökentässä oleville kohteille (frustum culling). Näkymäalue (frustum) koostuu näkymän molemmilla sivuilla sekä ylä- ja alapuolella olevien tasojen sisäpuolelle jäävästä tilasta, kun tasot risteävät katselukohdan projektiokeskuksessa. Lisäksi
voidaan määrittää, että vain tarkastelukohdasta näkyvissä olevat tasot renderöidään
63
(backface culling). Siinä puolet aineistosta jää käsittelystä pois, kun kohteiden takapinnat voidaan jättää prosessoimatta.
Myös muissa tapauksissa näkymättömiin jäävät kohteet on poistettavissa (occlusion
culling). Näkymästä voidaan poistaa ne kohteet, jotka jäävät jo renderöityjen kohteiden taakse. Vastaavasti voidaan määrittää, onko jo kuvatun kohteen edessä jotain
sen näkyvyyttä haittaavaa. (Niinimäki, 2006)
4.4 Kuvien tallennus ja pakkaus
Tekstuurien tallennusmenetelmä vaikuttaa teksturoinnin sujuvuuteen ja tehokkuuteen. Aineistot tulisi tallentaa siten, että tarvittavien kohteiden lataus olisi helppoa.
Voidaan myös kehittää erilaisia ennustusmenetelmiä, joiden avulla pystytään päättelemään tietokannasta seuraavaksi mahdollisesti haettavia tekstuuriaineistoja. Tietokoneissa varsinaisen muistin lisäksi näytönohjaimen muisti vaikuttaa prosessoinnin
tehokkuuteen. Välimuistin käyttö koneen varsinaisen muistin ja näytönohjaimen
muistin välillä on eduksi aineiston renderöintivaiheessa. Lähiaikoina tarvittavat tekstuurit löytyvät välimuistista, josta ne saadaan nopeasti käyttöön. (Lefebvre et al.,
2004)
Tekstuurikuvia voidaan pakata, jolloin ne vievät vähemmät tilaa tietokannassa. Pakattuja aineistoja on lisäksi kevyempi siirtää paikasta toiseen. Näytönohjaimen
muisti sisältää yleensä pakkausalgoritmin. Menetelmä on kuitenkin usein häviöllinen, joten aineiston yksityiskohtaisuutta katoaa pakkauksen yhteydessä. Aineiston
purku tapahtuu lennossa rasteroinnin yhteydessä. Häviöllisessä pakkauksessa kadonnut tieto voi näkyä visuaalisina epäkohtina näytöllä. (Lefebvre et al., 2004)
64
Luku 5
Koetyöt
Tässä luvussa on selostettu kaksi koetyötä, jotka tehtiin teksturointiin liittyvien asioiden havainnollistamiseksi. Kohteena on TKK:n Maanmittausosaston julkisivu sekä yksi viereisistä seinistä. Tarkoituksena on tutkia erityisesti näkymäesteiden esiintymistä teksturoidulla mallilla ja niiden poistomahdollisuuksia. Lisäksi vertailussa
ovat kahdella eri tekniikalla tuotettujen mallien tekstuurit, niiden visuaalinen ulkonäkö sekä tuotantoprosessin ja valmiin mallin edut ja haitat. Toisessa 3D-malli ja
teksturointi on tehty valokuvilta PhotoModeler Pro -ohjelman avulla. Toisessa vastaava 3D-malli ja teksturointi tehtiin maalaserkeilaimella ja FARO Scene ohjelmalla.
5.1 Teksturointi laatikkomallin pinnalle
5.1.1 Lähtötiedot ja työn vaiheet
3D-malli muodostettiin eri suunnista otetuista kuvista PhotoModeler Pro 5.2.3:n
avulla. Mallin sisältämät koordinaatit eivät ole ulkoisessa koordinaatistossa, vaan
ainoastaan kuvien sisäinen ja keskinäinen orientointi on ratkaistu. Mallin ulkoinen
orientointi haluttuun koordinaatistoon on mahdollista tehdä käytetyllä ohjelmalla.
Tässä koetyössä sitä ei kuitenkaan koettu tarpeelliseksi.
Käytetty kamera on Olympus Camedia C-4000. Kamera on kalibroitu, joten sen sisäinen orientointi on tiedossa. Sisäisen orientoinnin parametreja ovat kameravakio
c , kuvan pääpisteen paikka ( x p , y p ) sekä linssin piirtovirheitä kuvaavat parametrit.
Ennen mallintamista kuvilta oletetaan tunnetuksi vain niiden sisäinen orientointi, eli
kameran kalibroinnissa saadut tiedot. Kuvat on otettu eri kulmista suhteessa kohde65
seinään, osa hyvin vinosta ja osa taas melkein kohtisuoraan (Kuva 57). Myös kuvausetäisyydet vaihtelevat. Samantyylinen kuvaus on tehty molemmille mallinnettaville seinille. Kuvilla on näkyvissä sekä liikkuvia että liikkumattomia näkymäesteitä.
Myös mallinnettu näkymäeste löytyy muutamalta kuvalta. Eri kuvilla näkymäesteet
tulevat näkyviin eri paikoissa (vrt. Kuva 45).
Kun kuvia otetaan eri suunnista kohdetta eli konvergentisti, voidaan kohdemallin
pisteille määrittää kolmiulotteiset koordinaatit. Koordinaattiarvot määräytyvät kuvien vastinpisteistä lähtevien kuvasäteiden leikkauskohdista. Tuloksena syntyy rautalankamalli. Tarvittavat viivat on vedetty pisteiden välille siten, että ne kuvaavat julkisivujen reunoja. Tekstuurikuva liitetään halutulle monikulmioalueelle, tässä tapauksessa julkisivutasoihin.
PhotoModeler käyttää teksturoinnissa perspektiivikorjausta, joka ottaa huomioon
kuvien perspektiivin suhteessa kohdepintaan. Lisäksi teksturoinnissa käytetään prosessia nimeltä ”feathering”. Se yhdenmukaistaa saumakohtaa kahden eri kuvalta otetun tekstuurin välillä. Tällöin kuvien erilaiset väri- ja intensiteettierot eivät tule niin
selkeästi näkyviin.
Kuva 57: Kuvauspaikat ja niistä otetut tekstuurikuvat.
66
5.1.2 Mallinnuksen tulokset
PhotoModeler-ohjelmalla mallinnettaessa tulokseksi saatiin 3D-malli, jossa kaksi
julkisivua koostuu kukin yhdestä monikulmiosta. Kummallekin julkisivulle liitettiin
tekstuuri jokaiselta kohdetta esittävältä kuvalta. Seuraava kuvasarja (Kuva 58(a)-(h))
esittää Maanmittausosaston julkisivumalliin liitettyjä tekstuureja. Eri tekstuurikuvia
kyseisestä seinästä on yhteensä kahdeksan. Kuvan 58 (a) tekstuuri on otettu vasemmanpuoleisimmalta kuvalta, kun tarkastelusuunta on kohti julkisivua. Seuraava tekstuuri on liitetty järjestyksessä aina seuraavasta kuvausasemasta (edellisestä oikealle)
saadulta kuvalta.
(a)
(b)
(c)
67
(d)
(e)
(f)
(g)
68
(h)
Kuva 58: M-osaston julkisivun teksturointi eri suunnista otetuilta kuvilta. Kuva (a) on vasemmanpuoleisimmasta kuvauspaikasta, (h) oikeanpuoleisimmasta asemasta.
Kuten kuvista näkyy, paikallaan olevat ruukut näyttävät liikkuvan kuvan oikeasta
reunasta vasemmalle. Kuvissa 58 (g) ja (h) ruukkuja ei enää näy ollenkaan. Nämä
kuvat on otettu sellaisista suunnista, joissa ruukut eivät tule lainkaan näkyviin kuvilla. Kuvan 58 (h) tekstuuri on hyvin venynyt, sillä kuvaussuunta oli jo lähes yhdensuuntainen julkisivun kanssa. Paras tekstuuri on kuvissa 58 (d) ja (e), joissa kuvaussuunta on ollut lähes kohtisuorassa seinään nähden eikä viereinen nurkka estä julkisivutason näkymistä.
Kuvat on otettu vasemmalta oikealle. Julkisivun vasemman reunan peittää alkukuvissa toisen julkisivun nurkka, joka häviää tekstuurista, kun kuvanottopaikkaa siirretään oikealle. Tämä nurkka on esimerkki mallinnetusta näkymäesteestä. Oven syvennys ja aita oven oikealla puolella näkyvät eri suunnista otetuissa kuvissa eri lailla. Jos halutaan näkymäesteetön tekstuuri, on käytettävä kuvaa 58 (g), jossa taas
oven syvennyksen toinen pystyreuna näkyy eri lailla kuin toinen. Viimeinen tekstuuri ei myöskään sisällä esteitä, mutta tekstuuri on huonon kuvauskulman takia hyvin
venynyt eikä sitä siksi kannata käyttää.
Pyörät ovat lähes samassa paikassa kaikilla kuvilla, sillä ne sijaitsevat erittäin lähellä
julkisivua. Niiden poistamiseen ei toimi kaukana seinätasosta tehtävä kuvauskulman
muuttaminen. Oikean seinätekstuurin valokuvalta saattaa saada vain silloin, kun kuva otetaan hyvin läheltä julkisivua. Varteenotettava tekniikka voisi olla tekstuurin
kopioiminen. Siinä tekstuuria kopioidaan sellaiselta alueelta, jossa se näyttää likimain samanlaiselta kuin mitä se on pyörien takana. Tämän julkisivun tapauksessa
hyvä paikka voisi olla lähellä kuvan vasenta reunaa pyörävapaalla alueella samalla
korkeudella seinää.
Tekstuurin kokoaminen pienemmistä osista eri kuvilta on ongelmallista, jos tunnettuna ovat vain julkisivujen nurkkapisteet. Tehtävä helpottuu, jos välille mitataan joi-
69
tain muitakin pisteitä. Se kuitenkin hidastaa työtahtia ja seinä koostuu yhden tason
sijaan useasta tasosta.
Kaikki tekstuurikuvat on otettu samana päivänä puolen tunnin sisällä puolen päivän
jälkeen. Päivä oli aurinkoinen. Valoisuusvaihteluita esiintyi, sillä eri tekstuurit ovat
eri sävyisiä, osa kirkkaampia ja osa tummempia.
Seuraavana on edellistä vastaava kuvasarja (Kuva 59 (a)-(e)) Maanmittausosaston
julkisivun viereisestä seinästä, joka niin ikään mallinnettiin ja teksturoitiin. Tekstuurikuvia on tässä tapauksessa viisi kappaletta. Kuvan 59 (a) tekstuuri on otettu kuvan
58 (a) tapaan vasemmanpuoleisimmalta kuvalta ja seuraavan tekstuurikuvan sijainti
on edellisen oikealla puolella.
Kuvista 59 (a)-(e) tulee erityisen hyvin näkyviin perspektiivin vaikutus. Kun kuva
on otettu viistosti julkisivuun nähden, kuten kuvassa 58 (a), on tiiliseinä epätarkka
toisesta päästä ja tarkka toisesta päästä. Lisäksi näissä malleissa haasteena on julkisivussa oleva syvennys, joka muuttuu sisällöltään huomattavasti eri suunnista otetuilla tekstuureilla.
(a)
70
(b)
(c)
71
(d)
(e)
Kuva 59: Pää-aulan julkisivun teksturointi eri kuvilta. Kuva (a) on vasemmanpuoleisimmasta
kuvauspaikasta, (e) oikeanpuoleisimmasta asemasta.
Joissain kuvissa näkyy yksittäisiä ihmisiä. Näihin voisi soveltaa samaa kopioi-liitä tekniikkaa kuin pyörienkin suhteen. Tässä tosin tekstuuri voidaan kopioida oikeasta
kohdasta, mutta vain eri kuvalta, sillä ihmiset liikkuvat ja eri ihmisiä näkyy eri ku-
72
vissa. Menetelmä vaatisi kaikkien kuvien tarkkaa orientointia ortokuviksi, jolloin
vastinpisteet sijaitsisivat kaikilla kuvilla samoissa kohdissa.
Kuvassa 60 näkyy koko malli parhailla tekstuureilla. Maanmittausosaston julkisivun
tekstuuri on mallissa sama kuin kuva 58 (g). Toisessa seinässä käytetty tekstuuri on
sama kuin kuva 59 (a).
Kuva 60: Koko malli parhailla tekstuureilla.
Kuvassa 61 malliin on visualisoitu kuvilla näkyneet ruukut ja niiden sijainnit. Ruukut on mallinnettu julkisivujen tapaan valokuvilta PhotoModelerilla.
Kuva 61: Ruukkujen sijainnit julkisivujen suhteen.
Mallin tarkkuus on yleisesti ottaen hyvä. Myös tekstuurin tarkkuus voidaan rinnastaa samoihin suuruusluokkiin, sillä malli on muodostettu tekstuurikuvista. Mallin
neliöllinen keskiarvo (RMS) oli 3,857 pikseliä. Se koostuu satunnaisista ja systemaattisista virheistä.
73
Mallin sisäinen tarkkuus (precision) kuvaa sitä, miten hyvin sama mittaus voidaan
toistaa useaan kertaan ja saada aina tarkasti sama tulos. Suurimmillaan tässä mallinnuksessa mittaustulosten poikkeama oli 0,6 astetta ja 0,2 metriä. Suurin osa arvoista
oli pienempiä kuin 0,1 astetta ja 0,1 metriä.
5.2 Teksturointi pistepilvistä muodostetun mallin pinnalle
Kohteena on edellisen koetyön tavoin Maanmittausosaston julkisivu. Osaston ulkoovi suljettiin keilausprosessin ajaksi. Keilauksia tehtiin yhteensä kolmesta eri asemasta. Yhdessä asemassa keilaukseen sisällytettiin myös TKK:n pääaulaan johtava
julkisivu. Muihin keilauksiin tätä kohdetta ei otettu mukaan, sillä aulaan johtava ovi
olisi tällöin jouduttu poistamaan käytöstä koko tapahtuman ajaksi.
5.2.1 Lähtötiedot ja työn vaiheet
Pistepilvet tuotettiin maalaserkeilaimella (FARO Laser Scanner LS 880). Vaiheeromittaukseen perustuva keilain skannaa ympärillä olevan alueen lähes täysin, vain
pieni osa kojeen alapuolelta jää katveeseen. Vaakasuuntainen näkymä on täydet 360
astetta ja pystysuuntainen näkymä 320 astetta. Täydellä resoluutiolla keilain tuottaa
koko kierrokselle (360°) 40000 3D-pikseliä pystysuunnassa ja 470000 3D-pikseliä
vaakasuunnassa. Näin ollen laserpulssien välinen kulma on pystysuunnassa 0,009°
ja vaakasuunnassa 0,00076°. (Anon 6)
Kuva 62: FARO-laserkeilain sekä muuta mittauksessa tarvittavaa kalustoa (Kuva: Hyyppä,
2006)
74
Keilaus tehtiin kolmesta eri asemasta. Jokaisesta asemasta syntyi oma pistepilvi, ja
nämä yhdistettiin jälkikäteen pallosignaalien avulla yhdeksi malliksi. Pistepilvissä
pistetiheys tässä työssä on 1:4 täydestä resoluutiosta. Kuten edellisenkin koetyön tapauksessa, ei tätäkään mallia ole orientoitu ulkoiseen koordinaatistoon. Signaalipalloja on yhteensä kymmenen kappaletta ja niitä oli sijoitettu eri puolelle keilattavaa
aluetta. Kuva 63 esittää keilattua aluetta sisältäen pallosignaaleja.
Kuva 63: Maalaserkeilaimella skannattu alue.
Laserkeilaimessa on mukana integroitava laajakulmainen kamerajärjestelmä Nikon
D70s. Pistepilven muodostamisen jälkeen koje ottaa valokuvat samalta alueelta.
Näin jokaiselle pistepilven pisteelle voidaan määrittää väriarvo ja mallin pintaan
saadaan tekstuuri valokuvalta.
Eri kuvilta tulevat tekstuurit eivät sovi täysin toisiinsa, eikä tekstuurin tarkkuudesta
ja oikeasta sijainnista ole takeita. Kameraan on olemassa valmistajan antamat kalibrointitiedot, joilla virheitä voidaan vähentää. Tulosten perusteella nämä tiedot eivät
kuitenkaan ole oikeita tai kovin tarkkoja, sillä työn tuloksissa esiintyy huomattavia
epäkohtia tekstuurien yhteensovituksessa.
Skannaus suoritettiin lokakuun puolivälissä klo 17:00 - 19:00 välisenä aikana. Sää
oli pääosin pilvinen, tosin välillä aurinko paistoi pilven takaa ja aiheutti varjoja julkisivuun. Lisäksi loppuvaiheessa alkoi jo hämärtää, joten tekstuurisävyt vaihtelevat
ajan suhteen.
Keilaustietojen käsittely tehtiin Faro Scene –ohjelmalla. Kolme pistepilveä käsiteltiin ensin niin, että niistä poistettiin kohina ja muut turhat pisteet. Tämän jälkeen mitattiin aineistoissa näkyvät signaalipallot. Eri pistepilvet yhdistettiin mitattujen sig-
75
naalipallojen avulla. Lopulliseen malliin lisättiin vielä kaikille pikseleille väriarvot
kameran ottamista kuvista.
5.2.2 Mallinnuksen tulokset
Lopputuloksena saatiin 3D-malli, joka koostuu noin 21 miljoonasta pisteestä (Kuva
64). Kolmiulotteisten koordinaattien lisäksi jokaisella pisteellä on väriarvo valokuvalta. Kuvilta mallintamiseen verrattuna tuloksena saadaan helpommin ja nopeammin erittäin tarkka pintamalli kohteesta. Mallin yksityiskohtaisuus ja visuaalisuus
riippuvat pistetiheydestä.
Kuva 64: Teksturoitu 3D-malli laserkeilausaineistosta.
Tässä mallissa lähelle zoomattaessa pisteiden väleissä näkyy aukkoja (Kuva 65). Lisäksi maassa näkyy alueita, jotka eivät sisällä lainkaan pisteitä. Tämä johtuu siitä,
että lasersäteen osumiskulma on lähes yhdensuuntainen kohdetason kanssa ja käytetyllä pistetiheydellä pisteitä ei voi osua kohteeseen tiheämmin. Pisteiden kokoa voi
halutessa kasvattaa tai pienentää. Kasvattamalla reikiä häviää, mutta samalla malli
muuttuu karkeamman näköiseksi. Pistepilvestä on toki mahdollista luoda pintamalli,
jolloin siihen liitetty tekstuuri ei sisällä aukkokohtia.
76
Kuva 65: Pikselit eivät ole kiinni toisissaan.
Kuvassa 66 näkyy useita mallin visuaalisuuteen ja tekstuuriin liittyviä asioita, joita
saattaa esiintyä laserkeilaamalla tuotetussa mallissa.
Joissain kohdissa tekstuuri on kuvautunut väärään paikkaan mallilla. Esimerkiksi
keltaiset kolmijalat lähellä seinää näkyvät myös seinätekstuurissa. Samoin kahdesta
ruukusta on siirtynyt ruskeaa väriä siivuina maahan. Nämä epäkohdat johtuvat kalibroimattomasta kamerasta ja laserpulssien heijastumisesta ympäristössä useamman
paikan kautta takaisin kojeeseen.
Maassa näkyy epäjatkuvuuskohtia sellaisissa paikoissa, missä tekstuuriarvo on tullut
eri kuvilta. Myös tämä johtuu siitä, että kameraa ei ole kalibroitu. Lisäksi eri kuvilta
tulleet väriarvot ovat kirkkaudeltaan erilaisia, joten senkin vuoksi tekstuuriin syntyy
näkyviä rajakohtia. Sama ilmiö syntyy valokuvilta mallinnettaessa.
Seinän lähellä olevien pyörien takaa on saatu jonkin verran tekstuuria mukaan. Väriarvo on lisätty kaikkiin mallin sisältämiin pisteisiin, joten samalla alueella saattaa
olla eri sävyisiä pikseleitä limittäin. Sävyarvot tulevat kuvilta, joita on otettu kolmesta eri paikasta eri ajanhetkillä.
77
Kuva 66: Mallin visuaalisia puutteita.
Pistepilvien yhdistämisessä yhtä skannaustiedostoa pidettiin referenssiaineistona,
johon kaksi muuta keilausta sitten liitettiin. Tällöin näiden koordinaateille tehtiin
muunnos referenssiaineiston koordinaatistoon. Ohjelma antaa joukon vertailuarvoja
koordinaatistojen välisistä muunnoksista. Keskihajonnat vastinpisteille olivat suurimmillaan 5 mm. Suurin osa arvoista oli kuitenkin 1 mm:n luokkaa.
Suurin etäisyysero eri skannausten vastinsignaalien koordinaattipisteillä on 6,8 mm
ja pienin 0,6 mm. Kulmaero vastaavasti oli suurimmillaan 0,03 astetta ja pienimmillään 0,005 astetta.
Kokonaisuudessa on kuitenkin vaikeaa määrittää mallin ja tekstuurin tarkkuutta, sillä keilaimesta ja kamerasta ei ole olemassa tarkkoja kalibrointitietoja.
Laserkeilaus on menetelmänä vaikeampi. Mittaaminen vaatii osan alueen eristämistä, sillä liian lähellä keilainta ei lasersäteen vuoksi saa olla. Lisäksi laite on suurikokoinen ja tarvitsee toimiakseen muita lisävarusteita, kuten kannettavan tietokoneen
ja akun. Jos samasta kohteesta tarvitaan useampi keilaus, on ympäristöön sijoitettava
pallosignaaleja mallien yhteensovitusta varten.
78
Valokuvaamiseen tarvitaan vain kamera, joka kulkee kätevästi mukana paikasta toiseen. Kuvaus on lisäksi nopeampaa. Toisaalta taas kuvaamalla ei päästä yhtä tarkkaan pintamalliin etenkään samassa ajassa.
Tallennettavan ja käsiteltävän tiedon määrä verrattuna valokuvaukseen on moninkertainen laserkeilauksen tapauksessa. Etenkin jo keilausaineistoa ei muuteta pistepilvestä tasopinnoiksi, on tietomäärää vaikea hallita etenkin laajojen aineistojen
kohdalla. Kuten jo edellä mainittiin, suositeltavaa onkin muuntaa pistepilvi tasopinnoiksi, jottei pikseleiden väleihin jäisi aukkoja.
79
Yhteenveto
Olemassa olevia menetelmiä hyväksi käyttäen teksturointi on edelleen haastava tehtävä. Erityisesti näkymäesteiden huomioiminen ja automaattisuus tuovat ongelmia
prosessin onnistumiseen. Fotogrammetrinen tapa vaatii tarkkoja mittauksia kohdemallissa ja kuvalla. Lisäksi tekstuurin siirto kohdepinnalle on tapahduttava geometrisesti oikein. Likimääräisemmät menetelmät tuottavat jollain tapaa todellisuudesta
poikkeavia tekstuureja. Prosessi on yleensä nopeampi ja helpompi, kun kaikkia virhelähteitä ei tarvitse eliminoida. Automaattisuuden lisääminen löyhemmillä laatu- ja
tarkkuuskriteereillä on myös helpompaa. Viime aikoina suuntauksena on ollut erityisesti laajojen kaupunkialueiden mallinnus ja teksturointi, jolloin lisähaasteita tuovat
suuret ja keskenään toisistaan poikkeavat aineistot.
Laajoissa aineistoissa erityisenä haasteena on tekstuurikuvien ja mallin hankinta.
Laserkeilaamalla varsinkin ilmasta käsin saadaan helposti ja nopeasti muodostettua
tarkka pintamalli laajastakin alueesta. Toisena vaihtoehtona on tekstuurikuvilta mallintaminen, joka vie enemmän aikaa ja sopiikin paremmin pienemmille kohteille.
Tosin samalla saadaan selville kuvien ja mallin keskinäinen orientointi.
Laajoille alueille sopiva menetelmä on 3D-mallin tuottaminen keilaamalla ja kuvien
otto mahdollisimman suurta automaatiota käyttäen. Kuvanottopaikat ja –suunnat
voidaan selvittää GPS:n sekä muiden välineiden avulla ja tallentaa tietokantaan, jolloin kuvien likimääräinen orientointi mallin suhteen on jo olemassa. Maanpäällinen
kuvaus voi tapahtua esimerkiksi auton lavalta, jolloin paikasta toiseen liikkuminen
kävisi nopeasti ja helposti. Julkisivutekstuurit kannattaa ottaa maakuvilta ja kattotekstuurit ilmakuvilta. Kun kyse on laajoista alueista, ei jokaista julkisivua voida
kuvata useasta paikasta ja mahdollisimman sopivasta suunnasta. Joitain myönnytyksiä siis on tehtävä, jotta prosessi ei kasvaisi liian raskaaksi. Yksi kuva voi kattaa
useamman julkisivun, ja kovinkaan tarkkaa valintaa kuvanottopaikasta ei voida tehdä. Näkymäesteiden huomiointiin ja poistamiseen jää tällöin rajoitettu määrä menetelmiä.
Julkisivujen teksturoinnissa tulisi löytää se ”kultainen keskitie”. Samaan aikaan ei
voida saavuttaa laajojen aineistojen prosessointia siten, että geometrinen tarkkuus ja
visuaalinen ulkonäkö olisivat huippuluokkaa rajoitetulla määrällä resursseja. Laajoja
80
alueita tarkastellaan usein kauempaa kuin yksittäisistä rakennuksista tehtyjä malleja,
joten niiden laatu voikin jäädä hieman huonommaksi kokonaisuuden siitä kuitenkaan kärsimättä.
Tietokoneiden kasvaneen laskentatehon ansiosta useita teksturointiprosessiin liittyviä ongelmia on jo saatu ratkaistua. Silti erityisesti näkymäesteiden automaattinen
tunnistus ja poistaminen kaikissa mahdollisissa tilanteissa ei ole vielä mahdollista.
Lisäksi automatisoidutkin menetelmät vaativat yleensä jonkinlaista seurantaa, sillä
kone ei aina osaa suorittaa prosessia virheettömästi alusta loppuun.
81
LÄHDELUETTELO:
Anon 1, SFB 627: Nexus, Umgebungsmodelle für Mobile Kontextbezogene Systeme,
21.11.2005-last update [Homepage of Universität Stuttgart], [Online]. Available: http://www.nexus.uni-stuttgart.de/ [2006, 11/27].
Anon 2, Liite 2, Kuvanmuodostusalgoritmit, 11.6.2002-last update [Homepage of
Tieteen Tietotekniikan keskus CSC], [Online]. Available:
http://www.csc.fi/gopas/Kuvanmuodostusalgoritmit.html [2006, 11/27].
Anon 3, RJJ Texture's User Manual Introduction. Available:
http://www.shaders.org/rjj_textures/intro.htm [2006, 11/27].
Anon 4, Introduction to CAD: part I. Available: http://wwwieem.ust.hk/dfaculty/ajay/courses/ieem575/lecs/cad_1/lecCAD1.html [2006,
11/27].
Anon 5, TD1 : Changement de taille et Révision de Vecteurs. Available:
http://www710.univ-lyon1.fr/~hbriceno/teaching/istg/si05/TD1.htm [2006,
11/27].
Anon 6, FARO Laser Scanner LS 840/LS 880, 10.12.2006-last update [Homepage of
FARO Technologies Inc.], [Online]. Available:
http://www.faro.com/FaroIP/Files/File/Techsheets%20Download/04REF201_0
41_Laser_Scanner_LS.pdf [2007, 01/15].
Allen, P.K., Stamos, I., Troccoli, A., Smith, B., Leordeanu, M. & Hsu, Y.C. 2003,
"3D Modeling of Historic Sites Using Range and Image Data", International
Conference of Robotics and Automation, Taipei, Taiwan, pp. 145-150.
Blinn, J.F. & Newell, M.E. 1976, "Texture and Reflection in Computer Generated
Images", Communications of the ACM, vol. 19, no. 10, pp. 542-547.
Bockaert, V., Interpolation [Homepage of Digital Photography Review], [Online].
Available: http://www.dpreview.com/learn/?/key=interpolation [2006, 11/27].
Böhm, J. 2004, "Multi-image Fusion for Occlusion-free Facade Texturing", ISPRS
Kongress 2004, Vol. 35, Part B, ed. O. Altan, Commission 5, Istanbul, Turkey,
pp. 867.
Böhm, J., Haala, N. & Kapusy, P. 2002, "Automated Appearance-based Building
Detection in Terrestrial Images", ISPRS Commission V Symposium, Interna-
82
tional Archives on Photogrammetry and Remote Sensing, vol. 34, no. 5, pp.
491-495.
Bornik, A., Karner, K., Bauer, J., Leberl, F. & Mayer, H. 2001, "High-quality texture reconstruction from multiple views", The Journal of Visualization and
Computer Animation, vol. 12, pp. 263-276.
Buchholz, H. & Döllner, J. 2005, "View-dependent Rendering of Multiresolution
Texture-atlases", Proceedings of IEEE Visualization 2005, pp. 215-222.
Chen, S.E. & Williams, L. 1993, "View Interpolation for Image Synthesis", SIGGRAPH conference proceedings, pp. 279-288.
David, P., DeMenthon, D., Duraiswami, R. & Samet, H. 2003, "Simultaneous Pose
and Correpondence Determination using Line Features", Proceedings of IEEE
Conference on Computer Vision and Pattern Recognition, pp. 424-431.
Davis, D., Ribarsky, W., Jiang, T.Y., Faust, N. & Ho, S. 1999, "Real-time Visualization of Scalably Large Collections of Heterogeneous Objects", Proceedings of
the conference on Visualization '99, San Francisco, California, USA, pp. 437440.
Debevec, P., Taylor, C. & malik, J. 1996, "Modeling and Rendering Architecture
from Photographs: A hybrid geometry- and image-based approach", SIGGRAPH conference proceedings, pp. 11-20.
Dick, A., Torr, P. & Roberto, C. 2000, "Automatic 3D Modelling of Architecture",
BMVC00.
Erikson, K.M. 2000, Hierarchical Levels of Detail to Accelerate the Rendering of
Large Static and Dynamic Polygonal Environments, Department of Computer
Science, University of North Carolina, Chapel Hill, USA.
Farmer, T.A. 2002, Geometric Photo Manipulation [Homepage of The Mathematical Association of America], [Online]. Available:
http://mathdl.maa.org/mathDL/4/?pa=content&sa=viewDocument&nodeId=465
&pf=1 [2006, 11/27].
Früh, C., Sammon, R. & Zakhor, A. 2004, "Automated Texture Mapping of 3D City
Models With Oblique Aerial Imagery", Proceedings of the 2nd International
Symposium on 3D Data Processing, Visualization, and Transmission.
83
Früh, C. & Zakhor, A. 2001, "Fast 3D Model Generation in Urban Environments",
International Conference on Multisensor Fusion and Integration for Intelligent
Systems, 2001, pp. 165-170.
Georgiev, A. & Allen, P.K. 2005, 28.1.2005-last update, The Avenue Project. Available: http://www1.cs.columbia.edu/~atanas/research/avenue/ [2006, 11/27].
Gröger, G., Kolbe, T.H. & Czerwinski, A. 2006, CityGML (City Geography MArkup
Language), Draft Specification, Version 1.0, Special Intrest Group 3D (SIG3D).
Heckbert, P.S. 1989, Fundamentals of Texture Mapping and Image Warping, Dept.
of Engineering and Computer Science, University of California, Berkley, USA.
Heckbert, P.S. 1986, "Survey of Texture Mapping", IEEE Computer Graphics and
Applications, vol. 6, no. 11, pp. 56-67.
Hormann, C. 2006, 11.10.2006-last update, Raytracing and POV-Ray - the details.
Available: http://www.imagico.de/pov/ray_advanced.html [2006, 11/30].
Inkilä, K. 2005, Analyyttinen fotogrammetria, Kurssimateriaali, Fotogrammetrian ja
kaukokartoituksen laboratorio, Teknillinen korkeakoulu, Otaniemi.
Kada, M. 2004, "Hardware-based Texture Extraction for Building Facades", XX
ISPRS Congress, Commission IV, WG 6, Istanbul, Turkey.
Kada, M., Klinec, D. & Haala, N. 2005, "Facade Texturing for Rendering 3D City
Models", ASPRS 2005 Annual Conference, Baltimore, Maryland, USA.
Klinec, D. 2004, "A Model Based Approach for Orientation in Urban Environments", Proceedings of the XXth Conference of ISPRS '04, Istanbul, Turkey, pp.
903-908.
Laycock, R.G. & Day, A.M. 2006, "Image Registration in a Coarse ThreeDimentional Virtual Environment", Computer Graphics Forum, vol. 25, no. 1,
pp. 69-82.
Lee, S., Jung, S. & Nevatia, R. 2002a, "Automatic Integration of Facade Textures
into 3D Building Models with a Projective Geometry Based Line Clustering", Computer Graphics Forum, vol. 21, no. 3, pp. 511-519.
Lee, S., Jung, S. & Nevatia, R. 2002b, "Automatic Pose Estimation of Complex 3D
Building Models", Proceedings of the Sixth IEEE Workshop on Applications of
Computer Vision.
84
Lefebvre, S., Darbon, J. & Neyret, F. 2004, Unified Texture Management for Arbitrary Meshes, INRIA, Institut Mational de Recherche en Informatique et en
Automatique.
Liebowitz, D. & Zisserman, A. 1998, "Metric Rectification for Perspective Images
of Planes", Proceedings of IEEE Conference on Computer Vision and Pattern
Recognition, pp. 482-488.
Liu, L., Stamos, I., Yu, G., Wolberg, G. & Zokai, S. 2006, "Multiview Geometry for
Texture Mapping 2D Images Onto 3D Range Data", Computer Vision and Pattern Recognition.
Metherall, G. 2000, 2.0 Spatial Filtering of Images [Homepage of BSc in Computer
Science, Clayton Campus], [Online]. Available:
http://www.csse.monash.edu.au/hons/projects/2000/Glenn.Metherall/chapter2.h
tml [2006, 11/27].
Neider, J., Davis, T. & Woo, M., Chapter 9, Texture Mapping [Homepage of Silicon
Graphics], [Online]. Available: http://www.rush3d.com/reference/openglredbook-1.1/chapter09.html [2006, 11/27].
Niinimäki, T. 2006, Interactive multi-scale visualization of built areas, Telecommunications Software and Multimedia Laboratory, Department of Computer Science and Engineering, Helsinki University of Technology.
Ofek, E., Shilat, E., Rappoport, A. & Werman, M. 1997, "Multiresolution Textures
from Image Sequences", IEEE Computer Graphics and Applications, vol. 17,
pp. 18-29.
Ortin, D. & Remondino, F. 2005, "Occlusion-free Image Generation for Realistic
Texture Mapping", International Archives of Photogrammetry, Remote Sensing
and Spatial Information Sciences, vol. 36.
Peltonen, S. 2006, SGN-3010: Digitaalinen kuvankäsittely 1, Kurssimateriaali, Signaalinkäsittelyn laitos, Tampereen teknillinen yliopisto.
Pöntinen, P. 2006, Fotogrammetrian erikoissovellukset, Luento 4, Kameran kalibrointi, Kurssimateriaali, Fotogrammetrian ja kaukokartoituksen laboratorio,
Teknillinen korkeakoulu, Otaniemi.
Remondino, F. & El-Hakim, S.F. 2006, "Image-based 3D Modeling: A Review",
The Photogrammetric Record Journal, vol. 21, no. 115, pp. 269-291.
85
Rocchini, C., Cignoni, P. & Montani, C. 1999, "Multiple Textures Stitching and
Blending on 3D Objects", Eurographics Rendering Workshop 1999.
Rönnholm, P. 2001, Kuvien interpolaatiomenetelmien laadun vertailu, Fotogrammetrian, kuvatulkinnan ja kaukokartoituksen erikoistyö, Teknillinen korkeakoulu, Otaniemi.
Schwidefsky K. & Ackermann F. 1978, Fotogrammetria, 1st edn, Otapaino, Espoo.
Ulm, K. 2005, "3D City Models from Aerial Imagery - Integrating Images and the
Landscape", GEOInformatics, vol. 8, pp. 18-21.
Varshosaz, M. 2004, "Occlusion-free 3D Realistic Modelling of Buildings in Urban
Areas", XX ISPRS Congress, Commission IV, Istanbul, Turkey, pp. 437-442.
Weinhaus, F.M. & Devarajan, V. 1997, "Texture Mapping 3D Models of RealWorld Scenes", ACM Computing Surveys, vol. 29, no. 4, pp. 325-365.
Weinhaus, F.M. & Devich, R.N. 1999, "Photogrammetric Texture Mapping onto
Planar Polygons", Graphical Models and Image Processing, vol. 61, no. 2, pp.
63-83.
Zebedin, L., Klaus, A., Gruber, B. & Karner, K. 2006, "Facade Reconstruction from
Aerial Images by Multi-view Plane Sweeping", ISPRS Commission III Symposium, Bonn, Germany, pp. 31-36.
Zlatanova, S. & van den Heuvel, F. A. 2002, "Knowledge-based Automatic 3D Line
Extraction from Close Range Images", International Archives of Photogrammetry and Remote Sensing (ISPRS), vol. 34, no. 5, pp. 233-238.
86