文章目录

  • 简介
  • 一、环境配置
  • 二、demo
  • 2.1 步骤一:加入工程的python路径
  • 2.2 步骤二:下载模型
  • 2.3 步骤三:编辑demo
  • 三、test
  • 3.1 步骤一:数据集.json文件准备
  • 3.2 步骤二:OTB100等数据集的注意事项
  • 3.3 步骤三:编辑test
  • 四、eval
  • 4.1 步骤一:可能遇到的报错
  • 4.2 步骤二:解决报错


简介

随着SIamFC,SiamRPN,DASiamRPN,SiamMask,SiamRPN++等等文章的涌现,Siam家族堪称经典,商汤科技在计算机视觉领域真滴强。

pysot是商汤科技推出的一个针对单目标跟踪(Single Object Tracking)的“研究平台”,里面包含了SIam家族的算法代码,例如SiamRPN、SiamMask等。

商汤 目标跟踪 商汤目标跟踪算法_商汤 目标跟踪


STVIR/pysot下载了代码,配置了环境,跑通了demo、test,eval。本文主要记录一下配置使用过程。

以下工作都是在Ubuntu18.04系统下下进行的。电脑配置为i9-9900k,RTX2070S显卡,8G显存,16G内存。

一、环境配置

在在终端下激活anaconda,创建名为pysot的环境

conda activate
conda create --name pysot python=3.7

接着安装相应的模块,-i 表示指定清华源,国内源下载速度更快。

pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torchvision==0.6.1 (conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
刚开始使用命令默认安装的,但是torch文件太大,网速原因没安装上)

pip3 install torch-1.5.1-cp37-cp37m-linux_x86_64.whl (于是先从这个网址下载安装包,再安装https://download.pytorch.org/whl/torch_stable.html)
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

进入Pycharm,指定pysot为解释器

商汤 目标跟踪 商汤目标跟踪算法_商汤 目标跟踪_02

二、demo

2.1 步骤一:加入工程的python路径

不加入后面会报错,类似于“没有pysot模块或者没有toolkit模块”错误。打开pycharm的终端,然后加入路径,并查看是否添加成功。

export PYTHONPATH=$PWD:$PYTHONPATH
echo $PYTHONPATH

商汤 目标跟踪 商汤目标跟踪算法_运维_03


接着编译stup.py文件,会生成build文件夹。

python setup.py build_ext --inplace

2.2 步骤二:下载模型

根据官方PySOT Model Zoo提供的

百度云链接 密码j9yb

商汤 目标跟踪 商汤目标跟踪算法_深度学习_04


将模型下载下来,将里面的各个文件夹的model.pth文件,分别复制到pysot工程文件experiments对应的文件夹里。切记不要直接替换文件夹,里面的config.yaml文件不一样。直接替换的话,后面运行程序会报错。

2.3 步骤三:编辑demo

依次打开菜单栏Run–>Edit configurations

商汤 目标跟踪 商汤目标跟踪算法_深度学习_05

代码如下

--config
../experiments/siamrpn_alex_dwxcorr/config.yaml
--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
--video
../demo/bag.avi

点击OK,然后运行tools下的demo.py文件即可。

鼠标左键拉个矩形,框住图中的bag,回车,如下图。

商汤 目标跟踪 商汤目标跟踪算法_运维_06

三、test

3.1 步骤一:数据集.json文件准备

将官方提供的百度云链接的文件下载下来

商汤 目标跟踪 商汤目标跟踪算法_商汤 目标跟踪_07

3.2 步骤二:OTB100等数据集的注意事项

OTB100数据集,需要参考一下pysot-toolkit。意思是:将CVRP13.json,OTB100.json,OTB50.json放在OTB100数据集目录中(您需要将Jogging复制到Jogging-1和Jogging-2,并将Skating2复制到Skating2-1和Skating2-2或使用软链接

商汤 目标跟踪 商汤目标跟踪算法_运维_08


其实,可以打开OTB100.json文件看看,有Jogging-1和Jogging-2两个目录,但是OTB100数据集中只有Jogging,所以需要上述操作。

商汤 目标跟踪 商汤目标跟踪算法_ubuntu_09


VOT2016和VOT2018数据集也需要有有类似的操作,将VOT2016.json和VOT2018.json文件打开后,分别对照自己的数据集看看,需要复制文件夹的复制,需要改名的直接改名即可。

3.3 步骤三:编辑test

依次打开菜单栏Run–>Edit configurations

商汤 目标跟踪 商汤目标跟踪算法_ubuntu_10


代码如下

--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
--dataset
VOT2018
--config
../experiments/siamrpn_alex_dwxcorr/config.yaml

点击OK,运行test.py

商汤 目标跟踪 商汤目标跟踪算法_深度学习_11


Run–>Edit configurations将上面代码中的VOT2018分别改成VOT2016、OTB100,运行程序test.py。会将测试结果保存在./tools/results下面,后面的评估需要测试结果。

四、eval

4.1 步骤一:可能遇到的报错

按照它的报错信息,就是需要这几个参数

商汤 目标跟踪 商汤目标跟踪算法_商汤 目标跟踪_12


参考官方readme.md文件,并且参考了[对象跟踪][环境配置过程][Ubuntu16.04年]siamrpn++[cvpr2019]皮索,ObjectTracking,流程,Ubuntu1604SiamRPNCVPR2019pysot 接着输入代码

--tracker_path
../tools/results
--dataset
OTB100
--num
1
--tracker_prefix
‘siamRPNpp’
--show_video_level

运行eval.py报错

商汤 目标跟踪 商汤目标跟踪算法_pytorch_13


第一天跑到这里,对这个报错无可奈何,放弃治疗了。第二天试了一下,迷之成功了。

4.2 步骤二:解决报错

我跑通了的代码,但不一定适应你们的情况
(1)删掉代码中的一行

--tracker_path
../tools/results
--dataset
OTB100
--num
1
--show_video_level

商汤 目标跟踪 商汤目标跟踪算法_深度学习_14


(2)OTB100评估结果

商汤 目标跟踪 商汤目标跟踪算法_深度学习_15


评估出来的结果不太好,跟各方面的因素有关,回头再研究下

商汤 目标跟踪 商汤目标跟踪算法_深度学习_16


商汤 目标跟踪 商汤目标跟踪算法_ubuntu_17


(3)VOT2016评估结果

Run–>Edit configurations将上面代码中的OTB100改成VOT2016,运行程序eval.py

商汤 目标跟踪 商汤目标跟踪算法_商汤 目标跟踪_18


(4)VOT2018评估结果

Run–>Edit configurations将上面代码中的OTB100改成VOT2018,运行程序eval.py

商汤 目标跟踪 商汤目标跟踪算法_深度学习_19