VLM : 논문리뷰 : ZoomEye: Enhancing Multimodal LLMs with Human-Like Zooming Capabilities through Tree-Based Image Exploration
ZoomEye 논문 학습 노트 (꼼꼼 Ver. - 한국어 기반)
Purpose of the Paper
- Problem: High-resolution images는 주요 물체부터 미세한 details까지 수많은 시각적 요소를 포함합니다. 기존 Multimodal Large Language Models (MLLMs)는 pretrained vision encoder의 제한된 input resolution과 복잡한 context 때문에 이러한 이미지를 처리하는 데 어려움을 겪습니다. 주로 주요 객체에만 집중하고 중요한 details는 간과하는 경향이 있습니다.
- Goal: MLLMs가 사람처럼 zooming capabilities를 모방할 수 있도록 하여, 이미지를 계층적으로 탐색하고, 다양한 scale에서 관련 정보를 capture하며, details에 대한 질문에 정확하게 답할 수 있는 방법을 개발하는 것입니다.
- Novel approach: 이미지를 tree로 표현하고, hierarchical and visual nature of images를 탐색하는 "ZoomEye"라는 tree search algorithm을 제안합니다.
Key Contributions
- ZoomEye Algorithm: MLLMs가 human zooming actions을 모방하여 tree로 표현된 이미지를 탐색할 수 있도록 하는 새롭고, training-free, model-agnostic한 tree search algorithm입니다.
- Novelty: Visual reasoning을 위해 MLLMs 내에서 tree-based search를 처음으로 적용하여, 이전의 text-based applications와 차별화됩니다.
- Hierarchical Image Exploration: 이미지를 tree로 개념화하여, 각 node가 부모 node의 zoomed sub-patch를 나타내도록 합니다. 이를 통해 개요(root)부터 details(leaves)까지 체계적인 탐색이 가능합니다.
- Novelty: Single, down-sampled view에 의존하는 기존 방법과 달리, MLLMs를 위한 hierarchical and visual approach to image understanding을 도입합니다.
- Confidence-Guided Search: Tree search 중 node 선택의 우선순위를 정하기 위해 MLLM 자체에서 파생된 두 가지 유형의 confidence values(existing and latent)를 사용합니다.
- Novelty: 관련 객체를 인지하고 zoomed views에서 그 존재를 추론하는 MLLM 자신의 능력을 평가하여 search를 guide합니다.
- Broad Applicability: 다양한 base MLLMs (0.5B~13B)와 다양한 high-resolution benchmarks에서 일관된 성능 향상을 입증했습니다.
- Novelty: 특정 training이나 architectural modifications 없이 다양한 MLLMs에 적용 가능한 general-purpose method입니다.
Experimental Highlights
- Datasets:
- V* Bench (SA-1B에서 파생): 평균 resolution 2246x1582, attribute recognition 및 spatial reasoning에 중점.
- HR-Bench (DIV8K 및 인터넷에서 파생): 평균 resolution 7680 (HR-Bench 8K) 및 cropped versions (HR-Bench 4K), fine-grained single-instance 및 cross-instance perception 강조.
- MME-RealWorld: 수동으로 annotation, 평균 resolution 2000x1500, real-world applications용.
- Metrics: Benchmarks 내 다양한 sub-tasks에서의 Accuracy.
- Baselines:
- 다양한 open-source 및 closed-source MLLMs.
- AnyRes models.
- V* search.
- DC<sup>2</sup>.
- Key Results:
- 모든 evaluated MLLMs에서 상당한 성능 향상 (예: LLaVA-v1.5-7B는 V* Bench에서 34.57%, HR-Bench에서 17.88% 증가).
- 작은 7B MLLMs가 GPT-4O와 같은 강력한 large models를 능가.
- ZoomEye는 다른 high-resolution processing methods (V* search 및 DC<sup>2</sup>)보다 우수한 성능을 보이고 AnyRes block number의 변화에 robustness.
- ZoomEye는 LLaVA-ov-7B가 이전 state-of-the-arts보다 V* Bench에서 최대 ~10% 더 나은 성능을 얻도록 지원.
Limitations and Future Work
- Limitations:
- Full image와 sub-images 간의 orientation 감지 및 positional relationships 인식 능력 부족.
- Future Work:
- 식별된 orientation 및 positional relationship 이해의 한계점 해결.
- 접근 방식의 잠재력을 더 탐구하고 model의 capabilities 향상.
Overall Summary
ZoomEye는 tree-based image exploration을 통해 MLLMs에 human-like zooming ability를 부여하는 새롭고 효과적인 method입니다. 핵심 아이디어는 MLLMs가 image tree를 따라 검색하여 human zoom in and zoom out actions을 어떻게 시뮬레이션할 수 있는지에 있습니다.
실험 결과는 뛰어난 개선점을 보여주었으며 ZoomEye는 finetuning 없이 모든 MLLMs에 적용할 수 있습니다.
이 연구는 high-resolution images를 처리하는 MLLMs의 한계를 해결하는 새로운 관점을 제공하며, visual reasoning 및 fine-grained image understanding에 대한 추가 연구의 길을 열어줍니다.
쉬운 설명
ZoomEye는 고해상도 이미지 속의 수많은 시각적 요소들을 Multimodal Large Language Models (MLLMs)가 더 잘 이해할 수 있도록 "사람처럼 확대/축소하는 능력"을 부여하는 기술입니다. 이미지를 트리 구조로 보고, 큰 그림(root)에서 시작해서 필요한 정보를 찾을 때까지 세부 영역(leaf nodes)으로 "zoom in" 하는 방식으로, MLLM이 이미지의 중요한 디테일을 놓치지 않고 정확하게 질문에 답할 수 있도록 돕습니다. 마치 사람이 이미지를 볼 때, 전체적인 맥락을 파악하고 필요한 부분을 확대해서 자세히 살펴보는 것과 유사한 원리입니다.
Abstract
이미지, 특히 high-resolution 이미지는 일반적으로 주요 large objects부터 세밀한 detailed objects까지 다양한 visual elements로 구성됩니다. 이러한 이미지를 인식할 때, multimodal large language models (MLLMs)은 pretrained vision encoder의 제한된 input resolution과 이미지의 복잡하고 밀집된 context로 인해 한계에 직면하며, 이는 주요 객체에 초점을 맞추고 세부적인 객체를 간과하기 쉽게 만듭니다.
본 논문에서는 Zoom Eye를 제안합니다. Zoom Eye는 이미지의 hierarchical 및 visual 특성을 탐색하여 관련 정보를 포착하도록 설계된 tree search algorithm입니다. Zoom Eye는 이미지를 트리로 개념화하며, 각 children node는 parent node의 zoomed sub-patch를 나타내고 root는 전체 이미지를 나타냅니다.
또한, Zoom Eye는 model-agnostic하고 training-free 이므로, 모든 MLLMs가 root에서 leaf nodes까지 image tree를 따라 검색하고 관련 정보를 찾아 관련 쿼리에 정확하게 응답함으로써 인간의 zooming actions을 시뮬레이션할 수 있습니다.
일련의 정교한 high-resolution benchmarks에 대한 실험 결과, Zoom Eye는 다양한 base MLLMs의 성능을 큰 폭으로 일관되게 향상시킬 뿐만 아니라 (예: LLaVA-v1.5-7B는 V*Bench에서 34.57%, HR-Bench에서 17.88% 증가), small 7B MLLMs가 GPT-4o와 같은 강력한 large models보다 더 나은 성능을 발휘할 수 있도록 합니다.
Figure 1.
Top: High-resolution 이미지를 처리할 때, MLLMs는 주요 객체를 효과적으로 인식하지만, 제한된 input resolution과 밀집된 이미지 context로 인해 세밀한 details를 인식하지 못하는 경우가 많습니다.
Bottom: Zoom Eye의 confidence values를 적용하면, MLLMs는 질문에 적절하게 답할 수 있을 때까지 이미지 details를 탐색해야 합니다.
1. Introduction
Multimodal large language models (MLLMs)는 pretrained vision encoder의 visual features를 LLM base에 통합하여 vision-language understanding을 용이하게 합니다. 사용 가능한 pretrained vision 및 language modules의 성능이 향상됨에 따라, MLLMs는 최근 몇 년 동안 상당한 발전을 이루었습니다. 동시에, LLMs의 reasoning 능력을 향상시키는 techniques을 활용하여, 일련의 연구들은 MLLMs에서 vision-language reasoning capabilities를 더욱 향상시키기 위해 적용 가능성을 조사하려고 시도합니다.
그러나 이러한 reasoning의 대부분은 text-level이며, reasoning 중에 MLLM에 의한 이미지 인식은 여전히 원래 이미지 자체로 남아 있습니다. 일반적으로 이러한 methods로 처리되는 이미지는 단지 몇 개의 주요 객체로 구성되며, MLLMs는 이러한 "visible" visual elements를 기반으로 텍스트를 생성하여 reasoning을 완료합니다. 그럼에도 불구하고, 많은 이미지, 특히 high-resolution 이미지는 MLLMs에 입력되기 전에 vision encode에 의해 미리 정의된 low resolution(예: 224 × 224)으로 downsampling 되어, 세밀한 details가 모델에 "invisible"하게 됩니다.
AnyRes와 같이 high-resolution 이미지에 vision encoder의 lower resolution을 적용하기 위해 제안된 methods가 있지만, 두 가지 문제가 남아 있습니다. (1) AnyRes는 최대 patches 수(예: 12)를 미리 설정하므로, 이미지 resolution이 이 제한을 초과하면 여전히 downsampling이 필요합니다. (2) high-resolution 이미지는 본질적으로 수많은 visual elements로 구성되며, AnyRes는 수많은 visual tokens를 사용하여 모든 vision elements를 무차별적으로 인식합니다. 따라서 text-level reasoning에만 의존하여 relevant objects를 선택하는 것은 어렵기 때문에 detailed objects는 "인식하기 어렵게" 됩니다.
Figure 1의 상단에 표시된 것처럼, 동일한 이미지에 대해 MLLM은 주요 객체를 정확하게 인식하는 반면, detailed object를 인식하는 데는 어려움을 겪습니다. 정확하게 응답하려면 MLLM은 Figure 1의 하단에 표시된 것처럼 이미지 details를 면밀히 검사하고 관련 정보를 찾아야 합니다. 본질적으로 이는 zoom in 및 zoom out operations을 통해 이미지 details를 탐색해야 합니다.
사람이 high-resolution 이미지에서 중요한 정보를 검색할 때, 일반적으로 전체 이미지를 scanning하는 것으로 시작합니다. 관심 영역을 발견하면 더 자세히 검사하기 위해 점차적으로 zoom in 합니다 (Figure 2 (b) 참조). 원하는 정보를 찾지 못하면 이전 view로 zoom out 하고 다른 영역을 탐색할 수 있습니다 (Figure 2 (c) 참조).
이에 영감을 받아 MLLM에서 유사한 actions을 시뮬레이션하기 위해 이미지를 트리로 구조화하는 것은 매우 논리적입니다. root node는 전체 이미지를 나타내고, child nodes는 parent node의 특정 sub-patches의 zoomed views를 나타내며, node가 깊을수록 zooming 수준이 커집니다. 특정 search algorithms와 결합된 이 트리 구조는 (1) zoomed-in regions을 탐색하여 정보를 수집하고 (node lookahead) (2) 이전 view로 돌아가 다른 regions을 검사할 수 있습니다 (node backtracking). Tree-based search algorithms는 text-only LLM reasoning에 적용되어 우수한 성능을 입증했습니다. 우리가 아는 한, 우리의 작업은 multimodal large language models (LLMs) 내에서 tree-based search를 적용하여 training-free 및 model-agnostic visual reasoning을 달성하는 첫 번째 시도입니다. 밀접하게 관련된 작업은 V* 이며, 유사한 search algorithm을 적용하지만 추가 modules 및 finetuning이 필요합니다.
본 논문에서는 Zoom Eye를 제안합니다. Zoom Eye는 이미지의 hierarchical 및 visual 특성을 통해 MLLMs를 dense image context에서 탐색하는 tree search algorithm입니다. 이 method는 zoom in 및 zoom out actions을 시뮬레이션하여 이미지 details를 검사하고 중요한 정보를 찾습니다. 질문이 주어지면, 채택된 MLLM은 먼저 관련 objects를 식별합니다. 그런 다음 MLLM에게 이러한 relevant objects의 존재를 인식하도록 prompting하여 두 가지 유형의 confidence values를 도입합니다. 이러한 confidence values는 tree search 중에 각 candidate node의 우선 순위를 지정하여 node 선택 순서를 결정하는 데 사용됩니다.
search는 MLLM이 질문에 자신 있게 대답할 수 있을 때 stopping criterion에 따라 종료됩니다. 이 process는 Figure 1의 하단 부분에 설명되어 있습니다. 마지막으로 MLLM은 search 중에 수집된 visual information을 기반으로 final response를 공식화합니다.
우리는 일련의 정교한 high-resolution benchmarks에서 Zoom Eye를 평가합니다. Zoom Eye를 장착한 모든 평가된 models (0.5B∼13B)는 baseline에 비해 이러한 benchmarks의 거의 모든 sub-tasks에서 상당한 성능 향상을 달성하여 우리 approach의 광범위한 적용 가능성과 효율성을 보여줍니다. 예를 들어, Zoom Eye로 보강된 LLaVA-v1.5-7B는 V*Bench에서 34.57%, HR-Bench 4K 및 8K에서 각각 17.12% 및 18.62% 개선되었습니다. Zoom Eye를 사용한 LLaVA-ov-7B는 V*Bench에서 이전 state-of-the-arts보다 약 10% 더 나은 성능을 얻습니다. 또한 실험 결과 분석을 통해 §4.3에 설명된 대로 전체 이미지와 sub-images 간의 방향 감지 및 위치 관계 인식에서 평가된 MLLM의 결함을 식별합니다. 향후 작업에서 이러한 문제를 해결할 계획입니다.
우리의 contributions는 다음과 같이 요약될 수 있습니다. (1) 우리는 이미지의 hierarchical 및 visual 특성을 탐색하도록 설계된 tree search algorithm인 Zoom Eye를 제안하여 MLLMs가 인간의 zooming actions을 시뮬레이션할 수 있도록 합니다. (2) 실험 결과는 Zoom Eye의 광범위한 적용 가능성과 효율성을 보여주고, error samples 분석은 채택된 MLLM의 고유한 결함을 드러내며, 이는 향후 개선될 수 있습니다. (3) 추가 실험을 수행하여 Zoom Eye가 다른 high-resolution processing methods보다 성능이 우수할 뿐만 아니라 AnyRes models에 적용할 때 AnyRes blocks 수의 변화에 대한 robustness를 나타냄을 보여줍니다.
Zoom Eye 논문 Introduction 정리 노트 (AI 연구자 대상)
핵심 문제 제기
- High-resolution 이미지, MLLMs는 detail을 놓친다!: 기존 MLLMs는 pretrained vision encoder의 제한된 input resolution과 복잡한 이미지 context 때문에 high-resolution 이미지의 주요 객체는 잘 인식하지만, 세밀한 detail은 놓치기 쉽다. (downsampling 문제, "invisible" details)
- Text-level reasoning의 한계: 기존의 reasoning 방식은 대부분 text-level에서 이루어지며, 이미지는 여전히 "원본" 그대로 인식된다. 즉, 이미지 내의 "visible" 한 요소에만 의존하게 된다.
- AnyRes의 한계점: high-resoultion 이미지를 다루기 위한 방법으로 제시되었지만 2가지 문제점을 지님.
- 최대 patch 개수 제한으로 인해 이미지 해상도가 높으면 여전히 downsampling 필요
- 수많은 visual elements를 무차별하게 인식하여 relevant objects 선별이 text-level reasoning에만 의존하게 됨.
Zoom Eye 솔루션 제안
- 핵심 아이디어: Zoom In & Out!: 사람이 high-resolution 이미지에서 정보를 찾는 방식을 모방 (전체 스캔 → 관심 영역 zoom in → 정보 없으면 zoom out).
- Image Tree 구조: 이미지를 hierarchical tree 구조로 표현 (root: 전체 이미지, child: zoomed sub-patches, deeper node = more zoom).
- Tree Search Algorithm:
- Node Lookahead: zoomed-in regions 탐색, 정보 수집.
- Node Backtracking: 이전 view로 돌아가 다른 regions 검사.
- Model-Agnostic & Training-Free: 어떤 MLLM에도 적용 가능, 추가 training 불필요.
- Confidence Values: MLLM에게 relevant objects 존재를 prompting하여 confidence values 도입 → tree search 시 node 선택 우선순위 결정.
- V** 과의 차별성** : V*은 추가 모듈과 파인튜닝이 필요하지만, Zoom Eye는 그렇지 않다.
실험 결과 (주요 내용)
- 성능 향상: 다양한 MLLMs (0.5B∼13B)에서 상당한 성능 향상 (e.g., LLaVA-v1.5-7B: V*Bench 34.57%↑, HR-Bench 17.12% & 18.62%↑).
- SOTA 능가: LLaVA-ov-7B + Zoom Eye, V*Bench에서 기존 SOTA 모델들보다 10% 우수.
- MLLM Deficiencies 발견: 방향 감지, 전체-부분 이미지 간 위치 관계 인식의 문제점 발견 (향후 연구 과제).
Contributions
- Zoom Eye: hierarchical & visual 특성 탐색 tree search algorithm 제안, MLLMs의 human-like zooming actions 가능.
- 실험적 검증: Zoom Eye의 광범위한 적용 가능성 & 효율성 입증, MLLM의 내재적 결함 발견.
- 추가 실험: Zoom Eye, 다른 high-resolution processing methods 능가, AnyRes models에서 robustness 입증.
쉬운 설명 :
Introduction 섹션에서는 기존의 AI 모델(MLLMs)이 고해상도 이미지를 볼 때, 마치 눈이 나쁜 사람처럼 큰 물체는 잘 보지만 작은 글씨나 세밀한 부분은 잘 보지 못하는 문제를 이야기하고 있습니다.
이를 해결하기 위해, 이 논문에서는 "Zoom Eye"라는 새로운 기술을 제안합니다. Zoom Eye는 사람이 돋보기를 사용하여 작은 글씨를 확대해서 보거나, 지도를 볼 때 전체를 훑어보다가 특정 지역을 확대해서 자세히 보는 것처럼 작동합니다.
Zoom Eye는 이미지를 나무(tree)처럼 구성합니다. 전체 이미지가 나무의 뿌리(root)라면, 확대된 부분들은 가지(child nodes)가 됩니다. Zoom Eye는 이 나무를 따라 AI 모델이 필요한 정보를 찾을 때까지 확대/축소를 반복하면서 이미지의 세밀한 부분까지 꼼꼼하게 살펴볼 수 있게 해줍니다.
결론적으로, Zoom Eye 덕분에 AI 모델은 고해상도 이미지에서도 작은 부분까지 놓치지 않고 더 정확하게 내용을 파악할 수 있게 됩니다.
2. Preliminary
이 섹션에서는 MLLMs에서 널리 채택되는 image preprocessing methods와 image-text input 방식에 대해 간략하게 설명합니다.
Image preprocessing.
주어진 이미지 I에 대해, naive processing 방식은 단순히 이미지를 미리 설정된 fixed resolution으로 resize 한 다음 vision encoder에 넣어 visual representations 집합을 생성하는 것입니다. 이는 다음과 같이 공식화할 수 있습니다.
v = F(R(I)) = (v1, v2, ..., vLv)
여기서 F는 vision encoder, R은 resolution resize operation, Lv는 visual representations의 개수입니다. naive version의 고정되고 제한된 input resolution의 제약으로 인해 AnyRes라는 다른 method가 도입되었습니다. AnyRes는 원본 이미지를 여러 개의 동일한 면적의 blocks로 나누고 나누어진 blocks의 수에 최대 제한 M을 부과합니다. 그런 다음 vision encoder는 각 block과 전체 이미지를 독립적으로 encodes 합니다. 마지막으로, encoding 된 모든 visual representations이 함께 통합됩니다. 이를 통해 encoder의 pre-trained 설정을 변경하지 않고도 다양한 resolutions를 유연하게 처리할 수 있습니다.
I(0)를 전체 이미지로, {I(1), ..., I(a)} (a ≤ M)를 blocks로 표시하면, AnyRes는 다음과 같이 공식화할 수 있습니다.
v = F(A(I)) = [v0, v1, ..., va]
여기서 A는 AnyRes operation을 나타내고 vi = F(R(I(i))) = (v(i,1), v(i,2), ..., v(i,Lv)), i = 0, 1, ..., a입니다. a = 0일 때 naive method는 AnyRes의 특별한 경우로 간주될 수 있다는 점에 유의해야 합니다.
Image-Text joint input for MLLM.
일반적인 MLLMs는 projection 또는 alignment modules를 통해 vision encoder를 pre-trained LLM에 연결하여 LLM base의 autoregressive capabilities를 통해 language generation을 허용합니다. 구체적으로, 이미지 I와 input prompt x가 주어지면, I는 먼저 이전 sub-section에서 설명한 대로 visual representations 집합으로 encoding 됩니다. 그 후, 이러한 visual representations는 text input과 함께 MLLM의 LLM base에 입력됩니다.
output sequence와 text input의 길이를 각각 Ly와 Lx라고 가정하면, MLLM Φθ가 visual input F(·(I)) = (v(0,1), ..., v(a,Lv))와 text input x = (x1, x2, ..., xLx)를 조건으로 output y = (y1, y2, ..., yLy)를 생성할 확률은 다음과 같습니다.
Φθ(y|F(·(I)), x) = QLy (i=1) Φθ(yi | v(0,1):(a,Lv), x1:Lx, y1:i-1)
여기서 F(·)는 naive resize의 경우 F(R)을, AnyRes의 경우 F(A)를 나타낼 수 있습니다.
Zoom Eye 논문 Preliminary 정리 노트 (AI 연구자 대상)
핵심: MLLMs의 Image Preprocessing 및 Input 방식
- Naive Image Preprocessing:
- 이미지를 고정된 해상도로 resize → vision encoder 통과 → visual representations 생성.
- 문제점: 고정된, 제한된 해상도로 인해 정보 손실 발생 가능성.
- AnyRes:
- 이미지를 여러 개의 동일 면적 block으로 분할, block 개수에 제한(M)을 둠.
- 각 block 및 전체 이미지를 vision encoder로 개별 encoding.
- Encoding된 visual representations 통합.
- 장점: 다양한 해상도 유연하게 처리, encoder pre-trained 설정 변경 불필요.
- Naive 방식은 AnyRes의 특별한 경우 (block 분할 X).
- MLLM Image-Text Joint Input:
- Vision encoder → visual representations (Naive or AnyRes).
- Visual representations + text input → MLLM (projection/alignment module 통해 연결).
- LLM base의 autoregressive capabilities → language generation.
- 수식: MLLM의 output 생성 확률 표현 (일반적인 MLLM 구조).
이 논문만의 핵심:
- AnyRes를 활용한 유연한 이미지 처리: Zoom Eye가 high-resolution 이미지를 다루는 방식(tree search)의 기반 기술.
- MLLM 입력 방식: Zoom Eye가 MLLM과 어떻게 결합되는지 (visual representations 활용) 보여주는 부분.
쉬운 설명 :
Preliminary 섹션에서는 AI 모델(MLLMs)이 이미지를 처리하고, 이미지와 텍스트를 함께 입력받는 방식에 대한 기본적인 내용을 설명합니다.
- 이미지 전처리 (Image Preprocessing):
- Naive 방식: 이미지를 정해진 크기로 무조건 줄입니다 (예: 사진 크기를 무조건 작게 만드는 것).
- 문제점: 사진이 너무 크면 정보가 많이 손실될 수 있습니다.
- AnyRes 방식: 이미지를 여러 개의 작은 조각(block)으로 나누고, 각 조각과 전체 이미지를 따로따로 처리합니다.
- 장점: 사진 크기에 상관없이 유연하게 처리할 수 있고, AI 모델이 원래 학습했던 방식을 그대로 사용할 수 있습니다.
- Naive 방식: 이미지를 정해진 크기로 무조건 줄입니다 (예: 사진 크기를 무조건 작게 만드는 것).
- MLLM의 입력 (Image-Text Joint Input):
- 이미지는 위에서 설명한 방식(Naive 또는 AnyRes)으로 처리되어 AI 모델에게 전달됩니다.
- 텍스트(질문이나 설명)도 함께 AI 모델에게 전달됩니다.
- AI 모델은 이미지와 텍스트 정보를 모두 사용하여 답변을 생성합니다.
핵심: 이 논문에서는 AnyRes 방식을 사용하여 이미지를 처리하고, 이렇게 처리된 이미지 정보를 AI 모델에 넣어 Zoom Eye 기술을 구현합니다.
3. Methodology
이 섹션에서는 Zoom Eye algorithm을 소개합니다. 먼저 일반적인 tree search algorithm을 간략하게 설명합니다. 그런 다음 tree search algorithms의 구성 요소를 자세히 초기화하여 구현에 대해 자세히 설명합니다.
3.1. Abstraction of Tree Search
Tree node. 일반적으로 트리 구조의 노드는 다음 attributes로 구성됩니다.
- id: 노드의 고유 식별자.
- depth: 트리 내에서 노드의 레벨을 나타냅니다.
- value: 노드에 숫자 또는 텍스트 데이터를 저장하는 데 사용됩니다.
- children: 노드의 children nodes에 대한 참조 목록으로, 트리 구조의 순회를 용이하게 합니다.
- 기타 custom attributes
Tree search. tree search algorithm의 추상화는 튜플 (T, Q, R, S)로 모델링할 수 있습니다. 여기서 T는 노드 집합으로 구성된 tree structure, Q는 다음 검색 단계에서 액세스할 수 있는 모든 노드를 보유하는 container, R은 사용된 search algorithm에 따라 가장 높은 우선 순위 노드를 선택하는 데 사용되는 ranking function, S는 stopping criterion을 나타냅니다. 추상적인 검색 프로세스는 Algorithm 1에 나와 있습니다.
트리에서 값이 5인 노드를 DFS 검색하는 예를 생각해 보겠습니다. 이 경우 R은 Q의 노드를 depth의 내림차순으로 정렬하고 depth가 같으면 id의 오름차순으로 정렬하는 함수입니다. 한편, S는 노드의 값이 5와 같은지 확인하는 함수입니다.
Zoom Eye search의 구체적인 구현에는 세 가지 주요 질문이 있습니다. 1. 이미지를 트리 T로 공식화하는 방법(§3.2). 2. ranking function R을 설정하는 방법(§3.3). 3. stopping criterion S를 결정하는 방법(§3.4). 마지막으로 §3.5에서 전체 알고리즘에 대한 설명을 제공합니다.
3.2. Tree Representation for Image
전체 이미지를 트리 T로 모델링합니다. 특정 노드 nt는 image patch view {I, bt}를 나타냅니다. 여기서 I는 이미지이고 bt = (x1,t, y1,t, x2,t, y2,t)는 normalized bounding box coordinates입니다. nt의 image patch 크기가 image encoder에 의해 미리 정의된 resolution을 초과하면 4개의 동일한 크기의 sub-patches로 더 나눌 수 있으며, 이는 크기가 4인 children 역할을 합니다. 노드는 resolution 제한을 충족할 때까지 재귀적으로 분할됩니다. 검색 시작 시 전체 이미지를 나타내는 root node T.root = {I,(0, 0, 1, 1)}가 방문됩니다.
그러나 high-resolution images의 detailed 특성과 vision encoder의 fixed resolution으로의 downsampling으로 인한 정보 손실로 인해 MLLMs는 처음에 이미지의 핵심 부분을 정확하게 캡처하는 데 어려움을 겪는 경우가 많습니다. 따라서 MLLMs는 보다 집중된 정보를 위해 현재 view를 지속적으로 scan하고 zoom in(즉, 더 깊은 노드 탐색)할 수 있어야 합니다. 구현에서 MLLMs가 nt로 표현되는 local patch를 인식할 수 있도록 하는 두 가지 image input methods를 고려합니다. (1) Local Input: local patch만 제공되며, naive image preprocessing method를 사용하는 이전 single-image input MLLMs에 적합합니다. (2) Global+Local Input: global image와 local patch가 모두 입력되며, AnyRes preprocessing method를 사용하는 고급 MLLMs에 이상적입니다.
이 경우, Figure 3과 같이 local focus를 강조하기 위해 빨간색 사각형과 함께 visual prompt를 사용하고, global image에는 naive processing을, local patch에는 AnyRes를 적용합니다. V(nt)를 final image input으로 표시하면 다음과 같습니다.
V(nt) = ( [F(R(I.crop(bt))] Local [F(R(I)), F(A(I.crop(bt))] Global+Local (1)
Algorithm 2 Ranking Function & Stopping Criterion
Require: Φθ, W, {pe, pl, pa}, τ, o, qs
1: function R(n1, n2) ▷ Ranking Function 2: return GET PRIORITY(n1) > GET PRIORITY(n2) 3: end function 4: 5: function S(nt) ▷ Stopping Criterion 6: ca ← LOGITS RATIO(nt, pa(qs)) 7: return ca ≥ τ 8: end function 9: 10: function GET PRIORITY(nt) 11: if nt.priority is None then 12: ce ← LOGITS RATIO(nt, pe(o)) 13: cl ← LOGITS RATIO(nt, pl(o)) 14: α ← W(nt.depth) ▷ weighted factor 15: nt.priority ← α · cl + (1 − α) · ce 16: return nt.priority 17: end function 18: 19: function LOGITS RATIO(nt, x) 20: z1 ← Φθ(y = Yes | V(nt), x) 21: z2 ← Φθ(y = No | V(nt), x) 22: z ← (softmax(z1, z2)[0] − 0.5) × 2) 23: return z ▷ z ∈ (−1, 1) 24: end function
3.3. Ranking Function
Algorithm 1과 같이 R은 priority value로 노드를 rank하여 다음 단계에서 방문할 노드를 결정하는 데 사용됩니다. 잘 정의된 R은 search process를 전략적으로 조정합니다. Zoom Eye에서는 MLLM을 채택하여 priority value를 계산하고 R을 사용하여 노드를 값으로 정렬합니다. 구체적으로, o를 질문에 답하는 데 중요한 visual cue라고 하면, MLLM은 다음과 같은 기능을 가져야 합니다. (1) visible view 내에 o가 존재하는지 여부를 인식할 수 있습니다. (2) o가 작은 영역을 차지하고 명확하게 보이지 않으면, common sense knowledge를 활용하여 추가 zooming을 통해 o를 식별할 수 있는지 여부를 추론할 수 있습니다. 따라서, 우리는 이 두 가지 기능을 트리거하기 위해 두 개의 prompts pe(o)와 pl(o) (예: "Is there a o in the sub-patch?", "Is it possible to find a o by further zooming the sub-patch?")로 MLLM을 쿼리하고, 토큰 "Yes"와 "No"의 next-word probability 비율을 priority values로 사용합니다. 우리는 이 두 값을 existing confidence와 latent confidence라고 하며, 각각 ce와 cl로 표시합니다.
노드의 전체 priority value는 ce와 cl의 weighted sum입니다. 우리는 노드의 depth와 관련된 weight function W(d)를 도입합니다. depth가 얕으면(zooming이 최소화됨) MLLM이 cue를 명확하게 인식하지 못할 수 있으므로 cl에 더 많은 가중치를 할당합니다. depth가 증가함에 따라 ce에 더 많은 가중치를 부여합니다. 마지막으로, Algorithm 2와 같이 ranking function R은 전체 priority value로 노드를 rank 하기 위해 도입되었습니다.
3.4. Stopping Criterion
Zoom Eye는 MLLM이 현재 view가 제공된 질문 qs에 답하기에 충분하다는 feedback을 제공하면 search process를 종료합니다. 구체적으로, 우리는 prompt pa(qs) (예: "Could you answer qs now?")로 MLLM을 쿼리하고 §3.3에 설명된 것과 동일한 방법을 사용하여 긍정적인 feedback을 정량화합니다. 이를 answering confidence라고 하며 ca로 표시합니다. ca가 미리 정의된 임계값 τ를 초과하면 search가 종료됩니다. S의 구현은 Algorithm 2에 나와 있습니다.
3.5. Overall Search Algorithm
위의 표기법을 사용하여 이제 주어진 image-question pair (I, q)에 대해 Zoom Eye가 작동하는 방식을 설명합니다. 전체 algorithm workflow는 Appendix A.4에 나와 있습니다.
Generating visual cues to guide the search. search 전에 MLLM은 q를 해결하는 데 필수적인 visual cues를 미리 정의하여 이러한 cues를 기반으로 targeted and guided search를 가능하게 해야 합니다. 우리는 MLLM의 LLM base에서 in-context capability를 활용하여 visual cues를 생성하기 위한 접두사로 일련의 contextual examples를 사용합니다. 궁극적으로 MLLM은 q와 관련된 k개의 visual cues {o1, ..., ok}를 생성합니다. 각 oi (i ∈ {1, ..., k})는 두 가지 유형으로 분류할 수 있습니다. (type 1) 단일 인스턴스 검색이 필요한 경우, (type 2) 이미지에서 모든 인스턴스를 식별해야 하는 경우.
Searching for cues. 각 cue oi (i ∈ {1, ..., k})에 대해 Zoom Eye는 image tree를 탐색하여 관련 visual information을 캡처합니다. type 1 cues를 검색할 때 search는 R로 안내되고 S를 충족하는 즉시 종료된 다음 현재 노드가 목록 L에 기록됩니다. Table 1의 1행과 같이 단일 type 1 clue의 경우 S에 적용된 qs는 input question q입니다. Table 1의 2행과 같이 여러 type 1 clues가 생성되면 각 cue에 특정한 "what is the location of the {oi}?"와 같은 decomposed question template pdq(oi)를 도입합니다. 이 경우 oi에 적용된 qs는 pdq(oi)입니다. Table 1의 3행과 같이 type 2 cue가 생성되면 S가 적용되지 않고 전체 트리를 검색하여 충분한 existing confidence를 가진 모든 노드를 L에 추가합니다.
Answering the question using the searched cues. 검색된 노드 L = {n*1, ..., n*K}가 주어지면 MLLM은 이러한 노드의 정보를 합성하여 input question q에 대한 응답을 공식화합니다. b*i = (x*1,i, y*1,i, x*2,i, y*2,i)를 n*i (i ∈ {1, ..., K})의 bounding-box로 표시하면, L의 모든 노드의 bounding-box coordinates를 통합하여 union bounding-box b* = (mini x*1,i, mini y*1,i, maxi x*2,i, maxi y*2,i)를 만듭니다. 두 가지 image input methods의 경우 Eq. 1을 적용하여 q와 함께 focused region b*를 모델에 공급하고 final response를 도출합니다.
Zoom Eye 논문 Methodology 정리 노트 (AI 연구자 대상)
핵심: Tree Search 기반의 Zooming 메커니즘
- 기존 Tree Search Algorithm 추상화: (T, Q, R, S)
- T: Tree structure (nodes 집합).
- Q: 다음에 접근할 가능성이 있는 nodes를 담는 container.
- R: Ranking function (우선순위 기반 node 선택).
- S: Stopping criterion (검색 중단 조건).
Zoom Eye의 Tree Search 구현 (핵심)
- Tree Representation for Image (T):
- 전체 이미지 = Tree.
- Node = image patch view {I, bt} (bt: normalized bounding box).
- Resolution 제한 초과 시 → 4개의 sub-patches (children, size=4)로 분할 (recursive).
- 두 가지 Image Input Methods:
- Local Input: Local patch만 제공 (이전 single-image input MLLMs).
- Global+Local Input: Global image + local patch (AnyRes 사용 MLLMs, Figure 3).
- 핵심: Local focus 강조 (red rectangle visual prompt), Global: Naive processing, Local: AnyRes.
- 최종 Image Input 식 (V(nt)).
- Ranking Function (R):
- 목표: 다음에 방문할 node 결정 (priority value 기반).
- MLLM 활용:
- 필요한 MLLM Capabilities:
- Visual cue (o) 존재 여부 인식 (visible view 내).
- o가 작고 불분명 → zooming으로 식별 가능한지 추론 (common sense knowledge).
- Two Prompts: pe(o) (existing), pl(o) (latent) → 위 capabilities trigger.
- Confidence Values: "Yes", "No" next-word probability ratio → existing confidence (ce), latent confidence (cl).
- 필요한 MLLM Capabilities:
- Priority Value: ce, cl의 weighted sum (weight function W(d): node depth 관련).
- Shallow depth: cl에 더 큰 가중치 (zoom in 필요).
- Deep depth: ce에 더 큰 가중치.
- Algorithm 2: Ranking Function 및 LOGITS RATIO 계산 함수.
- Stopping Criterion (S):
- 조건: MLLM이 현재 view가 질문(qs)에 답하기 충분하다고 판단 → search 종료.
- Prompt: pa(qs) → answering confidence (ca) 계산 (LOGITS RATIO와 동일한 방식).
- ca ≥ τ (threshold) → search 종료.
- Algorithm 2: Stopping Criterion 함수.
- Overall Search Algorithm:
- Visual Cues 생성:
- MLLM (in-context capability 활용) → question (q) 해결에 필요한 visual cues {o1, ..., ok} 생성.
- Cue Types:
- Type 1: Single instance 검색.
- Type 2: 모든 instances 식별.
- Table 1: Visual cues 및 types 예시.
- Cues 검색:
- 각 cue (oi)에 대해 image tree 탐색.
- Type 1: R로 search, S 만족 시 종료 → searched nodes list (L)에 기록.
- Single cue: qs = input question (q).
- Multiple cues: decomposed question template pdq(oi) 사용, qs = pdq(oi).
- Type 2: S 미적용, 전체 tree search → sufficient existing confidence nodes → L.
- Answering the Question:
- Searched nodes (L) 정보 종합 → input question (q)에 대한 response 공식화.
- Union bounding-box (b*) 생성 (L의 모든 nodes bounding-box coordinates 통합).
- Focused region (b*) + q → models (Eq. 1, two image input methods) → final response.
- Visual Cues 생성:
쉬운 설명 :
Methodology 섹션에서는 Zoom Eye가 실제로 어떻게 작동하는지 자세하게 설명합니다.
- 이미지를 나무로 표현하기:
- 전체 이미지를 뿌리(root)로 하고, 확대된 각 부분을 가지(child nodes)로 하는 나무(tree)를 만듭니다.
- 각 가지는 이미지의 특정 영역(image patch)을 나타냅니다.
- AI 모델은 이 나무를 따라 이동하면서 필요한 정보를 찾습니다.
- 어떤 부분을 확대할지 결정하기 (Ranking Function):
- AI 모델에게 "이 부분을 확대하면 질문에 답하는 데 도움이 될까?"라고 물어봅니다. (prompt 사용)
- AI 모델은 "Yes" 또는 "No"로 대답할 확률을 계산합니다. (confidence values)
- 이 확률값을 기반으로 어떤 부분을 먼저 확대할지 결정합니다. (priority value)
- 언제 멈출지 결정하기 (Stopping Criterion):
- AI 모델에게 "지금 보이는 정보로 질문에 답할 수 있어?"라고 물어봅니다.
- AI 모델이 "Yes"라고 확신하면 (answering confidence가 특정 값 이상) 멈춥니다.
- 전체 과정:
- AI 모델은 질문에 답하기 위해 필요한 정보(visual cues)가 무엇인지 먼저 파악합니다.
- 이 정보를 찾기 위해 이미지 나무를 탐색합니다. (확대/축소 반복)
- 필요한 정보를 모두 찾으면, 이를 종합하여 질문에 대한 최종 답변을 만듭니다.
핵심: Zoom Eye는 AI 모델이 사람처럼 이미지를 확대/축소하면서 필요한 정보를 찾고, 이를 바탕으로 질문에 답할 수 있도록 하는 기술입니다.
Zoom Eye 전체 과정 요약 (Details 추가):
- 전체 이미지(Root Node)에서 시작:
- Input: 이미지(I), 질문(q).
- MLLM에게 질문(q)에 관련된 visual cues {o1, ..., ok}를 생성하도록 요청 (in-context learning 활용).
- Visual Cue 존재 여부 및 Zooming 필요성 판단 (Ranking Function):
- 현재 노드 (처음에는 root node, 즉 전체 이미지)에 대해 Ranking Function을 적용.
- Existing Confidence (ce): 현재 view에서 visual cue(o)가 보이는지 MLLM에게 질문 (prompt: pe(o)).
- Latent Confidence (cl): 현재 view에서 visual cue가 명확히 보이지 않으면, zooming in 했을 때 찾을 수 있을지 MLLM에게 질문 (prompt: pl(o)).
- ce와 cl 값을 조합하여 현재 노드의 priority value 계산.
- 현재 노드 (처음에는 root node, 즉 전체 이미지)에 대해 Ranking Function을 적용.
- 답변 가능성 판단 (Stopping Criterion):
- 현재 노드에 대해 Stopping Criterion을 적용.
- Answering Confidence (ca): 현재 view에서 질문(q)에 답할 수 있는지 MLLM에게 질문 (prompt: pa(qs)).
- ca가 threshold (τ) 이상이면 → 탐색 종료, 현재까지의 정보로 답변 생성.
- Zooming In (자식 노드 생성):
- Stopping Criterion 불만족 (ca < τ) & Ranking Function에서 zooming in 필요 판단 (latent confidence 높음):
- 현재 노드를 4개의 동일한 크기의 sub-patches (자식 노드)로 분할.
- Stopping Criterion 불만족 (ca < τ) & Ranking Function에서 zooming in 필요 판단 (latent confidence 높음):
- 다음 노드 선택 (Ranking Function):
- 4개의 자식 노드 각각에 대해 Ranking Function 적용 (2번 과정 반복).
- Priority value가 가장 높은 자식 노드를 다음 탐색 노드로 선택.
- Backtracking(X) -> Latent Confidence
- Zoom Eye는 명시적인 백트래킹은 없지만, latent Confidence가 높으면 해당 노드와 자식노드에 대해 우선순위가 높아진다.
- 반복 및 종료:
- Stopping Criterion이 만족될 때까지 2-5 과정 반복.
- Type 1 visual cue: Stopping Criterion 만족 즉시 종료.
- Type 2 visual cue: 전체 tree 탐색 (Stopping Criterion 미적용), 조건을 만족하는 모든 노드 수집.
- 수집된 정보(searched nodes)를 종합하여 최종 답변 생성.
빠진 디테일:
- Visual Cues 생성: 1번 과정 전에 MLLM이 질문에 기반하여 visual cues를 생성하는 과정이 필요.
- Type 1 vs. Type 2 Visual Cues: Visual cue의 종류에 따라 search 방식과 종료 조건이 달라짐.
- Decomposed Questions: 복잡한 질문은 여러 개의 visual cues와 decomposed questions로 분해될 수 있음.
- Latent confidence: Latent Confidence는 백트래킹은 아니지만, 간접적으로 MLLM이 다시 부모노드로 돌아가거나, 형제 노드를 탐색하는 효과를 줌.
이러한 디테일을 추가하면 Zoom Eye의 전체 과정을 더 정확하게 이해할 수 있습니다.
1. 전체 이미지로 충분히 답이 되면 그냥 QA시킴.
2 . 답이 안되면 1번으로 가기전에 비주얼 큐를 생성
3. 전체이미지를 4개의 patch로 나눔.
4. 각 patch마다 2번의 질문을 통해 우선순위를 구함.
5. 각 patch를 방문하여 사이즈를 계산. 충분히 LLM이 찾을 수 있는 정보임에도 VLM에 넣지 못하면 또 patch를 4개로 나눔 . 반면에 VLM에 넣을 수 있는 patch라면 그냥 넣고 바로 QA를 시킴. 근데 QA전에 여기 답을 할 수 있는지 물어보고 Yes인 경우에만 QA를 시킴.
이 과정 반복.