vMAP

Kong 2023 · 논문

한 줄 요약 — 검출된 물체마다 자신만의 작은 MLP를 가지고, 벡터화된 연산을 통해 모두 동시에 학습되는 객체 수준 뉴럴 필드 SLAM으로 — 사전 모델 없이 워터타이트한 물체별 재구성을 5 Hz의 지도 업데이트 속도로, 장면당 최대 50개 물체까지 수행합니다.

문제

iMAP이나 NICE-SLAM 같은 뉴럴 필드 SLAM 시스템은 전체 장면을 물체 수준 구조가 없는 하나의 거대한 필드로 표현하며, 개별 물체를 추출하는 것은 “네트워크 파라미터와 특정 장면 영역 간의 대응 관계가 복잡하기” 때문에 어렵습니다. 한편 물체 수준 SLAM은 관측되지 않은 표면을 완성하기 위해 CAD 모델이나 범주 수준 형태 사전(shape prior)이 필요했습니다 — 사전 정보가 없으면 직접 관측된 부분만 재구성되어 구멍이 남습니다. vMAP은 사전 정보가 없는 경우를 목표로 합니다: 실시간 RGB-D SLAM 시스템 내부에서 효율적이고 워터타이트한 물체별 재구성을 수행합니다.

방법 및 아키텍처

물체 초기화 및 연관. 각 프레임은 밀집 인스턴스 마스크를 가지고 있습니다(정답 데이터, 또는 LVIS로 사전 학습된 Detic). 검출 결과는 두 가지 기준으로 프레임 간에 연관됩니다 — 의미적 일관성(동일한 예측 클래스)과 공간적 일관성(3D 물체 경계의 평균 IoU); 매칭되지 않은 검출은 모델 스택에 추가되는 새로운 물체 MLP를 생성합니다. 물체별 3D 경계는 깊이 역투영된 포인트 클라우드로부터 얻어지고 관측이 누적됨에 따라 정제됩니다. 카메라 포즈는 ORB-SLAM3에서 외부적으로 제공되며 — 이는 “포즈와 형상을 함께 최적화하는 것보다 더 정확하고 강건함”이 확인되었습니다.

벡터화된 학습(핵심 기여). 모든 물체 MLP는 동일한 아키텍처를 공유합니다(4개 레이어, 은닉 크기 32; 배경 모델은 128을 사용), 이렇게 하면 Python 루프 대신 PyTorch의 벡터화된 연산으로 하나의 배치 연산처럼 이들을 쌓아서 최적화할 수 있습니다. 각 물체는 자신만의 독립적인 키프레임 버퍼에서 픽셀을 샘플링하므로, 어떤 물체의 학습도 다른 물체와의 상호 간섭 없이 멈추거나 재개될 수 있습니다.

깊이 기반 샘플링. 각 레이를 따라, NcN_c개의 점이 근접 경계 tnt_n과 깊이맵 표면 tst_s 사이에 층화-균등 샘플링되고, NsN_s개의 점은 표면 근처에 집중됩니다:

tiU(tn+i1Nc(tstn),  tn+iNc(tstn)),tiN(ts,dσ2),t_i \sim \mathcal{U}\Bigl(t_n + \tfrac{i-1}{N_c}(t_s - t_n),\; t_n + \tfrac{i}{N_c}(t_s - t_n)\Bigr), \qquad t_i \sim \mathcal{N}(t_s, d_{\sigma}^{2}),

dσ=3d_\sigma = 3 cm이며; 잘못된 깊이는 먼 경계로 대체됩니다.

점유도(occupancy) 렌더링. 뷰 방향은 생략됩니다(뷰 의존적 외관보다 표면을 우선함), 각 점은 점유 확률 oθ(xi)[0,1]o_\theta(\mathbf{x}_i) \in [0,1]을 가지며, 이는 종료 확률 Ti=o(xi)j<i(1o(xj))T_i = o(\mathbf{x}_i)\prod_{j<i}\bigl(1-o(\mathbf{x}_j)\bigr)을 주어 다음을 렌더링합니다

O^(r)=i=1NTi,D^(r)=i=1NTidi,C^(r)=i=1NTici.\hat{O}(\mathbf{r}) = \sum_{i=1}^{N} T_i, \qquad \hat{D}(\mathbf{r}) = \sum_{i=1}^{N} T_i d_i, \qquad \hat{C}(\mathbf{r}) = \sum_{i=1}^{N} T_i c_i.

손실. 물체 kk에 대해, 픽셀은 오직 2D 경계 상자 RkR^k 내부에서 샘플링되며; 깊이와 색상은 마스크 MkM^k 내부에서 감독됩니다(L1), 렌더링된 점유도는 RkR^k 내의 모든 곳에서 마스크와 일치하도록 밀려납니다 — 그래서 필드는 물체 바깥에서 비어있도록 학습됩니다:

L=k=1KLdepthk+λ1Lcolourk+λ2Loccupancyk,λ1=5, λ2=10.L = \sum_{k=1}^{K} L^{k}_{\text{depth}} + \lambda_{1} L^{k}_{\text{colour}} + \lambda_{2} L^{k}_{\text{occupancy}}, \qquad \lambda_1 = 5,\ \lambda_2 = 10.

합성 렌더링. 어떤 물체든 자신의 3D 경계 안에서 조회, 고정, 제거, 재합성될 수 있습니다; 장면 수준의 새로운 뷰는 물체별 Ray-Box 교차와 각 레이를 따라 렌더링된 깊이의 순위 매김을 이용해 가려짐을 고려한 합성을 수행합니다.

실험 결과

SLAM에서의 의미

vMAP은 물체 수준 분해를 뉴럴 필드 SLAM에 가져와, 물체 SLAM 계보(SLAM++, Fusion++, NodeSLAM)와 암묵적 매핑 계보(iMAP, NICE-SLAM)를 이어주었습니다. 결과로 나온 지도는 단순한 기하학이 아니라 독립적으로 학습 가능하고 조작 가능한 물체 엔티티들의 집합입니다 — 이는 정확히 로봇 조작과 장면 편집이 필요로 하는 것이며 — 벡터화된 학습 기법은 “다수의 네트워크”가 단일 GPU에서 확장될 수 있음을 보였습니다. 이는 물체 중심 뉴럴 필드 매핑의 참조 설계가 되었고 이후의 물체 인지형 밀집 SLAM 연구에 영향을 미쳤습니다.

관련 문서