https://arxiv.org/abs/1909.12605
Introduction
현대의 MOT system은 주로 tracking-by-detection 방식을 사용한다. 이는 다음과 같이 구성된다.
1) detection model for target localization
2) appearance embedding model for association
+) data association
두 모델을 따로 실행하는 것은 효율적이지 않기 때문에 저자는 두 단계에서 공통되는 부분이 있을 것이라는 아이디어에서 모델을 통합하는 시도를 한다. 여기서 공통되는 부분이란 image에서 추출한 low-level features를 의미하고, 이를 공유하여 re-computation을 피하고자 하였다.
또한, TBD방식의 연구들은 주로 association 단계에서의 real time을 구축하는데 집중하기 때문에 실제로 real-time MOT라 할 수 없다.
본 논문에서는, target detection과 appearance embedding을 shared model로 학습하는 MOT system을 제안한다.
제안된 방법은 하나의 network에서 detection 결과들과 이에 대응되는 appearance embedding들을 동시에 출력한다.
(a) Tracking-by-Detection 방식과 비슷하다.
(b) Faster-RCNN framework를 적용한 방식. first stage에서 RPN을 통해 bounding box를 추출한다. second stage에서 Fast-RCNN 구조로 제안된 영역(BBox)에 대한 특징을 추출한다.
(c) 저자가 제안하는 JDE(Joint Detection and Embedding)방식으로 한 network를 통해 detection(localization)과 embedding을 동시에 수행한다.
효율성과 정확도를 모두 보장하는 joint learning framework를 구축하기 위해 저자는 다음과 같은 시도를 하였다.
- base architecture로 FPN(Feature Pyramid Network)를 사용하였다.
- training process를 multi-task learning으로 정의하여 anchor classification, box regression, and embedding learning으로 학습하였다.
- 각 task의 중요도를 고려하기 위해 task-dependent uncertainty를 사용하였다.
- 효율성을 더 높이기 위해 simple and fast association algorithm을 사용하였다.
본 논문의 contribution은 다음과 같다.
- JDE(Joint Detection and Embedding)을 제안함. sota와 비슷한 성능을 내며 real-time에 근접함.
- Triplet loss를 통해 여러 프레임 간 데이터의 관계를 파악하고 이를 이용해 association을 수행.
- 같은 학습 데이터를 이용한 실험에서 JDE가 가장 빠른 속도를 달성하면서 SED 모델 조합들과 비슷한 성능을 보여줬다.
- MOT-16 데이터에서의 실험에서 training data의 수, accuracy, speed 의 이점을 JDE에서 확인할 수 있었다.
Joint Learning of Detection and Embedding
1. Problem Settings
JDE의 목적은 target에 대한 location과 appearance embedding을 single forward pass로 출력하는 것이다.
training dataset은 {I, B, y} 정보를 이용한다. I는 이미지 프레임, B는 이미지 프레임 속 모든 bounding box 정보, 그리고 y는 해당 bounding box의 ID이다.
1) model to detect targets accurately (B ~= B')
2) appearance embedding이 다음과 같은 특성을 가져야 한다. 동일한 identity의 관측 사이의 거리는 서로 다른 identity 간의 거리보다 작아야 한다.
이 두가지 목적만 만족되면 간단한 association(e.g. Hungarian algorithm)을 사용해도 tracking result가 좋을 것이다.
2. Architecture Overview
전체 구조는 Feature Pyramid Network(FPN)을 사용했다.
- backbone network(darknet-53)를 통해 3 scales feature maps을 얻는다. (각각 1/32, 1/16, 1/8 down-sampling rate)
- U-net과 같은 구조로, 3개의 feature maps을 작은 순서부터 up-sample하며 skip-connection을 통해 concatenate한다.
- 새롭게 얻은 3개의 feature maps에 대해 각각 prediction head를 적용한다.
- Prediction head은 convolutional layer들로 구성되어 있고, (6A+D)xHxW의 dense prediction map인 output을 갖는다. (A는 anchor의 개수, D는 appearance embedding의 차원) Dense prediction map은 다음 3부분으로 나뉜다.
1) the box classification results of size 2A x H x W
2) the box regression coefficients of size 4A x H x W
3) appearance embedding map of size D x H x W
3. Learning to Detect
Detection branch는 YOLOv3의 구조를 사용하였다.
1) Anchors
pedestrian 대상이므로 종횡비를 1:3으로 고정하였다.
Anchor box의 종류는 12개로 각 feature map에 4개가 배정된다. (A = 4)
이 12개의 anchor box 크기는 모두 다르다. (8x2^(1/2) ~ 8x2^(12/2))
2) Select dual threshold used for foreground/background
Foreground(객체)와 background(배경)을 판별하기 위해 dual threshold를 적용했다.
Ground truth와 IoU>0.5인 경우 foreground로 하고, IoU<0.4인 경우 background로 했다.
Detection branch의 object function은 RPN과 같다. Foreground/ background classification을 위한 와 bounding box regression을 위한 가 있다.
: cross-entropy loss
: smooth-L1 loss
4. Learning Appearance Embeddings
학습과정의 안정화와 수렴 속도를 빠르게 하기 위해서 smooth upper bound of triplet loss를 사용해 최적화를 진행한다.
- cross-entropy loss는 인스턴스 임베딩을 직접 사용하는 대신 학습 가능한 클래스 별 가중치를 클래스 인스턴스의 대리로 사용한다.
- cross-entropy loss는 embedding space를 고려해서 loss 계산 시 모든 negative sample들이 사용되는 반면에 upper loss의 경우 sampled negative instance들만을 사용한다.
foreground의 경우 네트워크를 통해 추출된 embedding 백터가 shared fully-connected layer를 통해 class-wise logits이 된다.
그 후, logits에 closs-entropy loss가 적용된다.
5. Automatic Loss Balancing
: task-dependent uncertainty for each individual loss
: 번째 scale의 loss
: classification loss, bounding box regression loss, embedding loss
는 learnabel parameter로 학습시 자동으로 학습된다. 따라서 automatic loss balancing을 이루게 된다.
https://simpling.tistory.com/40
6. Online Association
하나의 track은 두 개의 정보로 구성된다.
e : appearance state
m : motion state (x, y, aspect ratio, height, velocity)
appearance state를 나타내는 e는 처음 track이 생성되는 경우, appearance embedding f_0로 초기화된다. 이후 track이 될 때마다 해당 프레임 속 appearance embedding을 e에 포함하여 tracklet pool을 유지한다.
프레임이 새로 들어오면, 관측된 객체들과 tracklets들 사이의 motion affinity matrix Am과 appearance affinity matrix Ae를 계산한다. Ae는 cosine distance를 사용하여 계산하고, Am은 mahalonobis distance를 사용하여 계산한다. 이를 사용해 최종 cost matrix를 생성한다.
이후 hungarian algorithm을 사용해 기존 track과 새로운 observation간의 매칭을 수행한다. 매칭이 성공적으로 된 track에 대해서 kalman filter를 사용하여 motion state(위치)를 업데이트 하고, appearance state는 아래의 식으로 업데이트 한다.
f_t는 현재 프레임에서 관측한 appearance embedding이고, 알파는 모멘텀을 의미한다(0.9사용).
새로 관측이 되어 2 frame이상 count되면 새로운 track으로 등록한다. 그리고 30번 동안 업데이트 되지 않는다면 track을 삭제한다.
Experiments
기존 TBD방식에 비해 JDE방식이 속도적인 측면에서 매우 뛰어나다는 점을 보였다. 하지만 ID switch가 빈번하게 일어난다는 것을 볼 수 있는데 이는 단순히 거리가 가까운 것을 기반으로 appearance embedding을 설계하였기 때문으로 보인다. 즉, 객체 간 overlap이 일어나면 ID switch가 일어날 확률이 매우 높다. 따라서 association을 위한 feature를 설계하는 것에 변화가 필요해보인다.