Artigos · arXiv 2308.04079
3D Gaussian Splatting for Real-Time Radiance Field Rendering
Publicado em cs.GRcs.CV arXivPDF
Resumo em três linhas
- 🎯 Métodos de campos de radiância (como NeRFs) produzem alta qualidade visual, mas sofrem com ray-marching volumétrico lento e longos tempos de otimização, enquanto métodos rápidos baseados em grades comprometem a qualidade ou a velocidade de renderização.
- 🔧 Represente cenas explicitamente com gaussianas 3D anisotrópicas inicializadas a partir de pontos esparsos de SfM, otimize-as com controle adaptativo de densidade (clonagem e divisão) e renderize por meio de um rasterizador em GPU diferenciável, ciente de visibilidade e baseado em blocos (tiles).
- 📈 Alcança qualidade visual no estado da arte equivalente ao Mip-NeRF360 com velocidades de renderização em tempo real acima de 130–160 FPS na resolução 1080p e tempos de treinamento abaixo de uma hora.
Resumo
Métodos de Radiance Field revolucionaram recentemente a síntese de novas vistas de cenas capturadas com múltiplas fotos ou vídeos. No entanto, alcançar alta qualidade visual ainda exige redes neurais que são custosas de treinar e renderizar, enquanto métodos recentes mais rápidos inevitavelmente sacrificam qualidade por velocidade. Para cenas ilimitadas e completas (em vez de objetos isolados) e renderização em resolução 1080p, nenhum método atual consegue alcançar taxas de exibição em tempo real. Introduzimos três elementos-chave que nos permitem alcançar qualidade visual no estado da arte mantendo tempos de treinamento competitivos e, principalmente, possibilitam a síntese de novas vistas de alta qualidade em tempo real (>= 30 fps) em resolução 1080p. Primeiro, partindo de pontos esparsos gerados durante a calibração de câmeras, representamos a cena com gaussianas 3D que preservam propriedades desejáveis de campos de radiância volumétricos contínuos para a otimização da cena, evitando computação desnecessária no espaço vazio; Segundo, realizamos otimização/controle de densidade intercalados das gaussianas 3D, otimizando notavelmente a covariância anisotrópica para obter uma representação precisa da cena; Terceiro, desenvolvemos um algoritmo rápido de renderização ciente de visibilidade que suporta splatting anisotrópico e tanto acelera o treinamento quanto viabiliza a renderização em tempo real. Demonstramos qualidade visual no estado da arte e renderização em tempo real em diversos conjuntos de dados consagrados.
Resumo original (inglês)
Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.
Guia de leitura
Problema e motivação
Os Neural Radiance Fields (NeRFs) transformaram a síntese de novas vistas ao otimizar representações contínuas e implícitas de cenas por meio de Multi-Layer Perceptrons (MLPs). Contudo, a renderização desses campos contínuos depende de ray-marching volumétrico estocástico, o que exige a avaliação de dezenas ou centenas de amostras por raio. Isso acarreta pesadas cargas computacionais, longos tempos de treinamento (por exemplo, até 48 horas para o Mip-NeRF360) e velocidades de inferência muito lentas (segundos por quadro), impedindo a navegação em tempo real em altas resoluções como 1080p.
Embora variantes mais rápidas de campos de radiância (como Plenoxels e InstantNGP) utilizem grades de voxels ou de hash para acelerar o treinamento, elas frequentemente abrem mão da fidelidade visual e enfrentam dificuldades em espaços vazios ou detalhes de alta frequência. Por outro lado, abordagens baseadas em pontos oferecem uma geometria explícita amigável para GPUs, mas a rasterização clássica de pontos exige uma geometria densa de Multi-View Stereo (MVS) para evitar buracos, ou depende de pós-processamento por CNNs que introduz cintilação temporal (flickering).
Este artigo propõe uma representação de cena explícita e não estruturada baseada em Gaussianas 3D combinada a um rasterizador rápido baseado em blocos (tiles), alcançando a fidelidade de renderização dos campos de radiância implícitos de ponta em conjunto com taxas de quadros em tempo real e tempos de otimização competitivos.
Ideias-chave
- Representação Não Estruturada por Gaussianas 3D: Em vez de redes de coordenadas contínuas ou grades densas, o campo de radiância é parametrizado por gaussianas 3D discretas com matrizes de covariância anisotrópicas completas, inicializadas a partir de nuvens de pontos esparsas de Structure-from-Motion (SfM) sem necessitar de normais ou MVS denso.
- Parametrização via Escala e Rotação: Para garantir que a matriz de covariância permaneça semidefinida positiva durante todo o gradiente descendente, ela é desacoplada em um vetor de escala 3D e um quatérnion unitário.
- Controle Adaptativo de Densidade: A otimização gerencia dinamicamente a densidade da cena rastreando os gradientes de posição no espaço de visão: clonando gaussianas sub-reconstruídas e dividindo gaussianas sobrerreconstruídas, enquanto poda splats transparentes ou excessivamente grandes.
- Rasterização por Blocos Ciente de Visibilidade: Um rasterizador customizado para GPU organiza os pixels da tela em blocos de , ordena os splats por profundidade a cada quadro usando um Radix sort rápido e realiza o alpha-blending das projeções anisotrópicas de frente para trás (front-to-back), sem limitar a quantidade de splats que recebem atualizações de gradiente.
Método
1. Representação de Cena por Gaussianas 3D
Uma gaussiana 3D centrada na média é definida por sua matriz de covariância no espaço de mundo:
Para garantir que permaneça semidefinida positiva durante a otimização, ela é fatorada em uma matriz de rotação e uma matriz de escala : Aqui, é armazenada como um vetor 3D avaliado com uma ativação exponencial, e é parametrizada por um quatérnion unitário normalizado .
Para a renderização, as gaussianas 3D são projetadas nas coordenadas de imagem 2D seguindo o framework de EWA splatting. Dada uma transformação de visão e o Jacobiano da aproximação afim da transformação projetiva, a matriz de covariância 2D no espaço de tela é: A terceira linha e coluna são descartadas, resultando em uma matriz de covariância para o splatting planar.
2. Renderização e Formação da Imagem
Cada gaussiana possui uma opacidade (restringida a via ativação sigmoide) e coeficientes de harmônicos esféricos (SH) que descrevem a cor dependente da vista . A composição de gaussianas sobrepostas e ordenadas em um pixel segue a formulação volumétrica padrão: onde é determinado pela avaliação da gaussiana 2D projetada multiplicada pela opacidade aprendida por ponto.
3. Otimização e Controle Adaptativo
A função de perda combina uma perda com uma perda D-SSIM (com ):
O controle adaptativo de densidade é executado a cada 100 iterações nas gaussianas cujo gradiente médio de posição no espaço de visão excede :
- Clonagem (Sub-reconstrução): Para gaussianas pequenas, um duplicata é criada e movida na direção do gradiente de posição.
- Divisão (Sobrerreconstrução): Para gaussianas grandes, a primitiva é substituída por duas gaussianas menores cujas escalas são reduzidas por um fator de , amostrando suas posições iniciais a partir da gaussiana-mãe.
- Poda (Pruning): Poda gaussianas em que ou que sejam excessivamente grandes no espaço de mundo/visão. A cada iterações, as opacidades são redefinidas para valores próximos de zero a fim de filtrar artefatos flutuantes (floaters).
4. Rasterizador Diferenciável Rápido Baseado em Blocos
- A tela é dividida em blocos de pixels.
- Gaussianas aprovadas no frustum culling com intervalo de confiança de 99% recebem chaves de 64 bits que codificam o ID do bloco e a profundidade no espaço de visão.
- Um único Radix sort na GPU ordena todas as instâncias em todo o quadro.
- Blocos de threads acumulam a cor por bloco de frente para trás até que atinja a saturação (interrompendo antes de ultrapassar ).
- A passagem retroativa (backward pass) percorre os blocos de trás para frente, recuperando as opacidades intermediárias ao dividir a opacidade acumulada final pelo de cada primitiva, evitando buffers de memória dinâmica caros por pixel.
Resultados
- Dataset Mip-NeRF360: Após 30 mil iterações (tempo médio de treinamento de 41m 33s), o 3D Gaussian Splatting atinge uma média de SSIM de 0.815, PSNR de 27.21 dB e LPIPS de 0.214, igualando ou superando o Mip-NeRF360 (SSIM 0.792, PSNR 27.69 dB, LPIPS 0.237, 48 horas de treinamento), enquanto renderiza a 134 FPS em comparação com os 0.06 FPS do Mip-NeRF360.
- Configuração Rápida (7 mil iterações): Oferece SSIM de 0.770 e PSNR de 25.60 dB em apenas 6m 25s a 160 FPS, superando o InstantNGP-Base (SSIM 0.671, 11.7 FPS) e o Plenoxels (SSIM 0.626, 6.79 FPS) com tempos de treinamento comparáveis.
- Tanks&Temples e Deep Blending: No Tanks&Temples, 30 mil iterações atingem um SSIM de 0.841 e PSNR de 23.14 dB a 154 FPS. No Deep Blending, alcança SSIM de 0.903 e PSNR de 29.41 dB a 137 FPS.
- Synthetic Blender: Atinge PSNR médio de 33.32 dB a partir de uma inicialização completamente aleatória de 100 mil pontos, renderizando entre 180 e 300 FPS.
Limitações e questões em aberto
- Vistas Não Observadas e Outliers: Cobertura esparsa ou vistas distantes das trajetórias de treinamento podem produzir artefatos visíveis, como gaussianas alongadas ou manchadas.
- Artefatos de Transição Rápida (Popping): Mudanças bruscas na ordem de profundidade ou descarte agressivo por margens de guarda (guard-band culling) podem introduzir popping durante a navegação, apontando para a necessidade de um melhor antialiasing.
- Consumo de Memória: Embora compacta em comparação com nuvens de pontos densas clássicas, a representação explícita requer centenas de megabytes (por exemplo, 400–750 MB para cenas com 1 a 5 milhões de gaussianas), e o protótipo de treinamento não otimizado pode gerar picos de uso de memória de GPU acima de 20 GB.
- Falta de Regularização: O framework não inclui regularizadores explícitos de suavidade geométrica ou de densidade, abrindo margem para artefatos flutuantes no fundo em regiões pouco restringidas pelos raios das câmeras.
Termos-chave
- 3D Gaussians
- As primitivas 3D diferenciáveis e não estruturadas fundamentais, definidas por uma posição média, matriz de covariância anisotrópica, opacidade e coeficientes de aparência por harmônicos esféricos.
- Anisotropic Covariance
- Uma dispersão 3D direcional parametrizada em vetores de escala e quatérnios de rotação unitários separados, permitindo que as gaussianas se deformem em elipsoides planos alinhados com superfícies físicas.
- Adaptive Density Control
- Uma estratégia de otimização intercalada que adiciona gaussianas clonando ou dividindo primitivas com grandes gradientes posicionais e remove aquelas que são transparentes ou sobredimensionadas.
- Tile-Based Rasterization
- Um pipeline de renderização acelerado por GPU que divide a janela de visualização em blocos de pixels para ordenar e misturar splats gaussianos sobrepostos eficientemente em paralelo.
- Alpha-Blending
- Acumulação de frente para trás de cor e transmitância que reproduz a integração volumétrica padrão do NeRF sobre splats 2D projetados e ordenados.
- Radix Sort
- Um algoritmo de ordenação em GPU usado para ordenar globalmente as gaussianas em paralelo com base em chaves de 64 bits que combinam o ID do bloco e a profundidade no espaço de visão.
- Spherical Harmonics (SH)
- Uma base de funções direcionais baseada em frequência utilizada para representar a cor dependente da vista em cada primitiva gaussiana em até 4 bandas.
Perguntas
Como as gaussianas 3D são inicializadas antes da otimização?
Elas são inicializadas usando a nuvem de pontos esparsa gerada como subproduto da calibração de câmera via Structure-from-Motion (SfM), com escalas isotrópicas iniciais derivadas da distância média aos três pontos vizinhos mais próximos. Para cenas sintéticas, uma inicialização aleatória uniforme também pode ser utilizada.
Qual é a diferença entre clonar e dividir as gaussianas?
A clonagem copia uma gaussiana pequena e a desloca na direção do seu gradiente de posição para cobrir características geométricas ausentes (sub-reconstrução), enquanto a divisão reparte uma gaussiana excessivamente grande em duas gaussianas menores com escala reduzida por um fator de 1.6 para capturar melhor detalhes de alta variância (sobrerreconstrução).
Por que o rasterizador ordena por bloco em vez de por pixel?
Ordenar por bloco usando um único Radix sort global em GPU sobre chaves combinadas de bloco-profundidade evita o alto custo computacional de ordenar primitivas pixel a pixel, viabilizando altas taxas de quadros com aproximação visual desprezível.
Como a passagem retroativa (backward pass) evita armazenar longas listas de primitivas por pixel na memória global?
O rasterizador percorre novamente as listas ordenadas por bloco existentes de trás para frente e reconstrói as opacidades intermediárias dividindo a opacidade final acumulada pelo valor de alfa de cada gaussiana, demandando apenas uma sobrecarga constante de memória por pixel.
A explicação desta página foi escrita por IA a partir do artigo e pode conter erros. Consulte o artigo para os detalhes.