VOT Toolkit工具使用说明(Python版)
一、 工具链接
vot-toolkit python版 github链:
https://github.com/votchallenge/toolkit
vot-toolkit 调试用基本跟踪器NCC
https://github.com/votchallenge/integration
二、工具启动
- 按照工具的简单文档,pip 按照完毕以后,在终端使用 vot xxxx进行使用。(简单文档链接:https://www.votchallenge.net/howto/tutorial_python.html)
- 如果需要对工具代码进行增添修改(修改指标,添加自定义数据集等),git clone代码以后,使用Pycharm打开工程。
三、工具使用
工具提供5种行为
usage: vot [-h] [--debug] [--registry REGISTRY]
{test,initialize,evaluate,analysis,pack} ...
VOT Toolkit Command Line Utility
optional arguments:
-h, --help show this help message and exit
--debug, -d Backup backend
--registry REGISTRY Tracker registry paths
Commands:
{test,initialize,evaluate,analysis,pack}
commands
test Test a tracker integration on a synthetic sequence
initialize Setup a new workspace and download data
evaluate Evaluate one or more trackers in a given workspace
analysis Run analysis of results
pack Package results for submission
由于上面简单文档,官方更新较慢,导致接口有所发生变化。所以需要根据当前使用的工具提示,执行对应的指令(譬如这里初始化工作空间,在本版本使用initialize,但是官网使用workspace 指令)。
对于Pycharm打开的工程,文件目录如下
├── MANIFEST.in
├── README.md
├── requirements.txt
├── setup.py
└── vot
├── analysis
├── dataset
├── document
├── experiment
├── __init__.py
├── __main__.py
├── region
├── stack
├── tracker
├── utilities
├── version.py
└── workspace
其中,执行文件为__main__.py,这时候,main文件会引导代码到vot/utilities/cli.py
因此,如果需要详细查看命令行参数,修改默认值的,请移步cli.py中进行查看。
四、使用流程
说在前面,使用工具时,pip方式是
vot {test,initialize,evaluate,analysis,pack} 额外参数
而在Pycharm里面,则是运行main.py文件,后面的参数项都填写到Pycharm代码运行设置(Run/Debug Configurations)的Parameters里面。
为了简洁起见,后文直接用vot xxxx进行书写。
0.配置说明
Stack,就是配置项(多个实验定义)的概念。在目录vot/stack存放了vot工具设置好的配置项。每一个配置项,指定了这个配置用到的数据集,实验的方式(baseline, realtime等,以及这个实验需要用到的评价指标)。如下面这段配置文件,【dataset: vot:vot-st2018】是指定了当前是vot的实验,使用vot-st2018这个数据集。然后需要跑三个实验(baseline, realtime, unsupervised)。这个配置项会在后续eval与analysis的时候起作用。
vot/stack/vot2018.yaml
title: VOT-ST2018 challenge
dataset: vot:vot-st2018
url: http://www.votchallenge.net/vot2018/
experiments:
baseline:
type: supervised
repetitions: 15
skip_initialize: 5
analyses:
- type: supervised_average_ar
sensitivity: 30
- type: supervised_eao_score
low: 100
high: 356
- type: supervised_eao_curve
realtime:
type: supervised
realtime:
grace: 3
repetitions: 1
skip_initialize: 5
analyses:
- type: supervised_average_ar
sensitivity: 30
- type: supervised_eao_score
low: 100
high: 356
- type: supervised_eao_curve
unsupervised:
type: unsupervised
repetitions: 1
analyses:
- type: average_accuracy
1.创建工作空间
vot initialize Stack名称 --workspace 实验存放目录
这个命令会根据你Stack里面的配置,自动给你创建指定的存放目录,创建所需的配置文件,并下载数据集。
如果是自定义的数据集,则需要增加–nodownload参数,然后初始化完数据集目录以后,自行将数据放入创建的Sequence文件夹中。
2.设置跟踪器
打开实验存放目录内的trackers.ini文件。
写入如下内容:
[NCCPython] # <tracker-name>
label = PyNCC
protocol = traxpython
command = python_ncc
# Specify a path to trax python wrapper if it is not visible (separate by ; if using multiple paths)
paths = $文件目录
# Additional environment paths
env_PATH = ${PATH}
需要修改的地方是,
tracker-name(中括号那个),label,根据自己跟踪器情况而定。
paths:运行文件所在目录
command:运行跟踪器的启动文件(需要在上面的paths下有command.py这个文件。在上面这个例子就是需要在 文件目录 下面有python_ncc.py这个文件。
然后参照官方调试用跟踪器的示例文件,修改自己的跟踪器的启动文件,添加trax等通信代码。
vot-toolkit 调试用基本跟踪器NCC
https://github.com/votchallenge/integration
若需添加多个跟踪器,可以将上面那段,在trackers.ini中添加多个
3.进行实验
运行
vot evaluate --workspace 实验存放目录 NCCPython(跟踪器名称,即上面中括号的名称)
跟踪器可以填写多个,用空格相隔。这时候,工具会安装Stack的配置文件,对你指定的多个跟踪器依次进行实验。省心省力,等它跑完回来收结果。
如果需要调整验证时候的参数。如重复次数等,需要自行移步修改stack文件(xxxx.yaml)。
4.计算指标
运行
vot analysis --workspace 实验存放目录 NCCPython(跟踪器名称,即上面中括号的名称) --format {html,json等}
工具安装Stack配置文件,执行计算指标的操作,然后安装输出格式,写到对应文件格式中。