Fotogrammetria con Meshroom e Google Colab
Fotogrammetria con Meshroom e Google Colab
Come creare un flusso di lavoro Colab per la creazione di un modello 3d(fotogrammetrico) tramite foto su onedrive, Gen 17, 2024
Questa pagina web si prefigge lo scopo di facilitare l’elaborazione di un dataset di foto per tentare una prima elaborazione e ricostruzione
fotogrammetrica. Gli strumenti che vengono utilizzati per eseguire l’elaborazione sono il servizio Google colab e Meshroom.
Il servizio Google Colab, ha lo scopo di eseguire in cloud lo script composto da comandi shell bash e python per l’elaborazione delle immagini e la creazione della mesh 3d finale. Google Colab è una piattaforma di google, nata principalmente per eseguire quelle operazioni di machine learning che richiedono prestazioni e potenza di calcolo elevata.
Nel nostro caso specifico verrà utilizzato per fini alternativi, e verrà messo a disposizione dall’infrastruttura cloud la seguente potenza di calcolo:
- 32 GB di RAM
- GPU con 16GB di RAM dedicata e funzionalità CUDA
- Circa 40GB su filesystem
Meshroom è un software con licenza opensource che consente tramite foto e video di effettuare una ricostruzione fotogrammetrica, basandosi sul framework AliceVision. L’interfaccia di utilizzo è basata sulla logica dei workflow, in cui ogni blocco è collegato al successivo salvando su una folder l’elaborazione temporanea ed infine generando una mesh poligonale.
Questo runtime consente eventualmente anche di utilizzare un workflow custom in cui è possibile avere più risultati diversi: si può ad esempio aggiungere un workflow di post produzione che effettua un Meshdecimate + Retexturing + Retopology della mesh, oppure esportare la pointcloud prima che venga creata la mesh; si può aggiungere anche un workflow che esporta la mesh finale ed effettua l’upload su sketchfab.
Per fare tutto ciò, basta creare un workflow custom tramite GUI dalla propria installazione meshroom su pc ed eportarlo in formato .mg in modo poi da copiare il file su google drive ed inserirlo nel comando: meshroom_compute –forceCompute /content/Mydrive/custom_workflow.mg
Come funziona
La logica di questa guida è innanzitutto capire che non si tratta di una semplice pagina web statica ma di una vera e propria guida StepByStep in cui dopo ogni spiegazione è presente direttamente il codice già compilato da eseguire. In ogni cella è già scritto tutto il codice necessario per una elaborazione standard.
Il workflow di default che viene eseguito in questa guida consente di leggere una dataset di foto e generare un file obj 3d con le sue relative texture.
Il risutato finale sarà:
- 1 file in formato .obj
- vari file di texture in formato .jpeg
- 1 file con la libreria dei materia in formato .mtl
- Il codice presente è modificabile a seconda delle proprie esigenze. Ad esempio se si dispone di un workflow meshroom custom (.mg file)si può eseguire la realtiva cella avendo precedentemente importato il file e avendo l’accortezza di modificare al suo interno tutti i path.
Di default il comando nella cella è commentato, per eseguirlo deve essere decommentato
Prerequisiti
Lo script per essere eseguito prevede una minima configurazione iniziale e non necessita successivamente di scrivere codice. Come prerequisito serve avere un’account google drive con spazio a sufficienza per fare l’upload delle foto e salvare la mesh finale. Lo script infatti utilizza come input e output due folder di google drive, le quali dovranno essere create a mano per consentire al codice di leggere le foto, elaborarle e salvare la mesh finale.
Guida StepByStep
Di seguito uno dopo l’altro sono riportati tutti i passaggi da eseguire che guideranno l’utente nell’elaborazione fotogrammetrica. Per eseguire il codice basta cliccare sul tasto play (run cell). Comparirà un messaggio di avviso, andare avanti e cliccare su run anyway.
https://colab.research.google.com/github/jpo85/meshroom_colab_new/blob/main/runtime_script.ipynb