이번에 리뷰할 논문은 ByteTrack입니다. Bytetrack은 22 ECCV 논문으로 나온지는 꽤 되었지만 아직도 많이 사용하는 MIT 라이센스의 MOT모델입니다.
MOT의 방법은 크게 TBD(tracking by Detection)으로 detection후의 결과를 가지고 tracking하는 방법과 end-to-end로 detection과 tracking까지 한번에 학습하는 방법이 있고, TBD에서 association하는 부분을 filter기반의 방법과 learnable방법(i.e. GNN, attention)으로 나뉩니다. ByteTrack은 TBD에 filter기반의 association method를 사용하는 논문입니다.
기존의 filter기반의 MOT방법들은 low confidence detection box를 제거하기 위해 보통 0.5를 기준으로 잡고 0.5를 넘는 것만 선택해서 tracklet으로 사용하였습니다. ByteTrack의 핵심은 기존방식대로 low confidence bbox를 아예 pool에서 지우는 것은 옮은 접근이 아니다라는 생각으로 출발합니다. occlusion이 발생한 object는 실제로 존재하지만 confidence가 낮을 수 있기 때문입니다. 이러한 접근으로 Re-IDf를 사용하지 않고 단순한 방법으로 높은 성능을 보여줍니다.
BYTE
association의 pseudo code입니다.
1. detection후에 confidence가 threshold 이상의 bbox은 D_high pool에 저장하고, 이하의 bbox는 D_low pool에 저장합니다.
2. 이전의 frame의 tracklet과 kalman filter를 이용해서 현재 frame에서의 위치를 prediction합니다.
(참고로 pseudo code에서 표현이 애매한데, kalman filter는 prediction과 measurement를 association하는 전체의 process를 말합니다. 그래서 사실 17줄부터 21줄 association하는 것까지가 kalman filter에 대당하고 15줄의 kalman filter는 사실 motion model을 적용해서 prediction한다고 하는것이 더 정확해 보입니다.)
3. 첫번째 association에서는 D_high pool의 detection 결과물들과 앞서 이전 프레임의 tracklet들이 motion model을 통해 predicted된 결과물과 IOU를 통해 matching을 수행합니다.(matching시 보통 헝가리안 알고리즘을 사용합니다.)
4. 매칭되지 못한 detection 결과물들은 D_remain, 매칭되지 못한 tracklet은 T_remain에 저장합니다.
5. T_remain과 D_low를 IOU 기반으로 다시 matching을 진행합니다.
6. 최종 매칭되지 못한 tracklet들은 삭제하고 최종 매칭되지 못한 detection결과물중에 confidence가 threshold보다 높으면 새로운 tracklet으로 추가합니다.
이렇게 low confidence bbox도 활용하여 아래와 같이 막강한 퍼포먼스를 발휘하였고 short-term에서는 충분한 성능을 보여주는 것 같습니다.