Point-SLAM

Sandström 2023 · 논문

한 줄 요약 — 신경 특징점을 고정된 그리드가 아니라 동적으로 증가하는 포인트 클라우드에 정박(anchor)시켜, 표현의 밀도를 장면의 세부 정도에 맞춰 조정함으로써 효율적인 밀집 신경 SLAM을 구현합니다.

문제

그리드 기반 신경 SLAM(NICE-SLAM, Vox-Fusion)은 미리 정해지고 공간적으로 균일한 해상도의 희소 그리드에 장면 특징점을 정박시킵니다: 메모리는 비어 있거나 특징이 없는 영역에서 낭비되는 반면 세부적인 영역은 해상도가 부족할 수 있으며, 장면의 경계는 사전에 지정되어야 합니다. Point-SLAM은 대신 신경 장면 표현의 특징점을 “입력에 의존적이고 데이터 기반의 방식으로 반복적으로 생성되는 포인트 클라우드”(초록)에 정박시켜, 표현 용량이 입력의 정보 밀도를 따르도록 합니다 — 이 논문이 던지는 질문은: 포인트 기반 신경 장면 표현이 실시간 가능한 SLAM에서 추적과 매핑 모두를 수행할 수 있는가?

방법 및 아키텍처

신경 포인트 클라우드: P={(pi,fig,fic)i=1,,N}P=\{(p_i, f^{g}_i, f^{c}_i)\mid i=1,\dots,N\} — 각 포인트는 R32\mathbb{R}^{32} 안의 기하 및 색상 특징 디스크립터를 갖습니다. 각 매핑 단계에서, XX개의 균일하게 샘플링된 픽셀과 상위 5Y5Y개의 색상 그래디언트 픽셀 중에서 뽑은 YY개의 픽셀이 센서 깊이를 이용해 역투영됩니다; 탐색 반경 rr 안에 기존 포인트가 없으면, 깊이 (1ρ)D(1-\rho)D, DD, (1+ρ)D(1+\rho)D(깊이 노이즈를 고려한 갱신 밴드)를 따라 세 개의 포인트가 광선에 추가됩니다. 클라우드는 탐색과 함께 성장하지만 유한한 집합으로 수렴합니다 — 장면 경계가 필요 없습니다.

동적 해상도: 탐색 반경은 색상 그래디언트 크기 I(u,v)\nabla I(u,v)의 클램핑된 선형 매핑을 통해 이미지 질감이 높은 곳에서 줄어듭니다:

r(u,v)={rlif I(u,v)guβ1I(u,v)+β2if glI(u,v)guruif I(u,v)glr(u,v)=\begin{cases}r_l & \text{if }\nabla I(u,v)\geq g_u\\ \beta_1\nabla I(u,v)+\beta_2 & \text{if } g_l\leq\nabla I(u,v)\leq g_u\\ r_u & \text{if }\nabla I(u,v)\leq g_l\end{cases}

따라서 세밀한 디테일은 조밀한 포인트를 갖게 되고 평탄한 영역은 압축됩니다(실제로는 gl=0.01g_l=0.01, gu=0.15g_u=0.15).

렌더링: 포인트가 표면 근처에만 존재하므로, (1ρ)D(1-\rho)D(1+ρ)D(1+\rho)D 사이의 광선당 단 5개의 샘플로 충분합니다 — 자유 공간을 깎아내야(carve) 하는 NICE-SLAM의 48개 대비입니다. 점유율과 색상은 oi=h(xi,Pg(xi))\mathrm{o}_i=h(x_i,P^{g}(x_i))ci=gξ(xi,Pc(xi))\mathbf{c}_i=g_\xi(x_i,P^{c}(x_i))로 디코딩됩니다(NICE-SLAM의 아키텍처; 기하 디코더는 사전 훈련되어 고정됩니다), 특징점은 역제곱거리 가중치로 2r2r 안의 가장 가까운 8개의 이웃으로부터 집계됩니다:

Pg(xi)=kwkkwkfkgwithwk=1pkxi2,P^{g}(x_i)=\sum_k \frac{w_k}{\sum_k w_k} f^{g}_k \quad\text{with}\quad w_k=\frac{1}{\|p_k-x_i\|^{2}},

색상 특징점은 먼저 작은 상대 위치 MLP FθF_\theta를 통과합니다. 광선 종료 가중치 αi=opij=1i1(1opj)\alpha_i=\mathrm{o}_{\mathbf{p}_i}\prod_{j=1}^{i-1}(1-\mathrm{o}_{\mathbf{p}_j})는 렌더링된 깊이 D^=iαizi\hat{D}=\sum_i\alpha_i z_i, 색상 I^=iαici\hat{I}=\sum_i\alpha_i\mathbf{c}_i, 깊이 분산 S^D\hat{S}_D를 제공합니다.

매핑과 추적은 이 하나의 표현을 공유합니다. 매핑은 특징점과 색상 디코더 가중치에 대해 Lmap=mDmD^m1+λmImI^m1\mathcal{L}_{map}=\sum_m |D_m-\hat{D}_m|_1+\lambda_m|I_m-\hat{I}_m|_1을 최소화합니다(처음 40%의 반복은 깊이만 사용), NICE-SLAM처럼 키프레임 픽셀이 정규화 역할을 하며 매핑 반복 수는 새로 추가된 포인트 수에 따라 적응적으로 조정됩니다. 추적은 등속도 초기화로부터 분산 정규화 손실을 이용해 {R,t}\{\mathbf{R},\mathbf{t}\}를 최적화합니다

Ltrack=m=1MtDmD^m1S^D+λtImI^m1.\mathcal{L}_{track}=\sum_{m=1}^{M_t}\frac{|D_m-\hat{D}_m|_1}{\sqrt{\hat{S}_D}}+\lambda_t |I_m-\hat{I}_m|_1.

이미지별 잠재 벡터가 공유되는 노출(exposure) MLP에 입력되어 노출이 변화하는 장면에 대한 아핀 색상 보정을 출력합니다.

실험 결과

SLAM에서의 의미

Point-SLAM은 적응적 밀도 제어를 신경 암시적 SLAM에 도입했습니다: 표현 용량은 장면이 필요한 곳으로 향하며, 빈 공간에 낭비되지 않습니다 — 그리고 자유 공간을 깎아내는 과정이 없으므로 광선 샘플링이 수십 개에서 다섯 개로 줄어듭니다. 이는 고전적인 포인트 클라우드 매핑과 신경 암시적 방법 사이를 연결했으며, NeRF 스타일 SLAM 세대 중 최고 수준의 재구성 품질을 달성했습니다. 특징점을 담는 명시적이고 적응적으로 밀집화된 프리미티브 집합이라는 아이디어는 3D Gaussian Splatting SLAM을 예고했습니다.

관련 문서