BundleFusion

Dai 2016 · 논문

한 줄 요약 — 계층적 지역-전역 포즈 최적화를 통한 전역 일관성 실시간 RGB-D 재구성으로, 포즈가 수정될 때마다 즉각적인 TSDF 역통합과 재통합을 수행합니다.

문제

확장 가능한 실시간 3D 스캐닝은 재구성된 모델에 상당한 오차를 누적시키는 포즈 드리프트에 시달리며; 전역 보정은 전통적으로 몇 시간에 걸친 오프라인 처리를 필요로 했습니다. 기존의 온라인 방법들은 보정에 몇 분이 걸려서(진정한 실시간이 아니거나), 복구 불가능하게 실패하는 취약한 프레임-대-프레임 또는 프레임-대-모델 추적을 사용하거나, 스캔 품질을 제한하는 비구조적 포인트 표현만을 지원했습니다. BundleFusion은 이 세 가지 문제를 모두 한꺼번에 풀고자 했습니다: 전역적으로 최적화된(즉 번들 조정된) 포즈, 재지역화를 포함한 강건한 추적, 고품질 체적 모델 — 이 모두를 실시간으로.

방법 및 아키텍처

입력은 30 Hz, 640×480 RGB-D 스트림 S={fi=(Ci,Di)}S = \{f_i = (C_i, D_i)\}이며; 목표는 각 프레임을 월드 공간으로 매핑하는 강체 변환 Ti(p)=Rip+tiT_i(p) = R_i p + t_i입니다. 시간적 추적 대신, 매 새로운 프레임은 입력의 전체 이력에 대해 위치가 추정됩니다 — 루프 클로저는 암묵적이고 연속적이며, 재지역화는 저절로 얻어집니다.

희소 대응점 검색. SIFT 키포인트가 검출되고(프레임당 4–5 ms) GPU에서 이전의 모든 프레임과 매칭됩니다(쌍당 약 0.05 ms, 2만 개 이상의 프레임에 대해서도 처리 가능). 매칭은 세 가지 필터를 통과합니다: Kabsch 기반 키포인트 필터(조건수 분석을 포함한 강체 맞춤; 최대 잔차가 0.02 m 미만이 될 때까지 대응점을 정리), 표면적 필터(펼쳐진 면적이 0.032 m²를 초과해야 함), 그리고 80×60으로 다운샘플링된 프레임에서의 밀집 양방향 기하/광도 검증(재투영 오차가 0.075 m를 초과하면 그 쌍은 무효화). 한 프레임 쌍은 최소 Nmin=5N_{\min} = 5개의 유효한 매칭을 필요로 합니다.

계층적 지역-전역 최적화. 연속된 프레임들은 Nchunk=11N_{\mathrm{chunk}} = 11개씩(1개씩 겹치며) 묶여 청크가 됩니다. 청크는 내부적으로 번들 조정되며; 각 청크는 집계된 특징 집합을 가진 하나의 키프레임을 두 번째 단계인 모든 키프레임에 대한 전역 최적화에 제공합니다. 두 단계 모두 쌓인 포즈 파라미터 XX에 대해 동일한 에너지를 최소화합니다:

Ealign(X)=wsparseEsparse(X)+wdenseEdense(X)E_{\mathrm{align}}(X) = w_{\mathrm{sparse}} E_{\mathrm{sparse}}(X) + w_{\mathrm{dense}} E_{\mathrm{dense}}(X)

Esparse(X)=ij(k,l)C(i,j)Tipi,kTjpj,l22E_{\mathrm{sparse}}(X) = \sum_{i}\sum_{j}\sum_{(k,l) \in C(i,j)} \left\| T_i\, p_{i,k} - T_j\, p_{j,l} \right\|_2^2

여기서 pi,kp_{i,k}는 프레임 iikk번째 특징점이고 C(i,j)C(i,j)는 프레임 jj와의 대응 관계입니다. 밀집 항 Edense=wphotoEphoto+wgeoEgeoE_{\mathrm{dense}} = w_{\mathrm{photo}} E_{\mathrm{photo}} + w_{\mathrm{geo}} E_{\mathrm{geo}}는 휘도 기울기 IiI_i에 대한 광도 정렬과 점-대-평면 기하 항을 결합하며, 유사한 시야각(60° 이내)과 겹침을 가진 프레임 쌍 EE에 대해 평가됩니다:

Ephoto(X)=(i,j)EkIi(π(di,k))Ij(π(Tj1Tidi,k))22E_{\mathrm{photo}}(X) = \sum_{(i,j) \in E}\sum_{k} \left\| I_i\big(\pi(d_{i,k})\big) - I_j\big(\pi(T_j^{-1} T_i\, d_{i,k})\big) \right\|_2^2

Egeo(X)=(i,j)Ek[ni,k(di,kTi1Tjπ1(Dj(π(Tj1Tidi,k))))]2E_{\mathrm{geo}}(X) = \sum_{(i,j) \in E}\sum_{k} \Big[ n_{i,k}^{\top} \Big( d_{i,k} - T_i^{-1} T_j\, \pi^{-1}\big( D_j\big(\pi(T_j^{-1} T_i\, d_{i,k})\big) \big) \Big) \Big]^2

π\pi는 투영, di,kd_{i,k}는 픽셀 kk의 3D 점, ni,kn_{i,k}는 그 법선입니다. wdensew_{\mathrm{dense}}는 선형적으로 증가하여, 희소 항이 먼저 전역 구조를 고정한 후 밀집 항이 그 수렴 영역 내에서 정제를 수행합니다. 비선형 최소자승 문제는 데이터-병렬 GPU PCG solver(Jacobi 전처리, JFJ_FJFJ_F^{\top}는 별도의 커널에서 적용)를 이용한 Gauss-Newton으로 풀립니다. 각 풀이 이후, 최대 잔차가 0.05 m를 초과하면 해당 프레임 쌍의 모든 대응점이 제거됩니다 — 최종 이상값 안전장치입니다.

즉각적 재통합. 기하는 복셀-해싱된 TSDF(8³ 복셀 블록)로 융합됩니다. 가중치 wi(v)w_i(v)를 가진 깊이 샘플 di(v)d_i(v)의 통합과 그 정확한 역연산(역통합)은 다음과 같습니다:

D(v)=D(v)W(v)+wi(v)di(v)W(v)+wi(v),W(v)=W(v)+wi(v)D'(v) = \frac{D(v)\,W(v) + w_i(v)\,d_i(v)}{W(v) + w_i(v)}, \qquad W'(v) = W(v) + w_i(v)

역통합 시에는 덧셈을 뺄셈으로 대체합니다. 각 프레임은 자신의 통합된 포즈와 최적화된 포즈를 저장합니다; 새 입력 프레임마다, 포즈 불일치가 가장 큰 Nfix=10N_{\mathrm{fix}} = 10개의 프레임이 이전 포즈에서 역통합되어 새 포즈로 재통합되므로, 밀집 모델은 지도 변형 없이 최적화된 궤적에 계속 수렴합니다.

실험 결과

실시간 스캐닝은 데스크톱으로 스트리밍하는 iPad 위의 Structure Sensor를 사용했습니다; 파이프라인은 두 개의 GPU(GTX Titan X + Titan Black)에 나누어 30 Hz를 훨씬 넘는 속도로 동작하며, 기본 복셀 크기는 4 mm입니다. 촬영된 장면 — 사무실 4개, 아파트 2개, 복사실 1개, 최대 95 m 및 2만 프레임 이상의 궤적 — 은 드리프트 없는 정렬과 오프라인 접근법에 준하는 완전성을 보입니다. 합성 ICL-NUIM 벤치마크에서, ATE RMSE는 kt0 0.6 cm, kt1 0.4 cm, kt2 0.6 cm, kt3 1.1 cm로 — 온라인(예: ElasticFusion: 0.9/0.9/1.4/10.6 cm)과 오프라인(Redwood rigid: 25.6/3.0/3.3/6.1 cm) 최신 기법을 능가합니다. TUM RGB-D에서는: fr1/desk 1.6 cm, fr2/xyz 1.1 cm, fr3/office 2.2 cm, fr3/nst 1.2 cm로, 기존 시스템과 동등하거나 더 우수합니다. Ablation(희소 전용 대 희소+지역 밀집 대 전체)은 희소-에서-밀집 설계의 각 단계가 정확도를 더한다는 것을 확인시켜 줍니다. 시스템은 (센서 가림, 무특징 영역 등) 추적 실패로부터 전역 키프레임에 대한 위치 추정을 계속함으로써 복구되며, 이후 ScanNet 데이터셋을 촬영하는 데 사용되었습니다.

SLAM에서의 의미

BundleFusion은 KinectFusion 이래 체적 SLAM을 괴롭혔던 문제를 해결했습니다: 루프 클로저 이후 변형 아티팩트 없이 밀집 지도를 보정하는 방법입니다. 역통합/재통합 메커니즘은 ElasticFusion의 지도 변형에 대한 TSDF 세계의 해답으로, 밀집 SLAM에서 근본적인 설계상의 분기점 한쪽을 정의합니다. 현대 밀집 시스템이 “최적화 후 포즈가 바뀐다”는 사실을 “지도는 이미 융합되어 있다”는 사실과 조화시켜야 할 때마다, 이 방법론을 재사용하고 있는 것입니다.

관련 문서