Dettagli e programmi
Si ma come? Come è possibile arrivare ad ottenere un modello tridimensionale di un dato oggetto? Pur non avendo assolutamente l’ambizione di ospitare un corso in questa rubrica, credo che descrivere a grandi linee come sia possibile passare da una serie di fotografie al modello possa aiutare chi è interessato a decidere se valga la pena avvicinarsi ed eventualmente approfondire la materia.
Oltre a questo la spiegazione tecnica aiuta a comprendere come non ci sia niente di magico in tutto questo, solo l’utilizzo di una certa tecnologia che ha, come tutte le tecnologie i suoi limiti.
Si, ma come? Una risposta che si può dare a questa domanda è “con un programma apposito”. Quando mi chiedono se è difficile arrivare a produrre la rappresentazione tridimensionale di un oggetto, anche un po’ per sdrammatizzare, rispondo: “E’ facilissimo, fa tutto il PC”, il che è vero , ma solo, in parte.
Il software da utilizzare può essere uno qualunque tra quelli disponibili sul mercato : “Meshroom” di Alice Vision che ha il pregio di essere gratuito, “Metashape“di Agisoft, ,”Reality Capture” oppure “3DF Zephyr” di 3DFlow, che se non erro è sviluppato in Italia.
Nota. si trovano adesso anche software molto più leggeri in grado di girare su uno smartphone, sia esso Android o IOS. SI tratta di programmini di facile utilizzo in grado di produrre dei modelli da un po’ di foto scattate direttamente con la camera del cellulare. Il fatto è con questi non offrono alcun controllo sulla catena di elaborazione, mentre i programmi elencati sopra si. E questo fattore, quando si catturano immagini in ambienti difficili, come sott’acqua, fa molta differenza sul risultato finale.
Si, ma come? Giusto, mi rendo conto che tendo a divagare. Come scrivevo sopra, fa tutto il software. Si certo, ma come ?
Dalle fotografie al modello 3D
La faccenda funziona più o meno così. L’operatore sub si porta a casa qualche migliaio di foto del soggetto d’interesse , la quantità dipende dall’apertura della macchina fotografica e dalla dimensioni del “soggetto”. Questo pacchetto di immagini, dato in “pasto” al programma di fotogrammetria, è il punto di partenza dell’elaborazione.
Da qua, il programma, con la pazienza non umana delle intelligenze artificiali, si guarda ad una ad una le fotografie per individuare tutti i particolari, le caratteristiche, presenti in ogni immagine.
Fatto questo, il software va a cercare in tutte le immagini le medesime caratteristiche. Se le trova, assume che 2 o più immagini stiano riprendendo una parte della medesima scena. In questo modo tutte le immagini in cui è stato possibile riconoscere delle caratteristiche simili sono ora associate tra loro, in coppie di corrispondenza.
Qua serve una premessa, le tecniche di fotogrammetria moderne, si basano su un algoritmo di visione artificiale che è lo “structure from motion” ( SfM ). Lo SfM è un metodo in grado di stimare una scena tridimensionale a partire da un insieme di immagini. Questo algoritmo è la colonna portante di tutti i sistemi di ricostruzione fotogrammetrica. . Tutti i programmi elencati in precedenza utilizzano questo metodo o sue versioni un po’ modificate.
Applicando questo procedimento, lo SfM, il programma analizza tutte le foto “associate” ricostruendo la posizione che aveva la macchina fotografica nel momento in cui è stata scattata data immagine. Come fa a ricostruire la posizione della macchina fotografica? Lo fa “guardando” la posizione relative delle caratteristiche individuate in precedenza e calcolando a ritroso la relazione geometrica che due foto devono avere per poter mostrare il medesimo insieme di caratteristiche coerente con le inquadrature di ogni immagine. Il processo è ripetuto per tutte le coppie trovate di immagini che possono essere , per un pacchetto di 1000 foto, migliaia o decine di migliaia.
Questo passaggio è molto complicato ed imperfetto, perché il software deve allo stesso tempo :
- stimare la posizione delle foto, ma anche ; costruire un modello della geometria della lente che sia coerente con la ricostruzione geometrica trovata.
Non esattamente una cosa semplicissima, anzi una cosa complicatissima. Ma i computer, grazie al cielo, sono molto bravi in questo.
Se le immagini sono abbastanza chiare, ben definite, catturate tutte con la medesima macchina fotografica, con il medesimo obiettivo e i medesimi settaggi, allora si, la ricostruzione sarà possibile.
Il software procede ad analizzare tutte le relazioni tra le foto “associate” in precedenza e ricostruisce così la posizione geometrica che aveva la macchina fotografica nel momento in cui è stata scattata ciascuna foto.
Ma non è finita qua, anzi questo è solo l’inizio.
Tramite la ricostruzione della posizione relativa delle foto è possibile posizionare nello spazio le “caratteristiche” individuate in precedenza Questa collezione di “punti” sparsi, viene chiamata in gergo, la “nuvola sparsa” (sparse cloud) e assomiglia vaghissimamente ad uno schizzo puntinato del modello originario, dove tutte le linee e le superfici sono appena abbozzate.
Ci siamo quasi. Il programma a questo punto analizza la “nuvola densa” per ingabbiarla in una serie di poligoni. Questa fase permette di ricostruire “la buccia” della nuvola di pixel, la sua superficie, la maglia di poligoni che ricopre la nuvola, la “mesh” in gergo specifico.
Arrivati a produrre la mesh, il nostro modello è quasi pronto. Abbiamo eliminato tutti i punti e quello che abbiamo è una rete di poligoni nello spazio. Qua il numero di poligoni può essere alto a piacere, dipende da come regoliamo il programma. Manca una cosa però, manca il colore. Tutte le superfici hanno un colore e anche quelle dei relitti. Lo step finale di elaborazione è proprio la costruzione della colorazione superficiale: la “tessitura” (texture). Il programma la calcola proiettando all’indietro sui poligoni il colore dei pixel della nuvola densa, un altro giro di elaborazione “et voilà”.
Arrivati qua, è fatta. Siamo passati da un pacchetto di fotografie ad un modello vettoriale con una tessitura del nostro amato soggetto. Un modello che a questo punto può essere studiato, riprodotto, analizzato e anche stampato in 3D.
Se avete avuto la pazienza di leggere fino a qua, posso solo ringraziarvi e assicurarvi che la parte più noiosa di questa rubrica termina qua.
Gli articoli successivi tratteranno le esperienze, il percorso che ho seguito per addentrarmi in questa particolare tematica. Vorrei anche raccontare che ho scoperto funzionare e cosa ho verificato non andare. Per finire, i mie tentativi, a volte riusciti, per fotogrammare un po’ di relitti dei nostri laghi e dei nostri mari.
A presto