본문 바로가기

Object Tracking 공부

QDTrack: Quasi-Dense Similarity Learning for Multiple Object Tracking 논문 공부

이 논문 (QDTrack)은 CVPR'21 에 publish 된 논문으로 2023.10.23 기준 260 회의 citation을 가지는 꽤 핫한 논문이다.

알고리즘이 (개념만 들으면) 간단하고, plug-in 하기도 쉽고, 성능도 많이 오르고, 코드도 잘돼있어서 인기가 많은듯하다.

(https://github.com/SysCV/qdtrack.에서 코드도 찾아볼 수 있다.)

Introduction

MOT 논문을 좀 읽어본 사람들이라면 대부분의 MOT works에서 loss를 줄때, 아래 figure의 (a,b) 같은 frame 내의 Det/GT를 한개씩 매칭시켜서 Det loss 또는 ID classification loss를 주었다는 사실을 알고 있을 것이다. 하지만 QDTrack의 저자는 이러한 sparse matching 방식이 이미지 안에 사용가능한 많은 수의 proposals을 버리게되어 occlusion이 심하거나 cluttered scene에서 suboptimal performance를 보인다고 한다. 이 문제를 극복하기 위해 QDTrack은 quasi-dense similarity training을 제안한다 (여기서 quasi- 는 '유사의' 라는 뜻이다). 아래 figure (d)를 보면 두개의 neighboring frames을 사용해서 여러개의 bounding box끼리 복잡한 복잡한 matching을 수행하는 것을 볼 수 있다. 이와 같이 uasi-dense similarity training 을 요약하자면, 1) 두개의 frame 사이에서  2) 수많은 training samples과 positive/negative samples를 densely matching하는 3) contrastive learning 알고리즘이라 할 수 있겠다. 이 이외에도 backdrop 처리라던가, bi-directional softmax 라던가, duplicate removal이라던가 하는 자잘한 디테일이 있는데 그건 아래서 확인하도록 하자.

Traditional MOT models with sparse ID classification

Related Works

일단 이 논문이 object detection과 instance association이 완전히 분리된 논문이라는 것을 기억하자.

(이전 포스팅들을 보면 Transformer나 Graph structure를 이용하여 detection/tracking을 동시에 수행하는 예들이 있다.)

그러다보니 이 논문의 related works는 existing works의 association methods에 초점이 맞추어져있다.

[1] Location and motion : Kalman filter, optical flow, displacement regression 등을 사용해서 다음 frame에서의 object의 위치를 예측하는 방법이다.  이후 예상 위치의 box와 predictive box 사이 association을 수행한다. 하지만 vanished objects 등을 처리하기 위해 re-identification module이 필요하다고 한다.

[2] Appearance similarity : object의 feature간 similarity를 측정해서 identification을 수행한다. 보통 localization-based association을 보조하는 느낌으로 사용된다고 하는데, 저자는 이게 불만인가 보다. 저자가 말하길, QDTrack은 previous works의 localization module없이 단순 appearance similarity 하나만으로 SoTA성능을 찍었다고 한다. 저자들은 QDTrack이simple framework이라고는 하나,,, 내가 보기엔 Quasi-dense similarity training이 구현하기 썩 쉬워보이진 않았다..ㅎㅎ

Methodology

1. Quasi-dense similarity learning

아래그림과 같이 수~많은 bounding box 끼리 pair를 이루어 contrastive learning을 수행한다. 일반적인 contrastive learning을 상상하면 하나의 training sample에 대해서 1개의 positive sample, 100개 정도의 negative samples 정도를 봐왔을 것이다. 하지만 이 논문은 128개의 training samples에 대해서 128개의 negative/positive samples을 사용한다 (정말 많다!).

여기서 training samples 을 정하는 기준은 아마 confidence score 인것으로 보이며, positive/negative samples은 training samples와의 IoU score를 기준으로 결정한다고 한다.

 

Training pipeline of QDTrack

그래서 Quasi-dense similarity learning 의 training objective loss는 다음과 같다.

Training loss of quasi-dense similarity training

여기서 $v, k^{+}, k^{-}$는 각각 training samples, positive samples, negative samples에 대응된다. 단 하나의 positive sample을 사용하는 infoNCE loss와 달리 많은 positive samples을 쓰다보니 k+에 대한 summation이 있는걸 볼 수 있다.

참고: 사실 이 loss는 아래 original InfoNCE loss 를 뒤집은 다음 분자/분모에 exp($v \cdot k^{+})$ 을 곱해준 것이다.

Original InfoNCE loss

QDTrack은 위의 loss 말고도 auxiliary regularization loss를 하나 더 사용한다.

Auxiliary regularization loss

logit의 크기와 logit의 cosine similarity를 동시에 constrain해주는 역할을 한다고 한다. 되게 중요한 역할을 수행하고 성능에도 꽤나 큰 영향을 미칠 것 같은데, 설명도 한두줄 밖에 없고 ablation study에도 제외되어 있었다.. 😒🤔

 

2. Object association

QDTrack에서는 appearance similarity 단 하나의 정보를 가지고 object association을 수행한다. 이 간단한 method 하나만응로 SoTA를 찍은게 참 신기하다 😏👍. 이 similarity를 예측할땐, bi-directional Softmax를 사용한다. 일반적인 Softmax가 기준점 하나를 기준으로 다른 samples과의 유사성만 측정했다면, bi-directional Softmax는 목적지 point 에 대해서도 모듣samples을 전부 고려하는 똑같은 operation을 수행한뒤 그 평균값을 측정하는 것이다. (백문이불여일견! 아래 수식 볼것)

Bi-directional Softmax

이렇게 bi-softmax 값을 측정해서 가장 similarity score가 가장 높은 object 끼리 연결한다. 이때 연결할 대상은 없지만 적당히 confidence score가 높은 object는 새 track으로 지정한다고 하며, 사라지는 track은 바로 버리지 않고 backdrops 라고 하여 몇 프레임동안 메모리에 저장해서 reidentification이 가능하게 도와준다고 한다.

QDTrack의 testing pipeline. 솔직히 뭘 어쩌겠다는건지 잘 모르겠다. Key frame이 current fame이고 reference frames가 past frames인 것 같기는 한데... Vanished Track이랑 Backdrops랑 어떻게 다른건지도 모르겠고,, similarity를 재서 track들이 또 어떻게 update되는지도 잘 모르겠다.