fbpx

La fotogrammetria automatica: come funziona e a cosa serve

La fotogrammetria automatica: come funziona e a cosa serve

2020-08-27T12:18:10+02:00Di |Fotogrammetria|

Ultimo aggiornamento il 27 Agosto 2020 by Giulio Bigliardi

Cos’è la fotogrammetria automatica?

La fotogrammetria digitale automatica è una metodologia che permette di elaborare un modello tridimensionale partendo da immagini bidimensionali.

Si tratta di un insieme di tecniche e tecnologie che rientrano nel campo di ricerca della computer vision e che derivano, come evoluzione, dalla fotogrammetria tradizionale, la scienza che si occupa di estrarre informazioni metriche dalle fotografie. Mentre nella fotogrammetria tradizionale l’intervento dell’operatore per elaborare le immagini è considerevole, nella fotogrammetria automatica la maggior parte delle fasi sono state automatizzate.

Il termine fotogrammetria automatica è stato sdoganato di recente nella letteratura specialistica: fino a poco tempo fa si cercava di mantenere ben separata la fotogrammetria tradizionale dalle tecniche di elaborazione automatica, per le quali si parlava di fotomodellazione. Nella letteratura scientifica in lingua inglese è comunemente diffuso il termine Image-Based Modeling and Rendering, al quale si è affiancato il termine automatic (talvolta automated) photogrammetry. A volte, si parla anche di Structure-from-Motion, sebbene questa dicitura sia imprecisa, in quanto riguarda solamente la prima parte del processo di elaborazione delle immagini (image matching e sparse reconstruction).

fotogrammetria digitale
corso di fotogrammetria on-line

Impara come realizzare un rilievo fotogrammetrico utilizzando fotografie e video digitali.

  • 10 ore di video lezioni registrate
  • 1 ora di seminari in live-streaming
  • 2 ore di question-time in live-streaming
  • 4 dispense didattiche
  • 7 dataset di fotografie e video per le esercitazioni
  • una licenza del software 3DF Zephyr (versione completa) valida 30 giorni
  • 1 ora di consulenza personalizzata con il docente (opzione Follow-up).

Cos’è un modello 3D?

Realizzare un modello tridimensionale di un oggetto significa crearne una corrispondente copia digitale, metricamente corretta e a colori.

La caratteristica fondamentale che il modello 3D digitale deve possedere è di essere metricamente corretto: ciò significa che il modello deve essere nella giusta scala e deve essere possibile effettuare misure precise su di esso. Una seconda importante caratteristica, seppur non fondamentale, è che il colore deve essere realistico: tale condizione non è sempre necessaria e dipende dallo scopo per il quale viene realizzato il modello 3D. Nel caso di un modello che deve essere fruito sul web o su applicazioni per tablet e smartphone, è importante che il colore sia realistico; non è invece fondamentale nel caso di un modello realizzato in funzione di una riproduzione in stampa 3D con una tecnologia che non permette di riprodurre il colore (ad esempio SLA, DLP o FFF).

fotogrammetria automatica
fotogrammetria digitale automatica

Dalle fotografie 2D al modello 3D

I passaggi attraverso cui i software di fotogrammetria automatica elaborano immagini bidimensionali per estrarre modelli tridimensionali sono sempre gli stessi. Questo significa che una volta che si è ben compreso cosa c’è alla base dell’elaborazione, si è in grado di utilizzare qualsiasi software (in quest’altro post parlo in modo approfondito del software 3DF Zephyr). Inoltre, è importante conoscere quali sono i passaggi dell’elaborazione per sapere come scattare correttamente le fotografie e per riuscire a intervenire qualora si presentino delle problematiche durante la creazione del modello 3D.

Ad esempio, se il nostro modello 3D ha dei buchi o è incompleto, cosa possiamo fare? Quale può essere il problema? Se il software non elabora tutte le nostre fotografie, come possiamo intervenire? Se non sappiamo come ragiona il software non saremo in grado di individuare il problema e di capire come risolverlo.

Il dato di partenza è sempre un insieme di fotografie, dunque un set di immagini digitali bidimensionali che vengono elaborate dal software per estrarre dati tridimensionali.

L’elaborazione delle immagini avviene attraverso quattro fasi distinte e successive:

  1. Structure-from-motion (SfM) e Multiview Stereo Reconstruction (MVS): questa è la fase fondamentale, il momento più delicato e lungo da un punto di vista di tempo di elaborazione software. E’ in questa fase che viene ricostruita la geometria di presa delle fotografie e elaborata la nuvola di punti densa, comunemente detta dense point cloud, ossia il dato grezzo su cui si basano le elaborazioni successive;
  2. Mesh reconstruction: a partire da una nuvola di punti densa viene ricostruita una superficie continua composta da poligoni i cui vertici sono i punti della nuvola;
  3. il colore viene applicato alla Mesh, che di base non possiede l’attributo del colore, secondo due modalità alternative: color-per-vertex, cioè il colore dei punti della dense point cloud viene trasferito ai poligoni della mesh; texture mapping, cioè le immagini utilizzate nel rilievo vengono applicate sui poligoni della mesh;
  4. il modello 3D deve essere messo in scala utilizzando almeno una distanza di riferimento, questo poiché il software non è in grado di dedurre le dimensioni degli oggetti che compaiono nelle fotografie.

FASE 1: Structure-from-motion (SfM) e Multiview Stereo Reconstruction (MVS)

Per poter ricostruire la tridimensionalità di una scena è necessario ricostruire la posizione di scatto delle singole fotografie, la cosiddetta geometria di presa, in modo tale da poter in seguito dedurre per triangolazione la posizione degli oggetti presenti in esse. Mentre la fotogrammetria tradizionale utilizza i dati GPS delle immagini o punti di controllo di coordinate note, la fotogrammetria automatica si basa sull’individuazione automatica di punti chiave ben riconoscibili in tre o più immagini, che serviranno per creare corrispondenze tra le immagini e collegarle tra loro (image matching).

fotogrammetria software

I quadratini blu indicano la posizione di ogni singola immagine rispetto al modello 3D.

Partendo dai punti chiave, attraverso un procedimento di triangolazione fotogrammetrica a stelle proiettive (meglio noto come bundle adjustement), in maniera automatica viene calibrata la fotocamera (orientamento interno: calcolo della lunghezza focale e del punto principale) e viene ricostruita la posizione di scatto delle singole fotografie (orientamento esterno: coordinate dei centri di presa e rotazioni del fotogramma), e per ogni punto chiave vengono ricavate le coordinate reali x,y,z che vengono materializzate tridimensionalmente in una sparse points cloud, cioè in una nuvola di punti a bassa densità (sparse reconstruction).

Nel passaggio successivo la nuvola di punti a bassa densità viene infittita aumentando il numero di punti (dense reconstruction): i dati relativi alla posizione x,y,z dei punti chiave vengono utilizzati come punti di partenza per estendere l’analisi delle immagini alle zone prossimali ai punti chiave e riconoscere ed estrarre la posizione x,y,z degli elementi circostanti. Il risultato finale sarà una dense points cloud, cioè una nuvola di punti densa.

nuvola di punti sparsa

Nuvola di punti sparsa (sparse point cloud).

nuvola di punti densa

Nuvola di punti densa (dense point cloud).

Il dato grezzo ottenuto da un qualsiasi sistema di rilievo 3D è sempre una nuvola di punti: ciò significa che la superficie che stiamo rilevando è descritta da un insieme di punti tridimensionali. Nelle fasi successive di elaborazione questo dato grezzo viene utilizzato per realizzare una superficie poligonale continua, detta mesh, quindi un modello 3D solido. Se apriamo una nuvola di punti con un editor di testo vedremo un codice numerico: a ogni riga corrisponde un punto e le prime tre colonne sono le coordinate tridimensionali x, y e z di quel punto; le successive tre colonne riguardano le informazioni del colore: la prima colonna corrisponde all’intensità di colore nel rosso, la seconda nel verde, la terza nel blu; si tratta della codifica di colore RGB, la codifica standard utilizzata in ambito digitale. Otterremo quindi un file in cui a ogni punto è associata una posizione ben precisa nello spazio e un colore.

coordinate della nuvola di punti

Visualizzazione di una nuvola di punti densa in un editor di testo.

FASE 2: Mesh reconstruction

In questa fase si passa da un insieme di punti a una superficie continua, che compone il modello 3D vero e proprio. Partendo dai punti della dense point cloud (ma sarebbe in realtà possibile anche partendo dalla sparse point cloud), viene generata una mesh composta un insieme di poligoni triangolari, i cui vertici corrispondono ai punti della nuvola di punti. La mesh è quindi un insieme di poligoni definiti ciascuno da tre vertici descritti da coordinate tridimensionali x,y,z.

mesh ottenuta da fotogrammetria

La mesh.

mesh poligonale

Dettaglio dei poligoni della mesh.

FASE 3: Attribuzione del colore

La mesh in origine non ha colore, questo deve quindi essere assegnato ai poligoni. Il colore può essere attribuito ai poligoni che compongono la mesh in due modi differenti: tramite il color-per-vertex o il texture mapping.

Poiché i vertici di ciascun poligono corrispondono ai punti della nuvola di punti, il colore di questi ultimi può essere trasferito ai poligoni corrispondenti (ovviamente ogni poligono avrà un colore mediato tra quello dei tre vertici). Questo metodo è comunemente indicato come color-per-vertex. La resa complessiva del colore della superficie è strettamente legata alla risoluzione del modello: maggiore è la sua risoluzione (alto numero di poligoni di piccole dimensioni), maggiore sarà la qualità “visiva” del colore della superficie; al contrario, se la risoluzione del modello è bassa (basso numero di poligoni di grandi dimensioni) la resa del colore sarà molto approssimata, con un effetto visivo sfumato o sfocato.

Il secondo metodo prevede l’utilizzo delle immagini di partenza. Poiché queste sono già orientate rispetto al modello (fase 1 e ricostruzione della geometria di presa), esse possono essere proiettate sul modello e applicate ai poligoni della mesh. Le immagini vengono così riunite in una nuova immagine quadrata detta texture (una sorta di puzzle di tutte le immagini) che va a ricoprire, come un lenzuolo, la mesh. Il vantaggio di questo metodo è che la qualità visiva del colore è pari alla qualità delle fotografie, e che è slegata dalla risoluzione del modello, in quanto la texture copre letteralmente la mesh e la qualità visiva sarà sempre la stessa, indipendentemente dalla risoluzione del modello.

Mesh e texture

Dettaglio della mesh con la texture.

mesh e color per vertex

Dettaglio della mesh con il color per vertex.

FASE 4: scalatura del modello

Al termine delle precedenti fasi di elaborazione, il modello è geometricamente corretto ma non è nella giusta scala, questo perché il software non ha modo di calcolare le dimensioni degli elementi presenti nelle immagini. Il modello 3D deve quindi essere portato alle dimensioni reali se vogliamo poter fare su di esso misure di precisione o trarne prodotti come piante e prospetti.

Mettere in scala un modello è piuttosto semplice e può essere fatto conoscendo almeno una distanza di riferimento all’interno della scena 3D ricostruita. Indicando infatti al software la misura reale di un elemento che compare nel modello, esso è in grado di riportare tutti gli elementi ricostruiti alla giusta scala. Ciò può essere fatto in vari modi: ad esempio misurando la distanza tra due elementi del modello 3D (ad esempio la distanza tra due spigoli), oppure inserendo nella scena da fotografare (quindi prima di fare le fotografie) un elemento di dimensioni note, come un metro o un righello, oppure, cosa più comune, applicando a fianco dell’oggetto che dobbiamo rilevare dei target, dei quali ci basterà misurare la distanza tra uno e l’altro.

mettere in scala in fotogrammetria

La messa in scala del modello usando quattro misure di riferimento.

Questa è la teoria, se volete una guida pratica di come si elabora un dataset di foto con un programma di rilievo fotogrammetrico, potete leggere questo tutorial: “Come ottenere un modello 3D da fotografie con Zephyr FREE“.

Se siete interessati a imparare questa tecnica di rilievo 3D, potete iscrivervi al mio corso on-line: “Corso on-line di fotogrammetria digitale automatica“.

Condividi questa pagina con i tuoi amici!

Scritto da:

Laureato in Conservazione dei Beni Culturali – Ind. Archeologico nel 2003 (Univ. di Parma), ho conseguito un Master di II Livello in Geotecnologie per l’Archeologia nel 2006 (Univ. di Siena) e un Dottorato di Ricerca in Scienze della Terra nel 2010 (Univ. di Siena). Dopo aver lavorato quasi 10 anni su scavi archeologici in Italia e all’estero, dal 2012 mi occupo di tecnologie digitali applicate al settore dei Beni Culturali. Ho fondato 3D ArcheoLab, un laboratorio con sede a Parma specializzato nella stampa 3D per l’arte, l’archeologia, l’architettura e il restauro. Oltre a 3D ArcheoLab, ho fondato e gestisco 3D Virtual Museum, un portale web che ospita modelli 3D di opere provenienti dai Musei italiani.
Torna in cima