안녕하세요 오늘은 이미지에서 주행가능맵을 뽑아내는 논문을 가져왔습니다.
이동체 입장에서 주행가능영역을 그 자체로 이동가능한 지도가 됩니다. 한 이미지에서 주행가능영역을 segment한 후에, BEV(Bird-Eye View)로 변환한다면, 로봇이 어느 영역은 갈 수 있고, 또 어느 영역은 피해야하는지 알 수 있습니다. 그렇기에 한 이미지(로봇의 시야)에서 단순히 지면을 뽑아내는 것이 아닌 노면이 고른지, 언덕인지, 그리고 당연히 장애물은 없는지 등 좋은 주행가능영역을 뽑는 것은 중요한 과제입니다.
Introduction
해당 논문과 이전 논문으로 계속 언급하는(GeNIE)는 SAM2라는 VFM을 사용합니다. SAM2의 강력한 segmentation을 주행가능한 영역을 골라내는 용도로 tuning하는 것입니다. 그런 간단하게 SAM2가 영역을 프롬프트로 주는지 설명하겠습니다.

위 그림처럼 SAM2는 점들을 입력으로 받습니다. 그러면 해당 점을 프롬프트로 입력이 들어가여, 해당 부분과 관련된 부분을 segmentation을 진행합니다.
이상적으로는 주행가능한 여부는 depth와 같이 fuse하여 사용하는 것이 좋습니다. 하지만 SWaP(Size, Weight and Power) 제약과 RGB-depth 데이터셋 의 제약 때문에 RGB만 사용하여 주행가능맵을 만들 필요성이 있습니다. 그래서 일반적으로는 road나 terrain 같은 곳을 positive label로 구성한 데이터를 이용하여 VFM을 adapting하는게 일반적이니 접근입니다. 하지만 저는 이 방식에 대해 3가지를 지적합니다.
- Task-Agnostic Design of VFMs
- DINOv2나 SAM2 같은 VFM들은 일반화된 시각적인 특징을 뽑아내는데 특화되어 있지, 물리적인 주행가능성을 파악하는 능력은 부족합니다. 좀 일반화된 도로 환경에서는 그럭저럭 작동하겠지만, 경계가 애매한 환경들(unstructured environments)에는 잘 작동하지 않습니다. 그래서 신뢰가능한 주행가능한 맵을 위해서는 task-specfic한 지식을 inject하는 것이 필요하다고 합니다.
2. Traversability Annotation Ambiguity
- Unstructured Environment에서 주행가능한 맵의 annotation들이 너무 애매하다고 합니다. 명확한 기준이 있는 것이 아닌 annotator이나 데이터셋마다 다릅니다. 그러면 데이터로 학습한 모델은 결국 false-positive를 뱉을 위험이 있습니다. 이러한 inherent ambiguity를 단순한 prediction으로 예측하기보다 traversability는 애매한 경계들에서 uncertarinty를 예측한 필요가 있다고합니다.
3. Semantic-Traversablity Discrepancy
- 일반적인 환경에서는 road나 terrain들은 주로 넓고 평평한 표면으로 나타납니다. 이는 semantic label을 물리적 안전을 위한 좋은 대비책(close proxy)으로 사용할 수 있습니다. Unstructured enviroments에서는 한 class가 기하학적으로 균질하지 않은(heterogeneous) 지역을 형성합니다. VFM의 강력한 일반화 성능에도 불구하고 이러한 경우를 전부 해결하지 못한다고 합니다.
그래서 결국 저자들은 ViTA(Vision-to-Traversability Adaptation)을 제안합니다. 이는 VFM을 신뢰가능한 주행가능한 맵을 만들도록 adapting 시키는 과정입니다. 자세한 과정을 이후 Method에서 다루겠습니다.
Related Work
Related Work에서는 바로 이전 논문인 GeNIE에 대해서 다루겠습니다. GeNIE는 outdoor환경에서 단일 전면 RGB 카메라를 이용하여 planning을 하는 논문입니다. 그중, perception 쪽에서 주행가능맵을 만들어서 이후 planning에 사용합니다. SAM2는 위에서 다뤘듯 디코딩시 점 입력을 받습니다. 해당 부분을 전부 learnable token으로 대체한 후, 저자들이 직접 annotation한 주행가능한 영역에 대한 데이터셋을 이용하여 full-tuning을 진행합니다. 이를 통해, SAM2는 입력에 따른 부분을 segmentation하는 모델이 아닌, 주행가능한 부분만 찾는데 특화된 모델로 adapt됩니다.

Method

A. Problem Formulation
이 논문의 framework는 총 4개의 pixel 레벨의 outputs을 만들어냅니다. traversability map P, uncertainty based confidence weight C 그리고 기하학적 위험도를 나타내는 R_slope, R_elev

B. Overview
위 Fig. 2에서 보이듯이 SAM2는 3개의 요소로 adapt됩니다. Cross-Modal Transformer decoder는 SAM2가 인코딩한 dense features F \in \mathbb{R}^{h \times w \times C}를 key/value로 받습니다. 그리고 unified sequence of learnable query token(Traversability prompt token, Semantic mask token, Geometrci token)과 상호작용합니다. 이렇게 처리된(refine)된 token은 semantic head와 geometric head에 의해 처리됩니다. 그리고 그들의 최종 output은ㅇfinal traversability score인 T와 fuse됩니다.
C. Cross-Modal Transformer
Unified Sequence of Learnble Query Token에 대해 좀 더 들어가 봅시다. 먼저 3가지로 구분되어 있다고 B에서 얘기했습니다. 먼저 Learnable Traversability Prompt Token입니다. GeNIE와 동일한 용도의 Token입니다. N_p \times D로 이루어져있습니다. 이 token 이외에 5개의 token이 추가적으로 있는데요. 그 중 하나는 Semantic Mask Token입니다. 3개로 이루어져있으며, 각각 q_con, q_neu, q_agg입니다. 각각이 multi-hypothesis set으로 동작합니다. 각 token은 ~~~ 이후 추가 설명 넣기 ~~~~
D. Perspective-Diversified Training
각 semantic token은 MLP를 거친 후, upscaled된 이미지 feature U와 내적하여 마스크로 사용됩니다.

이 과정을 통해, 3개의 pixel mask를 생성합니다. 저자의 의도는 3개의 특징을 가진(과감한, 안정적인, 소극적인) mask를 만들고자 했습니다.
그리고 PDT Loss를 사용합니다. 저자들은 traversability annotation이 근본적으로 애매하다고 주장합니다. 그렇기에 그냥 학습하여 이 본질적인 어려움을 해결하기 바라는 것보다는 명시적으로 각 token이 다른 관점(conservativeness spectrum에서)을 가지게하여 해결하고자 했습니다. 각 token k는 perspective에 따라 가중치를 다르게한 focal loss와 Tversky loss, 그리고 비대칭적 FP/FN 패널티 가중치로 loss를 부여합니다.

그리고 이제 Uncertainty 예측입니다. 위에서 정의한 con, neu, agg 세개의 토큰이 전부 안전하다고 판단하는 곳은 낮은 분산을 내놓습니다. 반면 애매한 경계 부분은 con와 agg와 불일치하여 분산이 높습니다. 그렇기에 추론 시에 그 관계를 파악하여 uncertainty를 측정할 수 있습니다. 수식은 아래와 같습니다.

E. Geometric Distillation
이제 pixel 별로 slope와 elevation을 나타내는 risk map을 아래와 같이 생성합니다.

이때, teacher로 DepthAnything3를 frozon 상태로 활용합니다. depth map을 바로 distill하는 것보다. 그것을 slope와 elevation risk로 변환합니다. relative depth map D가 나오고. ground reference normal n과 지면 offset b를 semantic GT mask가 traversable하다고 지목한 영역에 SVD를 fitting해서 알아냅니다.(부연 설명하자면, 통행가능하다고 측정된 부분은 지면일 가능성이 높습니다. 그 영역들은 SVD를 이용하여 평면을 맞춥니다.
Geometric Loss는 아래와 같이 정의됩니다.

이때 L_geo는 geometric token을 학습시키고, Auxiliary Depth head은 shared encoder에 붙어서 depth 지식을 Scale-Shift Invaiant(SSL) loss에 의해 주입합니다.

F. Traversability Score Fusion
최종적 Score는 아래와 같이 fusion되어서 사용됩니다. 또한 loss도 아래와 같습니다.


Result
baseline과 ViTA는 전부 GOOSE training split으로 학습되었습니다(오프로드와 도시 포함된 scene). 저자들은 원본 클래스를 traversability 여부 label로 이진 mask로 remap했습니다. 그리고 평가는 GOOSE-val, ORFD, real-robot test set, Campus, Mountatin에서 진행하였습니다.
평가 metric은 IoU, Precision, Recall입니다.

Table1은 6개의 도메인에서의 결과를 보여줍니다. Unstructed Outdoor, Structeured Outdoor, Apperance Shifts로 세부 분류를 해놨습니다. ViTA가 모든 도메인에서 가장 높은 IoU를 보입니다. 또한 SAM2는 일관되게 DINOv3를 이깁니다. 이는 pixel-wise dense prediction이 필요하며, 백본을 SAM2를 사용하는 것이 맞다는 저자의 생각을 증명합니다.
GOOSE-val-C는 GOOSE-val에 15가지 종류의 이미지 오염(image corruption이라고 저자는 표현했습니다)을 적용한 데이터셋입니다. ViTA는 GeNIE를 19%정도의 격차를 내며 압도하는 모습을 보입니다. 이는 ViTA가 SAM2의 일관성을 그대로 잘 이어받았다는 것을 보여줍니다.

Ablation Study

Table 3에서 A1은 GeNIE,A2는 Semantic Uncertainty 추가, A3는 Geometric Distillation 추가, A4는 A2와 A3전부 사용, 그리고 모든걸(+Cross-Modal Transformer) 사용한 A5가 ViTA입니다. 보시면 IoU와 Precision모두 전부 사용한 것이 우세한걸 보입니다.

저자들은 속도 역시 리포팅하는데, ViTA가 겨우 4.06M의 파라미터와 1.31GLOPs만 추가한다고 합니다(SAM2-Base+에 비해). 그리고 Jetson AGX Orin에 올렸을때, 512×512로 9fps를 달성하여 실사용에도 무리 없는 실용적 방법이라고 얘기합니다.