Creare un modello 3D semplicemente scattando molte foto di un oggetto reale? Sì! La fotogrammetria è tornata – ed è più facile da usare, dà risultati migliori ed è ancora completamente gratuita!

Avete letto il nostro primo articolo sulla fotogrammetria, giusto? Un rapido riassunto – utilizzando molte immagini scattate da tutte le direzioni possibili, il software di fotogrammetria cerca di trovare le stesse caratteristiche presenti su più immagini. Si finisce con una cosiddetta nuvola di punti, un mucchio di punti 3D che assomigliano all’oggetto. Per ottenere una mesh stampabile dobbiamo triangolare i dati. Questo può essere complicato perché dobbiamo scartare i punti che appartengono allo sfondo e ad altri oggetti della scena. Ripuliamo un po’ il modello, rattoppiamo tutti i buchi, lo tagliamo e siamo pronti per la stampa!

Beh, tutto questo sembra bello e semplice, ma in realtà il nostro tutorial originale era abbastanza complesso. Fortunatamente per noi, le cose sono cambiate ed è salito sul ring della fotogrammetria un nuovo giocatore: vi presento Meshroom!

Meshroom/AliceVision

Meshroom è un software di fotogrammetria gratuito e open-source con una bellissima interfaccia utente. È costruito su un framework sottostante chiamato AliceVision, che è il risultato della cooperazione tra diverse università e laboratori (Czech Technical University, IMAGINE, INPT, Simula Research Laboratory, e Quine) e Mikros Image, una società francese di post-produzione.

Meshroom UI

L’interazione di base è quanto di più semplice si possa immaginare. Trascinare e rilasciare le immagini nella finestra di Meshroom, premere START e attendere il modello finale. Tuttavia, con Meshroom potete anche effettuare Ricostruzione aumentata. Ciò significa che potete aggiungere altre immagini ad una soluzione semi-finita nel caso in cui notiate (nell’anteprima) che alcune aree potrebbero usare più dettagli.

E ancora meglio, con Meshroom si può fare laRicostruzione live! In questa modalità, si scattano ripetutamente gruppi di immagini, le si carica in una cartella e vengono elaborate automaticamente. Viene visualizzata un’anteprima e si può decidere quale parte del modello necessita di maggiori dettagli. Poi, si scattano altre foto e l’intero processo si ripete fino a quando non si è catturato il modello da tutte le angolazioni.

È possibile scaricare l’ultima versione di Meshroom da qui. E’ disponibile sia per Windows che per OSX/Linux (ma per OSX/Linux bisogna compilarlo ). Controllare il wiki o la documentazione google doc per le istruzioni di installazione. Avete bisogno di una GPU abilitata CUDA, quindi solo schede NVIDIA 🙁

Ma prima di iniziare a sperimentare con Meshroom, ripercorriamo alcuni passi importanti che dovreste seguire quando scattate fotografie per la fotogrammetria.

Come scattare foto per la fotogrammetria

Fotocamera & impostazioni

La fotocamera di uno smartphone funziona benissimo, ma se avete una DSLR, è ancora meglio. Se utilizzerete una DSLR, spostate il diaframma almeno a 5-6 in modo che l’intero modello che state cercando di riprendere sia a fuoco.

Valutate la possibilità di scattare in RAW se la vostra fotocamera lo supporta. I JPEG di solito vanno benissimo, ma il formato file RAW offre alcune opzioni migliori per modificare le impostazioni dell’immagine, come la luminosità. Se state sviluppando immagini RAW o modificando JPG, assicuratevi di non applicare effetti di correzione dell’obiettivo o filtri simili.

Scattare le foto

Dovrete catturare almeno 30 immagini. Durante i nostri test, abbiamo spesso scattato 50, 100 o anche più immagini per catturare ogni dettaglio. Non ci vuole così tanto tempo come ci si aspetterebbe. Tenete presente che alcune immagini potrebbero venire scartate se il programma non trova abbastanza somiglianze con altre immagini o se sono sfocate.

  1. Muoversi in cerchio intorno all’oggetto in questione. Non spostare l’oggetto o l’ambiente circostante tra le immagini.
  2. Sovrapporre! Dovete fare in modo che ogni parte del modello sia catturata da almeno 2 foto. L’ideale sarebbe avere circa il 60-80% di sovrapposizioni nelle foto successive.
  3. Evitare le ombre dure, utilizzare un’illuminazione diffusa o scattare le foto all’esterno in una giornata semi nuvolosa.
  4. L’oggetto dovrebbe occupare una porzione significativa di ogni immagine.
  5. Evitare oggetti molto lucidi o trasparenti.

Statua di Anontin Dvorak – link STL

È possibile utilizzare lo zoom della fotocamera o anche mischiare le immagini da fotocamere totalmente diverse, Meshroom è davvero fantastico a tale proposito. Tuttavia, non cambiate inutilmente lo zoom dopo ogni immagine solo perché potete. È bene avere molte immagini scattate con la stessa macchina fotografica e lo stesso zoom (lunghezza focale), poiché questo crea i limiti necessari per il processo di calibrazione interna della macchina fotografica – che è proprio quello che ci interessa.

Si può fare un video in alternativa? Sì… ma non farlo. Anche se, tecnicamente, è possibile utilizzare il video visualizzato in singole immagini come input per Meshroom, la qualità è molto più bassa rispetto ad un’immagine fissa standard. Mancheranno i metadati della videocamera (dimensioni del sensore, obiettivo) e si importeranno centinaia di immagini. Il che significa che ci vorrà un’eternità per completare l’elaborazione.

Che cosa succederebbe se si scattassero le foto davanti a uno sfondo perfettamente bianco e si ruotasse il modello tra le immagini? Questo funziona… più o meno. Il risultato sarà peggiore. Avremo solo punti sull’oggetto che rappresentano una piccola sotto-parte dell’immagine, quindi i parametri della fotocamera sono meno vincolati, il che porta a risultati meno precisi.

I bersagli ideali per la fotogrammetria sono oggetti ruvidi o grezzi (ad es. statue). Se è possibile, si possono coprire gli oggetti lucidi o trasparenti con della polvere (farina / gesso spray) in modo da evitare i riflessi. Oppure coprire la superficie lucida con un nastro adesivo per pittori.

Ricostruzione standard

Molto probabilmente utilizzerete la ricostruzione standard per l’elaborazione di foto precedentemente scattate all’esterno e non potrete semplicemente scattarne altre. Supponiamo che abbiate già scattato tutte le foto necessarie, che siate arrivati a casa e che ora vogliate ricostruire il modello 3D. Il processo di lavorazione è davvero semplice:

  1. Copiare tutte le immagini in una cartella sul disco rigido
  2. Trascinare la cartella (o le singole immagini) nella finestra Meshroom
  3. Salvare il progetto utilizzando File – Save in una destinazione di vostro gradimento (altrimenti la ricostruzione sarà memorizzata in una cartella temporanea)
  4. Hit Avviare o clic destro il nodo (SFM) Structure from motion e premere Compute
    • È meglio elaborare la SFM perché così vedrete l’anteprima in pochi minuti
  5. Prendete un caffè e aspettate – questo richiederà un po’ di tempo 🙂
    • I nodi in basso diventeranno verdi uno ad uno mentre completano
    • Si può premere Stop in qualsiasi momento e riprendere la ricostruzione in un secondo momento

Non appena il nodo Structure from motion è completo, vi verrà presentata un’anteprima (fare doppio clic sul nodo per caricare l’anteprima se non viene caricata automaticamente). Tutte le immagini utilizzate con successo nella ricostruzione avranno una spunta verde di fianco.

Le foto scartate sono contrassegnate con un segno rosso meno

Se si nota che un numero significativo di immagini è stato scartato e l’anteprima ha solo poche fotocamere, c’è poco o niente da fare per continuare la ricostruzione. Dovrete scattare foto migliori, aumentare la ricostruzione con altre immagini (spiegato nel prossimo capitolo), oppure giocare con le impostazioni.

Una volta terminata la ricostruzione completa è possibile fare doppio clic sul nodo Texturing per visualizzare in anteprima la mesh finale.

È possibile fare clic con il tasto destro del mouse su uno qualsiasi dei nodi completati e selezionare Aprire la cartella. Aprire la cartella Texturing o MeshFiltering per trovare il file di output in un comune formato Wavefront .obj.

La vera Sfinge e una stampa finita, potete scaricare il modello qui

Anche se il file di output può essere importato direttamente in Slic3r PE, molto probabilmente dovrete fare un po’ di pulizia di base del modello prima di stamparlo.

Siete alla ricerca di foto di esempio, in modo da poter provare la fotogrammetria senza troppa fatica? I creatori di 3DF Zephyr, un altro grande software di fotogrammetria, hanno delle foto di esempio sulla loro pagina web, controllale qui.

Ricostruzione aumentata

Diciamo che state scansionando qualcosa a casa – un simpatico dinosauro d’argilla creato da vostro figlio, la vostra action figure preferita o la vostra chitarra. Avete scattato circa 60 foto e la ricostruzione sta andando bene. Ad eccezione di un’area, che non è stata fotografata bene, alcune foto sono state scartate e quella parte del modello ora manca di molti dettagli.

Con Meshroom, potete semplicemente scattare altre foto e aggiungerle alla ricostruzione esistente! Non possiamo sottolineare abbastanza quanto sia utile questa funzione. Ci ha fatto risparmiare una grande quantità di tempo durante i nostri test.

È essenziale che non abbiate spostato l’oggetto tra le varie sequenze di foto. Se lo avete spostato, non potete più aumentare la ricostruzione.

Quando si ha bisogno di scattare foto per riempire un’area scarsamente fotografata, si consiglia di scattare da 5 a 10 foto. E si può provare a riempire più aree contemporaneamente. Le nuove immagini vengono abbinate al set di foto originale. Ciò significa che l’aggiunta di nuove immagini può anche far sì che le immagini scartate in precedenza vengano abbinate con successo alla nuova serie.

Ogni volta che si aggiunge una serie di immagini ad una ricostruzione esistente, nell’editor di grafici apparirà un nuovo ramo. Basta calcolare tutto fino al nodo StructureFromMotion (cliccare con il tasto destro del mouse e selezionare Compute), che di solito è abbastanza veloce. Non appena diventa verde, potete fare doppio clic sul nodo per aggiornare l’anteprima nella finestra del visualizzatore 3D..

Quando pensate di avere abbastanza immagini per la ricostruzione finale, cliccate con il tasto destro del mouse sul nodo in basso a destra (Texturing) e premere su Compute. Questo può richiedere molto tempo, quindi è davvero utile eseguire la ricostruzione completa solo sul ramo finale con tutte le immagini incluse.

Una action figure ricreata con ricostruzione aumentata

 

Ricostruzione Live

Il modo più divertente di lavorare con la fotogrammetria! Si imposta una cartella, che sarà monitorata da Meshroom. Ogni volta che si copiano immagini in questa cartella, queste saranno automaticamente elaborate e aggiunte alla ricostruzione. Continuate a scattare altre foto progressivamente e osservate come il modello migliora. Alla fine, potete finalmente lasciare che Meshroom calcoli il modello completo.

La prima serie di immagini dovrebbe includere almeno 10-20 foto e dovrebbe concentrarsi sulla forma generale dell’oggetto. Se si cattura tutto il lato frontale dell’oggetto e poi tutto il lato posteriore, è probabile che si debba creare un ponte tra queste serie di immagini. È possibile farlo scattando foto che passano dal fronte al retro con piccoli incrementi.

Configurazione

  1. Selezionare View – Live Reconstruction
  2. Impostare la cartella immagini (Image Folder) e il numero minimo di immagini che saranno elaborate durante ogni fase (mantenerlo al di sopra di 4)
  3. Premere Start nella finestra Live Reconstruction
  4. Avviare la copia delle immagini nella cartella delle immagini

Il numero minimo di immagini è impostato di default a 4, ma si consiglia di scattare ancora più immagini in ogni serie. 

C’è un piccolo tranello alla fine. Per generare il modello texturizzato, si dovrà ricollegare l’ultimo nodo StructureFromMotion al nodo PrepareDenseScene .

  1. Cliccare con il tasto destro sul collegamento tra il primo nodo StructureFromMotion e il nodo PrepareDenseScene
  2. Scegliere Remove
  3. Trascinare un nuovo link dal output più basso StructureFromMotion all’input PrepareDenseScene
  4. Fare clic destro su Texturing e premere Compute

Idrante – Ricostruzione live

Preparazione dei modelli per la stampa – chiusura dei fori & riparazione

Quasi tutte le mesh create con la scansione 3D o la fotogrammetria hanno un vuoto sul fondo. Fortunatamente per noi, abbiamo bisogno di una base piatta che possa essere facilmente posizionata sul piano di stampa in ogni caso, quindi un semplice taglio piano in Meshmixer, Blender, 3D builder (o qualsiasi altro programma che si preferisce) andrà bene.

Inoltre, la dimensione del modello sarà abbastanza casuale, quindi non sorprendetevi se il modello è davvero piccolo dopo l’importazione. Basta ridimensionarlo.

Esiste una tecnica in particolare che si combina perfettamente con la fotogrammetria ed è lo sculpting. Scriveremo un articolo a parte in futuro, ma nel frattempo sentitevi liberi di controllare i tutorial esistenti, come questo

Si consiglia vivamente di controllare la pagina wiki di Meshroom. Ci sono molte informazioni su come risolvere alcuni errori che si potrebbero riscontrare e quali sono i parametri con cui vale la pena di sperimentare. E se volete contribuire, ancora meglio, inviate una pull request o contattate gli sviluppatori via email.

Galleria delle stampe di fotogrammetria

Conclusioni

Grazie a Meshroom, la fotogrammetria ora è più facile che mai. Le mesh di output non sono pronte per la stampa immediata, ma con alcune modifiche minime è possibile ottenere risultati assolutamente sbalorditivi sia per la stampa 3D che per l’industria dei giochi e delle animazioni. E il tutto è open-source! Quindi possiamo aspettarci aggiornamenti o anche miglioramenti specifici per la stampa 3D. Soprattutto se noi, come comunità, sosteniamo lo sviluppo anche in piccoli aspetti, come ad esempio la documentazione degli errori o la condivisione di buone impostazioni.

Siete quindi convinti che sia giunto il momento di dare un’altra possibilità alla fotogrammetria? Cosa aspettate, andate a scansionare il mondo! 🙂