This is an old revision of the document!
Stereofotogrametrija je fleksibilna bez-kontaktna tehnika određivanja oblika i drugih prostornih informacija o promatranom objektu ili prostoru. Iz perspektive primjene u digitalizaciji 3d objekata, značajna karakteristika ove tehnike je da pomoću nje njom osim 3d modela istovremeno možemo dobiti i vrlo kvalitetnu teksturu objekta. Budući da se ovakva 3d rekonstrukcija oslanja na analizu slike, izostanak teksture ili karakterističnih uzoraka na objektu ujedno je i glavna mana ove tehnike. Objekti i prostori koji su previše jednolični ne daju dobre rezultate pri korištenju ove tehnike.
Stereofotogrametrija je fotogrametrijski proces pomoću kojeg se procjenjuju 3d koordinate točaka objekta koristeći mjerenja s dviju ili više fotografija uzetih iz različitih pozicija u odnosu na objekt. Na svakoj fotografiji prepoznaju se zajedničke točke. Mogu se konstruirati projekcijske linije koje idu od pozicija kamera prema točki na objektu. Sjecišta projekcijskih linija određuju 3D lokaciju točke (triangulacija).
Za izvedbu je potrebno imati foto aparat s mogućnost ručne kontrole ekspozicije, fokusa i žarišne duljine; suvremeno računalo (Windows, Linux, OSX) i odgovarajući software. Preferiramo korištenje open-source ili ‘besplatnih’ software-a što bližih tom modelu iz nekoliko razloga – sloboda korištenja, edukativni potencijal, garancija da će software biti dostupani i u budućnosti, te poticanje participacije i razvoja software-a.
Kvaliteta fotografskog materijala (podataka) presudna je za uspješnu fotogrametrijsku 3D rekonstrukciju. Zato se treba pridržavati sljedećih preporuka u odabiru objekta, pozicije i trenutka fotografiranja.
Za dobre rezultate preporučuje se kvalitetan fotoaparat s mogućnošću postavljanja:
Nekoliko preporuka dobrih nizova fotografija za različite tipove objekata.
Nakon prebacivanja fotografije se mogu dodatno korigirati (ekspozicija) i trebamo izbaciti one koje nisu zadovoljavajuće (očite greške, duple i neoštre fotografije i sl.).
Ako su fotografije u visokoj rezoluciji, potrebno ih je resize-ati (batch) tako da širina ili visina ne budu veće od 3200px. To je ograničenje postavki VisualSFM software-a. U slučaju resize-anja treba sačuvati izvorne EXIF metapodatke jer ih VisualSFM koristi pri analizi fotografija.
Fotogrametrijska tj. SfM (Structure from Motion) faza u kojoj računalo analizira svaku fotografiju te preko preklapajućih obilježja rekonstruira 3D prostor. VisualSFM software omogućava nam obavljanje svih radnji ovog procesa.
Neke od ovih radnji mogu trajati dugo, a budući da se radi o procesorski/memorijski zahtjevnom postupku može doći i do rušenja računala. Kako bi imali bolju predodžbu da li se nešto događa uključite Log prozor:
Win, Linux: Tools > Show Log Window
OSX: Tools > Show TaskViewer
File > Open+ Multi images
Odaberite sve fotografije i kliknite Open
SfM > Pairwise Matching > Compute Missing Match
Ovaj korak objedinjuje dvije radnje. U prvoj se prepoznaju i bilježe jedinstvena obilježja svake fotografije. U drugoj, pronađena obilježja uparuju se između fotografija. Broj usporedbi koji treba izvesti eksponencijalno je ovisan o broju učitanih fotografija, pa ovaj proces može potrajati.
U slučaju da dođe do prekida (pauza ili rušenje), VisualSFM će nastaviti od točke u kojoj se zaustavio sljedeći puta kada se pokrene komanda. Isto tako mogu se dodati i nove fotografije (korak 1.) i ponovo pokrenuti proces; biti će kalkulirane samo nove fotografije.
SfM > Reconstruct Sparse
VisualSFM će početi rekonstruirati i prikazivati 3D formu iz uparenih obilježja / fotografija. Možemo vidjeti pozicije i rotacije kamera u prostoru, koje su zabilježile izvorne fotografije. Klikom na ikonicu 3+
možemo vidjeti još više ključnih točaka (ne samo točke koje vide 3 ili više kamera).
Kroz 3D scenu se krećete:
Pan — lijevi klik + drag
Pan / Rotate — desni klik + drag
Zoom — kotačić miša
Kako bi dobili bolju predodžbu o objektu i sceni možete:
Povećati veličine točaka — Alt + kotačić miša
Povećati veličine fotografija — Ctrl + kotačić miša
Pogrešno registrirane kamere ili one koje daju sumnjive rezultate i tako utječu na kvalitetu rezultata možete izbrisati. Kako bi brisanje radilo mora biti uključen: View > Show Single Model
Selektiranje kamere — lijevi klik na kameru
Selektiranje više kamera — F1 + pravokutna selekcija
Selektiranje preko točaka — F2 + pravokutna selekcija
Brisanje selektiranih kamera — Delete ili SfM > Delete Selected Camera
SfM > Reconstruct Dense
ili ikonica CMVS
Spremite CMVS mapu. U njoj će se nalaziti datoteke koje ćemo koristiti u sljedećim koracima.
U ovom koraku algoritam uzima prethodno pozicionirane kamere i originalne fotografije, pa kreira puno gušću verziju point cloud-a. Ovaj proces može potrajati dugo.
Nakon što je rekonstrukcija gotova klikom na Tab
(ili menu View > Dense 3D Points
) prebacujemo se između prikaza rezultata Sparse i Dense rekonstrukcije.
Nakon što je rekonstrukcija gotova možemo zatvoriti program. Podaci su već spremljeni u mapi koji smo kreirali u ovom koraku. U njemu se nalazi više datoteka, a ove će nam biti važne u sljedećim koracima:
.nvm
(N-View Match) datoteka u kojoj VisualSFM sprema podatke o rekonstrukciji. Sadrži putanje izvornih fotografija, kamere i 3D točke jednog ili više rekonstruiranih modela. Ovu datoteku otvaramo ako želimo ponovno otvoriti rekonstruiranu scenu u VisualSFM-u..out
datoteka (bundler format) sadrži kalkulirane (solved) pozicije kamera i bazični (sparse) point cloud točaka na sceni koje je software koristio za određivanje pozicija kamera.ply
datoteka sadrži gusti (dense) point cloud. Svaka točka sadrži boju, poziciju i normalu (vektor okomit na površinu na kojoj je točka). Ovu datoteku možemo otvoriti u svim programima za baratanje point cloud-ovima i mashevima.
Vrlo dobra karakteristika ove tehnike je da se rekonstrukcija u svakom trenutku može dorađivati. Ako su neke kamere pogrešno pozicionirane ili nam nedostaju detalji objekta koji obrađujemo, jednostavno napravimo dodatne fotografije i učitamo ih. S obzirom na to da su rezultati prethodnih analiza (SIFT i matching proces) automatski spremljeni uz svaku fotografiju (.sift
i .mat
datoteke), analizirati će se samo nove fotografije.
Rekonstrukciju mash-a iz point clouda radimo s Meshlab-om.
File > Open Project
, pa odaberi bundle.rd.our
i list.txt
Render > Show Camera
delete current mesh
(učitavamo bundle.rd.out
kako bi dobili pozicije kamera, ali trebamo zamjeniti sparse point cloud sa dense cloud-om)File > Import Mesh
i učitaj dense mesh koji je lociran u folderu NVM_FOLDER/00/models/option-0000.ply
.ply
objekte.obj
, textura u .png
)Teorija
Alati
Tutoriali