近期运行CVPR2020的AutoTrack代码时,发现这篇文章只在UAV数据集上测试,而没有在OTB数据集上测试,因此,想着自己运行AutoTrack,测试其在OTB数据集上的性能表现。
本文内容
一、OTB数据集下载
OTB数据集下载地址:http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html
这边推荐一个自动下载的代码,具体参考博客Visual Tracker Benchmark v1.0全过程配置方法,测试跟踪序列OTB50/OTB100的分享
注:代码运行可能会报错(如下图),但不影响下载,再次运行代码,可继续正常下载
另外有百度网盘会员的朋友可以考虑去网盘上下载,参考博客:https://blog.csdn.net/qq_17783559/article/details/82079220
二、下载vlfeat工具包
下载地址:https://www.vlfeat.org/index.html
三、Visual Tracker Benchmark v1.0下载
下载地址:http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html
Visual Tracker Benchmark v1.0内容简介----摘自博客Visual Tracker Benchmark v1.0全过程配置方法,测试跟踪序列OTB50/OTB100
- main_running.m是用来在测试集上跑跟踪代码的,跑出的结果存在results文件夹中;
- perfPlot.m用来把测试结果画出图来,就是benchmark网上的图的效果,如果你第一次下载tracker_benchmark_v1.0的测试代码,可以先运行perfPlot.m就可以直接画出漂亮的图。只不过这些图是已有的跟踪算法和测试结果,作者都保存在results文件夹里面了;
- drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数。
- anno注释文件(边界框和属性)的目录; anno文件夹底下的attr有每个跟踪序列的属性,由11个数字(0代表没有,1代表有)分别表示11种属性----
'illumination_variations' 'out-of-plane_rotation' 'scale_variations' 'occlusions' 'deformation' 'blur' 'abrupt_motion' 'in-plane_rotation' 'out-of-view' 'background_clutter' 'low_resolution'
- initOmit 包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录;
- rstEval 包含了很多用于计算跟踪性能或者画出结果的脚本的目录;
- trackers 包含了很多跟踪器代码的目录,里面有20多个跟踪代码,有matlab版,也有c++版;
- tmp 用来存放临时结果或者日志文件的目录;
- results包含了所有已有跟踪算法的测试结果;
- util 包含主函数里用到的脚本的目录(主要就是这个文件夹里的文件需要改)。
四、代码运行
4.1 打开main_running.m,修改vlfeat工具包的路径位置----本文路径如下,根据自己下载的vlfeat路径自行修改
4.2 main_running.m第20行,改成OPE
4.3打开util/configSeqs.m,更改数据集路径
原始代码中的数据集是OTB2013的,上文下载的是OTB2015的(相比2013,2015对2013进行了扩充,即2015包含了2013的全部视频序列,2013数据集有的,2015一定有,2015有的,2013可能没有),如果只是想测试OTB2013,只需修改路径,路径写到/img/,如下所示,但如果要测试OTB2015的效果,需要添加部分数据集信息,可参考文末的附录。
4.4打开util/configTrackers.m
源代码给了十几个跟踪器,但这些跟踪器在OTB2013的运行结果都已保存在result底下,不需要再跑一遍,可直接注释,修改如下:
4.5 将跟踪代码放在trackers文件夹底下
4.6 运行main_running.m
可能出现所有结果都是error的情况,如下:
出现这种问题主要原因是run_AutoTrack没写好,调用run_AuotoTrack失败,main_running.m主要工作步骤如下:
seqs=configSeqs;
读取测试数据集的信息trackers=configTrackers;
读取待测试跟踪算法的结构体- 判断
anno
文件夹底下是否含有对应数据集的groundtruth - 判断
results
底下是否有results_OPE_CVPR13,没有的话进行创建,用于保存跟踪算法的跟踪结果 - 第134行创建命令
funcName = ['res=run_' t.name '(subS, rp, bSaveImage);'];
比如此处为:res=run_AutoTrack(subS, rp, bSaveImage);
打开run_AutoTrack,m,开头如下,保证run_AutoTrack,m能被main_running.m调用
- 第140行
cd(['./trackers/' t.name]);
进行trackers/AutoTrack/文件夹底下 - 第144行eval(funcName);该命令执行
res=run_AutoTrack(subS, rp, bSaveImage);
此时开始调用跟踪算法 - run_AutoTrack返回跟踪结果,main_running.m结尾如下,返回的result应包含如下信息到res中,用于存储跟踪结果。
问题解决思路:
本文原始的run_AutoTrack部分内容如下
而输入seq结构体内容如下
可以发现没有seq.video_path等内容,从而导致接口调用失败
解决方法:
首先,将results_OPE_CVPR13文件夹删除, 因为之前运行虽然error,但仍然产生了一系列空的mat文件,运行main_running.m时会检测是否存在这些mat文件,不删除的话,将不会调用tracker
改动如下:保证seq的内容都取得到
在此运行main_running.m,可正常调用run_AutoTrack
五、根据结果绘制Precision和Success曲线
success曲线主要是跟踪预测包围框和groundtruth的包围框的重叠比例来绘制的,并跟踪AUC(曲线下的面积)来对跟踪器排序
precision曲线主要是预测目标位置与groundtruth的目标位置之间的距离度量(对应的横坐标即像素数量)
将results\results_OPE_CVPR13中生成跟踪结果mat文件拷贝到results\results_SRE_CVPR13和results\results_TRE_CVPR13文件夹中
打开perfPlot.m,修改如下
第103行 evalTypeSet = 'OPE';
第105行 rankingType = 'threshold';%AUC, threshod (如果参数是源程序中的‘AUC’的话 跑出来的图是只有成功率图(success)而没有精度图(precision))
第140行 for j=1:1
第142行 evalType = evalTypeSet;%SRE, TRE, OPE
可能出现的问题:未定义函数或变量 ‘calcRectInt’。
解决方法:
在代码前面,加入addpath(’./rstEval’);
为了将不同算法跟踪效果进行对比,修改configTrackers.m
如下,要对比的跟踪算法可以自选
运行结果:一共24张曲线图
六、跟踪效果对比图
运行drawResultBB.m,显示不同跟踪算法的效果图,seqs=configSeqs;
用来修改显示效果的数据集;
configTrackers.m
用来确定显示哪几种算法的跟踪效果,即下图中有多少个跟踪框
参考博客
Visual Tracker Benchmark v1.0全过程配置方法,测试跟踪序列OTB50/OTB100
目标跟踪数据集OTB、VOT下载
目标跟踪tracker_benchmark_v1.0的配置
附录:OTB2015与OTB2013运行的差异
如果要运行OTB2015,需注意以下几个环节
- configSeqs.m的配置,下面是我参考大佬的一篇博客写的,视频序列路径需要写到img/,如有疑惑的可以到该大佬博客观看,该博客给出模板,省了不少功夫,表示感谢!
- anno文件夹底下groundtruth的添加,anno底下只有OTB2013的groundtruth,需要将2015补充的几十个视频序列的groundtruth添加进入,并命名为跟踪序列的名字,这个groundtruth我整理好了,可以到网盘下载:
链接:https://pan.baidu.com/s/1A3_Pj4gBX3Giz9GJ4HOeJQ
提取码:idj7 - anno底下的attr属性文件的添加,需要根据新补充视频序列是否有照明变化等情况进行统计,得到11个0/1,制成txt(都在上面网盘中)
附:configSeqs.m
function seqs=configSeqs
seqVTD={struct('name','soccer','path','D:\Matlab2018a\appdata\Datasets\OTB100\soccer\img\','startFrame',1,'endFrame',392,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','matrix','path','D:\Matlab2018a\appdata\Datasets\OTB100\matrix\img\','startFrame',1,'endFrame',100,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','ironman','path','D:\Matlab2018a\appdata\Datasets\OTB100\ironman\img\','startFrame',1,'endFrame',166,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','deer','path','D:\Matlab2018a\appdata\Datasets\OTB100\deer\img\','startFrame',1,'endFrame',71,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','skating1','path','D:\Matlab2018a\appdata\Datasets\OTB100\skating1\img\','startFrame',1,'endFrame',400,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','shaking','path','D:\Matlab2018a\appdata\Datasets\OTB100\shaking\img\','startFrame',1,'endFrame',365,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','singer1','path','D:\Matlab2018a\appdata\Datasets\OTB100\singer1\img\','startFrame',1,'endFrame',351,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','singer2','path','D:\Matlab2018a\appdata\Datasets\OTB100\singer2\img\','startFrame',1,'endFrame',366,'nz',4,'ext','jpg','init_rect', [0,0,0,0])};
seqIVT={struct('name','carDark','path','D:\Matlab2018a\appdata\Datasets\OTB100\carDark\img\','startFrame',1,'endFrame',393,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','car4','path','D:\Matlab2018a\appdata\Datasets\OTB100\car4\img\','startFrame',1,'endFrame',659,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','david2','path','D:\Matlab2018a\appdata\Datasets\OTB100\david2\img\','startFrame',1,'endFrame',537,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','sylvester','path','D:\Matlab2018a\appdata\Datasets\OTB100\sylvester\img\','startFrame',1,'endFrame',1345,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','trellis','path','D:\Matlab2018a\appdata\Datasets\OTB100\trellis\img\','startFrame',1,'endFrame',569,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','fish','path','D:\Matlab2018a\appdata\Datasets\OTB100\fish\img\','startFrame',1,'endFrame',476,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','mhyang','path','D:\Matlab2018a\appdata\Datasets\OTB100\mhyang\img\','startFrame',1,'endFrame',1490,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','david','path','D:\Matlab2018a\appdata\Datasets\OTB100\david\img\','startFrame',300,'endFrame',770,'nz',4,'ext','jpg','init_rect', [0,0,0,0])};
seqOther={struct('name','coke','path','D:\Matlab2018a\appdata\Datasets\OTB100\coke\img\','startFrame',1,'endFrame',291,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','bolt','path','D:\Matlab2018a\appdata\Datasets\OTB100\bolt\img\','startFrame',1,'endFrame',350,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','boy','path','D:\Matlab2018a\appdata\Datasets\OTB100\boy\img\','startFrame',1,'endFrame',602,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','dudek','path','D:\Matlab2018a\appdata\Datasets\OTB100\dudek\img\','startFrame',1,'endFrame',1145,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','crossing','path','D:\Matlab2018a\appdata\Datasets\OTB100\crossing\img\','startFrame',1,'endFrame',120,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','couple','path','D:\Matlab2018a\appdata\Datasets\OTB100\couple\img\','startFrame',1,'endFrame',140,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','football1','path','D:\Matlab2018a\appdata\Datasets\OTB100\football1\img\','startFrame',1,'endFrame',74,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','jogging-1','path','D:\Matlab2018a\appdata\Datasets\OTB100\jogging\img\','startFrame',1,'endFrame',307,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','jogging-2','path','D:\Matlab2018a\appdata\Datasets\OTB100\jogging\img\','startFrame',1,'endFrame',307,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','doll','path','D:\Matlab2018a\appdata\Datasets\OTB100\doll\img\','startFrame',1,'endFrame',3872,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','girl','path','D:\Matlab2018a\appdata\Datasets\OTB100\girl\img\','startFrame',1,'endFrame',500,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','walking2','path','D:\Matlab2018a\appdata\Datasets\OTB100\walking2\img\','startFrame',1,'endFrame',500,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','walking','path','D:\Matlab2018a\appdata\Datasets\OTB100\walking\img\','startFrame',1,'endFrame',412,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','fleetface','path','D:\Matlab2018a\appdata\Datasets\OTB100\fleetface\img\','startFrame',1,'endFrame',707,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','freeman1','path','D:\Matlab2018a\appdata\Datasets\OTB100\freeman1\img\','startFrame',1,'endFrame',326,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','freeman3','path','D:\Matlab2018a\appdata\Datasets\OTB100\freeman3\img\','startFrame',1,'endFrame',460,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','freeman4','path','D:\Matlab2018a\appdata\Datasets\OTB100\freeman4\img\','startFrame',1,'endFrame',283,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','david3','path','D:\Matlab2018a\appdata\Datasets\OTB100\david3\img\','startFrame',1,'endFrame',252,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','jumping','path','D:\Matlab2018a\appdata\Datasets\OTB100\jumping\img\','startFrame',1,'endFrame',313,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','carScale','path','D:\Matlab2018a\appdata\Datasets\OTB100\carScale\img\','startFrame',1,'endFrame',252,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','skiing','path','D:\Matlab2018a\appdata\Datasets\OTB100\skiing\img\','startFrame',1,'endFrame',81,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','dog1','path','D:\Matlab2018a\appdata\Datasets\OTB100\dog1\img\','startFrame',1,'endFrame',1350,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','suv','path','D:\Matlab2018a\appdata\Datasets\OTB100\suv\img\','startFrame',1,'endFrame',945,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','motorRolling','path','D:\Matlab2018a\appdata\Datasets\OTB100\motorRolling\img\','startFrame',1,'endFrame',164,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','mountainBike','path','D:\Matlab2018a\appdata\Datasets\OTB100\mountainBike\img\','startFrame',1,'endFrame',228,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','lemming','path','D:\Matlab2018a\appdata\Datasets\OTB100\lemming\img\','startFrame',1,'endFrame',1336,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','liquor','path','D:\Matlab2018a\appdata\Datasets\OTB100\liquor\img\','startFrame',1,'endFrame',1741,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','woman','path','D:\Matlab2018a\appdata\Datasets\OTB100\woman\img\','startFrame',1,'endFrame',597,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','faceocc1','path','D:\Matlab2018a\appdata\Datasets\OTB100\faceocc1\img\','startFrame',1,'endFrame',892,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','faceocc2','path','D:\Matlab2018a\appdata\Datasets\OTB100\faceocc2\img\','startFrame',1,'endFrame',812,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','basketball','path','D:\Matlab2018a\appdata\Datasets\OTB100\basketball\img\','startFrame',1,'endFrame',725,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','football','path','D:\Matlab2018a\appdata\Datasets\OTB100\football\img\','startFrame',1,'endFrame',362,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','subway','path','D:\Matlab2018a\appdata\Datasets\OTB100\subway\img\','startFrame',1,'endFrame',175,'nz',4,'ext','jpg','init_rect', [0 0 0 0]),...
struct('name','tiger1','path','D:\Matlab2018a\appdata\Datasets\OTB100\tiger1\img\','startFrame',1,'endFrame',354,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','tiger2','path','D:\Matlab2018a\appdata\Datasets\OTB100\tiger2\img\','startFrame',1,'endFrame',365,'nz',4,'ext','jpg','init_rect', [0,0,0,0])};
seqOTB49_100={struct('name','Biker','path','D:\Matlab2018a\appdata\Datasets\OTB100\Biker\img\','startFrame',1,'endFrame',142,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Bird1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Bird1\img\','startFrame',1,'endFrame',408,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Bird2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Bird2\img\','startFrame',1,'endFrame',99,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurBody','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurBody\img\','startFrame',1,'endFrame',334,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurCar1','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurCar1\img\','startFrame',247,'endFrame',988,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurCar2','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurCar2\img\','startFrame',1,'endFrame',585,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurCar3','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurCar3\img\','startFrame',3,'endFrame',359,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurCar4','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurCar4\img\','startFrame',18,'endFrame',397,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurFace','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurFace\img\','startFrame',1,'endFrame',493,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurOwl','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurOwl\img\','startFrame',1,'endFrame',631,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Board','path','D:\Matlab2018a\appdata\Datasets\OTB100\Board\img\','startFrame',1,'endFrame',698,'nz',5,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Bolt2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Bolt2\img\','startFrame',1,'endFrame',293,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Box','path','D:\Matlab2018a\appdata\Datasets\OTB100\Box\img\','startFrame',1,'endFrame',1161,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Car1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Car1\img\','startFrame',1,'endFrame',1020,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Car2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Car2\img\','startFrame',1,'endFrame',913,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Car24','path','D:\Matlab2018a\appdata\Datasets\OTB100\Car24\img\','startFrame',1,'endFrame',3059,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','ClifBar','path','D:\Matlab2018a\appdata\Datasets\OTB100\ClifBar\img\','startFrame',1,'endFrame',472,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Coupon','path','D:\Matlab2018a\appdata\Datasets\OTB100\Coupon\img\','startFrame',1,'endFrame',327,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Crowds','path','D:\Matlab2018a\appdata\Datasets\OTB100\Crowds\img\','startFrame',1,'endFrame',347,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Dancer','path','D:\Matlab2018a\appdata\Datasets\OTB100\Dancer\img\','startFrame',1,'endFrame',225,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Dancer2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Dancer2\img\','startFrame',1,'endFrame',150,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Diving','path','D:\Matlab2018a\appdata\Datasets\OTB100\Diving\img\','startFrame',1,'endFrame',215,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Dog','path','D:\Matlab2018a\appdata\Datasets\OTB100\Dog\img\','startFrame',1,'endFrame',127,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','DragonBaby','path','D:\Matlab2018a\appdata\Datasets\OTB100\DragonBaby\img\','startFrame',1,'endFrame',113,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Girl2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Girl2\img\','startFrame',1,'endFrame',1500,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Gym','path','D:\Matlab2018a\appdata\Datasets\OTB100\Gym\img\','startFrame',1,'endFrame',767,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human2\img\','startFrame',1,'endFrame',1128,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human3','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human3\img\','startFrame',1,'endFrame',1698,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human4','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human4\img\','startFrame',1,'endFrame',667,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human5','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human5\img\','startFrame',1,'endFrame',713,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human6','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human6\img\','startFrame',1,'endFrame',792,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human7','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human7\img\','startFrame',1,'endFrame',250,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human8','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human8\img\','startFrame',1,'endFrame',128,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human9','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human9\img\','startFrame',1,'endFrame',305,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Jump','path','D:\Matlab2018a\appdata\Datasets\OTB100\Jump\img\','startFrame',1,'endFrame',122,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','KiteSurf','path','D:\Matlab2018a\appdata\Datasets\OTB100\KiteSurf\img\','startFrame',1,'endFrame',84,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Man','path','D:\Matlab2018a\appdata\Datasets\OTB100\Man\img\','startFrame',1,'endFrame',134,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Panda','path','D:\Matlab2018a\appdata\Datasets\OTB100\Panda\img\','startFrame',1,'endFrame',1000,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','RedTeam','path','D:\Matlab2018a\appdata\Datasets\OTB100\RedTeam\img\','startFrame',1,'endFrame',1918,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Rubik','path','D:\Matlab2018a\appdata\Datasets\OTB100\Rubik\img\','startFrame',1,'endFrame',1997,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Skater','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skater\img\','startFrame',1,'endFrame',160,'nz',4,'ext','jpg','init_rect', [0,0,0,0])...
struct('name','Skater2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skater2\img\','startFrame',1,'endFrame',435,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Skating2-1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skating2\img\','startFrame',1,'endFrame',473,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Skating2-2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skating2\img\','startFrame',1,'endFrame',473,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Surfer','path','D:\Matlab2018a\appdata\Datasets\OTB100\Surfer\img\','startFrame',1,'endFrame',376,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Toy','path','D:\Matlab2018a\appdata\Datasets\OTB100\Toy\img\','startFrame',1,'endFrame',271,'nz',4,'ext','jpg','init_rect',[0,0,0,0])...
struct('name','Trans','path','D:\Matlab2018a\appdata\Datasets\OTB100\Trans\img\','startFrame',1,'endFrame',124,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Twinnings','path','D:\Matlab2018a\appdata\Datasets\OTB100\Twinnings\img\','startFrame',1,'endFrame',472,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Vase','path','D:\Matlab2018a\appdata\Datasets\OTB100\Vase\img\','startFrame',1,'endFrame',271,'nz',4,'ext','jpg','init_rect', [0,0,0,0])};
seqOTB50={struct('name','Basketball','path','D:\Matlab2018a\appdata\Datasets\OTB100\Basketball\img\','startFrame',1,'endFrame',725,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Biker','path','D:\Matlab2018a\appdata\Datasets\OTB100\Biker\img\','startFrame',1,'endFrame',142,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Bird1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Bird1\img\','startFrame',1,'endFrame',408,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurBody','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurBody\img\','startFrame',1,'endFrame',334,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurCar2','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurCar2\img\','startFrame',1,'endFrame',585,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurFace','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurFace\img\','startFrame',1,'endFrame',493,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','BlurOwl','path','D:\Matlab2018a\appdata\Datasets\OTB100\BlurOwl\img\','startFrame',1,'endFrame',631,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','bolt','path','D:\Matlab2018a\appdata\Datasets\OTB100\bolt\img\','startFrame',1,'endFrame',350,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Box','path','D:\Matlab2018a\appdata\Datasets\OTB100\Box\img\','startFrame',1,'endFrame',1161,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Car1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Car1\img\','startFrame',1,'endFrame',1020,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','car4','path','D:\Matlab2018a\appdata\Datasets\OTB100\car4\img\','startFrame',1,'endFrame',659,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','carDark','path','D:\Matlab2018a\appdata\Datasets\OTB100\carDark\img\','startFrame',1,'endFrame',393,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','carScale','path','D:\Matlab2018a\appdata\Datasets\OTB100\carScale\img\','startFrame',1,'endFrame',252,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','ClifBar','path','D:\Matlab2018a\appdata\Datasets\OTB100\ClifBar\img\','startFrame',1,'endFrame',472,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','couple','path','D:\Matlab2018a\appdata\Datasets\OTB100\couple\img\','startFrame',1,'endFrame',140,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Crowds','path','D:\Matlab2018a\appdata\Datasets\OTB100\Crowds\img\','startFrame',1,'endFrame',347,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','david','path','D:\Matlab2018a\appdata\Datasets\OTB100\david\img\','startFrame',300,'endFrame',770,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','deer','path','D:\Matlab2018a\appdata\Datasets\OTB100\deer\img\','startFrame',1,'endFrame',71,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Diving','path','D:\Matlab2018a\appdata\Datasets\OTB100\Diving\img\','startFrame',1,'endFrame',215,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','DragonBaby','path','D:\Matlab2018a\appdata\Datasets\OTB100\DragonBaby\img\','startFrame',1,'endFrame',113,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','dudek','path','D:\Matlab2018a\appdata\Datasets\OTB100\dudek\img\','startFrame',1,'endFrame',1145,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','football','path','D:\Matlab2018a\appdata\Datasets\OTB100\football\img\','startFrame',1,'endFrame',362,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','freeman4','path','D:\Matlab2018a\appdata\Datasets\OTB100\freeman4\img\','startFrame',1,'endFrame',283,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','girl','path','D:\Matlab2018a\appdata\Datasets\OTB100\girl\img\','startFrame',1,'endFrame',500,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human3','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human3\img\','startFrame',1,'endFrame',1698,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human4','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human4\img\','startFrame',1,'endFrame',667,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human6','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human6\img\','startFrame',1,'endFrame',792,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Human9','path','D:\Matlab2018a\appdata\Datasets\OTB100\Human9\img\','startFrame',1,'endFrame',305,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','ironman','path','D:\Matlab2018a\appdata\Datasets\OTB100\ironman\img\','startFrame',1,'endFrame',166,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Jump','path','D:\Matlab2018a\appdata\Datasets\OTB100\Jump\img\','startFrame',1,'endFrame',122,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','jumping','path','D:\Matlab2018a\appdata\Datasets\OTB100\jumping\img\','startFrame',1,'endFrame',313,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','liquor','path','D:\Matlab2018a\appdata\Datasets\OTB100\liquor\img\','startFrame',1,'endFrame',1741,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','matrix','path','D:\Matlab2018a\appdata\Datasets\OTB100\matrix\img\','startFrame',1,'endFrame',100,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','motorRolling','path','D:\Matlab2018a\appdata\Datasets\OTB100\motorRolling\img\','startFrame',1,'endFrame',164,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Panda','path','D:\Matlab2018a\appdata\Datasets\OTB100\Panda\img\','startFrame',1,'endFrame',1000,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','RedTeam','path','D:\Matlab2018a\appdata\Datasets\OTB100\RedTeam\img\','startFrame',1,'endFrame',1918,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','shaking','path','D:\Matlab2018a\appdata\Datasets\OTB100\shaking\img\','startFrame',1,'endFrame',365,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','singer2','path','D:\Matlab2018a\appdata\Datasets\OTB100\singer2\img\','startFrame',1,'endFrame',366,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','skating1','path','D:\Matlab2018a\appdata\Datasets\OTB100\skating1\img\','startFrame',1,'endFrame',400,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Skating2-1','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skating2\img\','startFrame',1,'endFrame',473,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Skating2-2','path','D:\Matlab2018a\appdata\Datasets\OTB100\Skating2\img\','startFrame',1,'endFrame',473,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','skiing','path','D:\Matlab2018a\appdata\Datasets\OTB100\skiing\img\','startFrame',1,'endFrame',81,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','soccer','path','D:\Matlab2018a\appdata\Datasets\OTB100\soccer\img\','startFrame',1,'endFrame',392,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','Surfer','path','D:\Matlab2018a\appdata\Datasets\OTB100\Surfer\img\','startFrame',1,'endFrame',376,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','sylvester','path','D:\Matlab2018a\appdata\Datasets\OTB100\sylvester\img\','startFrame',1,'endFrame',1345,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','tiger2','path','D:\Matlab2018a\appdata\Datasets\OTB100\tiger2\img\','startFrame',1,'endFrame',365,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','trellis','path','D:\Matlab2018a\appdata\Datasets\OTB100\trellis\img\','startFrame',1,'endFrame',569,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','walking2','path','D:\Matlab2018a\appdata\Datasets\OTB100\walking2\img\','startFrame',1,'endFrame',500,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','walking','path','D:\Matlab2018a\appdata\Datasets\OTB100\walking\img\','startFrame',1,'endFrame',412,'nz',4,'ext','jpg','init_rect', [0,0,0,0]),...
struct('name','woman','path','D:\Matlab2018a\appdata\Datasets\OTB100\woman\img\','startFrame',1,'endFrame',597,'nz',4,'ext','jpg','init_rect', [0,0,0,0])};
seqs=[seqIVT,seqVTD,seqOther]; %OTB-2013
%seqs=[seqIVT,seqVTD,seqOther,seqOTB49_100,seqOTB50]; %OTB-2015