[FSUG PD] Fotogrammetria Procedure e Problemi

Vortigher Last vortigher0 a yahoo.com
Gio 5 Apr 2012 17:11:56 CEST


Padova 05/04/2012 h16:56

Fotogrammetria:
tramite più foto di un oggetto o di un paesaggio permette di aquisirlo
come un oggetto tridimensionale nel computer.
Come funziona:
si fanno più foto (senza flash, nè luci in movimento, più o meno alla stessa distanza,
senza zoom digitale) tutto attorno (o da tutti i lati possibili) ad un oggetto,
immagini che devono avere dei punti in comune, quindi che le due inquadrature
si sovrappongano parzialmente.

Programmi da installare:
osm-bundler = "open streetmap bundler" http://code.google.com/p/osm-bundler/downloads/detail?name=osm-bundler-full.zip&can=2&q=
              oppure, nella distribuzione LINUX ArcheOS è chiamato :
              ppt = python photogrammetry toolbox
              da: http://repos.archeos.eu/apt/pool/main/p/   vi servono:
              http://repos.archeos.eu/apt/pool/main/p/ppt/ppt_0.1-archeos0.4_i386.deb
              http://repos.archeos.eu/apt/pool/main/p/pmvs2/pmvs2_2_i386.deb
              e se volete un'interfaccia grafica: 

http://repos.archeos.eu/apt/pool/main/p/ppt-gui/ppt-gui_0.1-archeos0.5_i386.deb
Meshlab http://meshlab.sourceforge.net/


Programmi da usare:
bundler contenuto in : osm-bundler oppure in "python photogrammetry toolbox"=ppt di ArcheOS
pmvs oppure cmvs (cmvs è per distribuire il calcolo su più computer) contenuto nello stesso:
                 osm-bundler oppure in "python photogrammetry toolbox"=ppt di ArcheOS di cui sopra
Meshlab


Come ho proceduto a grandi linee, (se serve che dettagli lo farò; lo farò
comunque quando funzionerà tutto per spiegare a chi volesse cimentarsi)

Istallato bundler

Copiato da ArcheOS installato a Debian delle librerie che bundler e pmvs si aspettavano di
trovare nella loro cartella (difatti col comando che segue gliele faccio cercare lì).

Da Terminale:
export LD_LIBRARY_PATH="/usr/share/archeos/osm-bundler/linux/software/bundler/bin"

Primo passaggio:
Da Terminale mi porto nella cartella dove si trova l'istruzione: RunBundler.py e digito:
python RunBundler.py --photos="/Percorso_dove_ho_messo_le_immagini_di_prova/example_OldTownHall"
in questo passaggio bundler fà un primo confronto tra le immaggini; l'impostazione
predefinita è che le ridimensioni a 1200x900 per risparmiare RAM.
Genera una cartella temporanea con i risultati, il percorso di tale cartella và passato al
programma del secondo passggio cioè pmvs (o se sapete meglio di mè come lo si possa
distribuire a più computer cmvs).

Secondo passaggio:
Da Terminale:
export LD_LIBRARY_PATH="/usr/share/archeos/osm-bundler/linux/software/pmvs/bin"
a Terminale mi porto nella cartella dove si trova l'istruzione: RunPMVS.py e digito:
python ./RunPMVS.py --bundlerOutputPath=/tmp/osm-bundler-06IAib
in questo passaggio pmvs completa il confronto e genera un file pmvs_options.txt.ply
dentro a osm-bundler-06IAib\pmvs\models questo è un primo risultato: cioè
una nuvola di punti in prospettiva tridimensionale, visibile in Meshlab, ma non ancora un oggetto.

Terzo passaggio:
Aprire il file pmvs_options.txt.ply in Meshlab, selezionare ed eliminare,
i punti che non centrano, tipo quelli dello sfondo o, di altri oggetti,
presenti nella scena ma che non ci interessano.
Cercare nei sottomenù di Meshlab dove c'è scritto poisson reconstruction o qualcosa di simile,
ma comunque sempre con il termine "poisson" eseguirla.
La poisson reconstruction trasforma la nuvola di punti in una rete tridimensionale;
dopodichè passare da una visualizzazione all'altra è possibile tramite i pulsanti di
Meshlab, ed ulteriori elaborazioni sono possibili per un oggettto tridimensionale.

-----------------PROBLEMA-----------------------------------------------

Dopo gran faticare sono riuscito in LINUX Debian_Squeeze_amd64
(in ArcheOS_4_Cesar=Debian_Squeeze_i386 è già tutto funzionante)
a fare i primi due passaggi, ma quando cerco di aprire il risultato del secondo passaggio:
pmvs_options.txt.ply con Meshlab mi dice "unexpeted eof" stranamente invece lo STESSO file
in WinzozzXP, Meshlab per WinzoozzXP, me lo apre perfettamente:
"AIUTOOOO, per pietà"

vs. Antonio Guidetti

-------------------------------Siti-di-riferimento------------------------------------------------

Quì c'è qualche spiegazione
http://wiki.openstreetmap.org/wiki/Photogrammetry

E' stato sviluppato da:
http://phototour.cs.washington.edu/bundler
http://grail.cs.washington.edu/software/pmvs/
http://grail.cs.washington.edu/software/cmvs/
Ne sono stati fatti dei file binari scaricabili da:
http://code.google.com/p/osm-bundler/downloads/detail?name=osm-bundler-full.zip&can=2&q=


---------------------------Appendice----(dove si vede quanto mi son sbattuto)-----------------------------

Ci sono varie strade per fare quei tre passaggi, le ho provate quasi tutte,
elencherò quì di seguito i risultati

In ArcheOS_4_Cesar=Debian_Squeeze_i386 è già tutto funzionante!!!
(ma perchè mi devo mettere tutta una distribuzione con un sacco diprogrammi archeologici,
che non i servono quando a mè e ad altri seve solo usare questi 2 programmi:
bundler e pmvs per comlessivi circa 6MByte)

In WinzoozzXP_32bit come in ArcheOS_4_Cesar=Debian_Squeeze_i386
http://code.google.com/p/osm-bundler/downloads/detail?name=osm-bundler-pmvs2-cmvs-full-32-64.zip&can=2&q=

In WinzoozzXP_64bit il secondo passaggio pmvs non funziona

In Debian_Squeeze_i386 i 2 pacchetti .deb di ArcheOS_4_Cesar=Debian_Squeeze_i386
funzionano perfettamente!!!

In Debian_Squeeze_amd64 si può:
Strada 1 (quella che stò percorrendo):
prendere i pacchetti .deb di ArcheOS_4_Cesar=Debian_Squeeze_i386
aprirli e cambiare il file di testo che dice che è per architettura i386 con amd64
installare il pacchetto. Poi con comando terminale ldd bundler e, ldd pmvs vedere che
librerie richiedono, copiarle da ArcheOS_4 nella cartella di bundler e di pmvs,
avvertire tali programmi prima di esegurli che le librerie sono lì tramite il
comando:  export LD_LIBRARY_PATH="/usr/share/archeos/osm-bundler/linux/software/bundler/bin"
e quello: export LD_LIBRARY_PATH="/usr/share/archeos/osm-bundler/linux/software/pmvs/bin"
funziona eccetto il PROBLEMA di cui sopra per cui vi chiedo aiuto.

Strada 2 ricompilare dai sorgenti:
http://phototour.cs.washington.edu/bundler
Bundler Version 0.4 (released April 10, 2010) (Changelog)
    bundler-v0.4-source.zip: Bundler source code
    bundler-v0.4-source.tar.gz: source in tar.gz format
pacchetti prerequisiti per Debian_Squeeze_amd64 scoperti da mè guardando gli errori generati:
g++
fortran77
gfortran-4.4
zlib dev
jpeglib dev
a questo punto provate a compilare con make e vedrete l'errore che mi genera.
Quello è solo il bundler dopo vi ci vorrà anche il sorgente di pmvs:
http://grail.cs.washington.edu/software/pmvs/
pmvs-2-fix0.tar.gz
http://grail.cs.washington.edu/software/pmvs/pmvs-2-fix0.tar.gz
Oppure se intendete usare più computer per elaborare le immagini cmvs:
http://grail.cs.washington.edu/software/cmvs/
cmvs-fix2.tar.gz (243Mb)
http://grail.cs.washington.edu/software/cmvs/cmvs-fix2.tar.gz
Strada da non scartare qualora in futuro possa essere necessario modificare il sorgente
per dirgli di ricorrere alla swap quando la RAM non basta (ho dei sospetti al riguardo).

Strada 3 usare Wine:
non ho provato.

-------------------Fine-per-ora--------------



Maggiori informazioni sulla lista fsug-pd