2023. 12. 15. 18:26ㆍtext-to-3D
GaussianDreamer: Fast Generation from Text to 3D Gaussians by Bridging 2D and 3D Diffusion Models
Taoran Yi, Jiemin Fang, Guanjun Wu, Lingxi Xie, Xiaopeng Zhang, Wenyu Liu, Qi Tian, Xinggang Wang
Abstract
최근에는 텍스트 프롬프트에서 3D 자산을 생성하는 것이 인상적인 결과를 보여주었습니다.
2D 및 3D 디퓨전 모델은 모두 프롬프트를 기반으로 괜찮은 3D 객체를 생성하는 데 도움이 될 수 있습니다.
3D 디퓨전 모델은 3D 일관성은 좋지만 학습 가능한 3D 데이터가 비싸고 얻기 어렵기 때문에 품질과 일반화에 한계가 있습니다.
2D 디퓨전 모델은 일반화 및 fine 생성의 강력한 능력을 누리고 있지만 3D 일관성을 보장하기 어렵습니다.
본 논문에서는 최근의 명시적이고 효율적인 3D Gaussian splatting 표현을 통해 두 가지 유형의 디퓨전 모델로부터 전력을 연결하려고 합니다.
Gaussian Dreamer라는 이름의 빠른 3D 객체 생성 프레임워크가 제안되며, 여기서 3D 디퓨전 모델은 초기화에 대한 priors를 제공하고 2D 디퓨전 모델은 지오메트리 및 외관을 풍부하게 합니다.
노이즈가 많은 포인트 성장 및 색상 섭동의 연산은 초기화된 가우시안을 향상시키기 위해 도입되었습니다.
우리의 GaussianDreamer는 하나의 GPU에서 15분 이내에 고품질의 3D 인스턴스 또는 3D 아바타를 생성할 수 있으며, 생성된 인스턴스는 실시간으로 직접 렌더링할 수 있습니다.
1. Introduction
3D 자산 생성은 기존 파이프라인에서 비싸고 전문적인 작업이었습니다.
최근 디퓨전 모델[57]은 고품질의 실제 2D 이미지를 만드는 데 큰 성공을 거두었습니다.
많은 연구 작업[2, 6, 9, 12, 14, 23, 31, 46, 50, 67, 70, 76, 77, 81, 90]은 가장 일반적인 text-to-3D 작업과 같이 3D 자산 생성 프로세스를 완화하고 지원하기 위해 2D 디퓨전 모델의 힘을 3D 분야로 이전하려고 노력합니다.
다음은 이 목표를 달성하기 위한 두 가지 주요 흐름입니다:
(i) 3D 데이터로 새로운 디퓨전 모델 학습 [12, 14, 23, 46] (즉, 3D 디퓨전 모델) 그리고 (ii) 2D 디퓨전 모델을 3D로 들어올립니다[2, 6, 9, 31, 50, 57, 67, 70, 76, 77, 81, 90].
전자는 구현이 직접적이고 강력한 3D 일관성을 유지하지만, 3D 데이터를 얻기 어렵고 비용이 많이 들기 때문에 대규모 생성 도메인으로 확장하는 데 어려움을 겪고 있습니다.
현재 3D 데이터 세트의 규모는 2D 데이터 세트보다 훨씬 작습니다.
이로 인해 생성된 3D 자산은 복잡한 텍스트 프롬프트를 처리하고 복잡한/fine 지오메트리 및 외관을 생성하는 데 실패합니다.
후자는 다양한 텍스트 프롬프트를 처리하고 매우 상세하고 복잡한 지오메트리 및 외관을 생성할 수 있는 2D 디퓨전 모델의 대규모 데이터 도메인의 이점을 활용합니다.
그러나 2D 디퓨전 모델은 카메라 뷰를 인식하지 못하기 때문에 생성된 3D 자산은 특히 구조가 복잡한 인스턴스의 경우 지오메트리 일관성을 형성하기가 어렵습니다.
본 논문에서는 3D 디퓨전 모델의 지오메트리 일관성과 2D 디퓨전 모델의 풍부한 디테일을 동시에 가지고 앞서 언급한 두 가지 접근 방식을 연결하기 위해 최근 3D Gaussian Splatting [24]을 사용할 것을 제안합니다.
3D 가우시안은 효율적이고 명시적인 표현의 한 유형으로, 포인트 클라우드와 같은 구조로 인해 본질적으로 지오메트리 priors를 즐깁니다.
구체적으로, 우리는 두 가지 유형의 3D 디퓨전 모델 중 하나를 사용합니다: text-to-3D 및 text-to-motion 디퓨전 모델(예: 구현에서 Shap-E [23] 및 MDM [72])은 coarse 3D 인스턴스를 생성합니다.
coarse 3D 인스턴스를 기반으로 3D 가우시안 그룹이 초기화됩니다.
저희는 후속 3D 인스턴스를 강화하기 위해 초기화된 가우시안을 보완하기 위해 노이즈 포인트 성장과 색상 섭동의 두 가지 작업을 도입합니다.
그런 다음 Score Distillation Sampling [50] (SDS) loss를 통해 2D 디퓨전 모델과 상호 작용하여 3D 가우시안을 개선하고 최적화할 수 있습니다.
3D 디퓨전 모델과 3D Gaussian Splatting 자체의 지오메트리 priors 특성으로 인해 학습 과정을 매우 짧은 시간에 마칠 수 있습니다.
생성된 3D 자산은 splatting 과정을 통해 메쉬와 같은 구조로 변환되지 않고 실시간으로 렌더링할 수 있습니다.
저희의 기여는 다음과 같이 요약할 수 있습니다.
• Gaussian splatting을 통해 3D 및 2D 디퓨전 모델을 연결하고 3D 일관성과 풍부한 생성 디테일을 모두 즐기는 GaussianDreamer라는 이름의 text-to-3D 방법을 제안합니다.
• 노이즈 포인트 성장과 색상 섭동은 추가 콘텐츠 강화를 위해 초기화된 3D 가우시안을 보완하기 위해 도입되었습니다.
• 전체적인 방법은 간단하지만 상당히 효과적입니다.
3D 인스턴스는 하나의 GPU에서 이전 방식보다 훨씬 빠른 15분 이내에 생성할 수 있으며 실시간으로 직접 렌더링이 가능합니다.
2. Related Works
3D Pretrained Diffusion Models.
최근에는 디퓨전 모델을 이용한 text-to-3D 자산 생성이 큰 성공을 거두고 있습니다.
현재는 주로 lifting 2D 디퓨전 모델에서 3D로, 사전 학습된 3D 디퓨전 모델로 구분되는데, 차이점은 사용된 학습 데이터가 2D인지 3D인지에 있습니다.
본 논문에서 3D 디퓨전 모델로 언급된 3D 사전 학습된 디퓨전 모델[12, 14, 23, 46]은 text-3D 쌍에서 사전 학습된 모델입니다.
사전 학습 후 추론을 통해서만 3D 자산을 생성할 수 있으며, Point-E [46] 및 Shape-E [23]와 같은 모델은 몇 분 만에 3D 자산을 생성할 수 있습니다.
텍스트로부터 3D 자산을 생성하는 것 외에도, 3D 디퓨전 모델 [1, 7, 10, 25, 53, 63, 72, 88, 89, 91]이 text-motion 데이터에 기초하여 모션 시퀀스를 생성하는 방법이 있습니다.
이러한 모델은 text-motion 쌍에 대한 사전 학습을 통해 다양한 텍스트에 대한 합리적인 모션 시퀀스를 생성할 수 있습니다.
생성된 모션 시퀀스는 메쉬 표현을 기반으로 SMPL (Skinned Multi-Person Linear) 모델로 변환할 수 있지만 텍스처 정보는 포함되지 않습니다[38].
저희 방법에서는 다양한 텍스트 프롬프트를 사용하여 변환된 SMPL을 칠할 수 있습니다.
Lifting 2D Diffusion Models to 3D.
text-to-3D 자산 생성 방법 [8, 15, 19, 22, 39, 47, 48, 51, 56, 61, 62, 68, 73, 80, 85, 87, 92]에서는 3D 사전 학습된 디퓨전 모델을 사용하는 것 외에도 2D 디퓨전 모델을 3D로 lifting하는 것은 학습이 필요 없는 접근 방식입니다.
또한 2D 이미지 데이터가 풍부하기 때문에 이 방법은 더 높은 다양성과 충실도를 가진 자산을 생성합니다.
일부 single-image-to-3D 방법[17, 32-35, 37, 52, 59, 65, 66, 71, 78, 79, 82, 83]도 유사한 아이디어를 사용합니다.
DreamFusion [50]은 먼저 2D 디퓨전 모델을 이용하여 3D 표현 모델을 업데이트하는 SDS (Score Disruption Sampling) 방법을 사용할 것을 제안합니다.
[76]은 2D 디퓨전 모델을 3D로 올리는 SJC (Score Jacobian Chaining) 방법을 제안합니다.
이후 방법 [6, 30, 31, 69, 77]은 DreamFusion을 기반으로 구축하고 3D 생성의 품질을 더욱 향상시킵니다.
그 중 생성된 3D 자산은 멀티페이스 문제를 겪을 수 있습니다.
이를 해결하기 위해 일부 방법은 서로 다른 뷰 [2]의 시맨틱스를 강화하고 이러한 문제를 완화하기 위해 멀티뷰 정보 [67, 90]를 사용합니다.
3D 표현 모델의 각 뷰를 텍스트와 정렬하기 위해 CLIP [55]을 채택한 모델 [16, 21, 28, 42, 44, 58, 75, 81]도 있습니다.
3D Representation Methods.
최근에는 3D 표현에서 neural radiance fields (NeRF) [43]가 인상적인 결과를 얻었으며, text-to-3D 자산 생성에서 많은 방법이 NeRF 또는 그 변형 [3, 45]를 표현 방법으로 채택했습니다.
일부 방법 [6, 12, 30, 31]은 렌더링 비용을 줄이고 해상도를 더욱 향상시키기 위해 DMTET[64]와 같은 명시적으로 최적화 가능한 메쉬 표현 방법을 사용합니다.
이 외에도 포인트 클라우드 [40, 46, 51, 74] 및 메쉬 [36]를 3D 표현으로 사용하는 생성 방법도 있습니다.
최근에는 3D 장면을 표현하는 방법으로 3D Gaussian Splatting [24]이 소개되고 있는데, 이는 NeRF 기반의 방법에 버금가는 렌더링 효과를 얻을 수 있고 실시간 렌더링이 가능합니다.
또한 두 개의 동시 작업 [5, 28]은 3D Gaussian Splatting [12]을 사용하여 3D 표현을 구성합니다.
DreamGaussian [28]은 단일 이미지를 조건으로 사용하여 3D 자산을 생성하는 반면 GSGEN [5]은 텍스트에서 3D로 고품질 생성을 구현합니다.
우리의 방법은 3D Gaussian Splatting을 표현 방법으로 사용하는 유사한 아이디어를 공유하므로 최적화 가능한 메쉬 표현 방법에 비해 해상도 향상 및 훨씬 빠른 최적화 속도를 달성하는 비용이 크게 절감됩니다.
그리고 매우 짧은 시간에 프롬프트 텍스트를 기반으로 상세한 3D 자산을 생성할 수 있습니다.
3. Method
이 섹션에서는 먼저 2D 및 3D 디퓨전 모델과 3D 표현 방법인 3D Gaussian Splatting을 검토합니다 [24].
저희는 섹션 3.2에서 전체 프레임워크의 개요를 설명합니다.
그런 다음 섹션 3.3에서는 3D 디퓨전 모델의 도움을 받아 3D 가우시안을 초기화하는 과정을 설명합니다.
2D 디퓨전 모델을 사용한 3D 가우시안의 추가 최적화는 섹션 3.4에 설명되어 있습니다.
3.1. Preliminaries
2D and 3D Diffusion Models.
DreamFusion [50]은 2D 디퓨전 모델을 3D로 lift하는 가장 대표적인 방법 중 하나로, 사전 학습된 2D 디퓨전 모델 ϕ을 사용하여 score distillation sampling (SDS) loss로 3D 표현을 최적화하는 방법을 제안합니다.
특히, 파라미터 θ가 최적화된 3D 표현 방법으로 MipNeRF [3]를 사용합니다.
렌더링 방법을 g로 사용하면 렌더링된 이미지는 x = g(θ)가 됩니다.
렌더링된 이미지 x를 디퓨전 모델 ϕ에서 얻은 샘플과 유사하게 만들기 위해, DreamFusion은 스코어링 추정 함수를 사용합니다: ˆϵ_ϕ(z_t; y, t), 여기서 노이즈 이미지 z_t, 텍스트 임베딩 y, 노이즈 레벨 t가 주어지면 샘플링된 노이즈 ˆϵ_ϕ을 예측한다.
이 스코어링 추정 함수는 렌더링된 이미지 x에 추가된 가우시안 노이즈 ϵ와 예측된 노이즈 ˆϵ_ϕ의 차이를 측정함으로써 파라미터 θ를 업데이트하는 방향을 제공할 수 있습니다.
그래디언트를 계산하는 공식은 (1)과 같으며, 여기서 ω(t)는 가중치 함수입니다.
3D Gaussian Splatting.
3D Gaussian Splatting [24](3DGS)은 최근 새로운 뷰 합성을 위한 획기적인 방법입니다.
볼륨 렌더링을 기반으로 이미지를 렌더링하는 NeRF [19]와 같은 implicit 표현 방법과 달리 3D-GS는 splatting [33]을 통해 이미지를 렌더링하여 실시간 속도를 달성합니다.
특히, 3D-GS는 중심 위치 μ ∈ R^3, 공분산 ∑ ∈ R^7, 컬러 c ∈ R^3 및 불투명도 α ∈ R^1로 정의된 anisotropic 가우시안 세트를 통해 장면을 나타냅니다.
그리고 3D 가우시안은 다음과 같이 쿼리할 수 있습니다: (2), 여기서 x는 μ와 쿼리 포인트 사이의 거리를 나타냅니다.
각 픽셀의 색상을 계산하기 위해 일반적인 뉴럴 포인트 기반 렌더링 [26, 27]을 사용합니다.
카메라 중앙에서 ray r이 캐스트되고 ray가 교차하는 3D 가우시안의 색상과 밀도가 ray를 따라 계산됩니다.
렌더링 과정은 다음과 같습니다: (3), 여기서 N은 ray r의 샘플 포인트의 수를 나타내고, c_i 및 α_i는 i번째 가우시안의 색상 및 불투명도를 나타내고, x_i는 포인트와 i번째 가우시안 사이의 거리를 나타냅니다.
3.2. Overall Framework
우리의 전체 프레임워크는 그림 2와 같이 3D 디퓨전 모델의 초기화와 2D 디퓨전 모델의 최적화의 두 부분으로 구성됩니다.
3D 디퓨전 모델 priors의 초기화를 위해 text-to-3D 및 text-to-motion 디퓨전 모델로 인스턴스화된 3D 디퓨전 모델 F_3D를 사용하여 텍스트 프롬프트를 기반으로 삼각형 메쉬 m을 생성하며, 이는 m = F_3D(y)로 표시할 수 있습니다.
한 세트의 포인트 클라우드는 메쉬 m에서 변환됩니다.
그런 다음 노이즈가 많은 포인트 성장 및 색상 섭동 후 생성된 포인트 클라우드를 통해 3D 가우시안 θ_b가 초기화됩니다.
품질을 높이기 위해 2D 디퓨전 모델 F_2D를 사용하여 프롬프트 y와 함께 초기화된 3D 가우시안 θ_b를 SDS [50]를 통해 추가로 최적화하여 최종 3D 가우시안 θ_f를 생성합니다.
생성된 가우시안을 splatting하여 타겟 인스턴스를 실시간으로 렌더링할 수 있습니다.
3.3. Gaussian Initialization with 3D Diffusion Model Priors
본 섹션에서는 주로 3D 디퓨전 모델 priors로서 3D 가우시안을 초기화하는 방법에 대해 논의합니다.
먼저 프롬프트 y를 기반으로 3D 디퓨전 모델 F_3D을 사용하여 3D 자산을 생성합니다.
그런 다음 3D 자산을 포인트 클라우드로 변환하고 변환된 포인트 클라우드를 사용하여 3D 가우시안을 초기화합니다.
우리는 3D 자산을 생성하기 위해 두 가지 유형의 3D 디퓨전 모델을 사용했습니다.
아래에서는 각 모델을 사용하여 3D 가우시안을 초기화하는 방법에 대해 설명합니다.
3.3.1 Text-to-3D Diffusion Model
텍스트 기반 3D 생성 모델을 사용할 때, 생성된 3D 자산은 SDF 값 및 텍스처 색상을 예측하기 위해 다층 퍼셉트론(MLP)을 사용합니다.
삼각형 메쉬 m을 구성하기 위해 MLP 내에서 128^3 크기의 정규 그리드를 따라 정점에서 SDF 값을 쿼리합니다.
그런 다음 m의 각 정점에서 텍스처 색상을 쿼리합니다.
저희는 m의 정점과 색상을 pt_m(p_m, c_m)으로 표시되는 포인트 클라우드로 변환합니다.
p_m ∈ R^3은 포인트 클라우드의 위치를 나타내며 m의 정점 좌표와 동일합니다.
c_m ∈ R^3은 포인트 클라우드의 색상을 나타내며 m의 색상과 동일합니다.
그러나 얻은 색상 c_m은 비교적 간단하고 위치 p_m은 희박합니다.
Noisy Point Growing and Color Perturbation.
저희는 생성된 포인트 클라우드 pt_m을 사용하여 3D 가우시안을 직접 초기화하지 않습니다.
초기화의 품질을 향상시키기 위해 포인트 클라우드 pt_m 주변에서 노이즈가 많은 포인트 성장 및 색상 섭동을 수행합니다.
먼저 pt_m에서 표면의 바운딩 박스(BBox)를 계산한 다음 BBox 내에서 포인트 클라우드 pt_r(p_r, c_r)을 균일하게 성장시킵니다.
p_r과 c_r은 pt_r의 위치와 색상을 나타냅니다.
빠른 검색을 가능하게 하기 위해 저희는 위치 p_m을 사용하여 KDTree [3] K_m을 구성합니다.
위치 p_r과 KDTree K_m에서 발견된 가장 가까운 지점 사이의 거리를 기반으로 유지해야 할 지점을 결정합니다.
이 과정에서 저희는 0.01의 (정규화된) 거리 내의 포인트를 선택합니다.
노이즈가 많은 포인트 클라우드의 경우 색상 c_r을 c_m과 유사하게 만들고 몇 가지 섭동도 추가합니다: (4), 여기서 a의 값은 0과 0.2 사이에서 랜덤으로 추출됩니다.
우리는 최종 포인트 클라우드를 얻기 위해 pt_m과 pt_r의 위치와 색상을 병합합니다 (5), 여기서 ⊕은 concatenation 연산입니다.
그림 3은 노이즈가 많은 포인트가 성장하고 색이 섭동하는 과정을 보여줍니다.
마지막으로 최종 포인트 클라우드 p_t의 위치 p_f와 색상 c_f를 모두 사용하여 3D 가우시안 θ_b(μ_b, c_b, ∑_b, α_b)의 위치 μ_b와 색상 c_b를 초기화합니다.
3D 가우시안의 불투명도 α_b는 0.1로 초기화되고 공분산 ∑_b는 가장 가까운 두 지점 사이의 거리로 계산됩니다.
알고리즘 1은 구체적인 알고리즘 흐름도를 보여줍니다.
((Algorithm 1))
3.3.2 Text-to-Motion Diffusion Model
저희는 텍스트를 사용하여 일련의 인체 모션을 생성하고 주어진 텍스트와 가장 잘 일치하는 인간 포즈를 선택합니다.
그런 다음 이 인간 포즈의 핵심 포인트를 삼각형 메쉬 m으로 표현된 SMPL 모델 [38]로 변환합니다.
그런 다음 메쉬 m을 포인트 클라우드 pt_m(p_m, c_m)으로 변환하고, 여기서 포인트 클라우드의 각 포인트 p_m 위치는 m의 정점에 해당합니다.
pt_m의 색상 c_m은 여기에 사용된 SMPL 모델에 텍스처가 없기 때문에 c_m을 랜덤으로 초기화합니다.
원점 근처에서 pt_m을 이동하기 위해 p_m의 중심점 p_c ∈ R^3을 계산하고 중심점 p_c에서 포인트 클라우드 pt_m 위치를 뺀다.
(6)
마지막으로, 저희는 섹션 3.3.1에서 설명한 것과 유사하게 포인트 클라우드 pt를 사용하여 3D 가우시안을 초기화합니다.
모션 시퀀스 생성을 개선하기 위해 모션과 관련된 관련 부분만 유지하여 텍스트를 단순화하고 제목을 추가합니다.
예를 들어, 텍스트 프롬프트가 "Iron man kicks with his left leg"인 경우 모션 시퀀스 생성 시 "Someone kicks with the left leg"로 변환합니다.
3.4. Optimization with the 2D Diffusion Model
디테일을 풍부하게 하고 3D 자산의 품질을 향상시키기 위해 3D 가우시안 θ_b를 3D 디퓨전 모델 priors로 모델을 초기화한 후 2D 디퓨전 모델 F_2D로 최적화합니다.
저희는 3D 가우시안을 최적화하기 위해 SDS (Score Distillation Sampling) loss를 사용합니다.
먼저 3D Gaussian Splatting [24] 방법을 사용하여 렌더링된 이미지 x = g(θ_i)를 얻습니다.
여기서 g는 식 3과 같이 splatting 렌더링 방법을 나타냅니다.
그런 다음 식 1을 사용하여 2D 디퓨전 모델 F_2D로 가우시안 매개변수 θ_i를 업데이트하기 위한 그래디언트를 계산합니다.
2D 디퓨전 모델 F_2D를 사용하여 짧은 최적화 기간 후 최종 생성된 3D 인스턴스 θ_f는 3D 디퓨전 모델 F_3D에서 제공하는 3D 일관성 위에 고품질과 충실도를 달성합니다.
4. Experiments
이 섹션에서는 먼저 섹션 4.1의 구현 세부 사항과 섹션 4.2의 정량적 비교를 제시합니다.
그런 다음 섹션 4.3에서 우리는 우리 방법의 시각화 결과를 보여주고 다른 방법과 비교합니다.
섹션 4.4에서는 우리 방법의 효과를 검증하기 위해 일련의 ablation 실험을 수행합니다.
마지막으로 우리는 우리 방법의 한계에 대해 논의합니다.
4.1. Implementation Details
저희 방법은 ThreeStudio [13]을 기반으로 PyTorch [49]에서 구현됩니다.
우리 방법에 사용된 3D 디퓨전 모델은 Shap-E [23] 및 MDM[72]이며, Cap3D [41]에서 Objaverse [11]에 파인튜닝된 Shap-E 모델을 로드합니다.
2D 디퓨전 모델의 경우 가이던스 척도가 100인 stabilityai/stable-diffusion-2-1-base [57]를 사용합니다.
우리가 사용하는 타임스탬프는 500회 반복 전에 0.02에서 0.98까지 균일하게 샘플링되고 500회 반복 후에는 0.02에서 0.55로 바뀝니다.
3D 가우시안의 경우 불투명도 α와 위치 μ의 학습률은 10^-2 및 5×10^-5입니다.
3D 가우시안의 색상 c는 sh 계수로 표시되며, 정도는 0으로 설정되고 학습률은 1.25 × 10^-2로 설정됩니다.
3D 가우시안의 공분산은 최적화를 위해 스케일링과 회전으로 변환되며, 학습률은 각각 10^-3 및 10^-2입니다.
렌더링에 사용하는 카메라의 반경은 1.5~4.0이며 azimuth각은 -180~180도 범위, elevation은 -10~60도 범위입니다.
총 학습 반복은 1200입니다.
저희의 모든 실험은 배치 크기가 4인 단일 RTX 3090에서 15분 이내에 완료할 수 있습니다.
렌더링에 사용하는 해상도는 1024 × 1024로 2D 디퓨전 모델을 사용하여 최적화 시 512 × 512로 스케일링됩니다.
512 × 512 해상도로 실시간 렌더링이 가능합니다.
(( 표 1. 다른 방법과의 CLIP[55] similarity에 대한 정량적 비교. ))
4.2. Quantitative Comparisons
표 1에서는 CLIP [55] similarity를 사용하여 방법을 정량적으로 평가합니다.
표의 다른 방법의 결과는 동시 Instant3D [29] 논문에서 가져온 것입니다.
Shap-E [23]의 결과는 공식 소스에서 가져온 것이고, DreamFusion [50] 및 ProlificDreamer [77]의 결과는 ThreeStudio [13]의 구현에서 가져온 것입니다.
DreamFusion의 구현 버전은 본문에서 언급하는 공식 보고서보다 시간이 짧습니다.
평가 중에 저희는 카메라 반경 4, elevation 15도를 사용하고 -180도에서 180도까지 고르게 이격된 azimuth각 120개를 선택하여 다양한 관점에서 120개의 렌더링된 이미지를 생성합니다.
저희는 Instant3D 설정을 따라 120개의 렌더링된 이미지에서 10개를 랜덤으로 선택합니다.
저희는 선택된 각 이미지와 텍스트 간의 유사도를 계산한 다음 선택된 10개의 이미지에 대한 평균을 계산합니다.
다른 방법을 평가할 때 DreamFusion의 415개 프롬프트 중 400개를 선택한다는 점에 주목할 필요가 있습니다.
이는 일부 generation에서 실패했기 때문에 DreamFusion의 415개 프롬프트 모두를 평가하는 동안 저희 방법이 불리하기 때문입니다.
저희는 CLIP similarity를 계산하기 위해 OpenAI [54]의 ViT-L/14와 OpenCLIP [20, 60]의 ViT-bigG-14 두 가지 모델을 사용합니다.
저희의 방법은 ProlificDreamer를 제외한 모든 방법보다 우수하지만 생성 속도는 ProlificDreamer보다 40배 빠릅니다.
4.3. Visualization Results
이 섹션에서는 두 가지 다른 3D 디퓨전 모델로 3D 가우시안을 초기화한 결과를 제시합니다: text-to-3D 및 text-to-motion 디퓨전 모델.
4.3.1 Initialization with Text-to-3D Diffusion Model
저희는 그림 4의 DreamFusion [50], Magic3D [31], Fantasia3D [6]와 ProlificDreamer [77]와 비교된 결과를 보여줍니다.
저희의 방법 외에도 다른 방법의 그림은 ProlificDreamer의 논문에서 다운로드됩니다.
"A plate piled high with chocolate chip cookies"라는 프롬프트와 같이 여러 개체의 조합과 관련된 프롬프트가 나타나면 Magic3D, Fantasia3D 및 ProlificDreamer에서 생성된 결과는 접시를 포함하지 않습니다.
대조적으로, 우리가 만든 결과물은 접시와 초콜릿 칩 쿠키를 효과적으로 결합할 수 있습니다.
또한 DreamFusion과 비교하여 우리가 만든 접시는 더 나은 패턴을 가지고 있습니다.
우리의 방법은 그들의 방법에 비해 21~24배의 생성 시간을 절약하면서도 비슷한 품질을 보여줍니다.
또한 저희 방법으로 생성된 3D 가우시안은 메쉬와 같은 구조로 더 이상 변환하지 않고도 실시간 렌더링을 직접 달성할 수 있습니다.
그림 5는 다양한 프롬프트에서 GaussianDreamer가 생성한 더 많은 샘플을 시각화하여 고품질 세부 정보를 제공합니다.
Generation with Ground.
초기화 시 생성된 포인트 클라우드 하단에 지면을 나타내는 포인트 클라우드 레이어를 추가합니다.
지면의 색상은 랜덤으로 초기화됩니다.
그런 다음, 지면이 추가된 포인트 클라우드를 사용하여 3D 가우시안을 초기화합니다.
그림 6은 최종 3D Gaussian Splatting 결과[24]를 보여줍니다.
(( 그림 6. 지면과 함께 생성한 결과. ))
(( 그림 7. 우리의 방법과 DreamFusion [50], DreamAvatar [5], DreamWaltz [18], AvatarVerse [86]의 정성적 비교. ))
4.3.2 Initialization with Text-to-Motion Diffusion Model
그림 7에서는 DreamFusion [50], DreamAvatar [5], DreamWaltz [18] 및 AvartarVerse [86]와의 비교 결과를 제시합니다.
저희의 방법 외에도 다른 방법의 그림은 AvatarVerse의 논문에서 다운로드됩니다.
저희의 프롬프트는 "Spiderman/Stormtrooper stands with open arms"인 반면, 다른 방법의 프롬프트는 "Spiderman/Stormtrooper"라는 점에 주목할 필요가 있습니다.
text-to-motion 디퓨전 모델을 초기화로 사용하여 모션을 생성할 때 보다 구체적인 동작 설명이 필요하기 때문입니다.
저희의 방법은 비슷한 품질을 유지하면서 다른 방법에 비해 4-24배의 속도 향상을 달성합니다.
또한 저희의 방법은 지정된 신체 포즈로 3D 아바타를 생성할 수 있습니다.
그림 8에서는 다양한 인체 포즈로 생성된 더 많은 결과를 제공합니다.
먼저 text-to-motion 3D 디퓨전 모델을 사용하여 텍스트 프롬프트와 일치하는 모션 시퀀스를 생성한 다음 모션에서 선택한 포즈 중 하나의 SMPL로 3d 가우시안을 초기화합니다.
저희의 방법은 원하는 포즈로 3D 아바타를 생성할 수 있습니다.
(( 그림 8. SMPL의 다른 포즈로 초기화된 GaussianDreamer에 의해 더 많이 생성된 3D 아바타 [38]. 여기서 SMPL의 다른 포즈는 text-to-motion 디퓨전 모델을 사용하여 생성됩니다. ))
(( 그림 9. 3D Gaussians의 초기화에 대한 ablation 연구. 여기서 Shap-E [11] 렌더링 해상도는 256x256입니다. ))
4.3. Ablation Study and Analysis
The Role of Initialization.
그림 9와 같이 먼저 3D 가우시안 초기화에 대한 ablation 실험을 수행하여 초기화가 3D 일관성을 향상시킬 수 있는지 검증합니다.
첫 번째 열은 NeRF [19]를 3D 표현으로 사용한 Shap-E [11]의 렌더링 결과입니다.
두 번째 열은 SDS loss를 사용하여 큐브 내에서 랜덤으로 초기화된 3D 가우시안을 최적화한 결과이며 세 번째 열은 저희 방법입니다.
저희는 3개의 샘플에 대한 초기화 효과를 보여줍니다.
첫 번째 행과 두 번째 행에서 Shap-E는 좋은 생성 결과를 가지고 있는 반면 저희 방법은 더 복잡한 지오메트리와 더 사실적인 모양을 제공합니다.
랜덤 초기화와 비교하여 첫 번째 행에서는 저희 방법의 디테일이 더 좋습니다.
두 번째 행에서 랜덤 초기화에 의해 생성된 3D 자산에는 다중 헤드 문제가 있으며 이 문제는 저희 방법에서는 발생하지 않습니다.
3D 디퓨전 모델을 초기화하면 무리한 지오메트리를 피할 수 있습니다.
세 번째 행에서 Shap-E의 생성 결과는 주어진 텍스트 프롬프트와 크게 다르지만 저희 방법은 2D 디퓨전 모델을 통해 3D 자산을 프롬프트에 더 가깝게 만듭니다.
우리의 방법은 Shap-E 프롬프트의 도메인을 확장하여 더 넓은 범위의 프롬프트를 기반으로 3D 자산을 생성할 수 있습니다.
(( 그림 10. 노이즈가 많은 포인트 성장과 색 섭동에 대한 ablation 연구. "Grow&Pertb."는 노이즈가 많은 포인트 성장과 색 섭동을 나타냅니다. ))
Noisy Point Growing and Color Perturbation.
그림 10은 노이즈가 많은 포인트 성장과 색상 섭동의 ablation 결과를 보여줍니다.
노이즈가 많은 포인트 성장과 색상 섭동이 적용되어 첫 번째 줄은 저격총의 개선된 디테일을 보여줍니다.
또한, 두 번째 컬럼은 노이즈가 많은 포인트 성장 및 색상 섭동이 없는 경우에 비해 프롬프트에서 언급된 아미구루미의 스타일 특성에 더 잘 부합하는 아미구루미 모터사이클을 생성합니다.
(( 그림 11. 다양한 text-to-3D 디퓨전 모델을 사용한 초기화의 ablation 연구: Point-E [46] 및 Shap-E [23]. ))
Initialization with Different Text-to-3D Diffusion Models.
저희 프레임워크의 효과를 검증하기 위해 두 개의 text-to-3D 생성 모델인 Shap-E [23]와 Point-E [46]를 선택합니다.
저희는 Cap3D [41]에서 Objaverse [11]에 파인튜닝된 Point-E 모델을 로드합니다.
그림 11은 두 개의 text-to-3D 생성 모델 중 하나를 사용하여 3D 가우시안을 초기화한 후 생성된 결과를 보여줍니다.
두 초기화 모두 좋은 생성 결과를 산출하는 것을 알 수 있습니다.
그러나 Shap-E는 Point-E가 사용하는 포인트 클라우드 표현에 비해 높은 충실도를 제공하는 NeRF와 SDF를 기반으로 3D 자산을 생성하므로 Shap-E를 사용하여 초기화할 때 그림 11의 첫 번째 행에 있는 비행기의 지오메트리가 더 잘 나타납니다.
4.5. Limitations
저희 방법을 통해 생성된 3D 자산의 가장자리가 항상 샤프하지는 않으며 객체 표면 주변에 불필요한 3D 가우시안이 있을 수 있습니다.
이러한 포인트 클라우드를 필터링하는 방법이 개선 가능한 방향이 될 수 있을 것입니다.
저희 방법은 3D 디퓨전 모델 priors를 활용하므로 다중 얼굴 문제를 크게 완화할 수 있습니다.
그러나 백팩과 같은 객체의 앞뒤에 지오메트리 차이는 거의 없지만 외관상 차이가 큰 장면에서는 다중 얼굴 문제가 발생할 가능성이 여전히 적습니다.
3D 인식 디퓨전 모델을 활용하면 이 문제를 해결할 수 있을 것입니다.
또한 실내 장면과 같은 대규모 장면을 생성하는 데는 저희 방법의 효과가 제한적입니다.
5. Conclusion
저희는 Gaussian splatting 표현을 통해 3D 및 2D 디퓨전 모델의 능력을 연결하여 빠른 text-to-3D 방법 GaussianDreamer를 제안합니다.
GaussianDreamer는 3D 일관성을 유지하면서 상세하고 사실적인 지오메트리 및 외관을 생성할 수 있습니다.
3D 가우시안의 3D 디퓨전 모델 priors 및 지오메트리 priors의 수렴 속도를 효과적으로 촉진합니다.
각 샘플은 하나의 GPU에서 15분 이내에 생성할 수 있습니다.
저희는 3D 및 2D 디퓨전 모델을 연결하는 접근 방식이 3D 자산을 효율적으로 생성하는 유망한 방향이 될 수 있다고 생각합니다.