1. Introduction
-
3D 생성 모델 (3D generative models)
- 초기 연구: GAN(Generative Adversarial Nets) 을 활용하여 3D 데이터를 생성하려는 시도가 있었습니다.
- 최근 연구:
- Diffusion model이 다양한 3D 표현 방식 (point clouds, voxel grids, Triplanes, 3D Gaussians 등)에 적용되었습니다.
- 한계: 이러한 모델들은 종종 효율성 문제에 직면했으며, 특히 원본 데이터 공간에서 생성 모델링을 할 때 어려움이 있었습니다.
- 잠재 공간 생성: 품질과 효율성을 높이기 위해 더 압축된 잠재 공간에서 생성하는 연구들이 등장했습니다.
- 일부는 모양 모델링에 집중했으며, 전체 3D 애셋 생성을 위해 추가적인 텍스처링 단계가 필요했습니다.
- 일부 연구는 외형 정보를 통합했지만, 표면 표현으로 인해 매우 상세한 외형을 모델링하는 데 어려움을 겪었습니다.
- Radiance Fields나 3D Gaussians 기반의 잠재 표현은 정확한 표면 모델링에 어려움을 줄 수 있습니다.
- 이 논문의 목표: 다양한 3D 표현 방식에 걸쳐 고품질 3D 생성을 가능하게 하는 통일되고 다목적의 잠재 공간을 개발하는 것입니다.
-
2D 생성 모델을 활용한 3D 생성 (3D creation with 2D generative models)
- 핵심 아이디어: 3D 생성 모델을 직접 학습하는 대신, 우수한 일반화 능력을 가진 2D 생성 모델을 활용합니다.
- DreamFusion 방식: 사전 학습된 이미지 diffusion model에서 3D 애셋을 증류하여 최적화하는 방식과 그 후속 연구들이 있습니다.
- Multiview 이미지 생성 방식: 2D diffusion 모델을 통해 다중 시점 이미지를 생성하고 이를 기반으로 3D 애셋을 재구성하는 방식입니다.
- 한계: 2D 생성 모델 자체의 다중 시점 불일치성 때문에, 이러한 방식은 3D 데이터 컬렉션에서 직접 학습된 네이티브 3D 모델에 비해 형상 품질이 떨어지는 경우가 많습니다.
-
Rectified flow 모델 (Rectified flow models)
- 새로운 생성 패러다임: Diffusion model에 도전하는 새로운 생성 패러다임으로 부상했습니다.
- 효과 입증: 대규모 이미지 및 비디오 생성에서 효과가 입증되었습니다.
- 이 논문의 적용: 이 논문에서도 rectified flow 모델을 적용하여 대규모 3D 생성 능력을 보여줍니다.
3. Methodology
3.1. Structured Latent Representation
-
정의: 3D 에셋(O)의 형상(geometry)과 외형(appearance) 정보를 통합하여 인코딩하는 새로운 방식입니다.
-
구조: 3D 그리드 상에 객체의 표면과 교차하는 '활성 복셀(active voxel)'이라는 특정 위치(pi)에 국부적인 잠재 벡터(zi)를 연결하여 구성됩니다.
-
수식: Structured Latent Representation z는 다음과 같이 표현됩니다.
z={(zi,pi)}i=1L,zi∈RC,pi∈{0,1,…,N−1}3
-
z: 전체 Structured Latent Representation 입니다.
-
(zi,pi): i번째 활성 복셀에 대한 정보 쌍입니다.
-
zi: i번째 활성 복셀에 연결된 국부적인 잠재 벡터입니다. 이 벡터는 해당 위치의 상세한 형상 및 외형 정보를 담고 있습니다.
-
C: 국부적인 잠재 벡터 zi의 차원입니다.
-
pi: i번째 활성 복셀의 3D 그리드 내 위치를 나타내는 인덱스입니다. {0,1,…,N−1}3는 그리드의 크기가 N×N×N임을 의미합니다.
-
L: 활성 복셀의 총 개수입니다.
-
역할:
- 활성 복셀의 위치(pi)는 3D 에셋의 거친 구조를 나타냅니다.
- 국부적인 잠재 벡터(zi)는 해당 위치의 더 세밀한 외형 및 형상 정보를 포착합니다.
- 이 둘이 함께 객체의 전체 표면을 포괄하며, 전반적인 형태와 복잡한 디테일을 효과적으로 담아냅니다.
-
효율성: 3D 데이터는 대부분 비어 있는 공간이 많으므로, 활성 복셀의 개수(L)는 전체 그리드 크기(N3)에 비해 훨씬 적습니다 (L≪N3). 이 덕분에 비교적 높은 해상도(예: N=64)에서도 효율적으로 표현할 수 있습니다 (기본 설정에서 N=64, 평균 L=20K).
3.2. Structured Latents Encoding and Decoding
Visual feature aggregation
이 섹션에서는 3D 에셋을 Structured LATent (SLAT) 표현으로 인코딩하는 첫 단계인 "Visual feature aggregation"에 대해 설명합니다.
- 목표: 각 3D 에셋 O의 기하학적 정보와 외형(appearance) 정보를 f={(fi,pi)}i=1L 형태의 복셀화된(voxelized) 피처로 변환하는 것입니다.
- pi (Active Voxels): Eq. (1)에서 정의된 활성화된 복셀들의 위치 인덱스입니다. 이 활성화된 복셀들은 3D 에셋 표면과 교차하는 부분에 해당하며, 객체의 대략적인 구조를 나타냅니다.
- fi (Visual Feature): 각 활성화된 복셀
pi에 연결된 시각적 피처입니다. 이 피처는 해당 복셀 주변 영역의 상세한 구조 및 외형 정보를 담고 있습니다.
- fi 추출 과정:
- 3D 에셋 O를 구(sphere) 위에서 무작위로 샘플링된 카메라 시점에서 여러 장의 이미지를 렌더링합니다.
- 미리 학습된 DINOv2 인코더를 사용하여 각 렌더링된 이미지에서 피처 맵을 추출합니다.
- 각 활성화된 복셀 pi를 이 여러 시점의 피처 맵에 투영합니다.
- 투영된 위치에서 해당하는 피처들을 가져와 평균을 계산하여 fi를 만듭니다.
- 해상도: 복셀화된 피처 f의 해상도는 Structured Latents z와 동일하게 643으로 설정됩니다. 논문 저자들은 DINOv2 피처의 강력한 표현 능력과 활성화된 복셀의 거친 구조 정보 덕분에 이 해상도로도 원본 3D 에셋을 높은 충실도(high fidelity)로 재구성하기에 충분하다고 언급합니다.
이 과정을 통해 3D 에셋은 희소한(sparse) 복셀 구조와 각 복셀에 연결된 상세한 시각적 피처를 포함하는 중간 표현으로 변환되며, 이는 이후 단계에서 Structured Latents z로 인코딩되고 다양한 3D 표현으로 디코딩됩니다.
Sparse VAE for structured latents
해당 텍스트는 SLAT(Structured LATent) 표현을 위해 사용된 Sparse VAE(Variational Autoencoder)에 대해 설명합니다. 이 VAE는 3D 에셋을 인코딩하고 디코딩하는 핵심 부분입니다.
-
목적: 3D 에셋의 지오메트리 및 외형 정보를 통일된 structured latent 표현인 z로 인코딩하고, 다시 다양한 3D 표현으로 디코딩하는 것입니다.
-
구성:
- 인코더 (E): 위에서 얻은 복셀화된 특징 f를 입력으로 받아 구조화된 잠재 표현 z로 변환합니다.
- 디코더 (D): 잠재 표현 z를 입력으로 받아 3D 에셋의 특정 3D 표현(Radiance Fields, 3D Gaussians, meshes 등)으로 변환합니다. 여러 종류의 디코더(DGS, DRF, DM)가 있으며, 이는 다양한 출력 형식을 지원합니다.
-
구조: 인코더와 디코더는 동일한 Transformer 기반 아키텍처를 사용합니다.
-
Sparse VAE:
- 3D 데이터는 희소(sparse)하므로, 객체 표면과 교차하는 활성 복셀(active voxel)에만 데이터가 존재합니다.
- 이 활성 복셀의 특징(fi)과 위치(pi)를 일렬로 펼쳐 Transformer의 입력 토큰으로 사용합니다.
- 복셀 위치 기반의 sinusoidal positional encoding을 추가하여 위치 정보를 제공합니다.
- 입력 토큰의 길이는 활성 복셀 수 L에 따라 가변적입니다.
- Transformer 블록은 일렬로 펼쳐진 토큰을 처리합니다. 특히, 잠재 표현의 지역적 특성을 고려하여 3D 공간에서의 shifted window attention을 통합하여 로컬 정보 상호작용을 강화하고 효율성을 높였습니다.
-
학습:
- 인코더와 디코더는 엔드-투-엔드(end-to-end) 방식으로 함께 학습됩니다.
- 디코딩된 3D 에셋과 실제 3D 에셋 간의 재구성 손실(reconstruction loss)을 사용하여 학습을 지도합니다.
- 잠재 벡터 zi에 KL-페널티(KL-penalty)를 적용하여 이 값이 정규 분포를 따르도록 정규화합니다. 이는 잠재 공간이 잘 구조화되도록 돕습니다.
- 이 논문에서는 효율성과 충실도 때문에 3D Gaussians를 사용하여 인코더와 디코더를 엔드-투-엔드로 학습하고, 다른 출력 형식은 학습된 인코더를 고정한 채 해당 디코더만 별도로 학습합니다. 이 Sparse VAE는 3D 에셋의 복잡한 지오메트리와 외형 정보를 효율적으로 압축하고 다양한 형식으로 복원할 수 있는 유연한 잠재 표현을 학습하는 데 중요한 역할을 합니다.
인코딩된 정보를 3D 가우시안, NeRF, 메쉬 세 가지로 디코딩할 수 있으나, 본 포스트에서는 메쉬만에 대한 방법만 정리함.
선택하신 내용은 SLAT(Structured LATent) 표현에서 메시(Mesh)로 디코딩하는 과정을 설명합니다. 이 과정은 SLAT에 저장된 구조 및 상세 정보를 바탕으로 3D 메시 모델을 생성합니다. (인코딩된 정보를 3D 가우시안, NeRF, 메쉬 세 가지로 디코딩할 수 있으나, 본 포스트에서는 메쉬만에 대한 방법만 정리합니다.)
3.3. Structured Latents Generation
SLAT을 생성하는 과정에 대해 설명하는 구간입니다.
- 두 단계 생성 파이프라인
- 첫 번째 단계: 객체의 대략적인 구조를 나타내는 sparse structure, 즉 활성 복셀(pi)의 위치를 생성합니다.
- 두 번째 단계: 첫 번째 단계에서 생성된 희소한 구조 위에 객체의 세부 정보(형상 및 외형)를 담고 있는 local latents(zi)를 생성합니다.
Rectified flow models
-
개념: Rectified flow 모델은 데이터를 생성하기 위한 새로운 패러다임으로, 데이터 샘플(x0)과 노이즈(ϵ) 사이를 시간에 따라 선형적으로 보간하는 정방향 프로세스를 사용합니다. 그리고 이 정방향 프로세스의 역방향을 학습하여 노이즈로부터 데이터를 생성합니다.
-
정방향 프로세스: 데이터 샘플 x0와 노이즈 ϵ 사이를 선형적으로 보간합니다.
- 수식: x(t)=(1−t)x0+tϵ
- 각 항 설명:
- x(t): 시간 t에서의 데이터 상태입니다.
- x0: 실제 데이터 샘플입니다.
- ϵ: 무작위 노이즈입니다.
- t: 0부터 1까지 변하는 시간 단계를 나타냅니다. t=0일 때는 x0 (데이터)이고, t=1일 때는 ϵ (노이즈)가 됩니다.
-
역방향 프로세스: 노이즈 샘플(ϵ)을 데이터 분포(x0) 방향으로 이동시키는 시간 의존적 벡터 필드로 표현됩니다.
- 수식: v(x,t)=∇tx
- 설명: 이 벡터 필드는 시간 t에서의 상태 x에 대해 데이터 샘플 x0 방향으로의 속도를 나타냅니다. 이 논문에서는 신경망 vθ를 사용하여 이 벡터 필드를 근사합니다.
-
학습 목표 (CFM Objective): 신경망 vθ가 실제 벡터 필드를 잘 근사하도록 학습시킵니다.
- 수식: LCFM(θ)=Et,x0,ϵ∥vθ(x,t)−(ϵ−x0)∥22
- 각 항 설명:
- LCFM(θ): Rectified flow 모델 vθ의 학습 손실 함수입니다.
- Et,x0,ϵ: 시간 t, 데이터 샘플 x0, 노이즈 ϵ에 대한 기댓값입니다. 즉, 가능한 모든 경우에 대해 평균적인 손실을 계산합니다.
- vθ(x,t): 신경망 vθ가 시간 t에서의 상태 x에 대해 예측한 속도 벡터입니다.
- (ϵ−x0): 시간 t에서의 상태 x(t)=(1−t)x0+tϵ가 노이즈 ϵ에서 데이터 x0로 이동하는 실제 속도 벡터입니다. x(t)를 시간 t에 대해 미분하면 dtd((1−t)x0+tϵ)=−x0+ϵ=ϵ−x0가 됩니다.
- ∥⋅∥22: 예측된 속도 벡터와 실제 속도 벡터 간의 유클리드 거리의 제곱입니다.
- 목표: 이 손실 함수를 최소화함으로써 신경망 vθ가 시간 t와 현재 상태 x가 주어졌을 때 노이즈에서 데이터로 이동하는 실제 속도 (ϵ−x0)를 정확하게 예측하도록 학습합니다.
-
논문에서의 역할: 이 Rectified flow 모델은 SLAT(Structured LATent) 표현의 희소한 구조({pi})와 지역 잠재 벡터({zi})의 분포를 모델링하고 생성하는 데 사용됩니다.
Sparse structure generation
이 섹션에서는 Structured LATent (SLAT) 생성의 첫 번째 단계인 "희소 구조 생성"에 대해 설명합니다. 이 단계의 목표는 3D 객체의 대략적인 형태를 나타내는 활성 복셀의 집합(pi)을 생성하는 것입니다.
-
목표: 3D 객체의 표면과 교차하는 활성 복셀의 위치를 나타내는 희소 구조 {pi}i=1L를 생성하는 것입니다. 여기서 pi는 N×N×N 3D 그리드에서의 위치 인덱스이며, L은 활성 복셀의 총 수입니다.
-
도전 과제: 희소한 활성 복셀 {pi}를 다루기 위해, 이를 N×N×N 크기의 조밀한 이진 3D 그리드 O로 변환하는데, 활성 복셀 위치는 1, 나머지는 0으로 설정합니다 (O∈{0,1}N×N×N). 하지만 이 조밀한 그리드 O를 직접 생성하는 것은 계산 비용이 많이 듭니다.
-
해결책: 압축:
- 계산 효율성을 높이기 위해, 간단한 VAE(Variational Autoencoder)와 3D 컨볼루션 블록을 사용하여 조밀한 이진 그리드 O를 저해상도의 특징 그리드 S로 압축합니다 (S∈RD×D×D×CS).
- O는 객체의 대략적인 기하학적 정보만 나타내기 때문에, 이 압축 과정은 거의 손실 없이 이루어집니다.
- 또한, 이 과정을 통해 O의 이산적인 이진 값(0 또는 1)이 S의 연속적인 특징으로 변환되어 rectified flow 모델 학습에 적합하게 됩니다.
-
구조 생성 모델 (GS):
- 압축된 특징 그리드 S를 생성하기 위해 GS라는 transformer 백본 모델을 사용합니다 (Fig. 3b 참조).
- 입력으로 조밀한 노이즈 그리드를 받습니다.
- 이 노이즈 그리드는 직렬화(flattening)되어 토큰 시퀀스로 만들어지고, 섹션 3.2에서 설명된 위치 인코딩이 추가됩니다.
- 이 토큰 시퀀스는 디노이징을 위해 transformer 블록을 통과합니다.
- 시간 단계 정보는 adaLN(adaptive layer normalization)과 gating 메커니즘을 사용하여 모델에 통합됩니다.
- 텍스트 또는 이미지 조건은 cross-attention 레이어를 통해 주입됩니다.
- 텍스트 조건의 경우, 사전 훈련된 CLIP 모델에서 추출한 특징을 사용합니다.
- 이미지 조건의 경우, DINOv2에서 추출한 시각적 특징을 사용합니다.
-
디코딩:
- GS에 의해 디노이즈된 특징 그리드 S는 다시 이진 그리드 O로 디코딩됩니다.
- 최종적으로, 이 이진 그리드 O는 활성 복셀 집합 {pi}i=1L으로 변환되어 희소 구조가 완성됩니다.
Structured latents generation
이 부분은 논문에서 제시하는 3D 생성 파이프라인의 두 번째 단계인 "Structured Latents generation"에 대해 설명합니다. 첫 번째 단계에서 생성된 희소 구조(pi)를 바탕으로, 각 활성 복셀에 연결된 국부 잠재 벡터(zi)를 생성하는 과정입니다.
-
목표: 첫 번째 단계(Sparse structure generation)에서 생성된 희소 구조(pi)를 기반으로, 상세한 모양 및 외관 정보를 담고 있는 국부 잠재 벡터(zi)를 생성합니다.
-
사용 모델: GL이라는 이름의 트랜스포머 모델을 사용합니다. 이 모델은 희소 구조 데이터를 효율적으로 처리하도록 설계되었습니다. (Fig. 3c 참조)
-
효율성 개선: Section 3.2의 Sparse VAE 인코더처럼 입력 잠재 벡터를 직접 직렬화(serializing)하는 대신, 효율성을 높이기 위해 이를 더 짧은 시퀀스로 '압축(packing)'한 후 직렬화합니다. 이는 DiT에서 사용된 방식과 유사합니다.
-
압축 과정: 희소 구조의 특성을 활용하여, 2x2x2 지역 내의 잠재 벡터들을 희소 컨볼루션을 사용한 다운샘플링 블록을 통해 압축합니다.
-
모델 구조: 압축된 시퀀스는 시간 변조 트랜스포머 블록들을 통과하며 처리됩니다. 트랜스포머의 끝에는 컨볼루션 업샘플링 블록이 추가되며, 공간 정보 흐름을 원활하게 하기 위해 다운샘플링 블록으로부터의 스킵 연결(skip connections)이 포함됩니다.
-
조건부 정보 통합: GS 모델과 마찬가지로, adaLN 레이어를 통해 타임스텝 정보가 통합되고, 크로스 어텐션(cross-attentions)을 통해 텍스트나 이미지 조건이 주입됩니다.
-
학습: GL 모델은 첫 번째 단계의 GS 모델과는 독립적으로 학습됩니다. 학습에는 Conditional Flow Matching (CFM) 목적 함수(Equation 5)가 사용됩니다.
-
CFM 목적 함수 (Equation 5):
LCFM(θ)=Et,x0,ϵ∥vθ(x,t)−(ϵ−x0)∥22
-
LCFM(θ): 모델 파라미터 θ에 대한 CFM 목적 함수 값으로, 이 값을 최소화하도록 모델을 학습합니다.
-
Et,x0,ϵ: 타임스텝 t, 데이터 샘플 x0, 그리고 노이즈 ϵ에 대한 기대값을 의미합니다.
-
∥vθ(x,t)−(ϵ−x0)∥22: 모델이 예측한 벡터 필드 vθ(x,t)와 실제 목표 벡터 필드 (ϵ−x0) 사이의 L2 노름(norm) 제곱 오차입니다. 이는 모델이 노이즈가 있는 샘플 x(t)를 실제 데이터 x0 방향으로 이동시키는 방법을 배우도록 합니다.
-
vθ(x,t): 모델(파라미터 θ)이 타임스텝 t와 현재 샘플 x(t)를 입력으로 받아 예측하는 벡터 필드입니다.
-
ϵ: 데이터 분포 x0와 선형적으로 보간되는 순수 노이즈 샘플입니다.
-
x0: 실제 데이터 샘플입니다.
-
x(t): 타임스텝 t에서의 샘플로, 데이터 x0와 노이즈 ϵ의 선형 보간인 (1−t)x0+tϵ 입니다.
-
t: 0부터 1까지의 타임스텝입니다.
-
최종 생성: 학습 완료 후, GS 모델로 희소 구조 pi를 생성하고 이 구조를 바탕으로 GL 모델이 국부 잠재 벡터 zi를 생성하여 최종 structured latents z={(zi,pi)}를 얻습니다.
-
다양한 형식으로 변환: 이렇게 생성된 structured latents z는 DGS,DRF,DM 등 다양한 디코더를 통해 고품질의 3D Assets (Radiance Fields, 3D Gaussians, Mesh)로 변환될 수 있습니다.
이 2단계 생성 파이프라인은 희소 구조와 국부 상세 정보를 분리하여 처리함으로써, 효율성과 다양한 출력 형식으로의 변환 유연성을 확보합니다. 특히, rectified flow 모델을 사용하고 희소 데이터에 맞춰 구조를 최적화한 것이 특징입니다. Rectified flow 모델은 diffusion 모델 과 비교하여 더 나은 생성 품질과 프롬프트 일치도를 보여주었다고 언급합니다.
3.4. 3D Editing with Structured Latents
-
Detail variation (디테일 변화)
- SLAT의 구조(structure)와 잠재 공간(latents)이 분리되어 있다는 점을 활용합니다.
- 3D 에셋의 전체적인 거친 형상(coarse geometry)은 그대로 유지합니다.
- 다른 텍스트 프롬프트를 사용하여 두 번째 생성 단계(local latents 생성)만 다시 실행함으로써 디테일(세부적인 형상 및 외관)을 변경할 수 있습니다.
-
Region-specific editing (영역별 편집)
- SLAT의 지역성(locality, 잠재 공간이 특정 복셀에 연결됨)을 이용합니다.
- Repaint [48]라는 메서드를 연구의 2단계 생성 파이프라인에 적용한 방식입니다.
- 편집하고자 하는 영역(복셀)을 경계 상자(bounding box)로 지정합니다.
- 지정된 영역 내에서 새로운 콘텐츠를 생성하기 위해 플로우 모델의 샘플링 프로세스를 수정합니다.
- 이때, 변경되지 않은 영역과 제공된 텍스트 또는 이미지 프롬프트에 맞춰 새로운 콘텐츠가 생성됩니다.
- 결과적으로 첫 번째 단계에서는 지정된 영역 내의 새로운 구조가 생성되고, 두 번째 단계에서는 해당 구조에 맞는 일관된 디테일이 생성됩니다.* Detail variation (디테일 변화)
- SLAT의 구조(structure)와 잠재 공간(latents)이 분리되어 있다는 점을 활용합니다.
- 3D 에셋의 전체적인 거친 형상(coarse geometry)은 그대로 유지합니다.
- 다른 텍스트 프롬프트를 사용하여 두 번째 생성 단계(local latents 생성)만 다시 실행함으로써 디테일(세부적인 형상 및 외관)을 변경할 수 있습니다.
-
Region-specific editing (영역별 편집)
- SLAT의 지역성(locality, 잠재 공간이 특정 복셀에 연결됨)을 이용합니다.
- Repaint [48]라는 메서드를 연구의 2단계 생성 파이프라인에 적용한 방식입니다.
- 편집하고자 하는 영역(복셀)을 경계 상자(bounding box)로 지정합니다.
- 지정된 영역 내에서 새로운 콘텐츠를 생성하기 위해 플로우 모델의 샘플링 프로세스를 수정합니다.
- 이때, 변경되지 않은 영역과 제공된 텍스트 또는 이미지 프롬프트에 맞춰 새로운 콘텐츠가 생성됩니다.
- 결과적으로 첫 번째 단계에서는 지정된 영역 내의 새로운 구조가 생성되고, 두 번째 단계에서는 해당 구조에 맞는 일관된 디테일이 생성됩니다.