商汤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 的相关文章

  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • PHPStorm - 无效的后代文件名

    我正在尝试将 Windows 7 PC 上的本地 PHPStorm 项目与 Ubuntu 服务器同步 当我尝试任何类型的连接 例如 测试 SFTP 连接 时 它会失败并显示 Invalid descendent file name C np
  • 如何查看 Ubuntu 上的 Binutils 版本?

    我已经搜索过 但没有找到一个选项来告诉我我的 Ubuntu 上有哪个版本的 binutils 或者至少我不知道如何解释它 gcc v 没有透露任何有关 binutils 的信息 ld v 告诉我GNU ld GNU Binutils for
  • opencv_contrib编译错误:类没有成员

    我必须实现 SURF 算法来进行图像拼接 我在使用列出的库时遇到了问题here https stackoverflow com questions 33560251 opencv 3 0 0 ubuntu 14 04 nonfree non
  • Tomcat从Eclipse和startup.sh启动

    奇怪的事情发生了 我可以从 Eclipse 和startup sh 启动Tomcat 从 Eclipse 运行我可以访问 localhost 8080 而从startup sh 运行时我不能 可能是什么问题呢 Ubuntu 11 10 在
  • 在requirements.txt中包含.whl安装

    如何将其包含在requirements txt 文件中 对于Linux pip install http download pytorch org whl cu75 torch 0 1 12 post2 cp27 none linux x8
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b
  • Linux中使用管道进行进程间通信

    我已经编写了在 linux 中写入数字以进行管道传输的代码 如下所示 但显示错误 任何人都可以帮助我解决这个问题 基本上该程序的问题陈述如下 一个程序将打开一个管道 向管道写入一个数字 其他程序将打开同一管道 读取数字并打印它们 关闭两个管
  • Python 应用程序需要 init.d 脚本

    我有一个基于 python 的应用程序 它的工作方式类似于 feed 聚合器 并且需要成为 init d 脚本的一部分 以便我可以使用启动 停止 重新启动选项来控制执行 另外 我希望将 init d 脚本设置为 cron 作业 我在这里有示
  • 运行此处编译的 C 程序会导致在另一台服务器上找不到 GLIBC 库错误 - 是我的错还是他们的错?

    此处编译的 C 程序在我们的 Ubuntu 服务器上运行良好 但是当其他人尝试在他们的特定 Linux 服务器上运行它时 他们会收到以下错误 myprog install lib tls libc so 6 version GLIBC 2
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • dpkg 错误:pycompile:未找到

    sudo apt get remove purge mysql server mysql client mysql common 当我尝试使用上述命令删除 mysql 时 出现以下错误 Reading package lists Done
  • OpenSSL 未签名证书静默

    遇到了麻烦 还有其他一些相关的帖子 但没有那么具体 我正在尝试为开发机器默默地生成证书 这些是我最初运行的命令 但被要求输入密码 openssl genrsa des3 out server key 1024 openssl req new
  • 如何在特定的Java版本上运行应用程序?

    如何运行具有特定 Java 版本的应用程序 我安装了三个 Java 版本 myuser mysystem sudo update alternatives config java There are 3 choices for the al
  • Docker Desktop 未安装,提示 docker-ce-cli 无法安装

    在一次在线培训课程中 讲师提到他有 安装了 Docker Desktop 的 Ubuntu 虚拟机 因此 我尝试在 Windows 10 物理主机上安装相同的程序指示 https docs docker com desktop linux
  • Eclipse Kepler 在 64 位 ubuntu 上冻结

    几天前我刚刚将 Ubuntu 升级到 14 04 并在此过程中从 32 位切换到 64 位 从那时起 Eclipse 就变得非常不稳定 运行几分钟后 它将开始随机冻结越来越长的时间 特别是在代码完成时 已经必须禁用它 而且在剪切 粘贴时 偶
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • softmax_cross_entropy_with_logits 的 PyTorch 等效项

    我想知道 TensorFlow 是否有等效的 PyTorch 损失函数softmax cross entropy with logits TensorFlow 是否有等效的 PyTorch 损失函数softmax cross entropy
  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 在Linux中将日期附加到文件名

    我想在文件名旁边添加日期 somefile txt 例如 somefile 25 11 2009 txt 或 somefile 25Nov2009 txt 或任何类似的内容 也许脚本或终端窗口中的某些命令可以执行 我正在使用Linux Ub

随机推荐

  • 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等数据集的注