안녕하세요 오늘은 MLLM이 작은 글자나 숫자 같은 세부 정보를 잘 읽지는 못하지만, 의외로 어디를 봐야 하는지는 알고 있을 수 있다! 라는 주장을 하는 논문을 가져왔습니다!
논문의 저자들은 모델 내부의 어텐션과 gradient를 이용하는 방법인 ViCrop이라는 방법을 제안했습니다.
각 주장들에 대한 실험들이 촘촘한거 같아서 굉장히 집중해서 읽게 된 논문인데, 모델이 필요한 위치를 어떻게 찾는지, 그리고 그 정보를 실제 crop에 어떻게 활용하는지를 중심으로 살펴보겠습니다!
리뷰 시작하겠습니다~!!
INTRO
저자들의 출발점은 매우 단순합니다! 같은 대상이라도 이미지 안에서 작게 보이면 MLLM훨씬 못 본다가 시작인데, 예를 들자면 이미지 간판이 분명 존재하긴 하지만 이미지 상에서 아주 작게 차지하고 있다면 모델은 간판이 있다는 사실이나 간판에 쓰인 글자 같은 것들을 제대로 답하지 못합니다. 하지만 반대로 그 간판 주변을 잘라서 크게 확대해 주면 갑자기 잘 맞추게 되죠! 이 부분에 대해 저자들은 모델이 전반적인 장면들은 잘 이해하더라도 작은 글자나 작은 물체 같은 좀 세부 속성과 관련된 fine-grained visual evidence에는 취약하다고 합니다.
저자들은 처음에는 MLLM이 다양한 이미지와 객체 사이즈로 사전학습 되었으니 동일한 물체가 작게 등장한다고 해서 답변이 크게 달라지지 않을것이라고 직관적으로 예상했습니다
하지만 실제 MLLM의 입력은 원본 이미지가 들어오면 해상도도 resize되고 패치 토큰화 되기 때문에 원본에서 작게 보이던 대상은 매우 적은 수의 패치에만 담기거나 세부 정보가 거의 사라질 수 있습니다. 따라서 같은 물체라도 전체 이미지에서 차지하는 크기가 작아질수록 모델이 읽어낼 수 있는 시각 정보도 함께 줄어들 수 있다고 합니다
저자들은 같은 질문이라도 정답이 되는 대상이 이미지에서 작게 보이면 MLLM의 성능이 실제로 떨어지는지에 대해 확인해 보았습니다. 앞서 말한 것 처럼 동일한 이미지와 질문을 주고 정답 영역을 crop해서 해당부분을 크게 모델에 보여주는 실험을 진행했고, 그 결과 정답과 관련된 부분만을 크게 확대해 주면 답을 잘 맞히는 현상을 확인 했습니다.
저자들은 crop이후 성능이 크게 오른 것에 대해 질문의 난이도나 종류의 이슈가 아닌 정답에 관련된 대상이 작게 표현된 것 자체가 선능 저하의 원인 이라고 봅니다

이 미니 진단실험을 위의 fig1로 살펴보겠습니다. 제일 왼쪽 실험은 표지판이 전체 입력에서 얼마나 크게 표현되는지에 따라 모델이 옳은 정답을 할 확률이 높아지는 것을 볼 수 있습니다.
중간 부분의 실험은 새의 종류를 묻는 질문으로, 처음에는 새의 종류를 단순히 white라고 답하지만 새가 있는 영역을 점점 확대하자 정답인 egret의 확률이 높아집니다. 즉 모델이 type이라는 질문의 의미를 이해하지 못한 것이 아니라, 작은 상태에서는 egret와 다른 흰색 새를 구분할 만큼의 세부 정보를 읽지 못했다는 뜻입니다.
마지막 오른쪽 실험에서는 시계의 브랜드를 묻는데, 모델이 처음에는 정답인 MoMA와 일부 글자가 비슷한 ama라고 답합니다. 이는 모델이 글자가 있는 위치는 어느 정도 보고 있었지만 실제 단어를 정확하게 읽지는 못했고 crop을 통해 확대하자 점차 정답에 가까워지는 모습을 보여줍니다.
결국 fig1은 대상이 크게 보일수록 정답 확률이 높아지고, 오답에도 일부 올바른 정보가 포함될 수 있다는 두 가지 힌트를 보여줍니다.
그럼 모델이 작은 대상을 못 보는 이유가 무엇때문일까요?
실험으로 저자들은 단순히 작은 대상이 포함된 문제가 더 어렵더라~ 라는 상관관계만 보는 것이 아닌, 모델이 작은 대상을 못 보는 이유가 뭔지에 대해 분석을 진행했고 이유를 크게 아래의 두가지로 나누어서 봅니다.
- Localization 문제 : 질문과 관련된 영역이 이미지 어디에 있는지 찾지 못함.
- perception 문제 : 관련 영역은 찾았지만 그 안에 있는 작은 글자나, 숫자, 속성 등을 정확히 읽지 못함
저자들은 이 두 문제에 대해 분석결과로 모델이 오답을 낼 떄도 attention이 정답 영역에 집중이 되는 경우가 많다는 것을 확인했습니다.
이 결과를 저자들은 MLLM이 어디를 봐야 하는지는 이미 알고 있지만 이 작은영역에서 올바른 답을 내기에 충분한 시각 정보를 추출하지 못하고 있다! 라고 해석합니다. 바로 이 부분이 이 논문의 제목인 MLLMs Know Where to Look의 의미가 됩니다!
저자들은 이 2번 문제인 perception문제를 해결하기 위해 원본 이미지와 질문이 입력되면 모델 내부의 attettion map이나 gradient map으로 질문과 관련된 영역을 찾고, 해당 영역을 모델 스스로 crop하게 해줍니다. 그 후 원본이미지의 visual token과 crop 이미지의 visual token을 모델에 함께 넣어주어 답을 생성합니다. 이 방식은 training-free방식으로 모델을 새로 학습하거나 파라미터를 업데이트 하지 않습니다!
즉 요약하자면 외부 object detector나 localization 모델을 학습하는 대신 MLLM내부에 이미 존재하는 위치 정보를 이용해서 스스로 확대영역을 결정하는 방법입니다. 저자들은 이 방법을 ViCrop이라고 부릅니다!
MLLMS’ SENSITIVITY TO THE SIZE OF VISUAL CONCEPTS
저자들은 MLLM이 실제로 작은 시각적인 개념을 인식하는 것에 어려움이 있는지, 즉 작은 대상일수록 실제로 성능이 떨어지는 가에 대해 정량적으로 분석을 진행했습니다.
실험에 사용한 벤치마크는 TextVQA로 이미지속에 있는 간판이름이나 유니폼에 적힌 숫자, 브렌드 등의 글자를 읽어서 질문에 답하는 데이터셋 입니다. 요 벤치마크를 선택한 이유는 정답이 들어있는 이미지 영역의 bbox를 구할수 있기 때문에 해당 영역이 이미지에서 차지하는 상대적인 크기(s,m,l)를 계산할수 있고, 또 이 벤치마크에서의 정답들은 주변 장면이나 language prior만으로 맞히기가 어렵기 떄문에 작은 visual evidence를 모델이 실제로 읽어내는지 분석하기에 적절하다고 판단했기 때문입니다.
이 실험을 하기에 방금 말한 상대적인 bbox의 크기는 절대적인 픽셀크기가 아닌 전체 이미지에 대한 정답 영역의 상대적인 면적 비율을 사용합니다 (비율 S = A_bbox/A_total) 이때 이 비율 S가 0.005미만이면 전체 이미지 면적의 0.5%미만으로 small그룹에 들어가고 0.005~0.05는 0.5%~5%로 medium에 들어갑니다. 마지막으로 5%이상은 large그룹으로 들어가게 됩니다.

실험의 결과는 위의 table1로 확인할수 있는데 no cropping은 원본 이미지만을 사용한 결과입니다. 결과에서 보이다 싶이 각 MLLM은 large→small로 갈수록 성능이 하락하는 것을 볼 수 있습니다.
여기서 human-CROP은 말 그대로 사람이 직접 GT bbox에 대해 정사각형 비율로 crop을 진행한 oracle 세팅고, 원본 이미지에 맞게 이미지 해상도를 resize를 진행해준 후 실험을 진행한 것 입니다.
여기서 1,2행의 BLIP은 TextVQA로 학습되지 않은 제로샷 모델이라 저자들 입장에서는 어느정도 예상 가능한 결과 이지만 아래의 나머지 모델들은 TextVQA training set으로 학습을 진행한 것 임에도 작은 정답 영역에서는 성능이 꽤나 떨어지는 것을 볼수 있습니다. 즉 TextVQA로 학습했다고 해서 small visual detail문제가 없어지는 것은 아니라는 것을 확인할 수 있습니다.
저자들은 이 실험을 통해 정답 영역을 정확하 crop하여 확대해주면 MLLM의 small visual detail성능이 크게 향상된다는 것을 가장 직관적으로 확인 할수 있습니다. 즉 원본 입력에서 작은 evidence가 모델이 처리하기 어려운 형태로 제공되고 있고 결국 해당 evidence에 더 많은 픽셀(visual token budget)을 배정하면 오류가 꽤나 해결된다 라는 것을 알수 있습니다. 또한 이게 비단 오래된(?)모델 만의 문제가 아닌 LLaVA나 GPT, Qwen등 다른 모델들에도 공통적으로 관찰되는 것을 볼수 있습니다.
하지만 이 결과 만으로는 모델이 원본 이미지에서 정답 위치를 이미 알고있었다! 라고 말할 순 없습니다. Human-CROP은 정답 gt bbox를 사람이 알려주는 오라클 방식이라 localization문제를 완전히 우회 하기때문에 성능 향상은 (1. 모델이 원래 정답 위치를 찾지 못했는데 사람이 정확한 위치를 crop해줘서 해결굄), (2. 모델은 위치를 알고 있었지만 그 영역이 너무 작아서 정보를 읽지 못했던건데 이걸 확대해 주니 해결됨) 이라는 두가지 가능성을 모두 포함하게 됩니다.
DO MLLMS KNOW WHERE TO LOOK?
따라서 이 섹션에서는 attention을 분석합니다.
인트로의 fig1을 통해(중간 새 맞추는거) MLLM이 생성한 오답에 일부 올바른 정보가 포함되어 있는 경우를 볼수 있었습니다. 이건 모델이 이미지에서 어디를 봐야하는지는 알고있을 가능성이 있다~ 라는것을 시사합니다
따라서 저자들은 다음으로 작은 시각적인 개념을 인지하지 못하는 원인이 작은 디테일 자체를 제대로 보지 못하기 때문인지(perception limitation)? 아님 대상 자체가 작아서 이미지 속에 있는 정답과 관련된 위치를 찾지 못하기 때문인지(localization limitation)를 분석합니다.
즉, 모델이 정답을 틀려도 어디를 봐야하는지는 일관되게 알고있다! 따라서 못 찾는 것인지 찾았지만 못 읽는 것 인지에 대해 정량적으로 분석했다고 합니다.
여기서의 분석은 먼저 MLLM의 transfomer layer내부에서 계산되는 attention map을 이용해서 이미지에 대한 모델의 공간적인 attention을 정량화합니다. → 이후 gt bbox내부에 할당된 총 attention과 이미지 내의 다른 동일한 크기bbox에 할당된 어텐션을 비교합니다
이때 MLLM처리 과정은 원본이미지를 받아서 → ViT 패치토큰 화 한 후 → LLM용 이미지 토큰으로 변환한 후 → 최종 답변 을 내는 순서입니다. 여기서 각 모델의 connector가 ViT토큰을 그대로 LLM에 넣는 것이 아니고 LLM이 받아 먹을수 있도록 이미지 토큰으로 변환해 줍니다.
각 모델별로 이 connector에 차이가 있는데 간략하게만 짚고 넘어가자면 LLaVA는 이 과정에서 MLP를 사용하고 BLIP, InstructBLIP, Qwen은 transformer connector를 사용합니다. 이렇게 이미지 토큰으로 변환한 후 그 토큰을 question토큰과 미리 정이 되어있던 starting answer token 앞에 배치해서 LLM에 입력 됩니다. 마지막으로 LLM은 이 starting answer token 이후 부터 autoregressive답을 생성하게 됩니다.
[ Quantifying MLLMs’ Spatial Attention over the Image ]
이제 이 starting answer token이 원본 이미지의 각 패치에 얼마나 어텐션을 주는지를 실제로 계산합니다. 계산은 크게 두단계로 진행되는데 아래와 같습니다
- Answer-to-token attention 먼저 tarting answer token이 LLM에 입력된 각각의 image token을 얼마나 참고하는지를 봅니다. 이걸 논문에서는 A_st(s,q)라고 표현합니다. 여기서 s는 starting answer token, t는 image token입니다.
이 단계를 쉽게 말하자면 모델이 답을 생성하기 시작하는 순간 여러 이미지 토큰 중 어떤것을 중요하게 보고있는지를 측정하는 것으로 LLM에는 layer와 attention head가 여러개 있는데 모든 layer와 head에서 attention을 추출한후 → head 차원은 평균을 내서 A^_st(s,q)를 만듭니다. 예를들어 LLM에 이미지 토큰이 32개가 들어갔다고 친다면 이 값은 starting answer token이 그 32개 token 각각에 얼마나 attention을 주는지를 나타내는 것이죠!
하지만 이것만으로는 원본 이미지의 어느 위치인지 아직 알수 없습니다. 특히 Q-Former를 사용하는 모델에서는 이미지 토큰 하나가 여러 패치 정보를 섞어서 가지고 있기 때문에 더욱이 그렇습니다. - Token-to-image attention 다음으로는 각 이미지 토큰이 원본 이미지의 어떤 ViT패치를 참고해서 만들어 진 것 인지를 계산하는데 A_ti(x)와 같이 표현됩니다.
이 값은 해당 이미지 토큰이 원본 이미지의 어느 위치에서 정보를 가져왔는지를 표현하는 값으로 BLIP와 InstructBLIP에서는 Q-Former query token이 ViT 패치 토큰들에 주는 cross attention을 추출하면 이 관계를 알수 있다고 합니다.
예를 들어서 이미지 토큰3번이 원본이미지 오른쪽 아래 패치들에 강한 어텐션을 줬다면 이미지 토큰3은 주로 오른쪽 아래 영역을 표현한다고 볼 수 있는것이죠!
(이때 LLaVA는 패치 토큰을 MLP로 독립적이게 변환할 뿐 블립들 처럼 여러 패치를 하나의 쿼리 토큰으로 압축하지 않기 때문에 별도의 token-to-image attention을 계산할 필요 없이 identity tensor를 사용한다고 합니다.)
위의 두 단계를 진행한 후 최종으로 Answer-to-image attention를 진행하는데 앞에서 나온 두 단계의 값을 곱해줍니다.
즉 starting answer token→image token→원본 image patch 경로로 계산이 되는 것이죠!
예를 들어 starting answer token이 image token 3번을 강하게 attention하고 있고 image token 3번이 원본 이미지의 오른쪽 아래 영역을 주로 참조한다면 최종 answer-to-image attention도 오른쪽 아래에서 높아지는 것 입니다.
결과적으로 모델이 답을 생성하려는 시점에 원본 이미지의 어디쪽 공간을 중요하게 보고있는지를 히트맵 같은 것을로 시각화 할수 있게 되는것이죠!
그럼 여기서 왜 starting answer token만 볼까요?
저자들은 답변 전체 토큰이 아닌 답변 생성을 시작하는 첫 위치의 어텐션만 사용하는데 이렇게 하면 모델이 정답을 맞혔는지 틀렸는지와는 무관하게 동일한 위치에서의 어텐션을 비교할 수 있고 생성된 답변 길이가 달라도 분석 기준이 일정해집니다!
[ Relative Attention ]
엎서 계산한 answer-to-image attention이 높다고 해서 무조건 해당 위치가 질문과 관련있다! 라고는 할수 없습니다.
transformer에는 질문과 관련없이 항상 높은 어텐션을 받는 토큰이나 위치가 존재할수 있습니다. 예를들어서 일부 토큰이 이미지 전체 정보를 모으는 레지스터의 역할을 하거나 시각적으로 눈에 잘 띄는 위치가 어떤 질문이든 냅다 높은 어텐션을 받을수 도 있습니다.
따라서 raw attention만 보고 모델이 질문에 맞는 위치를 찾았다!고 해석하면 비약이 있을수 있기 때문에 저자들은 동일한 이미지에 두 종류의 질문을 넣습니다.
아래의 fig2에 있는 질문들처럼 실제 질문은 q로 표시(What player number is this football player?)하고 일반적인 질문은 q’(Write a general description of the image.)로 표현합니다!

그리고 이 두 질문에 대한 어텐션을 아래의 수식처럼 나누어 줍니다. 이것이 relative attention이 됩니다.

이 부분을 좀 직관적으로 설명하자면 어떤 위치가 실제 질문에서도 많이 보이고 일반 이미지 설명에서도 똑같이 보인다면 그 위치는 질문 때문에 특별하게 선택된 영역이 아닐 가능성이 큽니다! 예를들어 실제 질문 attention이 0.2이고 일반 설명 attention이 0.2라면 relative attention은 1이 되고 반대로 실제 질문 attention은 0.2이고 일반 설명 attention이 0.05라면 relative attention은 4가 되는 것이죠 즉 해당 위치가 일반적으로 중요한 영역이라서 본게 아니라 현재 질문을 받았을대 특별히! 더 중요해졌는지를 보는 것입니다. 요렇게 하면 relative attention은 질문과 무관한 전역적인 saliency나 레지스터성분을 좀 줄이고 질문에 의해 추가로 유발된 spatial attention을 강조하려는 정규화처럼 작용하게 되는 것 입니다!
[ Do MLLMs Know Where to Look? ]
이제 앞서 구해진 relative attention이 정답 bounding box에 실제로 집중되는지를 정량적으로 측정합니다. 이때 attention ratio(= 정답 bbox내부 어텐션 합/동일 크기의 임의의 box의 평균 어텐션합를 사용하는데 분자는 gt bbox 내부의 relative attention을 모두 합한 값이고 분모는 이미지 안의 동일한 크기의 box들이 받는 relative attention 합의 평균입니다.
Attention ratio가 1이라면 정답 영역이 다른 동일한 크기의 영역고 ㅏ비슷한 정도의 어텐션을 받았다는 뜻이고 1보다 크면 정답 영역이 다른 영역보다 더 많이 선택됐다는 뜻이 되는 것이죠!
예를 들어 정답 bbox안에 어텐션합이 40이고 같은 크기의 다른 box들의 평균이 10이라면 Attention ratio는 4가 되고 정답 영역이 일반적인 동일 크기 영역보다 4배강한 어텐션을 받은 것 입니다.
즉 값이 클수록 정답 영역에 대한 어텐션 편항이 강하다고 볼 수 있습니다

위의 fig3은 계속 다루었던 4개의 MLLM에 대해서 모든 layer의 Attention ratio를 보여줍니다. 초록색: 정답을 맞힌 샘플, 빨간색: 정답을 틀린 샘플, 음영: 95% confidence interval으로 구성되어있습니다. 4 모델 모두 대부분의 layer에서 attention ratio가 1보다 높은 것을 볼수 있는데 이것은 정답 영역이 이미지 내의 임의의 다른 동일한 크기 영역보다 더 높은 relative attention을 받는 다는 뜻인거죠. 특히 중요한 결과는 답 샘플의 빨간색 곡선도 정답 샘플의 초록색 곡선과 비슷하거나, 일부 구간에서는 오히려 더 높다는 점입니다. 즉 모델이 틀렸다고 해서 관련 영역을 전혀 안 본 것은 아니라는 뜻이 됩니다! 이 말은 모델 내부에 정답 위치와 align되어있는 공간적인 신호가 존재한다는 증거가 되고 저자들은 이 결과를 통해 MLLM은 오답을 생성할 때도 어디를 봐야하는 지는 알고있다! 따라서 작은 대상 문제의 핵심은 localization보다는 perception에 있다~ 라고 주장하는 것 입니다!
Method | AUTOMATIC VISUAL CROPPING (VICROP)
앞 섹션의 주장처럼 MLLM의 이슈가 주로 perception limitation에서 비롯되고 이걸 완화하기 위한 한가지 방법은 patch 하나당 해상도는 유지하면서 더 많은 image patch를 사용하도록 MLLM을 학습하는 것, 즉 모델의 입력 이미지 해상도를 높이는 것입니다. 하지만 저자들은 이 단순한 적용을 하지 않았습니다.
이미지의 가로 세로 각각 α배 높이면 전체 픽셀 수와 patch 수는 α2배 증가하게 됩니다. 즉 모든 이미지 영역을 고해상도로 처리하는 방식은 대부분의 질문과 무관한 배경에도 같은 계산량을 소비하게 된다는 것 입니다. 이미지에서 정작 필요한 부분은 작은 간판 같은 부분 하나뿐인데 전체적인 건물이나 하늘 같은 부분까지 모두 고해상도로 인코딩 하면 불필요한 비주얼 토큰이 증가하게 되겠죠!
따라서 저자들이 제안하는 ViCrop은 전체이미지는 기존 해상도를 유지하고 질문과 관련된 작은 영역만을 추가로 확대합니다! 간단히 말하자면 입력을 약간 재구성 해서 중요한 영역이 모델의 기존 입력 해상도안에서 크게 보이도록 하는 것 입니다!
ViCrop은 앞의 두섹션의 실험 결과를 결합한 것으로 모델에게 새로운 localization 능력을 학습시키는 것이 아니라 모델 내부에 이미 나타나는 위치 신호를 이미지 전처리에 다시 이용하는 self-guided intervention방식 입니다!

위의 fig4는 LLaVA와 InstructBLIP에 ViCrop을 적용하는 구조입니다. 이렇게 두 케이스로 보는 이유는 앞서 설명했기 때문에 생략하겠습니다. 여기서 중요한 점은 ViCrop은 단순히 원본 이미지를 crop 이미지로 교체하는 방식이 아닙니다. 만약 교체한다면 (두 물체의 상대적 위치는 무엇인가?)와 같은 global context가 필요한 질문에서의 이슈가 발생하기 때문입니다!
[ Relative Attention ViCrop (rel-att) ]
rel-att는 Section 4에서 계산한 relative attention을 그대로 crop 위치 선택에 활용하는 방식입니다.
동일한 이미지에 대해 실제질문 q와 일반 설명질문 q’를 각각 입력하고, 앞서 언급했던 A_rel(x,q)를 계산합니다. 이때 이 값이 높은 영역인 일반적으로 눈에 띄는 위치가 아니라 현재 질문에 상대적으로 더 중요해진 이미지 영역을 의미하게 되겠죠!
이 relative attention map을 importance map으로 사용하고 TextVQA의 소규모 held out set에서 선택한 특정 레이어의 맵을 이용해 crop 영역을 결정합니다.
따라서 모델을 새로 학습하지는 않지만 최적의 레이어를 고르기 위한 소량의 validation data는 사용합니다. 이 구간의 장점은 질문 관련 위치 신호를 직접 활용한다는 점이고 단점은 일반 설명 질문까지 추가로 입력해야 하므로 한 번의 추가 forward pass가 필요하다는 점이라고 저자들은 설명합니다!
[ Gradient-Weighted Attention ViCrop (grad-att) ]
grad-att는 attention 값에 gradient를 함께 반영해서 모델의 현재 답변 결정에 실제로 영향을 주는 이미지 영역을 찾는 방식입니다
먼저 모델이 tarting answer token 위치에서 가장 높은 확률을 부여한 토큰의 log probability를 아래와 같이 정의합니다.

이후 어텐션 값을 v에 대해 미분하는데 이 gradient는 특정 attention이 변했을 때 모델의 현재 예측 확신도가 얼마나 변하는지를 나타냅니다.

위 수식의 윗줄부터 answer-to-token attention이고 아래쪽 수식은 token-to-image attention입니다. 즉 attention이 높으면서 positive gradient도 큰 위치를 중요하게 평가하는데 어텐션은 높지만 gradient가 작다면 모델이 해당 위치를 보고는 있어도 현재 답변 결정에는 큰 영향을 주지 않는 것으로 해석합니다. 반대로 gradient가 음수인 위치는 어텐션이 증가할 수있도록 모델이 현재 예측의 확신도를 낮추는 영역이기 때문에 0으로 제거합니다. 마지막으로 gradient로 가중한 answer-to-token attention과 token-to-image attention을 결합하여 image patch 단위의 importance map을 생성하고 이것을 crop영역 선택에 사용합니다. (아래 수식 참고)

앞선 rel-att가 실제 질문과 일반 설명 질문을 각각 입력하여 두 attention을 비교하는 방식이면 grad-att는 실제 질문에 대한 한번의 forward 결과와 backward gradient를 이용한다는 차이가 있습니다! 따라서 두번째 forward pass는 필요하지 않지만, gradient 계산을 위한 backward 연산은 필요합니다!
[ Input Gradient ViCrop (pure-grad) ]
pure-grad는 attention map을 사용하지 않고 모델의 예측이 입력 이미지의 각 픽셀에 얼마나 민감한지를 gradient로 직접 계산하는 방식입니다.

여기서 v(x,q)는 starting answer token 위치에서 모델이 가장 높은 확률을 부여한 token의 log probability입니다. 이것을 입력이미지 x에 대해 미분하면 각 픽셀을 조금 변화 시켰을 떄 모델의 현재 예측이 얼마나 크게 변하는 지를 알수 있습니다! RGB 각 채널의 gradient는 L2놈으로 합쳐 픽셀별 중요도 맵을 생성하게 합니다!
하지만 input gradient는 하늘처럼 단색인 영역에서도 불필요하게 높은 값을 보일 수 있기 때문에 이것을 줄이기 위해 Gaussian high-pass filter를 적용하여 글자 획이나 물체 경계 같은 세부 구조를 강조하고 median filter로 노이즈를 제거합니다. 이렇게 처리를 해준 후 엣지가 강한 영역을 바이너리 마스크로 만든뒤 gradient map과 곱해줍니다!
마지막으로 이 결과를 모델의 NxN패치 크기에 맞춰서 average pooling을 해주고 crop영역을 선택하기 위한 importance map으로 사용하는 것 입니다.
pure-grad는 모델 내부 어텐션 구조에 의존하지 않으므로 다양한 구조에 적용하기 쉽다는 장점이 있지만 엣지가 많은 배경이 강조되거나 경계가 뚜렷하지 않은 질문 관련 영역은 비교적 약하게 다뤄질수 있기 때문에 이 단락에서 다뤘 엣지 필터링 같은 휴리스틱한 처리가 필요합니다
[ Bounding Box Selection for Visual Cropping ]
세 가지 ViCrop 방법으로 얻은 importance map은 heatmap 형태이므로 실제로 crop할 사각형 영역을 추가로 선택해야 합니다. 이를 위해 모델의 입력 해상도를 기준으로 1.0배부터 2.0배까지 여러 크기의 sliding window를 생성합니다.
각 크기의 window를 importance map 위에서 stride 1로 이동시키며 window 내부 중요도 합이 가장 높은 위치를 찾습니다. 이후 단순히 내부 합이 가장 큰 window를 선택하지 않고 최적 위치의 중요도 합과 주변 위치들의 평균 중요도 합 사이의 차이가 가장 큰 window를 최종 선택합니다
이 기준은 window가 질문 관련 영역에 정확히 놓였을 때만 높은 점수를 갖도록 하기 위한 휴리스틱한 방법입니다. 좀 지나치게 크거나 작은 window는 조금 이동해도 내부 중요도 합이 크게 달라지지 않으므로 선택될 가능성이 낮아집니다.
최종 선택된 영역은 원본 이미지에서 crop한 뒤 모델의 기본 입력 해상도로 resize합니다 이후 crop 이미지는 원본 이미지를 대체하는 것이 아니라 원본 이미지와 함께 MLLM에 추가 입력됩니다!
[ High-Resolution Visual Cropping ]
V∗ 벤치마크는 1K 이상의 고해상도 이미지를 사용하는데, 이런 이미지를 MLLM의 기본 입력 해상도로 바로 축소하면 질문과 관련된 작은 대상이 거의 사라지기 때문에 attention이나 gradient를 이용한 위치 탐색 자체가 어려워질 수 있습니다.
따라서 이를 해결하기 위해 원본 이미지를 서로 겹치지 않는 1024×1024미만의 정사각형에 가까운 block으로 나누어줍니다. 각 block에서 ViCrop의 importance map을 개별적으로 계산하고 이를 원래 이미지의 배치에 맞게 다시 연결해주어 전체 고해상도 importance map을 복원합니다.
이후 복원된 importance map에서 기존과 동일한 sliding window 방식으로 최종 bounding box를 선택합니다. 선택된 영역을 crop하여 모델의 입력 해상도로 resize하고 원본 이미지와 함께 MLLM에 입력합니다.
즉, 전체 고해상도 이미지를 한 번에 축소하지 않고 block 단위로 먼저 분석함으로써 작은 시각적 대상의 위치 신호가 사라지는 문제를 완화하는 것 입니다! 다만 block이 겹치지 않기 때문에 대상이 경계에 걸리면 두 부분으로 나뉠 수 있다는 한계가 있습니다.
VICROP METHOD ANALYSIS
저자들이 제안하는 방법에 대한 실험분석 파트입니다
실험은 두 모델(LLaVA-1.5, InstructBLIP)과 7개 데이터셋으로 진행됩니다
- 작은 디테일 중심: TextVQA, V∗, POPE, DocVQA
- 비교적 큰 대상 중심: AOKVQA, GQA, VQAv2

위의 fig5는 rel-att가 질문과 관련된 영역을 자동으로 찾아 crop하고 이것을 통해 기존 오답을 정답으로 수정한 사례로 그림에 보이는 민트색의 bbox는 rel-att가 선택한 crop 영역입니다. 즉 모델 내부 어텐션에 존재하는 위치 정보를 실제 시각 입력 개선에 활용할수 있다는 것을 정성적으로 보여줍니다

table2는 가장 메인 실험 결과로 ViCrop의 VQA 성능을 확인한 실험 입니다
세 가지 ViCrop 방법은 대부분의 detail-sensitive benchmark에서 원본 모델보다 높은 성능을 보였습니다.
특히 LLaVA에서 rel-att는 V*의 성능을 42.41→62.30로, grad-att는 TextVQA 성능을 47.80→ 56.06로 향상 시킨것을 볼수 있습니다. 반면에 Larger visual concepts 벤치마크에서는 성능이 대부분 유지되거나 약간 향상되는 것으로 디테일 성능의 개선이 일반적인 QA성능 저하로 이어지지 않는것을 볼수 있다고 합니다!
또한 전체적으로 어텐션을 활용한 rel-att와 grad-att가 input gradient만 사용하는 pure-grad보다 더 높은 성능을 보였는데 이 부분은 모델 내부 어텐션이 질문과 관련된 영역을 찾는데 유용한 공간 정보를 포함하고 있음을 시사한다고 합니다!

위 table3실험 결과는 layer 선택 및 고해상도 ViCrop Ablation에 대한 실험으로 특정 layer를 선택하는 대신 모든 layer의 어텐션을 평균내서 사용해도 성능 변화는 크지 않습니다. 따라서 별도의 validation data로 최적의 레이어를 선택하기 어려운 경우에는 평균을 사용해도 무관합니다!
또한 해상도 관련 분석으로 ViCrop의 고해상도 처리 관련해서 살펴보자면,
LLaVA의 실험 결과는 rel-att는 고해상도 처리를 제거하면 62.30→ 47.64로, grad-att는 57.07→49.74로 감소하는 것을 볼수 있습니다. 반면에 InstructBLIP에서는 성능이 오르거나 내려가는 섞인 결과가 나왔는데 저자들은 이 부분에 대해 block 단위 고해상도 처리는 모든 모델에 일관되게 유리한것은 아니라고 분석합니다

위의 table4는 외부 도구와의 비교 및 추론 시간에 대한 리포팅입니다. SAM, YOLO, CLIP으로 crop하는 방법보다 ViCrop이 더 높은 성능을 보였습니다. 즉 외부 모델들보다 MLLM 내부의 attention과 gradient를 이용하는 것이 질문에 필요한 영역을 더 잘 찾는다는 것을 알수 있습니다. 하지만 crop 위치를 찾고 이미지를 한 번 더 처리해야 하기 때문에 약 1~2초의 추가 추론 시간이 발생 한다고 합니다!
찬미님 좋은 리뷰 감사합니다.
Figure 2의 그림들 중 작은 부분에 대한 확대 표시가 된 이미지들의 경우 시각화를 위해 저렇게 표현한 것인지, 아니면 크롭 영상을 같이 시각화 하여 입력으로 주어졌을때의 활성화 영역인지 궁금합니다. 크롭되어 자세한 정보가 주어져도 상대적으로 작은 원래의 영역에 집중하고 있다는 것이 흥미롭습니다. 이에 대한 저자들의 분석은 따로 없나요?
안녕하세요, 찬미님. 좋은 리뷰 감사합니다!
질문이 있어 댓글로 남기겠습니다.
1. MLLM이 어느 위치를 봐야하는지 안다는 것이, grounding 자체는 잘 한다는 것으로 해석해도 되는 부분인지 궁금합니다. 정답 위치와 align되어 있는 spatial signal이 있다고 해서 grounding은 잘 할까? 라는 의문이 생겼고, 단순 attention의 spatial signal이 grounding과 연관 짓는 것이 비약이 있는 것 같아 이에 대한 논문 내용이 있는지 궁금해서 질문드립니다!!
2. small의 경우 전체 면적에 대해 0.005~0.05% 의 면적을 가지는데, 해당 부분을 crop해서 확대했을 때, visual representation이 충분히 형성될 수 있는지 궁금합니다.
감사합니다.
찬미님 좋은 리뷰 감사합니다~
ViCrop은 여러 객체 사이의 관계를 묻거나 개수를 세는 질문처럼 여러 영역을 동시에 봐야 하는 경우에는 어떻게 동작하는지 궁금합니다. 이런 경우에도 ViCrop이 효과가 있는지, 아니면 논문에서 한계점으로 다루고 있는 부분이 있는지 궁금하네요.
감사합니다.
안녕하세요. 좋은 리뷰 감사합니다~
MLLM이 어디를 봐야하는지 알고 있을 수 있다를 잘 분석하여 확인한 논문이라고 이해하였습니다. 인사이트가 많은 논문이었던 것 같습니다. 궁금한점이 figure 2, 5에서 크롭된 이미지가 보이는데 실제 저렇게 크롭이 되는지? 저렇게 크롭이 됐을 때의 attention map을 시각화 했을 때 따로 crop한 부분만 밝아지는지 궁금합니다. (뭔가 크롭된 거랑 시각화랑 잘 맞지 않는 느낌이라 따로 보는 방법이 있는지 궁금합니다!)
감사합니다.