User Tools

Site Tools


project:3d_scanning_photogrammetry

This is an old revision of the document!


DIY 3D skeniranje (1/3) Stereofotogrametrija

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.

Princip rada

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).

Alati

Za izvedbu je potreno imati foto aparat s mogućnost ručne kontrole ekspozicije, fokusa i žarišne duljine; 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 nesmetanog korištenja aplikacije, edukativni potencijal, garancija da će sotware biti dostupani i u budućnosti, te poticanje razvoja software-a i participacije.

SFM (Structure from Motion) rekonstrukcija

  • VisualSFM radi na Windows, Linux i Mac platformi. Pažljivo pratite upute za instalaciju. Instalacija za Windows platformu je najjednostavnija dok će za OSX i Linux potrebno kompajliranje. Ukoliko nemate strpljenja :), tehniku možete probati koristeći trial mode nekog od proprietary software poput: Agisoft PhotoScan, Autodesk 123D Catch (cloud based), PhotoModeler…

Editiranje point cloudova i masheva

Postupak

Pripremljeni objekt fotografira se pomoću digitalne fotogrametrijske kamere iz različitih položaja. Snimanje se provodi iz ruke, tako da nije potrebna nikakva stabilna konstrukcija.

  1. Fotografiranje
  2. Konstrukcija point cloud-a (Fotogrametija)
  3. Rekonstrukcija mash-a

1 Fotografiranje

Kvaliteta fotografskog materijala (podataka) presudna je za uspješnu fotogrametrijsku 3d rekonstrukcije. Zato se treba pridržavati slijedećih preporuka u odabiru objekta, pozicije i trenutka fotografiranja.

  • fotografije u nizu trebaju biti povezane (preklapati se 60% do 80%; karakteristična točka mora biti prepoznata na barem 3 fotografije)
  • izbjegavati ekstremno kadriranje (izolirane fotografije u kojima nije vidljiv kontekst / susjedne točke)
  • izbjegavati objekte s refleksijama (staklo, metal i sl.)
  • izbjegavati objekte u pokretu
  • izbjegavati fotografiranje kontra-svijetlo i u generalno lošim svjetlosnim uvjetima
  • preferira se difuzno svijetlo (oblaci, softbox)
  • napraviti što više fotografija

Za dobre rezultate preporuča se kvalitetan fotoaparat s mogućnošću postavljanja:

  • fiksna žarišna duljinu (zoom objektiv možemo fiksirati s trakom)
  • fokus (trebamo kontinuirano oštru sliku cijelog objekta)
  • ravnomjerna ekspozicija objekta
  • niže ISO vrijednosti kako bi se izbjegao noise (eventualno slikanje i u raw-u)
  • spremanje EXIF metapodataka

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 fotografije, neoštre i sl).

Ako su fotografije u visokoj rezoluciji, potrebno ih je resize-ati (batch) na dimenziju 3200px ili manju (širina ni visina ne smije biti veća od toga). To je ograničenje postavki VisualSFM software-a. U tom slučaju treba sačuvati izvorne EXIF metapodatke jer ih VisualSFM koristi pri analizi fotografija.

2 Rekonstrukcija point cloud-a

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 faza ovog procesa.

Neke od ovih faza mogu trajati dugo, a budući da se radi o zahtjavnom 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


1. Učitavanje fotografija

File > Open+ Multi images

Odaberite sve fotografije i kliknite Open


2. Pronalaženje obilježja (feature detection) i uparivanje fotografija

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 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.


3. Bazična rekonstrukcija (Sparse reconstruction)

SfM > Reconstruct Sparse

VisualSFM će početi rekonstruirati 3d formu iz uparenih obilježja / fotografija. Možemo vidjeti pozicije i rotacije kamera u prostoru, koje su zabilježile izvorne fotografije. Kliknite ikonicu 3+ kako bi vidjeli više točaka (a 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 utječu na kvalitetu rezultata možete izbrisati. Kako bi funkcija radila 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


4. Gusta rekonstrukcija (Dense reconstruction)

SfM > Reconstruct Dense ili ikonica CMVS

Spremite CMVS mapu. U njoj će se nalaziti datoteke koje će nam trebati u slijedećim koracima.

U ovom koraku algoritam uzima prethodno pozicionirane kamere i originalne fotografije, i kreira puno gušću verziju point cloud-a. Ovaj proces može potrajati.

Nakon što je rekonstrukcija gotova klikom na tab prebacujemo se između prikaza Sparse i Dense rekonstrukcije.

Nakon što je rekonstrukcija gotova možemo zatvoriti program. Podaci su već spremljeni u folderu koji smo kreirali u ovom koraku. Ovo su neke od datoteka koje će nam biti od koristi:

  • .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.
  • .out datoteka (bundler format) sadrži kalkulirane (solved) pozicije kamera i bazični (sparse) point cloud točaka na sceni koje je sofware 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).

a temporary digital storage area that contains related data and software files:

Napomena

Vrlo dobra osobina 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 — jedostavno napravimo dodatne fotografije i dodamo ih. Obzirom da su rezultati prethodnih analiza (SIFT i matching proces) automatski spremljeni uz svaku fotografiju (.sift i .mat datoteke), analirirati će se samo nove fotografije.


3 Rekonstrukcija mash-a

Rekonstrukciju mash-a iz point clouda radimo s Meshlab-om. !!! Doraditi !!!

  1. učitaj bundle.rd.our i list.txt
  2. provjeri kamere (Render –> Show Camera.)
  3. delete it (We needed to import the bundle.rd.out file to get the camera positions and rasters, but we should to replace the sparse cloud with the dense one.)
  4. load dense cloud… Import Mesh and load in your dense mesh. It should be located in your NVM_FOLDER/00/models/option-0000.ply
  5. … učitaj sve .ply objekte
  6. flatten visible layers
  7. očisti pogrešne točke
  8. Sanity check Cameras
  9. kreiraj mesh iz point clouda
  10. Remove all non-manifold edges
  11. Parametrize the mesh by weighted average of projectors
  12. Project the texture onto the mesh
  13. Parametrize the mesh without averaging and project
  14. Finalize and Export (mesh in .obj, textura u .png)

Korisni linkovi

project/3d_scanning_photogrammetry.1441952778.txt.gz · Last modified: 2015/09/11 08:26 by dp