BA-Net

Tang 2019 · 논문

한 줄 요약 — BA-Net (ICLR 2019)은 bundle adjustment를 미분 가능한 네트워크 레이어로 만들어, 학습된 feature pyramid와 컴팩트한 기저 깊이 맵(basis-depth-map) 파라미터화를 통해 feature-metric BA로 dense SfM을 풀며, 종단간으로 학습됩니다.

문제

전통적인 SfM 파이프라인은 모듈형입니다 — 특징 추출, 매칭, bundle adjustment가 각각 독립적으로 설계되고 최적화되므로, 특징이 자신이 봉사하는 기하학적 추정을 위해 최적화되는 일이 결코 없습니다. Geometric BA는 코너/블롭만 사용하여 매칭 이상치(outlier)에 취약하고, photometric (direct) BA는 모든 픽셀을 사용하지만 목적함수가 매우 비선형(non-convex)이어서 초기화, 노출 변화, 움직이는 물체에 민감합니다. 학습과 BA를 통합하는 데 걸림돌은 BA가 두 가지 미분 불가능한 if-else 결정을 포함하는 반복적 Levenberg–Marquardt (LM) 절차라는 점입니다: 수렴 임계값에 의한 종료, 그리고 감쇠 계수 λ\lambda의 증가/감소 업데이트입니다. BA-Net은 다음을 묻습니다: 미분 가능한 BA 레이어를 통과하여 dense SfM을 풀 수 있을까요, 그래서 복원 손실로부터의 그래디언트가 특징 자체를 학습시킬 수 있을까요?

방법 및 아키텍처

네트워크는 여러 이미지를 입력받아 카메라 포즈 T\mathbb{T}와 dense depth map D\mathbb{D}를 출력합니다. 공유된 DRN-54 backbone이 두 개의 헤드에 특징을 공급하며, 이들의 출력은 BA-Layer에서 만납니다.

ei,jf(X)=Fi(π(Ti,djqj))F1(qj),e^{f}_{i,j}(\mathcal{X}) = F_i\big(\pi(\mathbf{T}_i,\, d_j \cdot \mathbf{q}_j)\big) - F_1(\mathbf{q}_j),

여기서 π\pi는 3D 점을 이미지에 투영하고, qj\mathbf{q}_j는 이미지 I1I_1에서 깊이 djd_j를 가진 정규화된 픽셀이며, Ti\mathbf{T}_i는 이미지 IiI_i의 포즈입니다. BA를 통해 학습된 특징은 (RGB 거리나 사전 학습된 분류용 특징과 달리) 매끄러운 골짜기를 가진 명확한 전역 최솟값을 형성하여, 수렴 반경을 넓힙니다.

D=ReLU(wB),\mathbb{D} = \mathrm{ReLU}(\mathbf{w}^{\top}\mathbf{B}),

따라서 BA는 (학습된 초기값 w0\mathbf{w}_0을 가진) 결합 가중치 w\mathbf{w}만 최적화하며, ReLU가 깊이를 비음수로 유지하면서도 dense한 픽셀별 깊이는 여전히 복원됩니다.

ΔX=(J(X)J(X)+λD(X))1J(X)E(X).\Delta\mathcal{X} = \big(J(\mathcal{X})^{\top}J(\mathcal{X}) + \lambda D(\mathcal{X})\big)^{-1} J(\mathcal{X})^{\top} E(\mathcal{X}).

두 가지 미분 불가능한 결정은 (i) 반복 횟수를 고정함으로써 (“불완전 최적화”: pyramid 레벨당 5회 LM 반복, 3개 레벨에 대한 coarse-to-fine으로 총 15회, 매 반복마다 특징 워핑 수행), (ii) λ\lambda를 MLP로 예측함으로써 제거됩니다: 픽셀 전체에 대한 E(X)|E(\mathcal{X})|의 global average pooling이 128차원 벡터를 만들고 이를 ReLU를 가진 4개의 FC 레이어에 입력합니다. 각 스텝은 미분 가능 함수 ΔX=g(X;F)\Delta\mathcal{X} = g(\mathcal{X}; \mathbb{F})가 되고, 해의 업데이트 Xk=g(Xk1;F)Xk1\mathcal{X}_k = g(\mathcal{X}_{k-1};\mathbb{F}) \circ \mathcal{X}_{k-1} (깊이 가중치는 덧셈, 포즈는 SE(3) 지수 사상)은 포즈/깊이로부터 feature pyramid로 역전파됩니다. 포즈는 항등 회전과 zero translation으로 초기화됩니다.

실험 결과

SLAM에서의 의미

BA-Net은 “미분 가능 bundle adjustment”의 창시 논문입니다: SfM/SLAM의 핵심인 고전적 기하 최적화가 네트워크 내부에 존재하며 이를 통해 학습될 수 있음을 입증했고, multi-view geometry는 구조로서 하드코딩하면서 기하학이 제공할 수 없는 것 (특징과 깊이 기저)만 학습했습니다. 이 레시피는 DROID-SLAM과 DPVO (미분 가능 dense BA 레이어), 그리고 Theseus와 같은 범용 미분 가능 최적화 라이브러리의 근간이 되었으며, 저차원의 최적화 가능한 깊이라는 아이디어는 CodeSLAM 스타일의 latent 깊이 코드와 밀접하게 관련되어 있습니다. 현대의 학습 기반 SLAM 백엔드를 이해하고 싶다면 여기서 시작하십시오.

관련 문서