Ottenere un modello 3D da Google Earth con la fotogrammetria

Autore
Data
30 Maggio 2017
Restituzione della nuvola di punti densificata relativa all'area di Fidene

Google Earth è uno strumento tanto potente quanto semplice da usare, per questo risulta spesso molto utile anche in contesti professionali. Una delle funzionalità più impressionanti e la possibilità di navigare un modello 3D relativo ad ampie porzioni di territorio. Recentemente è stata presentata la versione web, che per alcuni aspetti è sovrapponibile a Google Maps, ma sebbene rifinita dal punto di vista grafico, manca di diverse funzioni disponibili nella versione desktop. Fortunatamente Google Earth pro per PC è ancora disponibile per il download gratuito.

Google Earth Pro consente di esportare immagini in alta risoluzione della mappa che stiamo visualizzando. Come possiamo fare se volessimo importare il 3D in un software di modellazione dedicato?

Come era facile aspettarsi e per quello che sono riuscito a verificare non esistono metodi legali per ottenere direttamente i file 3d nativi di Google Earth. Occorre pertanto trovare altre strade utilizzando dei metodi indiretti. In questo articolo descriverò come generare un modello tridimensionale sfruttando la fotogrammetria o più precisamente i metodi di “image-based modeling and rendering” (IBMR).

L’idea è piuttosto semplice: generare tramite Google Earth una sequenza di immagini statiche dell’area d’interesse riprese da diverse angolazioni e successivamente darle “in pasto” ad un software IBMR. Poi attraverso le elaborazioni del programma saranno generate delle mesh 3D da esportare in formato .obj pronte all’uso.

Sul mercato esistono numerosi strumenti, per questo studio ho testato la versione in prova gratuita di Pix4D. Ma esistono anche altre alternative tra cui segnalo: Autodesk ReMake e 3DF Zephyr.

Devo dire che la fotogrammetria digitale ha fatto enormi passi in avanti. Ricordo 15 anni fa i primi strumenti erano lenti, macchinosi e imprecisi. In particolare gli automatismi che si basavano sulla correlazione necessitavano spesso di importanti correttivi manuali. In questo studio invece il software è stato usato in maniera estremamente rozza; semplicemente sono state caricate le immagini, senza dati exif, senza geolocalizzazione e ad una risoluzione contenuta (1920×1080). Pertanto non c’è da attendersi di ottenere un modello in scala e georefernziato. Ma ciò che mi interessa verificare è il processo nel suo insieme e la velocità di esecuzione.

Ma veniamo al dettaglio dei passaggi:

 

1 – La creazione delle immagini

In maniera molto rudimentale, generiamo una sequenza di immagini con punti di ripresa differenti. In Google Earth pro utilizziamo lo strumento “Salva immagine” e successivamente con una operazione batch ed un’azione creata in Photoshop eliminiamo da tutte le immagini la scritta google che altrimenti potrebbe generare degli errori. Naturalmente maggiore sarà il numero di immagini, maggiore sarà l’accuratezza del modello. Per velocizzare questo passaggio sarebbe anche possibile creare degli automatismi che estrapolino dei frame da un video che riprenda l’area d’interesse. Altrimenti, un po’ di musica e un po’ di pazienza e si fanno le cose a mano. Ogni tanto va bene disattivare il cervello e fare lavori meccanici!


via GIPHY

 

2 – Il caricamento nel software IBMR

Una volta generate le immagini possiamo caricarle in un nuovo progetto in Pix4D e far partire l’elaborazione. I tempi di calcolo potranno variare sensibilmente in relazione al numero e alla dimensione delle immagini. Alla fine di questo processo ogni immagine sarà collocata nello spazio coerentemente con il punto di vista calcolato.

Camere e punti generati in Pix4D

A partire dalle immagini, è elaborata la nuvola di punti. Ad ogni punto è associata una scheda con l’indicazione delle immagini correlate, le coordinate e il grado di precisione. In questa fase sarebbe possible anche inserire manualmente degli ulteriori punti di controllo. Di fatto un’ipotesi da escludere categoricamente in questo caso, viste le finalità e le dimensioni del progetto. Ricordo che ci serve un metodo rapido e sufficientemente preciso per ottenere un modello digitale di ampie porzioni di territorio.

La nuvola dei punti, tramite un ulteriore calcolo del programma, viene “densificata” ed è navigabile e pronta per l’ultimo passaggio la generazione della mesh 3D.

Il modello 3d navigabile all'interno di Pix4D

3 – La creazione della mesh 3D

Finalmente, con pochissimi passaggi, ma con un tempo di elaborazione variabile, è possibile generare la mesh 3D. Il software si occupa anche di creare una texture pronta all’uso, molto utile per aumentare l’effetto di realismo, ma anche per nascondere le imprecisioni del modello. Segnalo in particolare che con l’utilizzo di un numero insufficiente di punti di ripresa, il modello generato sarà decisamente approssimativo. In questi casi applicare la texture è praticamente indispensabile.

La mesh 3D visualizzavbile in Pix4D

4 – L’importazione in Blender

La mesh può essere esportata in formato .obj e facilmente importata in Blender o in qualunque software di modelazione tridimensionale. Come era lecito attendersi, la mesh non sarà certo ottimizzata. Ma sarà un oggetto unico composto da centinaia di migliaia di poligoni. Quindi certamente molto poco lavorabile e pronta all’uso così com’è. Un ulteriore vincolo, se si sceglie di utilizzare la texture generata automaticamente, è quello di utilizzare delle luci che siano coerenti con quelle presenti nelle riprese originali.

Dettaglio sui poligoni del modello 3D di Fidene importato in Blender

Di seguito, come ultime immagini utili per un confronto, riporto una ripresa dell’area da Google Earth e una renderizzazione del modello realizzata in Blender. Nonostante la pesantezza del modello, i tempi di calcolo sono stati piuttosto contenuti. Si può notare la carenza di dettaglio nei particolari più minuti ma nel complesso, considerati i tempi di lavorazione ridotti, il risultato finale è decisamente accettabile.

Veduta di Fidene ripresa da Google Earth

Veduta di Fidene renderizzata in Blender

 

 

Come utilizzare i programmi IBMR e la fotogrammetria per importare in Blender un modello 3D ripreso da Google Earth e Google Maps.

In: Laboratorio

Tags: , , ,

5 commenti

5 risposte a “Ottenere un modello 3D da Google Earth con la fotogrammetria”

  1. albert ha detto:

    esiste video maker..che genera le immagini da google earth facendo un video.. a partire dal tour panoramico..il problema è che i lprogramma autodesk : remake richiede.. 65 giga di ram.. e quindi la spesa per ottenere dei risultati sale a 700 euro, cosa che si rivolve con la nuova versione di sketchup
    bisogna vedere se si può creare un obj con Pix4D, da importare in rhinos e poi farlo arrivare a 3d max 17 il migliore programma per arrivare a dei render perfetti..

  2. albert ha detto:

    pardon è movie maker di microsoft

  3. Matteo ha detto:

    Ciao albert, il risultato dell’esercizio che ho descritto nell’articolo è proprio un modello 3d generato in Pix4D ed esportato in formato .obj.
    Obj è un formato di interscambio che può essere letto tranquillamente da 3ds Max, senza dover passare per altri software quali Rhinoceros.
    Hai ragione, estrapolando le immagini direttamente da un video è possibile ottimizzare i tempi del passaggio descritto al paragrafo 1. In questo caso ho eseguito tutto “a mano” perché ho voluto fare diversi test per verificare l’affinamento del risultato finale, al variare del numero e della posizione dei punti di ripresa.

    Ti ringrazio per il contributo,
    Matteo

  4. Sofi ha detto:

    Credi che sia possibile caricare immagini 3d di un virtual space su google street view or earth?

  5. Matteo ha detto:

    Ciao Sofi, sì in Google Earth pro puoi inserire un modello 3d, creato ad esempio in Blender o SketchUp, ed esportarlo nel formato di interscambio
    COLLADA (.dae).
    Successivamente, sempre in Google Earth pro, potrai anche salvare il modello in formato .kmz.
    Google Earth pro è un software che puoi scaricare e installare gratuitamente.

    Matteo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.