연구원에서 세미나 열리는거 메일받고 듣고싶어서 실장님께 말씀드리고 다른 연구실 세미나 참석하기..
오늘 KAIST의 박병준 연구원님이 오셔서 "3D 콘텐츠 생성 기술 동향"에 대한 세미나를 열어주셨습니다. 최근 CVPR 2024에서 발표하신 논문도 함께 소개해 주셔서 매우 유익한 시간이었습니다. 최근에 multi-view synthetic data를 생성하는 모델에 관심이 있었는데, 마침 관련 주제로 세미나가 열려 운이 좋았습니다.
세미나 내용을 바탕으로 세미나에서 다룬 주제를 더 깊이 이해하기 위해 추가로 조사한 내용을 정리했습니다. 아래는 세미나에서 특히 인상 깊었던 내용과 관련 연구의 개요입니다.
최근 3D 객체 생성 기술은 크게 두 가지 축으로 발전하고 있다.
첫번째로 NeuS와 같은 기술은 표면복원에 집중하여 고해상도의 3표면을 생성하는데, 이는 기존의 NeRF 기반 방법론과 차별화된다.
두번째로 DreamFusion과 같은 새로운 접근법은 NeRF와 SDS를 결합하여 더 높은 품질의 3D를 객체를 생성하고자 한다. 특히 이 두 가지 접근법의 조합이 어떻게 최신 모델들에서 활용되는지 살펴보고자 한다.
모델을 살펴보기 전에 SDS와 NeuS를 먼저 얘기하자면, NeuS(Neural Implicit Surface)와 SDS(Score Distillation Sampling)는 모두 3D 객체를 생성하거나 표현하는 데 사용되는 기법이지만, 그 접근 방식과 역할이 다르다.
SDS(Score Distillation Sampling)란?
SDS는 주로 이미지 또는 3D 데이터를 기반으로 객체의 샘플을 생성하고, 그 output과 노이즈를 비교하여 SDS Loss를 계산하고 이를 통해 학습시키는 방식이다. 보통 생성 과정에서 정교한 샘플링을 통해 고품질의 결과물을 얻도록 설계되어 일반적으로 계산 비용이 높아 시간이 오래 걸릴 수 있다.
NeuS(Neural Implicit Surface)란?
NeuS는 3D 공간에서의 표면을 Implicit하게 정의하는 함수를 학습한다. 이 함수는 주어진 위치가 객체의 내부, 표면, 또는 외부에 있는지 구분할 수 있으며, 이를 통해 고해상도의 3D 표면을 복원한다.
NeuS는 NeRF(Neural Radiance Fields)와 유사하지만, NeRF가 주로 3D 객체의 밀도를 학습하여 볼륨 렌더링을 수행하는 반면, NeuS는 3D 공간에서 암시적(Implicit) 함수를 학습하여 객체의 표면을 고해상도로 재구성한다고 한다.
NeuS는 복잡한 샘플링 없이도 NeuS의 효율적인 표면 표현 능력을 이용해 빠르게 3D 객체를 생성할 수 있다는 것에 의미가 있다.
DreamFusion은
(1) 샘플링한 camera pose, light position을 사용해서 Nerf로 이미지를 렌더링하고,
(2) Nerf로 생성된 이미지, timestep t, text embedding을 이용해 diffusion model의 noise 으로 샘플링하고 SDS Loss를 계산한다.
*SDS(score distillation sampling) Loss :
SDS Loss는 위의 DreamFusion의 피규어와 같이보면, gaussian noise가 추가된 이미지를 U-Net을 통해 복원하고, 그 생성된 이미지와 추가한 gaussian noise의 차이를 이용해서 loss값을 업데이트한다. 여기서 가 Nerf 파라미터이므로 x를 로 미분하여 Nerf의 파라미터를 업데이트하는 것이다.
3D object dataset으로 주로 ShapeNet이 쓰이고 있었는데, 이후 더 큰 데이터셋인 Objarverse이 등장하였다. (OpenWorld에 대한 데이터셋) 주석이 달린 3D 객체 데이터셋으로, 80만 개 이상의 3D 모델을 포함하고 있으며, 이 모델들은 자연어 설명, 태그, 애니메이션과 함께 제공된다.
이를 기반으로 Zero-1-to-3, MVDream, SyncDreamer 등의 다양한 모델이 개발되었다.
(arxiv 기준 2023.03.)
(arxiv 기준 2023.08.)
(arxiv 기준 2023.07.)
Recap
모델 | 주요 기법 | 시간 소요 | 장점 | 단점 |
---|---|---|---|---|
Zero-1-2-3 | SDS를 사용한 단일 뷰 생성 | 시간이 많이 소요됨 | 세밀한 각도별 3D 이미지 생성 가능 | 긴 생성 시간, 높은 계산 비용 |
MVDream | SDS를 사용한 동시 4뷰 생성 | 약 2시간 소요 | 뷰 간 일관성 높은 고품질 3D 생성 가능 | 여전히 높은 시간 소요, 계산 비용이 큼 |
SyncDreamer | NeuS 사용, SDS 비사용 | 약 10분 소요 | 빠른 생성 속도, 실시간 응용 가능 | 도메인 밖에서는 성능 부족, 범용성 제한 |