VDO-SLAM

Zhang 2020 · 논문

한 줄 요약 — 카메라 궤적과 움직이는 강체 물체의 SE(3) 운동을 하나의 팩터 그래프에서 함께 추정하는 동적 물체 인식 SLAM 시스템으로, 사전 물체 모델을 요구하지 않습니다.

문제

동적 환경에서의 로봇 경로 계획과 장애물 회피는 로봇 주변 물체가 어떻게 움직이는지를 아는 데 달려 있습니다 — 그러나 고전적인 SLAM은 정적인 세계를 가정하며, 대부분의 “동적 SLAM” 시스템은 움직이는 콘텐츠를 단순히 감지하고 버립니다. VDO-SLAM은 대신 동적 강체 물체를 추정 문제 자체에 통합합니다: 물체의 형태나 기하학적 모델에 대한 사전 지식 없이, 카메라와 함께 모든 움직이는 물체의 완전한 SE(3) 운동을 식별, 추적, 추정합니다.

방법 및 아키텍처

전처리. 인스턴스 분할(Mask R-CNN, COCO 가중치)이 잠재적으로 움직일 수 있는 물체를 분리합니다. 밀집 광학 흐름(PWC-Net)이 어디서나 대응 관계를 제공하며, 적은 픽셀을 차지하는 물체에서도 추적되는 점의 수를 최대화하고, 물체별 식별자를 전파합니다(분할이 실패한 경우에도 마스크를 복구). 입력은 RGB-D, 스테레오를 깊이로 변환한 것, 또는 MonoDepth2 깊이를 사용하는 “학습 기반 단안” 방식입니다.

운동 표현. 카메라 포즈 0Xk{}^{0}\mathbf{X}_k와 물체 포즈 0LkSE(3){}^{0}\mathbf{L}_k \in \mathrm{SE}(3)가 주어지면, 강체 물체 위의 점 0mki{}^{0}\mathbf{m}^i_k는 다음을 따릅니다

0mki=0Lk1  k1Lk1Hk  0Lk11  0mk1i=k10Hk  0mk1i,{}^{0}\mathbf{m}^{i}_{k} = {}^{0}\mathbf{L}_{k-1}\; {}^{L_{k-1}}_{k-1}\mathbf{H}_{k}\; {}^{0}\mathbf{L}^{-1}_{k-1}\; {}^{0}\mathbf{m}^{i}_{k-1} = {}^{0}_{k-1}\mathbf{H}_{k}\; {}^{0}\mathbf{m}^{i}_{k-1},

즉 물체의 프레임 간 운동 k10HkSE(3){}^{0}_{k-1}\mathbf{H}_k \in \mathrm{SE}(3)이 시간에 따라 그 자신의 점들을 서로 관련짓습니다 — 물체 포즈를 상태에 전혀 넣지 않고도 그렇게 합니다 — 이것이 모델 프리 동작의 핵심입니다.

프론트엔드 추정. 카메라 포즈는 정적 포인트에 대한 Huber 로버스트화된 재투영 오차 ei=Ikp~kiπ(0Xk10mk1i)\mathbf{e}_i = {}^{I_k}\tilde{\mathbf{p}}^i_k - \pi({}^{0}\mathbf{X}^{-1}_k\,{}^{0}\mathbf{m}^i_{k-1})를 최소화합니다. 각 물체 운동은 k10Hk=0Xkk10Gk{}^{0}_{k-1}\mathbf{H}_k = {}^{0}\mathbf{X}_k\,{}^{0}_{k-1}\mathbf{G}_k인 유사한 비용 ei=Ikp~kiπ(k10Gk0mk1i)\mathbf{e}_i = {}^{I_k}\tilde{\mathbf{p}}^i_k - \pi({}^{0}_{k-1}\mathbf{G}_k\,{}^{0}\mathbf{m}^i_{k-1})을 최소화하며, 두 경우 모두 se(3)\mathfrak{se}(3)로 파라미터화되고 레벤버그-마쿼트로 해결됩니다. 결정적으로, 광학 흐름은 각 운동과 함께 정제됩니다(정규화 항이 초기 흐름에 고정시킴), 이것이 점 추적을 크게 길어지게 합니다. 물체는 장면 흐름 크기(임계값 0.12, 점의 30% 이상이 움직이면 물체가 동적임을 선언)로 동적이라고 판별됩니다.

백엔드 팩터 그래프. 카메라 포즈, 정적 점, 동적 점, 물체 운동은 네 가지 팩터 유형으로 하나의 그래프에서 정제됩니다:

ei,k=0Xk10mkizki(3D 점 관측),ei,l,k=0mkik10Hkl0mk1i(삼항 점-운동),\mathbf{e}_{i,k} = {}^{0}\mathbf{X}^{-1}_k\,{}^{0}\mathbf{m}^i_k - \mathbf{z}^i_k \quad \text{(3D 점 관측)}, \qquad \mathbf{e}_{i,l,k} = {}^{0}\mathbf{m}^i_k - {}^{0}_{k-1}\mathbf{H}^l_k\,{}^{0}\mathbf{m}^i_{k-1} \quad \text{(삼항 점-운동)},

여기에 오도메트리 팩터와 급격한 물체 운동 변화를 벌하는 평활 운동 사전 정보 el,k=(k20Hk1l)1k10Hkl\mathbf{e}_{l,k} = ({}^{0}_{k-2}\mathbf{H}^{l}_{k-1})^{-1}\,{}^{0}_{k-1}\mathbf{H}^l_k가 더해집니다. 수정된 g2o에서 LM으로 해결됩니다. 물체의 선속도는 운동으로부터 곧바로 얻어집니다: vk10tk(I3k10Rk)ck1\mathbf{v} \approx {}^{0}_{k-1}\mathbf{t}_{k} - (\mathbf{I}_3 - {}^{0}_{k-1}\mathbf{R}_{k})\,\mathbf{c}_{k-1}, 여기서 ck1\mathbf{c}_{k-1}은 물체의 점 중심입니다.

실험 결과

SLAM에서의 의미

VDO-SLAM은 “버리지 말고 추정하라”는 동적 SLAM 학파의 대표작입니다: 동적 물체는 이상값이 아니라 일급(first-class) 추정 대상이 됩니다. 시간에 걸쳐 강체 위의 점들을 관계짓는, 물체 포즈 변수 없이 동작하는 모델 프리 점-운동 팩터는 이제 동적 SLAM의 표준으로 자리 잡은 우아한 형식화이며, 오픈소스 공개로 인해 주행 및 이동 로봇 시나리오에서 카메라/물체 결합 추정의 기준 베이스라인이 되었습니다.

관련 문서