본문 바로가기

Object Tracking 공부

GHOST: Simple Cues Lead to a Strong Multi-Object Tracker 논문 공부

이 논문은 CVPR'23에 publish된 논문으로 2023.11.30 기준 8회의 citation을 보유하고 있다. 논문은 https://openaccess.thecvf.com/content/CVPR2023/papers/Seidenschwarz_Simple_Cues_Lead_to_a_Strong_Multi-Object_Tracker_CVPR_2023_paper.pdf 에서 찾아볼 수 있고, 코드는 https://github.com/mattiasegu/darthhttps://github.com/dvl-tum/GHOST 에서 찾아볼 수 있다.

Introduction

이 논문은 MOT 의 association에 집중한 논문이다. 기존의 논문들은 Tracking-by-Detection (TbD) 의 paradigm을 까면서 새로운 method를 개발하기 바빴는데, 이 논문은 거꾸로 bells and whistle 없이 좋은 appearance와 motion cue만 있다면 TbD 기반의 Hungarian method Tracker도 충분히 좋은 성능을 낼 수 있다는 것을 보였다. 그래서 이 논문의 method 이름도 Good Old Hungarian Simple Tracker (GHOST)이다 😉. MOT 논문을 좀 봤다면, 기존의 works에서 association을 위해 Transformer, GCN, Siamese 등 다양한 방식을 시도했다는 것을 알고 있을 것이다. 하지만 이 논문은 기존의 association method가 쓸데없이 너무 무겁고 복잡하다고 지적한다 (그러면서 simple cues + Hungarian method 만으로도 충분하다고주장한다! 🤔). 

 

추가적으로, (아마 MOT dataset에서 훈련되지 않은듯한) 다양한 ReID networks을 MOT dataset에 적용했을때 생각보다 성능이 높게 나오지 않았다고 한다. 그 이유는 MOT가 (i) long time horizons에 걸쳐 occlusion이 자주 발생하고, (ii) 비디오 안에서 시간이 흐름에 따라 image statistics가 계속 변화하기 때문이다. 이 문제들을 해결하기 위해 GHOST가 제안하는 methodologies는 다음과 같다.

(1) on-the-fly domain adaptation : 각 비디오마다 변하는 statistics를 반영하기 위해 BN을 수행.

(2) different policies for active and inactive tracks : inactive (occlusion 때문에) 에는 다른 threshold 값을 사용한다; 이 threshold 값은 Hungarian method를 적용하기 이전에 matching을 할지 말지 결정하는 값이다.

(3) simple linear model : Kalman filter 보다도 더 간단하다.

Method - Strong appearance model for MOT

일단 기본은 ResNet-50 backbone의 feature output 사이의 distance를 cost로 사용하는 것이다. 이 논문에서 특별히 주장하는 것은 active track과 inactive track 에 대해서 다른 approach (다른 threshold)를 적용해야한다는 것이다. 

👉 여기서 active/inactive는 occlusion 등의 이유로 일시적으로 detection이 더이상 추가되지 않는지를 기준으로 정한다.

이해를 위해 아래 Figure를 참고해보자.

Distance histograms of distance between appearance features

한눈에 보기에 상당히 난해한데, 일단 (a-b)만 보면된다. 범례에 actve/inactive는 상기 설명과 동일하고 Same/Different는 실제 GT에 의해 일치하는/일치하지 않는 track 사이의 distance인지...를 의미한다 (Same과 Different가 구분이 잘 되어야 ReID 성능이 좋게 나올 것이다 😁). 위 figure로부터 얻을 수 있는 intuition은 다음과 같다.

🤔 Active, Inactive 각각 case에서 Save vs Different 가 다른 양상을 보인다. 

👉 Active / Inactive track을 처리할때 다른 approach를 사용해야한다.

그렇게 해서 나온 method가 다음과 같다 ( (1) different distance metric, (2) different threshold )

(1) Different distance metric. (new detection vs track)

Distance to Active track : 이전 timestep의 detection과 appearance distance를 측정한다.

Distance to Inactive track : inactive track 내부 모든 detection과 appearnace distance를 측정하고 평균값을 사용한다. 이렇게 얻은 값을 proxy distance (proxy appearance) 라고 부르고 그 결과가 위 figure의 (b)와 같다. 

🤦‍♂️ 솔직히 말해서 (a)와 큰 차이를 모르겠지만, 좀더 accurate하고 robust한 estimation이 가능해진다고 한다.

distance to Inactive track

(2) Different threshold (for filtering before Hungarian matching)

위 figure (b) 에 내가 그림판으로 그린 세로선을 보면 Active / Inactive track의 경우 Same / Different 를 결정하는 threshold 값이 다른 것을 확인할 수 있다. 👉 그래서 Hungarian matching 이전에 다른 threshold 값을 사용해서 filtering을 한다고는 하는데 이 threshold 값을 어떻게 계산하는지에 대한 명확한 설명은 제시되어 있지 않다. 🤦‍♂️

(3) On-the-fly Domain Adaptation

각 비디오마다 statistics가 다르기 때문에 BN을 사용해야한다고 한다. 명확히 설명되어 있지않지만 아마 batch는 같은 video 안에 들어있는 여러 frames을 의미하는게 아닌가 싶다. 그냥 단순히 BN을 사용하는 것 이상 뭐가 더 있는지는 모르겠다. 🤦‍♂️

Method - Linear Motion Model

Kalman filter 마저도 복잡하다고 한다. 이전 K frames 에서 instance의 mean velocity를 계산하고, 단순한 linear motion model 로 instance의 location을 예측해도 얼추 괜찮게 성능이 나온다고 한다. 

Proposed linear motion model

Experimental Results

Proposed method와 BN 에 대한 ablation study.
1. Kalman과 Linear가 크게 다르지 않다. 2. Our appearance + linear motion 도 충분히좋은 association capability를가진다 .
SoTA methods 와 비교했을때도 그리 나쁘지 않은 성능을 보인다고 한다..