Paper : https://arxiv.org/pdf/2308.16512
Github : https://github.com/bytedance/MVDream
Text prompt를 이용해서 multi-view image를 생성할 수 있는 diffusion model
2D, 3D data를 함께 학습함으로써, 2D diffusion model의 generalizability와 3D rendering의 consistency를 모두 달성함
Generalizability : 2D diffusion model은 diffusion(확률 과정)을 통해 이미지를 생성하므로, 다양한 입력 데이터나 조건에서 얼마나 일관적으로 좋은 품질의 이미지를 생성할 수 있는지를 의미함
Consistency : 3D rendering은 3차원을 2차원 이미지로 변환하는 과정이므로, rendering된 이미지들이 얼마나 일관적으로 정확하고 자연스러운 2D 이미지로 변환할 수 있는지를 의미함
어떤 종류의 2D data든 모두 받아서 3D generation을 위한 학습에 사용할 수 있음 (그만큼 3D 구조에 대한 이해도가 높음)
Dreambooth처럼 적은 수의 2D image를 가지고도 3D generation을 위한 새로운 concept 학습 가능
Agnostic
어떤 모델이든 상관없이 적용 가능한 방법론
기존 3D object generation 방법
Template-based generation pipeline : 미리 정해둔 기본 템플릿을 활용하여 자동으로 콘텐츠를 생성하는 방법
3D generative model : 3D 공간에서의 객체나 장면을 자동으로 생성할 수 있는 모델
2D-lifting method : 2D image에서 3D 정보를 추정하여 복원하는 방법 (2D에서 얻을 수 없는 depth 정보나 3D 구조를 유추할 수 있음)
Pre-trained 2D generation model을 3D generation에 적용함
Pre-trained 2D generation model이 대용량 2D dataset들을 학습했기 때문에, image에서 보이지 않거나, 사실적이지 않은 부분들도 생성해낼 수 있음
ex. Dreamfusion, Magic3D
Score distillation sampling(SDS)
Score-Based Generative Models에서 생성된 데이터의 품질을 개선하기 위해 사용되는 방법
- 모델이 학습한 score를 바탕으로, 데이터 포인트가 얼마나 진짜 데이터 분포에 가까운지를 판단하여 더 현실적이고 고품질의 데이터를 생성할 수 있도록함
기존 3D object generation 방법들의 단점
Template-based generation pipeline, 3D generative model
2D-lifting method
2D image를 학습하기 때문에 데이터에 대한 multi-view 정보가 부족하고, 3D 구조에 대한 이해도가 낮아 정확하게 3D를 표현하기에 부족함
Multi-face Janus Problem : 하나의 사람이 여러 얼굴 이미지에서 다양한 각도, 표정, 조명, 나이 등에 의해 다르게 보일 수 있는 것처럼, 2D-lifting method는 multi-view에 대한 정보가 부족하므로 다른 각도에서 보이는 이미지를 표현할 수 없음
Content Drift Problem : 3D 객체를 생성할 때, 내용이 일관되지 않고 변화하거나 왜곡되기 때문에 다른 각도에서는 잘못된 결과물이 생성될 수 있음

MVdream 모델의 Contribution
2D-lifting method가 가지고 있는 이런 문제점들에도 불구하고, 본 논문은 대용량의 2D dataset을 이용해서 3D generation하는 방법을 선택하고 있다.
동시에 multi-view image를 생성하여 Multi-view에 대한 이해도를 높임
Multi-view images(from 3D assets)과 2D image-text pairs를 jointly training함으로써, 앞서 언급했던 Generalizability와 Consistency를 달성함
Fine-tuning을 통해 dreambooth와 같이 robust한 multi-view diffusion model로 만듬
3D generative model
Diffusion model for object novel view synthesis
Lifting 2D diffusion for 3D generation

기존 diffusion model에서 3D Self-Attention과 Camera Embeddings가 추가된 모델
Extrinsic camera parameter
Camera parameters 관련 참고하면 좋을만한 사이트
Q. How to generate a set of consistent images from the same text prompt
(Multi-view를 학습하기 위해 어떻게 같은 text prompt로부터 일관된 이미지를 생성할 수 있을까?)
A. Self-attention에 있는 모든 view들을 이어서 2D self-attention layer를 3D로 바꾼다.
Q. How to add the camera pose control
(어떻게 하면 camer 시점을 추가할 수 있을까?)
A. 여러가지를 실험해본 결과, 2-layer MLP를 이용해서 embedding한 camera parameters가 가장 quality가 좋았다.
Multi-view를 위한 different view를 나타내기 위해, MVdream 모델은 position encoding이 중요함
Residual처럼 camera embedding을 time embedding처럼 추가했을 때 가장 성능이 좋았음
Q. How to maintain the quality and generalizability
(어떻게 하면 생성 quality와 generalizability를 유지할 수 있을까?)
A. 대용량의 text-to-image dataset을 이용해서 joint training을 하면 된다.

Mathematical Expression
text-image dataset : X
multi-view dataset : X_mv
training samples : {x, y, c} ∈ X ∪ Xmv
noisy image : x_t
random noise : ϵ
condition : y
camera condition : c
multi-view diffusion model : ϵθ
multi-view diffusion loss


Image Generation

Text-to-3D Generation

사랑스러운 MVDream 논문 리뷰 잘 보고 갑니다!!
딥러닝에 대해 해박하신것 같아요~!!!!!! 종종 들리겠습니다 ^~^