又要接受新的挑战了,因为实习公司有要求,需要进行视频跟踪,所以LZ又成了小白,但是导师说要先用传统方法,刚好LZ最近也很想把传统的图像处理再恶补一下,所以,就加油干吧!
第一步:Visual_Tracker_Benchmark_v1.0下载
官网是在:http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html
但是,网速渣渣,下了两次都是文件已损坏,所以,建议还是科学上网,或者到GitHub上去下载,具体的网址为:https://github.com/liulj13/tracker_benchmark_v1.0
第二步:踩坑实录
首先,LZ先搜了一下,知道Visual_Tracker_Benchmark这个还是有不少坑的,所以早已做好心理准备,下面是大型踩坑现场,请注意验收!!
首先运行了下main_running.m文件,这样简单粗暴,必然出现ERROR了!
因为Matlab是不带vl_feat这个包的,所以需要自行下载,下载的网址为:http://www.vlfeat.org/download.html, 对下载的包进行解压缩,然后在main_running.m文件中修改成对应的安装路径,即可,具体如图所示:
问题解决,然后第二个ERROR
这个问题就很明显了,因为LZ没有下对应的OTB数据集,所以就会产生报错,对应OTB数据集的下载地址如下:http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html 看自己的需求下吧,这个可能要好一会儿,小伙伴们可以看会儿paper啦!
下载好了后要将数据进行解压,修改对应代码的路径,如下图所示:
LZ是放在G盘下,则修改configSeqs.m中的basepath就可以了。
下面是第三个ERROR:
出现这个原因在网上有很多稀奇古怪的方法,也许有些帖子是亲身测试的,但是有些LZ觉得简直是胡说!误人子弟!
解决方案如下,一般出现这种问题是因为trackers文件夹下并没有添加tracker,换句话说和LZ一样下载完数据直接就运行main_running.m文件。解决方案如下,需要小伙伴自行下载一个tracker,最好是适用于OTB测试集,在小伙伴的介绍下,LZ下载了staple,下载网址如下:https://github.com/bertinetto/staple,
然后对configTrackers.m进行修改,把其余的跟踪器都注释掉,添加对应于S tapled 结构,修改方式如下:
trackersTEST={
struct('name', 'Staple', 'namePaper', 'Staple')
};
trackers = [trackersTEST];
具体的文件结构如下:注意Staple的大小写问题
然后又遇到下一个错误:
其实这个bug还是很好找的,原因很简单,即使下载的数据集中并没有这个文件名,其实LZ也很有疑惑,因为官网如图所示:
相信小伙伴其实很容易计算出7*7=49,那为什么叫OTB50呢,实际上它是有50个序列的,其中skating2[1,2]有两个跟踪目标,所以可以看作是两个视频序列,所以一共有50组序列,还是很容易理解的。同理,OTB100除了包含OTB50还有另外49组序列,其中Jogging也有两个跟踪目标,所以按照
所以把原始的Jogging分成两个文件夹,然后按照如下命名就行了,分别包含一个groundtruth文件就可以了。
后面运行run_Staple的时候发现又存在一个问题,细心的小伙伴可能已经发现了,LZ只保留了三组数据,这样方便调试,但是会出现如下的情况:
或者出现下面的情形:
通常会出现上述的两种情况,一种是运行起来全部都是error,还有一种是Empty all, error是首次运行结果出错,Empty all是已经运行过,且结果出错,就会显示Empty all。具体出错的原因有很多,需要小伙伴们单点调试程序来完成,以Staple官网下载的程序为例,做一个分析,首先找到报错位置,发现是Staple本身运行出错,然后单独运行Staple,会出现如下错误:
在最后调试发现是Staple中间程序出错,然后对程序进行debug,加上如下语句:
if params.visualization
params.videoPlayer = vision.VideoPlayer('Position', [100 100 [size(im,2), size(im,1)]+30]);
end
保存后再进行运行,在运行前一定要把results里面的之前跑的错误结果(都是.mat文件)删除。
最后运行结果如下:
最后吐槽下,数据集下的是真的慢,下载会有文件损坏,然后又会各种报错,不过这个都是小问题啦!
每天都是以踩坑开始的O(∩_∩)O!