vot-toolkit是vot challenge官方发布的,用来测试跟踪器在VOT数据集上表现的工具。最近在做这方面的实验就顺便配置了一下,下面是我配置的步骤方法,分为matlab跟踪器版本和python跟踪器版本。
通用步骤
因为配置matlab和python版本的开始操作几乎一样,所以放在这部分进行阐述。具体步骤使用数字1,2,3,…代表前后次序
-
从github上下载vot-toolkit的源码和trax库(建立各种语言跟踪器与vot-toolkit之间的传输协议,以方便对不同语言写的tracker进行统一分析),网址为:
vot-toolkit: https://github.com/votchallenge/vot-toolkit trax: https://github.com/votchallenge/trax
-
解压vot-toolkit.zip和trax.zip获得vot-toolkit和trax文件。打开vot-toolkit文件并创建新文件夹native,之后将trax文件放入native文件内,所以现在路径为:
vot-toolkit/native/trax
,如下所示(下图native文件内其他内容是之后编译形成的)。 -
打开tracker/examples/READMEmd文件,点击该文件中最后的’separate repository’,下载示例ncc、python_ncc跟踪器代码。如下所示。
-
将下载后的示例跟踪器代码文件放到tracker/examples文件中,如下所示。
-
进行工作环境的配置
-
运行toolkit-path.m文件,将路径添加到matlab中
-
运行workspace/workspace_create.m文件,创建工作环境。运行结果如下图所示。
第一个选项是用来选择要进行测试的数据集,第二个选项是用来设置你的跟踪器名称,第三个选项是用来选择要测试的跟踪器代码是由什么语言编写(matlan选择1,python选择2)。之后按回车键会进行编译,尽量选择负责编译的gcc、g++版本为“4.9.x”,不然之后运行代码可能会报错。编译效果如下所示。
-
-
当编译完成后,会出现如下几个文件,其中tracker_our中的our就是之前我们设置的跟踪器名称:
matlab版本配置
当进行通用步骤操作后,可以进行matlab版本和python版本的配置了。下面介绍matlab版本配置操作。
- 打开上图中出现的tracker_our.m,其实这个m文件是一个接口文件,连接要测试的跟踪器代码。打开后的界面如下所示。
-
注释掉第二行的error,这是一个提醒你要进行接口配置的语句,既然咱们已经开始配置了,所以要注释掉,否则报错。
-
在函数
tracker_label=[]
中填入跟踪器标签,用来定义最后生成跟踪结果图上跟踪结果的名称。 -
进行接口函数
tracker_command=generate_matlab_command()
的设置,比如我们进行示例跟踪器ncc的测试。示例跟踪器ncc的路径为tracker/examples/matlab/ncc.m,如下所示。
那接口函数中的两个参数分别设置为`tracker_commnad=genarate_matlab_command("ncc","<path-vot-toolkit>/tracker/examples/matlab")`,其中`<path-vot-toolkit>`代表电脑上vot-toolkit的绝对路径。观察这两个参数可以发现,其实接口函数就是输入要测试跟踪器代码的绝对路径。
-
最后写完成之后的界面为:
-
检测跟踪器是否连接成功
-
运行tracker_our,观察是否运行无误。如果有问题,一般是路径问题,这时候再运行一下toolkit_path.
-
运行run_test,报错。报错提示为无法下载test测试集。这时因为matlab无法连接网络造成的,复制报错提示中下载test测试集的网址,单独在浏览器上进行下载。下载完成后,将test测试集解压并放入vot-toolkit-master/sequences(注意这个文件夹最后是由s结尾的)中,如下所示。
-
再次运行run_test,运行成功,如下所示:
- 随便选择其中的一个序列,如
surfing
。按3,之后回车。得到下列结果:
-
这时候你按一下鼠标,就进行一帧的跟踪,毕竟这只是测试跟踪器是否能够进行。如果出现,上面的图片就说明跟踪器连接成功,可以进行测试分析。
-
跟踪器性能测试
-
运行run_experiments,出现unable to establish connection. traX support not detected错误提示。这时可能由两个问题造成:初始化时间过长和trax连接方式不正确。于是打开tracker/tracker_run文件,进行如下修改(第32行的timeout改为·
timeout=3000000
,第39行的connection改为socket
): -
再次运行run_experinments,成功。如下所示:
-
-
跟踪器性能分析:
-
修改run_analysis,将第11行修改为下面的形式:
之所以这样修改是因为我们只测试了一个叫‘our’的跟踪器,result文件内只有’our’跟踪器的测试结果,如下所示:
-
运行run_analysis,得到reports文件,文件内的形式如下所示:
-
点开index.html或者其他html文件,获得跟踪结果分析图。
-
python版本配置(与matlab版本配置基本相同,我只介绍不同点)
-
通用步骤中运行workspeace_create创建环境的时候选择python编译语言,之后进行编译。
-
打开native/trax文件,创建bulid文件。之后操作如下:
cd build cmake .. make
这个操作是编译trax库,使trax可以与python跟踪器连接起来,即python中的
import trax
有效。最后形成的目录如下所示:
- 最后,打开tracker_our,进行接口函数的配置。以示例跟踪器python_ncc为例。主要修改
tracker_command
和tracker_linkpath
两个函数。修改后的界面如下所示:
- 之后,运行run_test,如果没问题,尽可以进行测试、分析啦。工具的配置也就完成了!
总结
- vot-toolkit中很多都已经高度集成了,只需要修改几行代码就可以运行程序。但是其中会遇到各种配置问题,最明显的就是trax的连接问题。
- 初始化时间设置和连接方式设置一定要记得修改,不然无法报错。
- 如果有必要,我会写一篇介绍如何处理问题的文章,或者你们遇到什么问题也可以私信我。
kit中很多都已经高度集成了,只需要修改几行代码就可以运行程序。但是其中会遇到各种配置问题,最明显的就是trax的连接问题。 - 初始化时间设置和连接方式设置一定要记得修改,不然无法报错。
- 如果有必要,我会写一篇介绍如何处理问题的文章,或者你们遇到什么问题也可以私信我。
- 别人代码写的非常好,希望有一天自己也可以写出这样的代码工具。