본문 바로가기
3D-GS

[논문 리뷰] A Survey on 3D Gaussian Splatting (Jan 2024)

by xoft 2024. 1. 17.

A Survey on 3D Gaussian Splatting, Guikun Chen, arXiv2024

3D Gaussian Splatting in 2023

이번에 리뷰 할 논문은 최초의 3D Gaussian Splatting(3DGS) Survey논문입니다. 2024년 1월 8일에 arXiv에 공개되었습니다. 위 그래프는 2023년에 발표한 3DGS 논문 갯수 통계입니다. 3DGS는 7월에 발표 되었고 그 이후 조금씩 발표되다가 11월부터 논문 갯수가 대폭 증가한 것을 볼 수 있습니다.

 

개인적으로 3DGS가 Novel-view Synthesis, 3D Reconsturction, Graphics 등 다양한 분야에서 2024년 트랜드가 될 것이라 생각하고 있기에, survey 논문을 깊이 있게 리뷰해보았습니다.

 

제가 개인적으로 정리하고 있는 3DGS논문 List글도 있습니다. 같이 참고바랍니다.

 

 

[Organizing] 3D Gaussian Splatting (3D-GS)

Curated resarch paper list of 3D Gaussian Splatting (3D-GS). it's a new rendering paradigm for novel view synthesis. I organized the direction and technology trends in which 3D-GS can develop. 더보기 [논문 정리] 3D Gaussian Splatting(3D-GS) 개선

xoft.tistory.com

 

 

 

 

Novel-view Synthesis의 변화

2019년이전까지는 Novel-view Synthesis분야에 Light Field, SfM(structure-from-motion), MVS(Multi View Stereo)연구들이 주를 이뤘습니다. 

 

2020년. NeRF(Neural Radiance Field)라는 연구가 발표됩니다.

3D 좌표를 입력으로 color와 density 출력하는 neural network를 설계하여, 적은 수의 이미지로 photorealistic한 랜더링을 할 수 있게 됬습니다. continous하고 volumetric한 scene을 생성할 수 있었고, 이전에는 볼 수 없었던 디테일과 현실감을 가진 이미지를 합성해내게 됩니다. 발표 당시 Computer Graphics 과 3D Reconstruction 분야에서 이정표(milestone)가 되는 연구였고, Image Synthesis분야에서 새로운 패러다임이었습니다.

 

그 이후 수 많은 NeRF 논문들이 나왔으나 연산 효율성(computation efficiency)와 제어성(controllability) 관점에서 한계가 있었습니다. pixel마다 ray marching으로 3D point를 샘플링하기에 학습시간과 랜더링 시간이 오래 소요됩니다. 또한 랜더링시에 리소스(CPU, GPU, RAM)가 많이 사용됩니다. 고해상도일수록 랜더링이 어렵습니다.

 

 

 

 

3D Gaussian Splatting의 등장

이러한 흐름 속에 3D Gaussian Splatting가 발표됩니다. 단순한 성능 개선이 아니라 Scene Representation과 Rendering분야에 새로운 패러다임을 만드는 방식으로 등장합니다.

 

NeRF가 implicit representation과 coordinate-based 모델이었다면, 3D GS는 기본적으로 수많은 3D 가우시안으로 scene을 표현하는 방식이며, explicit representation, differentiable(미분가능한) pipeline, point-based rendering, no neural network를 특징으로 가집니다. 자세한 설명은 3DGS 이전글 참조바랍니다. (implicit은 neural network의 weight처럼 parameter간의 관계성을 해석 할 수 없는 경우에 사용되고, explicit은 parameter를 해석 가능 할 경우에 사용됩니다.)
이에 기반하여 병렬처리, 효율적인 연산, 효율적인 랜더링이 가능하게 됩니다.

위 그림은 본 논문에서 소개하고 있는 3DGS 알고리즘입니다. 리마인드하며 아래 글을 읽을 때 참조하시길 바랍니다.

  • NeRF와 동일하게 high-quality image synthesis를 위해 필요한 continuous volumetric radiance field의 특성을 가지면서, NeRF에서는 하지 못했던 empty한 공간에서의 비효율적인 연산을 피할수 있게 되었습니다.
  • 3D gaussian들을 image plane으로 projection하고, 각 pixel마다 gaussian들을 sorting합니다. 언뜻보기에 연산량이 많아보이지만, 1개의 이미지를 여러개의 Patch 이미지(Tile)로 나누어 병렬적으로 연산함으로써 연산 속도와 연산 효율성을 향상시킵니다.
  • Anisotropic Gaussian (이전글)으로 설계하면서 compact하게 공간을 표현하여 메모리 load를 줄이게 되었고, scene을 정교하게 표현 할 수 있게 되었고, 다양한 scale로 복잡한 scene을 표현 할 수 있게 되었습니다. 특히 dynamic scene도 잘 표현합니다.

3DGS는 높은 visual quality를 가지며 realtime 랜더링이 가능하고, 다양한 조명 환경과 복잡한 gemoetries를 가진 시나리오에서 explicit represenetation을 통해 dynamic하게 scene 수정(control)이 가능하게 되면서,  VR, AR, 영화분야까지 다양한 application 제작 가능성이 열리게 되었습니다.

 

 

 

 

Terminology

논문에서 3D GS와 관련된 용어 정리를 별도로 하고 있습니다. 제가 이해하고 있는 방식이 아닌 논문에서 표현하는 방식대로 적어봤습니다. 알고 있는 용어일지라도 한번 짚고 넘어가기에 좋습니다.

  • Radiance Field : 3차원 공간에서 light의 distribution 표현(representation)방법 중에 하나입니다. light와 surface/material의 상호작용을 보여주는 field(장)으로 볼 수 있습니다. 모든 방향에서 light의 양을 설명하는 함수로 표현합니다.
  • Implicit Radiance Field : scene의 geometry를 explicit하게 정의하는 것 없이 light의 distribution을 나타냅니다. radiance가 explicit하게 저장되지 않습니다. 즉각적인 쿼리를 통해 획득합니다.
  • Explicit Radiance Field : discrete spatial structure(이산화된 공간 구조)에서 light의 distribution을 나타냅니다. radiance를 각 공간상 위치에 저장합니다. voxel grid 방법과 point set 방법이 explicit하다고 볼 수 있습니다. 빠르다는 장점과 함께 메모리가 많이 소모된다는 단점이 있습니다
  • Scene Reconstruction : 여러 이미지들 또는 데이터들의 집합으로부터 scene의 3D Model을 만듭니다.
  • Rendering : 컴퓨터가 읽을 수 있는 정보를 pixel-based image로 바꿉니다.
  • Neural Rendering : 딥러닝과 Graphic 기술을 활용한 Rendeing입니다.
  • Volumetric Representiation : (material 공간 또는 empty 공간을 채우는 형태의) surface와 volume으로 object와 scene을 표현합니다. fog, smoke, 반투명한 것을 세밀하게 랜더링하여 표현 할 수 있습니다.
  • Ray-Marching : volume representation에서 volume을 지나가는 light의 경로를 점진적으로 추적하여 이미지 랜더링을 위해 사용되는 기술입니다. NeRF에서 quality를 향상시키기 위해 사용되지만 연산량이 많은 문제가 있습니다.
  • Point-based Rendering : 전통적인 polygon(=3D mesh를 구성하는 다각형)방식이라기 보다 point를 사용해서 3D Scene을 visualization하는 기법입니다. 복잡하고 구조가 없고 sparse(=드문드문)한 geometric data를 랜더링하는데 특히 효과적입니다. 다만 scene에 hole이 생기거나 aliasing(=배율에 따른 계단현상)이 발생 할 수 있습니다.

 

 

 

 

Applications & Tasks

3DGS가 쓰이는 Robotics, Scene Reconstruction, AI생성 콘텐츠, 자율주행 분야에 대해 소개합니다.

 

SLAM (Simultaneous Localization and Mapping)

전통적인 SLAM은 point/surfel clouds 또는 voxel grid를 사용했지만 3DGS는 anisotropic gaussian을 이용합니다. 아래는 3DGS를 사용한 5가지 연구입니다.

  • GS-SLAM : 3DGS로 Scene을 표현했습니다. 3DGS의 efficiency(=적은 수의 gaussian으로 scene을 표현)와 accuracy(=gaussian으로 detail한 scene을 표현)에 균형을 맞추고, map optimization을 상당히 개선하고 RGB-D mapping을 re-rendering했습니다.
  • SplaTAM : pose가 주어지지 않는 monocular RGB-D로 3D Gaussian을 사용했습니다. rendering speed와 map accuacy를 향상시켰습니다.
  • Photo-SLAM : Neural Rendeing과 SLAM을 통합해서, 3DGS로 효율적이고 high-quality의 map을 만들어냈습니다. portable한 장비에서 photorealistic한 map을 만들고 rendering속도를 상당히 개선하게 됩니다.
  • PVG, Street gaussians : dynamic한 urban scene을 모델링했습니다.

 

Dynamic Scene Modeling

시간의 변화에 따라 3차원의 구조와 appearance를 표현하는 분야입니다. AR/VR, 3D animation, computer vision 분야에서 쓰일 수 있습니다.

  • 4D-GS, Dynamic3D : 3DGS를 dynamic scene을 모델링하는데 초점이 맞춰져 있습니다. 움직이는 scene 요소를 tracking하고 representation하는 방법을 소개하고 있습니다.
  • Gaufre, Gaussian-flow, Deformable 3DGS, Dynmf, neural parametric gaussians, Swags : 변형 가능하거나 움직일 수 있는 모델을 소개합니다.
  • Sc-gs, Control4d, Cogs : dynamic scene에서 새로운 application과 변형에 대해 다룹니다. creative하고 interative한 시나리오에서 4D space안의 콘텐츠를 dynamic하게 수정합니다.
  • Gaufre, An efficient 3DGS : efficiency 향상과 realtime을 강조합니다. real-world 서비스를 위해 빠르게 rendering하고 메모리 사용량을 축소하게 됩니다.
  • Spacetime GFS : 퀄리티와 속도를 향상시킨 rendering 기술을 도입합니다. representation과 rendering pipeline을 optimizing하는데 focusing합니다.

 

AIGC (AI-Generated Content)

AIGC는 AI system에서 생성되거나 변형되는 디지털 콘텐츠를 의미합니다. 3DGS를 통해 사람이 만든 콘텐츠를 모방하거나 확장하거나 증강 할 수 있습니다. entertainment, education, technology 등 다양한 분야에서 잠재력을 갖고 있습니다. 최근에 generative model, avatar, scene editing 분야에서 많은 연구들이 발표되었습니다.

  • Text-to-3D using GS : text-to-3D에 GS를 사용해서 3D object를 생성했습니다.
  • 3dgs-avatar : video를 입력으로 animatable human avatar를 생성했습니다. 50 FPS의 랜더링속도를 보였습니다.
  • Gaussian Grouping : segmentation, scene editing을 했습니다.
  • Point'n move : interative한 scene manipulation, inpainting에 3DGS가 사용됬습니다.
  • Gaussianeditor : text instruction으로 scene manipulation과 inpainting을 했습니다.

 

Autonomous Driving

자율주행을 위해 주변 사물과 환경에 대해서 파악이 필요합니다. 이를 위해 3D GS이 사용하려는 시도가 있었습니다.

  • Street Gaussian,  Drivinggaussian : 3D Gaussian을 갖고 dynamic driving/street scene을 모델링했습니다. 

 

 

 

 

성능 비교

Localization

Replica데이터셋으로 평가하였습니다. 18개의 3D 실내 scene 데이터셋으로 dense한 mesh, 고해상도의 HDR texture, 각 element의 semantic 정보를 포함하고 있습니다. 3개의 방과 5개의 office에 대해서 평가했습니다. 로봇 또는 device의 전체 trajectory에서 estimation한 값과 정답 값간의 Euclidean 거리에 대한 root mean square를 측정했습니다. ATE(absolute trajectory error)에 대한 RMSE(root mean square error)를 측정했습니다.

localization 기반의 3d Gaussian이 dense visual SLAM기반의 NeRF보다  장점을 갖고 있습니다. SplaTAM은 이전의 최고성능을 가진 Point-SLAM보다 30%향상(0.52cm->0.36cm)했습니다. localization task에서 3D Gaussian으로 scene을 representation하는 능력를 확인 할 수 있습니다.

 

 

Rendering in Static Scenes

랜더링은 특정 pose에서 3D object를 pixel기반 이미지로 변형하는 것에 초점이 맞춰져 있습니다. 여기서는 랜더링 퀄리티를 평가하였습니다. 위와 동일한 Replica 데이터셋으로 PSNR / SSIM / LPIPS를 평가하였습니다.

Gaussian-SLAM이 퀄리티면에서 SOTA를 달성하였고, GSSLAM은 Point SLAM과 비교하면 578배 빨라졌습니다. scene reconstruction과 rendering에 관해서 3DGS의 능력을 증명 할 수 있습니다.

 

 

Rendering in Dynamic Scene

D-NeRF데이터셋은 특정 viewpoint로부터 촬영된 50~200장의 frame의 video로 구성되어 있습니다. synthetic, animated object를 특징으로하고, scene마다 20개의 test image로 구성되어 있고, 800x800해상도로 되어 있습니다. 다양한 카메라 포즈에서 moncular camera로 촬영된 이미지들로 모델을 평가하게 됩니다.

표에 보듯이 3D GS 최초 연구는 dynamic scene 생성을 하지 못합니다. PSNR을 보면, FFDNeRF가 이전 SOTA였었지만, 3DGS에서 dynamic을 모델링한 CoGS가 이를 훨씬 뛰어넘었습니다.

 

 

Rendering in Driving Scene

자율주행 연구 데이터인 nuScenes으로 평가했습니다. 6 camera, 1 LiDAR, 5 RADAR, GPS, IMU를 사용해서 캡쳐한 1000개  driving scene데이터입니다.  또한 23개의 object class를3D bounding box으로 labeling되어 있습니다. 6개의 scene에 대해 evaluation하였습니다. RGB rendering 성능에 대해 PSNR, SSIM, LPIPS로 측정했습니다.

이전 SOTA인 S-NeRF와 비교했을 때, 3DGS기반의 DrivingGaussian이 상당히 높은 퀄리티를 볼 수 있습니다.

 

 

Human Avatar

주어진 mult-view video로부터 human avata의 모델을 생성을 목표로 합니다. ZJU-MoCap 데이터셋을 사용하였으며, 해당데이터셋은 1024x1024 해상도의 카메라를 synchronized(동기화)한 23개의 camera로 촬영되었습니다. 6개의 subject에 대해 평가하였습니다. 여기서도 PSNR, SSIM으로 평가하였으며, 추가로 LPIPS*는 LPIPS곱하기1000을 한 값이라고 합니다.

이전 SOTA인 Instant-NVR와 비교했을 때, 3DGS기반의 GART가 높은 퀄리티로 새로운 SOTA를 달성하게 됩니다. 속도 관점에서 Human101은 보면 Instant-NVR보다 68배 더 빠른 랜더링을 보이고 있습니다.

 

 

 

 

Future Research

3DGS의 연구방향에 대해서 언급합니다. 소개하고 있는 논문명을 이텔릭체로 표시했습니다.

 

Data-Efficient 3DGS Solution

3DGS는 적은 입력 이미지들로 장면을 구성 할 수 있는 잠재력을 갖고 있습니다. 최근엔 depth information (sparsegs, fsgs, depth-rgulaized optimization for 3dgs)와 dense probability distribution (pixelsplat)와 pixel-to-gaussian mapping (splatter image)을 활용한 연구들이 발표되었습니다. 하지만 이 기법들을 사용할지라도, 데이터가 부족한 영역에서는 artifacts(노이즈 같은 것)가 발생하기도 하며 부정확한 결과를 만들게 됩니다. data interpolation(보간) 또는 integration(적분)을 바탕으로, 적은수의 입력 데이터를 처리하는 새로운 기법이 개발 될 수 있습니다.

 

 

Memory-Efficient 3DGS Solution

NeRF와 3DGS는 한정된 하나의 scene에 대한 paramter만을 저장하게 됩니다. scene의 크기가 커질수록, 저장되는 parameter의 크기와 사용되는 메모리 관리가 필요로 하게 됩니다. 이를 위한 효율적인 데이터 구조를 탐색하고, 향상된 압축 기술을 조사하는 것이 향후 연구 포인트가 될 수 있습니다(lightgaussian, compact3d, compact3dgs).

 

 

Advanced Rendering Algorithms

현재 3DGS rendering pipeline은 단순하며 추가적으로 optimization 될 수 있습니다. 예를들어 단순히 visibility(=rendering) 알고리즘으로 Gaussian의 depth와 blending 순서를 급격히 바꿀 수도 있습니다. scene안에서 light와 material간의 정밀한 상호작용에 대해 시뮬레이션하는 것을 목표로 할 수 있습니다(relightable 3dgs, gaussianshader). 가능성있는 접근법은 전통적인 graphics의 개념들을 3DGS의 context에 적용하는 것도 있습니다. 향상된 랜더링 기술 또는 하이브리드 모델을 3DGS와 통합하는 지속인 노력이 있었습니다 (mip-splatting, scaffold-gs, deblurring 3dgs, gs algorithm with color & opacity) . 추가적으로 inverse rendering과 application에 관한 것도 미래 연구가 될 수 있습니다 (gs-ir, gir).

 

 

Optimization and Regularization

Gaussain은 복잡한 geometry를 표현하는데 이점이 있지만, 원치않는 visual artifacts를 만들 수 있습니다. 특히 카메라 pose에 의존적인 영역에서 커다란 3DGS는 artifact를 만들 수 있습니다. 특히 elements가 갑작스럽게 나타나거나 사라지는 영역에서 두드러집니다. 3D GS를 regularization, optimization하는 연구가 고려되어 질 수 있습니다. antialiasing의 도입은 depth와 blending 순서를 갑작스럽게 바꾸는것을 완화 할 수 있습니다. optimization 알고리즘의 개선은 space안의 gaussian들을 좀 더 잘 조절 할 수도 있습니다(eagles, colmap-free 3dgs). regularization을 optimization process에 포함시키는 것은 수렴속도를 향상시키고 visual noise를 smooth하게 만들고 이미지 퀄리티를 향상시킬 수 있습니다(depth regularized optimization for 3dgs). 많은 모델 hyperparamter 갯수는 3DGS의 generalization에 영향을 미치게 되므로 이 또한 개선 요소입니다.

 

 

3D Gaussians in Mesh Reconstruction

mesh reconstruction에서 3DGS의 잠재력과 volumetric, surface representation 분야에서의 3DGS는 아직 완전히 연구되지 않았습니다. mesh reconstruction task 문제를 해결하기 위해 Gaussain 기초연구들이 얼마나 적용 될수 있을지에 대한 연구가 필요합니다. volumetric rendering과 전통적인 surface-based 연구들을 연결하면서 새로운 랜더링 기술과 application에 대한 insight를 만들 수 있습니다. 3DGS에 기반한 mesh extraction과 reconstruction연구의 예시로는 sugar, md-splatting, neusg 연구가 있습니다.

 

 

Empowering 3D GS with More Possibilities

3DGS의 엄청난 잠재력에도 불구하고, 아직 개척되지 않은 3DGS기반 application 범위가 넓습니다. 유망한 연구 방향은 추가적인 attribute를가지고 3D Gaussian을 확장시키는 것이 될 수 있습니다. 추가적인 attributes들의 예시로는 lingustic (language embedded 3dgs, langsplat, neusg)이 있을 수 있고, physical properties(physgaussian, pegasus)가 있을 수 있습니다. 그 외에 camera pose estimation(icomma), hand-object interation(manus), uncertainty의 quantification(fisherrf)이 있을 수 있습니다. 이러한 기초 연구들은 3DGS 발전에 큰 기회가 될 수 있습니다.

 

 

 

 

Closing..

개인적으로 3DGS 연구동향을 막무가내로 파악하고 있었는데, 잘 정리된 글을 보니 머리속이 조금 정리되는 듯한 느낌이 드네요. 생각정리에 도움이 되는 논문이었습니다. 본 논문에서 제가 별도로 정리하고 있는 3DGS 분류 대부분을 커버하고 있었습니다. 제가 놓쳤던 논문들을 발견 할 수 있었었던 반면, 오히려 제가 더 파악하고 있는 논문들도 있었습니다. 그리고 성능비교 파트에서 제가 생각 했던 것보다 여러영역에서 높은 퀄리티로 SOTA를 달성한 것을 볼 수 있었습니다.

Future Research를 보니 아직 연구할게 무궁무진하다는 생각이 들면서, NeRF가 나왔을 때도 메인 task인 novel-view synthesis가 아닌 여러 다양한 task들을 풀었었는데, 3DGS에서도 NeRF에서 풀던 task뿐만 아니라 전혀 다른 새로운 task들을 푸는게 나오지 않을까 기대합니다. 

댓글