之前写过一篇博客:用pysot里面的vot测试功能测试DIMP50在vot2018上的表现,当时也是可以测试成功的。
今天用vot-toolkit-python,也就是vot2020新出的python版本的toolkit来测试一下DiMP50在VOT2018上的表现,在此记录备份一下。
注:在看本篇教程之前起码已经跑通过DiMP50,所以跑通DiMP50的过程不再赘述

1. 配置环境

因为之前在跑pytracking的时候已经配置过一个anaconda的base环境(里面有些包的版本还很严格),而vot-toolkit-python的requirements有很多包的版本不同,所以我就新建了一个vot2020的conda env,如果你觉得可以的话,在能跑dimp的环境中装也是可以的。
注意:python>=3.6是必要条件

conda create -n vot2020 python=3.7
# 激活vot2020环境,以下都是在vot2020上的操作
conda activate vot2020

安装vot-toolkit-python:

pip install git+https://github.com/votchallenge/vot-toolkit-python

安装的同时会把requirements里面所有的包给安装完。

2. 初始化workspace

打开终端,输入以下命令初始化工作区:

vot initialize <stack-name> --workspace <workspace-path> --nodownload
  1. stack-name为想要评测的数据集,如vot2018,所有数据集的名字能在vot-toolkit-python/vot/stack下找到
  2. workspace-path为你指定的工作区路径,存放错误日志、评测结果、评测报告等文件
  3. nodownload表示不下载数据集,之后我们会创建软连接

下面是我的图例:

达梦 TIMESTAMP长度_达梦 TIMESTAMP长度

3. 修改trackers.ini文件并设置解释器路径

初始化之后,会在工作区workspace下生成config.yaml和trackers.ini两个文件,修改trackers.ini:
其实这个trackers.ini是pytracking里面就提供了,之前还一直不知道这个文件的作用

[DiMP]  # <tracker-name>
label = DiMP
protocol = traxpython

command = import pytracking.run_vot as run_vot; run_vot.run_vot('dimp', 'dimp50_vot18')

# Specify a path to trax python wrapper if it is not visible (separate by ; if using multiple paths)
paths = /home/lz/PycharmProjects/pytracking/pytracking

# 因为我是在anaconda的base环境下可以跑dimp,所以我设定一下解释器路径
# 默认的就是你之前pip安装vot-toolkit-python的环境
python = /home/lz/anaconda3/bin/python
# restart = true

如果遇到重启失败的报错(报错可以在workspace下的logs里面查看),可以试着在trackers.ini里面加一句restart = true,即把上面最后一行去掉注释即可

4. 覆盖vot.py文件并安装trax

  • /home/your-name/pytracking/pytracking/VOT下的vot.py复制到/pytracking/pytracking/evaluation下,替换原来的vot.py文件
  • 在你能跑dimp的环境中安装trax:
pip install vot-trax>=3.0.2

5. 数据集准备

由于我们没有下载数据集,因此需要将已经下好的数据集建立软链到工作区。删掉初始化完成后/home/lz/PycharmProjects/vot-toolkit-python/workspace下的sequences文件夹(directory),然后在终端输入:

ln -s /your/path/VOT2018 /home/lz/PycharmProjects/vot-toolkit-python/workspace/sequences

注意这里的vot2018在每个序列下都有一个color文件夹,里面才是jpg图片,通过一些网盘下载下来的可能缺少color这一级目录,需要调整一下,否则运行会报错,整理好之后类似下面这样:

达梦 TIMESTAMP长度_初始化_02


对于RGBD数据集来说文件目录是下面这样的:

达梦 TIMESTAMP长度_数据集_03

6. 开始运行并生成结果

在终端输入以下命令进行跟踪测试:

vot evaluate --workspace <workspace-path> <tracker-name>
# 例如
# vot evaluate --workspace /home/lz/PycharmProjects/vot-toolkit-python/workspace DiMP

在终端输入以下命令分析结果:

vot analysis --workspace <workspace-path> <tracker-name>
# 例如
# vot analysis --workspace /home/lz/PycharmProjects/vot-toolkit-python/workspace DiMP

对于vot2018等数据集,其baseline测试的默认重复次数为15,为了减少重复测试次数带来的耗时,可使用以下方法修改:

打开/home/lz/anaconda3/envs/vot2020/lib/python3.7/site-packages/vot/stack/vot2018.yaml,将baseline下的repetitions改成随意一个数,我这里运行3次。

达梦 TIMESTAMP长度_达梦 TIMESTAMP长度_04


分析结果成功!

达梦 TIMESTAMP长度_数据集_05


这里测出来还比论文高一点点,关于R的计算可以去看用pysot里面的vot测试功能测试DIMP50在vot2018上的表现结尾部分