Lansko leto so predstavili virtualni globus Gaea+ (http://gaeaplus.si/), o katerem smo v Mojem mikru obširno pisali, bil pa je povod za odločitev o razvoju lastnega orodja za oblikovanje 3D-objektov iz fotografij. Ideja projekta je v tem, da objekt na terenu hitro in preprosto poslikajo, izdelajo njegovo virtualno podobo, to pa nato umestijo v prostor virtualnega globusa. Gaea+ je nadgradnja slovenskega interaktivnega spletnega atlasa Geopedia, v začetku letošnjega leta pa je prišlo do spremenjenih pogojev sodelovanja.

Gregor Berginc iz podjetja Xlab razloži: »Gaea+ je bila širši javnosti predstavljena kot trirazsežna nadgradnja spletnega portala Geopedia, iz katerega je Gaea+ črpala osnovne geodetske podatke. Lastnik omenjenih podatkov je Geodetska Uprava Republike Slovenije. Konec leta 2009 smo v Geodetski upravi predstavili projekt digitalizacije slovenske naravne ter kulturne dediščine DEDI II, ki ga sofinancira ministrstvo za visoko šolstvo, znanost in tehnologijo (MVZT). Ker je umeščanje dediščine v realni prostor ključnega pomena za uspešen zaključek projekta, smo želeli urediti status geodetskih podlag, vendar se je izkazalo, da podjetje Xlab podatkov v skladu z Zakonom o dostopu do informacij javnega značaja in Uredbo o posredovanju in ponovni uporabi informacij javnega značaja ne more pridobiti. Za potrebe projekta DEDI II smo se tako obrnili na skrbnika pogodbe, na MVZT, kjer so nam omogočili prevzem podatkov. Žal smo podatke pridobili le za projekt DEDI II, tako da jih v javni različici orodja Gaea+ ne moremo uporabiti. Na podlagi pogovora z Geodetsko upravo smo se odločili, da javno različico z geodetskimi podlagami začasno umaknemo. Sočasno je prišla tudi vest o predvidenem prenehanju delovanja društva Geopedia, kar je še podkrepilo našo odločitev. Kmalu po objavi novice na spletni strani o umiku javno dostopne različice, smo prejeli pobudo za ohranitev orodja Gaea+, ki jo še preučujemo.«

ZAKAJ LASTNO ORODJE?

Berginc razloži, zakaj so sploh šli v razvoj lastnega orodja: » Za razvoj orodja za samodejno 3D-modeliranje iz digitalnih posnetkov smo se odločili iz dveh razlogov. Prvi razlog je, da je 3D-modeliranje objektov v naravi logična nadgradnja priljubljenega orodja Gaea+, saj omogoča preprosto digitalizacijo realnega sveta. Drugi razlog pa je neverjeten porast števila digitalnih fotoaparatov, digitalnih posnetkov ter spletišč, namenjenih deljenju slik. Vsa orodja za obdelavo ter prikazovanje slik pri tako veliki količini posnetkov odpovedo, tako da se ti kopičijo na najrazličnejših mestih. S orodjem za 3D-modeliranje objektov iz digitalnih posnetkov se spomini ohranjajo v kompaktni obliki, hkrati pa omogočajo neprestano izboljševanje s pojavom novih in novih posnetkov istih objektov. Orodje smo začeli razvijati leta 2008. Sprva pretežno raziskovalno in brez vidnejših rezultatov, pozneje pa smo v ekipo vključili še dva raziskovalca in tako izdatno pohitrili razvoj algoritmov za samodejno izgradnjo 3D-modelov. Raziskave in razvoj delno sofinancira Javna agencija za podjetništvo in tuje investicije (JAPTI) v okviru raziskovalnega projekta AIR5D. Čeprav na trgu že obstajajo orodja za (samodejno) izgradnjo 3D-modelov, tako temeljitih algoritmov za modeliranje splošnih objektov še nismo zasledili. Sorodna orodja, kot sta na primer 3Dsee in 3DSOM Pro, od uporabnika zahtevajo bistveno bolj nadzorovano slikanje (prvi deluje le pri zajemu fotografij v ravni liniji, medtem ko drugi deluje le z uporabo podstavka, označenega z markerji, ter monotonega zaslona za slikanim objektom – zato 3DSOM Pro tudi ne omogoča rekonstrukcije velikih objektov).«


Sorodni članki, podrobnosti in viri
O Microsoftovi storitvi Photosynth

O storitvi 3DSee

O virtualnih globusih

O lepljenju fotografij v panoramsko fotografijo

ZAJEM FOTOGRAFIJ

Vhodni podatki so fotografije objekta. Pri tem ni omejitev, koliko jih je, velja načelo – več je bolje. Prav tako pa ni nujno, da so vse fotografije posnete z enim fotoaparatom. To dejstvo je precej pomembno, saj lahko fotografije nekega objekta, do katerega fizično nimate dostopa, najdete tudi na javnih spletnih fotografskih odložiščih.

Kako bomo fotografirali, je zelo odvisno od oblike in obarvanosti predmeta. Splošen »recept« je, da zorni kot spreminjamo za do 5 stopinj in hkrati poskrbimo, da je prekrivanje med fotografijami vsaj 75-odstotno. Iz prakse uporabe podobnih spletnih storitev vam lahko povemo, da pri taki (nizki) pokritosti večinoma ne dobite pričakovanega rezultata, zato je bolje, če je pokrivanje med fotografijami 90 odstotkov ali večje. Velja pa pravilo, da boste za predmet, ki je bolj razgiban, a hkrati manj teksturiran (ima manj izrazito strukturo obarvanosti površine) za uspešno modeliranje potrebovali veliko več fotografij kot za predmet, ki ima nasprotne lastnosti. Bolje je torej posneti več fotografij, tudi zato, ker je preprosteje porabiti nekaj minut za izdelavo par deset fotografij več, kot pa pozneje, ko orodje potarna, da ima premalo fotografij, še enkrat fotografirati. Če je to sploh mogoče. Pri konkretnem orodju, so nam njegovi snovalci zaupali, da je za dobro rekonstrukcijo glave osebe dovolj 50 fotografij.

ISKANJE ZNAČILNIC

Značilnice so tisti deli fotografije, ki se pojavljajo na več fotografijah in so hkrati dovolj izrazite, da jih zna računalnik (ne človek s svojimi očmi in možgani) preprosto najti. Načelo iskanja značilnic ni pomembno le za oblikovanje 3D-modelov, temveč se med drugim uporablja tudi pri lepljenju več fotografij oziroma izdelavi panoramske fotografije. Da ugotovijo, kateri deli fotografije se ujemajo z deli na drugih fotografijah predmeta, uporabljajo tako imenovane diskriminativne slikovne značilnosti (discriminative image features). To so točke na fotografiji, ki jih poišče detektor značilnosti in nato dodatno opiše deskriptor značilnic – to je številski vektor, ki opisuje lastnosti slike v okolici točke, ki jo je našel detektor. Detektorji na fotografiji običajno iščejo robove, oglišča, ekstremne vrednosti slikovnih elementov (pik) in podobno. Zaželeno je, da detektorji na fotografijah, pri katerih gre za pokrivanje, najdejo približno iste odlikovane točke, s tem pa tudi značilnice.

Pri razvoju orodja so se v Xlabu odločili, da bodo uporabili značilnice SIFT (Scale Invariant Feature Transorm), ki jih je razvil David Lowe, in detektor DoG (Difference od Gaussians). Ta deluje tako, da zaporedoma gladi sliko z Gaussovimi filtri, nato pa zglajene slike odšteje med seboj ter poišče najvišje (maksimalne) vrednosti na odštetih slikah in tako najde odlikovane točke. Za opis okolice teh točk so uporabili 128-številčne vektorje, ki opisujejo histogram usmeritev gradientov slike v okolici točke. Da bi našli ujemanje med značilnicami najdenimi na eni in drugi sliki, primerjajo deskriptorje značilnic. Pri tem pride do težav, saj se lahko videz posameznih točk na predmetu zelo hitro spreminja v odvisnosti od zornega kota, pod katerim ga »gleda« objektiv fotoaparata. Če se med fotografiranjem preveč premaknemo, obstaja možnost, da orodje ne bo našlo ujemanja med fotografijami. Ta težava se ne pojavlja le pri značilnicah SIFT, temveč praktično pri vseh vrstah značilnic (MSER, Harris-affine, SURF …). Če bi fotografirali ravno ploskev z naključno strukturo (teksturo) površine, bi na primer ugotovili, da lahko zorni kot spreminjamo za največ 10 ali 15 stopinj; če je kot večji, izgubimo praktično vsa ujemanja med fotografijami, če pa je površina predmeta nekoliko razgibana z manj izrazito strukturo, pa pride do izgube ujemanja še prej! Od tu tudi omenjen predlog, da zornega kota ne spreminjamo za več kot 5 stopinj.

Berginc pove, zakaj so se odločil za uporabo značilnoc SIFT: »Značilnice SIFT vračajo zelo stabilne rezultate tudi pri spreminjanju velikosti objektov ter svetlobnih razmer. Značilnice SIFT omogočajo tudi delno neodvisnost od manjših ali finih transformacij posnetkov. Ker je postopek pridobivanja značilnic SIFT patentiran, je zelo pomembno poudariti, da je algoritem za izgradnjo oblaka 3D-točk neodvisen od detektorja značilnic. V času pisanja preučujemo patentno politiko Evropske unije, hkrati pa že razvijamo algoritme, ki jih je moč uporabiti v poljubne namene, tako da zaradi tega obstoj orodje v nobenem primeru ni ogrožen.«


DODAJANJE TRETJE DIMENZIJE

Ko orodje najde značilnice in ujemanje med njimi na seriji fotografij, svoje delo opravi še algoritem, zasnovan na odprtokodnem programu Bundler. Ta na podlagi ujemanja med fotografijami oceni položaj značilnic in fotoaparatov v tridimenzionalnem prostoru. Podobno deluje tudi Microsoftova storitev PhotoSynth, le da ta v procesu izpusti korak medsebojnega povezovanja – prilagajanja pridobljenih 3D-koordinat (bundle adjustment). Zato pa je izdelava »syntha«, kot se uradno imenuje to, kar smo mi imenovali 3D-slikovni kolaž, hitrejša. A tudi slabša. Saj rezultat ni pravi 3D-model predmeta, kjer je njegova struktura pridobljena iz fotografij in kot »koža« napeta prek žičnega modela, temveč 3D- točkovni model, v katerega so postavljene fotografije takšne, kot so.

Končni rezultat te faze v procesu modeliranja so ocenjeni položaji in usmeritve fotoaparatov, s katerimi so bile fotografije posnete, in nabor ocenjenih položajev značilnic v treh dimenzijah. Treba pa je omeniti, da v vseh primerih te ne pripadajo le predmetu na fotografijah, ki ga želimo pretvoriti v 3D-model, lahko so tudi del ozadja, ki nas pa ne zanima.

PROSTORSKO REZBARJENJE

V naslednji fazi nad izračunanimi 3D-točkami izračunajo tako imenovano Delaunayevo triangulacijo, s katero dobijo množico tetraedrov, ki te točke povezujejo. Nato z daljicami povežejo vse položaje fotoaparatov in vse značilnice, ki so vidne iz posameznih fotoaparatov ter odstranijo vse tetraedre, ki jih daljice sekajo. Na koncu poiščejo še ustrezne strukture površin (teksture) za preostale tetraedre , tako da za vsakega izberejo strukturo iz tiste fotografije, ki je bila posneta najbolj pravokotno nanj.

ROČNO PRILAGAJANJE

Ko bo orodje na voljo javnosti, bo uporabnik v prvi fazi lahko na izdelanem grobem modelu izvedel popravke. To si lahko predstavljamo takole: Uporabnik bo izbral ustrezne fotografije, zagnal izdelavo grobega modela, popravil, če bo kaj potrebno, in na koncu orodju prepustil, da izdela končni model. Možnost popravkov bo omejena na dodatno modeliranje določenih delov predmeta, zgradbe z ravninami, te ravnine združeval, poskrbel za natančne slike med ravninami, določil strukture površine za dele modela in podobno. Ta način popravkov bo namenjen predvsem modeliranju stavb, pri katerih je običajno groba rekonstrukcija manj natančna.

Kaj po orodje omogočilo? »Ker gre za računsko izjemno zapletene postopke, bo orodje ponujeno kot spletna storitev. Računanje bo potekalo na porazdeljeni strežniški infrastrukturi podjetja Xlab. Orodje bo uporabnikom omogočalo nalaganje digitalnih posnetkov, prikaz fotorealističnih modelov ter ročno popravljanje modelov, na primer določitev ravnin planarnih objektov, 'šivanje modelov', odstranitev šuma, popravljanje tekstur, kar bo še posebno prav prišlo pri odpravljanju senc objektov, ki so pred želenim objektom (npr. drevje). Samodejni postopki lahko namreč določijo teksturo le na podlagi optičnega optimiranja, ne morejo pa zagotoviti pomenskega optimiranja, zato bo orodje omogočalo izbiro teksture za posamezne dele modela. Storitev bomo sprva ponujali v obliki povabil registriranim uporabnikom, pozneje pa bomo predstavili celovito storitev, ki bo vključevala vse ali le nekatere izmed potrebnih korakov: zajem, analizo in obdelavo digitalnih posnetkov ter morebitno naknadno procesiranje (priprava za 3D-tisk, izdelava predstavitvenih video posnetkov …).«

STROJNE ZAHTEVE

Algoritem iz programa Bundler so dodatno nadgradili, tako da za potrebne izračune (teh pa je veliko) uporablja grafični procesor (podobno deluje tudi storitev 3DSee). Uporabili so programski jezik Cuda, ki ga je razvilo podjetje (Nvidia), zaradi česar lahko uporablja poljubno število grafičnih kartic. Za izdelavo modelov, ki so nam jih predstavili, so hkrati uporabljali grafični kartici Nvidia GTX275 in Tesla C1060.

O bodočem razvoju orodja pa Berginc pravi: »Orodje bomo nadgrajevali v lastni razvojno-raziskovalni skupini, pri čemer se bomo osredotočili predvsem na samodejno odpravljanje šuma ter krpanje kompleksnih delov 3D-modelov, ki jih zaradi različnih optičnih težav trenutno ne zmoremo pokriti. Poleg razvoja algoritmov bomo izboljšali še uporabniško izkušnjo pri ročnem odpravljanju pomanjkljivosti, kar bo bistveno poenostavilo izgradnjo modelov ter pripeljalo do kakovostnejših končnih rezultatov. V nadaljevanju bomo posebno pozornost namenili tudi računski zahtevnosti algoritmov ter jih v največji možni meri paralelizirali (tudi s prenosom na zmogljive grafične procesorje, kar za najbolj kritične dele algoritmov počnemo že zdaj).«

ČEMU?

Orodje bo dostopno široki javnosti, a bo namenjeno tudi profesionalnim uporabnikom. Možnosti, ki jih ponuja, je namreč veliko, najočitnejša pa je ta: Arhitekt naredi načrt zgradbe, kar običajno vključuje tudi njeno 3D-predstavitev za lažjo predstavitev naročniku. Težava teh predstavitev pa je velikokrat v tem, da predmet ni nazorno postavljen v prostor. Okoliške stavbe običajno niso v treh dimenzijah, so le 2D-fotografija, če pa že so, so škatle brez prave oblike in površinskih struktur. Naročnik nove stavbe si lahko predstavlja, kakšna bo stavba, ko jo bodo zgradili, ne more pa si predstavljati njenega vizualnega vpliva na okolico ali vpliv okolice nanjo. Z uporabo omenjenega orodja lahko obstoječe stavbe fotografirajo in hitro izdelajo njihove modele, ki jih nato vključijo v prostorske ponazoritve. Hitro, preprosto in poceni!

Moj mikro, Februar 2010 | Marjan Kodelja |