
ECCV 2024. [Paper] [Page] [Github]
Yang Liu, He Guan, Chuanchen Luo, Lue Fan, Naiyan Wang, Junran Peng, Zhaoxiang Zhang
Chinese Academy of Sciences | University of Chinese Academy of Sciences
Centre for Artificial Intelligence and Robotic | Shandong University | TuSimple
University of Science and Technology Beijing
1 Apr 2024
https://neverthe1ess.tistory.com/259
[논문 리뷰] 3D Gaussian Splatting for Real-Time Radiance Field Rendering
본 게시글은 3D Gaussian Splatting for Real-Time Radiance Field Rendering 논문을 읽고 리뷰, 정리하였습니다. 학부생 수준이라 많이 미흡한 점 참고 부탁드립니다. 지적 또한 감사히 받겠습니다. 3D scene 표현의
neverthe1ess.tistory.com
3D Gaussian Splatting의 성능은 어마어마 했죠. 하지만 렌더링 결과를 보면 정말 사진과 다를 바 없을정도로 선명했습니다. 하지만 그만큼의 trade-off도 있었습니다. 대규모 도시 스케일의 scene의 수준을 재구성할 때 메모리 폭발과 렌더링 속도 저하가 발생합니다.
아무래도 어쩔 수 없겠죠. 앞으로 출시할 GTA6나 사이버펑크 2077과 같은 정말 현실감 넘칠 정도의 그래픽 게임을 할 때에도 어마무시한 그래픽카드의 성능이 요구되듯이, 3DGS도 렌더링할 공간이 커지면 커질수록 더 높은 하드웨어적인 요구사항이 필요할 것이라는 건 당연한 얘기일 겁니다.
하지만 이 문제를 이 논문에서는 Divde-and-Conquer 학습 전략과 Block-wise Level-of-Detail(LoD) 렌더링 전략으로 해결했습니다.
Abstract
3DGS는 실시간 3D 장면 재구성에서 큰 진전을 가져왔지만, 대규모 장면($1.5km^2$ 이상)에서는 학습과 렌더링 모두 어렵습니다.
이 논문은 아래의 두 가지 기여를 제안하고 있습니다.
- 분할 정복(Divde-and-Conquer) 학습: Global scene prior와 적응형 학습 데이터 선택으로 효율적인 병렬 학습 및 seamless fusion 달성
- LoD 전략: 압축 기반으로 여러 디테일 레벨을 생성하고, block-wise 선택, 결합으로 다양한 스케일에서 실시간 렌더링 가능
결과적으로 SOTA 렌더링 품질을 달성하면서, 극단적으로 다른 스케일에서도 일관된 실시간 렌더링을 가능하게 합니다.
Introduction

문제 정의
대규모 장면을 재구성하는 것(3D Large-scale scene reconstruction)은 AR / VR, 자율주행, 스마트시티 등에서 핵심 기술이지만, 기존 방법들에는 한계가 있었습니다.
- NeRF 기반 방법(e.g. Block-NeRF, MegaNeRF)은 디테일이 부족하거나 속도가 느립니다.
- 3DGS를 그대로 적용하면 아래와 같은 두 가지의 치명적인 문제가 발생합니다.
3DGS의 두 가지 문제
1. 학습 시 메모리 폭발
- 24GB RTX3090은 Gaussian 수가 1,100만 개 넘으면 OOM 발생
- $1.5 km^2$ 도시를 고품질로 재구성하려면 2,000만 개 이상 필요하고 40GB A100에서도 학습 불가
2. 렌더링 속도 병목(Depth Sorting)
- 작은 Train 장면(110만 Gaussians): average visible Gaussians 개수 65만개이고 103 FPS
- $2.7 km^2 MatrixCity(2,300만 Gaussians): average visible Gaussian 또한 동일하게 65만인데도 21FPS로 급락
즉, 불필요한 Gaussians를 rasterizer에서 제외하는 것이 실시간 렌더링의 핵심이라는 것
전체 장면을 공간적으로 인접한 블록으로 나누어 병렬 학습하고, 렌더링 시에는 블록 단위로 필요한 Guassians만 LoD에 따라 선택한다.
Contribution
- 대규모 3DGS를 병렬로 재구성하는 효과적인 DIvide-and-Conquer 전략
- 극단적으로 다른 스케일에서 최소 품질 저하로 실시간 렌더링하는 LoD 전략
- 공개 벤치마크에서 SOTA 달성
Related Works
Neural Rendering
NeRF 계열에서는 MipNeRF360 등이 품질을 향상시켰지만 ray sampling으로 인한 속도 한계가 존재했습니다.
속도 관점에서 InstantNGP(multi-resolution hash grid), Plenoxels(sparse voxel grid) 등이 개선된 논문이 있습니다.
Point-based Rendering

3DGS가 명시적 Gaussian primitive로 NeRF 대비 속도, 품질 모두 우위입니다.
그러나 수백만 개 Gaussian의 메모리, 저장 부담이 있었고, LightGaussian 등 압축 방법이 등장했습니다.
대부분 작은 장면 위주이고 대규모 장면 연구는 부족하다는 점을 지적했습니다.
Large Scale Scene Reconstruction
NeRF 계열로는 Block-NeRF, MegaNeRF, Switch-NeRF(divide-and-conquer + MLP)
GS 계열로는 VastGaussian이 등장했지만 렌더링 속도 문제는 여전했습니다.
Level of Detail(LoD)
BungeeNeRF(progressive growing), NGLoD(octree), Tri-MipRF(cone casting) etc.
명시적 3D Gaussian 표현에 LoD를 적용한 것은 이 논문이 최초입니다.
Method
Preliminary
3DGS를 다시 떠올려봅시다.
3DGS는 장면을 이산적 3D Gaussians $G_K = {G_k|k = 1, ..., K}$로 표현하죠.
- 학습 가능 속성: 위치 $p_k$, 불투명도 $/alpha_k$, scaling / rotation, SH 계수 $f_k$
- 렌더링: 화면 공간으로 splatting하고 depth sort 한 후 alpha blending

Training CityGS
학습 파이프라인은 크게 3단계로 구성됩니다.

Global Gaussian Prior Generation
이게 왜 필요할까?
COLMAP 포인트만으로 블록 분할 시
- Depth 제약과 global awareness 부재로 floater(부유물) 발생
- 블록 경계에서 fusion 어려움
- 렌더링 이미지가 흐려서 view importance 판단 불가

이를 아래와 같이 해결합니다.
모든 관측치로 30,000 iteration 학습하여 strong global geometry를 먼저 생성합니다.
이를 기반으로...
- Geometry가 적절한 위치로 유도되어 fusion 시 간섭 제거
- 정확한 geometry 분포를 제공하고 이를 데이터 분할에 활용 가능합니다.
여기서 Global Gaussian Prior이라 함은 대략적인 전체 구조를 생성한다고 볼 수 있습니다.
단순히 구역을 나누어 학습하면 나중에 합칠 때 경계선이 생기거나 기하학적 구조가 어긋날 수 있어요.
여기서 Global Prior은 블록 간의 일관성을 유지할 수 있게 합니다.
Primitives and Data Division
Gaussian Division
- 무한 공간을 bounded cubic으로 contraction
- Foreground는 선형 매핑, 나머지는 비선형 매핑
- contracted 공간에서 균일 grid로 분할해서 워크로드 균형
Data Division
각 블록 $j$에 대해 pose $\tau_i$를 할당하는 두 가지 기준
- $B_1$(기여도 기반): 블록 $j$가 렌더링에 큰 기여 시 할당(SSIM 변화량 $\epsilon$ 초과 시)
$$\text{LSSIM}\left(I_{GK}(\tau_i), I_{GK \setminus GK_j}(\tau_i)\right) > \varepsilon$$
- $B_2$(위치 기반): 카메라 pose가 블록 안에 있을 때 할당(블록 가장자리 floater 방지)
최종적으로 $B = B_1 + B_2$
밝기 변화에 robust하고 구조적 차이를 잘 포착하기 때문에 SSIM을 사용합니다.
Finetuning and Post-processing
- 각 블록을 원본 uncontracted 공간에서 30,000 iteration 병렬 학습
- $L1 + SSIM loss$(3DGS 원본과 동일)
- 학습 후 각 블록의 공간 bound 내 Gaussian만 필터링하고 단순 concatenation으로 fusion
- Global prior 덕분에 블록 간 간섭이 거의 없어 seamless 결합 가능
Level-of-Detail on CityGS
Detail Level Generation
- LightGaussian 압축 기법으로 학습된 Gaussian에서 직접 여러 LoD 생성
- 압축률 50%, 34%, 25% → LoD 2(가장 세밀), LoD 1, LoD 0(가장 거침)
Detail Level Selection and Fusion
Block-wise 선택 전략
- 점별(point-wise) 거리 계산은 오버헤드가 커서 블록 단위로 처리
- 블록의 8개 코너 중 카메라와 가장 가까운 거리로 LoD 결정
- Frustum과 블록 bounding box의 IoU로 가시성 판단
Floater 처리는 MAD(Median Absolute Deviation)으로!
Floater 때문에 블록 bound가 비정상적으로 커지는 문제가 발생합니다. 이를 해결하기 위해서 아래의 방법을 이용합니다.
$$MAD_j = median(|p_k^j - median(p_k^j)|)$$
$$p_{min}^j = max(min(p_k^j), median(p_k^j) - n_{MAD} * MAD)j)$$
이는 통계적으로 robust한 블록 경계를 추정합니다.
'PAPER REVIEW' 카테고리의 다른 글
| [논문 리뷰] Accurate structure prediction of biomolecular interactions with AlphaFold 3 (0) | 2026.05.24 |
|---|---|
| [논문 리뷰] Highly accurate protein structure prediction with AlphaFold (1) | 2026.05.23 |
| [논문 리뷰] 3D Gaussian Splatting for Real-Time Radiance Field Rendering (0) | 2026.04.17 |
| [논문리뷰] Segment Anything (0) | 2026.03.27 |
| [논문리뷰] SAM3D: Segment Anything in 3D Scenes (0) | 2026.03.27 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!