Intervento di Sofia Menconero per la giornata di studi "Applicazioni Open Source per il rilievo 3D dei Beni Culturali" Centro di GeoTecnologie dell'Università di Siena San Giovanni Valdarno (AR) 19 luglio 2013 E' possibile visualizzare il modello 3D prodotto al seguente link: https://sketchfab.com/show/41c41d01684a4867a314db60a0880818
29
Dalle fotografie alla mesh texturizzata, sperimentazioni Sofia Menconero [email protected]
Transcript
1. Dalle fotografie alla mesh texturizzata, sperimentazioni
Sofia Menconero [email protected]
2. Structure from motion e Image-based modeling di un'urna
funeraria etrusca
3. CAMERA Canon EOS 500D 15,3 megapixel + Canon EF-S 50 mm
f/1.4 USM Risoluzione immagine jpg 4752 x 3168 pixel HARDWARE
NOTEBOOK Sony Vaio Intel Core 2 Duo CPU T8100 @ 2.10 GHz 3,0 GB RAM
ATI Mobility Radeon X2300 MS Windows Vista Home Premium 32-bit
Linux 2.6.32 (ArcheOS 4)
4. PYTHON PHOTOGRAMMETRY TOOLBOX v. 0.1 in ArcheOS 4
CLOUDCOMPARE v. 2.4 in Windows MESHLAB v. 1.3.2 in Windows
SOFTWARE
5. Urna di Thania Vipinei: caccia al cinghiale calidonio
Alabastro (cassa) e travertino (coperchio) II sec. a.C. territorio
di Chiusi Collezione del Museo Archeologico di Perugia (Inventario
Bellucci 71) OGGETTO Analisi della forma: bassorilievo con figure
antropomorfe degradate. Difficolt logistiche: manufatto collocato
nel chiostro del museo, a ridosso di un muro, per cui non stato
possibile fotografare la parte posteriore. Luce ambientale
diffusa.
6. Iscrizione: ania vipinei tutnasa = Thania Vipinei, moglie di
Tutna OGGETTO Iconografia: Meleagro, figlio del re di Calidone,
uccide con uno spiedo il feroce cinghiale che Artemide ha scatenato
contro la citt. Alla caccia partecipa anche Atalanta, al centro,
armata di scure. A lei, della quale segretamente innamorato, egli
doner la preda, dando inizio alla catena di tragici eventi che lo
port alla morte.
7. Come realizzare un modello metrico in poco tempo e senza
poter spostare loggetto PROBLEMATICHE Soluzione: posizionamento di
un metro di legno pieghevole con i decimetri colorati in modo
alternato (bianco e giallo). Tramite il metro con due angoli
piegati a 90 stato possibile ricostruire un sistema di coordinate
cartesiane, assegnate come si vede in figura.
8. Sono stati eseguiti 3 gruppi di riprese fotografiche per un
totale di 68 foto RIPRESE FOTOGRAFICHE GRUPPO 1 21 foto da lontano
inquadramento completo delloggetto GRUPPO 3 22 foto molto
ravvicinate inquadramento particolare del bassorilievo GRUPPO 2 25
foto ravvicinate inquadramento parziale delloggetto
9. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX METODO - capire a che risoluzione massima
possibile processare le fotografie - capire qual il migliore set di
foto che produce la nuvola pi densa a parit di risoluzione -
verificare se il software ha maggiori prestazioni in ambiente Linux
o Windows - documentare i vari tentativi - produrre la nuvola di
punti che verr successivamente trasformata in mesh
10. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 1 BUNDLE in Linux FOTO: 25 (gruppo 2)
Risoluzione impostata: 3500 Tempo di elaborazione: 2 ore Nuvola di
punti ottenuta: 60.419 vertex OSSERVAZIONI: la risoluzione buona ma
una delle foto non stata processata. Processing photo '46.JPG':
Found 92546 features Processing photo '34.JPG': Found 116818
features Processing photo '37.JPG': Found 0 features Processing
photo '44.JPG': Found 115191 features Processing photo '42.JPG':
Found 114353 features Processing photo '26.JPG': Found 100298
features Processing photo '31.JPG': Found 112466 features
Processing photo '32.JPG': Found 101113 features Processing photo
'23.JPG': Found 93196 features Processing photo '43.JPG': Found
114073 features Processing photo '22.JPG': Found 104296 features
Processing photo '39.JPG': Found 115197 features Processing photo
'38.JPG': Found 112197 features Processing photo '30.JPG': Found
118267 features Processing photo '24.JPG': Found 80768 features
Processing photo '27.JPG': Found 113350 features Processing photo
'40.JPG': Found 113365 features Processing photo '28.JPG': Found
101924 features Processing photo '35.JPG': Found 114544 features
Processing photo '29.JPG': Found 117573 features Processing photo
'45.JPG': Found 116180 features Processing photo '36.JPG': Found
111208 features Processing photo '41.JPG': Found 119543 features
Processing photo '33.JPG': Found 118735 features Processing photo
'25.JPG': Found 107598 features
11. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 2 BUNDLE in Linux FOTO: 25 (gruppo 2)
Risoluzione impostata: 3000 Tempo di elaborazione: 1,4 ore Nuvola
di punti ottenuta: 61.288 vertex OSSERVAZIONI: abbassando la
risoluzione tutte le foto sono state processate, ma la nuvola
incompleta in basso di lato. Processing photo '46.JPG': Found 73590
features Processing photo '34.JPG': Found 88733 features Processing
photo '37.JPG': Found 89597 features Processing photo '44.JPG':
Found 89289 features Processing photo '42.JPG': Found 89812
features Processing photo '26.JPG': Found 80217 features Processing
photo '31.JPG': Found 89357 features Processing photo '32.JPG':
Found 81632 features Processing photo '23.JPG': Found 75529
features Processing photo '43.JPG': Found 86996 features Processing
photo '22.JPG': Found 81859 features Processing photo '39.JPG':
Found 89991 features Processing photo '38.JPG': Found 86456
features Processing photo '30.JPG': Found 89930 features Processing
photo '24.JPG': Found 64498 features Processing photo '27.JPG':
Found 89308 features Processing photo '40.JPG': Found 86819
features Processing photo '28.JPG': Found 82237 features Processing
photo '35.JPG': Found 88677 features Processing photo '29.JPG':
Found 88870 features Processing photo '45.JPG': Found 89471
features Processing photo '36.JPG': Found 86968 features Processing
photo '41.JPG': Found 90703 features Processing photo '33.JPG':
Found 94254 features Processing photo '25.JPG': Found 84671
features
12. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 3 BUNDLE in Linux FOTO: 25 (gruppo 2)
Risoluzione impostata: 3400 Tempo di elaborazione: 2 ore Nuvola di
punti ottenuta: 68.323 vertex OSSERVAZIONI: prendiamo 3400 come
risoluzione massima utilizzabile affinch vengano processate tutte
le foto. Processing photo '46.JPG': Found 87557 features Processing
photo '34.JPG': Found 110039 features Processing photo '37.JPG':
Found 112078 features Processing photo '44.JPG': Found 108664
features Processing photo '42.JPG': Found 108733 features
Processing photo '26.JPG': Found 95485 features Processing photo
'31.JPG': Found 106609 features Processing photo '32.JPG': Found
97348 features Processing photo '23.JPG': Found 88709 features
Processing photo '43.JPG': Found 107693 features Processing photo
'22.JPG': Found 98923 features Processing photo '39.JPG': Found
108943 features Processing photo '38.JPG': Found 105633 features
Processing photo '30.JPG': Found 110807 features Processing photo
'24.JPG': Found 76396 features Processing photo '27.JPG': Found
106923 features Processing photo '40.JPG': Found 106343 features
Processing photo '28.JPG': Found 97244 features Processing photo
'35.JPG': Found 108729 features Processing photo '29.JPG': Found
110467 features Processing photo '45.JPG': Found 110069 features
Processing photo '36.JPG': Found 105530 features Processing photo
'41.JPG': Found 113047 features Processing photo '33.JPG': Found
113099 features Processing photo '25.JPG': Found 102191
features
13. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 4 BUNDLE in Linux FOTO: 21 (gruppo 1)
Risoluzione impostata: 3400 Tempo di elaborazione: 1,45 ore Nuvola
di punti ottenuta: 66.788 vertex OSSERVAZIONI: si ottiene una
nuvola di punti meno definita rispetto a 25 foto ma la nuvola
completa. Processing photo '10.JPG': Found 93752 features
Processing photo '20.JPG': Found 67492 features Processing photo
'05.JPG': Found 96558 features Processing photo '19.JPG': Found
74257 features Processing photo '04.JPG': Found 95807 features
Processing photo '14.JPG': Found 92966 features Processing photo
'12.JPG': Found 92677 features Processing photo '17.JPG': Found
103442 features Processing photo '08.JPG': Found 98695 features
Processing photo '18.JPG': Found 100240 features Processing photo
'16.JPG': Found 93518 features Processing photo '11.JPG': Found
92304 features Processing photo '03.JPG': Found 93430 features
Processing photo '15.JPG': Found 91276 features Processing photo
'07.JPG': Found 92826 features Processing photo '21.JPG': Found
68765 features Processing photo '01.JPG': Found 84036 features
Processing photo '09.JPG': Found 96388 features Processing photo
'02.JPG': Found 95013 features Processing photo '06.JPG': Found
94535 features Processing photo '13.JPG': Found 80297 features
14. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 5 BUNDLE in Linux FOTO: 68 (gruppo
1+2+3) Risoluzione impostata: 3400 Tempo di elaborazione: tante ore
Nuvola di punti ottenuta: 271.129 vertex OSSERVAZIONI: il software
riesce a processare tutte le 68 foto insieme, producendo una nuvola
di punti molto definita.
15. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 6 BUNDLE in Windows FOTO: 68 (gruppo
1+2+3) Risoluzione impostata: 2690 Tempo di elaborazione: tante ore
Nuvola di punti ottenuta: 235.363 vertex OSSERVAZIONI: in Windows
si pu lavorare alla risoluzione massima di 2690 quindi la nuvola
viene meno definita.
16. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 7 PMVS in Linux Bundle: 68 foto in
Linux (fase 6) Nuvola di bundle: 271.129 vertex Cluster: 10 Nuvola
di PMVS: ... OSSERVAZIONI: dopo 4 giorni il computer non aveva
ancora prodotto il primo cluster e si deciso di interrompere.
17. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 8 BUNDLE in Linux FOTO: 24 (scelte da
gruppo 1 e 2) Risoluzione impostata: 3400 Tempo di elaborazione: 2
ore Nuvola di punti ottenuta: 82.248 vertex OSSERVAZIONI: si cerca
di ottenere il giusto equilibrio tra le foto da lontano e quelle da
vicino con poche foto. Processing photo '46.JPG': Found 87557
features Processing photo '34.JPG': Found 110039 features
Processing photo '10.JPG': Found 93752 features Processing photo
'26.JPG': Found 95485 features Processing photo '31.JPG': Found
106609 features Processing photo '05.JPG': Found 96558 features
Processing photo '04.JPG': Found 95807 features Processing photo
'14.JPG': Found 92966 features Processing photo '12.JPG': Found
92677 features Processing photo '17.JPG': Found 103442 features
Processing photo '08.JPG': Found 98695 features Processing photo
'18.JPG': Found 100240 features Processing photo '30.JPG': Found
110807 features Processing photo '16.JPG': Found 93518 features
Processing photo '11.JPG': Found 92304 features Processing photo
'03.JPG': Found 93430 features Processing photo '35.JPG': Found
108729 features Processing photo '15.JPG': Found 91276 features
Processing photo '07.JPG': Found 92826 features Processing photo
'01.JPG': Found 84036 features Processing photo '09.JPG':. Found
96388 features Processing photo '02.JPG': Found 95013 features
Processing photo '06.JPG': Found 94535 features Processing photo
'13.JPG': Found 80297 features
18. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 9 PMVS in Linux Bundle: 24 foto in
Linux (fase 8) Nuvola di bundle: 82.248 vertex Cluster: 8 Nuvola di
PMVS: 817.849 vertex OSSERVAZIONI: durante lelaborazione sono state
rimosse 7 foto, ma il risultato comunque molto buono.
19. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 10 BUNDLE in Linux FOTO: 46 (scelte da
gruppo 1 e 2) Risoluzione impostata: 3400 Tempo di elaborazione:
molte ore Nuvola di punti ottenuta: 150.537 vertex OSSERVAZIONI:
ultimo tentativo, se la fase successiva di PMVS va a buon fine, ci
si pu ritenere soddisfatti.
20. Obiettivo: riuscire a produrre una nuvola di punti pi
dettagliata possibile con lhardware a disposizione PYTHON
PHOTOGRAMMETRY TOOLBOX FASE 11 PMVS in Linux Bundle: 46 foto in
Linux (fase 10) Nuvola di bundle: 150.537 vertex Cluster: 8 Nuvola
di PMVS: 3.091.588 vertex OSSERVAZIONI: durante lelaborazione sono
state rimosse 13 foto, ma il risultato comunque molto buono.
21. Obiettivo: riuscire a dimensionare metricamente la nuvola
pulita per la successiva mesh CLOUDCOMPARE METODO - pulire
manualmente la nuvola di punti da tutte le parti estranee allurna -
dimensionare metricamente la nuvola in modo che sia misurabile -
creare una superficie dalla nuvola di punti
22. Obiettivo: riuscire a dimensionare metricamente la nuvola
pulita per la successiva mesh FASE 1 - pulizia della nuvola di
punti - dalla nuvola sono state eliminate tutte le parti di
contesto estranee alloggetto tramite il comando Segment - la nuvola
passata da 3.091.588 vertex a 2.721.744 vertex. CLOUDCOMPARE
23. Obiettivo: riuscire a dimensionare metricamente la nuvola
pulita per la successiva mesh FASE 2 - dimensionamento metrico -
con il comando Align two clouds sono stati selezionati i punti del
metro ligneo posizionato come asse cartesiano - ai punti
selezionati sono state assegnate le coordinate calcolate grazie ai
decimetri colorati del metro CLOUDCOMPARE
24. Obiettivo: riuscire a dimensionare metricamente la nuvola
pulita per la successiva mesh FASE 3 - mesh - con il pugin 3D
Poisson Mesh Reconstruction settando il valore di octree a 10 si
ottenuta una mesh con 1.903.212 facce - sono state eseguite le mesh
sia della nuvola nella posizione originale sia di quella
dimensionata per provare successivamente la texturizzazione sia
automatica che manuale CLOUDCOMPARE
25. Obiettivo: creare la mesh e la texture del modello MESHLAB
METODO - creare la mesh - applicare il colore alla mesh - creare la
texture del modello in modo manuale e automatico N.B. per eseguire
questultima parte del lavoro si fatto ricorso ad un nuovo strumento
hardware con prestazioni migliori rispetto a quello con cui si
lavorato fino ad ora. Le caratteristiche del notebook utilizzato
sono: Notebook Acer Intel Core i5-2450M @ 2.5 GHz with Turbo Boost
up to 3.1 GHz 4 GB RAM NVIDIA GeForce GT 630M (1GB dedicated RAM)
MS Windows 7 64-bit
26. Obiettivo: creare la mesh e la texture del modello FASE 1 -
mesh - la mesh stata prodotta con il comando Surface
Reconstruction: Poisson con i valori di Octree Depth e Solver
Divide pari a 10 (valori massimi accettabili dallhardware) - la
mesh presenta 1.427.202 facce, inferiori a quelle della mesh
eseguita con CloudCompare MESHLAB
27. Obiettivo: creare la mesh e la texture del modello FASE 2 -
colore MESHLAB Vertex attribute transfer Project active raster
color to current mesh
28. Obiettivo: creare la mesh e la texture del modello FASE 3 -
texture MESHLAB - Utilizzo del comando Parameterization + texturing
from registered raster con texture size pari a 1800 pixel