본문 바로가기
AI Tools/3D 모델링

NeRF와 Gaussian Splatting이란 무엇일까? 차이점은? (2D를 3D로 바꾸기)

by doodlie 2024. 1. 31.

오늘은 컴퓨터 그래픽에서 혁신적인 기술 NeRFGaussian Splatting을 알아볼까요?
이 기술들은 모두 3D 장면을 생생하게 만들어내주죠.

(www.cgarchitect.com)

우선, 각각의 기술에 대해 간단히 알아봅시다.
 

Nerf란? 가상 현실의 엿보기 

NeRF (Neural Radiance Fields)는 다 각도에서 촬영된 2D 이미지 모음을 3D 장면으로 완벽하게 시각화할 수 있는 기술입니다.
이 기술은 가상 현실, 게임 개발, 영화 제작 등 다양한 분야에서 사용됩니다.

NeRF Paper (Mildenhall, Srinivasan, Tancik, et.al), 2020.

NeRF의 기본 아이디어는 간단합니다.
다각도의 뷰에서 물체의 이미지와 카메라의 위치를 고려하고, 이를 기반으로 장면을 표현하는 함수(continuous volumetric scene function)를 학습합니다. 간단히 말하자면, 불연속적인 2D 이미지를 입력받은 후, 연속적으로 구성될 수 있게 임의의 시점에서 새 이미지를 생성합니다. 이 함수를 사용하면 장면 속 어떤 부분이든 빛을 생성할 수 있기 때문에 현실적인 조명과 그림자를 갖춘 매우 자연스러운 이미지를 생성할 수 있게 되는거죠. 
 
input(입력값) => 물체의 3D 위치와 물체가 바라보는 방향 
output(출력값) => 발출된 색상(RGB값)과 부피 밀도
 
마치 실제로 그 곳에 있는 것처럼 다양한 각도에서 디지털 세계를 탐험할 수 있다고 상상해 보세요.

(www.matthewtancik.com/nerf)

위 영상은 사람이 촬영한 것 같아 보이지만 NeRF로 제작한 장면입니다.
이렇게 카메라 시점을 고정시키고, queried 관찰 방향을 변경하는 NeRF를 View-Dependent Appearance 라고 합니다.
 

(www.matthewtancik.com/nerf)

위와 같이 직접 촬영한 이미지가 아니더라도 합성 데이터 (Synthetic Data)를 기반으로 현실적으로 보이는 물체의 이미지를 생성할 수 있습니다. 이런 데이터셋에는 non-Lambertian 쟤료를 사용한다고 합니다.
 
 

Gaussian Splatting이란? 포인트 클라우드로 픽셀 그리기

Gaussian Splatting은 90년대에 처음 나온 렌더링 기술이지만, 2023 SIGGRAPH에서 발표한 논문 덕에 뜨거운 이슈가 되었습니다. 
NeRF와 달리 이 기술은 3D 데이터, 특히 Point Cloud를 렌더링하기 위한 다른 방법을 사용합니다. Point Cloud란 표면이나 객체를 나타내는 수 많은 점으로 이루어진 디지털 별자리라고 생각하면 쉽습니다. 3D 공간에는 수 많은 Gaussian 별들이 모여 하나의 장면을 구성하고 있습니다. Gaussian Splatting은 이 점들을 2D 평면에 비추고 가우스 분포를 통해 렌더링을 하여 이미지로 변환합니다.

(www.reshot.ai)

Point cloud의 각각의 점들은 최종 이미지에서 픽셀이 되지만, 그냥 점이 아닌 매끄러운 가우스 모양의 splat으로 변환됩니다.
아래는 장난감을 여러각도에서 캡쳐한 사진들입니다. 

(www.reshot.ai)

이를 학습한 후엔 아래의 모델, 3D Gaussians로 만들어진 Point cloud로 변환됩니다.

(www.reshot.ai)

아래 영상은 블렌딩의 결과입니다. 
3D Gaussian Splatting은 부드럽고 자연스러운 이미지를 만들어줍니다.

(www.reshot.ai)

NeRF or Gaussian? 무엇이 더 좋을까

우리가 NeRF를 사용하는 이유는 Photogrammetry 의 한계를 극복하기 위해서인데요.
Photogrammetry는 여러 시점의 이미지를 사용하여 3D 다각형을 생성하는 기술입니다. 물체를 스캔하는 데 매우 유용하나 하늘처럼 윤곽이 없는 장면이나 먼 장면의 디테일을 살리기 어렵습니다. 또한, 반사나 투명한 요소가 있는 물체는 정확이 생성하는데에 한계가 있습니다.
 
이를 해결하기 위해 NeRF 기술 혹은 Gaussian Splatting의 접근 방식을 사용할 수 있습니다.
이 두 가지 방법 중 어떤 것을 선택할지는 주어진 태스크의 요구 사항에 따라 다릅니다. NeRF는 복잡한 장면을 실제처럼 렌더링 해주기 때문에 가상 현실 체험, 건축 시각화, 혹은 영화 cg와 같은 프로젝트에 가장 적합하죠. 반면, Gaussian Splatting은 실시간 (real-time) 렌더링이 필요하거나 computational resource가 제한된 경우에 적합합니다. 속도는 NeRF에 비해 훨씬 빠르며 explicit representation이 가능합니다. 이 기술은 대화형 시뮬레이션, 과학적 시각화, 대규모 데이터셋 렌더링과 같은 응용 프로그램에 사용합니다.
 
 
 

나도 NeRF 체험하기 "Luma Labs"

이제는 누구나 어디서든 NeRF기술을 사용해 3D 장면을 만들 수 있어요.
아래 링크는 Luma에서 발행한 장면들 중 제가 제일 마음에 들었던 장면이에요. 들어가서 체험해 보세요!

HOLLYWOOD - Created by @DroneFotoBooth with Luma

September 22, 2023

lumalabs.ai