※ 해당 글을 작성하게 된 이유,
Visual Language Navigation task 는 지속적으로 주목받고 있는 분야이기에 관련 논문 하나를 정리해보고자 작성합니다.
(논문 그대로 해석한 것이 아닌 제 나름의 방식대로 해석해서 작성했음을 알리며 참고 바랍니다.)
Chenguang Huang, Oier Mees, Andy Zeng, Wolfram Burgard, Visual Language Maps for Robot Navigation, ICRA(2023)
Summary
Visual language feature 와 3D reconstruction 정보를 융합한 spatial map 제안 = VLMaps
- Multi-object & Long-horizon goal navigation / Zero-shot spatial goal navigation 가능
- Embodied agent 한정 obstacle map 생성 가능
0. Opening
( * 먼저, Visual Language Navigation task 에 대해서 간략히 설명드립니다. )
Visual Language Navigation task 란, 실제 환경에서 자연어 명령으로 embodied agent 를 주행시키는 분야입니다.
1. Introduction
- 고전적인 robot navigation 방법은 path planning 을 위한 geometric map 을 구축할 수 있고 자연어 명령으로부터 목표를 파싱할 수 있습니다.
- 단, unseen instruction 에 대한 일반화가 어렵습니다.
- learning method 는 navigation policy 를 최적화할 수 있습니다.
- 단, 많은 양의 데이터가 필요합니다.
- 사전 학습된 Visual Language Model ( = VLM ) 은 추가적인 데이터 없이 fine-tuning 이 가능합니다.
- 단, 환경적 불일치 ( = spatial 정보 부족 ) 가 존재합니다.
▶ VLMaps 는 image observation 으로부터 사전 학습된 visual language feature 와 물리 세계의 3D reconstruction 정보를 융합한 spatial map 입니다.
2. Method
A. Building a Visual-Language Map
VLMap 은 depth data 를 reconstruction 해서 얻은 3D 공간( = 3D reconstruction ) 상에 visual language model 로부터 얻은 pixel-level embedding 을 backproject 해 얻은 결과물입니다.
- LSeg visual encoder 를 통해 각 pixel-level embedding 을 CLIP feature space 에 위치시킵니다.
- LSeg 는 해당 논문에서 사용한 visual language model 로 RGB 이미지를 language-driven semantic segmentation 합니다.
Process of A. ( Figure 1: VLMap Creation 참고 )
Step0. VLMap 크기 정의
Step1~2. 3D reconstruction 과정
- Step1. Local 및 Global depth point cloud 생성
$$ P_{k} = D(u)K_{}^{-1}\tilde{u} $$ $$ P_{W} = T_{Wk}P_{k} $$
- Step2. Global depth point cloud 를 ground plane 에 projection 함으로써 grid map 에서의 depth pixel u 위치 획득
$$ p_{map}^{x} = \left \lfloor \frac{\bar{H}}{2}+\frac{P_{W}^{x}}{s}+0.5 \right \rfloor $$ $$ p_{map}^{y} = \left \lfloor \frac{\bar{W}}{2}-\frac{P_{W}^{z}}{s}+0.5 \right \rfloor $$
Step3~4. pre-trained visual language feature 획득 과정
- Step3. LSeg visual encoder 이용, C 차원의 pixel-level embedding 획득
- grid map 에서의 rgb pixel u 위치에 해당하는 embedding 값을 의미
- Step4. averaged embedding 값 획득
- 2D grid map 기준으로 동일한 위치에 n개의 point cloud 들이 존재하기에, 동일한 물체를 여러 각도에서 바라본 embedding vector 의 평균값으로 result feature 정의
$$ M(p_{map}^{x}, p_{map}^{y}) = \frac{1}{n}\sum_{i=1}^{n}q_{i} $$
B. Localizing Open-Vocabulary Landmarks
VLMap 을 M 개의 category ( = landmark ) 로 localize 함으로써 최종 segmentation result 를 획득합니다.
Process of B. ( Figure 1: Landmark Indexing 참고 )
Step1. M 개의 category 설정
Step2. LSeg text encoder ( = pre-trained CLIP text encoder ) 이용, C 차원의 text embedding 획득
- 이로써 M x C 차원의 text embedding matrix E 생성
Step3. VLMap 과의 pixel-to-category similarity 계산
- 먼저, VLMap 을 flattened 함으로써 matrix Q 획득
- matrix S 는 pixel 과 text category 사이 similarity 값을 가짐
$$ S = QE_{}^{T} $$
Step4. argmax 및 reshape 를 통해 최종 segmentation result 획득
C. Generating Open-Vocabulary Obstacle Maps
서로 다른 embodiment 는 하나의 VLMap 을 공유하면서 각자에 맞는 obstacle map 을 생성할 수 있습니다.
- mobile robot 은 table 을 피해서 주행해야 하지만 drone 은 table 위를 날아 주행할 수 있습니다.
- 즉, 로봇에 따라 obstacle category 를 달리함으로써 각각의 obstacle map 을 만들 수 있는 것입니다.
Process of C.
Step1. Global depth point cloud 를 통해 obstacle map O 생성
- floor 와 ceiling 관련 point 를 피해 embodiment 의 height 를 기준으로 필터링
$$ O_{ij} = \left\{\begin{matrix} 1, \, t_{1}\leq P_{W}^{y}\leq t_{2} \, and \, p_{map}^{x}=i \, and \, p_{map}^{y} = j& \\ 0, otherwise \end{matrix}\right. $$
Step2. M 개의 obstacle category 설정, 각 obstacle 별 M 개의 map 합침
Step3. floor region 을 고려한 union obstacle map 과 앞서 구한 obstacle map O 의 교집합을 통해 최종 obstacle map 획득
D. Zero-Shot Spatial Goal Navigation from Language
자연어 명령을 통해 실행 가능한 로봇 주행 코드를 생성할 수 있습니다.
- navigation primitives 를 정의해둔 후, LLM 의 코드 생성 능력을 이용해 python 코드로 매핑합니다. ( Figure 2 & 3 참고 )
- 이때, LLM 은 미리 생성해둔 VLMap 을 input 으로 받아 navigation primitives 를 호출합니다.
- 그리고 이를 통해 로봇이 embodiment-specific obstacle map 내에서 주행하도록 하는 것입니다.
3. Experiments
A. Multi-Object & Long-Horizon Navigation / Zero-Shot Spatial Goal Navigation from Language
- Object navigation task 는 agent ( = embodiment, robot ) 가 target object 에 도달하는 task 입니다.
- Spatial goal navigation task 는 agent 가 spatial 정보를 인지하면서 target object 에 도달해야 합니다.
▶ prediction mask 에 따라 planning path 를 생성하기에 가장 false positive가 없는 VLMaps prediction mask 가 가장 좋은 성능을 보이는 것을 볼 수 있습니다. ( Figure 4 & Table 1, 2 참고 )
B. Cross-Embodiment Navigation
서로 다른 embodiment 에 맞는 obstacle map 으로 navigation 했을 때의 actual path 를 shortest path 와 비교함으로써 효율성 측면에서 성능을 평가합니다. ( Figure 5 & Table 3 참고 )