目标跟踪之OTB数据集下载及Visual Tracker Benchmark v1.0配置

近期运行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

  1. main_running.m是用来在测试集上跑跟踪代码的,跑出的结果存在results文件夹中;
  2. perfPlot.m用来把测试结果画出图来,就是benchmark网上的图的效果,如果你第一次下载tracker_benchmark_v1.0的测试代码,可以先运行perfPlot.m就可以直接画出漂亮的图。只不过这些图是已有的跟踪算法和测试结果,作者都保存在results文件夹里面了;
  3. drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数。
  4. 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'
  5. initOmit 包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录;
  6. rstEval 包含了很多用于计算跟踪性能或者画出结果的脚本的目录;
  7. trackers 包含了很多跟踪器代码的目录,里面有20多个跟踪代码,有matlab版,也有c++版;
  8. tmp 用来存放临时结果或者日志文件的目录;
  9. results包含了所有已有跟踪算法的测试结果;
  10. 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主要工作步骤如下:

  1. seqs=configSeqs;读取测试数据集的信息
  2. trackers=configTrackers;读取待测试跟踪算法的结构体
  3. 判断anno文件夹底下是否含有对应数据集的groundtruth
  4. 判断results底下是否有results_OPE_CVPR13,没有的话进行创建,用于保存跟踪算法的跟踪结果
  5. 第134行创建命令funcName = ['res=run_' t.name '(subS, rp, bSaveImage);'];比如此处为:res=run_AutoTrack(subS, rp, bSaveImage);
    在这里插入图片描述
    打开run_AutoTrack,m,开头如下,保证run_AutoTrack,m能被main_running.m调用
    在这里插入图片描述
  6. 第140行cd(['./trackers/' t.name]);进行trackers/AutoTrack/文件夹底下
  7. 第144行eval(funcName);该命令执行res=run_AutoTrack(subS, rp, bSaveImage);此时开始调用跟踪算法
  8. 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))140for j=1:1142行 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,需注意以下几个环节

  1. configSeqs.m的配置,下面是我参考大佬的一篇博客写的,视频序列路径需要写到img/,如有疑惑的可以到该大佬博客观看,该博客给出模板,省了不少功夫,表示感谢!
  2. anno文件夹底下groundtruth的添加,anno底下只有OTB2013的groundtruth,需要将2015补充的几十个视频序列的groundtruth添加进入,并命名为跟踪序列的名字,这个groundtruth我整理好了,可以到网盘下载:
    链接:https://pan.baidu.com/s/1A3_Pj4gBX3Giz9GJ4HOeJQ
    提取码:idj7
  3. 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
  • 13
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
目标跟踪是计算机视觉领域中的一个重要任务,它旨在通过连续帧的分析和处理,在视频中准确地跟踪特定目标。OTB(Object Tracking Benchmark数据集是一种常用的用于目标跟踪算法评估的数据集。 对于在OTB数据集上测试目标跟踪算法,首先需要将待测试的目标跟踪算法应用于OTB数据集的视频序列中。通过逐帧分析视频序列,算法可以在每一帧中定位目标的位置。随着视频的播放,算法将根据先前帧的跟踪结果来推断目标在当前帧中的位置。 在测试过程中,可以使用OTB数据集提供的标注结果对算法的跟踪准确性进行评估。标注结果是事先由人工标注的目标位置,以边界框的形式保存在数据集中。算法输出的跟踪结果也是以边界框的形式表示目标位置。 评估跟踪算法的准确性通常使用一些常见指标,如平均重叠率(average overlap)和成功率(success rate)。平均重叠率指标通过计算算法输出与标注结果的边界框之间的重叠面积来度量跟踪准确性。成功率指标则通过设置一个重叠阈值,判断算法输出的边界框是否成功跟踪目标。 通过在OTB数据集上进行测试,可以评估目标跟踪算法在不同场景下的性能表现。同时,OTB数据集也提供了用于比较不同目标跟踪算法的基准结果,有助于研究人员和开发者了解和改进目标跟踪算法的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值