안녕하세요. 이번에 리뷰로 가져온 논문은 OpenFrontier: General Navigation with Visual-Language Grounded Frontiers라는 논문입니다. 일단 태스크 자체는 object goal navigation으로 텍스트로 object goal 을 넣어주면 주어진 환경에서 해당 goal을 찾아다니는 그런 태스크라고 보시면 좋을 것 같습니다.
해당 논문의 핵심은 간단한데, 현재 이미지에서 앞으로 탐색할 만한 위치들 즉 미지의 영역중 갈 수 있을 법한 영역들을 먼저 찾아놓고, VLM한테 이 중에서 목표 물체를 찾으려면 어느 쪽으로 가는 게 좋을지 를 판단하게 한다는 점이라고 보시면 좋을 것 같습니다. 그래서 VLM이 직접 로봇의 action을 생성하도록 학습시키는 연구라기보다는, 이미 학습된 모델들이 잘하는 역할을 나눠서 하나의 내비게이션 시스템으로 구성한 연구에 가깝다고 보시면 좋을 것 같습니다.
간단하게 해당 논문의 컨셉을 정리하면 일단 training free방법론이고, FrontierNet이라고 하는 모델을 통해서 미지의 영역을 탐색할 후보를 만들고, 그리고 VLM은 목표와 관련 있는 후보에 높은 점수를 주고, 실제 이동은 별도의 navigation 모듈이 담당하는 구조다라고 이해하시면 좋을 것 같습니다.
자세한 내용은 아래 리뷰에서 다루도록 하겠습니다.
Introduction
로봇에게 처음 보는 집에서 변기통 찾아가라고 한다고 생각했을 때, 현재 카메라에 변기통이 바로 보인다면 해당 위치를 추정하고 접근하면 되겠지만, 보통은 목표가 현재 시야에 들어와 있지 않을 수 있습니다. 그러면 로봇은 지금 보이는 복도나 문, 다른 방의 구조를 보고 어느 방향부터 탐색할지를 결정해야 합니다.
여기서 저자들은 이런 문제에서 기존 접근법이 크게 두 가지 부담을 가지고 있다고 설명합니다. 하나는 환경을 복원하고 물체나 시매틱한 정보를 지도에 누적하는 방식인데, 정확한 mapping이 필요하고 유지해야 하는 정보도 많아집니다. 그리고 다른 하나는 이미지와 언어로부터 직접 행동을 생성하는 policy를 학습하는 방식인데, 이 경우에는 내비게이션 데이터 수집이나 task-specific training이 필요할 수 있습니다. VLM을 학습 없이 직접 호출하는 방식도 있지만, 모델이 말한 저쪽으로 가라를 실제 metric한 공간에서의 이동으로 연결하는 문제도 남아있습니다.

위 그림에서 보시면 같은 이미지를 입력하더라도 목표에 따라 frontier의 우선순위가 달라지는 것을 볼 수 있습니다. 여기서 탐색할 만한 위치를 표현하는 데 사용되는 용어가 frontier라고 보시면 좋을 것 같습니다. 단순히 공간을 탐색하는 경우와 슬리퍼를 찾는 경우, 거실로 가는 경우, 화장실을 찾는 경우에 관심을 가져야 하는 방향이 서로 달라집니다. 그림에서는 빨간색에 가까울수록 목표와의 관련성이 높은 frontier를 나타냅니다.
여기서 중요한 건 VLM한테 처음부터 전체 환경의 3D 구조를 이해시키거나, 로봇이 따라갈 연속적인 trajectory를 생성시키지 않는다는 것이고 대신에 현재 이미지에서 탐색 후보를 명시적으로 제시하고, 각 후보가 목표에 얼마나 도움이 될지를 판단하게끔 한다는 것입니다.
정리하면 저자들이 해결하고 싶은 문제는 VLM한테 내비게이션을 전부 맡기는게아니라, VLM의 semantic reasoning을 실제 이동 가능한 목표와 어떻게 연결할 것인지를 보인 연구에 가깝다고 보시면 좋을 것 같습니다. 그리고 그 연결고리로 frontier를 활용한 것이 이 논문의 핵심이라고 보시면 좋을 것 같습니다.
Method

위가 해당 논문의 전체 파이프라인입니다. 먼저 현재 관측에 frontier들을 검출하고, 이 frontier들을 RGB 이미지 위에 표시한 다음 자연어 목표와 함께 VLM에 입력합니다. VLM은 각 frontier가 목표를 찾는 데 얼마나 관련있을지 확률 점수로 나타냅니다. 이후 가장 관련있는 frontier를 3D 공간에 연결하고 global map 위에서 관리하면서 다음 이동 목표를 선택합니다.
그리고 방법론을 보기 전에 입력 조건을 언급하고 넘어가아할 것 같은데, 논문에서는 RGB 이미지 공간에서 frontire 에측, 그리고 reasoning한다는 점을 강조하고 이외에 디테일에 대한 내용은 그렇게 언급하진 않지만, 실제로 보면 전체 시스템이 pose 없이 RGB 한 장만으로 동작하지는 않습니다. 방법론의 입력에는 RGB observation과 함께 camera pose와 intrinsic이 포함되어 있고, frontier는 최종적으로 world coordinate의 위치와 방향을 갖는 목표로 관리됩니다. 그리고 또 3D frontier Lifting 과정 즉 2D 에서 뽑은 frontier 영역을 실제 3D 공간으로 투영하기 위해서는 metric한 depth 정보도 필요하게 됩니다. 결국 real robot 관점에서 보면 depth 센서와 odometry 정보는 필수적인 파이프라인입니다. 즉 이미지에서 목표의 의미를 판단하는 부분과 실제 공간에서 로봇을 움직이는 부분을 구분해서 볼 필요가 있을 것 같습니다.
Visual-Frontier Identification
먼저 첫 번째 단계는 현재 관측에서 앞으로 탐색할 만한 후보 위치를 찾아내는 과정입니다.
일반적인 frontier-based exploration에서 frontier는 이미 관측한 공간과 아직 관측하지 못한 공간의 경계를 의미하는 걸로 저는 이해했는데, 기존 방식에서는 occupancy map 같은 공간 표현을 만든 다음 그 위에서 frontier를 추출하는 방식으로 많이 활용한 것 같습니다. 반면에 이 논문에서는 FrontierNet이란 걸 이용해서 2D 이미지 공간에서 frontier를 검출하고 평가하는 방식을 사용합니다.
여기서 visual frontier는 단순히 이동 가능한 바닥 영역 전체라고 생각하기보다는, 그쪽으로 접근했을 때 아직 보지 못한 공간을 더 관측할 수 있을 것으로 예상되는 탐색 후보라고 이해하시면 좋을 것 같습니다. 논문에서는 검출 결과를 후처리해서 여러 frontier 클러스터로 만들고, 각 클러스터의 이미지상 위치와 information gain을 얻습니다.
이때 information gain은 해당 위치를 방문했을 때 새롭게 관측할 수 있을 것으로 예상되는 미관측 공간의 부피와 관련된 값이라고 합니다. 논문에서는 이를 \hat g_i로 표현하는데, 중요한 건 이 값 자체에는 현재 무엇을 찾고 있는지가 반영되어 있지 않기 때문에, 어떤 방향으로 가면 새로운 공간을 많이 볼 수 있는지는 판단하지만, 그 공간이 화장실을 찾는 데 유리한지, 침대를 찾는 데 유리한지까지 의미론적으로 판단하는 것은 아닙니다. 그래서 다음 단계에서 VLM을 활용합니다.
참고로 OpenFrontier가 새로운 frontier detector를 처음부터 학습하는 것은 아니고, 기존 FrontierNet의 사전학습 가중치를 그대로 가져다가 사용합니다.
VLM-Based Frontier Reasoning
이제 앞에서 검출한 frontier들 중 어떤 후보가 현재 목표와 관련이 있는지를 판단하는 과정입니다.

위 그림을 보시면 이미지에 검출된 frontier들의 중심 위치를 표시하고, 각각에 구분 가능한 label을 붙입니다. 그리고 이 이미지와 자연어 목표를 함께 VLM에 입력합니다. 이런 식으로 이미지 안에 명시적인 표식을 넣어서 모델이 특정 위치를 기준으로 답하도록 하는 방식을 Set-of-Marks prompting이라고 부릅니다. (SoM)
Appendix에 나온 프롬프트 예시를 보면 해당 frontier로 이동하고 탐색을 계속했을 때 목표에 도달할 가능성을 평가하라고 하고 또 현재 눈앞에 물체가 보이는지만 고려하지 말고, 장기적인 탐색 가능성과 frontier 주변의 local context를 함께 고려하도록 지시하게끔 프롬프트를 작성합니다. 만약 지금 침대가 안 보이더라도 어떤 문 너머가 침실로 이어질 것 같다면 해당 방향에 높은 점수를 줄 수 있는 구조가 되게끔 프롬프트를 구성했다고 보시면 좋을 것 같습니다.
그리고 모델은 각 frontier 후보들에 대해 0~1 사이의 확률값과 짧은 설명을 출력합니다.
Exploration과 Goal Relevance를 어떻게 합칠지
앞에서 FrontierNet은 탐색 관점의 information gain을 예측했고, VLM은 목표와의 관련성을 예측했습니다. 저자들은 이 두 값을 다음과 같이 결합합니다.

여기서 \hat g_i는 FrontierNet이 예측한 exploration information gain이고, p_i는 해당 frontier가 목표 달성으로 이어질 가능성에 대한 VLM의 평가(확률 값)입니다. 최종적으로 g_i가 목표 조건을 반영한 frontier의 점수가 됩니다. 아직 보지 못한 공간이 많다고 해서 무조건 그쪽으로 가는 것도 아니고, VLM이 목표와 관련 있어 보인다고 판단했다고 해서 앞선 frontier exploration 측면을 완전히 무시하는 것도 아니게끔 단순한 곱셈으로 처리했다고 보시면 좋을 것 같습니다.
암튼 여기서 핵심은 frontierNet은 미관측 공간의 규모를 추정하는 역할을 맡고, VLM은 목표와 관련된 장면의 의미를 해석하는 역할을 맡습니다. 기하학적인 탐색 prior와 semantic prior를 서로 다른 모듈에서 가져와 결합한다는 흐름이라고 보시면 좋을 것 같습니다.
Global Frontier Management
근데 매번 현재 이미지에서 가장 좋아 보이는 frontier 하나만 고르면 문제가 있습니다. 로봇이 방향을 바꿨을 때 이전에 발견했던 탐색 후보가 화면에서 사라질 수 있고, 이미 확인했던 위치를 다시 선택할 수도 있기 때문입니다.
그래서 OpenFrontier는 frontier를 현재 프레임 안에서만 사용하는 것이 아니라, 3D 공간에 연결해 전역적으로 관리합니다. 말이 어렵지만 실시간으로 전역 맵을 구축하고 이 맵위에서 앞서 예측한 frontier들을 관리하겠다 정도로 받아들이시면 좋을 것 같습니다. 앞서 말씀드렸듯이 해당 프레임워크는 depth 정보와 실시간 pose를 필요로 하고 이 이유가 결국 이거 때문입니다. 각 frontier는 world frame에서의 위치 그리고 앞에서 계산한 점수를 갖습니다. 그레서 이렇게 하면 현재 화면에 보이는 후보뿐 아니라 이전 관측에서 확보한 후보들도 다음 목표를 고를 때 활용합니다. 결국 어떻게 보면 메모리 개념으로 이해할 수 있습니다.
실제 목표를 선택할 때는 로봇과 frontier 사이의 거리도 고려합니다.

여기서 \mathbf p_r는 현재 로봇 위치이고, \mathbf p_i는 frontier 위치입니다.그래서 위 수식이 의미하는건 목표와 관련성이 높고 탐색 가치가 크면서(분자), 현재 위치에서 거리가 가까운(분모) 후보가 높은 utility를 받게 됩니다.
Target Detection과 Goal Verification
지금까지는 목표 물체가 어디 있는지 모르는 상황에서 탐색 방향을 고르는 과정이었습니다. 그러면 실제로 목표처럼 보이는 물체가 발견되면 어떻게 되는지를 설명드리겠습니다.
OpenFrontier는 이동하는 동안 SAM3를 이용해 목표에 해당하는 segmentation mask를 얻습니다. 유효한 mask가 나오면 depth와 camera pose를 이용해 해당 물체의 3D 중심 위치를 추정합니다.
근데 물체의 중심 위치가 추정됐다고 해서 바로 그 위치로 돌진하지는 않습니다. 먼저 물체에서 일정 거리 떨어져 있으면서 물체를 바라보는 viewpoint frontier를 생성합니다. 이 후보에는 사실상 무한대에 해당하는 높은 utility를 부여해서 일반적인 탐색 후보보다 먼저 선택되도록 합니다. 즉, 목표처럼 보이는 것을 발견하면 일단 확인하기 좋은 위치로 이동하는 것입니다. 해당 viewpoint에 도착하면 현재 RGB 이미지를 VLM에 다시 보여주고, 목표 물체가 실제로 존재하는지를 검증합니다. 목표가 확인되지 않으면 그 물체에 대한 viewpoint frontier를 전역 맵에서 제거하고 다시 탐색을 계속합니다. 반대로 확인되면 물체의 중심 위치를 최종 목표로 설정하고 가까이 접근합니다.
정리하면 SAM3가 매번 목표 후보를 찾고 목표후보가 검출되면 확인하기 좋은 위치로 이동하고 VLM이 목표가 맞는지 검증하고 최종적으로 접근하는 구조입니다.
마지막으로 선택된 frontier까지 실제로 이동하는 부분입니다. 이 논문에서 OpenFrontier의 상위 모듈은 goal pose를 출력하고, 그 위치까지 어떻게 이동할지는 별도의 low-level controller한테 맡깁니다. 이건 상황에 따라사 선택적으로 바꿔서 쓸 수 있습니다.
Experiments
실험은 3가지 벤치마크(HM3D ObjectNav, MP3D ObjectNav, OVON)위에서 에서 평가합니다. HM3D와 MP3D는 closed-vocabulary object goal을 다루고, OVON은 더 다양한 언어 표현과 물체를 포함하는 open-vocabulary setting입니다.
해당 벤치마크 평가에서는 frontier reasoning에 Gemini-2.5-flash를 사용하고, low-level controller에는 VLFM이라는 방법론에서 사용한 pretrained DD-PPO PointGoal policy를 사용했다고 합니다.
논문에 정리된 Habitat 성공 조건은 STOP을 출력했을 때 목표로부터 1m 이내에 있는 경우입니다.
ObjectNav Benchmark Results

위 표를 보면 저자들이 제안한 방법론이 모든 벤치마크의 모든 지표에서 가장 좋은 성능을 보이진 않지만 전역적인 semantic dense map이나 task-specific VLM fine-tuning 을 하지 않았다는 점에서 이 정도의 목표 탐색이 성능은 꽤 유의미 하다라는 점인 것 같습니다.

위 그림은 bed를 찾는 상황에서 세 방법의 이동 경로를 비교한 결과입니다. 여기서 보시면 OpenFrontier가 여러 방향으로 갈 수 있는 지점에서 목표와 관련된 영역을 향해 이동하면서, 관련 없는 영역에 대한 불필요한 탐색을 줄이는 모습을 보여줍니다.

위는 서로 다른 데이터셋과 목표 물체에서 얻은 정성적 결과입니다.
Real-World Deployment

실제 로봇 실험은 Boston Dynamics Spot을 이용해 진행합니다. 로봇 팔 끝에 장착한 RGB 카메라로 관측을 받고, camera pose는 로봇에 기본적으로 내장된 VIO알고리즘으로 받아온다고 합니다. 사전에 환경의 배치를 알려주지 않은 상태에서 서로 다른 시작 위치와 자연어 목표로 내비게이션을 수행합니다.
위 그림은 소화기를 찾는 실험인데, 이동하면서 관측한 이미지의 frontier를 평가하고, 이를 전역적인 목표 관리에 연결한 뒤 최종적으로 목표를 검출하는 흐름을 보여줍니다. 정량 실험은 5종의 목표 물체에 대해 총 10회 수행했고 성공률은 70%였다고 합니다. 다만 실험 횟수가 많지는 않기 때문에 다양한 실제 환경에서의 강인성이 충분히 검증됐다고 보기보다는, 제안한 구조가 실제 로봇에서도 동작할 수 있음을 보여주는 결과로 이해하는 것이 좋을 것 같습니다.
좋은 VLM을 써서 성능이 높은 것 아닐지

이 논문을 읽으면서 드실수 있는 의문점은 결국 Gemini가 잘해서 성능이 높은 것 아닌가일 수도 있을것 같습니다. 저자들도 이 부분을 확인하기 위해 frontier의 관련성을 평가하는 VLM을 교체해 실험을 진행합니다.
결과적으로 모델에 따라 차이는 있지만, 비교적 작은 모델이나 이전 세대 모델을 사용해도 성능이 크게 무너지지는 않는 결과를 보입니다.
그리고 베이스라인 모델들에 같은 VLM을 넣고 비교실험을 진행도 했는데 LLaVA 1.6을 사용했을 때 기존 방법론 대비 좋은 성능을 보입니다. 이 결과를 보면 적어도 VLM의 성능만으로 OpenFrontier의 결과를 설명하기는 어렵다고 저자들은 주장합니다.

위 그림은 같은 실제 이미지와 frontier 표시 같은 prompt를 여러 VLM에 입력한 결과입니다.
같은 물체라도 입력 Goal Context가 달라지는 경우

위는 단순한 물체 카테고리 이름뿐 아니라 추가적인 언어 조건을 이해할 수 있는지를 보여주는 실험입니다.
위 그림에서 두 실험은 같은 위치에서 시작하지만, 위 실험은 plant를 찾고 아래 실험은 plant in the bathroom을 찾습니다. 그러면 비슷한 frontier를 관측하더라도 부여하는 점수가 달라집니다. 단순히 plant를 찾을 때는 거실 방향으로 이동하지만, bathroom이라는 조건이 추가되면 욕실과 관련 있어 보이는 방향의 frontier를 우선적으로 선택합니다. 결국 VLM의 의미론적인 이해능력을 바탕으로 이 contextual reasoning을 frontier의 우선순위로 연결했다는 것을 보여주는 정성적 실험으로 보시면 좋을 것 같습니다.
Failure Cases, limitations

저자들은 실패 사례도 분석합니다. 여기서는 크게 목표를 찾지 못한 채 정해진 step 내에 목표까지 도달하지 못한 경우, 잘못된 목표를 선택하는 false positive, 그리고 목표를 찾았지만 접근하지 못하는 경우를 구분해서 분석합니다.
특히 목표를 못 찾은 경우와 목표를 찾았는데 도달하지 못한 경우는 결과적으로 둘 다 시간 초과로 끝날 수 있지만, 해결해야 하는 문제가 다릅니다. 전자는 탐색과 인식의 문제에 가깝고, 후자는 low-level navigation이나 failure recovery의 문제에 가깝습니다. 논문에서도 DD-PPO가 목표 근처에서 local minimum에 빠지거나 좁은 영역에서 벗어나지 못하는 사례가 많이 있었다고 합니다. 여기로 local minimum 이라고하면 예를 들어 앞에 장애물 있는데 왼쪽으로 경로 계획했다가 오른쪽에 다시 frontier같은 영역이 생기니깐 오른쪽으로 움직이고 다시 오른쪽으로 가니간 왼쪽에 frontier가 생겨서 또 왼쪽으로 가는 이렇게 로봇 움직임 자체가 진동하는 상황에 같이는 상황으로 이해하시면 좋을 것 같습니다. 이건 현재 프레임워크에서 활용하는 VLM자체에 메모리 개념이 없어서 그런것 같습니다.
그리고 frontier 예측 결과가 없을 경우 단순 룰베이스 기반으로 해결하려고 합니다. 사실 이 부분이 의문인게 전역적으로 frontier를 관리하고 실시간으로 pose, depth정보를 활용하는데, frontier 예측 결과가 없을 경우 이전 전역 맵위에 저장된 앞선 frontier들에서 다시 우선순위를 정하고 자기 위치 localization 해서 가는 시스템은 충분히 구축해볼만 한데 단순히 양옆 뒤 회전으로 새로운 frontier를 찾으려고 한다는 점이 의문이긴합니다. 암튼 결과적으로 잘못된 공간으로 길을 잘못들었고, 어떻게 벗어나야하지에 대해서는 약한 모습을 보이는 것 같습니다.
아래는 실패사례 예시입니다.

Conclusion
뭔가 해당 방법론 자체가 새로운 무언가를 제시한건 아니고 단순히 기존 내비게이션 시스템 위에서 frontier 탐색과 VLM의 의미론적 판단을 비교적 단순하고 해석 가능한 방식으로 연결한 정도이지만 그래도 해당 논문을 읽으면서 느낀건 강인한 내비게이션 시스템을 만들기 위해서는 Uni-Navid나 Navila처럼 뭔가 더 큰 모델이나 더 많은 학습 데이터만 필요한 것은 아니라는 생각이 들긴합니다. 물론 해결하고자 하는 문제에 따라 혹은 보는 관점에 따라 다르겠지만 적어도 이렇게 환경이 정해져있고 주어진 goal들도 상대적으로 의미론적으로 명확한 상황이라면 이런 상황에서 만큼은 모델이 잘 판단할 수 있는 형태로 후보를 구성하고, 그 판단을 실제 행동으로 연결하는 구조를 잘 만드는 것도 그만큼 중요할 수 도 있겠다라는 생각이 듭니다.
이만 리뷰 마치도록 하겠습니다. 감사합니다.