1. 程式人生 > >長期跟蹤經典之作2--- LCT 演算法論文閱讀與程式碼執行

長期跟蹤經典之作2--- LCT 演算法論文閱讀與程式碼執行

好了  TLD很費勁地弄完了,現在開始進階的SHJT大神的LCT,就是長期追蹤,我相信未來這個方向會火起來的。

這兩天琢磨完了論文,這裡羅列一下讀論文主要需要參閱的:

1 STC (用到了時空上下文分析定位)

2 DSST fDSST (用到了位置與尺度相關濾波器與一系列特徵維度)

3 TLD (long term經典之作,LCT用到了RF的fern分類檢測)

4 STRUCK

5 KCF CSK 不再論述

6 https://blog.csdn.net/v_july_v/article/details/7624837 支援向量機通俗導論(理解SVM的三層境界)------這個是純粹補坑用的。。大佬修改了程式碼把隨機闕改成了SVM,而且是執行時才發現的,有點方。。看到Github上一群人在向chaoma哭喊help me pls...我就知道要涼了,只能自力更生了,怪不得找不著後續的一些解析....這樣反而激起了我的好奇心,那麼就由小白我一探究竟吧

程式碼執行:

1. Unzip code or clone it from https://github.com/chaoma99/lct-tracker.git
2. Add the vl_feat toolbox in your current path 
   http://www.vlfeat.org/
3. If you don't have the object tracking benchmark (OTB) dataset yet, run 'download_videos.m' (it will automatically download the OTB-100 sequences)
4. Run utility/compile.m to comile calcIIF.cpp and im2colstep.c. These files are tested with opencv3.0. Notice the compatibility issue if your opencv version is earlier than 3.0
5. The source files "assignToBins1.c", "gradientMex.cpp", 'imResample.cpp' are from Pitor Dollar's toolbox. If the compiled files do not work on your system, get it from http://vision.ucsd.edu/~pdollar/toolbox/doc/index.html

Introduction The script 'run_tracker' without parameters is to choose a video and test the proposed tracker. The start interface is 'run_tracker'.We also provide the interface 'run_lct2' to reproduce our results on OBT tracking benchmark 這個是復現評測演算法效能時用的;

run_tracker Without any parameters, will ask you to choose a video, and track the objects, and show the results in an interactive figure. 可以用互動式的數字顯示結果;Press 'Esc' to stop the tracker early. You can navigate the video using the scrollbar at the bottom.可以拖動底部的滾動條導航檢視視訊;

run_tracker VIDEO Allows you to select a VIDEO by its name. 'all' will run all videos and show average statistics. 'choose' will select one interactively.

For the actual tracking code, check out the 'tracker_lct' function. 想看跟蹤詳細程式碼,去tracker_lct檔案檢視;

Though it's not required, the code will make use of the MATLAB Parallel Computing Toolbox automatically if available.

。。。不說了,沒什麼說的

程式碼執行需要 vl_feat toolbox & Pitor Dollar's toolbox,有下載連結, vl_feat toolbox可以自己做一個starup.m的執行檔案放工程裡方便執行,Pitor Dollar's toolbox之前裝過了直接用

需要注意的是utility裡面的用到一些功能是C裡的需要混編compile成mexa64檔案,這裡mex會出錯,我看了下compile執行的程式碼,發現把opencv_ts300.lib  opencv_world300.lib還有帶d字尾的lib檔案共4個拷到工程檔案下就好了,compile完生成動態連結檔案,把資料集檔案路徑新增到run_tracker pathway裡OK執行

LCT的精度很高,得益於上下文演算法以及添加了檢測環節加上後來改的SVM分類器,相比TLD進步很大,主要是精度提的很棒,速度還是30FPS,足夠滿足實時跟蹤,接下來繼續剖析程式碼找問題吧。

——————————————————————————————————

分割線:復現完修改了LCT 的程式碼,發現用尺度降維的思路比原作者嶺迴歸的思路既好又快。。果斷把原版拋棄了,現在在調參中。。。。真的是無論速度還是精確度都大幅提升,尤其是速度普遍提升了2~3倍。

有一些人問mex老出問題,我記得是網上有教程,mex空格-setup好像是,剩下的按教程來,必須選擇步驟裡對應的編輯器,這樣才能呼叫openCV,mex完會有一些mexa64檔案,有這些run tracker時才不會報錯,還要在system32和wow64裡拷進去一些動態連結檔案,我記得是這樣。