DynaSLAM II

Bescós 2021 · 논문

한 줄 요약 — 다중 물체 추적과 SLAM을 강결합(tightly coupled)한 시스템으로, DynaSLAM처럼 동적 물체를 버리는 대신 카메라 포즈, 정적 지도, 움직이는 강체 물체들의 궤적을 하나의 번들 조정 안에서 함께 최적화합니다.

문제

동적 물체를 제거하는 방식(DynaSLAM, DS-SLAM)은 카메라 추적을 보호하지만 정보를 버리게 됩니다 — 그리고 “자율주행, 다중 로봇 협업, 증강/가상 현실을 포함한 대부분의 시나리오는 의사결정과 장면 이해를 돕기 위해 주변 환경에 대한 명시적인 모션 정보를 필요로 합니다.” 그래서 DynaSLAM II는 첫 번째 논문의 철학을 반대로 뒤집습니다: 동적 내용을 걸러내는 대신, 움직이는 물체들의 궤적을 카메라와 함께 추정하며, 스테레오와 RGB-D 구성 모두에 대해 하나의 강결합 최적화로 이를 수행합니다.

방법 및 아키텍처

ORB-SLAM2를 기반으로 합니다. 프레임마다 픽셀 단위 인스턴스 세그멘테이션과 스테레오 쌍 사이에서 매칭된 ORB 특징점을 사용합니다. 정적 특징점은 이전 프레임/지도에 매칭되어 카메라를 초기화합니다. 동적 특징점(차량/보행자/동물 인스턴스에 속한)은 지역 지도의 물체 포인트에 매칭됩니다 — 물체의 속도를 알고 있다면 등속 모델 하의 재투영을 통해, 그렇지 않다면 가장 많이 겹치는 인스턴스로 제한된 전수 매칭을 통해 매칭됩니다. 인스턴스는 자신의 키포인트 대부분이 특정 트랙의 포인트에 매칭될 때 그 물체의 트랙 id를 물려받으며, 이는 CNN 2D 박스의 IoU 매칭으로 뒷받침됩니다. 매칭이 이전 프레임이 아니라 지도상의 물체를 대상으로 이루어지기 때문에 가림(occlusion)도 처리됩니다. 새로운 물체의 SE(3) 포즈는 그 3D 점들의 질량중심에서 단위 회전으로 초기화됩니다.

물체를 포함한 재투영 오차. 고전적인 정적 잔차 ei,l=uilπi(TCWixˉWl)\mathbf{e}^{i,l} = \mathbf{u}^l_i - \pi_i(\mathbf{T}^i_{CW}\,\bar{\mathbf{x}}^l_W)는 동적 포인트에 대해 다음과 같이 다시 표현됩니다.

erepri,j,k=uijπi(TCWiTWOk,ixˉOj,k),\mathbf{e}^{i,j,k}_{\mathrm{repr}} = \mathbf{u}^j_i - \pi_i\big(\mathbf{T}^i_{CW}\,\mathbf{T}^{k,i}_{WO}\,\bar{\mathbf{x}}^{j,k}_O\big),

여기서 TWOk,i\mathbf{T}^{k,i}_{WO}는 카메라 ii가 물체 kk를 관측할 때 물체 kk의 포즈이며, xˉOj,k\bar{\mathbf{x}}^{j,k}_O물체 좌표계에 고정된 3D 점입니다. 이렇게 하면 물체 포인트가 유일하게 유지되어, 파라미터 수가 (프레임별로 독립된 포인트 클라우드를 쓰는) N=6Nc+3NcNoNopN = 6N_c + 3N_cN_oN_{op}에서 N=6Nc+6NcNo+3NoNopN' = 6N_c + 6N_cN_o + 3N_oN_{op}로 줄어듭니다.

물체를 포함한 BA. 카메라, 정적 포인트, 물체 포즈, 물체 포인트, 물체 속도 vik,wikR3\mathbf{v}^k_i, \mathbf{w}^k_i \in \mathbb{R}^3가 (Huber로 강건화되어) 함께 최적화되며, 두 개의 추가 항이 사용됩니다: 등속 오차 evctei,k=[vi+1kvik; wi+1kwik]\mathbf{e}^{i,k}_{vcte} = \big[\mathbf{v}^k_{i+1}-\mathbf{v}^k_i;\ \mathbf{w}^k_{i+1}-\mathbf{w}^k_i\big]와 속도를 포즈 및 포인트에 연결하는 결합 항

evcte,XYZi,j,k=(TWOk,i+1TWOk,iΔTOki,i+1)xˉOj,k,ΔTOki,i+1=[Exp(wikΔt)vikΔt01].\mathbf{e}^{i,j,k}_{vcte,XYZ} = \big(\mathbf{T}^{k,i+1}_{WO} - \mathbf{T}^{k,i}_{WO}\,\Delta\mathbf{T}^{i,i+1}_{O_k}\big)\,\bar{\mathbf{x}}^{j,k}_O, \qquad \Delta\mathbf{T}^{i,i+1}_{O_k} = \begin{bmatrix} \mathrm{Exp}(\mathbf{w}^k_i\,\Delta t) & \mathbf{v}^k_i\,\Delta t \\ \mathbf{0} & 1 \end{bmatrix}.

입니다. 키프레임은 카메라 추적 또는 물체 추적이 약해질 때 생성됩니다. 물체에 의해 촉발된 키프레임은 2초짜리 시간 구간에 대해 그 물체와 카메라를 함께 최적화합니다. Schur complement를 이용한 계산 비용은 O(Nc3+Nc2Nmp+NcNoNop)O(N_c^3 + N_c^2 N_{mp} + N_c N_o N_{op})입니다.

디커플링된 3D 바운딩 박스. CubeSLAM과 달리, 궤적 추정이 박스를 기다리지 않습니다: 박스는 트랙마다 한 번씩 RANSAC으로(물체 포인트를 지나는 두 개의 수직 평면, 관측되지 않은 치수에 대한 클래스 기반 사전 정보를 사용) 맞춰지고, 이후 시간 윈도우 안에서 그 이미지 투영과 CNN 2D 박스 사이의 거리를 최소화하여 느슨하게 정제됩니다 — 이는 3개 이상의 키프레임이 그 물체를 관측한 이후에만 이루어지며, 관측되지 않은 시점에 대해서는 완만한 치수/포즈 사전 정보가 사용됩니다.

실험 결과

SLAM에서의 의미

DynaSLAM II는 동적 SLAM의 2세대를 대표합니다: 동적 콘텐츠 제거가 충분히 잘 해결되고 나자, 연구의 최전선은 그것을 활용하는 방향으로 옮겨갔습니다. 동적 물체를 추적하는 것이 장면 이해뿐 아니라 카메라 추적 자체에도 이득이 된다는 이 논문의 핵심적인 실증적 주장, 그리고 물체 중심 파라미터화와 궤적을 바운딩 박스로부터 분리한 방식은 동시대의 VDO-SLAM과 더불어, 이후 주행 지향 및 임바디드 AI(embodied-AI) SLAM 시스템들이 따르는 하나의 템플릿이 되었습니다.

관련 문서