[目标跟踪]vot-toolkit-python的使用
vot-toolkit-python的使用
- 前言
- 下载和安装
- 备用方案
- 测试官方的样例tracker
- initialize
- 初始化文件夹和下载数据集
- 修改trackers.ini文件
- test
- evaluate
- analysis
- 参考
前言
可能VOT官方心里是这么想的:你们这群连工具都配不好的菜鸡,不配使用我们的数据集。就你们这个技术,更不必参与比赛。
这个数据集的Python版教程,一个是写的过于简略,一个没有及时更新,一些东西已经不对应了。不过人家最开始的Matlab教程写的还挺好,但现在Python兴起,用Matlab研究跟踪的人越来越少了。
下面内容,没必要指出和官方的区别在哪。我直接写一份正确的教程。标红的地方,都是我踩过的坑。
下载和安装
假设你的电脑可以翻墙或者现在恰好可以畅通无阻的访问Github,那我推荐你直接执行以下命令,确实是下载安装一条龙服务
pip install git+https://github.com/votchallenge/vot-toolkit-python
备用方案
那要这台电脑连不到Github呢?
也就是如何离线安装。达到和pip install git+url
同样的效果,需要分三步:
- 想办法下载官方工具包,拷贝到当前电脑(服务器)上
Download Zip
或者git clone https://github.com/votchallenge/toolkit.git
- 安装所需环境
进入文件夹目录下(文件夹我重命名为“vot_toolkit”)cd vot_toolkit pip install -r requirements.txt
- 安装这个库
python setup.py install
附:如果你以这种方式,可以查看./build/lib/vot/utilities/cli.py
下面的输入参数的含义。 这是vot-toolkit定义输入参数的地方。
为了方便,我粘贴出来放在这
parser = argparse.ArgumentParser(description='VOT Toolkit Command Line Utility', prog="vot")parser.add_argument("--debug", "-d", default=False, help="Backup backend", required=False, action='store_true')parser.add_argument("--registry", default=".", help='Tracker registry paths', required=False, action=EnvDefault, \separator=os.path.pathsep, envvar='VOT_REGISTRY')subparsers = parser.add_subparsers(help='commands', dest='action', title="Commands")test_parser = subparsers.add_parser('test', help='Test a tracker integration on a synthetic sequence')test_parser.add_argument("tracker", help='Tracker identifier', nargs="?")test_parser.add_argument("--visualize", "-g", default=False, required=False, help='Visualize results of the test session', action='store_true')test_parser.add_argument("--sequence", "-s", required=False, help='Path to sequence to use instead of dummy')workspace_parser = subparsers.add_parser('initialize', help='Setup a new workspace and download data')workspace_parser.add_argument("--workspace", default=os.getcwd(), help='Workspace path')workspace_parser.add_argument("--nodownload", default=False, required=False, help="Do not download dataset if specified in stack", action='store_true')workspace_parser.add_argument("stack", nargs="?", help='Experiment stack')evaluate_parser = subparsers.add_parser('evaluate', help='Evaluate one or more trackers in a given workspace')evaluate_parser.add_argument("trackers", nargs='+', default=None, help='Tracker identifiers')evaluate_parser.add_argument("--force", "-f", default=False, help="Force rerun of the entire evaluation", required=False, action='store_true')evaluate_parser.add_argument("--persist", "-p", default=False, help="Persist execution even in case of an error", required=False, action='store_true')evaluate_parser.add_argument("--workspace", default=os.getcwd(), help='Workspace path')analysis_parser = subparsers.add_parser('analysis', help='Run analysis of results')analysis_parser.add_argument("trackers", nargs='*', help='Tracker identifiers')analysis_parser.add_argument("--workspace", default=os.getcwd(), help='Workspace path')analysis_parser.add_argument("--format", choices=("html", "latex", "pdf", "json", "yaml"), default="html", help='Analysis output format')analysis_parser.add_argument("--name", required=False, help='Analysis output name')analysis_parser.add_argument("--workers", default=1, required=False, help='Number of parallel workers', type=int)analysis_parser.add_argument("--nocache", default=False, required=False, help="Do not cache data to disk", action='store_true')pack_parser = subparsers.add_parser('pack', help='Package results for submission')pack_parser.add_argument("--workspace", default=os.getcwd(), help='Workspace path')pack_parser.add_argument("tracker", help='Tracker identifier')
测试官方的样例tracker
分为四步,主要难在initialize:
initialize
初始化环境,并进行配置,以vot2016为例
初始化文件夹和下载数据集
任意地方新建一个空文件夹,比如名为
vot-test
,进入cd vot-test vot initialize vot2016
此时或自动初始化该文件夹并下载数据集。文件结构为
sequences
文件夹下就是对应的vot2016视频序列,每个视频对应一个文件夹
因此每个initialize只能对应一个数据集。如果之前已经下载好了数据集,在初始化文件夹时执行以下命令,不再重复下载数据集。
cd vot-test vot initialize vot2016 --nodownload
按照上文
sequences
的文件夹格式重命名数据集。
注意大小写,VOT2016和vot2016不同
修改trackers.ini文件
相当于告诉vot关于tracker的信息
下载官方样例,我们只用python文件夹下面的
python_ncc.py
和vot.py
需要把
vot.py
重命名,否则和已安装的vot工具包冲突比如重命名为
vot_py.py
同时把python_ncc.py中的import vot
改为import vot_py as vot
配置trackers.init
严格按照以下格式写[pytest] label = pytest protocol = traxpython command = python_ncc.py paths = /media/HardDisk_new/wh/others/pysot-master/vot-test/ env_PATH = /home/wh/anaconda3/envs/others/bin/python;${PATH}
千万不要在每行后加注释,会报错。
command
后面不要加‘.py’,在文件结构复杂情况下会报错。
test
执行
vot test pytest
会看到以下信息(结尾部分),恭喜你测试成功!
Updating on frame 49/49
@@TRAX:frame "file:///tmp/vot_dummy_50_640_480/color/00000050.jpg"
@@TRAX:state "395.0000,167.0000,100.0000,113.0000" "confidence=0.9970868825912476"
Stopping tracker
@@TRAX:quit
Test concluded successfuly
如果只能测一轮,并看到
Error during tracker execution: Server terminated the session
在trackers.ini中添加下面一行,即可解决
restart = true
evaluate
一般来说测试成功后,vot-toolkit和代码的配置就没问题了。执行,在vot2016上进行评估
vot evaluate pytest
运行结束后会得到一个results
的文件夹
analysis
vot analysis pytest --nocache
运行结束后会得到一个analysis
的文件夹,包含刚运行的分析结果文件夹,找到report.html
,即为结果。
参考
- vot-toolkit-python运行
[目标跟踪]vot-toolkit-python的使用相关推荐
- Object Tracking using OpenCV (C++/Python)(使用OpenCV进行目标跟踪)
本博客翻译搬运自https://www.learnopencv.com/object-tracking-using-opencv-cpp-python,用于初入目标跟踪的新手学习,转贴请注明! 使用O ...
- python opencv kcf_pybind11—目标跟踪demo(KCF,python version)
前言 pybind11功能强大,将C++ 程序包装为python接口,对于不太熟悉C++的同学只需要调用python接口即可,方便实用.之前的一系列pybind11文章大多数是基础的用法,本人学习py ...
- ccot 目标跟踪全称_Siamese:CVPR 2019 接收论文作者为你解读视频跟踪领域 | CVPR 2019...
雷锋网(公众号:雷锋网) AI 科技评论按,本文作者 Qiang Wang,原载于知乎,雷锋网获得授权转载. 今年的 CVPR 的结果已经完全公布,我参与的两篇文章 SiamMask 和SiamRPN ...
- 【CV】SiamFC:用于目标跟踪的全卷积孪生网络
论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...
- VOT Toolkit工具使用说明(Python版)
VOT Toolkit工具使用说明(Python版) 一. 工具链接 vot-toolkit python版 github链: https://github.com/votchallenge/tool ...
- 目标跟踪评估绘图(3):ubuntu18.04在MATLAB2016b下的vot-toolkit配置,绘制VOT数据集的EAO评估图,与其他算法进行比较
本文的视频讲解目标跟踪_OTB数据集和VOT数据集评估图的绘制 博主电脑配置: CPU:酷睿i9-9900kf, 显卡:RTX2070S, gcc版本:7.5.0, 以下实验在MATLAB2016b平 ...
- python目标跟踪精度曲线图_目标跟踪配置(三)-评价指标-benchmark(更新中,关注请收藏。。。)...
目标跟踪基础与智能前沿 关注上方公众号,回复下方安装过程中对应关键字,获得对应安装包. 本文持续更新中- 连载可关注知乎专栏"目标跟踪基础与前沿" 文章目录 [ 目标跟踪基础与智能 ...
- 飞桨Tracking目标跟踪库开源!涵盖业界主流的VOT算法,精准检测动态目标轨迹...
点击左上方蓝字关注我们 如何精准理解运动目标的行为呢?一起看看下面的视频,感受VOT技术的神奇吧! 从短视频中可以发现,视频中的目标是运动的,且不断变化.对于物体遮挡.形变.背景杂斑.尺度变换.快速运 ...
- 目标跟踪——OTB平台的Python版tracker使用
注意:由于OTB不像VOT那样有Python代码接口,所以我是用Pysot测试平台实现OTB评测功能. 方法:先安装Pysot在系统上,Windows和Linux(Ubuntu发行版)都可以,我是用W ...
- 基于Python和OpenCV的目标跟踪学习教程 Object Tracking using Python and OpenCV
实现12种不同的算法来跟踪视频和网络摄像头中的对象! 你会学到: 使用Python和OpenCV跟踪视频和网络摄像头中的对象 理解跟踪算法的基本直觉 实现12种跟踪算法 了解对象检测和对象跟踪之间的区 ...
最新文章
- 委托、lamda表达式..委托概念-匿名函数-泛型委托-Lamda表达式-多播委托
- 一文读懂JDK7,8,JD9的HashMap,HashTable,ConcurrentHashMap及他们的区别
- Codeforces Round #541 (Div. 2) C.Birthday
- 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类
- 苹果怎么关闭系统自动更新_你经过我的同意了吗?论手机系统自动更新
- Spring----JmsTemplate
- tomcat上传文件,重新加载后删除以及在web.xml中配置全局路径
- 使用Maven导出war包
- to load JavaHL Library解决方法
- Python input()和raw_input()的区别
- iOS包重签名工具,ipa文件重签名,快速签名,SignTool签名工具,好用的签名工具,App重签名
- python画微信公众号首图
- 95%以上的日常办事启用电子签章,你都体验过哪些?
- Android Studio修改工程项目名称以及修改包名
- 三器六垢_本初行者劉暢友居士浅谈如何学佛(三)
- 配置七牛云cdn加速
- 2023面试官常考的前端面试题
- SPA、MPA 的优缺点
- html的选项卡切换,纯css选项卡切换
- 判断子序列(C语言)