안녕하세요 WH입니다
오늘은 2019 년도에 나온 논문을 리뷰해볼 생각입니다.
시작하기에 앞서 MOTR 성능이 생각보다 좋더라구요
몇몇을 조금만 건들면 tracking에서는 매우 좋아보였어요
이게 논문에 나온 성능이 아니라,
직접 서버에서 돌려보고 하는 말이라는 점은 안 비밀
다만, real time에 대한 아쉬움이 있어서 관련 논문을
정리해보는 시간을 가져보려고 합니다.
Abstract
modern MOT(multiple object tracking ) system은 대게 tracking-by-detecion paradigm을 따르죠. 이 시스템은 먼저 target localizaion을 위한 detection model 과 data association을 위한 appearance embedding model을 가지죠. 두 개의 모델을 별도로 실행하는 것은 효율성의 문제를 야기할 수 있는데요, 두 모델 간 공유될 수있는 potential structures를investigating하는 것 없이 running time은 two step의 sum 이기 때문이죠. real-time MOT에 대해 현존하는 연구들은 대게 association step에 초점을 맞춥니다. 그래서 그런 연구들은 real-time association method이지 real-time MOT system이 아닙니다. 이 논문에서는, target detection과 appearance embedding이 shared model에서 learned 되도록하는 MOT system을 제안합니다. 구체적으로, 저자들은 appearance embedding model을 single-shot detector에 통합했는데요. 이 모델은 detection과 그에 대응하는 embedding을 동시에 출력할 수 있습니다. 이 시스템은 multi-task learning problem으로 정의되어지는데요. multiple objectives( anchor classification, bounding box regression, and embedding learning, 즉 개별적인 losses 자동적으로 weighted 되죠 )가 있습니다. 저자들은 자신들이 real-time MOT system으로는 처음이라고 말합니다. running speed 는 18.8-24.1 FPS 라고하네요. 물론 input reolution에 따라 달라지지만요. 빠르지만, tracking accuracy는 SOTA trackers와 견줄만하다고 합니다.
Introduction
video sequence에서 multiple targets의 trajectories를 예측을 목적으로 하는 MOT는 자율 주행부터 smart video analysis까지 상당한 영역을 더욱 발전할 수 있게 도와주는데요.
이 문제에 dominant strategy를 예로들면 tracking-by-detection paradigm 이 있는데 single video frame에서 localized하는 detection step과 detected target을 existing trajectories에 연결하고 할당하는 association step 나눠져 있죠. 이 system은 적어도 두 가지 compute-intensive components를 요구한다는 것을 의미하죠. 그 two components는 detector와 embedding ( Re-ID ) model 입니다. 저자들은 이 methods를 Separate Detection an Embedding( SDE ) 라고 표현합니다. 전체 inference time에 two components의 summation 이 있게 되고, target number가 증가함에 따라 summation 역시 증가하게 되죠. SDE methods의 characteristics 은 real-time MOT system을 설계하는 데 critical challengs를 야기합니다.
computation을 save하기 위해 , feasible idea 는 detector와 embedding model을 single network로 통합하는 방법이죠. 그렇게 되면 two task는 low level feature의 same set을 공유할 수 있습니다. 그러면 re-computation을 피하게 되겠죠. detector와 embedding learning을 합치기 위한 하나의 choice는 Faster R-CNN framework를 적용하는 것인데요. 구체적으로, first stage ( RPN 에서 ) Faster R-CNN과 같이 유지되고 detected bounding box를 출력하죠. second stage는 metric learning supervision embedding learning model로 classification supervision을 대체함으로써 embedding learning model로 변환될 수 있습니다. some computation을 save함에도 불구하고, 이 method는 speed에 제한이 있는데요. 바로 two-stage 이기 때문이죠. 이 방법은 10 FPS 언저리에서 동작하죠. real-time이 되기에는 한 없이 부족합니다. 게다가, second stage의 runtime은 SDE method와 비슷하게 target number가 증가함에 따라 증가하게 되죠.
이 논문은 MOT system의 efficiency를 향상시키기 위해 작성되었다고 하네요. 저자들은 single-shot deep network에서 JDE( jointly learns the Detector and Embedding model ) 에 대해 소개합니다. 다른 말로하면, 제안된 JDE는 detection results와 detected boxs의 apperance embeddings를 출력하기 위해 single network를 사용합니다. 비교해보면, SDE method와 two-stage methods는 re-sampled pixels ( bounding boxes ), features map 각각에 의해 charcterized 됩니다. bounding boxes 와 feature maps 둘 모두는 appearance feature extraction을 위한 separate re-ID model 의 input으로 들어가게 되죠. 아래 Figure 1은 명확하게 SDE method, two-stage methods 그리고 제안된 JDE의 차이를 나타냅니다.
high efficiency 와 accuracy를 가지는 joint learning framework 를 설계하기 위해, 저자들은 바로 뒤에 설명하는 fundamental aspects를 심도있게 탐구하고 설계했다고하네요. : training data, network architecture, learning objectives, optimization strategies, 그리고 validation metrics 에 대해 고찰했다고 하네요. 먼저, 저자들은 unfied large-scale muli-label dataset을 만들기 위해 person search와 pedestrain detection에 대한 publicly available한 6 개의 dataset을 모았다고 합니다. 이 unified dataset에서, 모든 pedestrain bouinding boxes는 labeled 되어 있고, pedestrian identities의 portion 역시 labeled 되어 있습니다. 두번 째로, FPN ( Feature Pyramid Network )을 base architecture로 선택했다고 합니다. 그리고 best embeddings를 학습 하는데 어떤 종류의 loss fuction을 사용해야 할지 논의 했다고 합니다. 그리고나서, 저자들은 anchor classification, box regression, 그리고 embedding learning으로 구성된 multi-task learning problem으로 training process를 모델링했다고 합니다. 각 개별 task의 importance를 balance 하기 위해, 저자들은 task-dependent uncertainty 를 heterogenous losses를 동적으로 weight 하기 위해 사용했다고합니다. 마지막으로 이어 나오는 evalution metric을 사용했다고 하는데요. AP 는 detector의 성능을 평가하기 위해 사용했고, certain False Alarm Rate ( FAR ) 에서 True Accpt Tate ( TAR )은 embedding의 quality를 평가하기 위해 적용되었다고 합니다. overall MOT accuracy는 CLEAR metric에 의해 평가됩니다.( MOTA 라고 합니다 ) 이 논문은 detection과 embedding task의 joint learning에 대한 baseline과 new setting의 range를 제공합니다.
이 논문의 contributions를 요약하면 아래와 같습니다.
1. JDE를 제안합니다. detection과 embedding learning을 joint하기 위한 single-shot framework입니다.
online MOT system으로써, real-time으로 동작하며 SOTA model과 성능 차이가 나지 않습니다
2. training data, network architecture, learning objectives 그리고 optimization strategy 를 포함하는
multiple aspects로 부터 joint learning framework 를 설계하는 방법에 대해 실험과 분석을 시행했습니다
3. 같은 training data로의 실험은 JDE는 strong SDE model과 combinations 수행하고 더불어 fastest speed
를 달성했음을 보여줍니다.
4. MOT-16의 실험은 SOTA MOT systems 정확도, 속도를 뛰어넘는 저자들 method의 장점을 보여줍니다.
Related Work
MOT recent progress는 following aspects로 categorized됩니다.
1. graphs 에서 optimizaion porblem의 certain form으로써 association probelm
2. end-to-end neural network로 association process를 만드는 문제
3. tracking-by-detection에서 벗어난 새로운 tracking paradigm을 만드는 문제
이들 중에서, 처음 2 개의 categories는 past decade 에 MOT에서 prevailing solution 이 있어 왔다고 합니다. tracking-by-detection methods로, detection results와 appearance embeddings 는 input으로 주어집니다. 그리고 해결되야할 probelm은 data association이죠. some method 들이 real-time speed가 가능하다고 주장했지만, detector와 apperance feature extraction의 runtime은 제외되었죠. 이는 전체 system 은 그들의 주장과 여전히 거리가 존재함을 말합니다. 반면에, 이 연구에서는, 저자들은 association step 만이아닌 entire MOT system 의 runtime을 고려합니다. 전체 system에 대한 efficiecy를 달성하는 것은 실질적으로 더 중요합니다.
마지막 category는 새로운 MOT paradigms를 사용하고자 시도하는데요, single object trackers를 detector로 통합합니다. spatial offsets 예측해서 말이죠. 이 methods는 simplicity를 owning하는 매력이 있죠. 그러나 tracking accuracy는 만족스럽지 않답니다. 물론 additional embedding model이 제안됬음에도 말이죠. 이와 같은, performance와 speed 간의 trade-off는 향상이 필요합니다.
저자들의 approach는 database frame의 large set으로 부터 query person을 recognize하고 localize를 목적으로 하는 person search task와 관계가 되어있는데요. 이 task의 some solution은 person detector와 embedding model을 동시에 학습하는 것입니다. 그럼에도 불구하고, MOT와 person search system 간의 주요한 차이는 MOT는 runtime에서 더 rigorous requirement를 가진다는 점이죠. 따라서 이 person search에서의 approaches는 직접적으로 가져올 수는 없죠.
관련된 연구의 다른 line은 Associative Embedding 인데요. human pose estimation에서 사용되죠. associatve embedding 이라 불리는 low dimensional dense vector map은 human joints나 box corners이 학습됩니다. 그러나 association은 single image에만 적용이되죠. 반면 MOT에서는 different frames에 따라 associaiton이 요구됩니다. 그러니까 더욱 차별적이 되도록 embedding을 요구합니다.
Joint Learning of Detection and Embedding Problem Settings
JDE의 objective는 location과 target의 appearance embeddings을 single forward pass에서 동시에 출력하는 것입니다. 저자들은 training dataset을 가졌다고 가정합니다. 그리고 training dateset은 아래와 같이 표현되죠
여기서 I는 ( c x hx w ) image frame을 나타냅니다. B ( k x 4 ) 는 bounding 해당 frame에서 k개의 targets에 대한 box annotations을 나타내죠. y ( k ) 는 partially annotated indentity labels를 표기합니다. 여기서 -1 은 indentity label이 없는 target을 나타내죠. JDE는 predicted bounding boxes hat B ( hat k x 4 )와 apperance embeddings hat F ( hat k x D )를 출력하는 것을 목표로 합니다. 여기서 D는 embedding의 dimension입니다. 그럼으로 아래 objectives 가 만족되어야 합니다.
처음 objective는 model이 target을 정확하게 detect하도록 요구합니다. 두 번째 objective는 appearance embedding이 following property 를 가지도록 요구합니다. consecutive frames에서 same identity 의 observations 간의 distance는 different identities 간 distance 보다 작아야 합니다. 기술적으로, 두 가지 objectives가 모두 만족된다면, 심지어 simple association strategy ( i.e. Hungarian algorithm ) 는 good tracking results를 보여줄 거라고 하네요.
( 실제로 제가 구현해본바를 덧붙여드리면, kalman filter를 제외하고 구현한 tracker 가 성능적으로 나쁘지 않은 성능을 보였습니다. )
Architecture Overview
저자들은 FPN ( Feature Pyramid Network )의 architecture를 사용했는데요. FPN은 multiple scale로 부터 predictions를 만들죠 ( 2018 이후 architecture에는 거의 다 적용되어있다고 보시면 됩니다. 오늘 잡설이 많네요 금요일이라 그런가.. ) 따라서 target의 scale이 다양한 pedestrain detection에서 성능향상을 이끌어냅니다. Figure 2sms JDE에 사용된 neural architectur를 간단하게 보여줍니다.
input video frame 각각 1/32, 1/16, 1/8 down-sampling rate를 가진 세 개의 scales에서 feature maps를 얻기 위해 backbone network를 통해 forward pass를 통과하죠. 그런 다음 smallest size를 가진 feature map은 up-sampled 되고 skip connection으로 second smallest scale로 부터 feature map을 합칩니다. 다른 scale에도 방금 전의 과정을 거치죠. 마지막으로, prediction heads는 모든 three scales에서 fused feature maps 위에서 진행됩니다 ( added 라는 표현때문에 헷갈릴 수 있는데 map을 더한다는 의미가 아닙니다 ). prediction head는 several stacked convolution layters로 구성되고 (6A + D) x H x W size의 dense prediction map을 출력합니다. A는 이 scale에 할당된 anchor template의 갯수입니다. D는 embedding의 dimension입니다. dense prediction map은 3 parts로 나눠집니다.
1. box classificaiton results ( size : 2A x H x W )
2. box regression coefficients ( size : 4A x H x W )
3. dense embedding map ( size : D x H x W )
다음 section에서 이 task를 trained된 방법에 대해 자세히 설명하겠다고 합니다.
Learning to Detect
일반적으로 detection branch는 stadard RPN 과 유사하지만 두 가지 modifications가 있습니다. 먼저 저자들은 target에 적용할 수 있는 aspect ratios , scale 그리고 number 관점에서 anchor를 재설계했습니다. ( i.e. pedestrian ) common prior에 기반해서, all ancor templates는 12로 set합니다. 즉 각 scale 당 4개의 anchor를 가집니다. 그리고 widths scale의 range는 8 x 2^1/2 부터 512 x 2^12/2 입니다. 두번 째로, foreground/background assignment에 사용되는 thresholds의 proper values를 선택하는 것이 중요하다고 말합니다. foreground를 보장하기위해 ground truth에 관해 IOU > 0.5로 설정했습다고 합니다. generic object detection에서 common setting이기도 하죠. 반면에 저자들은 background에 대해 0.4 를 설정했다고 합니다. 자신들의 preliminary expreiment는 이 thresholds 은 heavy occlusion에서 발생하는 false alarms를 효과적으로 억제한다고 하네요.
detection의 learning objective는 tow loss functions를 가지는데요 . foreground/background classification loss L_알파 와 bounding box regression loss L_베타입니다. L_알파는 cross-entropy loss로 공식화되고, L_베타는 smooth-L1 loss로 계산됩니다. regression targets는 타 논문과 같은 방법으로 encoded됩니다.
Learning Appearance Embedding
second objective는 metric learning problem인데요. 예를 들어, embedding space를 learning 하는 겁니다. 즉 same identity의 instance는 가까워지고 different identities의 instance는 멀어짐을 말합니다. 이 goal을 이루기 위해, 효과적인 solution은 triplet loss를 사용하는 겁니다. Triplet loss는 이전 MOT 연구에서도 사용되었습니다. triplet loss는 아래와 같은 표기로 표시합니다.
f^T는 anchor로 선택된 mini-batch에서 instance이고, f^+는 f^T에 관해 positive smaple, f^-는 negative sample을 말합니다. margin term은 편의를 위해 무시합니다. triplet loss의 navtive formulation은 문제가 좀 있습니다. 먼저 training set에서 huge sampling space 입니다. 이 연구에서, 저자들은 mini-batch로 보는 것과 mini-batch에서 negative samples와 hardest positive smaple을 mining 함으로써 이 문제를 다룹니다. 이를 식으로 표현하면 아래와 같죠
f^+는 mini-batch에서 hardest positive sample 입니다. 두 번째 문제는 triplet loss 로 training하는 것은 불안정 할수있고 convergence가 느릴 수 있다는 점입니다. triplet loss의 smooth upper bound에서 optimize하는 16년 논문이 있습니다. 해당 loss는 아래와 같이 나타납니다.
이 triplet loss의 smooth upper bound는 아래와 같이 쓰여질 수도 있죠
cross-entropy loss의 공식과 유사하게 말이죠. 그를 다시 표현하면 아래와 같습니다
저자들은 g^+를 positive class의 class-wise weight로 표기합니다. negative class의 class-wise weight는 g^-로 표기하고요. L_upper와 L_CE의 명확한 차이는 두 가지 입니다. 먼저, cross-entropy loss는 instances의 embedding을 사용하기보다 class instance의 proxies 로써 learnable class-wise를 사용합니다. 두번 째, all negative classes는 L_CE에서 loss computation에 사용됩니다. embedding space에서 모든 negative classes로 부터 pull away된 anchor instance같은 것들이 있죠. 반면에, L_upper에서는 anchor instance는 sampled negative instance로 부터 pulled away 된답니다.
위의 analysis를 고려하면, 저자들은 three loss의 performance는 L_CE > L_upper > L_triplet이 되야한다고 추측했다네요. 실험을 통해 증명했고요. 저자들은 cross-entropy loss를 embedding learning을 위한 objective로 선택했다고 하네요.그리고 앞으로는 L_감마 라고 사용하겠답니다.
구체적으로, anchor box가 foregroud로 labeled 되었다면, 해당하는 embedding vector는 dense embedding map으로부터 추출됩니다. extracted embeddings는 shared fully-connected layer에 class-wise logit을 출력하기 위해 입력으로 들어가고요. 이런 방법으로, multiple scale로부터 embeddings는 same space를 공유합니다. scale에 따라 associaiton은 feasible합니다. label -1을 가지는 embedding은 ( box annotation는 있지만 identity annotations는 없는 foreground ) embedding loss를 계산할 때 무시됩니다.
Automatic Loss Balancing
각 prediction head의 learning objective는 multi-task learning problem으로 모델링될 수 있습니다. joint objective는 모든 scale과 모든 components로 부터 losses의 weighted linear sum으로 쓰여집니다. 즉 아래와 같습니다.
M은 prediction heads의 갯수이며 w는 loss weight 입니다. loss weight을 결정하는 간단한 방법은 아래와 같습니다
이 strategy로 loss weight를 searching하는 것은 몇 번의 시도 안에 괜찮은 결과를 보여줄 수 있습니다. 그러나 searching space의 reduction은 loss weight에 strong restrictions 야기합니다. resulting loss weights는 optimal과 멀어질 수 있습니다. 대신에 저자들은 타 논문에서 제안된 loss weights에 대한 automatic learning scheme을 적용합니다. task-independent uncertainty의 concept을 사용하죠. 공식으로 나타내면, automatic loss balancing을 가진 learning objective는 아래와 같이 쓸 수 있습니다.
s 는 각 individual loss에 관한 task-dependent uncertainty이며 learnable parameter로 모델링되죠. 해당 논문을 읽어보라고 하는데 제가 정리해드릴게요! 다음 주 내에요 ㅎㅎ
Online Associaiton
association algorithm이 이 논문의 초점은 아니지만, 저자들은 이 파트에서 간단하고 빠른 online association strategy를 JDE와 결합하여 작동시키위해 소개한답니다.
video가 주어지면, JDE model은 every frame을 처리하고 bounding box와 corresponding appearance embeddings를 출력합니다. 그에 따라, 저자들은 observations 의 embedding과 이전 previous trackles의 pool의 embedding 을 가진 affinity matrix 계산합니다. observations 는 tacklets 에 hungarian algorithm을 사용하여 할당합니다. kalman filter는 trajectories를 smooth하게 하기 위해 사용됩니다. 그리고 current frame에서 previous tracklet의 location을 predict하기 위해 사용합니다. assigned observation이 predicted location과 너무 멀리 떨어져있다면, assignment는 되지 않습니다. 그러면 tracklet의 embedding은 아래와 같이 업데이트 되죠 ( 하나 재미있는 질문을 던질게요. short term에서 tracking 하는데, 만일 kalman filter가 없어요. 그러면 어떤 현상이 발생할까요? 두번 째, 그렇다면 short term에서 해당 문제를 해결하려면 어떻게 해야할까요?( 실제로 kalman filter 없이 구현해야하는 상황에서 마주했고 해결했던 상황이 떠올라 적어봅니다 ) 글을 올릴 때 마다 읽어주시는 그 분께 드리고 싶은 질문입니다. 곰곰히 생각해보셔요.)
~f 는 assigned observation의 embedding을 나타냅니다. f_t는 timestamp t에서 tracklet의 embedding을 나타내고요. 누(n처럼 생긴 친구)는 smoothing을 위한 momentum term입니다. 그리고 저자들은 0.9로 세팅했다고 하네요 ( 가장 많이 사용하는 값입니다. 0,95를 사용하기도 하지요 ) tracklet에 할당된 observation이 없다면, tracklet는 lost 로써 marked 됩니다. lost로 marked된 tracklet은 current tracklet pool에서 제거될 겁니다. 만약 lost time이 threshold보다 크다면 말이죠. 그게 아니라면 assignment step에서 re-found 되겠죠.
항상 그래왔든 그 이하는 생략합니다.
하나 얻어가실 수 있는 점은 loss function을 바꿔주고
data set의 annotation을 바꿔준다면,
architecture를 바꿔도 적용가능하다는 점을 기억해주시길 바랍니다.
실험이나 결론은 어차피 새로운 논문이 나오면 뛰어넘기 때문이죠.
오늘 논문 리뷰는 여기까지 하겠습니다.
뭔가 최신 논문 했다가 19년도 논문 리뷰했다가 하지만,
그래도 도움이 되기를 바랍니다.
탄탄한 기초가 쌓이면, 최신 논문을 이해하는 데 도움이 될테니말이죠.
이상 WH였습니다.