2012-12-28

SfM – Structure from Motion (terza parte)


In questa puntata, pubblichiamo un tutorial operativo, creato per noi da Cicero Moraes, che ci illustra come utilizzare l'interfaccia PPT Python Photogrammetry Toolbox, di Luca e Alessandro Bezzi, su piattaforma Linux ArcheOS, e software “osm-bundler” di Pierre Moulon.


Tutorial Python Photogrammetry Toolbox

di Cicero Moraes


Prima di tutto è necessario effettuare il download del Python Photogrammetry Toolbox da qui: http://www.arc-team.homelinux.com/arcteam/ppt.php

 Dopo il download e unzip dovete modificare il file ppt_gui_start , inserendo il corretto percorso del programma (evidenziato in arancione).






 Ora, se siete sotto Linux è solo necessario eseguire lo script appena modificato:
$ ./ppt_gui_start



Una volta che il programma è partito, cliccate su “Check Camera Database”.



Con il Terminale Terminal/Prompt al lato, cliccate su “Select Photos Path”.



 Scegliete il percorso e poi cliccate su “Open”.



Cliccate su “Run” ed aspettate un poco.



 Se tutto è OK, vedrete un messaggio sul Terminale:

Camera is already inserted into the database

Altrimenti, potete seguire questo videotutorial:





Adesso, fate una copia del percorso.



1) Andate su “Run Bundler”.
2) Incollate su “Select Photos Path”.



 1) Per ottenere una buona qualità di scansione, cliccate su “Scale Photos with a Scaling Factor”; per default il valore sarà impostato a 1. Se avete un computer con minore potenza di processamento, non eseguite questo punto (1), e andate direttamente al punto seguente (2).

2) Cliccate su “Run”.



 Aspettate alcuni minuti, ed il programma risolverà la nuvola di punti.



Voi saprete che la soluzione è pronta quando nel Terminale sarà apparso il messaggio:

Finished! See the results in the '/tmp/DIRECTORY' directory

In questo caso il messaggio è stato:

Finished! See the results in the '/tmp/osm-bundler-ibBZV9' directory

Il file manager Nautilus sarà aperto, mostrando la directory con i file.




NOTA.: Se siete realmente curiosi, potete aprire la directory Bundle e vedere i file .PLY con Meshlab. Ma è meglio aspettare, perchè queste nuvole di punti non sono ancora buone ad ottenere una efficace ricostruzione/conversione in una superficie mesh.



 Andate sul Terminale, dove è apparso il percorso con la soluzione, e fate una copia di questo.



1) Andate sul “or run PMVS without CMVS”
2) Cliccate in “Use directly PMVS2 (without CMVS)”



1) Incollate il percorso in “Select Bundler Output Path”
2) Cliccate su “Run



 Quando il processo sarà terminato, vedrete una nuova directory chiamata “pmvs”.



Ora, dovrete entrare in “models” e cercare un file chiamato “pmvs_options.txt.ply”. Se tutto è andato bene, siamo nella fase finale della soluzione.

NOTA: E' una buona idea fare una copia della directory osm-* mettendola sotto la vostra home, perchè essa verrà persa al prossimo boot della macchina, dato che si tratta di una directory /tmp .




Quando aprirete il file “pmvs_options.txt.ply” in Meshlab vedrete che la nuvola di punti è realmente densa, ora, con una qualità paragonabile ad una foto.


Solo apparenza di una foto o di una superficie mesh...   notate che è selezionata attualmente la modalità vista per “Points”.



Se andate a selezionare “Flat Lines” ad esempio, le nuvole di punti scompariranno... perchè, ovviamente... si tratta di una nuvola di punti.

 Cliccate ancora su “Points” per vedere le nuvole di punti e:

1) Cliccate su “Show Layer Dialog” (A)

2) Così, apparirà un nuovo elemento nell'interfaccia con il nome dell'oggetto, in questo caso “pmvs_options.txt.ply” (B)





Andate su “Filters” -> “Remeshing, simplification and reconstruction” -> “Surface Reconstruction: Poisson”





 Apparirà una nuova finestra con i valori di default di “Octree Depth” e “Solver Divide”



1) Cambiate i valori su:
Octree Depth: 11
Solver Divide: 9

2) Cliccate su “Apply”

NOTA: Questi valori possono provocare un crash del programma se il vostro computer non ha sufficiente potenza di elaborazione.


 Se tutto OK, noterete le seguenti due cose:

1) Molti nuovi punti saranno stati scritti sopra la ricostruzione.
2) Un nuovo layer chiamato “1 Poisson mesh *”, in alto a destra.





Ma, quando torniamo su “Flat Line” per vedere la superficie mesh, compariranno strani elementi. In questo caso, l'algoritmo Poison ha creato una specie di sfera per ricostruire la mesh.



Possiamo vedere meglio questa sfera quando ci allontaniamo in orbita intorno al modello.



 Così, per rendere visibile la porta, noi dobbiamo:

1) Tornare sulla vista “Points” (A)
2) Ruotare la scena per vedere il lato della porta.
3) Cliccare su “Select faces in a rectangular region”


 E poi:

1) Creare una finestra di selezione sulla regione che deve essere cancellata (1A-2A)
2) Cliccare su “Delete the current set of selected faces”.



 Ora noi possiamo vedere la superficie mesh nel lato corretto.





Ma, quando cambiamo il tipo di vista su “Smooth”, noi vediamo la mesh senza i colori della nuvola di punti.




Per dipingere la mesh con i colori della nuvola di punti, possiamo andare su:
Filters -> Sampling -> Vertex Attribute Transfer



 Apparirà un nuovo pannello.




Voi dovrete invertire gli oggetti, perchè il “pmvs_options.txt.ply” è la reale mesh sorgente, che sarà la base da dipingere, e la “Poisson mesh” riceverà i colori, sicchè questa è la mesh di destinazione.



Quando cliccherete su “Apply” vedrete immediatamente la mesh colorata, come nell'immagine qui sopra.




 Se volete inviare questa mesh ad altri software, come Blender, potete andare su:

File -> Export Mesh As...




 Scegliete un posto dove salvare il file .PLY .






 Se tutto OK, la mesh potrà essere importata in Blender (o altro software) perfettamente.


I hope it has useful to you.

Cicero Moraes


Cícero Moraes is a 3D self-taught artist and animator. He learned his profession on the internet and is one of the great enthusiasts of Blender in the country. He has written dozens or on-line and printed articles, read in Brazil and the world.‬
Winner of the TVCA Advertising and Video Award in 2006, he was among the finalists of the Cannes Young Lions contest, promoted by YouTube in 2009. He has spoken in a number of informatics events, such as Latinoware (2009 and 2010), XXI Semac (SP), SolivreX (PR), Filsol (GO), II Ermac (MT) e a BlenderPRO (MG e CE).‬
More information on site: ‬www.ciceromoraes.com.br


Ringraziamo Cicero per la collaborazione e per il tutorial.


BobMaX




Nessun commento: