学习 PySOT(1)(介绍、配置、使用)
文章目录
- 前言
- 一、 PySOT介绍
- 二、 PySOT配置
- 1. 文件准备(附:所有百度云链接)
- 2. 环境配置
- 三、 PySOT使用
- 1. 尝试先在Anaconda Prompt 命令窗口下运行demo.py
- 2. 在pycharm下使用PySOT
前言
PySOT是商汤(SenseTime视频智能研究团队)开源的目标跟踪库,实现了最新的单目标跟踪算法,主要包含: SiamRPN、SiamMask。使用Python编写的,基于Pytorch深度学习框架。该软件系统还包含了评估跟踪算法的Python工具箱断开。
开源链接:https://github.com/STVIR/pysot
为什么叫 PySOT?
网上有人解释:Python/PyTorch + Single Object Tracking 的组合。
一、 PySOT介绍
PySOT的目标是为视觉跟踪研究提供高质量,高性能的代码库。可以支持快速实施和评估新研究的跟踪算法。
- PySOT包括跟踪算法有:SiamFC、SiamRPN、DaSiamRPN、SiamRPN++、SiamMask
- 使用的网络结构有:ResNet{18, 34, 50}、MobileNetV2和AlexNet
- 评估工具包可支持的数据集有:OTB2015 、VOT16/18/19 、 VOT18-LT、 LaSOT、 UAV123
现在PySOT里包含了Python版的评测工具,包含VOT的baseline EAO测试,以及OTB,UAV123,LaSOT,NFS等OPE测试的评测。这里需要强调的是VOT的reset测试,项目里重新包装了vot-toolkit里的overlap计算方式,即跑出来的结果和vot-toolkit的EAO是一致的。
提供了大量的基准结果和经过训练的模型,可在 PySOT Model Zoo中下载。
PySOT Model Zoo 介绍
该文件记录了使用pysot训练的大量基线。这些基准的所有配置都位于PySOT\experiments目录中。
下表提供了有关推理的结果。
注意:
- 速度测试是在显卡GTX-1080Ti上进行的
- alex表示AlexNet,r50_lxyz表示ResNet-50中第x、y和z阶段的输出,mobilev2表示MobileNetV2。
- dwxcorr表示深度互相关。请参见SiamRPN
++论文第3.4节中的更多内容。 - 后缀otb和lt是针对OTB和VOT长期跟踪挑战而设计的,默认值(无后缀)是针对VOT短期跟踪挑战而设计的。
- 以上所有模型都在与DaSiamRPN相同的VID,YoutubeBB,COCO,ImageNetDet上进行了训练。
模型下载,官方百度云,提取码:j9yb
二、 PySOT配置
1. 文件准备(附:所有百度云链接)
- PySOT 工程文件下载
- PySOT Model Zoo
模型下载,提取码:j9yb (下载模型注意事项:
下载好预训练模型之后,不要直接用PySOT中的文件夹替换experiments里文件夹,要使用pysot源码的中提供的config.yaml文件,
不然会报错—KeyError: ‘Non-existent config key: BACKBONE.LAYERS’) - 下载测试数据集的Json,百度云
下载数据集并将其放入testing_dataset目录 - 数据集下载:
OTB2015,百度云,密码:faqb
VOT16/18/19,百度云,密码:bs6g
VOT18-LT,百度云,密码:2kqi
LaSOT,百度云227G
UAV123,百度云,密码:vp4r
2. 环境配置
PySOT环境要求
* Conda with Python 3.7
* Nvidia GPU.
* PyTorch 0.4.1
* yacs
* pyyaml
* matplotlib
* tqdm
* OpenCV
分步说明:
1.创建环境、激活:(在Anaconda Prompt 命令窗口下)
conda create --name pysot python=3.7
conda activate pysot
2.安装 numpy/pytorch/opencv等:
conda install numpy
conda install pytorch=0.4.1 torchvision cuda90 -c pytorch
pip install opencv-python
pip install pyyaml yacs tqdm colorama matplotlib cython tensorboardX
如果安装过pytorch,不用再安装pytorch。
若安装慢,可使用清华镜像源
pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install ***/torch-1.0.0-cp37-cp37m-win_amd64.whl (torch的完整路径)
pip3 install torchvision==0.2.0 (一定要指定torchvision的版本,否则会出错)
pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyyaml yacs tqdm colorama cython tensorboardX -i https://pypi.tuna.tsinghua.edu.cn/simple
三、 PySOT使用
1. 尝试先在Anaconda Prompt 命令窗口下运行demo.py
直接输入一下命令:
python tools/demo.py --config experiments/siamrpn_r50_l234_dwxcorr/config.yaml --snapshot experiments/siamrpn_r50_l234_dwxcorr/model.pth --video demo/bag.avi
会出现:ModuleNotFoundError: No module named ‘pysot’
1.1 根据pysot的说明,需要配置环境变量。
官方给出配置命令:
export PYTHONPATH=/path/to/pysot:$PYTHONPATH
直接输入,问题依旧存在。
解决方法:
在Ubuntu环境下,依旧使用该命令,但是需要将/path/to/pysot换到自己的文件路径即可。
例如:
export PYTHONPATH=~/Mycode/pythoncode/pysot:$PYTHONPATH
在Windows环境,无export 命令需要改为:
set PYTHONPATH=%PYTHONPATH%;F:\PySOT
F:\PySOT修改为自己的文件路径,运行即可解决问题。
1.2 输入代码,运行demo.py
python tools/demo.py --config experiments/siamrpn_r50_l234_dwxcorr/config.yaml --snapshot experiments/siamrpn_r50_l234_dwxcorr/model.pth --video demo/bag.avi
出现:
Select a ROI and then press SPACE or ENTER button!
Cancel the selection process by pressing c button!
需要我们手动画框,空格或者回车运行。
如下图所示:
2. 在pycharm下使用PySOT
2.1 配置环境,运行demo
进入pycharm,导入pysot,进入settings(设置)->project: pysot->project interpreter 指定python的解释器(我使用的是之前安装好的pytorch python3.7)。点击右边齿轮来添加。
我使用的是,汉化的版本。如何感兴趣,可以查看:2020版本的pycharm支持官方汉化了。自己设置汉化。
接下来,在run->edit configurations (编辑配置)下添加参数(无摄像头):
--config
../experiments/siamrpn_alex_dwxcorr/config.yaml
--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
--video
../demo/bag.avi
有摄像头:
--config
../experiments/siamrpn_alex_dwxcorr/config.yaml
--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
脚本路径和参数设置好后,运行程序demo.py:
需要我们手动画框,空格或者回车运行。
2.2 配置环境,运行test.py
第一步,配置数据集,以OTB100为例。
参考官方pysot-toolkit
- 将CVRP13.json,OTB100.json,OTB50.json放在OTB100数据集目录中(您需要将Jogging复制到Jogging-1和Jogging-2,并将Skating2复制到Skating2-1和Skating2-2或使用软链接)
注:Jogging和Skating2都是两个目标,在OTB Benchmark
学习(下载链接、评价指标、配置)中有专门说明。
目录应采用以下格式:
| -- OTB100/ | -- Basketball | ...... | -- Woman | -- OTB100.json | -- OTB50.json | -- CVPR13.json
2. 如1一样,将所有其他json放入数据集目录中。
为什么将Jogging复制到Jogging-1和Jogging-2 ?
其实,打开OTB100.json文件可以看到有Jogging-1和Jogging-2两个目录,但是实际的OTB100数据集中Jogging和Skating2有两个groundtruth_rect.txt,所以需要上述操作。
在VOT2016和VOT2018数据集也需要类似的操作,将VOT2016.json和VOT2018.json文件打开后,分别对照数据集看看,需要复制文件夹的复制,需要改名的直接改名即可。
第二步,运行setup.py,生成build文件夹
我感觉在运行setup.py的主要原因是出现错误:
ImportError: cannot import name region
问题解决,
在Anaconda Prompt 命令窗口需要运行
python setup.py build_ext --inplace
可以直接在pycharm环境下setup.py运行。
运行的配置如下:
第三步,配置text.py
打开菜单栏Run(运行)–>Edit configurations(编辑配置)
在参数中,添加代码:
--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
--dataset
OTB100
--config
../experiments/siamrpn_alex_dwxcorr/config.yaml
点击OK(确定),运行test.py
运行过程出现错误:
AssertionError: F:\zwb\PySOT\tools\../testing_dataset\OTB100\Human4-2/img/0001.jpg
解决方法:
将Human4文件夹,修改为:Human4-2
可以在Run–>Edit configurations,参数上修改OTB100为VOT2016、VOT2018或其他,运行程序test.py。
会将测试结果保存在./tools/results下面,后面的评估需要测试结果。
2.3 配置环境,运行eval.py
根据运行test.py的测试OTB100数据集结果model,进行评估
打开菜单栏Run(运行)–>Edit configurations(编辑配置)
在参数中,添加代码:
--tracker_path
../tools/results
--dataset
OTB100
--num
1
--tracker_prefix
model
--show_video_level
点击OK(确定),运行eval.py
注意:数据集OTB100可以根据实际测试进行修改。
整理不易,喜欢点赞。
上一篇:OTB Benchmark 学习(下载链接、评价指标、配置)
下一篇:学习 PySOT(2)(PySOT-toolkit、对比、画图)
学习 PySOT(1)(介绍、配置、使用)相关推荐
- 学习 PySOT(2)(PySOT-toolkit、对比、画图)
文章目录 前言 一.pysot-toolkit准备工作 1.所需环境要求 2.文件配置 3.运行配置(对比算法) 二.安装latex软件(win10系统) 1.安装MiKTeX 2.安装TexMake ...
- vim学习、各类插件配置与安装
vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...
- [深度学习] 分布式Pytorch介绍(三)
[深度学习] 分布式模式介绍(一) [深度学习] 分布式Tensorflow介绍(二) [深度学习] 分布式Pytorch介绍(三) [深度学习] 分布式Horovod介绍(四) 一 Pytorc ...
- Hadoop学习之整体介绍及环境搭建
Hadoop学习之整体介绍及环境搭建 1 大数据概述 1.1 什么是大数据 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加 工的的原始素材. 大数据:传统处理方 ...
- 华为交换机模拟器_从零开始学习华为路由交换 | 配置缺省静态路由
实验前准备 1.电脑上安装华为ENSP模拟器 2.添加三台路由器 命令介绍 AR1配置 1.配置接口IP 2.配置缺省静态路由: [R1]ip route-static 0.0.0.0 0 g0/0/ ...
- Datawhale--组队学习第12期--python爬虫基础学习---task0/task1环境配置和网页请求基础
先修知识:task0(基本类库安装,git,anaconda,文本处理) Task0(前置):需要自己安装有关环境,学习git(b站),下载有关driver Chromedriver 作用 驱动浏览器 ...
- 【国产数据库】GBase学习④ - GBase 8c 介绍
[国产数据库]GBase学习④ - GBase 8c 介绍 GBase 8c 介绍 GBase 8c 分布式架构介绍 GBase 8c 介绍 MOT是一种内存数据库存储引擎,其中所有表和索引完全驻留在 ...
- Xilinx-7Series-FPGA高速收发器使用学习—RX接收端介绍
前言 原文中的图片有所缺失,现根据Xilinx官方手册 <7 Series FPGAs GTX/GTH Transceivers User Guide[UG476] >进行补齐. 上一篇博 ...
- 《服务器(CentOS7.7)深度学习环境搭建、配置及使用》之一:服务器情况简介
Author kangzhiheng E-mail kangzhiheng@sjtu.edu.cn 本文链接 Github:https://github.com/kangzhiheng/GitLoca ...
最新文章
- 网易云音乐的消息队列改造之路
- vs调用堆栈窗口怎么弄出来_从零开始(1)栈帧、调用约定
- EIgen:Matricx和vector类的定义和使用
- hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下
- Linux 编译安装内核
- Bootstrap的全局css样式部分
- php strpos与strrpos,PHP开发之 strpos stripos strrpos strripos的区别
- android zxing 自动对焦,ZXing自动对焦问题
- 流水线合成材料依赖表的生成算法
- C语言之字符串探究(三):字符串库函数操作——strlen、strcat、strcpy、strcmp
- 母版页与用户控件区别(思维导图整理)
- (minio学习过程2)纠错码
- 机器人学——机器人导航
- 新书《编程之道》介绍
- Python学习-if语句
- MySQL(二)查询操作
- (每日一练python)组合总和
- 服务器有必要更新主板芯片组吗,芯片组驱动要不要更新_芯片组驱动卸载了会怎么样...
- Oracle数据性能优化
- 看《骇客帝国-重装上阵》说法语