*LGM를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!
LGM github: LGM (kiui.moe)
Contents
2. Background Knowledge: Gaussian Splatting
Simple Introduction
요즘에 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
*Gaussian Splatting (GS)에 대한 기본적인 flow는 이해하면 좋습니다!
Method
LRM의 single image를 input으로 사용하긴 하지만, 사실 diffusion을 통해서 multi-view를 생성한다.
우선 input으로 single image가 들어오면 ImageDream을 통해서 multi-view 이미지를 생성한다.
만약 text가 input이라면 MVDream을 활용한다. (ImageDream도 가능하긴 함.)
그리고, diffusion model에서 나온 multi-view image는 총 4개로 고정된다.
생성된 모든 이미지는 고정된 방위각/고도각을 가지는 이미지로 생성된다!
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으로는 MSE와 LPIPS를 동시에 활용한 것을 확인할 수 있다!
또한 논문에서 활용한 데이터셋 Objaverse에는 RGB+A(alpha)가 들어있으므로, alpha에 대한 차이도 MSE로 활용했다고 언급한다.
Result
- 위의 이미지는 LGM의 flow를 보여주고 있다.
- 다른 모델과 비교했을 때, multi-view에서 일관성이나 퀄리티가 좋다.
- Diffusion을 통해 text로 single image가 생성되므로, text를 통해서 3D object를 생성하는 모습이다.
- 2024.05.05 Kyujinpy 작성.
*광고 수익은 연말에 기부를 할 생각입니다! 인증 글도 계속해서 작성하겠습니다 ㅎㅎ