본문 바로가기

AI/Paper - Theory

[LGM 논문 리뷰] Large Multi-View Gaussian Model for High-Resolution 3D Content Creation

반응형

*LGM를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!

 

LGM github: LGM (kiui.moe)

 

LGM

LGM: Large Multi-View Gaussian Model for High-Resolution 3D Content Creation Arxiv 2024 Jiaxiang Tang1, Zhaoxi Chen2, Xiaokang Chen1, Tengfei Wang3, Gang Zeng1, Ziwei Liu2 1 Peking University   2 S-Lab, Nanyang Technological University   3 Shanghai AI La

me.kiui.moe


Contents

1. Simple Introduction

2. Background Knowledge: Gaussian Splatting

3. Method

4. Result


Simple Introduction

LGM 성능

요즘에 single image로 3D object를 만드는 연구가 정말 활발하다!

관련 논문들이 많이 쏟아져 나오고 있는데, 그 중심에는 gaussian splatting (GS)를 중심으로 네트워크를 구축하는 모델들이 정말 많다.

 

그 중에서도 gaussian splatting을 가지고 LRM (large reconstruction model; NeRF 기반 single-to-3D)을 겨냥해서 나온듯한(?) 모델인 LGM을 소개하고자 한다!

 

해당 모델은 single image로 3D object를 생성하는데, 신기한 점은 pre trained diffusion을 통해서 single view를 multi-view로 만들고 GS를 학습시킨다는 점이다.

 

한번 살펴보자!


Background Knowledge: Gaussian Splatting

Gaussian Splatting 간단한 논문 리뷰: https://kyujinpy.tistory.com/138

 

[3D Gaussian Splatting 간단한 논문 리뷰]

*Gaussian Splatting에 대한 간단한 논문 리뷰 입니다!*이해를 돕기 위해 수식은 거의 제외했습니다. GS 논문: repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_high.pdf GS github: 3D Gaussian Splatting for

kyujinpy.tistory.com

*Gaussian Splatting (GS)에 대한 기본적인 flow는 이해하면 좋습니다! 


Method

LRM structure

LRM의 single image를 input으로 사용하긴 하지만, 사실 diffusion을 통해서 multi-view를 생성한다.

우선 input으로 single image가 들어오면 ImageDream을 통해서 multi-view 이미지를 생성한다.

만약 text가 input이라면 MVDream을 활용한다. (ImageDream도 가능하긴 함.)

 

그리고, diffusion model에서 나온 multi-view image는 총 4개로 고정된다.

생성된 모든 이미지는 고정된 방위각/고도각을 가지는 이미지로 생성된다!


LGM 구조

LGM의 구조는 위처럼 asymmetric structure를 가진 U-Net과 3D gaussian으로 구성된다!

LGM 내부에서 일어나는 과정을 적으면 다음과 같다!

1. (NeRF처럼) 각 이미지의 방위각/고도각을 통해 ray를 계산해서 ray_direction과 ray origin point를 얻는다.

2. 각 이미지의 pixel point마다 있는 color(RGB; 3차원)와 ray_direction(3차원), ray_origin(3차원)을 concatenate한다.

(-> Plücker ray embedding이라는 개념을 사용해서 pixel 위의 한 point로 embedding을 생성하는 것 같다.)

-> 결과적으로 9개의 채널은 가진 input features가 model structure 안으로 들어간다.

3. Asymmetric U-Net 구조로부터 input features는 gaussian splatting을 만들기 위한 features로 output된다.

-> 14개의 채널을 가진 output features가 나온다.

[Output feautures 상세 설명]
# https://github.com/3DTopia/LGM/blob/main/core/models.py#L109
0,1,2: point cloud (position)
3: Opacity
4,5,6: scale matrix
7,8,9,10: rotation matrix
11,12,13: color

4. 위의 output features를 통해 gaussian splatting을 수행한다. (tile rasterization 수행)


loss function

Loss function으로는 MSE와 LPIPS를 동시에 활용한 것을 확인할 수 있다!

또한 논문에서 활용한 데이터셋 Objaverse에는 RGB+A(alpha)가 들어있으므로, alpha에 대한 차이도 MSE로 활용했다고 언급한다.


Result

모델의 진행과정

- 위의 이미지는 LGM의 flow를 보여주고 있다.

 

Visualization

- 다른 모델과 비교했을 때, multi-view에서 일관성이나 퀄리티가 좋다.

 

Visualization

- Diffusion을 통해 text로 single image가 생성되므로, text를 통해서 3D object를 생성하는 모습이다.


- 2024.05.05 Kyujinpy 작성.

*광고 수익은 연말에 기부를 할 생각입니다! 인증 글도 계속해서 작성하겠습니다 ㅎㅎ

반응형