AI 기술 (NeRF와 3D Gaussian Splatting)
최근 3차원 컴퓨터그래픽스 연구들이 기존의 점군데이터, 폴리곤 메시(Polygon Mesh) 모델 방식에서 벗어나 'NeRF'(Neural Radiance Fields)나 '3D Gaussian Splatting' 같은 새로운 모델에 집중되고 있다.
'3D Gaussian Splatting'은 겹쳐진 투명타원체를 이용해 높은 3D 시각화 품질을 보여주며 차세대 디지털트윈 가시화 기술로 주목받고 있다
출처 경향신문 배문규기자님 기사: 가우시안 스플래팅 기술로 3D이미지 구현, 팀스튜디오 관계자가 걷는 모습(SK텔레콤제공)
NeRF(Neural Radiance Fields) 객체의 3D 모델을 생성하는 것이 아니라 객체를 바라보는 모든 시점의 장면을 생성하는 Novel View Synthesis 기술로
특정 객체나 장면을 여러 시점에서 관찰한 결과로부터 촬영하지 않은 각도의 뷰를 생성하여 3D 렌더링된 것처럼 보여주는 기술이다.
NeRF는 새로운 뷰를 생성할 때 MLP(Multi-Layer Perceptron) 네트워크를 사용하여 결과를 생성하므로 3D 형상 정보를 미리 저장하고 보여주는 전통적인 방식과는 다르다.
NeRF는 연속적인 공간 표현을 사용하기 때문에 뷰 이동이 자연스럽고
3D 모델 정보를 사용하여 광선과 물체 간의 관계를 계산하여 렌더링하는 기존 방법과 비교하여 저장 공간 부담이 적다.
특히 NeRF는 컬러 값뿐만 아니라 볼륨 밀도까지 추정하므로 현실적인 렌더링 결과를 제공한다.
NeRF는 지도학습(supervised learning) 방식을 사용하기 때문에 학습에 정답 데이터(Ground Truth, GT)가 필요하다. 이미지 입력은 여러 시점에서의 객체를 나타내므로 이미 가지고 있는 뷰를 예측하도록 모델을 학습시키고, 예측값과 실제 값 사이의 손실을 계산하여 학습이 진행된다.
(주로 신경망(neural network)을 사용하여 복잡한 3D 장면을 매우 사실적으로 표현하는 데 사용)
Nerfs의 주요 아이디어는 카메라에서 찍은 여러 2D 이미지와 그에 해당하는 카메라 위치를 입력으로 받아, 그 장면의 3D 표현을 학습한다.
학습된 모델은 새로운 시점에서 장면을 렌더링할 수 있게 한다.
Nerfs의 주요 특징은 다음과 같다.
1. 고해상도 3D 재구성: 매우 높은 해상도로 장면을 재구성할 수 있다.
2. 다양한 시점에서의 렌더링: 학습된 모델을 통해 다양한 시점에서 장면을 실시간으로 렌더링할 수 있다.
3. 효율적인 학습: 상대적으로 적은 데이터로도 장면을 학습할 수 있으며, 신경망의 효율성을 활용한다.
NeRF는 공간 위치와 볼륨 렌더링을 사용하여 이미지의 카메라 포즈를 사용하여 장면의 3D 반복을 렌더링한다. 전통적으로 이러한 모델은 계산 집약적이기 때문에 많은 렌더링 성능과 시간이 필요하다.
NeRF 논문(https://arxiv.org/pdf/2003.08934.pdf
최근 엔비디아 AI 연구 프로젝트가 이를 변화시켰다.
인스턴트 NeRF는 AI 가속 역 렌더링을 사용하여 현실 세계에서 빛이 어떻게 작동하는지를 근사화하여 NeRF를 한 단계 더 발전한다.
다양한 각도에서 촬영한 2D 이미지로 3D 장면을 구성할 수 있다. 장면을 몇 초 만에 생성, NeRF 모델을 더 오래 학습할수록 결과적으로 3D 렌더링이 더 세밀해진다.
최근 3D Reconstruction, 3D Rendering 분야에서 NeRF를 제치고, 메인 아키텍쳐로 자리잡은 3D Gaussian Splatting 이다.
기존에 3D reconstruction 분야에서는 NeRF, Mip-NeRF, Mip-NeRF 360 등 NeRF 기반의 방법론들이 많이 연구되어 왔다.
그러나 NeRF의 가장 큰 단점은 시간이 오래 걸린다는 것이고, 이는 real-time rendering 등을 수행하기에 적합하지 않다.
InstructNGP 등은 inference 시간이 별로 안 걸리지만, Mip-NeRF 등에 비해서 고해상도의 reconstruction을 할 수 없다는 단점이 있다.
3D Gaussian을 활용해 high quality real-time rendering을 가능하게 하는 방법론을 제안하고 있다.
SfM 알고리즘이란 Photo Tourism: Exploring Photo Collections in 3D 논문에서 제안한 알고리즘으로, 하나의 대상을 촬영한 여러장의 입력 이미지로부터, 이 대상의 representation을 잘 나타낼 수 있는 point cloud들을 찾아내는 알고리즘이다.
(Point Cloud란 표면이나 객체를 나타내는 수 많은 점으로 이루어진 디지털 별자리임)
3D Gaussian Splatting은 컴퓨터 그래픽스와 비전 분야에서 3D 장면을 표현하고 렌더링하는 데 사용되는 기술로
이 방법은 장면의 각 점을 3D 공간에서 Gaussian 분포로 표현하여 고해상도의 장면을 효율적으로 재구성하고 렌더링할 수 있게 한다.
1. Gaussian Splats: 장면의 각 점은 3D 공간에서 Gaussian 분포(일명 splats)로 표현된다. Gaussian 분포는 중심 위치와 크기, 방향을 가지며, 이를 통해 장면의 모양과 색상 정보를 나타낸다.
2. 고해상도 재구성: 이 기술은 수많은 Gaussian splats를 결합하여 복잡하고 상세한 3D 장면을 재구성할 수 있다. 이는 특히 표면의 세부사항과 부드러운 변화를 잘 표현할 수 있게 한다.
3. 효율적 렌더링: Gaussian splats는 비교적 적은 데이터로도 고해상도 장면을 표현할 수 있어 메모리와 계산 효율성이 높다. 이를 통해 실시간 렌더링이나 대규모 데이터 처리에 유리하다.
3D 장면을 수많은 '가우시안 구름(Gaussian blob)'으로 표현하는 방식
1. 3D 점 추출: 여러 장의 사진이나 센서 데이터(예: LiDAR, 깊이 카메라)를 이용하여 3D 공간상의 점들을 얻어냅니다. 이 단계에서는 'Structure from Motion (SfM)' 같은 기법이 자주 쓰입니다. SfM은 서로 다른 시점에서 찍은 2D 이미지들을 가지고 카메라의 위치와 3D 점들의 위치를 추정하는 기술이다.
2. 가우시안 블롭 생성: 얻어진 3D 점들 각각에 대해 가우시안 형태의 블롭(구름)을 할당한다. 각 블롭은 위치(중심점), 크기(분산), 모양(등방성 혹은 이방성), 그리고 색상 정보를 가질 수 있다.
3. 2D 투영(Splatting): 이렇게 3D 공간에 떠 있는 수많은 가우시안 블롭들을 2D 화면으로 ‘뿌려냅니다’. 블롭이 겹치면서 부드러운 색감과 형태가 만들어진다.
4. 최적화(Refinement): 초기 단계에서 만들어진 이미지와 실제 촬영된 원본 이미지 사이의 차이를 줄이기 위해 블롭들의 크기, 색상, 위치 등을 점진적으로 조정한다. 이는 결국 더 사실적인 3D 장면 표현을 가능하게 한다.
3D Gaussian Splatting은 NeRFs의 한 형태로 간주될 수 있다. 두 기술 모두 3D 장면을 재구성하고 렌더링하는데 신경망을 사용하지만, 접근 방식과 구현 세부 사항에서 차이가 있다.
공통점
1. 신경망 사용: 두 기술 모두 신경망을 사용하여 3D 장면을 학습하고 재구성
2. 장면 표현: 3D 장면의 각 지점에서 색상과 밀도 정보를 학습하여 새로운 시점에서 렌더링
3. 응용 분야: 가상 현실, 영화, 애니메이션 등에서 사실적인 3D 렌더링에 사용
차이점
1. 표현 방식:
* NeRFs: 방사 필드(radiance field)를 학습하여 연속적인 3D 공간의 색상과 밀도를 예측. 이는 특정 시점에서의 이미지와 카메라 위치를 입력으로 받아 광선 추적(ray tracing)을 통해 새로운 시점을 렌더링.
* 3D Gaussian Splatting: 장면의 각 점을 Gaussian 분포로 표현한다. Gaussian 분포는 중심 위치, 크기, 방향을 가지며, 이를 통해 장면의 모양과 색상 정보를 나타낸다. 이는 점 기반(point-based) 표현 방식과 유사.
2. 렌더링 효율성:
* NeRFs: 매우 사실적인 렌더링을 제공하지만, 계산 비용이 높고 실시간 렌더링이 어려움
* 3D Gaussian Splatting: Gaussian 분포를 사용하여 메모리와 계산 효율성이 높아, 고해상도의 장면을 실시간으로 렌더링하는 데 적합.