MIL Tracking
이제 본격적으로 Image tracking by detecting을 시작해볼건데요. 이전에 사실 Online Discriminative Feature에 대한 논문을 읽었어요. 그 논문에서 MILTrack과 비교하며 설명하는데 이것을 알아야 그 것도 좀 더 쉽게 이해될 것 같아 읽어봤네요.
MIL은 Multiple Instance Learning의 약자로 여러개의 Instance를 학습하는 classifier를 만드는 거라고 대충은 알아낼 수 있겠죠. 뭐 방법이야 어쨌든 여기에서는 결국 원하는 물체를 화면에서 찾아서 따라다니는 겁니다.
그걸 잘찾는 알고리듬을 계속 변형하거나 업그레이드해서 더 잘 따라다니게 하는것이 이 분야의 길인 것 같습니다. 그러므로 요즘 트랜드의 방법이나 알고리듬을 뜯어보면 여러 단계를 거쳐 진화했다는것을 알수 있을 것입니다. 여기서도 몇가지 방법이 융합되거나 업그레이드되었네요.
1. 사용된 기술
1)Online MIL Boost
2)Stump for weak classifier
3)Randomized Haar-like feature
4)Simple motion model greedy local search
2. Algorithm
우선 Tracking이 진행되는 순서부터 설명합니다. 이 것은 여느 Tracker와 비슷합니다. Appearance를 Box를 이용해서 자르고 positive, negative를 구분해 학습하네요.
1). 이미지를 자른다. 이때 $x$와 이전 프레임의 tracked location와의 거리가 $s$이하
이어야 한다. 그리고 그 $x$들의 feature vector($X_s$)를 뽑아낸다.
2). MIL classifier를 이용해서 $X_s$안에 $p(y=1|x)$를 측정한다.
3). 측정한값을 가지고 가장 큰 $x$를 찾아서 거기를 새로운 tracked location으로 만든다.
4). 이번엔 두개의 이미지를 자른다. 하나는 tracked location 거리와 $r$이하로 떨어진 $x$들(positive samples), 또 하나는 $r$보다는 크고 $b$보다는 작은 $x$들(negative samples)의 이미지를 자른다.
5).MIL appearance model을 하나의 positive bag과 여러개의 negative bag을 가지고 업데이트한다.
여기서 AdaBoost와 다른점은 MIL을 사용하는 부분(appearance model에서 Bag을 사용한다는 것)이 특별합니다. 당연히 appearance model이 다르니깐 classifier가 달라지는것을 생각한다면 달라진 appearance model을 중점적으로 보면되겠네요.
이 Bag이란 것은 positive한 feature가 하나라도 들어있으면, 그 Bag에 들어있는 instance들 모두 positive로 labeling됩니다. 그에 반에 instance모두가 negative feature 이어야 그 Bag이 negative로 labeling되는 거죠. 즉 어떤 범위를 모두 positive로 보아서 그 영역을 찾습니다. 마치 여자인지 판단할때, 머리길이, 신체사이즈, 얼굴생김새, 목소리를 모두 보고 판단하는 것과 같습니다. 어 머리길이만 보고 좀 기내? 여자인것같다. 이렇게 하나의 feature만 보면 틀릴 확률이 더 크겠죠.
그럼 각 instance를 따로 학습하지 않고 Bag을 사용하는 이유는 Tracker를 헷갈리게 하면 안되므로 그러는건데요. 한 물체를 Tracking 할때 시간이 지날수록 Tracking하는 곳이 모호해지고 빗나가게 됩니다. 여러개의 인스턴스를 가지고 있으면 더욱 그러하겠죠? Tracking이 되더라도 tracked location이 자주변경되 Box가 흔들리고 안정적이지 못할겁니다. 물론 그 와중에 계속 새로운 positive를 학습하니깐 tracker는 더 헷갈릴것이고요. 그러므로 Bag을 이용해 여러개의 positive sample들을 사용하면서 헷갈리지는 않는 tracking을 할 수 있어요.