(GOTURN) Learning to Track at 100 FPS with Deep Regression Networks

tracking
eccv
eccv2016
2016
singleshot-tracking

(Curtis Kim) #1

주로 Deep learning based Tracker들이 online learning 등으로 매우 느린 상황에서, 빠른 것이 강점이었던 모델입니다. 트레이닝 셋에 등장하지 않은 물체에서도 어느정도의 성능을 보여준다고 주장하며, 속도는 100fps 수준입니다.

  • 온라인 트레이닝이 없다.
  • 기존 트래킹인 Classification 기반으로, 타겟이 중앙에 있는지, 아니면 백그라운드인지를 분류하는 방식으로, 여러번의 inference가 필요했으나, GOTURN은 1번의 single forward inference로 tracking 가능하다.

Methods

아이디어는 엄청 심플합니다. 이전 프레임, 현재 프레임 이미지를 입력으로 받아서, 현재 프레임에서의 위치를 Regression하는 형태입니다.

자세히 보면, 동일한 Convolution Weight를 공유하는 두 Branch에서 Feature를 뽑아서 Fully Connected Layer를 거친 후 Location을 추출하는 형태입니다. 마치 Object Detection의 초기 모델을 보는 것 같은 느낌입니다.

약간의 컨텍스트 정보를 포함하기 위해 Object를 중심에 둔 채로 조금 크기를 키워 Crop하며, 현재 프레임에서는 이미지 상 동일 위치를 Crop합니다. 네트워크의 Output은 4개의 node로, x,y, w, h 정보를 담고 있습니다. L1 Loss를 이용해서 학습했다고 합니다.

General Object에 대해 대응되어야 하기 때문에, 트레이닝 데이터셋을 늘려서 학습을 시켰습니다. 비디오는 일반적으로 annotation이 어려우므로, 이 부분을 이미지에 있던 기존 데이터를 활용했습니다. Detection 등에 사용되었던 이미지 데이터를 가져와서, Crop의 위치를 다르게 함으로써 마치 물체가 움직인 것처럼 데이터로 활용했습니다.

즉, 이렇게하면 기존 프레임의 중심에 있는 물체를 현재 프레임에서 위치를 찾도록 네트워크를 학습하는 효과가 있습니다.

Results

VOT 2014에서, 속도와 성능이 매우 우수함을 보여주는 차트입니다.

"단순히 프레임 내에서 Object를 찾는 건 아니냐?"라는 질문에 답을 하는 그래프입니다. 현재 프레임만 쓰는 경우에도, 어느 정도의 성능은 나오지만, 이전 프레임을 함께 넣어줄 때 성능이 개선되는 것을 볼 수 있습니다. 특히 카메라 모션이 심하거나 Occlusion이 있는 경우에 성능이 올라가는 것은 어떤 오브젝트를 트래킹해야하는지 네트워크가 어느정도 알고 있다는 뜻으로 해석할 수 있습니다. 다만, 사이즈가 변하는 등의 경우에는 성능이 다소 떨어지고 있습니다.

트레이닝에 사용하는 비디오를 늘려가며 테스트 해보면, 트레이닝에서 등장했던 물체의 경우 당연히 성능이 올라가고, 등장하지 않은 물체에 대해서도 개선되는 것을 확인할 수 있습니다. 이는 어느정도 general한 object tracker로 성능이 향상되고 있다는 뜻이 되기도 합니다.

Conclusion

단순하고 효과적인 아키텍쳐, 이미지를 활용한 데이터 양의 증가 등이 100FPS라는 빠른 속도와 일반적인 트래커로써의 성능을 가져오게 한 논문입니다.


'Object Tracking' 카테고리의 설명
(siameseFC) Fully-Convolutional Siamese Networks for Object Tracking