본문 바로가기
3D segmentation/논문 정리

iMAP: Implicit Mapping and Positioning in Real-Time

by Wanda 2022. 6. 30.

0. Abstract 

- 생략

 

 

1. Introduction 

- 지능형 구현 장치를 위한 real-time Simultaneous Localisation and Mappping(SLAM) system은   localisation과 scene understanding을 모두 가능하게 하기 위해 3D 세계 표현을 점진적으로(incrementally) 구축해야 한다. 

 

- 이상적인 representation은 geometry(기하학적 구조)를 정확하게 encode해야 하지만 또한 효과적이여야 하며, memory capacity avaliable는 scene size와 와 complexity에 따라 adaptive하게 사용되어야 한다;  

 

- 직접 관찰되지 않은 영역의 모양을 합리적으로 추정할 수 있고, 그리고 유연하고, 새로운 scenario를 이용하기 위해  많은 양의 train data나 수동 조정이 필요하지 않다. 

 

- Implict neural representations은 multilayer perceptron(MLP)을 사용하여 query 3D point를 occupancy(벽처럼 로봇이 지나갈 수 없는 영역)또는 colour에 mapping하고 specific scene에 맞게 scratch부터 optimising함으로써 offline reconstruction의 최근 유망한 발전이다. 

 

- MLP는 일반적인 implicit function approximator로, parameter가 거의 없고 quantisation artifacts 없이 variable detail(가변 detail)를 표현할 수 있다.  - prior training없이, network structure에 존재하는 inherent prior present은 partial data에서 watertight geometry estimates를 만들고 관찰되지 않은 영역의 plausible한 completion을 가능하게 한다.

 

- 본 논문에서는 MLP가 휴대용 RGB-D camere를 사용하여 실시간 SLAM system에서 유일한 scene representation으로 사용될 수 있음을 보여준다. 

 

- 본 논문의 randomly-initialised network는 실시간 운영으로 train되며 prior training data가 필요하지 않다.  본 논문의 iMAP system은 PTAM을 연상시키는 key frame structuremulti-processing computation 흐름으로 설계되었다.

 

* PTAM : parallel tracking and mapping 

- keyframe을 이용한 visual SLAM(simultaneous localization and mapping)기술.  

- 카메라 위치를 추적하는 tracking과 featuremap을 생성하는 mapping 부분을 서로 분리시켜 별도의  thread로 parallel하게 돌리는 것.

 

- 10Hz 이상에서 실행되는 추적 프로세스에서, 우리는 live RGB-D 관찰을 MLP scene map에서 render된 depth 및 colour predictions에 맞추어 조정한다.

 

- 이와 동시에, mapping process는 viewpoint가 장면을 span(생성)하는 일련의  과거 key frame을 선택하고 유지하며, 이를 사용하여 MLP를 지속적으로 훈련하고 개선하는 동시에 key frame poses를 공동으로 최적화한다. 

 

-  tracking과 mapping 모두에서 geometric uncertainty를 줄이기 위해 가장 유용한 RGB-D 픽셀을 동적으로 샘플링하여 real-time speed를 달성한다. 

 

- SLAM을 연속 학습 문제로 casting하여 연속적이고 적응적인 해상도로 장면을 효율적으로 표현할 수 있는 표현을 달성하고, 완전하고 watertight reconstruction을 달성하기 위해 부드럽게 interpolate할 수 있는 놀라운 능력을 달성한다.(그림1) 

 

- 약 10~20개의 key frame과 1MB의 parameter만 있는 MLP를 사용하여 전체 방을 정확하게 mapping 할 수 있습니다. 

 

- 본 논문의 scene representation은 고정된 해상도가 없고, keyframes의 분포는 자동으로 효율적인 multi-scale mapping을 달성한다.

- 본 논문에서는 다양한 실제 sequence에 대해 system을 시연하고 room scale Replica Dataset의 8개의 장면에서 철저한 평가와 절제 분석을 수행한다. 
 
- 본 논문에서는 iMAP가 memory footprint이 상당히 작은 표준 dense SLAM system보다 더 완벽한 scene reconstruction을 할 수 있음을 보여준다. 
 
- 본 논문에서는 최첨단 SLAM system에 대해 TUM RGB-D Dataset에서 경쟁력 있는 tracking 성능을 보여준다. 
 
 
*요약하자면, 이 논문의 주요 contributions는 다음과 같다.
 
 - implicit neural scene representation을 사용하고 전체 3D mapping과 camera pose를 공동으로 최적화할 수 있는 최초의 고밀도 실시간 SLAM system이다.
 
- automated keyframe selectionloss guided sparse active sampling을 통해 실시간으로 implicit network를 점진적으로 훈련할 수 있는 기능이 있다. 

- 휴대용 RGB-D 카메라로 온라인으로 작동하는 제시된 SLAM 공식의 parallel implementation(multi-processing 포함 Pytorch에서 전체)

 

 2. Related Work

- 생략 

 

3. iMAP: A Real-Time Implicit SLAM System

3.1 System Overview

Figure 2는 iMAP이 어떻게 작동되는지를 전체적으로 보여준다. 

- 3D volumemetric map은 3D 좌표를 색상과 volume density에 mapping하는 fully connected neural network F(θ)를 사용하여 표현된다. (section 3.2)

- camera pose가 주어지면, 본 논문에서는 back-projected ray의 sample에서 network query를 축적하여 pixel의 colour와 depth를 render할 수 있다. (section 3.3)

 

- 본 논문에서는 능동적으로 sampling된 sparse set과 관련하여 network weights와 camera pose를 점진적으로 optimising하여 depth와 video scene을 mapping한다. (section 3.6).

 

- 두가지 process가 동시에 실행되는데, 이는 locked network에 대해 현재 frame pose를 optimising하는 tracking(섹션 3.4)와 선택된 key frame의 network와 camera pose를 공동으로 optimising하는 mapping(섹션3.4)이다. 이 process는 information gain에 따라 점진적으로 선택된다.(섹션 3.5)

 

3.2. Implicit Scene Neural Network

- NeRF의 network architecture를 따라 256크기의 4개의 hidden layer 및 3D 좌표 p = (x, y, z)를 색상 및 부피 밀도 값에 mapping하는 2개의 output heads가 있는 MLP를 사용한다. NerF와 달리, 본 논문에서는 특이점 모델링(specularities modeling)에 관심이 없기 때문에 viewing directions을 고려하지 않는다. 

- 본 논문에서는 Fourier Feature Networks에서 제안된 Gaussian positional embedding을 적용하여 입력 3D 좌표를 n차원 공간인 sin(Bp)으로 끌어올린다. 여기서  B 행렬은 [n*3]의 표준 편차 α로 정규 분포에서 sampling된다. 이 embedding은 MLP에 대한 input 역할을 하며 network의 두번째 activation function에도 연결된다. 

 

- SIREN에서 영감을 받아 sine activation과 함께 single fully-connected layer로 구현된 embedding matrix B의 최적화를 활용한다.

 

 

3.3 Depth and Colour Rendering 

- 본 논문의 NeRF 및 NodeSLAM에서 영감을 얻은 새로운 차별화 가능한 rendering engine은 scene network를 query하여 주어진 view에서 depth와 color image를 얻는다. 

- 카메라 포즈 T(WC)와 픽셀 좌표 [u, v]가 주어지면, 먼저 정규화된 보기 방향을 backproject하고 camera intrinsic matrix K를 사용하여 r = T(WC)K^(-1) world coordinates로 변환한다.

 

- 본 논문에서는  해당 depth value가 {d1,.....,dN}인 ray p(i) = dir를 따라 N개의 sample set를 취하여 network에 colour과 volume density (ci, ρi) = Fα(pi)를 query한다. 

 

- 본 논문에서는 NeRF의 stratified and hierarchical volume sampling strategy를 이용한다

 

- Volume density는 표본 간 거리  δi = di+1 - di를 곱하고 이를 activation function  oi = 1 - exp(-ρ(i)δ(i))를 통해 occupancy probability로 변환된다. 

 

- 각 표본의 ray termination probability는 w(i) = oi π(i-1) (j=1)(1 - oj)로 계산된다. 

- 마지막으로, depth와 colour은 기댓값(Expectation)으로 표현된다.

- ray(광선)에 따른 depth 분산(variance)는 다음과 같이 이뤄진다. 

 

우리의 렌더링 기능은 이러한 변수와 관련하여 차별화 가능하므로, 우리는 각 키 프레임에서 선택된 수의 렌더링 픽셀 si에 대한 기하학적 및 광도계 오류를 최소화하기 위해 반복 최적화를 수행한다.
 

3.4 Joint optimisation 

- 본 논문에서는 implicit scene network parameters θ와 camera pose를 각각 initial pose estimate와 함께 연관된 colour 및 depth 측정이 있는 W key frame set에 대해 공동으로 optimising한다. {I(i), D(i), T(i)}.

- 본 논문의 rendering 기능은 이러한 변수와 관련하여 차별화 가능하므로, 각 키 프레임에서 선택된 수의 rendering pixel s(i)에 대한 geometric 및 photometric errors를 최소화 하기 위해 iterative optimisation을 수행한다.   

-  photometric loss는 rendering된 colour과 측정된 색 값 e(p)(i) = |I(i)[u,v], I^(i)[u,v]| 사이의 L1-norm이다. 

- geometric loss는 depth difference e(g)(i)[u,v] = |D(i)[u,v] - D^i[u,v]|와 depth variance를 normalisation factor로 이용하여, r객체 테두리 같은 불확실한 영역을 down-weighting한다.
 
 - 본 논문에서는 두 loss에 대한 weighted sum에 ADAM optimiser을 적용하고, photometric error에 주어진 중요도를 λp 인자를 조정하여 적용한다. 
 

 

Camera Tracking 

- online SLAM에서, frame-rate와 가까운 camera tracking이 중요한데, 더 작은 변위의 최적화가 더 robust(강력한)기 때문이다.  

- 본 논문에서는 동일한 loss optimising 도구를 사용하면서도 joint optimisation보다 훨씬 높은 frame rate로 고정 scene network에 대한 최신 frame pose를 지속적으로 optimising하는 parallel tracking process를 실행한다. 

- 추적된 pose initialisation은 선택된 keyframe에 대한 mapping process에서 조정된다. 

 

3.5 Keyframe Selection 3.6 Active Sampling

- video stream의 모든 이미지를 사용하여 network parameter와 camera poses를 공동으로 optimising하는 것은 계산적으로 가능하지 않다. 그러나, 비디오 이미지에는 큰 redundancy(중복성)이 있기 때문에, information gain에 따라 점진적으로 선택된 keyframe의 sparse set로 장면을 나타낼 수 있다. 

- network를 초기화하고 world coordinate frame을 고정하기 위해 항상 첫 번째 frame이 선택된다. 새 key frame이 추가될 때마다 network 복사본을 lock하여 해당 시점에 3D map의 snapshot을 표시한다.
-  Subsequent frame은 이 복사본에 대해 검사되고 유의미하게 새로운 영역이 나타나는 경우 선택된다. 이를 위해 균일한 pixel sample set를 rendering하고 threshold t(D) = 0.1보다 작은 정규화된 depth error로 비율 P를 계산하여 지도 snapshot에서 이미 설명한 frame의 비율을 측정한다. 
 

- 이러한 비율이 threshold P (본 논문에서는 0.65로 설정)아래로 떨어졌을 때, 이 frame은 keyframe set로 선택이 된다. normalised depth error는 camera가 물체에 근접하였을 때 적절한 keyframe selection을 제공한다.

 

- mapping process에서 수신된 모든 frame은 몇 번의 반복(10-20회) 동안 공동 최적화에 사용되므로, 우리의 key frame set는 항상 지속적으로 변화하는 최신 frame과 함께 선택된 set로 구성된다. 

 

3.6 Active Sampling

Image Active Sampling

- 모든 이미지 픽셀을 rendering하고 최적화하려면 계산과 메모리가 비쌀 것이다. 우리는 이미지 규칙성을 활용하여 각 반복에서 매우 희박한 무작위 픽셀 세트(이미지당 200개)만 rendering하고 최적화한다. 또한, 우리는 render loss를 사용하여 더 자세한 정보를 제공하거나 reconstruction이 아직 정확하지 않은 informative area에서 active sampling을 안내한다. 

 

- 각각의 joint optimisation iteration은 두 단계로 나뉜다. 먼저, 우리는 각 keyframe의 depth와 colour image에 걸쳐 균일하게 분포된 pixel set를 샘플링한다. 

 

- 이러한 pixel은 network 및 camera pose를 update하고 손실 통계를 계산하는 데 사용된다. 이를 위해, 우리는 각 이미지를 [8x8] greed로 나누고 각 정사각형 영역 R(j), j = {1,2, ..., 64}

 

여기서 r(j) 는 S(i)와 R(j)의 교집합이고 균일하게 샘플링된 pixel이다. 이러한 통계를 확률 분포로 정규화한다. 

 

- 본 논문에서는 이 분포를 사용하여 영역당 새로운 n(i)*fi[j] 균일한 sample set를 resampling(n(i)는 각 keyframe의 총 샘플)하여 손실이 큰 영역에 더 많은 샘플을 할당한다. scene network는 active sample의 손실로 업데이트된다.(camera 추적에서는 균일한 샘플링만 사용됨). 이미지 active sampling은 그림 3에 도시되어 있다. 

 
Keyframe Active Sampling
- iMAP에서는 선택된 key frame set로 scene map을 지속적으로 최적화하여 network forgetting을 방지하기 위한 memory bank 역할을 한다. 본 논문에서는 더 많은 sample을 손실이 큰 key frame에 할당하고자 하는데, 이는 그것들이 새로 탐색되거나, 매우 상세하거나, 네트워크가 잊기 시작한 영역과 관련이 있기 때문이다.
- 본 논문에서는 image active sampling과 유사한 process를 따르고 key frame에 걸친 loss distribution에 비례하여 n(i) sample을 각 key frame에 할당한다.(그림 4. 참조)

 

Bounded Keyframe Selection

- 본 논문의 keyframe set는 카메라가 새로운 미개척 지역으로 이동함에 따라 계속 커진다. 공동 최적화 계산을 제한하기 위해,손실 분포에 따라 무작위로 샘플링된 각 iteration에서 고정된 수(3 in live system)의 키 프레임을 선택한다. 본 논문서는 항상 마지막 key frame과 현재 live frame을 공동으로 최적화에 포함시켜 W = 5 frame이 지속적으로 변화하는 경계 창을 구성한다. (그림 4 참조) 
 

4. Experimental Results

- 생략

 

 

4.1 Experimental Setup

 

Datasets 

- reconstruction evaluation : Replica dataset, high quality 3D reconstructions of real room-scale enviroments, with 5 offices and 3 apartments.

-raw camera recordings : capture RGB-D videos using a hand-held Microsoft Azure Kinect on a wide variety of environments, as well as test on the TUM RGB-D dataset to evaluate camera tracking 

 

Implementation Details

- keyframe registration threshold t(p) = 0.65 photo-metric loss weighting λ(p) = 5, keyframe window size W = 5, pixel samples [s(i)| = 2--, positional embedding size m =93 and sigma =25, 32 coarse and 12 fine bins for rendering. 

 

 ... dataset 제대로 보고 다시 작성할 것 

 

 ...