Objavljeno: 18.2.2011 | Avtor: Primož Gabrijelčič | Monitor Februar 2011

Od slike do trikotnika

Izdelava 3D modelov je zapleteno opravilo, celo takrat, ko je že na voljo predloga, po kateri bi radi naredili model. Morda celo še posebej takrat, saj mora model natančno ustrezati predlogi. Potrebujemo natančne mere originala, ki jih običajno dobimo z natančnim mehanskim merjenjem, laserskim skeniranjem ali pa - s pomočjo programske opreme - iz množice fotografij.

O "fotografskem" pristopu smo v Monitorju že pisali pred dobrima dvema letoma, ko smo si ogledali Microsoftov program Photosynth. Takrat izdelek razvojnih laboratorijev je medtem postal samostojni izdelek, ki ga uporabljajo celo ameriški forenziki. Kljub temu zahtevam iz uvoda ne ustreza, saj množico slik "samo" popači, obreže in nalepi v tridimenzionalni prostor, tako da se lahko po takem modelu sprehajamo, ne naredi pa modela kot samostojne entitete - množice točk, trikotnikov in tekstur, ki bi jo lahko uporabili v poljubnem programu za tridimenzionalno modeliranje - ali pa kot vhod za tridimenzionalni tiskalnik. "Samo" pa zato, ker Photosynth že naredi vse potrebne izračune, le takšnega načina izvoza slike ne podpira.

Ta zadnji korak naredi spletna storitev PHOV, delo slovenskega podjetja XLAB, ki ga poznamo po programih za podporo na daljavo ISL. PHOV je delo njihovega raziskovalnega oddelka in je javno zaživel šele konec prejšnjega leta.

Končni izdelek

3D model, ki smo ga ustvarili s fotografijami, si lahko v treh dimenzijah ogledate na naslovu

www.monitor.si/phov.

Nameščeno morate imeti javansko okolje. Če vam brskalnik ne bo hotel samodejno pognati ustrezne datoteke (49e14b7891fea73b2c24e86fbb86436d.jnlp), si jo shranite na disk in jo dvakrat poklikajte.

Kako ga uporabljamo ...

V foto oddelku našega laboratorija smo na fotografsko mizo postavili škrata iz decembrske številke, mu dodali partnerja, osvetlili z dvema svetilkama in začeli fotografirati. Za delo smo namenoma uporabili (dober) fotoaparat kompaktnega razreda z 10 milijoni pik in ne kakšne zrcalnorefleksne "zverine". Zanimalo nas je pač, kako se PHOV obnese pri morda ne najbolj idealnih fotografijah.

Model je treba natančno poslikati iz vseh možnih kotov, tako da smo naklikali kar 76 posnetkov. Pri delu lahko spreminjamo parametre fotografiranja, tudi zoom. Pravzaprav je to celo zaželeno, saj priporočajo, da se bolj zapletene dele poslika tudi od bliže (ali pa z večjo goriščnico). Hitro smo ugotovili, da je takšno studijsko delo precej naporno, sploh ko poskušaš poslikati objekt z zadnje - v našem primeru zelo nedostopne - strani. Z vrtljivo mizico bi šlo bistveno lažje. Pri fotografiranju večjih objektov pa boste naleteli na čisto drugačen problem - včasih jih je enostavno nemogoče poslikati iz vseh kotov (denimo od zgoraj). Čisto mimogrede - če boste modelirali večje objekte, ki bodo zahtevali silno veliko slik, je lahko fotoaparatov in fotografov tudi več.

Nato smo se prijavili v spletni strežnik in z enostavnim vmesnikom naložili vse slike. Pravzaprav se je najprej zataknilo (v Chromu), potem pa uspelo (v IE), čeprav naj bi bili enako podprti vsi brskalniki. Nič hudega, saj je storitev še v razvoju, bodo že popravili. Skratka, ko so se slike naložile, je program na spletnem strežniku postavil posel v čakalno vrsto in začelo se je nekajurno čakanje. Obdelava slik pač ni enostavno delo, tako da se na računskem strežniku hitro naredi vrsta.

Ko je bil posel obdelan, smo po elektronski pošti dobili povezavo do našega modela. Ob kliku se je odprl pregledovalnik (za delo potrebuje javo!), ki omogoča povečevanje in vrtenje, izvoza modela kot množice točk pa ne. Omejitve preizkusne različice pač. Z rezultatom smo bili dokaj zadovoljni, le na nekaterih delih so bile škratove noge malo čudne. No, nekako jih ni bilo. Noga se je začela in končala, vmes pa nič. Povprašali smo avtorje programa in povedali so nam, da smo pač naredili premalo fotografij kritičnega dela. Delo je torej enostavno, zahteva pa kar nekaj izkušenj, da veš, kdaj je treba narediti malo fotografij in kdaj veliko.

... in kako deluje?

Program najprej analizira slike in iz njih izloči kontrolne točke oziroma dobro jasne dele slik, za katere se bo dalo kasneje ugotoviti, na katerih fotografijah se ponavljajo. Pri tem uporabi postopek, ki ga vsebujejo tudi programi za izdelavo panoramskih fotografij (SIFT).

Nato začne iskati slike, ki imajo skupne kontrolne točke. Z dovolj kontrolnimi točkami se loti zapletenih matematičnih izračunov (za katere niti približno ne mislimo trditi, da vemo, kako delujejo), ki iz kontrolnih točk izračunajo položaj fotoaparata v prostoru v trenutku, ko je naredil posnetek. Dovolj slik - in dovolj položajev fotoaparata - pa lahko z drugim postopkom izračunajo najprej tridimenzionalni položaj kontrolnih točk, nato pa še ostanek modela.

Kot smo že omenili, ni takšno računanje prav nič enostavno in hitro. Za hitrejše delo zato uporabljajo NVidiine kartice Tesla in programe, ki izkoriščajo vzporedno obdelavo v grafičnih procesorjih. Po besedah enega od razvojnikov spodoben Intelov CPU potrebuje za iskanje kontrolnih točk v eni sliki nekaj deset sekund, Tesla pa opravi z nekaj slikami na sekundo. Spodobna pohitritev, kajne? Kljub temu pa za velik del računanja potrebujejo običajen procesor, ker se vseh postopkov ne da lepo paralelizirati. Obdelava zapletenega objekta z veliko slikami lahko zato traja tudi veliko ur.

Kdo ga potrebuje?

Dobro vprašanje. Kaj je dobra tehnologija brez strank? Nič kaj dosti. PHOV se še ne more pohvaliti z odmevnimi projekti, a nič hudega, saj gre za novo storitev, ki še ni imela časa zaživeti. Verjamemo, da je področij uporabe takšne rešitve silno veliko - od modeliranja zgradb (spravite svojo hišo na Google Earth) do dokumentiranja kipov in arheoloških najdb. Orodje torej imate, problem zanj pa boste morali najti sami.

PHOV

Spletna storitev za izdelavo 3D modelov iz množice fotografij.

Izdeluje: XLAB, www.phov.eu.

Cena: Preizkušnja je zastonj, komercialnega cenika še ni.

Za: Enostavno delo, dober rezultat.

Proti: Težave z odsevnimi materiali.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji