[ICCV 2025] Perspective-Aware Reasoning in Vision-Language Models via Mental Imagery Simulation

이전 연구주제에서 이제 새로운 연구주제를 서베이 하면서 이것저것 읽어보다가 간단하게 리뷰해볼만 task를 찾아서 리뷰하게 되었습니다.

이번에 리뷰할 논문은 VLM의 perspective-aware spatial reasoning, 그중에서도 Allocentric spatial reasoning이라고 보면 됩니다. 일반적인 VLM의 VQA들은 보통 egocentric perspective에는 꽤 강한데, 다른 object를 기준으로 공간관계를 물어보게 되면 문제를 잘 못 푼다고 합니다.

그래서 Egocentric은 카메라/관찰자 시점 이라면 Allocentric은 사람이나 물체 등 다른 reference의 시점 기준의 공간 추론이라 생각하면 되겠습니다.

그럼 리뷰 시작하겠습니다.

Abstract

우선 이 논문은 VLM이 카메라 시점이 아닌 다른 객체의 시점에서 공간관계를 추론하는 능력이 부족하다는 문제의식에서 출발합니다.

저자는 이를 perspective-aware reasoning 혹은 perspective-taking이라고 부릅니다. 쉽게 말하면 현재 카메라가 보고 있는 위치에서 공간관계를 판단하는 것이 아니라, 이미지 안에 있는 특정 사람이나 물체의 위치로 이동해서 그 object가 바라보고 있는 방향을 기준으로 공간관계를 다시 판단하는 것입니다.

예를 들어 이미지상에서 dog가 man의 왼쪽에 보이더라도, man이 카메라 반대 방향을 바라보고 있다면 man의 입장에서는 dog가 오른쪽에 있을 수 있습니다. 사람은 이런 viewpoint change를 비교적 쉽게 수행하지만, 최근 VLM들은 여전히 image상의 left/right, 즉 camera perspective에 강하게 의존하는 경향이 있다고 합니다.

기존 VLM들도 spatial relationship, depth, distance 등 공간 추론 능력 자체는 많이 발전했지만, 최근 연구를 보면 perspective를 명시적으로 바꿔서 질문하더라도 다시 egocentric interpretation으로 돌아가는 egocentric bias가 존재한다고 합니다.

저자는 이를 해결하기 위해 인간의 Mental Imagery에서 아이디어를 가져옵니다. 여기서 Mental Imagery라고 해서 새로운 viewpoint에서 실제 이미지를 머릿속으로 선명하게 생성한다는 의미라기보다는, scene의 중요한 spatial information을 abstract한 형태로 표현하고, 그 representation을 다른 perspective에서 다시 해석하는 과정이라고 설명합니다.

즉 우리가 어떤 장면을 다른 사람의 입장에서 생각할 때 굳이 그 사람 시점의 photorealistic image를 머릿속에서 완벽하게 만들어내는 것이 아니라, 어떤 object가 어디에 있고, 어떤 방향을 바라보고 있는지 정도의 spatial representation을 만든 다음 그 기준을 바꿔서 생각한다는 것입니다.

이 관찰을 기반으로 저자는 APC, Abstract Perspective Change라는 framework를 제안합니다. APC는 VLM만을 이용해서 perspective reasoning을 수행하는 것이 아니라, object detection, segmentation, orientation estimation과 같은 여러 vision foundation model을 같이 활용합니다.

우선 입력 image에서 질문과 관련된 object들을 찾고, 각 object의 3D 위치와 orientation 정보를 이용해서 scene의 abstract representation을 만듭니다. 그다음 질문에서 어느 object의 perspective를 기준으로 해야 하는지 파악하고, 기존 camera perspective의 scene abstraction을 해당 reference object의 perspective에 맞게 변환합니다. 마지막으로 변환된 scene을 다시 VLM이 이해할 수 있는 형태로 표현해서 새로운 prompt를 만들고, 이를 VLM에 입력해서 최종 답을 얻습니다.

저자는 scene abstraction을 표현하는 방식으로 두 가지를 사용합니다.

하나는 object의 위치를 numerical 3D coordinate로 표현하는 text-based representation이고, 다른 하나는 object를 colored box 형태로 표현하는 image-based representation입니다.

즉 APC의 핵심은 VLM에게 allocentric reasoning 자체를 새롭게 학습시키는 것이 아닙니다. 원래 VLM이 잘하지 못하는 Allocentric Question 을 그대로 풀게 하는 대신, 중간에서 scene을 abstract하고 perspective를 변환해서 Egocentric Question 과 유사한 형태로 바꿔준 뒤 VLM이 원래 가지고 있는 egocentric spatial reasoning 능력을 활용하는 방식입니다.

쉽게 말하면 VLM에게 어려운 perspective transformation을 직접 시키는 것이 아니라, 외부에서 perspective-related barrier를 제거한 뒤 VLM이 잘하는 문제 형태로 바꿔주는 것이라고 합니다.

실험은 synthetic image benchmark인 COMFORT++와 real-image를 포함한 3DSR-Bench에서 수행했습니다. 저자는 APC가 여러 VLM baseline보다 크게 좋은 성능을 보였고, spatial reasoning을 위해 fine-tuning된 모델이나 novel-view synthesis 기반 방법보다도 좋은 결과를 얻었다고 합니다.

즉 이 논문의 핵심은 새로운 viewpoint의 image를 직접 생성하지 않고, scene abstraction과 perspective transformation을 이용해서 allocentric reasoning을 egocentric reasoning 문제로 변환한다는 점으로 보면 될 것 같습니다.

Introduction

저자는 먼저 최근 VLM들이 general-purpose physical AI agent의 중요한 backbone으로 발전하고 있다고 설명합니다.

초기의 VLM은 VQA나 image captioning처럼 비교적 기본적인 task를 수행하는 데 집중되어 있었지만, 최근에는 visual reasoning 능력이 많이 발전하면서 object 간 spatial relationship, relative size, distance 같은 공간 정보를 추론할 수 있게 되었습니다.

또 instruction tuning이나 vision-centric adapter 같은 방법들이 나오면서 depth-aware reasoning이나 region-aware reasoning처럼 조금 더 복잡한 spatial reasoning도 가능해졌다고 합니다. 하지만 저자는 이러한 spatial reasoning 연구들이 대부분 egocentric reasoning에 한정되어 있다고 지적합니다.

즉 현재 VLM은 camera가 바라보는 perspective에서 object들의 위치 관계를 판단하는 것은 꽤 잘하지만, camera가 아닌 다른 object의 위치와 방향을 기준으로 질문하면 성능이 크게 떨어진다는 것입니다.

이를 Allocentric reasoning이라고 합니다.

Allocentric reasoning은 단순히 benchmark 하나를 잘 푸는 문제를 넘어서, 실제 physical AI agent가 환경 안에서 다른 사람이나 agent와 상호작용하고 planning하기 위해서도 필요한 능력이라고 설명합니다.

예를 들어 robot과 사람이 서로 다른 위치에 있을 때, 사람이 “내 오른쪽에 있는 물체를 가져와”라고 말한다면 robot은 자기 시점의 오른쪽이 아니라 사람의 위치와 orientation을 기준으로 오른쪽이 어디인지 이해해야 합니다. 하지만 기존 연구에서 분석한 결과 대부분의 VLM은 이런 상황에서도 camera perspective를 기준으로 답하려는 강한 bias가 있다고 합니다.

심지어 prompt에서 “저 사람의 위치에 서서, 저 사람이 바라보고 있는 방향을 기준으로 생각하라” 고 명시적으로 알려줘도 VLM이 다시 camera-centric interpretation으로 돌아가는 경우가 많다고 합니다.

Abstract 에서 보여줬던 Figure 2가 이를 가장 직관적으로 보여줍니다. Egocentric question에서는 카메라 위치에서 바라봤을 때 cat이 dog의 왼쪽인지 오른쪽인지 물어봅니다. 이 경우 Human과 VLM 모두 “right” 으로 대답합니다.

반면 Allocentric question에서는 man의 위치에 서서 man이 바라보는 방향을 기준으로 dog가 어느 쪽에 있는지 물어봅니다. Human의 정답은 “right”인데, VLM은 “left”라고 답합니다.

즉 image 자체에서 object들의 위치를 아예 인식하지 못한 것은 아닙니다. 카메라 기준으로는 공간관계를 제대로 보고 있지만, reference frame을 camera에서 man으로 바꾸는 과정에서 실패한다고 볼 수 있습니다.

개인적으로 이 부분이 이 논문의 problem definition에서 중요한 부분인 것 같습니다.

단순히 VLM은 spatial reasoning을 못한다가 아니라, VLM은 egocentric spatial relationship은 어느 정도 이해하지만, reference object의 위치와 orientation에 맞게 coordinate system을 바꾸는 perspective transformation 능력이 부족하다는 것이 저자의 주장입니다. 이 문제를 해결하기 위해 저자는 인간이 어떻게 perspective를 쉽게 바꿀 수 있는지를 생각합니다.

사람은 물리적인 세상을 그대로 pixel 단위로 기억하는 것이 아니라, scene 내부의 object와 관계에 대한 internal representation을 형성한다고 합니다. 이러한 internal representation을 만드는 cognitive process가 Mental Imagery입니다. Mental Imagery는 사람이 실제로 보고 있지 않은 visual, spatial, conceptual scenario를 머릿속에서 simulation할 수 있게 해주고, 이를 통해 mental rotation이나 occlusion inference, alternative viewpoint reasoning 같은 복잡한 spatial reasoning이 가능하다고 설명합니다.

그런데 여기서 저자가 중요하게 보는 점은 Mental Imagery가 단순히 다른 viewpoint의 이미지를 생성하는 과정이 아니라는 것입니다. 오히려 scene에서 필요한 spatial information만 추상화해서 representation으로 만들고, 그 representation을 새로운 perspective에서 다시 해석하는 과정이라고 봅니다. 이게 computational 관점에서도 장점이 있다고 합니다.

만약 VLM에게 실제로 새로운 perspective의 image를 생성하게 하려면 novel-view synthesis를 수행해야 합니다. 그렇게 되면 기존 image에서 보이지 않던 영역을 생성해야 하고, occlusion이나 3D geometry도 복원해야 하고, texture나 appearance까지 만들어야 하기 때문에 굉장히 어려운 문제가 됩니다. 그리고 당연히 잘못된 영역을 hallucination할 가능성도 있습니다.

반대로 scene을 단순한 abstract representation으로 만들면 굳이 새로운 RGB image 전체를 생성할 필요가 없습니다. 예를 들어 Man의 위치는 어디인지, Dog의 위치는 어디인지, Man이 어느 방향을 보고 있는지 정도의 정보만 있으면 reference frame을 바꾸는 것은 훨씬 간단한 geometric transformation으로 처리할 수 있습니다.

그래서 저자는 굳이 새로운 view를 생성하지 말고, spatial information만 abstraction한 뒤 그 representation의 perspective를 바꾸자고 합니다. 이를 기반으로 제안하는 것이 Abstract Perspective Change, APC입니다.

APC는 image와 perspective-based question을 입력으로 받아 크게 세 단계로 동작합니다.

첫 번째는 scene abstraction입니다. 우선 VLM이 질문을 parsing해서 어떤 object들이 질문에 필요한지 파악합니다. 그다음 object detection, segmentation, orientation estimation 등의 vision foundation model을 이용해서 각 object의 3D center와 orientation 정보를 얻습니다. 즉 입력 image 전체를 새로운 시점으로 reconstruct하는 것이 아니라, 질문에 필요한 object들의 spatial information만 뽑아서 abstract scene representation을 만드는 것입니다.

두 번째는 perspective change입니다. VLM이 질문을 분석해서 어느 object가 reference object인지 찾습니다. 예를 들어 질문이 “If you stand at the man’s position facing where he’s facing” 이라면 man이 perspective를 바꿔야 하는 reference object가 됩니다. 이후 기존 camera coordinate를 man의 position과 orientation을 기준으로 변환합니다. 쉽게 말하면 원래 카메라를 원점으로 두고 표현되어 있던 scene을, 이제 man을 원점으로 놓고 man이 바라보고 있는 방향이 정면이 되도록 coordinate system을 바꾸는 것입니다.

세 번째는 prompt regeneration입니다. Perspective가 변환된 scene을 VLM이 다시 이해할 수 있도록 새로운 representation으로 만들어줍니다. 앞서 말했듯이 이를 text 형태의 3D coordinate로 줄 수도 있고, object들을 colored box로 표현한 image 형태로 줄 수도 있습니다. 그리고 이 transformed scene과 새로 만들어진 prompt를 VLM에 입력해서 최종 answer를 얻습니다. 여기서 저자가 강조하는 점은 APC가 left/right 같은 특정 allocentric question 하나만을 위해 만들어진 방법은 아니라는 것입니다. 기존 VLM의 egocentric reasoning 능력 자체는 이미 어느 정도 괜찮기 때문에, 어려운 allocentric question을 직접 풀게 하는 대신 Allocentric-to-Egocentric Prompt Conversion 을 수행합니다.결국 기존 문제를 “다른 사람의 시점에서 봤을 때 object A는 어디에 있는가?” 라고 그대로 묻는 것이 아니라, scene의 perspective를 미리 해당 사람 기준으로 바꿔놓고 “현재 perspective에서 object A는 어디에 있는가?” 처럼 VLM이 상대적으로 쉽게 풀 수 있는 문제로 변환하는 것입니다.

VLM 내부에 새로운 perspective reasoning module을 넣거나 fine-tuning을 통해 allocentric reasoning 자체를 학습하는 것이 아니라, 외부 vision foundation model로 explicit한 scene abstraction을 만들고, geometric perspective transformation을 통해 VLM이 원래 잘하는 egocentric reasoning 문제로 바꿔준다는 접근입니다.

실험에서는 COMFORT++와 3DSR-Bench를 사용하고, 다양한 perspective와 spatial reasoning task에서 기존 VLM들을 비교합니다. 기존 VLM들과 spatial reasoning을 위한 framework들은 비교적 단순한 viewpoint change에서도 성능이 크게 떨어지는 반면, APC는 camera perspective에 대한 bias를 상당히 줄이고 좋은 성능을 보였다고 합니다.

Spatial Reasoning with VLMs

Related Work에서는 먼저 VLM의 spatial reasoning 연구들을 정리합니다.

최근 VLM이 많이 발전하면서 단순한 image captioning이나 VQA를 넘어 실제 공간 정보를 이해하고 reasoning하는 연구들도 많이 나오고 있습니다. 그런데 여러 benchmark를 통해 분석해보면 VLM들은 생각보다 기본적인 spatial perception에서도 약한 모습을 보이고, image나 video를 이용한 higher-level spatial reasoning에서도 여전히 성능이 좋지 않다고 합니다. 이를 해결하기 위해 여러 방법들이 제안되어 왔습니다.

예를 들어 SpatialVLM은 spatial cue가 포함된 데이터를 대규모로 합성해서 학습에 사용하고, Cambrian-1은 spatial reasoning 자체를 더 잘할 수 있도록 architecture를 설계합니다.

또 다른 방법들은 VLM에게 RGB image만 주는 것이 아니라, point, depth map, segmentation mask

와 같이 공간적으로 더 명확한 vision-centric information을 추가적으로 주기도 합니다.

이런 경우에는 해당 정보를 VLM이 이해할 수 있도록 fine-tuning을 하거나, 별도의 auxiliary vision encoder를 사용하는 방식이 사용됩니다.

반면 모델 자체를 다시 학습시키기보다는 LLM이나 VLM의 planning 능력을 이용해서 필요할 때 외부 vision module을 호출하는 방식들도 있습니다.

대표적으로 SpatialPIN은 여러 vision foundation model을 이용해서 dense visual prior를 추출한 뒤, VLM이 이 정보를 통합해서 spatial reasoning을 수행하게 합니다. APC도 이런 관점에서는 SpatialPIN과 어느 정도 비슷한 방향이라고 볼 수 있습니다. 즉 하나의 end-to-end VLM이 모든 spatial information을 내부적으로 알아서 추론하도록 하기보다는, Detection, Depth, Segmentation, Orientation estimation 등 이미 잘 만들어져 있는 vision foundation model을 이용해서 explicit한 geometric information을 얻고, 최종 reasoning은 VLM에게 맡기는 modular framework에 가깝습니다.

다만 APC가 기존 방법들과 다른 점은 단순히 spatial information을 풍부하게 제공하는 것에 목적이 있는 것이 아니라, 그 정보를 이용해서 reference perspective 자체를 변환한다는 점입니다.

Visual Perspective-Taking

두 번째로 이 논문의 직접적인 task인 Visual Perspective-Taking, VPT ****관련 연구를 정리합니다.

Visual Perspective-Taking은 말 그대로 다른 사람의 관점이나 다른 camera angle에서 scene을 상상하고 이해하는 능력입니다. 이런 능력은 인간에게는 navigation이나 spatial awareness, social interaction을 위해 자연스럽게 사용되는 능력인데, VLM이 human-like vision agent가 되기 위해서도 필요한 capability라고 합니다. 하지만 최근 연구들을 보면 현재 VLM들은 allocentric perspective로 reference frame을 바꾸는 것을 상당히 어려워하고, 주어진 image의 camera viewpoint 즉 egocentric viewpoint에 강한 bias를 보인다고 합니다. 앞에서 소개했던 COMFORT++은 synthetic data를 이용해서 VLM이 서로 다른 frame of reference를 실제로 이해할 수 있는지를 평가합니다.

또 3DSRBench에서는 real image 기반으로 특정 object의 viewpoint에서 질문하는 task들을 포함하고 있는데, 최근 VLM들도 perspective-related task에서는 거의 랜덤에 가까운 성능을 보였다고 합니다.

즉 최근 VLM이 일반적인 visual reasoning이나 basic spatial reasoning에서는 빠르게 발전하고 있지만,

어느 위치를 기준으로 보는가? 라는 perspective change가 들어가는 순간 성능이 크게 떨어진다는 것입니다.

최근에는 SAT라는 방법이 instruction tuning을 통해 allocentric reasoning을 개선했다고 합니다. 다만 SAT는 annotation이 필요하고, reasoning relation도 left/right에 제한된다는 한계가 있다고 합니다. 그래서 저자는 APC의 차별점을 특정 relation을 학습시키는 것이 아니라 임의의 perspective에서 들어오는 spatial reasoning task를 VLM의 기본 egocentric viewpoint 문제로 reformulation한다는 점으로 잡습니다.

기존 연구들이 “모델을 allocentric reasoning에 강하게 만들어보자”라는 방향이었다면, APC는 굳이 VLM에게 allocentric reasoning 자체를 학습시키지 말고, allocentric problem을 egocentric problem으로 변환하자라는 접근입니다.

Visual Prompting

마지막으로 Visual Prompting 관련 연구를 설명합니다.

Visual Prompting은 text prompt가 LLM에게 instruction을 주는 것처럼, image 자체를 VLM에게 일종의 instruction이나 reasoning aid로 사용하는 방식입니다.

대표적으로 Set-of-Marks는 image의 object에 segmentation mask나 mark를 붙여서 object grounding을 쉽게 만들어줍니다.

Visual Sketchpad는 VLM이 직접 drawing tool 등을 이용해서 image에 annotation을 생성하고, 이를 math problem solving이나 visual search 같은 복잡한 task에 활용합니다.

최근에는 Visual Chain-of-Thought 방식도 많이 등장하고 있습니다. Text CoT처럼 reasoning intermediate step을 text로만 표현하는 것이 아니라, reasoning 과정에서 필요한 intermediate visual representation을 생성해서 다시 VLM에 입력하는 방식입니다. 저자는 이런 visual feedback이 spatial reasoning에서 특히 유용하다고 설명합니다. Text로만 “object A가 object B보다 왼쪽에 있다” 라고 reasoning하는 것보다,실제로 visual cue로 그 관계를 표현해서 다시 VLM에게 보여주면 reasoning이 구체적인 visual information에 grounding될 수 있기 때문입니다.

APC의 visual prompting도 이 아이디어와 연결됩니다. 다만 APC에서는 단순 annotation을 추가하는 것이 아니라, scene abstraction 자체를 reference viewer의 perspective로 변환한 뒤 새로운 abstract image를 render하고, 이를 VLM에게 다시 입력한다는 차이가 있습니다. 즉 visual prompt가 단순히 원본 image를 보조하는 역할이 아니라, perspective-transformed scene 그 자체가 되는 것입니다.

Methodoogy

APC는 크게 Scene Abstraction, Perspective Change, Perspective Prompting의 세 단계로 이루어져 있습니다.

입력으로 image와 perspective-based question이 들어오면, 먼저 질문을 해결하는 데 필요한 object들만 추출해서 coarse한 3D scene abstraction을 만듭니다. 그다음 질문이 어느 object의 perspective에서 주어졌는지를 찾아 해당 object를 reference viewer로 설정하고, 기존 camera coordinate system을 reference viewer 기준의 coordinate system으로 변환합니다. 마지막으로 이렇게 perspective가 변환된 scene을 numerical text 또는 abstract image 형태로 다시 VLM에게 입력해서 최종 spatial reasoning을 수행합니다.

즉 전체적으로 보면

Image + Question → 3D Scene Abstraction → Perspective Change → Perspective Prompt → VLM Answer정도의 pipeline입니다.

여기서 중요한 점은 VLM에게 직접 저 사람 입장에서 생각하라고 시키는 것이 아니라, perspective transformation 자체를 외부에서 명시적으로 수행한 다음 VLM이 원래 잘하는 egocentric reasoning 형태로 문제를 바꿔준다는 것입니다.

3.1 Scene Abstraction

첫 번째 단계에서는 입력 image를 coarse한 3D scene으로 abstraction합니다.

입력 image를 I, spatial reasoning question을 Q라고 할 때 저자는 scene abstraction을 다음과 같이 정의합니다.

ti는 object의 textual description, ci 는 object의 3D position, pi 는 object가 바라보고 있는 orientation을 의미합니다. 즉 굉장히 단순하게 보면 object 하나를 무슨 object인지 어디에 있는지, 어느 방향을 보고 있는지 세가지 정보만으로 abstraction 하는 것입니다. camera 자체도 하나의 object of interest로 포함한다고 합니다.

그리고 저자는 image 안에 있는 모든 object를 전부 3D로 추출하지는 않는다고 합니다. 저자는 이미지와 질문을 VLM에 같이 주고 해당 질문에 대답하기 위해 어떤 object들이 필요한지 먼저 추출하게 합니다. 이렇게 얻어진 object name이 앞서 정의한 ti 입니다.

Building Object Abstractions

이제 추출된 object 각각에 대해 실제 3D position과 orientation을 구합니다.

여기서는 하나의 model로 모든 정보를 얻는 것이 아니라 여러 off-the-shelf vision foundation model을 조합합니다. 먼저 GroundingDINO에 image I와 object description ti를 넣어서 해당 object의 2D bounding box bi를 얻습니다. 그다음 bounding box 영역을 기준으로 SAM을 사용해서 object의 정확한 segmentation mask를 얻습니다. 이후 DepthPro를 사용해서 image의 metric depth map을 추정합니다.

그리고 segmentation mask 내부의 pixel들을 depth 정보를 이용해서 3D space로 unprojection하여 해당 object의 3D point cloud를 만듭니다.

마지막으로 이 point cloud의 median coordinate를 object의 3D position ci로 사용합니다.

쉽게 정리하면

GroundingDINO → Bounding Box
SAM → Object Mask
DepthPro → Metric Depth
Mask + Depth → 3D Point Cloud → Median Coordinate

즉 별도의 monocular 3D object detector를 사용하는 것이 아니라, 2D detection + segmentation + monocular depth estimation을 조합해서 object의 대표 3D 위치를 만드는 방식입니다.

그런데 reference viewer의 perspective로 좌표계를 바꾸기 위해서는 position만으로는 부족합니다. 예를 들어 woman의 위치를 알고 있어도 woman이 어느 방향을 보고 있는지 모르면 woman 기준의 left/right를 정의할 수 없습니다. 그래서 orientation은 OrientAnything을 이용해서 얻습니다. 앞에서 GroundingDINO로 얻은 bounding box를 이용해 object를 crop한 뒤 OrientAnything에 입력하면, camera coordinate system을 기준으로 해당 object의 frontal orientation을 얻을 수 있습니다. 이 값을 pi로 사용합니다.

결과적으로 각 object에 대해 Oi=(name,3D position,orientation) 정보가 만들어지고, 이것들을 모아서 coarse 3D scene abstraction을 완성합니다. 여기까지 보면 APC의 scene abstraction은 꽤 explicit한 pipeline입니다.

VLM 내부 representation에서 geometry가 자연스럽게 나오기를 기대하는 것이 아니라, Detection, Segmentation, Depth, Orientation을 각각 전문 vision model에게 맡기고 그 결과를 하나의 geometric representation으로 합치는 방식입니다.

3.2 Perspective Change

다음은 이 논문의 핵심인 Perspective Change입니다. 앞에서 만든건 아직 camera를 기준으로 한 egocentric scene abstraction입니다.

따라서 먼저 질문이 누구의 perspective에서 주어졌는지, 즉 reference viewer를 찾아야 합니다.

Setting a Reference Perspective

APC는 spatial reasoning question Q를 VLM에게 다시 주고, 어느 object의 관점에서 질문에 답해야 하는지를 추출하게 합니다.

저자는 이렇게 얻은 reference perspective를 A라고 정의합니다.

예를 들어 From the woman’s perspective… 라고 되어 있다면 A=woman 이 되는 것입니다.

여기서 VLM의 역할은 아직 복잡한 spatial reasoning이 아니라 자연어 질문에서 reference entity를 parsing하는 것에 가깝습니다.

Transforming Scene Abstraction

reference viewer A가 결정되면 camera-based scene abstraction Oi를 reference viewer의 egocentric coordinate system으로 변환합니다.

변환된 scene abstraction을 SA라고 합니다. 이때 reference viewer A의 position을 origin으로 두고, A=[0,0,0] reference viewer가 바라보는 orientation을 positive z-axis에 맞춥니다. 즉 reference viewer가 어느 방향을 보고 있었든 transformed coordinate system에서는 항상 Facing direction=[0,0,1] 이 되도록 scene 전체 좌표계를 rotation/translation하는 것입니다. 원래 camera 입장에서 보던 scene을 이제 woman을 원점으로 놓고 woman이 바라보는 방향을 정면으로 만든 것입니다.

이렇게 되면 perspective reasoning 문제가 굉장히 단순해집니다.

원래 VLM에게는 “이 image를 보고 woman의 위치로 mentally 이동한 다음, woman이 바라보는 방향을 고려해서 dog와 chair의 left/right를 판단해라” 라는 문제였다면, APC가 perspective transformation을 수행한 이후에는 “현재 coordinate system에서 dog와 chair 중 어떤 object가 오른쪽에 있는가?” 정도의 egocentric spatial reasoning problem이 됩니다.

즉 이 논문의 가장 중요한 부분은 VLM이 perspective transformation을 잘하도록 학습시키는 것이 아니라, perspective transformation을 geometric preprocessing으로 직접 수행해버린다는 점입니다.

그래서 논문에서는 Mental Imagery Simulation이라는 cognitive motivation을 강조하지만, 실제 method만 놓고 보면

3D Scene Abstraction + Coordinate Frame Transformation

이 핵심이라고 볼 수 있을 것 같습니다. 참고로 여기서도 논문은 transformation matrix 같은 별도의 equation을 제시하지 않습니다. 그냥 camera frame에서 reference viewer frame으로 좌표계를 변환한다고 설명하고 있습니다.

3.3 Perspective Prompting

Perspective change가 끝났으면 이제 transformed scene abstraction SA를 다시 VLM에게 전달해야 합니다. 저자는 이를 Perspective Prompt라고 부르고, 두 가지 방법을 실험합니다.

Numerical PromptVisual Prompt입니다.

Numerical Prompt

첫 번째는 transformed coordinate를 그대로 text로 VLM에게 주는 방식입니다.

Perspective transformation 이후의 object는 Oi′=(ti,ci′,pi′) 로 표현됩니다. 여기서 ci′ 는 reference viewer coordinate system으로 변환된 object position입니다. Figure 5의 예시를 보면 prompt에 아예 coordinate system을 설명해주는걸 볼 수 있습니다.

woman을 기준으로

origin = woman’s position
woman’s facing direction = [0, 0, 1]

x-axis = right
y-axis = up
z-axis = forward

라고 명시한 뒤,

woman : [0, 0, 0]
snowman : [-1.741, -0.707, 1.611]
horse : [0.746, 0.187, 1.08]

처럼 각 object의 좌표를 그대로 제공합니다. 그리고 이 coordinate를 이용해서 원래 question에 답하게 합니다. 즉 Numerical Prompt는 VLM의 numerical/textual spatial reasoning 능력을 이용하는 방식입니다.

사실 여기서 perspective transformation까지 정확하게 완료되었다면 left/right처럼 간단한 relation은 coordinate만 비교해서 rule-based하게 답을 계산할 수도 있습니다.

다만 다시 VLM 에 질문하는 이유는 left/right뿐만 아니라 closer, visibility, facing처럼 서로 다른 spatial question을 동일한 framework로 처리하기 위함이라고 생각하면 될 것 같습니다.

Visual Prompt

두 번째는 transformed scene을 abstract image로 직접 render해서 VLM에게 주는 방식입니다.

Numerical Prompt가 3D coordinate를 text로 전달했다면, Visual Prompt는 같은 coordinate를 image 형태로 표현합니다. 먼저 각 object를 실제 appearance 그대로 reconstruction하는 것이 아니라 동일한 크기의 colored cube로 바꿉니다. 그리고 각 cube를 transformed 3D position ci′에 배치합니다. 이후 reference viewer A의 위치에서 cube들을 바라보도록 scene을 rendering합니다.

즉 woman이 reference viewer라면 실제로 woman의 viewpoint에서 보이는 abstract scene을 생성하는 것입니다.

이렇게 하는 이유는 scene의 texture나 appearance를 복원하는 것이 목적이 아니라 object들의 spatial configuration만 VLM에게 보여주는 것이기 때문입니다. 그래서 novel-view synthesis처럼 실제 새로운 RGB scene을 생성하지 않고, object의 위치 관계만 colored box 형태로 표현합니다. 이게 이 논문의 mental imagery라는 motivation과도 가장 직접적으로 연결되는 부분인 것 같습니다. (완전한 새로운 image를 상상하는 것이 아니라, 필요한 spatial information만 남긴 abstraction을 새로운 perspective에서 보는 것이기 때문)

그런데 이제 rendered image에는 실제 snowman이나 horse가 없고 blue cube와 red cube만 존재해서 원래 question도 그대로 사용할 수 없습니다.

그래서 저자는 object name을 corresponding colored cube로 바꿔서 abstract question Q∗을 만듭니다.

예를 들어 원래 질문이

Which object is located on the left side, the snowman or the horse?

였다면,

abstract question에서는

Which object is located on the left side, the blue cube or the red cube?

처럼 바꿉니다.

VLM은 perspective-transformed abstract image와 Q∗를 보고 blue cube is on the left side of red cube

와 같은 answer를 생성합니다. 그다음 color-object mapping을 이용해서 snowman is on the left side of horse 처럼 다시 원래 object 이름으로 변환합니다.

즉 Visual Prompt에서는

Original Objects → Colored Cubes → Reference-view Rendering → Abstract Question → VLM → Original Object Names

과정을 거친다고 보면 됩니다.

Experiments

저자는 APC가 실제로 perspective-aware spatial reasoning을 얼마나 개선하는지 보기 위해 synthetic benchmark와 real-image benchmark 모두에서 평가합니다.

Backbone VLM은 Qwen2.5-VL을 사용합니다.

실험에서는 제안하는 APC를 단순히 일반 VLM들과 비교하는 것뿐만 아니라,

일반적인 최신 VLM, spatial reasoning을 위해 별도로 학습된 VLM, external vision module을 사용하는 spatial reasoning framework, novel-view synthesis 기반 방법까지 비교합니다.

COMFORT++ 는 syntehtic scene 기반 benchmark이고 camera 가 아닌 reference viewer 의 pserspective 에서 spatial relation을 묻는 방식입니다.

기존의 COMFORT 를 확장해서 네가지 task를 진행했다고 합니다.

3DSRBench 에서는 MS-COCO 기반 real image를 사용하고 allocentric perspective가 필요한 세가지 task를 사용합니다. 원래 3DSRBench 에 있는 front/behind 문제는 동일한 image를 사용해서 visibility question으로 바꿔 평가했다고 합니다. 그리고 색칠된 모델들은 각각 pure vlm 과 spatial reasoning을 위해 별도로 설계되거나 fine tuning된 VLM, 또 APC와는 다른 접근으로 실제 referecnme viewpoint의 새로운 image를 만들어서 reasoning하는 Dense Reconstruction / Novel view syntehsis 방식도 비교합니다.

생각보다 최신 VLM들의 left/right 성능이 굉장히 낮다는게 눈에 띄고 결과가 left 와 right 이 뭔지 몰라서 틀렸을리는 없으니 저자의 주장처럼 camera 기준으로 답하는 경우가 많다고 생각할 수 있을 것 같습니다. VLM 들이 object relation 보다는 perspective change를 못한다는 것을 저자의 제안 방법론이 성능으로써 보여줬다고 생각할 수 있네요. closwer/further 문제의 경우에는 생각보다 성능이 높은 모델들도 존재하는데, 저자도 해당 task는 reference viewer perspective를 완벽하게 이해하지 않아도 맞출 수 있거나, shortcut이 존재할 수 있다고 주장하네요. 이러한 주장이라면 task 별로 camera perspective가 필요한 task 와 아닌 task도 어느정도 구별할 수 있을 것 같습니다. (저자의 방법론 baseline이 qwen2.5 vl 인만큼 모든 모델에서 성능향상이 이루어지긴 했습니다.)

spatial reasoning을 위해 학습된 모델들도 오히려 성능이 더 낮은 부분들도 보이ㅡㄴ데, 저자는 apatialRGPT의 경우 instruction과 무관한 hallucinated response를 생성하는 경우가 많았다고 설명합니다. 반면 저자의 제안 방법론은 굉장히 높은 정확도를 보여주네요.. ( 저자의 방법론의 latency가 생성방법론들보다 높을지 낮을지는 불확실한데 생각보다 성능이 너무 높아서, 새 연구주제로는 고려해봐야겠네요 혹은 합성데이터보다는 아직 실제 데이터에서 성능 마진이 좀 보여서 그쪽으로 생각해도 될 것 같습니다.)

여기서 확인할 수 있는 점은 baseline VLM들이 답을 틀리면서도 reasoning 문장은 상당히 그럴듯하게 생성한다는 것입니다. 예를 들어 cat perspective에서 camel과 chair 중 어느 것이 왼쪽인지 묻는 질문에서 baseline VLM은 image상의 관계를 그럴듯하게 설명하지만 결과적으로 잘못된 answer를 냅니다. 즉 language generation 자체는 자연스러운데, reference perspective가 실제로 바뀌지는 않은 채 camera-centric한 reasoning을 하는 것으로 보입니다.

반면 APC에서는 reference viewer 기준으로 coordinate나 image 자체가 이미 변환되어 있기 때문에, VLM이 별도로 viewpoint transformation을 수행할 필요가 없습니다. 이런 qualitative example을 보면 이 논문에서 말하는 egocentric bias가 좀 더 명확하게 드러나는 것 같습니다.

개인적으로 Table1보다 이 실험이 논문의 problem을 더 잘 보여주는 것 같습니다.

저자는 camera와 reference viewer의 orientation 차이에 따라 VLM 성능이 어떻게 변하는지를 분석했는데, 이를 위해 COMFORT++ 와 비슷한 방식으로 60개의 scene을 만들고, 각 scene을 20개의 서로 다른 방위에서 렌더링합니다. 여기서 세타는 camera orientation과 reference viewer orientation 사이의 offset 이라고 합니다. 즉 0일때 같은 방향을 보고 있는 상태입니다. 즉 거의 egocentric problem 과 동일합니다.

반대로 세타값이 180도라면 마주보고 있는 상황이라 camera와 reference viewer 의 left/right 이 반대가 된다고 생각하면 됩니다.

Left/right 결과를 보면 baseline 모델들이 명확한 bell-shaped curve를 보이는데, 이는 VLM이 기본적인 left/right relation 자체를 이해하지 못하는 것이 아니라 camera와 reference viewer의 orientation 차이가 커질수록 reference perspective를 제대로 반영하지 못한다고 이해할 수 있습니다.

즉 요즘 VLM들에게 단순히 이미지상 object의 left/right를 물어보는 것은 어렵지 않지만, 특정 reference viewer를 기준으로 left/right를 판단하게 되면 단순한 spatial relation을 넘어 reference frame transformation capability가 필요해진다고 볼 수 있습니다.

다만 저자의 제안 방법론이 VLM 자체의 이러한 capability를 직접 개선했다고 보기보다는, reference viewer의 orientation을 항상 egocentric coordinate system으로 변환해서 VLM의 egocentric bias를 간접적으로 우회했다고 생각할 수 있습니다.

Conclusion

결론적으로 저자는 APC가 VLM의 perspective-aware reasoning을 가능하게 하는 framework라고 정리합니다.

핵심 아이디어는 인간의 Mental Imagery process에서 영감을 받아, 입력 image의 scene을 abstract하게 표현한 뒤 allocentric perspective를 egocentric perspective로 변환하는 것입니다.

이를 위해 object detection, segmentation, orientation estimation 등의 vision foundation model을 이용해서 scene abstraction을 구성하고, reference viewer 기준으로 perspective를 변환합니다. 그다음 변환된 scene을 text 형태의 numerical prompt 또는 image 형태의 visual prompt로 다시 VLM에게 전달합니다. 즉 VLM이 직접 allocentric reasoning을 수행하도록 만드는 것이 아니라, VLM이 원래 잘하는 egocentric reasoning 형태로 문제를 바꿔준 뒤 기존 reasoning capability를 활용하는 방식입니다.

저자는 synthetic benchmark와 real-image benchmark 모두에서 APC가 다양한 perspective에 대해 높은 accuracy를 유지했다고 주장하며, 이를 통해 실제 spatial reasoning task에서도 활용 가능성이 있다고 설명합니다.

감사합니다.

Author: 신 인택

Leave a Reply