好了 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里拷进去一些动态链接文件,我记得是这样。