SORT(Simple Online And Realtime Tracking)

2021. 9. 28. 13:47Computer vision 논문 & 코드리뷰

728x90

오랜만에 논문리뷰 입니당....

https://arxiv.org/abs/1602.00763

 

Simple Online and Realtime Tracking

This paper explores a pragmatic approach to multiple object tracking where the main focus is to associate objects efficiently for online and realtime applications. To this end, detection quality is identified as a key factor influencing tracking performanc

arxiv.org

(참고하면 좋은 글) 

kalman filter - https://brunch.co.kr/@201929291/2 , https://medium.com/@celinachild/kalman-filter-%EC%86%8C%EA%B0%9C-395c2016b4d6 

hungarian method - https://gazelle-and-cs.tistory.com/29

IOU distance - (링크)

covariance - (링크)


Simple Online And Realtime Tracking 즉, SORT기법에 대한 논문입니다.

tracking 알고리즘으로 많이 쓰이는 DeepSORT에 대해 공부하기  전에, SORT부터 살펴봤습니다

 

SORT는 실시간, 객체기반 트래커 라고 볼 수 있겠습니다.

MOT task 연구입니다(Multi Object Tracking)

MOT benchmark자체가 난이도가 굉장히 높아서 어려운 연구 분야입니다.

SORT는 kalman filter와 hungarian algorithm이라는 기존의 알고리즘을 적용하는 것 만으로 빠르고 성능 좋은 트래킹을 구현했습니다.

MOT는 비디오 시퀀스 프레임 '전체' 에 걸쳐 detection들을 '연결'( 즉, 사람1은 영상 끝까지 사람 1로, 사람2는 영상 끝까지 사람2로 인식) 하는 것이 목적이기 때문에, tracker는 장면에서 객체의 움직임과 모습을 모델링 하는데에 여러 방법을 써야합니다.

 

SORT는 detection된 객체 이외의 feature들은 무시합니다. -> detection성능이 중요한 요소가 되겠죠

bounding box의 위치 및 사이즈만 motion estimation과 data association에 사용합니다.

 

short/long term occlusion(객체가 영상에서 사라지는 것을 말하는 것 같습니다) 문제는 매우 드물게 발생하므로, 이 문제를 명시적으로 해결해버리면 너무 복잡해지기 때문에 무시했다고 합니다. 즉, 이 문제 해결을 위해 object re-identification 형식으로 복잡성을 추가하면 tracking framework에 상당한 오버헤드가 추가되어 실시간 적용이 제한될 수 있다고 주장하고 있습니다.

'단순함'을 추구

대신 SORT는 frame-to-frame 통합에서의 효율적이고 믿을만한 처리에 집중합니다.

전체 frame의 연결보다는 frame간의 관계에 더 집중한 것이죠.

detection errors에 robust해지는 것을 목표로 하기 보단, detection 문제를 직접적으로 해결하기 위해 최신 object detection 모델을 사용하였습니다.

kalman filter와 hungarian method는 tracking문제에서의 motion estimation과 data association요소들을 각각 처리하기 위해 적용됩니다.

https://www.programmersought.com/article/17005126187/v

Metholdology

1. detection

cnn기반 인식 - FrRCNN을 사용했습니다.

two stage, end-to-end라는 특징을 가진 모델인데, 중요하지 않습니다. 다른모델로 바꾸어 적용할 수 있습니다.

2. Estimation Model

다른 객체들과 카메라 움직임에 독립적인 선형적 일정한 속도 모델을 이용해 각 object의 프레임간의 displacements(변위)를 예측

각 타겟의 상태(state)는 다음과 같이 모델링됩니다.

u: horizontal pixel location(타겟의 센터의)

v: vertical pixel location(타겟의 센터의)

s: 타겟의 바운딩박스의 스케일(넓이)

r:타겟의 바운딩박스의 종횡비

r은 일정하다고 가정된다

detection이 target에 연관되어있으면, 인식된 bounding box 는 속도 요소가 칼만필터에 의해 최적으로 계산된 target state로 업데이트한다.

어떠한 detection도 타겟에 연관되어있지 않으면, 그것의 state는 단순히 linear velocity model을 사용한 correction없이 예측된다.

3. Data Association

detections를 존재하는 target들로 할당(assignment)할 때에는 각 target의 bounding box geometry가 현재 프레임에서 새로운 위치를 예측하여 추정된다.

assignment cost matrix는 각 detection과 모든 존재하는 타겟들로부터 예측된 bounding boxes의 IOU distance로 계산된다.

assignment는 Hungarian algorithm으로 최적으로 해결된다.

추가적으로, target과 오버랩되는 detection이 IOUmin보다 작은 assignment을 거부하기 위해 최소 IOU(옵션1)가 부과된다.

bbox들의 IOU distance가 명시적으로 passing targets에 의해 유발되는 short term occlusion을 다룬다는 것을 발견했다.(가려짐 현상에 의한 짧은 사라짐을 말하는 것 같음)

구체적으로, 타겟이 다른 객체로 가려질 때 , IOU distance가 유사한 스케일의 detection을 적절히 favour하기 떄문에 occluder, 즉 가리는 물체만 인식된다.

이렇게 하면 할당된 대상이 없으므로 가려진 대상이 영향을 받지 않는 동안 detection으로 occluder target을 모두 수정할 수 있습니다. ->이해한 바로는, 한 대상이 다른 대상을 가림으로써 가린 객체(occluder)를 detection함으로써 occluder에 대한 target(target state들)이 생긴다는 의미 같습니다.

4. Creation and Deletion of Track Identities

객체가 이미지 내를 들어오고 나갈때, 그에 따라 유니크한 ID가 생성/제거 되어야합니다. -> 사람1이 영상 내에 들어오면 1이라는 ID를 붙여주고, 나가면 그 ID는 제거해주어야 한다.

tracker들을 생성하기 위해서, IOU_min을 설정해줍니다. target과 IOU_min(옵션1)보다 적게 오버랩된 detection이 untracked object이다라고 가정하는 것이죠.

그리고 그 tracker는 속도가 0으로 지정된 bounding box의 geometry를 사용해 초기화됩니다.

이 시점에서 속도가 0이기 때문에, 속도 성분의 공분산(covariance)는 이 불확실성을 반영해 큰 값으로 초기화됩니다.

또한, 새로운 tracker는 FP(False Positive)의 트래킹을 방지하기 위한 충분한 증거를 축적하기 위해 target이 detection과 연관되는 수습기간을 거칩니다 => Track들은 T_Lost(옵션2)동안의 frame들에서 detection이 되지 않으면 사라집니다.

이것을 통해 detector를 따로 보정하지 않고 tracker의 수가 무한정 늘어나는 것을 방지합니다. 또한 긴 기간의 예측으로 발생되는 localisation errors를 방지합니다.

두가지 이유로 실험에서 T_Lost를 1로 설정하였습니다

  1. constant velocity model은 true dynamics의 poor predictor다
  2. 우리는 주로 객체 re-identification은 작업의 범위를 벗어나는 frame-to-frame tracking을 고려한다.

또한, 사라졌다고 판단되는 타겟들을 빠르게 삭제하는 것은 효율성을 높입니다.

개체가 다시 나타나면, 새 ID로 재개됩니다. (사람1이 영상밖으로 T_Lost이상 사라졌다면 다시 들어왔을때 사람 128정도로 인식이 되겠죠)

Experiments

MOT benchmark database에 세팅된 테스트 시퀀스의 다양한 세트에 적용해서 성능측정

카메라가 움직이는 환경도, 정적인 환경도 있음

detection 아미텍쳐는 FrRCNN(VGG16)사용

1. Metrics

하나의 스코어로 MOT 성능을 측정하기는 어려워서, 우리는 표준 MOT metrics와 함께 [24] 에서의 metric 함께 사용

더보기

[24] : Y. Li, C. Huang, and R. Nevatia, “Learning to associate: HybridBoosted multi-target tracker for crowded scene,” in Computer Vision and Pattern Recognition. 2009, IEEE.

True positives 는 ground truth bounding box와 적어도 50% 오버랩되어있다고 가정.

2. Performance Evauation

tracking performance는 11개 시퀀스에 대한 ground truth가 보류된 MOT 벤치마크 테스트 서버를 사용하여 평가된다.

3. Runtime

보통 runtime과 accuracy는 tradeoff

오프라인 처리 작업에서는 느린 런타임을 허용할 수 있지만 로봇 및 자율 주행 차량의 경우 실시간 성능이 필수적이다.

SORT는 accuracy와 speed를 모두 잡아버림

(The tracking component runs at 260Hz on single core of an Intel i7 2.5GHz machine with 16 GB memory.)

 

Conclusion

본 논문에서는 프레임 대 프레임 예측 및 연관성에 초점을 맞춘 간단한 온라인 추적 프레임워크를 제시한다.

  • tracking quality가 detection performance에 크게 의존하며 detection 분야의 최근 발전을 활용함으로써 고전적인 추적 방법(kalman filter, hungarian algorithm)만으로 최첨단 추적 품질을 달성할 수 있다는 것을 보여주었다.
  • 제시된 프레임워크의 단순성은 새로운 방법이 long term occlusion(긴 시간동안 화면에서 사라지는 현상)을 처리하기 위해 객체 재식별에 초점을 맞출 수 있도록 기준선으로 매우 적합하게 만든다.
728x90