Visual Tracker Benchmark 教程



原始论文链接:
Online Object Tracking: A Benchmark (CVPR 2013)
http://faculty.ucmerced.edu/mhyang/papers/cvpr13_benchmark.pdf


后来2015年扩充到100库再版发表到TPAMI。
Object Tracking Benchmark。
http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7001050


官方链接:


http://cvlab.hanyang.ac.kr/tracker_benchmark/


新版的OTB补充了50个video,加上过去的50个组成了100个video。


我使用的是Benchmark V1.0来显示tracking的结果,在下载完代码之后,里面已经存在了关于各种tracker在不同数据集上的结果了。


如果要验证自己的算法在这个数据集上的效果,直接的方法:


第一步,将代码先拷到OTB_ROOT_PATH/tackers/这个文件夹下,你会发现里面已有好几个算法的代码文件夹了。


第二步是:到OTB_ROOT_PATH/util/configTrackers.m这个函数中,在trackers1这个结构体中添加上你的代码的名字,比如:struct('name','KCFDP','namePaper','KCFDP'),...。


第三步是:运行main_running.m函数。 


具体的例子可以参考:https://github.com/masa-nudt/KCFDP


这个作者介绍如何用OTB跑作者自己的算法


间接的方法:


比较笨的方法就是:当我需要验证自己的结果的时候,我只需要将自己算法的结果保存成作者放在results文件夹中的mat数据的样子。


下面具体讲讲:


打开文件夹会发现很多子文件夹和四个主要的函数;依次是drawResultBB.m, genPerfMat.m , main_running.m 和perfPlot.m 函数。


对于mainrunning函数是主函数,这个函数的作用是能够将视频分割成20段,以验证TRE。同时,能够对第一帧的ground_truth进行一定的变换(一共12种),从而验证SRE。最后可以在这个里面将自己的代码加进去,从而能够按照特定的形式保存好tracking的results,简而言之就是能够实现所有的效果。


而想画各种tracker算法在图像上的效果(bounding boxes),可以调用drawResultBB.m函数,就可以实现:drawing bounding boxes (BBs) of different trackers on each frame   
如果想画各种精度曲线的话,就可以调用perfPlot函数,这个函数调用genPerMat函数得到需要的精度数据以及错误率(DP,OP),然后放到perfMat\overall\文件中,画出来的图保存在figs\overall\文件夹下。
同时作者画出了29个tracker方法中10个方法的结果,采用的是rankNum=10这个参数来设置的,从中选取前10个结果最好的。rankingtype采用的是AUC的方法。
另外需要注意的参数是evalTypeSet = {'OPE'};%{'SRE', 'TRE', 'OPE'};
还是和drawResultBB一样,genPerfMat在生成数据的时候访问的是results/文件夹,所以我们需要将结果保存成标准的格式并且放到对应的文件夹中。


然后讲各个文件夹的作用:anno文件夹放的是51个测试视频的ground_truth。figs用来存放上面说的drawResultBB.m画出来的图片。initOmit是每一个视频不能够用来初始化的帧,这些帧一般都是target比较模糊。perfMat用来存放genPerMat的结果。results存放的是作者已经跑好的不同数据集上不同算法的结果。rstEval存放的是一些评价函数。tmp存放临时变量,trackers存放这个各种tracking算法的源码或者exe文件。util中的函数最有用,也是最可能需要修改的。比如configSeqs.m和configTrackers.m函数。


OK!!










对于util文件夹我们需要衡量那些个数据集就去函数configSeqs中取修改参数,如果要比较那些算法就去config


发布了36 篇原创文章 · 获赞 45 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/u012154840/article/details/79414628