본문 바로가기

Object Tracking 공부

TraDeS : Track to Detect and Segment, An Online Multi-Object Tracker 논문 공부

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

이 논문은 Siamese network (Re-ID methods) 처럼 feature similarity를 사용해서 association을 수행하는 논문인데, 특이한점이 있다면 1) cost volume 이라는 것을 사용한다는 것과, 2) association에 사용했던 정보 (cost volume)을 warp 시켜서 detection에 이어서 사용한다는 것이다. 논문은 https://arxiv.org/abs/2103.08808에서 찾아볼 수 있고, 코드는 https://jialianwu.com/projects/TraDeS.html에서 확인할 수 있다. 

Introduction

먼저, 이 논문은 MOT 방법에 크게 두 갈래가 있다고 설명한다 (아래 이미지 참고). 

(1) Tracking by Detection (TBD) : 먼저 detection을 수행하고, 다른 network이나 algorihtm을 통해 associationi을 수행

👉 end-to-end training 이 안되고, two-stage processing이 안된다는 단점이 있다. (잘만 된다면 이게 왜 단점?🤔)

(2) Joint Detection and Tracking (JDT) : detection과 tracking (association)을 동시에 수행.

👉 하지만 기존의 JDT 방법들은 다음과 같은 단점들이 존재

      1) detection을 수행할때 tracking 정보를 활용하지 않는다.

      2) 기존의 Re-ID loss가 tracking 성능을 저해시켰다.

Comparison of different MOT pipelines

이 논문(TraDeS)은 기존의 CenterTrack 이라는 MOT work에서 발전한 논문이며, CenterTrack 처럼 1) object center와 2) center간 offset (displacement) 을 예측한다. 여기에 더해서, TraDeS는 특별히 두가지 scheme (CVA, MFW)를 제안했다.

CVA (Cost Volume based Association) : point-wise re-embedding similarity 비교를 통해 offset을 예측

👉 대충 간단히 말해 여러 frame 사이 embedding이 비슷한 두 object를 찾고, 그 차이를 offset으로 예측하는 것이다.

MFW (Motion-guided Feature Warper) : feature를 detection head에 전달하기 이전에 여러가지 정보를 적용한다.

👉 구체적으로, CVA에서 계산한 offset 정보와 이전 frames의 features 정보를 규합하여 적용한다. 

👉 기존의 JDT method와 다르게 motion clue (offset 정보)를 사용해 detection을 향상시킨다는 특징이 있다.

Method : CVA (Cost Volume based Association)

Overview of TraDeS. 앞으로 알고리즘 설명은 이 figure를 기반으로 진행..!

 

Cost Volume. 위 overview figure에서 보이는 C 👉 $(H_c \times W_c \times H_c \times W_c)$ 에 대응되는 정보이다. feature extractor output $f$를 별도의 embedding network $\sigma(\cdot)$에 통과시켜 얻은 re-ID embedding $e^t$를 통해 계산하는데, 아래와 같이 두 feature 간의 cosine similarity로 cost $C$가 정의된다.

 

current frame의 모든 point $(i,j)$ 에 대해 past frame의 모든 point $(k,l)$이 대응되기 때문에 4차원의 $(H_c \times W_c \times H_c \times W_c)$ cost volume이 생성된다. 여기서 cost라는 의미가 살짝 애매한데, 정확히는 cost보다는 likelihood가 더 적절한 표현인 듯 하다.

👉 한줄로 설명하자면,, t frame의 feature $(i,j)$와 t-$\tau$ frame의 feature $(k.l)$ 사이의 similarity를 측정하고,, 이 similarity가 높게 나타나는 위치를 offset으로 사용한다. 

아래 M, V이 각자 너비, 높이에 대응되는 template이 되고,,, 여기다 0~1 사이의 $C$를 곱해서 offset $O$을 얻어낸다. 

CVA가 offset을 계산하는 방법

 

Training of CVA. Association은 맞다/틀리다 의 두가지 결과만 존재하므로 binary prediction을 위한 loss를 설계할 수 있다. TraDeS는 foreground-background imbalance 해결을 위해서인지 focal loss를 사용하였고,,, negative pair (association 실패) 에 대해서는 loss를 주지 않았다 (도대체 왜?? 🤔🤔🤔)

training loss of CVA

Method : MFW (Motion-guided Feature Warper)

위의 overview figure에도 있지만... 참고 하시라.. ㅎㅎ

 

MFW의 역할은 두가지이다. 1) CVA의 offset정보와 과거의 feature $f$를 사용하여 정보를 생성하는 것과 2) 현재와 과거의 정보를 규합하여 feature를 향상시키는 것이다.

Temporal Propagation. 이름 그대로, 이전 frame $t - \tau$의 정보를 현재 frame $t$에서 detection 등에 사용할 수 있도록 가공하는 과정이다. 먼저 이전 frame의 feature에 center map을 곱해서 center attentive feature $\bar{f}^{t-\tau}$를 만든다. 

👉 center attentive feature란 무슨 class든 간에 뭐라도 object가 있는 부분만 highlight시킨 feature map을 말한다.

이후 center attentive feature $\bar{f}^{t-\tau}$ 와 CVA에서 얻은 offset 정보를 결합하여 propagated feature $\hat{f}^{t-\tau}$를 계산한다.

👉 이 과정에서 deformable convolution을 사용한다고 하는데 관련 설명이 매우 빈약하다.

 

Feature Enhancement. 앞에서 과거 frames ($t-1, t-2, ..., t-\tau$)의 propagated features $\hat{f}$를 계산하였으니, 현재 feature와 과거 feature들을 합해서 feature enhancement를 하면 된다. 별건 아니고, 여러 feature들을 단순히 weight $w$를 사용하여 가중평균한다. 👉 여기서 weight $w$는 neural net이 예측하는 값인데,, 단순 평균보다 미세하게(..) 좋다고 한다.

feature enhancement

Method : Tracklet Generation

Data Association.  기존의 TBD방식과 다르게 TraDeS는 offset $O^c$을 모델이 직접 예측해주기 때문에, 이 값을 사용하여 association을 수행하면 된다. 총 두가지 round 를 통해 data association이 진행된다.

(1) First round : 현재 $t$ frame의 $(i,j)$ 위치의 object와 이전 $t-1$ frame의 $(i,j)+O^c$ 위치의 object를 associate한다. 

👉 이때 radius $r$을 두어서 약간 벗어난 offset 예측도 함께 고려하는 듯 하다.

(2) Second round : $t-1$에 없었던 object가 새롭게 나타난 경우이다 (새로운 track이거나, occluded되었었던 track이다). 이전 history에 있는 모든 track의 embedding과 similarity를 계산한다.

👉 similarity가 높다면 Re-Idenfication, similarity가 낮다면 new track을 initialize한다. 

 

TraDeS Loss.  TraDeS는 2D detection, 3D detection, segmentation, CVA loss 를 전부 고려한 multi-task learning이다. (어질어질하다.) centerTrack 을 안읽어서 좀 애매하긴한데 아마 이전 논문이랑 비슷한 방식이 아닐까 싶다.

Overall loss of TraDeS

Experimental Results

Ablation study : 제안한 모듈들을 추가했을때 성능이 점진적으로 향상된다.
두번째 Ablastion study, 과거의 feature와 offset을 함께 고려하는 것이 좋고,,, 과거는 t-2 frame 정도 고려하면 충분하다고 한다.
CVA workflow visualization. 오른쪽 heatmap의 밝은 부분이 feature similarity가 높은 부분이고, 다시말해 동일한 ID의 objet가 존재할 확률이 높다.
기존의 MOT works와의 성능 비교. 적당히 오래걸리고 적당히 좋다.
학습 시 보지 못했던 다양한 데이터셋에서도 정상 작동한다고 한다.

 

 

이상 끝!!! 💪😮🤜