Video

논문리뷰 Track Anything: Segment Anything Meets Videos

TAM, Segment Anything을 video에 적용

2023
.
06
.
12
논문리뷰 Track Anything: Segment Anything Meets Videos

안녕하세요, 오늘은 Segment Anything 을 비디오에 적용한 Track Anything 을 리뷰 합니다.

Full-paper로 나오지는 않았고, 서비스를 만들기 위해 필요한 모델을 적용한 듯한 느낌이지만 결과가 상당히 좋은 것 같아 리뷰를 결정하게 되었습니다.

arXiv 2023. [Paper] [Github]
Jinyu Yang, Mingqi Gao, Zhe Li, Shang Gao, Fangjing Wang, Feng Zheng  
24 Apr 2023


Segment Anything (SAM)의 특징

Image Segmentation의 신흥 강자 Segment Anything Model 의 특징은 무엇일까요?

  • Class-agnostic: Class를 구분하지 않는다
  • Interactive: 사용자로부터 Prompt를 받는다 (point, box, text, mask)
  • Powerful: 그냥 뛰어나다
       

저는 이 중 눈에 띄는 강점이 Interactive라고 생각합니다. 왜냐하면 단지 정확도가 좋다(Powerful)는 장점만 있다면 딱히 새로울 것 없이 기존의 응용 분야를 그대로 답습할 것이기 때문입니다. 하지만 Interactive라는 장점은 이제 설명할 비디오에서의 Interactive Segmentation을 가능하게 하기에 적용 분야가 한층 넓혀줍니다.

그러나 비디오에 직접 SAM을 사용하면 시간적 반응이 부족하여 인상적인 성능을 제공하지 못했습니다.
반면, 동영상의 tracking 또는 segmentation은 크기 변화, 물체 변형, 모션 블러, 카메라 움직임 및 이와 유사한 물체와 같은 문제에 직면합니다. 최첨단 모델조차도 실제 애플리케이션은 말할 것도 없고 공개 데이터 세트의 복잡한 시나리오로 인해 어려움을 겪고 있습니다.

그래서 이 논문에서는 이러한 장점을 십분 활용하여 Video Object Tracking (VOT), Video Object Segmentation(VOS)를 Interactive 방식으로 수행합니다! 조금 더 구체적으로는 SAM + [XMem] 이라는 VOS 모델을 잘 엮어 만들었다고 합니다.

결론적으로 장점은

  • SAM을 단순히 비디오의 각 프레임에 적용하는 것이 아닌, Temporal correspondence를 활용해 진정한 의미의 VOS를 한다
  • Interactive Tracking & Segmentation을 한번의 Interaction으로 해결하는 아주 쉬운 인터페이스를 갖는다
  • 너무 잘된다

라고 합니다. 이름은 Track Anything Model(TAM)이고 자세한 내용을 함께 보시죠

Track Anything Model (TAM)

Track Anything Overview
Track Anything (TAM) Overview

Track Anything Model overview

이 논문에서는 비디오에서 고성능 Object tracking 및 segementation을 위한 효율적인 툴킷을 개발하는 Track-Anything 프로젝트를 소개합니다.

사용자 친화적인 인터페이스를 갖춘 Track Anything Model (TAM)은 한 번의 추론으로 주어진 비디오의 모든 객체를 추적하고 세그먼트화할 수 있습니다. 특히 TAM은 대규모 세분화 모델인 SAM과 고급 VOS 모델인 XMem을 인터랙티브하게 통합합니다.

먼저, 사용자는 객체를 클릭해 대상 객체를 정의하는 등 인터랙티브하게 SAM을 초기화할 수 있습니다. 그런 다음 XMem을 사용하여 시간적 및 공간적 대응을 기반으로 다음 프레임에서 오브젝트의 마스크 예측을 제공합니다. 그런 다음 SAM을 사용하여 보다 정확한 마스크 설명을 제공합니다. 추적 프로세스 중에 사용자는 tracking이 실패하는 경우 즉시 일시 중지하고 수정할 수 있습니다.

self-supervised learning 방식으로 구현한 고성능 컴퓨터 비전 모델 DINOv2 란?

 

TAM Methodology

이 연구의 순서는 다음과 같습니다.

  1. Step 1: Initialization with SAM
    첫번째 프레임에서 SAM을 통해 관심 객체의 초기 마스크를 얻습니다. SAM에 이어 사용자는 클릭 한 번으로 관심 객체에 대한 마스크 설명을 얻거나 몇 번의 클릭으로 객체 마스크를 수정하여 만족스러운 초기화를 달성할 수 있습니다.
  2. Step 2: Tracking with XMem
    XMem을 이용해서 이후 프레임들의 마스크를 얻게 됩니다. XMem은 간단한 시나리오에서 만족스러운 결과를 생성할 수 있는 고급 VOS 방법이므로 대부분의 경우 XMem에서 예측된 마스크를 출력합니다. 마스크의 품질이 좋지 않은 경우 XMem 예측과 해당 중간 parameter (ex> probe, affinity)를 저장하고 3단계로 건너뜁니다.
  3. Step 3: Refinement with SAM Permalink
    데이터의 품질 평가가 만족스럽지 않은 경우 SAM을 사용하여 XMem이 예측한 마스크를 개선합니다. probe와 affinity를 SAM의 포인트 프롬프트로 사용하고 2단계에서 예측된 마스크를 SAM의 마스크 프롬프트로 사용합니다. 그러면 SAM은 이러한 프롬프트를 사용하여 세분화된 세분화 마스크를 생성할 수 있습니다. 이 세분화된 마스크는 XMem의 시간적 대응에 추가되어 이후의 모든 객체 식별을 세분화합니다. (Prompt로는 XMem에서 얻은 Probes, Affinities와 마음에 안드는 해당 프레임의 마스크)
  4. Step 4: Correction with human participation
    위의 세 단계를 거친 후, TAM은 이제 몇 가지 일반적인 문제를 성공적으로 해결하고 세그먼트 마스크를 예측할 수 있습니다. 그러나 특히 긴 동영상을 처리할 때와 같이 매우 어려운 시나리오에서는 여전히 객체를 정확하게 구분하기 어렵습니다. 따라서 추론 중에 사람의 보정을 추가합니다. 이를 통해 사람의 노력을 거의 들이지 않고도 성능의 질적 도약을 이룰 수 있습니다. 특히, 사용자는 TAM 프로세스를 강제로 중지하고 포지티브 및 네거티브 클릭으로 현재 프레임의 마스크를 수정할 수 있습니다.

개요는 알겠지만 TAM을 이해하려면 XMem, Probes, Affinities의 개념을 알아야 할 것 같습니다. 때문에 XMem 논문에 그 정보가 있는지 살펴보겠습니다.

XMem

XMem methodology
XMem methodology

XMem 논문은 VOS의 기존 방식의 문제를 해결하고자 새로운 제안을 했는데요, 기존 문제는

  • Recurrent 방식은 프레임이 갈수록 drift가 심해지고 (점점 에러가 심해짐)
  • Memory 방식은 GPU 메모리를 너무 많이 먹고 느리다

였습니다. 그래서 3가지 메모리 - Sensory, Short-term, Long-term Memory - 를 활용하여 위의 문제를 해결하고자 한 연구입니다.

혹시 Memory Networks가 뭔지 잘 모르시는 분은 고려대 DSBA 유투브 에서 잘 설명하고 있으니 참고하시면 좋겠습니다.

그래서 이 논문이 VOS를 완벽하게 수행한다면 SAM을 결합하는 작업도 필요가 없었을 텐데 어떤 단점이 있을까요?

XMem의 단점

  • Semi-supervised 방법이며, 좋은 Initial mask가 필요하다
  • 비디오가 길어질 때 중간에 수정하기가 어렵다

때문에 TAM에서는 XMem에 SAM을 결합하고자 했습니다.

그리고 우리가 알고자 했던 Probes, Affinities에 대해서 짧게 언급하면

  • Affiinities: Query (현재 프레임)와 Memory keys (이전 프레임셋) 간의 유사도를 계산한 matrix입니다.
  • Probes: 는 논문에서 언급되지 않아 자세한 파악이 어려웠습니다.

Track Anything Experimental Results

Quantitative Results

비디오에서 Tracking을 하며 마스크를 얻고자 한 시도는 결과가 훌륭합니다.

Quantitative Result of TAM
Quantitative Result of TAM

위 결과를 보시면 타 논문에 비해

  • Initialization: Click을 통해 수행하므로 매우 간편하고
  • Evaluation: 도중에 여러번 수정하지 않아도 되는데
  • J&F: 성능이 기존 방법 대비 매우 훌륭합니다

혹시 STM, AOT, XMem이 성능이 더 좋지 않냐고 물어보시면 해당 방법들은 초기에 정교한 마스크를 필요로 한다는 점에서 맞는 의견입니다.

Qualitative Results

타겟 변형, 스케일 변경, 카메라 움직임을 잘 처리할 수 있어 클릭 초기화와 단 한 번의 추론 만으로 뛰어난 추적 및 분할 능력을 보여줍니다.

TAM mask and tracking results
TAM mask and tracking results

Failed Case

실패한 사례는 두 가지 경우에서 나타납니다.

Success case and Failed case of TAM
Success case and Failed case, TAM

  1. 현재 VOS 모델은 대부분 짧은 동영상용으로 설계되어 장기 기억보다는 단기 기억을 유지하는 데 더 중점을 둡니다. 이로 인해 (a)와 같이 장기 동영상에서는 마스크가 축소되거나 정교함이 부족해집니다. 결국 3단계 (Refinement with SAM Permalink) 에서 SAM의 정제 능력으로 해결하고자 하지만, 실제 적용에서는 그 효과가 예상보다 낮습니다. TAM에서 인간의 참여/상호 작용은 이러한 난제를 해결하기 위한 접근 방식이 될 수 있지만, 지나친 상호 작용은 효율성이 떨어질 수 있습니다. 따라서 장기 기억 보존과 일시적 기억 업데이트 메커니즘은 여전히 중요합니다.
  2. 물체 구조가 복잡한 경우 (b)의 자전거 바퀴처럼 ground-truth 마스크에 많은 구멍이 생깁니다. 클릭을 전파하여 세밀하게 초기화된 마스크를 얻는 것이 매우 어렵다는 것인데요. 이런 초기화 작업은 후속 프레임에 부작용을 일으켜 예측이 잘못될 수 있습니다. 이는 SAM이 여전히 복잡하고 정밀한 구조에 대해 고민하고 있다는 것을 보여줍니다.  
     

Github에 올라온 영상은 아래 링크에서 확인 가능합니다.
https://tv.kakao.com/channel/4358324/cliplink/437781131

Conclusion

데이터헌트에서는 이러한 기술을 통해 비디오 내 객체 Segmentation을 더욱 효과적으로 할 계획입니다. 아시다시피 동영상은 연속적인 이미지의 집합이기 때문에, 작업량이 많아 보여도 이전(과거) 또는 다음(미래) 프레임의 정보를 잘 활용한다면 객체 검출을 효과적으로 할 수 있습니다.

따라서 AI의 도움 없이 작업했을 경우와 모델을 적용한 후에 작업했을 경우를 비교하여 결과를 공유드릴 수 있도록 하겠습니다.

Vision transformer에 대해 자세히 알아보기

Reference

Talk to Expert