Crie NeRFs com Nvidia Instant-NGP – Tutorial sem código

O Instant-NGP da Nvidia cria NeRFs em poucos segundos. Uma nova versão facilita o uso – mesmo sem conhecimento de codificação.

Neural Radiance Fields (NeRFs) podem aprender uma cena 3D a partir de dezenas de fotos e, em seguida, renderizá-la fotorrealisticamente. A tecnologia é uma candidato quente para a próxima tecnologia de visualização central e está sendo desenvolvido por pesquisadores de IA e empresas como Google e Nvidia. O Google usa NeRFs para Visão Imersiva, por exemplo.

A tecnologia chegou fora dos laboratórios de pesquisa entre fotógrafos e outros artistas ávidos por experimentar. Mas o acesso ainda é cheio de obstáculos, muitas vezes exigindo conhecimento de código e forte poder de computação.

O Instant NGP da Nvidia e o Nerfstudio de código aberto facilitam o acesso

Ferramentas como o código aberto Nerfstudio O kit de ferramentas tenta simplificar o processo de criação do NeRF, oferecendo tutoriais, uma biblioteca Python e uma interface da web. Entre outras coisas, o Nerfstudio conta com uma implementação de Instant-NGP (Instant Neural Graphics Primitives), uma estrutura de pesquisadores da Nvidia que pode aprender NeRFs em poucos segundos em uma única GPU.

Agora, a equipe do Instant-NGP lançou uma nova versão que requer apenas uma linha de código para NeRFs personalizados – todo o resto é feito por meio de um simples arquivo executável iniciando uma interface.

Melhor ainda: se você deseja apenas experimentar o exemplo incluído ou deseja baixar outro arquivo pequeno, não precisa de nenhum código. O Instant-NGP é executado em todas as placas Nvidia da série GTX-1000 em diante e requer CUDA 11.5 ou superior em Windows.

Instant-NGP: Primeiros passos para o Fox NeRF

Para usar o Instant-NGP para treinar o exemplo da raposa incluída, tudo o que você precisa fazer é carregar o Windows versão binária do Instant-NGP que corresponda à sua placa gráfica Nvidia. Inicie a interface via instant-ngp.exe na pasta baixada. Então você pode arrastar o raposa pasta sob dados/nerf/ na janela do Instant-NGP e inicie o treinamento. Após alguns segundos, uma cabeça de raposa deve estar visível na parede.

Agora você pode usar as configurações para criar malhas, por exemplo, ou usar a interface da câmera para planejar o caminho da câmera e renderizar um vídeo. Isso é salvo na pasta Instant NGP. Jonathan Stephens, do EveryPoint, mostra como isso funciona em seu breve tutorial em vídeo no YouTube.

Como transformar seu próprio vídeo em um NeRF

Para um NeRF personalizado, o Instant-NGP suporta duas abordagens: COLMAP para criar um conjunto de dados a partir de um conjunto de fotos ou vídeos que você tirou ou Record3D para criar um conjunto de dados usando um iPhone 12 Pro ou posterior (baseado no ARKit).

Ambos os métodos extraem imagens de vídeos e estimam a posição da câmera para cada imagem no conjunto de dados de treinamento, pois isso é necessário para o treinamento NeRF.

Para aqueles sem conhecimento de codificação, dois arquivos .bat simples podem ser baixados de Lote InstantNGP de Stephens GitHub – um para fotos e outro para vídeos. Simplesmente solte os arquivos na pasta Instant NGP e arraste um vídeo ou pasta de imagens para o arquivo .bat apropriado.

Para um vídeo, você ainda precisa definir um valor que determine quantos quadros por segundo de gravação de vídeo serão extraídos. O valor deve ficar entre 150 e 300 quadros para todo o vídeo. Um valor de 2 renderá cerca de 120 quadros para um clipe de 60 segundos.

Cactus-NeRF é péssimo – mas é minha primeira tentativa

Assim que o processo estiver concluído, a janela Instant NGP abre e o processo de treinamento é iniciado automaticamente. Agora você pode alterar os parâmetros de treinamento conforme descrito acima, ativar o DLSS ou renderizar um vídeo.

Minha primeira tentativa está cheia de artefatos, que provavelmente podem ser facilmente corrigidos – por exemplo, por meio de um ajuste valor aabb_scale que afeta o quão longe a implementação do NeRF rastreia os raios. Mas todo o processo, incluindo a gravação do vídeo, levou menos de cinco minutos. Usei uma RTX 3060 Ti como GPU.