Explore o Gaussian Splatting para reconstrução fotorrealista de cenas 3D. Saiba como ele permite a renderização em tempo real e se integra ao Ultralytics para visão.
Gaussian Splatting é uma técnica moderna de rasterização usada em computação gráfica e visão computacional para reconstruir cenas 3D fotorrealistas a partir de um conjunto de imagens 2D. Ao contrário da modelagem 3D tradicional, que depende de malhas poligonais, ou dos recentes avanços em IA, como Neural Radiance Fields (NeRF), que utilizam redes neurais para aproximar uma cena, o Gaussian Splatting representa uma cena como uma coleção de milhões de distribuições gaussianas 3D (elipsóides). Este método permite a renderização em tempo real a altas taxas de quadros (muitas vezes excedendo 100 FPS), mantendo uma fidelidade visual excepcional, resolvendo um grande gargalo de desempenho encontrado em métodos anteriores de síntese de visão .
A ideia central gira em torno da representação explícita do espaço 3D, em vez de implícita. Num fluxo de trabalho típico, o processo começa com uma nuvem de pontos esparsa gerada a partir de um conjunto de fotos usando uma técnica chamada Structure from Motion (SfM). Cada ponto nessa nuvem é então inicializado como uma gaussiana 3D.
Durante o processo de treino, o sistema otimiza vários parâmetros para cada gaussiana:
O termo «splatting» refere-se ao processo derasterização em que estas gaussianas 3D são projetadas — ou «splatted» — no plano da câmara 2D para formar uma imagem. Esta projeção é totalmente diferenciável, o que significa que algoritmos padrão de descida de gradiente podem ser usados para minimizar a diferença entre a imagem renderizada e a foto original.
Embora ambas as técnicas tenham como objetivo gerar novas visões de uma cena, elas diferem fundamentalmente em arquitetura e desempenho. O NeRF (Neural Radiance Fields) codifica uma cena dentro dos pesos de uma rede neural. A renderização de um NeRF requer consultar essa rede milhões de vezes para cada quadro (ray marching), o que é computacionalmente caro e lento.
Em contrapartida, o Gaussian Splatting usa uma representação explícita (a lista de gaussianas). Isso permite que ele utilize uma rasterização eficiente baseada em blocos, semelhante à forma como os videojogos renderizam gráficos. Consequentemente, o Gaussian Splatting é significativamente mais rápido para treinar e renderizar do que os NeRFs, tornando-o mais viável para aplicações de consumo e inferência em tempo real.
A velocidade e a qualidade do Gaussian Splatting abriram novas portas em vários setores:
Para que o Gaussian Splatting funcione de forma eficaz, as imagens de treino geralmente precisam de ser estáticas. Objetos em movimento (como peões ou carros) nas fotos de origem podem causar artefactos chamados «floaters». Pipelines avançados usam segmentação de instância para mascarar automaticamente esses elementos dinâmicos antes de treinar o modelo splat.
Ultralytics permite que as equipas gerenciem conjuntos de dados e treinem modelos que podem auxiliar nessa fase de pré-processamento. Veja como se pode usar um modelo de segmentação para criar máscaras para um conjunto de dados destinado à reconstrução 3D:
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")
O Gaussian Splatting representa uma mudança na visão computacional em direção a métodos híbridos que combinam a capacidade de aprendizagem do Deep Learning com a eficiência dos gráficos computacionais clássicos. Essa técnica está a evoluir rapidamente, com pesquisadores a explorar maneiras de comprimir os tamanhos dos ficheiros (que podem ser grandes) e integrá-la com IA generativa para criar recursos 3D a partir de prompts de texto. À medida que aceleradores de hardware como GPUs continuam a melhorar, o Gaussian Splatting provavelmente se tornará o padrão para capturar e renderizar o mundo real em formato digital.