本文的视频讲解目标跟踪_OTB数据集和VOT数据集评估图的绘制
博主电脑配置:
CPU:酷睿i9-9900kf,
显卡:RTX2070S,
gcc版本:7.5.0,
以下实验在MATLAB2016b平台上运行。
一、工具包准备
vot-toolkit工具包
git clone https://github.com/votchallenge/vot-toolkit
trax编译工具
git clone https://github.com/votchallenge/trax
ncc的MATLAB、Python等测试包
git clone https://github.com/votchallenge/integration
或者百度网盘
链接: https://pan.baidu.com/s/1qOctNOgplErnukjmbblrAA
密码: iwf9
二、文件夹创建
2.1 解压并在vot-toolkit文件夹中新建native文件夹,将刚刚下载的trax整个文件放入native文件夹内
2.2 解压并将integration中所有文件(matlab,native,python三个文件夹)放入到放入/vot-toolkit/tracker/examples/
2.3 在vot-toolkit中新建一个vot_workspace文件夹
2.4 下载好VOT2016数据集
自己预先下载,省时间,记住路径,后面设置
三、trax编译
首先进入trax文件内,改成自己路径
cd /home/m1309/ProjectFiles/vot/vot-toolkit/native/trax
一步一步输入指令:
mkdir build
cd build
cmake ..
make
四、在MATLAB生成文件
4.1 打开matlab,找到vot-toolkit文件夹并运行toolkit_path.m
4.2 修改数据集路径
修改vot-toolkit/workspace/workspace_load.m里面第142行 sequences_directory =‘/path/to/vot2016’,指向你的数据集路径sequences_directory =‘/home/ch/ProjectFiles/vot/VOT2016’;
4.3 运行workspace_create.m文件
先打开vot-toolkit/workspace/workspace_create.m文件,然后再进入刚刚创建的vot_workspace文件夹,运行workspace_create.m
命令行依次输入5,ncc, 1,就会出现左侧的文件
五、对生成的文件进行测试及解决错误
5.1 设置tracker_ncc.m
在/VOT/vot-toolkit/vot_workspace打开tracker_ncc.m:设置路径如下(注意路径指向自己的文件夹位置)
1、注释error语句*
设置下面3行代码中的路径为自己文件夹的路径
2、tracker_label = ['ncc'];
3、tracker_command = generate_matlab_command('ncc', {'/home/m1309/ProjectFiles/vot/vot-toolkit/tracker/examples/matlab'});
4、tracker_linkpath = {'/home/m1309/ProjectFiles/vot/vot-toolkit/native/trax/build'}; % A cell array of custom library directories used by the tracker executable (optional)
5.2 错误一
运行run_test.m仍然出错
Tracker execution interrupted: Invalid MEX-file '/home/m1309/ProjectFiles/vot/vot-toolkit/native/traxclient.mexa64': /usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/ubuntu/VOT/vot-toolkit/native/traxclient.mexa64).
TraX support not detected.
问题出在libstdc++.so.6这个上面,需要重新建立正确的链接,并重启Matlab即可解决。
cd /usr/local/MATLAB/R2016b/sys/os/glnxa64 # Matlab对应路径
sudo mv libstdc++.so.6.0.25 bak-libstdc++.so.6.0.25
sudo mv libstdc++.so.6 bak-libstdc++.so.6
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 ./
sudo ln -sf ./libstdc++.so.6.0.25 ./libstdc++.so.6
注意看自己文件的版本libstdc++.so.6.0.25
5.3 错误二
再次运行,仍然报错
解决办法:
打开tracker/tracker_run.m,第38行
% connection = ‘standard’;
注释掉,修改为下述语句(注意:复制过去后,引号改为英文引号)
connection = 'socket';
5.4 运行run_test.m
再接着运行run_test.m,然后用鼠标点他就可以动了,点一下动一下。
5.5 完整运行
想要整个跑完的就运行run_experiments.m。这个vot会在一个视频上跑多次测试,如果只想一个视频跑一次就在[sequences, experiments] = workspace_load();
下面一行添加下列语句(分号改为英文分号),表示跑一次:
experiments{1,1}.parameters.repetitions = 1;
六、 与其他算法结果对比
下载vot2016其他算法结果
data.votchallenge.net/vot2016/vot2016_results.zip
将其中几个比较熟悉的算法放在一起results文件,进行测试
对run_analysis.m文件进行更改
1 注释掉error语句
2 trackers = tracker_list('CCOT', 'deepMKCF', 'DeepSRDCF', 'DSST2014', 'HCF', 'KCF2014', 'MAD', 'Staple');
进入images文件夹中打开图片
测试其他vot数据集也是一样的过程,只有导入数据集的路径不一样。