Dalle fotografie alla mesh texturizzata, sperimentazioni

29
Dalle fotografie alla mesh texturizzata, sperimentazioni Sofia Menconero [email protected]

description

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

Transcript of Dalle fotografie alla mesh texturizzata, sperimentazioni

  • 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
  • 29. RISULTATO