View a markdown version of this page

Addestra 3D Gaussian Splatting dal tuo video - Deadline Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Addestra 3D Gaussian Splatting dal tuo video

Questo tutorial ti guida nell'addestramento della tua nuvola di punti 3D Gaussian Splatting a partire da un video che hai ripreso. Invii il pacchetto di lavoro della pipeline Gaussian Splatting alla tua farm Deadline Cloud. GitHub Il lavoro accetta un file video come input e produce un file Gaussian Splatting come output. .ply Al termine del lavoro, è possibile visualizzare il risultato in qualsiasi visualizzatore Gaussian Splatting, ad esempio. SuperSplat

La pipeline esegue una singola attività che:

  1. Estrae i fotogrammi video con lo strumento di elaborazione video FFmpeg.

  2. Si risolve Structure-from-Motion con COLMAP e GLOMAP, salvando il modello stenopeico e le immagini non distorte.

  3. Addestra Gaussian Splatting con NerF Studio splatfacto, Splatfacto in the Wild o l'esempio della libreria gsplat simple_trainer.py e salva l'output nel file specificato. https://docs.gsplat.studio/main/examples/colmap.html .ply

Il video seguente illustra il flusso di lavoro della pipeline Gaussian Splatting su Deadline Cloud.

Tempo stimato: poche ore, inclusa la configurazione della fattoria. A seconda del video in ingresso e delle impostazioni selezionate, il lavoro stesso può terminare in 10 minuti o richiedere ore.

L'esecuzione di questo tutorial comporta l'addebito delle istanze di lavoro della GPU che elaborano il job. La Comprendi il costo dei tuoi lavori di formazione sezione mostra come esaminare tali costi.

Panoramica di

Per completare questo tutorial, segui questi passaggi:

  1. Completare i prerequisiti .

  2. Allestisci la tua fattoria.

  3. Cattura un video di un soggetto.

  4. Invia il gsplat_pipeline lavoro.

  5. Monitora il lavoro.

  6. Scaricate e visualizzate il file Gaussian .ply Splatting.

  7. Eliminare le risorse.

Prerequisiti

Prima di iniziare, completa la seguente configurazione:

  1. Crea un AWS account se non ne hai già uno.

Configura la tua fattoria

È necessaria una farm Deadline Cloud con una flotta di GPU CUDA per eseguire il job Gaussian Splatting. Per configurarne una, completa i seguenti passaggi:

  1. Segui le istruzioni del CloudFormation modello di esempio di farm CUDA per creare una farm Deadline Cloud con una flotta di GPU CUDA e in grado di creare pacchetti conda.

  2. Segui le istruzioni sulla ricetta del pacchetto conda di esempio di NerF Studio per creare un pacchetto conda NerF Studio nel canale Amazon S3 della tua farm CUDA.

Nota

Se ti serve solo il trainer predefinito NERFSTUDIO (splatfacto), non devi distribuire il modello di farm CUDA o creare il pacchetto conda personalizzato NerF Studio. CloudFormation I requisiti minimi sono una farm Deadline Cloud con un parco GPU, un ambiente di coda incluso nei canali conda e i pacchetti conda-forge conda. ffmpeg colmap glomap nerfstudio cuda Le opzioni GSPLAT_SIMPLE_TRAINER e NERFSTUDIO_SPLATFACTOW trainer dipendono dai comandi disponibili solo nel pacchetto conda personalizzato NerF Studio.

Cattura un video di un soggetto

Puoi utilizzare una fotocamera con funzionalità video come il tuo smartphone per catturare un video di un soggetto per il tuo Gaussian Splatting. Considera i seguenti suggerimenti:

  • Usa un campo visivo ampio, ad esempio il livello di zoom 0,5 nell'app della fotocamera. Con un campo visivo più ampio, è comune utilizzare più oggetti tra le coppie Structure-from-Motion di immagini.

  • Disattiva la stabilizzazione video. La sua disattivazione preserva l'identica ottica dell'obiettivo tra tutti i fotogrammi e può aumentare la qualità delle risoluzioni.

  • Pianificate il movimento della fotocamera in base al soggetto. Per catturare un oggetto, come una panchina o una bicicletta, orbitate attorno al soggetto alcune volte a diverse altezze e distanze. Per immortalare l'interno di una stanza, segui l'esterno della stanza con la fotocamera rivolta verso l'interno e ripeti a diverse altezze della fotocamera. Per catturare spazi meno strutturati, ad esempio il terreno esterno, pensate a come includere tutto ciò che desiderate nel vostro Splatting gaussiano e a catturare il tutto da diverse angolazioni.

  • Cattura il video con movimento lento e costante.

  • Continua a muovere la videocamera. Evita di fermarti e fare una panoramica da un'unica posizione.

Copia il video che hai catturato dalla videocamera al computer per inviarlo alla farm.

Invia il job gsplat_pipeline

Per inviare il job Gaussian Splatting
  1. Se non disponi di una copia locale del GitHub repository https://github.com/aws-deadline/deadline-cloud-samples deadline-cloud-samples, clonala o scaricala come ZIP: https://github.com/aws-deadline/deadline-cloud-samples/archive/refs/heads/mainline.zip

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles
  2. Dalla directory, esegui il comando seguente: job_bundles

    deadline bundle gui-submit gsplat_pipeline
  3. Job-specific Passate alla scheda delle impostazioni e selezionate i percorsi sia per il file video di input che per il file Ply di output.

  4. Scegli Invia o personalizza prima le impostazioni. Se il video in ingresso presenta una complessità maggiore, potrebbe essere necessario aumentare il valore del conteggio approssimativo delle immagini.

Puoi anche selezionare quale trainer Gaussian Splatting utilizzare e personalizzare le relative opzioni CLI. Ad esempio, per utilizzare il trainer Monte Carlo Markov chain (MCMC) con l'opzione di griglia bilaterale per produrre fino a 2 milioni di splat, apporta le seguenti modifiche:

  1. Passa il Gaussian Splatting Trainer da a. NERFSTUDIO GSPLAT_SIMPLE_TRAINER

  2. Modifica il testo delle opzioni di GSplat Simple Trainer da --strategy.cap-max 1000000 a per ottenere 2 milioni di splats e da --strategy.cap-max 2000000 a per abilitare l'opzione griglia bilaterale. --no-use-bilateral-grid --use-bilateral-grid

Nota

Se si selezionano un video di ingresso o opzioni che richiedono un utilizzo della memoria superiore a quello fornito dalla flotta CUDA, è necessario aggiornare le impostazioni minime della flotta. Re-deploy il tuo CloudFormation modello con valori dei parametri aggiornati o modifica le impostazioni dalla console Deadline Cloud.

Monitoraggio del processo

Dopo aver inviato il lavoro, puoi monitorarne lo stato dalla tabella dei lavori di monitoraggio di Deadline Cloud. A seconda del video in ingresso e delle impostazioni selezionate, il lavoro potrebbe terminare in 10 minuti o richiedere ore.

Quando il lavoro è in esecuzione, apri il menu contestuale dell'attività e scegli Visualizza registri per aprire la visualizzazione del registro. Man mano che la pipeline procede, aggiorna il messaggio di stato visibile nei dettagli dell'esecuzione dell'attività.

Se riscontri errori, l'output del registro in questa visualizzazione ti aiuta a rintracciarne la causa. Le cause più comuni includono l'esaurimento della memoria o la mancata risoluzione delle pose della fotocamera. La pipeline può fallire durante una di queste fasi: estrazione di frame FFmpeg, Structure-from-Motion risoluzione GLOMAP o formazione su NerF Studio. Per risolvere gli errori, modifica l'infrastruttura della flotta o utilizza una risoluzione o un numero di immagini inferiori.

Scaricate e visualizzate il file Gaussian Splatting .ply

Per scaricare e visualizzare l'output
  1. Quando il lavoro viene completato con successo, apri il menu contestuale dell'attività completata nella tabella Attività del monitor Deadline Cloud e scegli Scarica output. A seconda delle impostazioni, mostra l'avanzamento del download o presenta un comando CLI che puoi usare per il download. Deadline Cloud salva il .ply file nella posizione selezionata al momento dell'invio del lavoro.

  2. Per visualizzare il risultato nel browser, apri il sito Web dell'SuperSplat editor e trascina il file dal browser dei file del tuo sistema operativo sulla SuperSplat pagina.

  3. Attiva l'opzione Show/Hide Splats, quindi ruota e muoviti sulla scena per trovare il soggetto dell'acquisizione.

Con SuperSplat, puoi anche modificare il tuo Gaussian Splatting. Ad esempio, puoi selezionare una sfera, invertire la selezione ed eliminare le splat esterne per ritagliare la scena. La SuperSplat documentazione spiega come utilizzare l'editor oppure puoi importare il .ply file nello strumento che preferisci.

Comprendi il costo dei tuoi lavori di formazione

Deadline Cloud Monitor include una funzione di esplorazione dell'utilizzo che stima il costo dei lavori eseguiti, mostrando quanto costa ogni formazione. Se ti senti a tuo agio nell'eseguire i test durante le ore non di punta, quando sono disponibili CUDA-capable istanze con tassi di interruzione sufficientemente bassi, una flotta CUDA spot costa meno di una flotta on-demand. Usage Explorer non mostra i costi al di fuori del tempo di esecuzione del processo, ad esempio il tempo di inattività delle istanze di lavoro o lo storage nel bucket Amazon S3.

Eliminazione

Per evitare addebiti continui, pulisci le risorse che hai creato per questo tutorial:

Per ripulire le risorse del tutorial
  1. Se hai distribuito il CloudFormation modello di farm CUDA, elimina lo CloudFormation stack dalla CloudFormation console.

  2. Se hai utilizzato una farm esistente e hai creato una flotta di GPU appositamente per questo tutorial, interrompi o elimina quella flotta. Se hai utilizzato una flotta condivisa preesistente, lasciala al suo posto.

Fasi successive

Puoi scomporre, modificare e remixare il gsplat_pipeline job bundle in base alle tue esigenze. Puoi personalizzare la tua pipeline di ricostruzione 3D o seguire gli stessi schemi per eseguire diversi carichi di lavoro CUDA nella tua farm CUDA Deadline Cloud. Il file README di esempio funziona in dettaglio nelle seguenti istruzioni:

  • Esegui il processo ovunque con l'interfaccia a riga di comando di Open Job Description, ad esempio localmente o su un'istanza Amazon EC2, anziché nella tua farm.

  • Suddividi la singola attività della pipeline in più fasi di Open Job Description collegate da dipendenze, seguendo lo schema riportato nell'esempio di Job Development Progression in corso. GitHub È possibile eseguire fasi separate su flotte diverse, ad esempio una flotta per l'estrazione dei frame e una CPU-only flotta di GPU per l'addestramento.

  • Suddividi la pipeline in più lavori con una struttura diversa. Ad esempio, un lavoro da risolvere Structure-from-Motion una volta e un secondo lavoro per provare iterativamente diverse varianti dei parametri di allenamento di Gaussian Splatting.

Le seguenti risorse forniscono informazioni aggiuntive: