본문 바로가기
기술 이야기/논문 리뷰

[논문 리뷰] Track Anything Models(TAM) 리뷰

by 넌 꿈이 뭐야? 2023. 5. 5.

안녕하세요, 제가 최근에 포스팅했던 Segment Anything 논문 리뷰가 정말 핫합니다. 그만큼 많은 분들께서 이 연구의 중요성을 의식하신다는 뜻이겠죠?? 그런 의미에서 오늘은 Segment Anything을 비디오에 적용한 Track Anything을 소개할까 합니다. Full-paper로 나오지는 않았고, 서비스를 만들기 위해 필요한 모델을 갖다 붙인 느낌이지만 결과가 상당히 좋은 것 같아 리뷰할까 합니다.

Segment Anything(SAM)의 특징

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

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

저는 이 중 눈에 띄는 강점이 Interactive라고 생각합니다. 왜냐하면 단지 정확도가 좋다(Powerful)는 장점만 있다면 딱히 새로울 것 없이 기존의 응용 분야를 그대로 답습할 것이기 때문입니다. 하지만 Interactive라는 장점은 이제 설명할 비디오에서의 Interactive 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)

TAM overview

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

  1. 첫번째 프레임에서 SAM을 통해 관심 객체의 초기 마스크를 얻는다
  2. XMem을 이용해서 이후 프레임들의 마스크를 얻는다
  3. 만약 마스크가 마음에 들면 계속 진행, 혹시 마음에 들지 않으면 SAM을 통해 마스크를 수정한다 (Prompt로는 XMem에서 얻은 Probes, Affinities와 마음에 안드는 해당 프레임의 마스크)
  4. 사람이 조금 손을 봐서 다시 2번으로 간다

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

XMem

 

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에 대해서 짧게 언급하면

  • Probes: 는 잘 모르겠고 (논문에 나오지가 않음)
  • Affiinities: Query (현재 프레임)와 Memory keys (이전 프레임셋) 간의 유사도를 계산한 matrix입니다.

Results

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

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

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

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

 

아래는 정성적인 결과를 첨부합니다.

 

반응형

댓글