View a markdown version of this page

Treine Gaussian Splatting 3D a partir do seu próprio vídeo - Deadline Cloud

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Treine Gaussian Splatting 3D a partir do seu próprio vídeo

Este tutorial orienta você a treinar sua própria nuvem de pontos Gaussian Splatting 3D a partir de um vídeo que você captura. Você envia o pacote de tarefas do pipeline Gaussian Splatting GitHub para sua fazenda Deadline Cloud. O trabalho pega um arquivo de vídeo como entrada e produz um arquivo Gaussian Splatting .ply como saída. Quando o trabalho for concluído, você poderá visualizar o resultado em qualquer visualizador Gaussian Splatting, como. SuperSplat

O pipeline executa uma única tarefa que:

  1. Extrai quadros de vídeo com a ferramenta de processamento de vídeo FFmpeg.

  2. Resolve Structure-from-Motion com COLMAP e GLOMAP, salvando o modelo pinhole e imagens sem distorção.

  3. Treina o Gaussian Splatting com o NerF Studio splatfacto, Splatfacto in the Wild ou o exemplo da biblioteca simple_trainer.py gsplat e salva a saída no arquivo que você especificar. .ply

O vídeo a seguir demonstra o fluxo de trabalho do pipeline Gaussian Splatting no Deadline Cloud.

Tempo estimado: Algumas horas, incluindo a configuração da fazenda. Dependendo do vídeo de entrada e das configurações selecionadas, o trabalho em si pode ser concluído em 10 minutos ou levar horas.

A execução deste tutorial gera cobranças para as instâncias de trabalho da GPU que processam a tarefa. A Entenda o custo de seus trabalhos de treinamento seção mostra como analisar esses custos.

Visão geral do

Para concluir este tutorial, siga estas etapas:

  1. Concluir os pré-requisitos do .

  2. Configure sua fazenda.

  3. Capture um vídeo de um assunto.

  4. Envie o gsplat_pipeline trabalho.

  5. Monitore o trabalho.

  6. Baixe e visualize o arquivo Gaussian .ply Splatting.

  7. Limpe recursos.

Pré-requisitos

Antes de começar, conclua a seguinte configuração:

  1. Crie uma AWS conta se você ainda não tiver uma.

Configure sua fazenda

Você precisa de uma fazenda Deadline Cloud com uma frota de GPU CUDA para executar o trabalho do Gaussian Splatting. Para configurar um, conclua as seguintes etapas:

  1. Siga as instruções do CloudFormation modelo de amostra de fazenda CUDA para criar uma fazenda Deadline Cloud que tenha uma frota de GPU CUDA e possa criar pacotes conda.

  2. Siga as instruções de amostra da receita do pacote conda do NerF Studio para criar um pacote conda do NerF Studio no canal Amazon S3 de sua fazenda CUDA.

nota

Se você só precisa do treinador padrão NERFSTUDIO (esplatfacto), não precisa implantar o CloudFormation modelo de fazenda CUDA ou criar o pacote conda NerF Studio personalizado. Os requisitos mínimos são um Deadline Cloud farm com uma frota de GPU, um ambiente de fila conda-forge incluído nos canais conda e os pacotes conda. ffmpeg colmap glomap nerfstudio cuda As opções GSPLAT_SIMPLE_TRAINER e NERFSTUDIO_SPLATFACTOW trainer dependem de comandos que estão disponíveis apenas no pacote conda NerF Studio personalizado.

Capture um vídeo de um assunto

Você pode usar uma câmera compatível com vídeo, como seu smartphone, para capturar um vídeo de um assunto para o Gaussian Splatting. Considere as dicas a seguir:

  • Use um campo de visão amplo, como o nível de zoom 0,5 no aplicativo da câmera. Com um campo de visão mais amplo, é comum usar mais objetos entre pares Structure-from-Motion de imagens.

  • Desative a estabilização de vídeo. Desligá-la preserva a ótica da lente idêntica entre todas as armações e pode aumentar a qualidade das soluções.

  • Planeje o movimento da câmera de acordo com o assunto. Para capturar um objeto, como um banco ou uma bicicleta, orbite ao redor do objeto algumas vezes em diferentes alturas e distâncias. Para capturar o interior de uma sala, siga pela parte externa da sala com a câmera voltada para dentro e repita em diferentes alturas de câmera. Para capturar espaços menos estruturados, como terrenos externos, pense em como incluir tudo o que você quiser em seu Gaussian Splatting e como capturar tudo isso de vários ângulos diferentes.

  • Capture o vídeo com movimento lento e constante.

  • Continue movendo a câmera. Evite parar e girar a partir de um único local.

Copie o vídeo que você capturou da sua câmera para o seu computador para enviar para a fazenda.

Envie o trabalho gsplat_pipeline

Para enviar a tarefa Gaussian Splatting
  1. Se você não tiver uma cópia local do GitHub repositório deadline-cloud-samples, clone-a ou baixe-a como um 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. No job_bundles diretório, execute o seguinte comando:

    deadline bundle gui-submit gsplat_pipeline
  3. Mude para a guia de Job-specific configurações e selecione caminhos para o Arquivo de Vídeo de Entrada e o Arquivo de Ply de Saída.

  4. Escolha Enviar ou personalize as configurações primeiro. Se o vídeo de entrada tiver maior complexidade, talvez seja necessário aumentar o valor da contagem aproximada de imagens.

Você também pode selecionar qual treinador Gaussian Splatting usar e personalizar as opções de CLI para ele. Por exemplo, para usar o instrutor da cadeia Monte Carlo Markov (MCMC) com a opção de rede bilateral para produzir até 2 milhões de respingos, faça as seguintes alterações:

  1. Mude o Gaussian Splatting Trainer de para. NERFSTUDIO GSPLAT_SIMPLE_TRAINER

  2. Modifique o texto das opções do GSplat Simple Trainer de --strategy.cap-max 1000000 para para --strategy.cap-max 2000000 para obter 2 milhões de splats e de --no-use-bilateral-grid para para habilitar --use-bilateral-grid a opção de grade bilateral.

nota

Se você selecionar um vídeo de entrada ou opções que exijam maior uso de memória do que a frota CUDA fornece, será necessário atualizar as configurações mínimas da frota. Re-deploy seu CloudFormation modelo com valores de parâmetros atualizados ou edite as configurações no console do Deadline Cloud.

Monitoramento do trabalho

Depois de enviar o trabalho, você pode monitorar seu status na tabela de trabalhos do Deadline Cloud Monitor. Dependendo do vídeo de entrada e das configurações selecionadas, o trabalho pode terminar em 10 minutos ou levar horas.

Quando o trabalho estiver em execução, abra o menu de contexto da tarefa e escolha Exibir registros para abrir a exibição do registro. À medida que o pipeline segue suas etapas, ele atualiza a mensagem de status visível nos detalhes da execução da tarefa.

Se você encontrar erros, a saída do registro nessa exibição o ajudará a rastrear a causa. As causas comuns incluem falta de memória ou falha na solução das poses da câmera. O pipeline pode falhar durante qualquer uma dessas etapas: extração de quadros FFmpeg, Structure-from-Motion resolução do GLOMAP ou treinamento do NerF Studio. Para resolver erros, ajuste a infraestrutura da frota ou use uma resolução de imagem ou contagem de imagens mais baixa.

Baixe e visualize o Gaussian Splatting .ply

Para baixar e visualizar a saída
  1. Quando o trabalho for concluído com êxito, abra o menu de contexto da tarefa concluída na tabela Tarefas do monitor Deadline Cloud e escolha Baixar saída. Dependendo das configurações, ele mostra o progresso do download ou apresenta um comando CLI que você pode usar para fazer o download. O Deadline Cloud salva o .ply arquivo no local selecionado ao enviar o trabalho.

  2. Para ver o resultado em seu navegador, abra o site do SuperSplat Editor e arraste o arquivo do navegador de arquivos do seu sistema operacional para a SuperSplat página.

  3. Alterne a opção Show/Hide Splats, depois gire e percorra a cena para encontrar o assunto da captura.

Com SuperSplat, você também pode editar seu Gaussian Splatting. Por exemplo, você pode selecionar uma esfera, inverter a seleção e excluir as manchas externas para cortar a cena. A SuperSplat documentação explica como usar o editor ou você pode importar seu .ply arquivo para a ferramenta de sua escolha.

Entenda o custo de seus trabalhos de treinamento

O monitor Deadline Cloud inclui um recurso explorador de uso que estima o custo dos trabalhos que você executa, mostrando quanto custa cada treinamento. Se você se sentir confortável executando seus testes fora do horário de pico, quando as CUDA-capable instâncias estão disponíveis com taxas de interrupção suficientemente baixas, uma frota de CUDA spot custa menos do que uma frota sob demanda. O Explorador de Uso não mostra custos fora do tempo de execução do trabalho, como tempo de instância do trabalhador ocioso ou armazenamento em seu bucket do Amazon S3.

Fazer a limpeza.

Para evitar cobranças contínuas, limpe os recursos que você criou para este tutorial:

Para limpar os recursos do tutorial
  1. Se você implantou o CloudFormation modelo de farm CUDA, exclua a CloudFormation pilha do console. CloudFormation

  2. Se você usou uma fazenda existente e criou uma frota de GPU especificamente para este tutorial, interrompa ou exclua essa frota. Se você usou uma frota compartilhada preexistente, deixe-a em vigor.

Próximas etapas

Você pode separar, editar e remixar o pacote de gsplat_pipeline tarefas para atender às suas necessidades. Você pode personalizar seu próprio pipeline de reconstrução 3D ou seguir os mesmos padrões para executar diferentes cargas de trabalho CUDA em seu farm CUDA do Deadline Cloud. O exemplo de README funciona detalhadamente de acordo com as seguintes instruções:

  • Execute o trabalho em qualquer lugar com a CLI Open Job Description, como localmente ou em uma instância do Amazon EC2, em vez de em sua fazenda.

  • Decomponha a única tarefa do pipeline em várias etapas da Open Job Description conectadas por dependências, seguindo o padrão na amostra de Progressão do Desenvolvimento de Trabalho em. GitHub Etapas separadas podem ser executadas em frotas diferentes, como uma CPU-only frota para extração de quadros e uma frota de GPU para treinamento.

  • Divida o pipeline em várias tarefas com estrutura diferente. Por exemplo, um trabalho para resolver Structure-from-Motion uma vez e um segundo trabalho para testar iterativamente diferentes variações dos parâmetros de treinamento do Gaussian Splatting.

Os seguintes recursos fornecem informações adicionais: