商汤PySot的配置使用(1)---siam跟踪算法demo、test、eval

2023-11-02

简介

随着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为解释器
在这里插入图片描述

二、demo

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

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

export PYTHONPATH=$PWD:$PYTHONPATH
echo $PYTHONPATH

在这里插入图片描述
接着编译stup.py文件,会生成build文件夹。

python setup.py build_ext --inplace

2.2 步骤二:下载模型

根据官方PySOT Model Zoo提供的
百度云链接
密码j9yb
在这里插入图片描述
将模型下载下来,将里面的各个文件夹的model.pth文件,分别复制到pysot工程文件experiments对应的文件夹里。切记不要直接替换文件夹,里面的config.yaml文件不一样。直接替换的话,后面运行程序会报错。

2.3 步骤三:编辑demo

依次打开菜单栏Run–>Edit configurations
在这里插入图片描述

代码如下

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

点击OK,然后运行tools下的demo.py文件即可。
鼠标左键拉个矩形,框住图中的bag,回车,如下图。
在这里插入图片描述

三、test

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

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

在这里插入图片描述

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

OTB100数据集,需要参考一下pysot-toolkit。意思是:将CVRP13.json,OTB100.json,OTB50.json放在OTB100数据集目录中(您需要将Jogging复制到Jogging-1和Jogging-2,并将Skating2复制到Skating2-1和Skating2-2或使用软链接
在这里插入图片描述
其实,可以打开OTB100.json文件看看,有Jogging-1和Jogging-2两个目录,但是OTB100数据集中只有Jogging,所以需要上述操作。
在这里插入图片描述
VOT2016和VOT2018数据集也需要有有类似的操作,将VOT2016.json和VOT2018.json文件打开后,分别对照自己的数据集看看,需要复制文件夹的复制,需要改名的直接改名即可。

3.3 步骤三:编辑test

依次打开菜单栏Run–>Edit configurations
在这里插入图片描述
代码如下

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

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

四、eval

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

按照它的报错信息,就是需要这几个参数
在这里插入图片描述
参考官方readme.md文件,并且参考了[对象跟踪][环境配置过程][Ubuntu16.04年]siamrpn++[cvpr2019]皮索,ObjectTracking,流程,Ubuntu1604SiamRPNCVPR2019pysot
接着输入代码

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

运行eval.py报错
在这里插入图片描述
第一天跑到这里,对这个报错无可奈何,放弃治疗了。第二天试了一下,迷之成功了。

4.2 步骤二:解决报错

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

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

在这里插入图片描述
(2)OTB100评估结果
在这里插入图片描述
评估出来的结果不太好,跟各方面的因素有关,回头再研究下
在这里插入图片描述
在这里插入图片描述
(3)VOT2016评估结果
Run–>Edit configurations将上面代码中的OTB100改成VOT2016,运行程序eval.py
在这里插入图片描述
(4)VOT2018评估结果
Run–>Edit configurations将上面代码中的OTB100改成VOT2018,运行程序eval.py
在这里插入图片描述

大家如果觉得写得很详细,有帮助的话,点个赞吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

商汤PySot的配置使用(1)---siam跟踪算法demo、test、eval 的相关文章

随机推荐

  • C++ error: non-const lvalue reference to type

    今晚看交流群的消息 看到大家在讨论一个有意思的问题 int array 5 0 int const p array 编译通过 const int p array 编译失败 报错 error non const lvalue referenc
  • SpringBoot整合quartz(支持多个任务和job支持spring管理的对象)

    工作中经常遇到quartz的job注入的spring对象为null 原因是这样的 quartz每次执行一次job会将执行完成后的job销毁 下次执行的时候 重新new 这就导致job中的 Autowired注入的Spring对象为null
  • 前端如何获取文件后缀名

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前端如何获取文件后缀名 二 使用代码如下 1 引入库 总结 前端如何获取文件后缀名 二 使用代码如下 1 引入库 代码如下 示例 选择文件后返回 resultDat
  • 实现求欧拉回路算法(C++)

    一 算法介绍及实现过程 程序的输入为对应图的结点数和图中与各结点相连的点的编号 注 无向图中的多重边和自环需多次输入 有向图中的多重边需多次输入 程序的第一步是求出图的邻接矩阵 邻接矩阵反映了点与点之间的关系 通过输入各结点相连的点的编号
  • go的make用法

    make用法和参数用法 golang分配内存有一个make函数 该函数第一个数类型 第二个参数的分配的空间 第三个 参数时预留分配空间 前两个参数很好理解 但对第三个参数不是很理解 例如a make int 5 10 len a 输出结果为
  • Golang-语言源码级调试器 Delve

    前言 Go 目前的调试器有如下几种 GDB 最早期的调试工具 现在用的很少 LLDB macOS 系统推荐的标准调试工具 单 Go 的一些专有特性支持的比较少 Delve 专门为 Go 语言打造的调试工具 使用最为广泛 本篇简单说明如何使用
  • OC使用cocoapods导入swift库注意

    首先就是在 targets gt Build Setting gt Packaging 中设置 Defines Module为YES 然后创建swift文件时会生成 文件名 Bridging Header h 这样一个桥接文件 怎样使用co
  • 针对低分辨率或小目标的卷积-SPDConv

    针对低分辨率或小目标的卷积 SPDConv 摘要 引言 A New Building Block SPD Conv 附录 代码 摘要 卷积神经网络在许多计算机视觉任务中取得了巨大成功 然而 在图像低分辨率或目标较小任务上 他们的性能迅速下降
  • 数据分析统计题目

    提示 本文章数据和题目来源于互联网 如有雷同 请联系作者删除 文章目录 前言 二 题集 第一题 第二题 第三题 第四题 前言 公司内部招募数据分析团队 特出此题集 检测各位参与同学的学习态度和能力 二 题集 第一题 某地101例健康男子血清
  • 已解决 I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with on

    已解决WARNING tensorflow From
  • 规则引擎Drools使用 第一篇 规则引擎认知

    规则引擎有什么用呢 可以在那些实际场景使用呢 思考这样一个问题 申请信用卡 每个人去申请信用卡的时候 都会经过一遍核查 这个核查过程其实就可以当做是根据规则 去校验你的信息是否符合规则 只有符合规则的才可以申请信用卡 还记得以前自己写的那些
  • Elasticsearch的算法介绍

    1 算法介绍 relevance score算法 简单来说 就是计算出 一个索引中的文本 与搜索文本 他们之间的关联匹配程度 Elasticsearch使用的是 term frequency inverse document frequen
  • 深入了解JVM的底层原理

    引言 什么是JVM JVM在整个jdk java 运行环境 中处于最底层 负责与操作系统的交互 用来屏蔽操作系统环境 提供一个完整的Java运行环境 因此也就虚拟计算机 操作系统装入JVM是通过jdk中Java exe来完成 通过下面4步来
  • 蒙特卡洛模拟计算风险价值VAR之R语言实现

    一 解析VAR 当在分析方法中计算风险价值 VAR 时 我们需要假设金融工具的返回遵循一定的概率分布 最常用的是正态分布 这也是为什么我们通常称它为delta normal方法 要计算VAR 我们需要找到一个阈值 T 来确定显著性 如95
  • ApiSix 配置 jwt-auth认证

    有问题要学会阅读apisix官方文档 养成好习惯 点我开始学习 1 为签发 token 的 API 配置一个 Route 该路由将使用 public api 插件 在对应的服务器执行以下命令 我尝试通过面板来创建这个Route 发现创建的时
  • Fedora21 入门体验笔记

    以前都是由于对linux的好奇 所以把各种版本都装了个遍 但每次都会因为某些原因 eq 不能玩游戏 用 很麻烦而且不爽 没用几天然后又回到windows 而且最后什么都没有留下 这一次是想真正学习linux 顺便记下使用过程中遇到的一些问题
  • OpenGL 入门教程(八)

    OpenGL 入门教程 八 OpenGL中使用RGBA色彩体系 RGB为红绿蓝三原色 A为 值 该值代表色彩融合时所占的比例 颜色是顶点的重要属性之一 没有色彩的世界是毫无生气的 使用glColor R G B A 设定当前颜色 此后定义所
  • pyecharts各种图表实现(超级全)

    目录 平面直角坐标系 直方图 折线图 箱形图 散点图 带涟漪效果散点图 k线图 热力图 象型图 层叠图 地理图表 GEO 地理坐标系 MAP 地图 BMAP 百度地图 基本图表 饼图 漏斗图 仪表盘 水球图 日历图 关系图 平行坐标系 极坐
  • Springboot整合FastDFS

    文章目录 一 FastDFS Client的实践 1 FastDFS Client的主要特性 2 SpringBoot测试操作FastDFS 1 SpringBoot的配置 2 测试springboot环境下javaapi对分布式文件系统上
  • 商汤PySot的配置使用(1)---siam跟踪算法demo、test、eval

    文章目录 简介 一 环境配置 二 demo 2 1 步骤一 加入工程的python路径 2 2 步骤二 下载模型 2 3 步骤三 编辑demo 三 test 3 1 步骤一 数据集 json文件准备 3 2 步骤二 OTB100等数据集的注