본문 바로가기
AI/3D reconstruction & generation

[Paper Review] DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation

by SolaKim 2024. 12. 9.

 

Abstract

1. DeepSDF란?

- 학습 기반의 연속적 Signed Distance Function (SDF) 표현
- 형상 클래스 전체를 고품질로 표현, 보간(interpolation), 불완전 데이터 복원 가능

2. 표현 방식

- 부피 필드에서 점의 크기: 표면 경계까지의 거리
- 부호: 형상 내부(-) 또는 외부(+)
- 경계는 함수의 0-level-set 으로 암묵적으로 인코딩

3. 기존 SDF 와 차이점

- 기존 SDF 는 단일 형상 표현
- DeepSDF 는 형상 클래스 전체를 학습하고 표현 가능

4. 성과

- 3D 형상 표현과 복원에서 최첨단 성능
- 모델 크기를 기존 대비 10배 감소

 

Introduction

1. 문제 정의
: 3D 딥러닝 모델은 기존 방식에서 공간 및 시간 복잡도 증가, 정점(vertex) 개수와 위상(topology) 불확실성 때문에 효율성과 유연성이 제한되었다.

2. DeepSDF 의 핵심 아이디어
- 연속적 Signed Distance Function (SDF) 기반의 학습된 3D 생성 모델
- SDF의 평가와 노이즈 제거를 위해 규치적인 격자로 이산화(discretize) 하는 기존 방식과 달리 연속적 필드를 생성하는 생성 모델을 학습
- SDF 를 형상 조건부(class-conditioned) 분류기로 간주해 표면을 결정 경계로 정의

3. 기여하는 바
- 연속적 암묵적 표면(continuous implicit surface) 을 사용한 형상 조건부(shape-conditioned) 3D 생성 모델링의 정식화(formulation)
- 확률적 오토디코더(probabilistic auto-decoder) 를 기반으로 3D 형상 학습
- 형상 모델링 및 복원에서의 성공적 응용
- 수천 개의 형상을 단 7.4MB 로 표현 가능
- 기존 비압축 3D 비트맵 대비 메모리 사용량 절감

4. 성과
- 복잡한 위상을 가진 고품질 연속 표면 생성
- 형상 복원 및 완성에서 최첨단 성능

 

Related Work

 

1. Representations for 3D Shape Learning

데이터 기반 3D 학습 접근법의 표현은 세가지 범주로 분류된다. [포인트 기반, 메쉬 기반, 복셀 기반]

일부 애플리케이션(예: 3D 포인트 클라우드 기반 객체 분류)는 이러한 표현에 적합하지만, 이 논문에서는 복잡한 topology 를 가진 연속 표면을 표현하는데 있어 이들의 한계에 대해서 얘기한다.

[point-based]

센서 데이터를 직접적으로 활용 가능

위상을 설명하지 못하며 완전 밀폐된(watertight) 표면을 생성할 수 없음

[mesh-based]

 3D 대응(correspondence) 제공, 고품질 형상 생성 가능

고정된 위상만 모델링 가능, 매개화 품질에 의존하며 닫힌 형상을 보장하지 못함

[Voxel-based]

3D 공간 표현에서 직관적이고 2D 컨볼루션 기반 학습과 자연스럽게 연결

높은 메모리 요구량, 저해상도 형상 표현, 매끄럽지 않은 표면 생성

 

2. Representation Learning Techniques

표현 학습(Representation Learning) 이란? 데이터를 압축적으로 표현하는 특징을 자동으로 발견하는 기술

[Generative Adversial Networks, GANs]

- 생성자(generator) 와 판별자(discriminator)가 서로 경쟁하는 훈련 과정(aka. 대립적 학습)을 통해 사실적인 데이터를 생성한다.

- 하지만 이와 같은 대립적 훈련은 불안정하다는 것이 잘 알려져 있다.

[Auto-encoders]

- 인코더와 디코더 사이의 정보 병목 구조를 통해 원본 입력을 복제하여 데이터를 재구성한다.

- 오토 인코더는 특징 학습 도구로서의 가능성 입증하였고, 많은 3D 형상 학습 연구에서 활용된다.

- 변분 오토인코더(VAE)는 병목 현상에 가우시안 노이즈를 추가하여 매끄러운 잠재 공간을 생성한다.

[Optimizing Latent Vectors]

- 전체 오토인코더를 사용하는 대신, 디코더만 학습하여 압축된 데이터 표현을 생성하고 최적의 잠재 벡터를 찾는다.

- 이는 주로 노이즈 감소 및 누락 데이터 복원에 활용된다.

 

💡 여기서, 잠재 공간(Latent Space) 란?

데이터의 압축된 표현이나 추상적인 특징을 나타내는 고차원 공간이다.
이는 원래 데이터(예: 이미지, 음성 등)의 복잡한 구조를 간결한 수학적 표현으로 변환한 것으로, 데이터의 중요한 패턴만을 포함한다.

 

3. Shape Completion

형상 완성(shape completion) 은 희소하거나 불완전한 3D 데이터를 기반으로 보이지 않는 부분을 예측하는 작업이다.

이전 방법들:
- RBF (방사 기저 함수)를 사용하여 표현 함수 근사
- 방향성 point cloud 데이터를 푸아송 문제로 변환하여 표면 재구성
- 하지만 이러한 방식은 단일 형상만 처리

최근 접근법: 데이터 기반 방식으로 발전
- 인코더-디코더 구조 활용
- 부분 데이터를 잠재 공간으로 변환 후 학습된 사전 지식을 사용해 전체 형상을 생성
- 다양한 입력 유형 지원: point cloud, 깊이 맵, RGB 이미지 등

➡️ 데이터 기반 방법은 고전적 방법의 한계를 넘어 더 유연하고 데이터셋 전반에 걸쳐 적용 가능

 

 

Modeling SDFs with Neural Networks

 

Singed Distance Function (SDF) 는 점이 표면과의 거리를 출력하는 연속 함수이며, 부호는 점이 표면 내부(음수)인지 외부(양수)인지를 나타낸다.

기저표면(Underlying surface) 은 SDF(·) = 0등치면(iso-surface)으로 암묵적으로 표현된다.
이 암묵적 표면은 Marching Cubes 를 이용한 메쉬의 래스터화나 레이캐스팅(raycasting) 을 통해 렌더링 될 수 있다.

 

DeepSDF 접근법

핵심 아이디어: 포인트 샘플로부터 SDF 를 딥러닝 신경망을 통해 직접 회귀(regress)(직접 학습) 하는것이다.

- 신경망이 특정 위치의 SDF 값을 예측하도록 훈련 (Fig 2. 참고)
- 이를 통해 SDF(x) = 0 인 표면(등치면)을 추출 가능
- deep feed-forward network 는 universal function approximator(보편적 함수 근사기) 로서 이론적으로 임의의 정밀도연속적인 형상 함수를 근사할 수 있다. 
- 하지만 실질적으로는 제한된 샘플 데이터와 네트워크 용량으로 인해 정밀도가 한정된다.

<Fig 2.> DeepSDF 표현을 Stanford Bunny에 적용한 결과
(a) 표면 내부(SDF < 0)와 외부(SDF > 0)에서 샘플링된 점들을 학습한 SDF = 0의 기저 암묵적 표면 표현
(b) 서명 거리 필드(Signed Distance Field)의 2D 단면
(c) SDF = 0 에서 복원된 3D 표면(등치면)의 렌더링
(b)와 (c) 는 모두 DeepSDF 를 통해 복원됨

 

훈련 과정

Fig 3. a 에 나와 있는 것처럼 주어진 목표 형상을 학습하기 위해 단일 딥 네트워크를 훈련시킨다.

1. 데이터 준비: 3D 점 샘플과 해당 SDF 값으로 구성된 쌍의 집합 X 준비

 

2. 목표
: 훈련 세트 S에서 multi-layer fully-connected network인 fθ(x) 의 매개변수 θ 를 훈련시켜, 타겟 도메인 Ω 에서 SDF 를 잘 근사할 수 있도록 학습

 

3. 손실 함수:  L1 손실을 최소화

훈련은 포인트 X 에 대한 예측 SDF 값과 실제 SDF 값 사이의 손실의 합을 최소화 하는 방식으로 이루어진다.

아래 식은 SDF 의 특정 거리 δ 를 제어한다. 매개변수 δ 는 표면으로부터 일정 거리 내에서 메트릭 SDF 를 유지하도록 한다.

δ가 크면 샘플이 안전한 스텝 크기 정보를 제공하기 때문에 빠른 ray tracing 가능, 작으면 표면 근처 세부사항 학습에 집중

 

4. 네트워크 설계 및 학습

- 구조: 8개 fully-connected 레이어, 각 레이어는 512 차원, ReLU 활성화 함수

- 출력 활성화 : tanh

- overfitting 방지 : dropout , ADAM optimizer 사용, 가중치 정규화(weight normalization)으로 대체하여 배치 정규화를 안정화 

- SDF 네트워크를 통한 역전파(back propagation)을 통해 공간적 미분(gradient) 을 계산하여 표면의 정확한 법선 벡터 계산 가능

공간적 미분

 

📌 요약 하자면
DeepSDF 는 딥러닝으로 SDF 를 학습하여 연속적이고 정확한 3D 형상을 표현하는 방법이다.
- SDF 는 점이 표면과의 거리를 나타내며, 부호를 통해 내/외부를 구분한다.
- 인코더 없이 
포인트 샘플만으로
 네트워크를 훈련해 형상을 학습한다.
- 장점: 표면 법선을 계산할 수 있고, 다양한 렌더링 및 재구성 작업에 활용 가능하다.

 

 

 

Learning the Latent Space of Shapes

1. 문제 정의
- 각 모양에 대해 별도로 네트워크를 학습하는 것은 비효율적
- 다양한 모양의 공통 속성을 학습하고, 이를 저차원 잠재 공간에 내재화하는 모델이 필요

2. 잠재 벡터 도입
- 잠재 벡터 z 는 모양 정보를 인코딩한다
- 신경망의 두 번째 입력으로 사용하여 연속적인 3D SDF 표현을 가능하게 한다(Fig 3b. 참조)

3. 모델 구성
- 단일 네트워크 fθ 가 잠재 벡터 z_i 와 3D 위치 x 를 입력받아 다양한 SDF를 모델링한다.
- 표면은 fθ(z, x) = 0 의 결정 경계로 표현되며, 시각화를 위해 이산화(discretized) 가능하다.

 

Motivating Encoder-less Learning

1. 기존 방식의 한계
- 기존 auto-encoder 는 병목의 특징으로 잠재 공간을 학습하지만, 테스트 시 인코더는 사용되지 않는다.
- 그래서 훈련 중 인코더 사용이 계산 자원 효율성 측면에서 최선인지 불명확하다.

 

2. auto-decoder 도입 동기
- 인코더 없이 디코더만으로 모양 임베딩을 학습한다. (Fig 4. 참고)
- 테스트 시 잠재 벡터를 최적화하여 입력 관찰값과 일치시키는 방식

3. 성과
- 연속 SDF 를 학습한 자동 디코더는 고품질 3D 생성 모델 생성 가능
- 잠재 공간 정규화를 도입하여 일반화 성능 개선하는 확률적 구성(probabilistic formulation) 개발
- 3D 학습 커뮤니티에서 자동 디코더 학습 방법 처음으로 도입했다.

Auto-decoder-based DeepSDF Formulation

auto-decoder 기반의 shape-coded DeepSDF 공식화를 유도하기 위해 확률적 관점(probabilistic perspective)를 채택했다.

 

N 개의 SDF 로 표현된 모양 데이터 셋이 있을때, 각 모양 SDF_i 에서 K 개의 점 샘플과 해당 서명 거리 값을 준비한다.

auto-decoder에는 encoder가 없으므로, 각 잠재 코드 z_i 가 훈련 데이터 X_i 와 쌍을 이룬다.
모양 SDF 샘플 X_i 에 대한 잠재 코드 z_i 의 사후 확률은 다음과 같이 분해된다.

여기서 θ 는 SDF 가능도를 매개한다.

잠재 공간에서 잠재 코드 p(z_i) 의 사전 확률은 평균 0의 다변량 가우시안 분포(multivariate-Gaussian) 로 가정된다:

이 사전 확률은 모양 코드가 밀집되도록 하고, 컴팩트한 모양 매니폴드를 추론하며 좋은 솔루션으로 수렴하도록 돕는다.

SDF 가능도는 deep feed-forward network fθ(z_i, x_j) 로 표현되며, 다음과 같은 형태를 가진다:

(8) 네트워크가 예측한 SDF
(8) 실제 SDF 값 s_j와의 편차를 벌점화하는 손실함수

훈련 시, 모든 훈련 모양에 대해 개별 모양 코드네트워크 매개변수 θ 에 대한 공동 로그 사후 확률(the joint log posterior)최대화:

개별 모양 코드

추론 시, 훈련 후 θ 를 고정한 상태에서 모양 X_i의 잠재코드 z_i는 다음 최대 사후 확률(Maximum-a-Posterior,MAP) 추정으로 계산됨: 

이 공식은 SDF 샘플 X 가 임의의 크기와 분포를 가질 수 있으므로, 손실에 대한 z 의 기울기가 각 샘플에 대해 개별적으로 계산될 수 있다는 점에서 유효하다. 이는 DeepSDF 가 깊이 지도와 같은 부분 관찰 데이터를 처리할 수 있음을 의미하며, 이는 훈련 데이터와 유사한 입력을 요구하는 자동 인코더 프레임워크보다 큰 이점이다.

잠재 코드 z 는 입력 레이어와 4번째 레이어에서 샘플 위치와 함께 네트워크에 제공된다. Adam 최적화 알고리즘을 사용하며, z 는 N(0, 0.012) 에서 무작위로 초기화된다.

 

✨ 요약 정리 ✨

1. 자동 디코더 방식
- 잠재 코드 z 와 점 샘플 X 를 사용해 여러 SDF 를 단일 네트워크로 학습시킨다.
- SDF 가능도는 네트워크 fθ(z, x) 로 표현되며, 손실 함수 L 로 예측값과 실제값 차이를 측정한다.

2. 훈련 및 추론
- 훈련: 로그 사후 확률을 최적화해 네트워크와 잠재 코드를 학습한다.
- 추론: MAP 추정을 통해 주어진 모양의 잠재 코드를 계산한다.

3. 장점
- 임의 크기/분포의 데이터와 부분 관찰 데이터 처리 가능
- 기존 자동 인코더와 달리 인코더 필요 없이 유연한 데이터 처리

4. VAE 와의 비교
- 잠재 코드에 대해 가우시안 사전 분포를 공유하지만, VAE의 확률적 최적화 방식은 3D 학습에 부적합

 

 

Data Preparation

3D 메시 데이터로부터 SDF 샘플을 생성하여 연속형 SDF 모델 훈련을 준비한다. 방법은 다음과 같다.

- 메시를 단위 구로 정규화하고, 500,000개의 공간 점 샘플링
- 표면 근처에서 더 많은 샘플링을 통해 세밀한 정보를 포착
- 가상 카메라와 표면 법선을 이용해 올바르게 정렬된 표면 점 추출
- 닫히지 않은 모양 또는 내부 구조를 가진 메시는 제거 (결함 처리)
- 각 샘플 점에 대해 SDF 값을 계산하여 모델 학습 데이터로 사용

 

Results

DeepSDF 의 표현 능력을 입증하기 위해 실험을 진행했다.

이는 기하학적 세부사항을 표현하는 능력과 원하는 형태의 임베딩 공간을 학습하는 일반화 능력을 포함한다. 

크게 네 가지 주요 실험을 통해 DeepSDF 의 능력을 테스트한다.

실험 항목 :
- 훈련 데이터 표현(기하학적 세부사항을 재현하는 능력)
- 보지 못한 형상 복원(학습된 특징 표현을 사용하여 새로운 형상을 복원하는 능력)
- 부분 형상 완성(형상 priors(선행 정보)를 사용하여 부분적인 형상을 완성하는 능력)
- 임베딩 공간 샘플링(부드럽고 완전한 형상 임베딩 공간을 학습하고 새로운 형상 샘플링하는 능력)

데이터셋: ShapeNet 사용

비교 대상: OGN(최신 옥트리 기반 방식), AtlasNet(메시 기반 방식), 3D-EPN(볼류메트릭 SDF 기반 형상 완성 방식)

 

Representing Known 3D Shapes

목적: DeepSDF 의 제한된 잠재 코드(latent code)를 사용한 기존 형상 표현 능력 평가

- CD (Chamfer Distance, 작을수록 우수) 에서 DeepSDF가 OGN, AtlasNet 보다 우수
- EMD (Earth Mover Distance, 작을수록 우수) 차이는 적었으나, 이는 적은 수의 샘플 포인트(500개) 로 인해 발생

Fig 5. 는 DeepSDF (left)가 OGN (right) 보다 정성적 평가에서도 우수함을 보여준다.

 

Representing Test 3D shapes (auto-encoding)

목적: 테스트 셋에서 알 수 없는 형상에 대한 표현 능력 평가

- DeepSDF 는 대부분의 형상 클래스와 지표에서 AtlasNet 보다 우수하다.
- AtlasNet 은 구멍 없는 형상에 적합하고, 구멍이 많은 형상에서는 성능이 저하되었다.

구멍이 있는 의자 데이터에서는 AtlasNet이 성능 저하
오른쪽 그림 2개는 DeepSDF의 실패작이다. 이는 training data의 부족과 minimization convergence의 실패 때문이다.

 

Shape Completion

목적: 부분 형상 데이터를 기반으로 완전한 형상을 생성하는 능력 평가

방법
1. 깊이 관찰 데이터 변환
- 깊이 이미지에서 SDF 샘플 생성
    - 각 깊이 관찰 지점에서 표면 법선을 따라 거리 η 만큼 떨어진 두 점을 샘플링한다.
    - 이 두 점의 SDF 값은 각각 η 및 -η 로 간주한다.
- 빈 공간(free-space) 데이터 추가
    - 관찰된 표면과 카메라 사이의 빈 공간을 따라 점을 샘플링한다.
    - 해당 점의 SDF 값은 0보다 큰 값이 되도록 제약을 적용한다.
- 손실 함수 및 최적화
    - Eq. 4 의 클램프(clamp) 값을 η 로 설정하여 MAP 추정을 수행한다.
    - 빈 공간 손실은 fθ(z, x_j) 가 0 보다 작을 경우 절대값을 붙여서 사용하고, 그렇지 않으면 0으로 설정한다. 이렇게 계산된 빈 공간 손실 값은 z 와 θ를 학습하는 MAP 추정 과정 (Eq. 10)에 포함된다. 
- Map 최적화를 통해 추정된 형상 코드디코더를 통해 형상 생성에 사용된다.

결과
- DeepSDF 는 기존 볼류메트릭 방식보다 더 정확하고 시각적으로 우수한 형상 완성 결과 제공
- DeepSDF 는 연속적인 SDF 표현의 장점을 보여줌

정량적 결과
정성적 결과

 

Latent Space Shape Interpolation

목적: 학습된 형상 임베딩(latent embedding) 이 완전하고 연속적임을 보여주기 위함

방법
- 잠재 벡터 공간에서 두 형상 간의 보간(interpolation) 을 수행
- 보간된 잠재 벡터를 디코더에 전달하여 형상을 렌더링
- Fig 1. 에 보간 결과 제시

결과
- 보간 과정에서 생성된 형상은 모두 의미 있는 형태를 유지
- 의자 팔걸이 같은 특징이 잠재 공간에서 선형적으로 보간됨
- 이는 DeepSDF 가 형상의 공통적이고 해석 가능한 특징을 효과적으로 표현함을 나타냄

 

 

Conclusion


- DeepSDF 는 3D 형상 표현 및 복원 작업에서 기존 방법들을 능가하며, 복잡한 구조와 닫힌 표면을 효과적으로 표현하고 고품질의 표면 법선 정보를 제공한다.
- 포인트별 SDF 샘플링은 효율적이지만, 형상 복원(auto-decoding)은 잠재 벡터에 대한 명시적 최적화가 필요해서 추론 시간이 길어지는 한계가 있다.
- 장점: 복잡한 형상을 더 적은 메모리로 표현하며 이전 방법보다 더욱 높은 성능을 보여준다.