写在前面
作为一个刚入实验室的小白,看了几篇论文,想要跑一下目标跟踪的实验。一开始做好了代码难调的准备,没想到测试的库竟然这么难配置!!
VOT虽然是数据集,但是它不是那种你把它数据下下来,放到tracker里面就能用的,它已经封装的十分优秀,并且给了你一个matlab
的接口,你把你训练好的tracker丢进去,然后run一下,结果就都出来了呢。不过其实每个tracker都要写一个跟VOT适配的读数据文件,写法有很多,具体我自己也没实现过,大部分VOT官网上放出来的tracker自己都写好了,可以去模仿学习一下。
VOT配置
接下来就到了配置的时候了,这边要使用MATLAB配置,并且要用到mex让MATLAB和C语言混合编译这种骚操作,所以别急着装matlab,先看服务器上的gcc版本,然后装对应的matlab,因为如果版本对不上,编译出来的东西也是不能用的。(我这边服务器是Ubuntu系统的,如果是Windows,那就很方便了,分分钟配好。)
gcc -v
我服务器上的gcc是4.7的,那我就装了matlab R2015b,如果不知道如何在服务器上装Matlab,可以参考我的上一篇博文在Linux服务器上安装Matlab
装完了matlab之后呢,就可以下载vot-toolkit这个东西了:
git clone https://github.com/votchallenge/vot-toolkit
这么下就直接文件夹下下来了,都不用解压的。
然后就可以打开你的matlab来跑了,在matlab里面打开vot-toolkit这个文件夹,里有以下几个东西:
然后在命令行运行toolkit_path,他会把当前路径加入到matlab运行路径中:
然后新建一个文件夹,这个文件夹里面放你的tracker,这个文件夹你可以理解成是你的工作,空间,就是vot在这里给你开了一个空间,你在这里面愉快的跑你的代码,我这边取名为workspace。进入这个workspace的文件夹,在里面运行workspace_create。会出现以下状况:
这就是让你选用哪个数据库了,这里我们为了测试配置行不行,直接选第一个test,因为其他数据太大,下的慢,跑的也慢。
选了1之后就会让你指定你的tracker,这里我们就使用这个数据集自带的ncc,来测试环境。
下面就是选择你的tracker实现的语言,这边还是选择1:
这样就好啦!
不过你可能会问了,坑在哪里,因为我这个已经配好了,当然截不出坑。下面来说一先Trax。
Trax配置
Trax这个东西,就是需要用到Matlab和gcc混合编译的,一开始可能会遇到的问题:
unable to unpack trax.
这个其实问题不大,就是下不下来嘛,你可以直接去下一个trax,解压后放在/vot-toolkit/native下面就可以了,trax下载链接:
https://github.com/votchallenge/trax/ 下完之后呢,你要把workspace里面东西都删了,因为你即使没有下到trax,还是能create你的空间的,只不过用不了而已。
然后继续toolkit_path这个流程。如果跑通了,恭喜你,就是没毛病了,但是会出现的问题:
编译器报错,说你什么某个具体文件具体哪一行出错,或者是这样:
trax support undetected
这个基本你也不要去看你的具体文件了,就是环境的锅,可能是你的gcc跪了,我就遇到这个问题,后来突然好了,猜测是有人动了服务器的gcc,后来改回来了。所以说服务器这种公用的东西还是不要随随便便改环境变量啊,坑死一波人!
遇到这个问题你可以去问问管理员,可能实验室师兄,老师啥的,不要死磕!就是浪费时间。
然后你还有可能是这种问题:
是warning,就是说你matlab用的gcc和你环境的不一样,就是我一开始说的,反正这个的话编译是可以编译,你就是用不了,也不要说我就写一个最简单的.c文件看看它能不能被正常运行,我告诉你是可以的,正常输出,但是Trax就是不能用!!!它就是这么傲娇。所以还是老老实实装个对应的matlab。
如果这一切都没问题,那基本上也不会有太多问题了,那之后还会出现类似于:
Tracker has not passed the Trax support test
这个可能是因为你的路径什么的出错了,看下一节。
使用Vot测试你自己的tracker
可以看到目前workspace文件夹底下生成的一系列文件:
这个时候需要修改你的tracker_ncc,这里ncc就是之前要你写的tracker的名字了,打开这个文件,把第一行注释掉:
在tracker_label那边填你的输出文件,基本就是你的tracker的名字,ncc;然后下面的tracker_command那边前一项填你的tracker.m文件的名字,比如这里我就填的ncc,后一项就是你的ncc.m所在的绝对路径。
全部配置好之后,run_test就可以跑了,如果都没有问题的话,他会有结果图片就直接显示了,会出现的问题是;
Tracker has not passed the Trax support test
这个时候一种情况,路径错了,ncc写错了;或者你可以把vot.m复制到你tracker.m的文件夹。
全部跑完,出现Done的时候,就可以分析了,把run_analysis里面error那一行注释掉,然后跑一下这个文件,就可以得到结果了~