标签:
我使用的是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函数。
对于util文件夹我们需要衡量那些个数据集就去函数configSeqs中取修改参数,如果要比较那些算法就去config
标签:
原文地址:http://www.cnblogs.com/voyagflyer/p/5517477.html