GradSLAM

Murthy 2020 · 논문

한 줄 요약 — 밀집 SLAM을 완전히 미분 가능한 연산 그래프로 취급하는 PyTorch 프레임워크로, 신뢰 영역 최적화, 표면 측정, 융합, 레이캐스팅을 매끄럽게 재파라미터화하여 3D 지도로부터 2D 픽셀까지 그래디언트가 종단간으로 흐를 수 있게 한다.

문제

표현 학습과 SLAM을 결합하는 것은 SLAM 시스템이 매우 모듈화되고 복잡하기 때문에 열려 있는 질문이다. 기능적으로 SLAM은 원시 센서 입력을 로봇과 환경 상태에 대한 분포로 변환한다 — 이 매핑 M=GSLAM(s)\mathcal{M}=\mathcal{G}_{SLAM}(s)가 미분 가능하다면, 그래디언트 sM\nabla_{s}\mathcal{M}은 “특정 픽셀 측정값이 결과로 나온 3D 지도에 얼마나 기여하는가?”에 답할 수 있고, 태스크 기반 오차 신호로 표현을 종단간 학습시킬 수 있을 것이다. 그러나 밀집 SLAM의 여러 구성 요소는 미분 불가능하거나 그래디언트가 거의 어디서나 0이다: LM 솔버는 이산적인 감쇠/비감쇠 결정을 내리고, 매핑은 클리핑/인덱싱/임계값 처리 및 새 요소인지 기존 요소인지에 대한 이산적 결정을 포함하며, 레이캐스팅은 레이를 따라 이산적으로 전진한다.

방법 및 아키텍처

GradSLAM은 각각의 매끄럽지 않은 블록을 가능한 한 정확한 미분 가능한 대응물로 대체한 다음, 이를 조합해 완전한 파이프라인을 구성한다.

미분 가능한 LM (\nablaLM). 목적함수 12r(x)2\frac{1}{2}\sum r(x)^{2}에 대해 LM 스텝은 현재 반복값과 미리 내다본 반복값에서의 오차 노름 r0=r(x0)Tr(x0)r_{0}=r(x_{0})^{T}r(x_{0})r1=r(x1)Tr(x1)r_{1}=r(x_{1})^{T}r(x_{1})을 비교하여 감쇠와 비감쇠 사이에서 결정해야 한다. GradSLAM은 이 이산적 스위치를 일반화 로지스틱 함수 위에 만들어진 매끄러운 게이팅 함수로 대체한다:

λ1=Qλ(r0,r1)=λmin+λmaxλmin1+Deσ(r1r0),Qx(r0,r1)=x0+δx01+e(r1r0),\lambda_{1}=Q_{\lambda}(r_{0},r_{1})=\lambda_{min}+\frac{\lambda_{max}-\lambda_{min}}{1+De^{-\sigma(r_{1}-r_{0})}},\qquad Q_{x}(r_{0},r_{1})=x_{0}+\frac{\delta x_{0}}{1+e^{-(r_{1}-r_{0})}},

여기서 D,σD,\sigma는 감쇄 속도를 제어하고 [λmin,λmax][\lambda_{min},\lambda_{max}]는 댐핑을 제한한다 — 이렇게 하면 전체 옵티마이저가 하나의 미분 가능한 그래프가 된다.

미분 가능한 매핑과 융합. 표면 측정은 세 가지 방식으로 매끄럽게 처리된다: 유효한 각 픽셀의 측정값은 그 이웃의 커널 함수 K(p,nbd(p))K(p, nbd(p))이다(2D에서는 쌍선형); 실측 측정값을 지도 요소에 연관시키는 것은 소프트하게 이루어지며, 카메라 레이로부터의 반경 깊이 r(P)r(P)에 따른 깊이 센서 특성 기반 가우시안 감쇠 exp(r(P)2/2σ2)\exp(-r(P)^{2}/2\sigma^{2})로 가장 가까운 후보들에 퍼진다; 그리고 기본적으로 모든 측정값은 미분 가능한 융합 스텝으로 넘겨지는 새 요소로 취급된다. (지도 크기가 시간이 아니라 탐색된 부피에 비례하도록 유지하는) 융합은 고전적 가중 평균 기법의 급격한 절단 임계값을 매끄럽게 하기 위해 로지스틱 감쇠를 사용한다.

미분 가능한 레이캐스팅. 레이는 픽셀의 깊이 측정값을 중심으로 한 가우시안 감쇠를 가지고 자신이 관통하는 모든 복셀에 걸쳐 풀링된다. 레이의 픽셀 위치에 대한 도함수는 이웃한 레이들에 대한 Igehy 스타일 유한 차분을 사용한다: vc/pc((vrvl)/2,  (vuvd)/2)T\partial v_{c}/\partial p_{c}\approx\big((v_{r}-v_{l})/2,\;(v_{u}-v_{d})/2\big)^{T}.

사례 연구. 세 가지 고전적인 밀집 시스템이 이 블록들로 다시 구성된다: \nablaKinectFusion (TSDF 볼륨; 잘린 SDF sdf(p)=trunc(K1x21tp2depth(x))sdf(p)=trunc(\lVert K^{-1}x\rVert_{2}^{-1}\lVert t-p\rVert_{2}-depth(x))는 매끄러운 로지스틱 절단을 얻는다. x=π(Kp)x=\lfloor\pi(Kp)\rfloor의 바닥 연산자와 μ\mu에서의 강한 절단 모두가 그래디언트를 막기 때문이다), \nablaPointFusion (이 논문의 소프트-연관 매핑과 PointFusion의 융합 규칙을 사용하는 서펠 지도), \nablaICP-SLAM (프레임-대-프레임 ICP-오도메트리와 프레임-대-모델 변형). 모두 GPU에서 완전히 실행되며, 카메라 포즈, 픽셀 강도/깊이, 옵티마이저 파라미터, 카메라 내부 파라미터 등 임의의 중간 변수에 대한 그래디언트를 노출한다.

실험 결과

SLAM에서의 의미

GradSLAM은 최초의 범용 미분 가능 SLAM 프레임워크로서, “레이어로서의 SLAM”이라는 슬로건을 실행 가능한 연구 코드로 바꾸었다. BA-Net, Theseus, LieTorch와 같은 흐름 — 기하학적 최적화를 네트워크 안에 내재시키는 것 — 에 속하며, 프레임별 레이블이 아니라 다운스트림 매핑 품질에서 나오는 감독으로 인식 모듈(깊이 사전 정보, 센서 잡음 모델, 비용 함수)을 학습시키는 길을 열었다. 오픈소스 PyTorch 라이브러리는 여전히 미분 가능한 로봇 인식 연구의 흔한 출발점이다.

관련 문서