Risponderemo a tutte le tue domande!

Applicazioni e Guide

Fotogrammetria con Meshroom

La fotogrammetria è un metodo per trasformare gli oggetti fisici in modelli digitali tridimensionali che possono essere modificati con un software 3D. Questo processo utilizza in genere dispositivi specializzati chiamati scanner 3D, di due tipi principali: ottici e laser.

Gli scanner ottici utilizzano spesso una o più fotocamere digitali e un'illuminazione speciale per illuminare uniformemente l'oggetto durante la scansione. In questo modo è possibile creare un modello 3D. Gli scanner laser, invece, utilizzano raggi laser. Questi dispositivi emettono più raggi laser e misurano il tempo necessario a ciascun raggio per rimbalzare sull'oggetto. Utilizzando questi dati e le informazioni provenienti dai sensori di posizione, lo scanner calcola la distanza di ciascun punto dell'oggetto. Si crea così una "nuvola di punti" che costituisce la base del modello 3D.

Nuvola di punti

Points cloud rabbit

Per costruire la struttura futura di un oggetto, il sistema deve conoscere le coordinate di ogni vertice nello spazio tridimensionale. L'insieme dei vertici è chiamato nuvola di punti. Più vertici ci sono, più dettagliato sarà l'oggetto. La creazione di una nuvola di punti è la prima e una delle fasi più cruciali per ricreare un modello 3D dalle fotografie.

È importante notare che ogni vertice della nuvola di punti è inizialmente non collegato ad altri vertici. Ciò consente un facile filtraggio: mantenere i punti necessari e rimuovere gli altri, prima di iniziare a ricreare la mesh dell'oggetto.

Oggetti della maglia

Mesh object rabbit

Un oggetto mesh è un tipo di modello 3D costituito da primitive geometriche triangolari, spesso chiamate mesh o polimeshes. Una Volta™ formati i punti dell'oggetto, l'applicazione può comporre in modo indipendente primitive triangolari a partire da essi. Collegando queste primitive, è possibile creare un modello 3D di qualsiasi forma. In questa fase, il modello non ha colore e rimane non dipinto.

La successiva fase di texturing risolve questo problema.

Texturing

Textured rabbit

La fase finale consiste nell'applicazione della texture dell'immagine estratta dalle foto all'oggetto mesh preparato. La qualità delle foto scattate e la loro risoluzione giocano un ruolo fondamentale. Se è bassa, il risultato finale non sarà ottimale. Ma se è stato scattato un numero sufficiente di foto di buona qualità, alla fine si otterrà un modello 3D completamente pronto all'uso di un oggetto reale. Di seguito forniremo alcuni consigli utili sulla preparazione delle foto originali.

Impostazioni della fotocamera

Per evitare di rimanere delusi dai primi tentativi di creare un modello 3D da fotografie, considerate queste semplici regole di base. Ciascuna regola aiuterà a prevenire i problemi che di solito si presentano durante la fase di creazione dell'oggetto mesh.

Innanzitutto, non affidatevi alle impostazioni automatiche della fotocamera digitale. Le fotocamere moderne cercano di bilanciare quattro parametri chiave in modo indipendente:

  • ISO,
  • bilanciamento del bianco,
  • velocità dell'otturatore,
  • apertura.

In modalità automatica, anche lievi variazioni delle condizioni esterne possono far variare queste impostazioni tra i fotogrammi. Queste variazioni possono portare a notevoli incongruenze durante la fase di texturing.

Per mantenere parametri coerenti tra i fotogrammi, utilizzare la modalità Manual (M). L'apertura è un'impostazione cruciale. A seconda dell'obiettivo, si deve puntare a una posizione quasi chiusa. Questo aiuta a ottenere la massima profondità di campo: meno aperta è l'apertura, meglio è. Tuttavia, evitate valori estremi. Se il vostro obiettivo può essere vicino a f/22, otterrete buoni risultati utilizzando valori compresi tra f/11 e f/20.

Makarios aperture difference

A sinistra f/11, a destra f/22

La chiusura del diaframma, tuttavia, crea un altro problema: la luce insufficiente. Questo problema può essere affrontato in due modi: aumentando la sensibilità ISO o allungando la velocità dell'otturatore. Entrambi i metodi influiscono sul risultato finale, anche se in modo diverso. Aumentando l'ISO a 6400 si introduce il rumore digitale nell'immagine, quindi è meglio usare i valori più bassi possibili. Per ottenere risultati quasi ideali, è consigliabile impostare l'ISO a 100. Tuttavia, ciò comporta il problema dell'insufficienza del rumore digitale nell'immagine. Tuttavia, ciò significa che il problema dell'illuminazione insufficiente persiste:

Makarios ISO difference

A sinistra ISO 100, a destra ISO 6400

Il modo più efficace per aumentare il passaggio di luce attraverso il sensore della fotocamera in condizioni di scarsa illuminazione è allungare la velocità dell'otturatore. Più a lungo l'otturatore rimane aperto, più fotoni colpiscono il sensore, ottenendo una migliore qualità dell'immagine. Tuttavia, questo approccio presenta una sfida: senza un treppiede, una velocità dell'otturatore di 1/50 di secondo o più può sfocare l'immagine. L'uso di un treppiede elimina questo problema.

Il bilanciamento del bianco è l'ultimo parametro fondamentale. È importante disattivare l'impostazione automatica e scegliere un profilo preimpostato (come "Sunny day") o un valore personalizzato in Kelvin. Ad esempio, 5200K è un'impostazione comune. I valori più bassi spostano la tonalità verso il giallo, mentre quelli più alti tendono al blu. Per evitare lunghe correzioni del colore in post-elaborazione, utilizzare lo stesso profilo di bilanciamento del bianco per tutte le foto di una serie.

Makarios white balance

Profili WB. A sinistra "Giorno di sole", a destra "Auto".

In sintesi, per acquisire foto di alta qualità per la fotogrammetria:

  1. Utilizzare un treppiede quando la luce è insufficiente.
  2. Chiudere l'apertura quasi al minimo.
  3. Impostare l'ISO al valore minimo.
  4. Scegliere una velocità dell'otturatore che dia il risultato desiderato (o utilizzare l'esposimetro integrato nella fotocamera).
  5. Utilizzare la stessa preimpostazione del bilanciamento del bianco.

Scattare le foto

Parliamo di quante foto scattare e da quali angolazioni. Il tipo di oggetto e il suo sfondo influenzano in modo significativo il risultato finale. Gli oggetti senza superfici lucide, trasparenti o riflettenti sono ideali per la fotogrammetria. In pratica, oggetti come finestre e vetri richiedono spesso una correzione in un editor 3D. Tuttavia, la tecnica generale di ripresa rimane la stessa.

Per gli oggetti piccoli posizionati su una superficie, immaginare una sfera intorno all'oggetto. Scattare le foto come se la fotocamera girasse intorno all'oggetto tre volte: una Volta™ dal basso, una Volta™ al centro e una Volta™ dall'alto.

Rabbit camera positions

È fondamentale che l'oggetto occupi almeno la metà, preferibilmente i tre quarti di ogni fotogramma. Invece di usare lo zoom, cercate di avvicinarvi fisicamente all'oggetto. Quando si crea un punto nuvola, il software ha bisogno del maggior numero di pixel possibile.

Quando si scatta, ricordarsi che il software combina i fotogrammi in un unico oggetto per ottenere una geometria corretta. È buona norma scattare almeno tre fotogrammi da ogni angolazione. Una Volta™ centrato l'oggetto nell'inquadratura, dividerlo mentalmente in verticale in tre parti uguali. Scattare tre foto, ognuna delle quali si concentra su un terzo dell'oggetto. In questo modo si ottiene la sovrapposizione necessaria all'applicazione per calcolare con precisione la posizione di ciascun punto nello spazio 3D. Dopo aver fotografato l'oggetto da tutti i lati e le angolazioni possibili, si può iniziare a preparare il software.

Installare Meshroom

Meshroom è un'applicazione gratuita e multipiattaforma che esegue in sequenza tutte le fasi di elaborazione, utilizzando le risorse della CPU e della GPU. Anche se può essere eseguito su un normale computer di casa, ogni fase può richiedere molto tempo. Per progetti su larga scala che prevedono la ricostruzione 3D di numerosi oggetti, come la creazione di una scena 3D di grande effetto, il noleggio di un server GPU dedicato potrebbe essere una soluzione pratica.

Consideriamo un server LeaderGPU con la seguente configurazione: 2 x NVIDIA® RTX™ 3090, 2 x Intel® Xeon® Silver 4210 (3.20 GHz), 128GB RAM. Utilizzeremo Windows Server 2022 come sistema operativo. Prima di installare Meshroom, è necessario eseguire alcune operazioni preliminari:

Visitare il sito web ufficiale del progetto per scaricare Meshroom. Decomprimere l'archivio ottenuto per trovare un'applicazione pronta all'uso che non richiede ulteriori installazioni. Avviare Meshroom.exe per iniziare.

Caricare le immagini

La finestra principale dell'applicazione è divisa in due parti: superiore e inferiore. La sezione superiore contiene la Galleria immagini, il Visualizzatore immagini e il Visualizzatore 3D. La sezione inferiore ospita l'editor grafico e il Task Manager. Per iniziare, trascinare e rilasciare le foto acquisite nell'area designata. Sono supportati sia i formati di file compressi (ad esempio, JPG) che quelli RAW. Si consiglia di utilizzare i file RAW perché contengono una quantità di dati significativamente maggiore per ogni fotogramma.

Meshroom main window

Si noti che per impostazione predefinita è già disponibile una pipeline standard pronta per l'uso, visualizzata in modo schematico nell'Editor grafico. Questo è uno dei controlli più importanti che aiuta a configurare tutti gli aspetti dell'elaborazione delle immagini in ogni fase. È possibile eseguire manualmente ogni fase facendo clic con il pulsante destro del mouse e selezionando Compute dal menu a discesa.

Ma per la prima Volta™, è sufficiente fare clic sul pulsante verde Start e l'applicazione farà tutto per voi. Verrà richiesto di salvare il progetto, in modo da non perdere accidentalmente i risultati del calcolo. Fare clic su Save, specificare un nome e una directory e salvare il progetto:

Meshroom save project

Successivamente, l'applicazione trasferisce tutte le fasi di elaborazione dall'Editor grafico al Task Manager, che ne gestisce l'esecuzione in un ordine specifico. Per controllare lo stato di ogni fase, selezionare il blocco corrispondente nell'Editor grafico e fare clic sul pulsante Log nell'angolo inferiore destro dello schermo. È anche possibile vedere in tempo reale quale fase è in corso di elaborazione:

Meshroom task manager

Sul lato destro, si può vedere la nuvola di punti costruita. Il risultato finale, generato con la pipeline standard, è disponibile nella directory:

[Your_Project_Path]\MeshroomCache\Texturing\[Random_Symbols]\texturedMesh.obj

Naturalmente, se si fissa prima il percorso di uscita nel nodo finale della pipeline, l'oggetto finirà sul percorso specificato. È quindi possibile importarlo in qualsiasi editor di testo per correggere le superfici, aggiungere fonti di luce e altri effetti prima del rendering.

Integrazione

Anche se il risultato iniziale può sembrare impressionante, spesso richiede un perfezionamento in un editor 3D. Meshroom semplifica questo processo consentendo di importare non solo il modello, ma anche la nuvola di punti e le posizioni della telecamera in editor di terze parti come Houdini o Blender. Nella sezione seguente vedremo come fare.

Houdini

In realtà, Meshroom è un'interfaccia di facile utilizzo per il motore AliceVision, che gestisce tutte le operazioni di calcolo. Questa interfaccia implementa la pipeline e il task manager corrispondenti. Se si utilizza Houdini, è possibile creare la propria pipeline direttamente all'interno dell'applicazione e utilizzarla insieme ad altri strumenti, eliminando la necessità di lanciare Meshroom separatamente.

Per iniziare, è meglio scaricare e installare un launcher dedicato che gestisca gli aggiornamenti e i plugin di Houdini. Quindi, aggiungere il plugin SideFX Labs, che offre numerosi strumenti aggiuntivi, tra cui nodi specifici per AliceVision. Per farlo, fate clic sul pulsante +, quindi selezionate Shelves:

Houdini add Shelves Houdini add Shelves

Scorrere l'elenco e selezionare SideFX Labs, quindi fare clic sul pulsante Update Toolset:

Houdini SideFX Labs Update Toolset

Per installare un plugin, procedere come segue: Fare clic sul pulsante Start Launcher, spostarsi nella sezione Labs/Packages del menu di sinistra e selezionare Install packages. Si aprirà una finestra in cui è possibile scegliere i pacchetti da installare:

Add Houdini plugin

Scegliete il pacchetto Production Build per la vostra versione di Houdini e fate clic su Install. Successivamente, riavviare l'applicazione per assicurarsi che le icone dei nuovi effetti appaiano in alto:

Houdini new items

È fondamentale notare che qui non troverete alcun riferimento ad AliceVision o Meshlab. Questo perché il plugin corrispondente funziona solo all'interno della pipeline del contesto geometrico. Per verificarlo, fare clic sull'icona +, quindi selezionare New Pane Tab Type, e scegliere Network View:

Houdini Network View

Premere il tasto Tab e aggiungere un nodo Geometry:

Houdini add Geometry

Fare doppio clic per aprire il nodo creato e digitare av sulla tastiera. Il sistema visualizzerà immediatamente un elenco di nodi disponibili, a partire dai simboli Labs AV. Questi nodi consentono di controllare il motore AliceVision e di integrarlo nelle proprie pipeline:

Houdini AliceVision nodes

Per creare una pipeline adeguata, consultare la documentazione ufficiale del plugin. Inoltre, si consiglia di aggiungere la directory di AliceVision all'elenco delle variabili ambientali nel file houdini.env. Per un'installazione standard che utilizza il launcher, questo file si trova in genere nella directory C:\Users\Administrator\Documents\houdini20.5\

Aprire il file houdini.env con un qualsiasi editor di testo e aggiungere la seguente riga:

ALICEVISION_PATH = [path to alicevision directory in Meshroom folder]

Ad esempio, se avete installato Meshroom nella directory principale dell'unità D:, il vostro percorso potrebbe essere il seguente:

ALICEVISION_PATH = D:\Meshroom\aliceVision

Salvare il file, quindi riavviare l'applicazione Houdini.

Blender

Per gli utenti di Blender, si consiglia il plugin Meshroom2Blender. Pur funzionando in modo diverso dal plugin per Houdini, consente di esportare in Blender le nuvole di punti e le posizioni della telecamera calcolate da Meshroom. Per accedere al codice del plugin, aprire il link nel browser:

https://raw.githubusercontent.com/tibicen/meshroom2blender/master/view3d_point_cloud_visualizer.py

Salvare il codice come view3d_point_cloud_visualizer.py in una cartella comoda. Quindi, aprire Blender e navigare in Edit - Preferences. Da qui, selezionare la scheda Add-ons:

Blender Preferences

Fare clic sulla freccia verso il basso e selezionare Install from Disk:

Blender install addons

Nella nuova finestra aperta, navigare nella directory in cui è stato salvato il plugin. Selezionare il file del plugin e fare clic su Install from Disk button:

Blender choose plugin file

Il plugin è ora installato. Si consiglia di riavviare l'applicazione. Dopo il riavvio, verrà visualizzata la voce Point Cloud Visualizer nella modalità di visualizzazione. Il plugin richiede di specificare il percorso di un file con estensione .ply:

Blender new option

Per impostazione predefinita, Meshroom non genera questo tipo di file. Per crearlo, aprire la pipeline e aggiungere il nodo ConvertSfMFormat. Utilizzare il file SfMData dal nodo StructureFromMotion come input. Per l'output, specificare il Images Folder del nodo Texturing.

Meshroom add Convert node

Il passo finale consiste nello specificare il formato. Fare clic su SfM File Format nel nodo ConvertSfMFormat e selezionare ply dall'elenco a discesa:

Meshroom Convert format

Fare clic con il tasto destro del mouse sul nodo creato e selezionare Compute:

Meshroom compute task

Una Volta™ completato il processo, nella directory si troverà il file richiesto:

[Your_Project_Path]\MeshroomCache\ConvertSfMFormat\[Random_Symbols]\sfm.ply

È possibile caricarlo in Blender in due modi: tramite il plugin sopra citato o tramite il processo di importazione standard File - Import - Stanford PLY (.ply):

Blender import points cloud

Per ulteriori informazioni sull'uso di questo plugin, si consiglia di consultare il repository del progetto o una risorsa web specializzata.

Conclusione

La fotogrammetria è un vasto campo di conoscenze, in cui abbiamo cercato di illustrare solo alcune tecniche di base per la conversione di immagini 2D in un modello 3D. È utilizzata in molti settori, dall'architettura alla creazione di giochi per computer.

Dopo aver acquisito la prima esperienza di ripresa di un set di dati e della sua trasformazione coerente in un modello 3D, sarete in grado di migliorare le vostre capacità e di trasferire oggetti fisici in uno spazio virtuale 3D. Ebbene, LeaderGPU vi aiuterà con la potenza di calcolo, riducendo il tempo di calcolo e liberando la vostra postazione di lavoro per altri compiti, spesso più prioritari.

Vedi anche:



Aggiornato: 12.08.2025

Pubblicato: 21.01.2025