본문 바로가기

Object Tracking 공부

SiamMOT: Siamese Multi-Object Tracking 논문 공부

이 논문은 CVPR'21에 publish된 논문으로 2023.11.27 기준 114회의 citation을 보유하고 있다.

논문은 https://openaccess.thecvf.com/content/CVPR2021/html/Shuai_SiamMOT_Siamese_Multi-Object_Tracking_CVPR_2021_paper.html 에서 찾아볼 수 있고, 코드 https://github.com/amazon-science/siam-mot 에서 찾아볼 수 있다.

Introduction

이 논문은 Siemese-based tracker를 사용하여 online tracker를 학습시키는 논문이다 (여기서 online MOT란 future frame에 대한 정보를 사용할 수 없는 tracker를 뜻한다).  이 논문은 Siamese Multi-Object Tracking network (SiamMOT)를 제안하였고, SiamMOT는 detection network인 Faster-RCNN에 기반을 두고 있는데, 정말 high-level로 말하자면 아래 RPN output에다가 proposed motion model (IMM or EMM)을 연결해서 object의 motion 정보 (offset, width/height change)를 예측한다.

Faster-RCNN의 model pipeline

이 논문 이전에는 Tracking-by-Detection 을 기반으로한 tracker가 많다고 하였는데, 이 녀석들은 expensive cues (optical flow, re-identification) 등을 생성하는데 비용이 많이 드는 단점이 있다고 한다. 하지만 SiamMOT는 Siamese-based tracker이기 때문에 비교적 계산 비용이 저렴하고, 또 특히 instance-level motion 정보를 직접적으로 고려함으로써 큰 성능 향상을 보였다고 한다. (🤔 motion 정보를 직접적으로 고려한다는 것이 정확히 무엇을 말하는 것인지는 모르겠지만,,,, instance 별로 motion 정보를 예측하도록 하는 architecture 그 자체를 의미하는 것 같다. (근데 이건 다른 work도 한거 아닌가? 🤔)

SiamMOT: Siamese Multi-Object Tracking

SiamMOT는 FasterRCNN의 RPN output을 가지고 작동한다 (아래 이미지와 같이 backbone에 RPN으로 ROI align 적용한 RPN feature를 사용). 기본적으로 Siamese tracker 이다보니, 아래처럼 "template - search" pair를 가지고 학습이 되는데 두 pair 사이의 correlation을 proposed motion model 에 feed하여 motion 정보를 예측하게 하고, 이를 detector (Faster-RCNN)의 ouptut과 결합하여 최종적인 tracking prediction을 생성하는 방식이다. 

SiamMOT의 model overview, template frame (I^t)의 backbone feature map은 실제보다 1/2 의 크기로 묘사되었음.

 

Motion modeling with Siamese tracker. Siemese tracker는 기본적으로 "template ($R_t$) - search ($S_t$)" pair 를 input으로 받고, target instance $i$의 confidence score $v_i$와 detection $\tilde{R_i}$ 를 예측하게 된다. template ($R_t$) 는 예전 frame에서 감지됐던 instance, search ($S_t$) 는 RPN이 예측한 region이다. 또, 여기서 confidence score $v_i$는 (x,y)가 bounding box 안에 존재한다면 1, 아니면 0이 되야한다 (center에 가까울 수록 continuously 하게 높아지는게 아니다. 근데 왜 이렇게 안했지? 🤔). 여기서 $\mathcal{T}$는 learnable Siamese Tracker이고 이 논문에서 제안된 IMM or EMM에 해당된다. 여러 Pair 를 동시에 처리할 수 있어서 scalability가 좋다고 한다. 😁

Siames Tracker (theta는 parameter임)

 

Explicit motion model (EMM). 논문에서 제안된 IMM은 EMM과 orthogonal하게 사용될 수도 없고, EMM보다 성능도 낮아서 여기선 EMM만 다루도록 하겠다. EMM의 explicit이라는 keyword는 pixel-wise cross-correlationi과 instance-wise motion predictiion에서 유래했다. EMM의 구조는 아래 figure는와 같으며 이는 위 figure의 빨간 box에 해당된다. 

Network architecture of Explicit Motion Model (EMM),

Siamese tracker이다보니 두 pair간의 similarity를 계산하는 과정이 존재하는데, 구체적으로 template과 search 사이 channel-wise cross correlation (SiamRPN++에 잘 나와있다) 을 계산하여 response map $r_i$를 구한다. 이 response map이 Fully convolutional network (FCN)을 통과해서 confidence score ($v_i$)와 location offset ($p_i$)가 예측된다. 

$v_i$ : 0~1 사이 값, p 에 대해 attention으로도 사용되고, 나중에 NMS 등등에 unconfident pred를 exclude 하는데 사용.

$p_i$: 4-dim offset (x,y,w,h) 비스무리한 무언가를 예측

구체적인 EEM 작동 기작은 이 equation 과 같다.

여기서 $eta_i$ 는 penalty map인데 center로부터 멀리 떨어질수록 더 높은 penalty를 부여한다. 자세한건 아래 참고

(1) confidence score $v_i$ * penalty map $eta_i$ 에 argmax를 거쳐 최적의 center 위치 ($x^*,y^*$)를 예측

(2) 최적의 center 위치 ($x^*,y^*$) 에 대응되는 confidence $v$, offset $p$ 를 추출해서 사용한다.

Penalty map. $C$는 cosine window, $S$는 Gaussian function

EMM을 훈련하는데 필요한 loss는 다음과 같다. 

여기서 $L_{focal}$은 focal loss, $L_{reg}$는 IoU loss를 의미하고, 각 bounding box의 크기에 상관없이 비슷한 range의 loss를 생성하기 위해 coefficient $w(x,y)$를 곱해준다. 여기서 $v^*$은 model prediction이 아니고 binary ground truth이다.

 

Training. SiamMOT는 end-to-end training이 가능한 모델이고 Backbone, Detector, Tracker (motion model)이 다같이 한번에 학습된다. 이때 사용되는 loss는 $\mathit{l = l_{rpn} + l_{detect} + l_{motion}}$ 과 같고 여기서 $l_{rpn}, l_{detect}$은 Faster-RCNN의 loss와 동일하고, $l_{motion}$이 위에 EMM의 loss $L$과 동일하다.

 

Inference. Faster-RCNN의 prediction (detection) $R$ 과 Motion model (EMM)의 prediction $\tilde{R}$ 은 동시에 사용한다. 

(1) 우선 $R$ 과 $\tilde{R}$의 IoU가 0.5 가 넘지 않는 모든 instance를 exclude한다.

(2) confidence가 $\alpha$ 보다 낮은 instance도 exclude한다.

(3) confidence가 $\beta$ 보다 높은 새로운 instance는 새로운 trajectory로 고려한다.

(4) confdience가 연속된 $\tau$ frames 동안 $\alpha$ 보다 낮은 trajectory만 kill한다. (occlusion 에 대비하기 위함이다)

Experimental Results

 

다양한 dataset에서 baseline 보다 높은 성능을 보였다.
EMM을 쓰는게 성능이 제일 좋다는 ablation study

 

Siamese 특성상 triplet을 어떻게 구성하는지가 중요하다. negative (N), positive (P), hard (H) samples 을 전부 사용해야 성능이 좋다는 내용이다.
occlusion에 대비하려면 buffer의 frames을 늘리는게 좋다고 한다.