Abstract
Detection과 tracking 두개를 동시에 학습 시키고 싶지만, 성능 이슈가 발생한다.
- 이는 두 task가 시너지를 내면서 학습하는게 아닌, 서로 충돌하면서 애매하게 학습하기 때문
이런 성능 이슈는 detection과 tracking 각각으로부터 classification을 학습하면서 발생하는 기울기가 충돌하기 때문이라고 분석했다.
- 기울기 충돌은 각 task에서 sample을 positive로 결정하는 방식이 원인이라 분석
기울기의 충돌을 해결하기 위해 다음을 제안한다.
- Detection 및 tracking에서 정답이라고 판단되는 object query를 4개의 종류로 나눔
- 나눠진 4개의 종류를 분석하여, 특정 종류에 대한 기울기를 조정
- 조정할 기울기는 attention 연산에서 masking으로 구현
- 추가적으로 기존 방식에서 사용하는 tracking쪽 classification loss를 수정
최종적으로 진정한 end-to-end 3D MOT framework를 제안한다.
Introduction
최근 몇몇 접근들은 detection과 tracking을 같이 최적화하는 3D multi-object tracking(MOT)을 제안하고 있다.
- Transformer 구조를 사용
- Track query로 객체를 추적하며, offline detector나 post-processing에 대한 의존이 없다.
- 모두 detection과 tracking이 최적화 과정에서 서로 충돌하는 문제를 가진다.
두 task의 충돌은 결국 baseline detector에 비해 precision 및 recall의 저하라는 결과를 야기한다.
이를 해결하기 위해 detection과 tracking 서로가 다른 방식으로 학습하는 접근들이 존재했다.
- Detection 쪽을 tracking 보다 먼저 학습시키고, 이후 detector는 얼림(학습 x) --> PF-Track (CVPR 2023)
- 이미 만들어진 detector를 사용(얼려서) --> MOTRv2 (CVPR 2023)
- Detection과 tracking 각각에 대해 다른 object feature를 사용하게 하여 충돌을 회피 --> DQTrack (ICCV 2023)
- DQTrack도 학습된 detector를 얼려서 사용한다.
모두 아래 단점들을 하나 이상 가진다.
- End-to-end 학습이 아니거나
- One-stage가 아니거나
- Detection쪽은 학습을 안하거나
- Fine-tuning 하거나 (Fine-tuning 없이 처음부터 학습하는 것을 training from scratch라고 표현)
물론 앞으로 제안할 framework인 OneTrack은 위 단점들이 하나도 없다!
두 task가 어디서 충돌이 나는지 알아보기 위해 pilot study를 진행했다.
결과를 보면, detection과 tracking이 동시에 classification을 진행할 때, 성능이 크게 감소한다는 것을 알 수 있다.
- Tracking classification 및 regression이 둘중 하나라도 존재하면, tracking 성능이 baseline에 비해 크게 오르는 것은 맞다. (AMOTA의 향상)
- Classfication은 특히 IDS (ID switching)에 크게 영향을 준다는 것을 알 수 있다.
따라서 classification에서 문제가 발생한다는 것을 알 수 있다.
Classification의 문제는 각 task로부터 만들어지는 기울기가 충돌하기 때문이고, 이런 충돌은 sample을 positive로 분류하는 방법 (postivie sample definition)이 task끼리 다르기 때문이라고 분석했다.
- 이런 기울기 충돌을 해결함으로써 detection과 tracking을 동시에 학습시킬 수 있게 된다.
이 논문에서는 detection과 tracking을 동시에 학습시키는 one-stage model OneTrack을 소개한다.
- "Tracking by track queries" 패러다임을 사용한다.
- Positive sample definition에 따라 object query에 대해 한번, tracking query에 대해 한번 ground truth를 할당한다.
- OneTrack은 두 task에 기반해서 object query를 총 4개의 그룹으로 분류한다.
- 가벼운 classification head를 통해 두 task 각각에 대해 positive sample을 결정하도록 한다.
- 각 task에서 positive로 분류하고있는 object에 대해서만 역전파를 시킨다.
- 이를 통해 위에서 소개된 기울기 충돌 문제를 해결한다.
- Positive로 분류된 객체에 대한 object query들중 충돌하는 query들은 attention계산 시, masking 한다.
- 이는 decoder에서 의도하지 않은 query간의 경쟁을 막는다.
- 기존에 사용되던 tracking에 대한 loss를 수정해서 부정확한 예측을 억제한다.
Method
Reviewing the "Tracking by Track Quries" Paradigm
OneTrack도 다른 transformer-based tracker들 처럼 object query를 통해 3D 객체들에 대한 detection과 tracking을 한다.
- 따라서 결과는 3D bounding box + confidence score + ID 가 된다.
OneTrack은 각 frame에 대해, object query들을 사용한다.
- 이전 frame으로부터 전달받은 track query + 새로 생성된 detection query로 구성된다.
Decoder에서 query들을 업데이트하며, 총 6개의 layer를 사용한다.
- 입력은 multi-view image feature + object query + attention mask 이다.
- 일반적으로 object query끼리의 attention 연산시, attention mask는 사용되지 않는다.
Decoder 이후, 업데이트된 object query들은 classification 및 regression head를 거친다.
- 결과로 나오는 prediction box들에 ground truth를 할당한 뒤, classification 및 regression loss가 계산된다.
최근 연구들은 일반적으로 몇개의 과거 frame에 대해 track query들을 유지시킨다.
- 이렇게 저장된 과거 query들은 현재 frame의 tracking process에서 참조하는 식으로 사용된다.
Tracking by track query 패러다임은 track query들을 다음 frame으로 전달하는 방식을 사용한다.
- Post-processing을 통해 각 frame에서 생성된 객체들을 연결시키지 않는다.
이런 방식은 ground truth가 track query에 할당된 시점부터 track query가 사라지는 시점까지 할당이 유지된다.
- 이때 할당되어 관계를 가지는 ground truth와 track query의 쌍을 "locked pair"라고 부르자.
- 반대로 할당되지 않는 경우, "free ground truth" 및 "free track query"라고 부르자.
반면 detector는 각 frame에서 가장 정확한(ground truth에 가장 가까운) sample들이 postive로 분류된다.
- 이러한 차이는 detection 쪽에서 positive로 분류된 sample이 tracking 에서는 negative로 분류될 수 있고, 반대로 tracking에서 positive면서 detection에서 negative sample일 수 있다는 것을 의미한다.
위 그림은 앞서 설명한 positive sample definition의 차이가 야기할 하나의 예시이다.
- (a), (b)에서 봐야할 box는 $Q_C, \ \ Q_{C}', \ \ Q_X$ 이다.
- T+1 시점의 $Q_{C}'$ 는 T 시점의 $Q_C$ 와 같은 ID를 가짐을 의미한다.
(a), (b)에 대한 설명은 다음과 같다.
- Detector는 가장 정확한 box만을 positive로 분류하기 때문에 T+1 시점에서 $Q_{C}'$ 를 positive로 분류하지 않는다.
- Tracker는 한번 ground truth가 할당된 box를 그대로 다음 frame에 넘기기 때문에 T+1 시점에서 가장 정확한 box인 $Q_X$ 를 positive로 분류하지 않는다.
Positive sampling definition이 다른 근본적인 이유는 task각각에 대해 ground truth가 할당되기 때문이다.
- 또한 이에 기반하여 classificaiton gradient의 충돌이나 모델의 학습 방해가 일어난다.
- 결과적으로 precision과 recall 성능의 하락의 주요 원인이 된다.
Solving the Conflict Between Detection and Tracking via Gradient Coordination
먼저 단순하게 두 task에 대해 각각 classification head를 거치도록 해서 gradient 충돌을 피한다.
Regression 부분에서는 gradient 충돌이 없으므로 regression head를 두 task가 공유한다.
이후 positive sample definition에 따라 두 task에서 나온 predictied box에 ground truth를 할당해준다.
할당은 다음과 같이 이루어진다.
- GT : ground truth
- PB : 두 task에서 똑같이 positive라고 결정한 predicted box (즉, detection에서도 postive면 tracking에서도 positive)
- GT assigned detection query
- Detection의 positive sample definition에 따라 현재 frame에 존재하는 모든 GT와 PB를 매칭
- GT assigned track query (free track query)
- Tracking의 positive sample definition에 따라 이전 frame에서 할당되지 않은 GT와 PB를 매칭
GT assigned track query는 다음 두 track query의 합집합이다.
- 이전 frame에서 ground truth가 할당된 track query (locked track query)
- 현재 frame에서 ground truth가 할당된 track query (free track query)
최종적으로 classification 및 regression loss가 계산된다.
그러나, 단순하게 각 task에 대해 classification head를 구성하는 것만으로는 gradient 충돌을 피할 수 없었다.
- 이는 위에서 말했던 positive sample definition의 차이로 인해 같은 predicted box에 대해서 둘다 positive가 나오지 않을 수 있기 때문
- Head쪽을 분리해봐야 역전파로 인해 뒤에 위치한 decoder layer에서는 여전히 gradient 충돌이 일어난다.
따라서 classification gradient까지 분리하는 classification gradient coordination을 제안한다.
먼저 동적으로 object query들을 4개의 그룹으로 분류한다.
- $Q^{PP}$ : Detection과 tracking 모두 positive
- $Q^{PN}$ : Detection은 positive, tracking은 negative
- $Q^{NP}$ : Detection은 negative, tracking은 positive
- $Q^{NN}$ : Detection과 tracking 모두 negative
4개의 그룹중 2번과 3번 그룹에서 gradient 충돌이 일어난다.
- 1번과 4번은 postive든 negative든 같은 sample에 대해 같은 결과를 내므로 문제가 없다.
따라서 문제가 되는 gradient를 제거한다.
- 2번의 경우 tracking이 negative이므로 tracking쪽으로 가는 gradient를 제거
- 3번의 경우 detection이 negative이므로 detection쪽으로 가는 gradient를 제거
Dynamic Attention Mask
OneTrack은 set-prediction 방식으로 predicted box를 만든다.
- Set-prediction : Hungarian algorithm으로 ground truth들과 predicted box들을 1대 1로 매칭되게 만드는 방식
- 따라서 decoder layer에서 self-attention을 통해 "하나의 ground truth에 대해 2개 이상의 box가 예측되는 것"을 막을 수 있다.
위에서 말했던 $Q^{PN}, \ Q^{NP}$ 는 같은 ground truth에 대해 서로 다른 종류의 object query (detection 및 track query)가 연결된 것과 같다.
따라서 decoder layer에서 같은 객체에 대한 object query간의 의도하지 않은 경쟁을 막을 필요가 있다.
- 이는 attention 과정에서 $Q^{PN}, \ Q^{NP}$ 에 대한 masking으로 해결한다.
- 나머지 그룹 ($Q^{PP}, \ Q^{NN}$)은 masking 하지 않는다.
Decoder layer 각각에 대해 ground truth를 할당 결과를 이용해 mask를 만들고 다음 layer로 넘긴다.
- 첫번째 layer의 detection query들은 0으로 초기화 하며, 이들의 reference point와 ground truth의 center distance로 cost를 구성해 이분 매칭한다.
- 이후 layer들은 predicted box와 ground truth간의 matching cost (by DETR3D)를 구성해 이분 매칭한다.
- 이분 매칭은 hungarian algorithm으로 구현
최종적으로 detection 결과는 $Q^{PP}, \ P^{PN}, \ Q^{NN}$ 으로부터 구해지고, tracking 결과는 $Q^{PP}, \ P^{NP}, \ Q^{NN}$ 으로부터 구해진다.
Inference 때는 object query의 4개의 그룹을 detection과 tracking의 confidence score를 기준으로 분류한다.
- 각 task에 대해 confidence score가 0.2를 넘는 경우 positive로 판단한다.
최종적으로 학습과 inference 모두 confidence score 기준 상위 K개의 object query만 다음 frame으로 전달한다.
- Detection과 track query 각각에 대한 상위 K개를 의미
- 몇몇 frame에서 가려지는 상황을 대비해 "locked track query"는 상위 K개에 포함되지 않더라도 다음 frame에 전달한다.
- "locked track query"는 3개의 frame을 지날때까지 사용되지 않으면 버린다.
Memory queue에는 과거 4개의 frame에 대한 object query들만 저장한다.
- Detection과 tracking 각각에 대해 memory를 구성
- Memory queue에 있는 query들은 hybrid attention (by StreamPETR, ICCV 2023)의 key 및 value로 사용된다.
- 마찬가지로 $Q^{PN}, \ Q^{NP}$ 에 해당되는 query들은 masking 된다.
Modified Tracking Classification Loss
앞서 말했듯 기존의 end-to-end tracker들은 한번 ground truth가 할당된 prediction은 positive sample로 계속 유지했었다.
이는 positive로 분류한 track query들이 이후 frame에 대해 낮은 정확도를 갖는 것과 관계없이 유지된다는 문제가 있다.
따라서 이후 frame에 대해 부정확한 결과를 갖는 track query들을 억제할 수 있는 방법을 제시한다.
기존 tracker들은 ground truth의 할당 결과를 one-hot 형태로 표현한다.
- N개의 object query와 M개의 ground truth가 존재할때 (locked), 할당 결과는 N x M의 matrix로 표현
- i번째 object query가 j번째 ground truth에 할당된 경우, matrix의 i번째 row에는 j번째 값이 1이고 나머지는 0인 길이 M짜리 one-hot vector가 존재
할당 결과는 이미 이전 frame에서 나온 값이므로 현재 frame에 대한 matching cost는 영향을 주지 못한다.
OneTrack은 "locked pair"에 대해 assignment weight를 주도록 했다.
- Assignmend weight는 현재 frame에서 계산되며, 이를 통해 한번 ground truth가 할당된 track query가 이후 frame에서 영향받지 않는다는 기존 틀을 깼다.
Assignment weight는 위와 같으며, 각 변수의 설명은 다음과 같다.
- $\gamma$ : 하이퍼 파라미터이며, 0보다 크다. (7.5로 설정됨)
- $dist(g, q^{i})$ : i번째 track query와 query에 할당된 ground truth의 center distance
식을 잘 보면 weight는 center distance가 0.5 이하인 경우 그대로 1이고, 0.5보다 커지는 경우에는 1보다 작아진다.
Assignment weight는 최종적으로 one-hot vector에 곱해진다.
- Box regression loss 및 tracking confidence score에 영향을 준다.
Assignment weight가 적용된 할당 결과는 이후 classification 결과와 함께 classification loss를 구하게 된다.
- Loss function은 Quality Focal Loss(논문, NeurIPS 2020)를 사용
'논문 정리 > 3D Multi Object Tracking' 카테고리의 다른 글
[논문 정리] Standing Between Past and Future: Spatio-Temporal Modeling for Multi-Camera 3D Multi-Object Tracking (1) | 2024.09.28 |
---|---|
[논문 정리] End-to-end 3D Tracking with Decoupled Queries (1) | 2024.09.02 |