Reconstrução Geométrica Precisa com Gaussian Splatting 2D

A representação de campos de radiação por meio de Gaussianas 3D (3DGS) é eficiente para capturar a informação volumétrica em cenas 3D. No entanto, sua precisão geométrica é uma limitação conhecida, pois extrair uma malha de superfície bem definida a partir de elipsoides "suaves" é desafiador. O Gaussian Splatting 2D (2DGS) aborda essa questão fundamentalmente, reformulando a representação para utilizar discos 2D em vez de elipsoides 3D, permitindo que as Gaussianas se ajustem naturalmente às superfícies.

Este artigo é baseado na publicação de Huang et al. (SIGGRAPH 2024), intitulada "2D Gaussian Splatting for Geometrically Accurate Radiance Fields".

Limitações Intrínsecas de Precisão Geométrica no 3DGS

O objetivo principle do 3DGS é a qualidade da renderização (medida por PSNR, SSIM), não a precisão geométrica. No entanto, muitas aplicações subsequentes, como simulações físicas, detecção de colisão, inspeção industrial e composição VFX, exigem malhas de superfície precisas, onde o 3DGS se mostra inadequado.

Por que a extração de malhas do 3DGS é tão difícil?

As Gaussianas 3D são elipsoides anisotrópicos que representam volume. Um plano fino pode ser representado pela sobreposição de muitos elipsoides achatados. No entanto, as fronteiras desses elipsoides não correspondem a uma superfície geométrica clara; elas se sobrepõem, e a "superfície" se torna uma região de transição implícita e suave, em vez de uma borda nítida.

A aplicação direta de métodos como Marching Cubes ao campo de densidade das Gaussianas 3D resulta em malhas de baixa qualidade. Áreas com alta densidade de Gaussianas podem gerar artefatos como orifícios indesejados, e a transição suave nas fronteiras das Gaussianas leva a uma malha serrilhada.

O Conceito Central do 2DGS: Substituindo Elipsoides por Discos

A abordagem do 2DGS é direta: degenerar elipsoides 3D em discos 2D.

Imagine comprimir a escala de um elipsoide em uma direção até zero; ele se torna um disco elíptico infinitamente fino. Esse disco se alinha naturalmente à superfície do objeto, com sua normal indicando a normal da superfície, conferindo um significado geométrico claro.

Elipsoide Gaussiano 3D (s_x, s_y, s_z)     Disco Gaussiano 2D (s_u, s_v)
     [      ]                      |------|
     [  3D  ]          →           |  2D  |   ← Espessura tende a zero
     [      ]                      |------|
     
   Escala em três direções,       Escala em duas direções,
   representando volume.          terceira direção (normal) sem espessura.

Parametrização da Gaussiana 2D

Cada Gaussiana 2D (Disco Gaussiano) é definida pelos seguintes parâmetros:

  • Centro (p_u): Coordenada 3D do centro do disco.
  • Direções Tangenciais (t_u, t_v): Dois vetores ortogonais no plano do disco.
  • Escalas 2D (s_u, s_v): Raios do disco nas direções tangenciais.
  • Normal (n): Determinada automaticamente por n = t_u × t_v.
  • Opacidade (α) e Coeficientes de Harmônicos Esféricos (k): Semelhantes ao 3DGS.

A função Gaussiana 2D, para um ponto u no espaço 3D, é definida pela sua projeção no plano do disco:

  • Coordenadas locais no disco: s = (u - p_u) ⋅ t_u t = (u - p_u) ⋅ t_v
  • Função Gaussiana 2D: G_2D(s, t) = exp(−(s² / (2s_u²)) − (t² / (2s_v²)))

Esta função decai no plano do disco e não se espalha na direção normal (espessura zero), correspondendo a uma camada superficial precisa.

Renderização por Interseção Raio-Disco

A renderização em 3DGS envolve a projeção de elipsoides 3D no plano da imagem (Splatting). Em contraste, o 2DGS utiliza interseção raio-disco: para cada raio de câmera, determina-se quais discos ele intersecta. Os pontos de interseção são então ordenados por profundidade e combinados usando composição alfa.

Para um raio r(t) = o + td, a interseção com um disco é calculada:

  1. Ponto de interseção com o plano do disco: t_hit = ((p_u - o) ⋅ n) / (d ⋅ n)
  2. Cálculo das coordenadas locais (s, t) do ponto de interseção no sistema de coordenadas do disco.
  3. Avaliação de G_2D(s, t) para obter a contribuição de opacidade naquele ponto.

Este método de renderização garante a precisão geométrica, pois cada interseção raio-disco representa um ponto exato na superfície.

Estimativa de Normais e Extração de Superfície

Representação Explícita de Normais

Uma das principais vantagens do 2DGS é que as normais são explícitas: a normal de cada disco é dada por n = t_u × t_v, eliminando a necessidade de estimá-la a partir de gradientes de densidade.

Durante o treinamento, pode-se incluir uma regularização de consistência de normais para garantir que normais de discos adjacentes apontem na mesma direção, evitando inversões irregulares:

L_normal = Σ_{i,j adjacente} (1 - n_i ⋅ n_j)

O artigo do 2DGS também introduz uma perda de consistência entre profundidade e normal:

L_dist = Σ_i w_i ⋅ (n̂ - n_i)²

Onde n̂ é a normal local estimada a partir do mapa de profundidade rnederizado (calculada a partir das diferenças de profundidade entre pixels adjacentes), e n_i é a normal explícita do disco i. A exigência de consistência entre n̂ e n_i força as normais dos discos a se alinharem com as normais geométricas reais. Essa perda melhora significativamente a qualidade da malha extraída.

Extração de Malha com Marching Cubes

O processo de extração de superfície segue estas etapas:

Modelo 2DGS treinado
    ↓
Criação de uma grade voxel uniforme sobre a cena
    ↓
Para cada ponto de voxel, calcula-se a densidade acumulada (soma das respostas de todos os discos)
    ↓
Marching Cubes: Extrai a malha na isosuperfície de densidade = 0.5
    ↓
Opcional: Suavização das normais da malha extraída usando as normais dos discos
    ↓
Saída: Malha triangular de alta qualidade (.obj / .ply)

Como os discos 2D do 2DGS se ajustam precisamente às superfícies, as malhas extraídas são de qualidade muito superior às obtidas do 3DGS. As bordas são nítidas, as normais estão corretas e estruturas finas (como lâminas e folhas) são capturadas adequadamente.

Comparação com 3DGS

Característica 3D Gaussian Splatting 2D Gaussian Splatting
Unidade Básica Elipsoide 3D Disco 2D (sem espessura)
Método de Renderização Splatting (projeção) Interseção Raio-Disco
Normais Implícitas Explícitas
Qualidade da Malha Baixa Alta
Velocidade Renderiz. Mais Rápida Ligeiramente mais lenta
Qualidade Renderiz. Alta (PSNR) Similar, ligeiramente inferior
Estruturas Finas Difícil de representar Naturalmente suportadas
Casos de Uso Ideais Nova Síntese de Visão (Novel View Synthesis) Cenas com necessidade de saída geométrica

Comparação com Outros Métodos de Reconstrução de Superfície

Método PSNR Distância Chamfer (↓) Tempo de Treinamento Velocidade de Renderização
NeuS 31.5 0.50 ~8h <1 FPS
Instant-NGP+Marching 30.8 0.65 ~5min ~10 FPS
3DGS+Marching 31.9 0.92 ~35min >100 FPS
2DGS 31.4 0.44 ~40min ~80 FPS

A Distância Chamfer mede a distância média ponto a ponto entre a malha reconstruída e a malha real. Um valor menor indica maior precisão geométrica. O 2DGS supera significativamente o 3DGS neste métrica.

Limitações e Trabalhos Futuros do 2DGS

A velocidade de renderização do 2DGS é ligeiramente inferior à do 3DGS devido ao custo computacional adicional da interseção raio-disco. Enquanto o 3DGS pode atingir mais de 100 FPS, o 2DGS geralmente opera entre 60-80 FPS.

O treinamento de estruturas finas pode ser desafiador. Durante a inicialização, as orientações dos discos derivadas de nuvens de pontos podem ser imprecisas, exigindo estratégias de inicialização de normais mais cuidadosas para convergência.

O 2DGS não é ideal para fenômenos volumétricos como fumaça ou nuvens, onde não há superfícies bem definidas. Nesses casos, a representação de elipsoides 3D do 3DGS é mais adequada.

Trabalhos futuros incluem métodos como GOF (Gaussian Opacity Fields), que propõem uma melhor mapeamento de campos de Gaussianas 3D para campos de opacidade para extração de superfícies precisas sem alterar a representação básica do 3DGS. Outra abordagem, SuGaR, utiliza um método de duas fases: treina um 3DGS e, em seguida, refina as Gaussianas com orientação de malha para equilibrar velocidade e precisão geométrica.

Tags: Gaussian Splatting 2DGS Reconstrução 3D Visão Computacional renderização

Publicado em 10-22 23:19