SAMURAI

SAMURAI: Adapting Segment Anything Model for Zero-Shot Visual Tracking with Motion-Aware Memory

domain: tracking

project page

  • visual object tracking에 더 특화된 SAM2 variant

fig1

  • SAM2에는 전형적인 failure case가 두 개 있음 (Fig. 1).
    • confusion in crowded scene
    • ineffective memory utilization during occlusions
  • 이를 해결하기 위해 다음 두 방법을 사용함.
    • 따라서 object trajectory를 활용함.
    • similar object differentiate ability를 향상함.

 

 

Method

fig2

Motion Modeling

  • Kalman filter로 다음 위치를 예측한 뒤 prediction과 SAM output mask의 IoU를 구함.
  • SAM output affinity와 함께 weighted average로 mask를 선택함.
  • Kalman filter modeling
    • dot 은 변화량을 의미함 $$\mathbf{x} = [x, y, w, h, \dot{x}, \dot{y}, \dot{w}, \dot{h}]^T$$
  • prediction $$\hat{\mathbf{x}}{t+1|t} = F \hat{\mathbf{x}}{t|t}$$
  • KF-IoU score $$s_{\text{kf}} = \text{IoU}(\hat{\mathbf{x}}_{t+1|t}, M_i)$$
  • mask selection $$M^* = \arg\max_{M_i} \left( \alpha_{\text{kf}} \cdot s_{\text{kf}}(M_i) + (1 - \alpha_{\text{kf}}) \cdot s_{\text{mask}}(M_i) \right)$$
  • update $$\hat{\mathbf{x}}{t|t} = \hat{\mathbf{x}}{t|t-1} + K_t (z_t - H \hat{\mathbf{x}}_{t|t-1})$$

 

Motion-Aware Memory Selection

  • 모든 frame을 memory bank에 넣지 않음
  • 특정 threshold를 충족하는 경우에만 memory에 넣음

 

 

Discussion

  • SAM2의 memory가 짧은 점을 지적한 게 좋음
  • tracking을 왜 하필 Kalman filter로 하는지?