我用的是Matlab2018a。
这里给出百度网盘的链接地址:链接:https://pan.baidu.com/s/1XEjpxG318yDnUsAHY8mu3Q
提取码:8k2m
下载后,Matlab具体安装流程有专门的文档介绍。
需要下载Object Tracking Benchmark工具:tracker_benchmark_v1.0.zip
官网下载地址:http://cvlab.hanyang.ac.kr/tracker_benchmark/index.html
这里给出百度网盘的链接地址:
链接:https://pan.baidu.com/s/1s8jTOhAZikBQow59Ku5mrg
提取码:skm1
OTB50和OTB100的官方下载地址:
http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html
需要注意的是,OTB100就是在OTB50原有的基础上增加的,所以OTB100需要将OTB50的数据集也下载。
但是由于需要一个一个点击去下载,任务量比较大,也比较繁琐,这里给出百度网盘链接:
链接:https://pan.baidu.com/s/1O9lW67vijLa_VB2yHs27zA
提取码:qrg5
vlfeat是Matlab用于图像处理的一个工具,官网下载地址:
http://www.vlfeat.org/index.html
百度网盘下载链接:链接:https://pan.baidu.com/s/1SXog2QpKwiAJEHoQImzMVQ
提取码:8n0m
介绍的是vlfeat工具包在matlab中的配置方法。
将vlfeat压缩包下载后,解压到某位置
打开matlab,在命令行窗口edit startup.m,创建一个文件startup.m
run('F:\OTB\vlfeat-0.9.21\toolbox\vl_setup\')
需要注意的是run里面的地址为你解压vlfeat压缩包的位置
保存并关闭startup.m文件,然后重启matlab,就可以完成了。(有人可能会没有执行startup.m,解决方法:打开matlab>>主页>>环境>>设置路径>>添加并包含子文件夹;把解压的vlfeat的文件夹添加进去,保存并关闭)
在matlab的命令行窗口输入vl_version,得到vlfeat的版本号,就是vlfeat安装成功了。
BACF算法的代码下载:百度网盘链接链接:https://pan.baidu.com/s/1m3mM00bSlvLsDRvf7ZZycA
提取码:a8eq
解压后出现两个文件夹。如图
删除_MACOSX,我们只用BACF_toUpload
直接运行会发生错误,这是因为缺少fhog.m文件,百度网盘链接地址:链接:https://pan.baidu.com/s/1RFVYyMiOD0-MolpD5seCrQ
提取码:n2ii然后打开
然后打开BACF_Demo.m文件,我们只需修改图示部分:
第一部分:我们修改base_path的路径,为数据集解压的路径
第二部分:修改videos,我们在这里只测试Car4
在这里我遇到的问题是缺少依赖库vcomp100.dll。下载地址:https://cn.dll-files.com/vcomp100.dll.html
这里需要基于自己电脑来下载对应的版本,下载后将vcomp100.dll解压后放置C:\Windows\System32目录下。
注释文件(边界框和属性)的目录(1)anno:注释文件的目录
(2)figs:存储各种属性的准确度或者成功率图
(3)initOmit:包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释的目录
(4)perfmat:存储最终用于画图的mat文件
(5)results:包含了跟踪算法的测试结果
(6)retEval:包含了用于计算跟踪性能或者画出结果的脚本的目录
(7)tmp:用来存放临时结果或者日志文件的目录
(8)trackers:包含了很多跟踪器代码的目录
(9)util:包含主函数里用到的脚本的目录
(10)drawResultBB.m:用于画每个帧上不同跟踪器的边界框的主函数
(11)main_running.m:在测试集上跑跟踪代码的,跑出的结果存在results文件夹中
(12)perfPlot.m:用来把测试结果画出图来,就是benchmark网上的图的效果,如果你第一次下载tracker_benchmark_v1.0的测试代码,可以先运行perfPlot.m就可以直接画出漂亮的图。只不过这些图是已有的跟踪算法和测试结果,作者都保存在results文件夹里面了
我们将上面修改完成的BACF算法放入到trackers文件夹中。
如图所示:
第一部分,在addpath中我们需要添加自己所解压vlfeat文件中toolbox
第二部分,因为我们要测试BACF算法,所以将其改为BACF
第三部分,我们用OPE,所以这里修改为OPE
configSeqs.m在util文件夹中,用matlab打开,如图所示:
在图中圈出的部分则是需要我们修改的,改为自己所解压数据集的路径,这个任务量比较大。
打开configTrackers.m,我们把系统自带的跟踪器注释掉(注释:ctrl+r,注销注释:ctrl+t),如图所示:
然后我们只需添加自己需要测试的跟踪代码,这里测试BACF算法:
function trackers=configTrackers
trackersNew={struct('name','BACF','namePaper','BACF')};
trackers=trackersNew;
由于在 BACF_Demo.m中定义了learning_rate=0.013。所以在run_BACF.m文件我们将params.learning_rate = lr; 改为 params.learning_rate = 0.013;
并且修改参数为:
% size, position, frames initialization
params.wsize = [seq.init_rect(1,4), seq.init_rect(1,3)];
params.init_pos = [seq.init_rect(1,2), seq.init_rect(1,1)] + floor(params.wsize/2);
params.s_frames = seq.s_frames;
params.no_fram = numel(params.s_frames);
%seq.en_frame - seq.st_frame + 1;
% params.seq_st_frame = seq.st_frame;
% params.seq_en_frame = seq.en_frame;
即可运行成功!!!
如果测试其他跟踪算法,只需将BACF改为相对应的名字。
(1)我们先将results\results_OPE_CVPR13生成的.mat文件复制到results\results_SRE_CVPR13和results\results_TRE_CVPR13中
(2)打开perPlot.m,按照如下顺序修改
添加
addpath('./rstEval');
这里需要注意的是,第五行threshold而不是后面注释的threshod
这里正常按图修改
(3)修改完成后,我们运行perPlot.m,得到下图(需要注意的是我们运行结果是放在perfMat文件夹中的overall中,再次运行需要删除这里面的上次的运行结果)