본문 바로가기

ML

[논문] Sa2VA: Marrying SAM2 with LLaVA for Dense Grounded Understanding of Images and Video

728x90

최근 많은 연구에서 Vison model과 LLM을 활용하여 다양한 모델을 제작하고 있습니다. 그 중 본 논문(Sa2VA)은 이미지와 비디오 입력 시 segmentation또는 입력에 대한 대화가 가능한 첫번째 모델이라고 합니다. 해당 동작을 위해 저자는 최소한의 one-shot instruction tuning을 사용하였으며, 많은 실험을 통해 다양한 task에 대한 state-of-the-art 성능을 입증하였습니다. 

 

Sa2VA는 SAM2 모델과 LLaVA-like 모델을 결합한 모델로 text, image, video를 LLM 토큰 공간으로 통합하였습니다.

LLM을 통해 Sa2VA는 instruction token을 생성하며, 이는 SAM2의 정확한 마스크 생성, 이미지나 비디오 맥락 이해,  정적 및 동적 시각 컨텐츠 이해등에 사용되었습니다. 

또한, Ref-SAV 데이터셋을 제안하여 Sa2VA 모델의 성능을 한층 더 향상 시켰습니다.


Intorduction

LLM의 발전으로 MLLM 모델들도 빠른 발전이 이루어졌으며 다양한 실험이 시도되었습니다. 그러나 이미지나 영상을 입력으로 해당 내용을 이해하고 VQA(vi-sual question answering)와 Segmentation을 동시에 하는 모델을 없었습니다. 이에 본 논문은 SAM2와 LLaVA-like 모델을 사용하여 동영상과 이미지를 통합하는 모델을 제작하기 위해 아래와 같이 첫번째 핵심 연구를 진행하였습니다. 

  1.  Task formulation: 멀티모달 입력에을 one-shot training 환경에서 효과적으로 공식화
  2. Performance balance: LLM 모델의 성능 감소 없이 vision 정보 이해
  3. Knowledge sharing: SAM2 & MLLM의 pre-trained 정보를 활용하여 통합 모델 개발

해당 연구를 통해 얻은 핵심 아이디어는 아래와 같습니다.

  • LLM의 유연한 토큰 길이 처리 방식을 활용하여 입력 이미지, 비디오, 텍스트를 추가 디자인 없이 사용하기.
  • End-to-end 방식으로 모델 학습시키기.
  • SAM2 decoder와 메모리 모듈을 frozen 시켜 기존 perception과 tracking 기능 유지하기.

또한 SA-V 데이터셋 기반으로 자동 파이프라인을 구축하여 제작한 Ref-SAV 데이터셋을 소개하였으며, 이를 통해 기존에 공개된 대부분의 데이터셋(작고 짧은 비디오, 가려짐이 적은 데이터)의 한계를 극복하고자 하였습니다.

 

Sa2VA는 이미지 & 비디오를 모두 활용하여 학습을 하였으며 다양한 평가지표에서 stage-of-the-art 성능을 달성하였습니다.

 

전체적인 본 논문의 contribution은 

  • Vision token 관점에서 비디오 segmentation, image chat 등과 같은 다양한 task를 단일 instruction-tuning으로 정형화함
  • SAM2와 LLaVA 모델을 결합하여 Sa2VA라는 하나의 모델을 개발
  • Ref-SAV 데이터셋을 통해 Sa2VA 모델 성능을 높였으며 이를 벤치마크로 도입

Method

Unifying Multi-task Representation

다양한 이미지와 비디오를 이해하는 통합 모델을 만드는 것은 각 task들의 구분되는 format 때문에 어렵습니다. 

따라서 이를 해소하기 위해 task formulation을 재검토하여 통합된 표현 방식을 제안하였습니다. 

기존의 방법들은 모델 디자인 변경 또는 task별 다른 weight를 사용하는 방식으로 통합 모델을 제작하였습니다.

그러나 Sa2VA는 LLM을 활용하면 다양한 vision token을 다룰 수 있으므로, one-shot instruction tuning 과정을 통해 통합 모델을 개발하였습니다. 이를 식으로 표현하면 아래와 같습니다.

이때 Chat-only task일 경우 output은 text answer만 출력되며, Segmentation task일 경우 output mask만 출력되는 등 task에 따라 출력을 조절합니다.

마스크 출력의 경우 [SEG] 토큰을 통해 조절되고, 하나의 [SEG] 토큰은 하나의 SAM2 decoder에 들어갈 prompt input이 됩니다.

이를 통해 하나의 encoder-decoder 프레임 워크로 통합되고 자연스럽게 LLM과 SAM2가 end-to-end로 학습될 수 있습니다. 

 

Sa2VA Framework

 

Sa2VA의 전체 구조는 위 그림과 같이 LLM(LaVA)와 SAM2로 이루어져 있습니다. 

그림에서 볼 수 있듯 SAM2의 output token을 LLM에 넣지 않는데 여기에는 3가지 이유가 있습니다.

  1. 추가적인 컴퓨팅 비용 증가 없이 모델을 통합하기 위해
  2. Token을 추가 시 별도의 align 과정이 필요해지기 때문
  3. 해당 구조를 통해 사전 학습된 MLLM을 활용할 수 있고 본 연구를 plug-in-play 프레임워크로 만들 수 있기 때문

앞서 언급했듯 Sa2VA는 SAM2와 MLLM을 연결하기 위해 [SEG]토큰을 사용하였습니다.

[SEG] 토큰의 hidden state는 이미지나 비디오 내의 공간적&시각적 정보를 담고 있으며, SAM2의 디코더에 프롬프트로 입력되어 Segmentation mask로 디코딩 됩니다. 이를 위해 학습 과정에서 SAM2 디코더는 [SEG] 토큰의 프롬프트에 대해 이해하도록 fine-tuning 됩니다. 

 

Ref-SAV Dataset and Benchmark

 

Ref-SAV 데이터셋 제작을 위해 자동 annotation pipeline을 만들었는데 방법은 위 그림과 같습니다.

  1. Object-level annotation:  우선 비디오에서 객체 영역이 가장 큰 프레임을 선택하고 객체 외의 것은 마스크 처리합니다. 그후 InternVL2-76B 모델에 넣어 상세 설명을 생성합니다. 그 후 Qwen2-72B 모델을 사용하여 일관성 검사를 수행 후 통과한 설명만 사용합니다.
  2. Scene-level annotation: 이미지에서 객체만 노란색 윤곽선으로 강조하고, 원본 이미지와 "1." 에서 얻은 설명을  InternVL2-76B에 다시 넣어 장면과의 관계를 포함한 자세한 객체 설명을 생성합니다.  
  3. Video-level annotation: 비디오에서 8개의 프레임을 균등하게 sampling하고 각 프레임에서 객체를 노란색 윤곽선으로 강조합니다. 그리고 해당 프레임들과 위 과정을 통해 얻은 설명을 InternVL2-76B에 넣어 객체의 움직임과 동작을 캡쳐하는 비디오 수준의 설명을 생성합니다. 

이를 통해 SA-V 데이터셋에 대한 자세한 표현을 자동적으로 생성하였으며, 이를 Ref-SAV 데이터셋으로 제작하였습니다. 

Ref-SAV Evaluation Benchmark

SA-V 데이터셋은 validation&test set의 갯수가 제한되어 있기 때문에 SA-V 데이터 보다 더 많은 비디오를 포함하여 새로운 벤치마크를 구축하였습니다. Ref-SAV 벤치마크는 두 개의 부분으로 구성되어있습니다.

  1. Long-expression set: 자동 annotation 파이프라인을 통해 데이터 생성 후 사람이 직접 필터링 함
  2. Short-expression set: 모든 annotation을 수동으로 진행

이렇게 생성된 벤치마크는 총  1,147개의  video 와 1,945개의 객체 표현을 가지고 있으며, 1,694개의 긴 표현과 251개의 짧은 표현으로 이루어졌습니다.

 

Sa2VA Training and Testing

Sa2VA는 다중 데이터를 함께 학습합니다. 이때 VQA task를 위해서 L_text(text regression loss)를, Segmentation을 위해 L_mask에 대한 픽셀 단위의 Cross-entropy loss와 Dice loss를 적용합니다. 이때 사전 학습 없이 one-shot 학습으로 fine-tuning을 진행합니다.


Experiments

SOTA 모델인 InternVL2과 SAM2 모델을 결합하여 baseline을 구축하여 실험을 진행하였습니다. 

 

Datasets and Metrics

아래와 같이 4가지 유형(image QA, video QA, image segmentation, video segmentation)의 데이터셋을 통해 Sa2VA를 학습하였습니다. 

Intern VL2의 경우 이미 image QA와 video QA에 대해 엄청난 양으로 학습이 되었기 때문에 forgetting 현상을 막기 위해 위와 같은 양의 데이터로 학습을 진행하였습니다. 또한 Video Segmentation 부분에 볼 수 있듯 본 논문에서 제작한 Ref-SAV를 사용하여 복잡한 비디오에 대한 긴 참조 텍스트와 객체 이해 능력을 증가시켰습니다. 

 

Main Result

(GCG(Grounded Caption Generation): 이미지 또는 비디오의 특정 객체나 영역에 대한 설명 생성)

 

위 테이블은 SoTA 모델과의 비교 내용입니다. 다른 모델들에 비해 Sa2VA 모델이 더 높은 결과를 보여주고 있습니다. Segmentation 결과의 경우 cIoU에 대한 결과이며 cIoU는 overlap area, central point distance, aspect ratio

와 같이 세가지 요소를 고려하여 점수를 측정합니다. 

 

위 테이블은 다양한 image chat dataset에서도 Sa2VA가 높은 결과를 보였음을 증명하고 있습니다. 

테이블 5번은 Ref-SAV의 validation dataset에서의 결과를 보여주고 있습니다. 비교군 모델들은 Ref-VOS에서 state-of-the-art인 모델들을 사용하였습니다. J는 예측한 segmentation 결과와 실제 segmentation 간의 유사도를 측정하는 것으로 값이 높을 수록 유사하다는 의미이며, F는 F-score를 뜻하며 segmentation의 정확도와 재현율을 조화평균으로 산출한 값입니다. 결과적으로 Sa2VA 모델이 텍스트 설명이 길던 작던 더 높은 결과를 얻었습니다. 

마지막으로 6번의 경우 fine-tuned 모델들의 성능 비교입니다. 다른 모델들에 비해 역시나 Sa2VA가 높은 성능을 보여주고 있습니다. 심지어 작은 크기의 Sa2VA 모델도 이전 모델들 보다 높은 성능을 보여줍니다. 

 

Ablation Studies

 

위 테이블을 통해 Sa2VA에 사용한 4가지 유형의 데이터셋이 모두 핵심적으로 활용되고 있음을 알 수 있습니다. 

또한, [SEG] 토큰의 경우 Multiple 내용과 같이 프레임별로 다른 토큰을 사용했더니 지식이 공유되지 않아 성능이 오히려 떨어지는 현상이 발생하였습니다. 

 


Conclusion

본 논문은 다양한 이미지와 비디오를 이해하며 다양한 task를 수행하는 첫번째 논문입니다. 해당 논문의 경우 hugging face에 weight를 올려놓아서 편하게 사용할 수 있었습니다. 그러나 웹캠을 통한 실시간 task 수행 코드를 제작해보니 실시간으로 쓰기에는 속도가 많이 느린 것 같습니다(제 코드의 최적화 문제일 수도 있습니다...ㅠㅅㅠ) 그러나 사진이나 저장된 영상에 대한 부분에서는 정말 뛰어난 성능을 보여주는 것 같습니다. 코드를 수정하며 실시간 사용 방법에 대한 연구를 해봐야겠습니다!!