OTB工具箱使用笔记

https://blog.csdn.net/devil_08/article/category/7603797 这个教程已经很完美了,可以参考。

准备工作

到官网下载工具箱源代码,下载vlfeat工具

要修改的地方

configSeqs.m文件中的数据路径
OTB工具箱使用笔记_第1张图片

configtracker.m文件中,把要测试的跟踪器放入trackersNew中,然后再在trackers加入trackersNew。改好后的样子

同时要把要测试的跟踪器的代码放入trackers文件夹当中。这里只是以KCF的为例子。说明一下configTrackers.m文件中放的是所有的跟踪算法。算法对比的添加删除都是在此完成。

下面修改main_running.m下的
OTB工具箱使用笔记_第2张图片
框出来的就是要修改的,首先把下载好的vlfeat工具解压,然后把里面toolbox所在路径,复制粘贴到第一个红色框当中。第二个红色框改成要测试的跟踪器所在路径,第三个框为评价标准选择。

最后是perfPlot.m 文件中的第105行
改好后

其中rankingType默认是AUC,计算的是曲线下的面积的图,threshold,计算的是成功率图。注意AUC和threshold是两种不同的评价指标,并不是包含关系。

运行顺序

准备好了上面所说的,就可以运行脚本了。
首先是运行main_running.m文件,在OTB的量化评价指标中,有OPE、TRE、SRE三种,可由perfPlot.m得到。
视频图像的可视化bounding boxes是由drawResultBB.m得到。
而main_running.m主要作用是跑跟踪算法的代码,并将运行跟踪算法返回的结果存放在result文件夹下。具体在哪个文件夹下,通过下面这行代码决定。(结果的存放形式是mat)

%运行main后得到的结果将存在此路径下(不修改就是在results文件夹的CVPR13下,可以自由修改),
finalPath = ['./results/results_' evalType '_CVPR13/'];

evalType就是选择跑OPE、TRE、SRE三种中的一种。如下所示

%'OPE','SRE','TRE' 选择不同的评价标准, 初始为TRE 
%这里你想得到什么结果就修改为什么评价标准
evalType='TRE'; 

OPE是一次成功率,TRE(20次)和SRE(12次)都是多次的。其中TRE的第一次结果其实就是OPE的结果,所以你可以跑一次TRE和一次SRE就够了。也就是说main_running.m文件需要跑两次,需要费点时间。
OTB工具箱使用笔记_第3张图片
如果输出是这样,则说明程序在数据集上跑,耐心等待。

然后再运行perfPlot.m文件,作用是画出各种曲线图,也就是原论文中的各种成功率图和各种精度图。图片保存在figs文件夹下。
跑出的图
OTB工具箱使用笔记_第4张图片
OTB工具箱使用笔记_第5张图片
这里本人跑出的两张图。

evalTypeSet = {'SRE', 'TRE', 'OPE'};

这行代码控制的是出几种图,可以只保留你想出的图,其他的删除。

最后就是drawResultBB.m,这个得到的视频中各个跟踪算法的结果保存在tmp文件夹的img中。如果论文中需要插图,可以运行得到。如图所示
OTB工具箱使用笔记_第6张图片
注意:这个m文件的运行需要有TRE,SRE,OPE中的一种矩阵结果,因此运行前,需要先运行一下main文件得到矩阵结果,之后就可以得到这样的结果图。

pathRes = '.\results\results_SRE_CVPR13\';% The folder containing the tracking results

即在该文件夹中,有相应的mat文件。

几个需要注意的问题

一般已有的比较知名的跟踪器的结果都可在官网下载,会实时更新。所以,要画图比较的话,只需要要测试的跟踪器的代码。然后把要比较的跟踪器的结果放在results文件当中,SRE和TRE的都需要。

不要随便修改脚本中的文件路径,最好是复制粘贴到工具箱文件夹当中。

最重要的

其实上面的这些都不难,最重要的还是搞定跟踪器的接口函数代码。

一般报错什么什么文件找不到,大部分是路径问题。

你可能感兴趣的:(目标跟踪)