学习 PySOT(1)(介绍、配置、使用)


前言

PySOT是商汤(SenseTime视频智能研究团队)开源的目标跟踪库,实现了最新的单目标跟踪算法,主要包含: SiamRPN、SiamMask。使用Python编写的,基于Pytorch深度学习框架。该软件系统还包含了评估跟踪算法的Python工具箱断开。
开源链接:https://github.com/STVIR/pysot
为什么叫 PySOT?
网上有人解释:Python/PyTorch + Single Object Tracking 的组合。


一、 PySOT介绍

PySOT的目标是为视觉跟踪研究提供高质量,高性能的代码库。可以支持快速实施和评估新研究的跟踪算法。

  1. PySOT包括跟踪算法有:SiamFC、SiamRPN、DaSiamRPN、SiamRPN++、SiamMask
  2. 使用的网络结构有:ResNet{18, 34, 50}、MobileNetV2和AlexNet
  3. 评估工具包可支持的数据集有: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. 文件准备(附:所有百度云链接)

  1. PySOT 工程文件下载
  2. PySOT Model Zoo
    模型下载,提取码:j9yb (下载模型注意事项:
    下载好预训练模型之后,不要直接用PySOT中的文件夹替换experiments里文件夹,要使用pysot源码的中提供的config.yaml文件,
    不然会报错—KeyError: ‘Non-existent config key: BACKBONE.LAYERS’)
  3. 下载测试数据集的Json,百度云
    下载数据集并将其放入testing_dataset目录
  4. 数据集下载:
    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

  1. 将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

问题解决,

  1. 在Anaconda Prompt 命令窗口需要运行

    python setup.py build_ext --inplace

  2. 可以直接在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、对比、画图)

  • 61
    点赞
  • 273
    收藏
    觉得还不错? 一键收藏
  • 84
    评论
### 回答1: 这个错误提示说明你的Python环境中没有安装名为pysot的模块。你需要先安装这个模块,可以使用pip命令进行安装。具体的安装命令可以参考pysot模块的官方文档或者其他相关教程。安装完成后,再次运行程序即可。 ### 回答2: “No module named pysot”是Python程序运行时出现的一个错误,意思是Python找不到名为“pysot”的模块。在Python中,模块是一组代码和函数的集合,能够在程序中复用和调用。由于“pysot”模块不存在,Python无法导入该模块,因此程序无法继续执行。 导致“no module named pysot”的原因可能有几个。首先,可能是因为我们没有正确安装“pysot”模块。在Python中,我们可以使用pip等包管理工具安装和管理模块。如果忘记安装了“pysot”模块,Python就会找不到该模块。 其次,可能是因为我们的Python环境没有配置正确。有些模块依赖于其他模块或软件包,如果没有正确配置Python环境,则可能会导致“no module named pysot”错误。 解决这个问题的方法是很简单的。首先,我们需要确定是否已经正确安装了“pysot”模块。如果没有安装,可以使用pip install pysot命令安装。如果已经安装,则需要检查Python环境的配置是否正确。可以通过修改Python路径、升级Python版本或者安装其他依赖模块来解决这个问题。 总之,“no module named pysot”错误表示Python无法找到名为“pysot”的模块,可能是因为没有正确安装或者Python环境配置不正确。只要正确安装模块或者配置Python环境,就可以轻松解决这个问题。 ### 回答3: 这个问题是由于在运行Python代码时,调用的pysot模块无法被找到而出现的错误。一般情况下,这是由于没有正确安装pysot引起的。 为了解决这个问题,我们需要先检查是否已经正确地安装了pysot模块。我们可以通过使用pip命令来安装pysot模块。打开终端或命令提示符,输入“pip install pysot”命令并运行即可。如果我们已经安装了pysot模块,但仍然出现问题,需要检查是否在正确的环境下使用该模块。可能我们在不同的环境或虚拟环境下安装了pysot,而在运行代码时使用了不同的环境。我们需要检查代码和pysot模块所在的环境是否一致。 此外,我们还可以通过在代码中引入sys模块来查找pysot模块的位置。我们可以添加以下代码行: import sys print(sys.path) 这段代码将输出Python解释器搜索模块的路径。如果pysot模块不在这些路径中,我们需要手动将pysot模块所在的路径添加到Python解释器的搜索路径中。我们可以使用以下代码将路径添加到sys.path中: import sys sys.path.append('pysot的路径') 注意,这里的“pysot的路径”应该替换为pysot模块所在的实际路径。 通过以上的方式排查和解决,我们就可以解决"No module named pysot"的问题,使代码能够正常调用pysot模块了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 84
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值