Online Object Tracking:A Benchmark 吴毅
用我自己的算法在benchmark上跑的步骤和遇到的问题:
步骤:
下载完benchmark后会看到在文件中包含4个.m文件,main_running.m、perfPlot.m、genPerfMat.m、drawResultBB.m
1 把自己的算法放到benchmark的文件夹trackers中。
2 打开main_running.m文件,在14和16行 分别打开configSeqs.m文件和configTrackers.m文件。configSeqs.m写的是放图片集的名称和位置,需要根据自己图片序列集存放的位置进行修改,名称也需要注意一下,例如:原名称是david_c,可是我的数据集的名称是david,我的路径是D:\data_seq\David\img\,多了一个img,因为img中放的是图片。
configTrackers.m文件中放的是所有的算法,在trackers1这个结构体中添加上你的代码的名字,比如:struct('name','KCFDP','namePaper','KCFDP'),...。
3 最重要的一步就是需要写一个将自己算法的输入输出对接到benchmark中的脚本run_tracker.m文件,打开其他算法时会发现每个算法中都会有run_tracker.m文件,例如run_CT.m run_CSK.m
这步很简单,参照其它算法 例如:run_CT.m对比CT.m文件 看到第一行的输入和最后一行的输出进行了统一,
function results=run_CT(seq, res_path, bSaveImage)
results.res=res;
results.type='rect';
results.fps=(seq.len-1)/duration;
disp(['fps: ' num2str(results.fps)])
输入:Seq代表着输入的图片,要将算法中输入的图片用Seq来代替
输出:res代表跟踪位置type 类型
做完上述三步后,运行main_running.m函数。对于mainrunning函数是主函数,这个函数的作用是(1)能够将视频分割成20段,以验证TRE。(2)若是SRE,则可以在空间改变初始位置,一共12组
运行完main_running.m函数,得到的结果是在文件夹results中的results_SRE_CVPR13和results_TRE_CVPR13。
如果想画各种精度曲线的话,就可以运行perfPlot.m文件,这个函数调用genPerMat函数得到需要的精度数据以及错误率(DP,OP),然后放到perfMat\overall\文件中,画出来的图保存在figs\overall\文件夹下。运行perfPlot.m会调用生成的结果results_SRE_CVPR13和results_TRE_CVPR13,以此画出结果
画各种tracker算法在图像上的效果(bounding boxes),可以调用drawResultBB.m函数,就可以实现。
更多详情 请看傻瓜式教程二