본문 바로가기

Object Tracking 공부

MAT: Motion-aware multi-object tracking 논문 공부

이 논문은 NeuroComputing'22에 publish된 논문으로 2023.10.26 기준 74회의 citation을 보유하고 있다.

논문은 https://www.researchgate.net/profile/Jun-Zhao-36/publication/344197962_MAT_Motion-Aware_Multi-Object_Tracking/links/5fe36be2299bf140883a2ffc/MAT-Motion-Aware-Multi-Object-Tracking.pdf 에서 찾아볼 수 있고, 코드는 공개된 것이 없다 ㅠㅠ 😢

 

Introduction

이 논문은 tracking-by-detection을 통해 MOT를 푸는 논문이다. 기존의 논문 중 대부분은 appearance feature를 사용하여 association을 푸는 경우가 많았는데 이는 Kalman filter만 사용하는 것보다는 성능이 좋긴 하나, 다양한 한계점이 있다고 지적한다. 예를 들어, appearnace feature를 사용하는 데에 시간과 계산량이 많이 소요되기도 하고, 대상이 유사하거나 흐릿하고 불안정한 경우 등이 있다고 한다. 🤔 이 논문은 appearance feature 대싱 motion-based prediction을 사용하여 association을 푸는 것을 제안한다 (그래서 모델이름도 Motion-Aware Tracker (MAT)), motion feature 만 사용해도 충분히 association을 풀 수 있기 때문이다. 

 

이 논문의 주요한 contribution은 다음과 같다.

[1] 카메라의 움직임과 object의 움직임을 동시에 해결하기 위해 Integrated Motion Localization (IML) 모듈을 제안

[2] 장기간 occlueded된 object를 motion-predictor에 연결하기 위해 Dynamic Reconnection Context (DRC) 라는 trajectory smoothing module을 제안

[3] Association을 수행하기에 앞서 중복된 track을 제거하여 효율성을 높이는 3D Integral Omage (3DII) 모듈을 제안

Integrated Motion Localization (IML)

저자는 카메라와 object의 독립적인 움직임으로 인해 발생하는 Kalman constant velocity assumption에 오류가 발생하고, 이를 해결하기 위한 방법으로 두가지가 있다고 언급했다. 첫번째 해결책은 epipolar geometry 인데, 이 방법은 이미지의 특징점을 매칭해야하고, 이 특징점들이 종종 그라디언트 정보가 풍부한 곳에 분포되어 있어 object 자체에 분포되기 쉽다는 단점이 있다고 한다.. (무슨 소리지? 🤔). 두번째 해결책은 affine transformation이다. 이 방법은 이미지 매칭에 기반하고 affine matrix를 품으로써 근사적으로 문제를 해결한다고 한다. 사실, IML은 BoT-SORT 라는 prior work과 매우 유사하다고 하는데, BoT-SORT와 마찬가지로 affine transformatioin 이후, updated Kalman filter를 얻을 수 있다. 

(자세한 update 공식은 아래와 같다.)

Proposed IML can be established as above

Dynamic Reconnection Context (DRC)

DRC는 두가지 component로 구성된다. 하나는 동적으로 분실된 (occluded / disappeared) track을 메모리에 보관할 기간을 동적으로 결정하는 모듈이고, 다른 하나는 trajectory smoothing을 위한 track filling 모듈이다. 저자는 crowding과 mutual occlusion이 일어날때 appearance feature에만 의존한 Re-ID로는 충분하지 않다고 했다. 이 문제를 해결하기 위해 MAT를 포함한 다양한 MOT works에서 Kalman filter같은 motion-prediction을 통해 향후 frame에서 missing track을 복구하는 접근법을 취한다. 하지만 저자는 track이 사라져서 관찰값을 없는 경우에 Kalman filter의 예측값이 점점 악화된다는 점을 지적했다. (관찰값이 없어도 Kalman filter는 계속 update된다.) 

Motion-based dynamic reconnection mechanism. 저자는 어떤 track이 occlusion 등의 이유로 사라졌을때, 향후 reidentification을 수행하기 위해 사라진 track 들을 메모리안에 일정시간 보관한다. 이때 메모리 안에서의 보관 기간을 카메라와 object의 비선형 움직임 정도에 기반하여 동적으로 결정된다는 것이 contribution이라 할 수 있겠다.

아래 equation을 확인하면 자세한 정보를 얻을 수 있는데, 간단히 얘기하자면, motion uncertainty가 높은 track일수록 낮은 survival time을 부여한다는 것이다.

Motion-based dynamic-window

Trajectory smooth circular pseudo-observation trajectory filling. 모종의 이유로 몇 frames 이전에 분실되었던 track을 다시 찾았다고 가정해보자. 이후 motion prediction을 위해서 Kalman filter를 복원해야햐는데, 기존의 선형 Kalman filter는 오차가 매우 크다. (분실된 기간이 길수록 더 성능이 악화된다.. 🙄) 저자는 단순히 linearly approximated 된 분실된 기간 동안의 과거 trajectory를 smoothing 하기 위해서 더 복잡한 전략을 사용했다. 

DRC의 trajectory smoothing

위 그림에서 A는 track이 사라졌던 위치이고, B는 그 track이 다시 발견된 위치이다. 우리의 목적은 중간 frames의 missing track을 다시 채워넣는 것은데, 이걸 해야하는 이유는 복원된 track을 사용하여 motion predictor를 update 해야하기 때문이다. DRC가 missing track을 발견하는 순서는 다음과 같다.

[1] AB의 중간값을 선형적으로 예측하여 초기화한다. (하늘색 line)

[2] IML 모델을 사용하여 A에서 B로 업데이트를 수행 (보라색 화살표)

[3] IML 모델을 사용하여 B에서 A로 업데이트를 수행 (빨간색 화살표)

결과적으로 bi-directional IML smoothing을 통해 fillting trajectory를 계산할 수 있고, 이건 vanilla Kalman filter (회색 line) 보다 훨씬 우수하다고 한다.

3D Integrated Image Module (3DII)

3DII는 association 대상 (track, object)가 많을때 중복계산을 줄이기 위해 사용할 수 있는 알고리즘이다. 일반적인 경우, 모든 track, object사이의 비용행렬 계산은 아주 무거운 경우가 많은데, 그에 비해 일부 detection-track pair는 redundant 하여 버려도 상관이 없다고 한다. 3DII 알고리즘은 detection과 track 사이의 IoU 비슷한 overlapping score를 계산해서 그 값이 충분히 크지 않으면 다 filtering 시켜버리는 알고리즘이다. 

The encoding and filtering process of 3DII module

위 figure의 왼쪽을 보면 K개의 detection이 검출된 상황이라는 것을 알 수 있다. 여기서 predicted detection들이 위치하는 영역이 binary mask로 표현이 되는데 이걸 아래 dynamic programming transfer equation으로 update하면 오른쪽 figure의 map으로 보낼 수가 있다. (그냥 detection-track pair 간 mask multiplication으로 구하면 안되는건가? 🤔 ) 

Transfer equation of dynamic programming

이후 (x1y1,x2,y2)의 좌표를 가지는 어떤 track이 들어왔다고 가정해보자. 그럼 아래 equation을 통해 해당 track과 어떤 detection이 연결되는지를 M x N grid map으로 계산할 수 있다. 아래 $I_{3D}$ 값이 0보다 작으면 해당 detection-track pair를 discard하는 방식으로 작동한다. (그냥 detection-track pair 간 mask multiplication으로 구하면 안되는건가? 🤔)

Overall Process

Illustration of the proposed MAT architecture

 

제안된 MAT 알고리즘을 요약하자면, IML 모듈은 움직임 보정을 담당하고, 그 다음 3DII 모듈은 detection-pair 쌍간의 유사도를 계산하고 필요없는 pairs들을 폐기한다. 마지막으로 DRC를 통해 track의 수명기간을 동적으로 결정하고, IML을 사용하여 비활성 궤적을 복원한다.