DSAC*

Brachmann 2021 · 논문

한 줄 요약 — DSAC 계열을 통합한 TPAMI 버전: RGB 또는 RGB-D 이미지로부터의 시각적 재위치추정을 위한 단일 통합 scene-coordinate-regression 프레임워크로, 학습 안정성과 효율성을 대폭 개선했습니다.

문제

2020년까지 DSAC 계열은 서로 다른 설정 — RGB 대 RGB-D 입력, 3D 장면 모델의 사용 여부에 따른 학습 — 마다 별도의 레시피를 축적해 왔으며, 각각 고유의 초기화 단계와 안정성 관련 주의사항을 가지고 있었습니다. DSAC*는 이 변형들을 단일하고 신뢰할 수 있는 프레임워크로 통합하여, scene coordinate regression을 입력 modality와 supervision 체계에 관계없이 일관되게 적용할 수 있게 합니다.

방법 및 아키텍처

Scene coordinate regression + 강인한 포즈 풀이. 완전 합성곱 네트워크 ff가 그레이스케일 이미지 II를 dense scene coordinate Y=f(I;w)\mathcal{Y}=f(I;\mathbf{w}) — 각 픽셀이 관측하는 장면 공간 내 3D 포인트로, 카메라 공간 포인트와 yi=hei\mathbf{y}_i = \mathbf{h}\mathbf{e}_i로 관계됨 — 로 매핑합니다. 출력은 8배로 서브샘플링되며, 각 예측은 81 px 수용 영역을 가지고, 맵은 28MB의 네트워크 가중치입니다. 포즈 최적화는 고전적 RANSAC입니다: 최소 solver hj=g(Cj)\mathbf{h}_j = g(\mathcal{C}_j)M=64M{=}64개의 가설을 샘플링합니다 — RGB의 경우 2D-3D 대응점에 대한 P3P/PnP solver (잔차 rRGB(yi,h)=piKh1yir^{\text{RGB}}(\mathbf{y}_i,\mathbf{h}) = ||\mathbf{p}_i - K\mathbf{h}^{-1}\mathbf{y}_i||), RGB-D의 경우 3D-3D 대응점에 대한 Kabsch solver (rRGB-D(yi,h)=eih1yir^{\text{RGB-D}}(\mathbf{y}_i,\mathbf{h}) = ||\mathbf{e}_i - \mathbf{h}^{-1}\mathbf{y}_i||) — 그런 다음 최대 인라이어 카운트 s(h,Y)=yiY1[r(yi,h)<τ]s(\mathbf{h},\mathcal{Y})=\sum_{\mathbf{y}_i\in\mathcal{Y}}\mathbf{1}[\,r(\mathbf{y}_i,\mathbf{h})<\tau\,] (τ=\tau{=} RGB는 10 px / RGB-D는 10 cm)를 가진 가설을 선택하고, 그 인라이어들에 대해 반복적으로 정제합니다 (Levenberg-Marquardt PnP 또는 Kabsch).

세 가지 설정에 대한 하나의 초기화 목적 함수. DSAC*는 다음 중 어느 것으로도 학습합니다: RGB-D; RGB + 3D 모델 (렌더링된 ground-truth coordinate yi\mathbf{y}^*_i); 또는 RGB만. 통합된 픽셀별 손실은 예측이 유효해지면 3D 거리에서 재투영 오차로 픽셀별로 동적으로 전환됩니다:

RGB+M(yi,yi,h)={r^RGB(yi,h)if yiVyiyiotherwise,\ell^{\text{RGB+M}}(\mathbf{y}_{i},\mathbf{y}^{*}_{i},\mathbf{h}^{*})=\begin{cases}\hat{r}^{\text{RGB}}(\mathbf{y}_{i},\mathbf{h}^{*})&\text{if }\mathbf{y}_{i}\in\mathcal{V}\\ ||\mathbf{y}^{*}_{i}-\mathbf{y}_{i}||&\text{otherwise},\end{cases}

여기서 r^RGB\hat{r}^{\text{RGB}}는 재투영 오차를 부드럽게 클램핑합니다 (100 px를 넘으면 제곱근). 3D 모델이 없는 경우, yi\mathbf{y}^*_i는 상수 10m 깊이에서 가상으로 생성된 휴리스틱 목표값 yˉi=heˉi\bar{\mathbf{y}}_i = \mathbf{h}^*\bar{\mathbf{e}}_i로 대체됩니다. 이는 DSAC++의 낭비적인 두 개의 별도 초기화 단계를 대체하여, 사전 학습을 4일에서 2일로 절반으로 줄입니다.

미분 가능 RANSAC을 통한 종단간 학습. 전체 파이프라인은 이후 γ=100\gamma{=}100인 포즈 손실 Pose(h^,h)=t^t+γ(θ^,θ)\ell^{\text{Pose}}(\hat{\mathbf{h}},\mathbf{h}^{*})=||\hat{\mathbf{t}}-\mathbf{t}^{*}||+\gamma\measuredangle(\hat{\bm{\theta}},\bm{\theta}^{*})에 대해 학습됩니다. 모든 구성 요소가 미분 가능하게 만들어집니다: Kabsch는 SVD 그래디언트를 통해; PnP는 마지막 Gauss-Newton 반복의 해석적 그래디언트를 통해, Yh(Y)Jr+YrI(Y,ht=)\frac{\partial}{\partial\mathcal{Y}}\mathbf{h}(\mathcal{Y})\approx-J_{\mathbf{r}}^{+}\frac{\partial}{\partial\mathcal{Y}}\mathbf{r}_{\mathcal{I}}(\mathcal{Y},\mathbf{h}^{t=\infty}); 인라이어 카운팅은 β=5/τ\beta = 5/\tau인 시그모이드 완화 s(h,Y)=iσ[βτβr(yi,h)]s(\mathbf{h},\mathcal{Y})=\sum_{i}\sigma[\beta\tau-\beta r(\mathbf{y}_{i},\mathbf{h})]를 통해; 그리고 가설 선택은 DSAC을 통해 — 점수에 대한 softmax로부터 jp(jY)j\sim p(j|\mathcal{Y})를 샘플링하고 기대 포즈 손실을 최소화합니다

LPose(Y,h)=Ejp(jY)[^Pose(R(),h)],\mathcal{L}^{\text{Pose}}(\mathcal{Y},\mathbf{h}^{*})=\mathbb{E}_{j\sim p(j|\mathcal{Y})}\left[\hat{\ell}^{\text{Pose}}(\mathbf{R}(\cdot),\mathbf{h}^{*})\right],

이 그래디언트는 score-function 항 ^Pose()Ylogp(jY)\hat{\ell}^{\text{Pose}}(\cdot)\,\partial_{\mathcal{Y}}\log p(j|\mathcal{Y})과 pathwise 도함수를 결합합니다. 학습 중 기하학적 데이터 증강 (±30° 회전, 66-150% 재조정)이 추가됩니다.

실험 결과

SLAM에서의 의미

재위치추정 — 추적 손실 후 또는 알려진 환경에서 재시작할 때 이전에 매핑된 장면 내에서 6-DoF 카메라 포즈를 복구하는 것 — 은 SLAM 시스템에 필요한 기능입니다. DSAC*는 scene-coordinate-regression 방식의 성숙한 형태입니다: 맵은 네트워크 가중치에 암묵적으로 저장되고, 기하학적 PnP/Kabsch + RANSAC solver는 루프 내에 유지되어, 단일 이미지로부터 센티미터급 실내 정확도를 제공합니다. 이 안정적이고 통합된 학습 레시피는 이후 ACE 계열이 몇 배나 가속시킨 기준선이 되었습니다.

관련 문서