MMPose安装及推理验证

news2024/11/24 6:53:42

MMPose安装

依赖环境

1.创建虚拟环境并激活

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

2.安装pytorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

报错:

InvalidArchiveError(‘Error with archive D:\Anaconda3\pkgs\pytorch-2.0.1-py3.8_cuda11.7_cudnn8_0.tar.bz2. You probably need to delete and re-download or re-create this file. Message from libarchive was:\n\nCould not unlink’)

解决方法:

找到anaconda3的文件夹,右键选择属性->安全->编辑->完全控制勾选允许

重新执行上述命令即可

3.使用MIM安装MMEngine和MMCV

安装MIM

pip install -U openmim

安装MMEngine和MMCV

mim install mmengine
mim install "mmcv>=2.0.0"

MMPose 中的一些推理示例脚本需要使用 MMDetection (mmdet) 检测人体,所以这里也先安装下

mim install "mmdet>=3.0.0"

报错:

Building wheels for collected packages: pycocotools
Building wheel for pycocotools (pyproject.toml) … error
error: subprocess-exited-with-error

× Building wheel for pycocotools (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-38
creating build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\coco.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\cocoeval.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\mask.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools_init_.py -> build\lib.win-amd64-cpython-38\pycocotools
running build_ext
cythoning pycocotools/_mask.pyx to pycocotools_mask.c
building ‘pycocotools._mask’ extension
C:\Users\Snakewood\AppData\Local\Temp\pip-build-env-8xb8w4ct\overlay\Lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive ‘language_level’ not set, using 2 for now (Py2). This will change in a later release! File: C:\Users\Snakewood\AppData\Local\Temp\pip-install-9g1ajohv\pycocotools_0428fc1e132847e7bf9f28e2e727a294\pycocotools_mask.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pycocotools
Failed to build pycocotools
ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

可以看到是在编译pycocotools时报错,解决方法:

进入网址:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/,下载vs_BuildTools,下载完成后点击使用C++的桌面开发进行安装,安装完成后重新执行上述命令,安装成功。

4.安装MMPose

git拉取mmpose源码,并安装依赖包

git clone https://github.com/open-mmlab/mmpose.git
cd mmpose
pip install -r requirements.txt
pip install -v -e .
# "-v" 表示输出更多安装相关的信息
# "-e" 表示以可编辑形式安装,这样可以在不重新安装的情况下,让本地修改直接生效

MIM安装

mim install "mmpose>=1.0.0"

5.验证安装

下载配置文件和模型权重文件

mim download mmpose --config td-hm_hrnet-w48_8xb32-210e_coco-256x192  --dest .

执行完上面的命令后,在当前目录下就可以找到两个文件td-hm_hrnet-w48_8xb32-210e_coco-256x192.pytd-hm_hrnet-w48_8xb32-210e_coco-256x192-0e67c616_20220913.pth(这里下载的模型权重文件,文件名可能会有一点点不同),.py文件是配置文件.pth文件是模型权重文件

验证推理

python demo/image_demo.py \
	# 指明要推理的图片
    tests/data/coco/000000000785.jpg \
    # 配置文件
    td-hm_hrnet-w48_8xb32-210e_coco-256x192.py \
    # 模型权重文件
    hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \
    # 输出路径
    --out-file vis_results.jpg \
    --draw-heatmap

要执行推理可以直接复制下面的命令

python demo/image_demo.py tests/data/coco/000000000785.jpg td-hm_hrnet-w48_8xb32-210e_coco-256x192.py td-hm_hrnet-w48_8xb32-210e_coco-256x192-0e67c616_20220913.pth --out-file vis_results.jpg --draw-heatmap

运行结果如下:

在这里插入图片描述

执行推理时可用的参数列表如下:

ArgumentDescription
show确定图像或视频的预测结果是否应在弹出窗口中显示。
radius设置关键点半径。
thickness设置骨架(线条)粗细。
return_vis确定返回结果result中是否应包括可视化结果列表visualization
vis_out_dir指定保存可视化图像的文件夹路径。如果未设置,将不会保存可视化图像。
return_datasample确定是否以PoseDataSample的形式返回预测。
pred_out_dir指定保存预测结果predictions的文件夹路径。如果不设置,预测结果将不会被保存。
out_dir如果指定了输出路径参数out_dir,但未设置vis_out_dirpred_out_dir,则分别将vis_out_dirpred_out_dir设置为f'{out_dir}/visualization'f'{out_dir}/ forecasts'

2D 人体姿态topdown推理视频:

python demo/topdown_demo_with_mmdet.py     demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py     https://download.openmmlab.com/mmdetection/v2.0
/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth     configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrnet-w32_8xb64-210e_coco-256x192
.py     https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrnet-w32_8xb64-210e_coco-256x192-81c58e40_20220909.pth     --input E:\data\v\clip100.mp4     --output-root=vis_results/demo --show --draw-heatmap

2D 人体姿态bottomup推理视频:

python demo/bottomup_demo.py     configs/body_2d_keypoint/dekr/coco/dekr_hrnet-w32_8xb10-140e_coco-512x512.py     https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/dekr/coco/dekr_hrnet-w32_8xb10-140e_coco-512x512_ac7c17bf-20221228.pth     --input E:\data\v\clip100.mp4  --output-root=vis_results/demo      --save-predictions

2D 人体全身姿态Top-Down:

python demo/topdown_demo_with_mmdet.py    demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py     https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth     configs/wholebody_2d_keypoint/topdown_heatmap/coco-wholebody/td-hm_hrnet-w48_dark-8xb32-210e_coco-wholebody-384x288.py     https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_wholebody_384x288_dark-f5726563_20200918.pth     --input E:\data\v\clip100.mp4     --output-root=vis_results/demo

参考资料

  1. https://mmpose.readthedocs.io/zh_CN/latest/installation.html
  2. https://github.com/open-mmlab/mim/blob/main/docs/en/installation.md
  3. 安装python包的时候文件夹权限报错: InvalidArchiveError(‘Error with archive D:\anaconda\pkgs\openssl-1.1.1j-h8ff
  4. python pip安装出错合集
  5. https://mmpose.readthedocs.io/zh_CN/latest/user_guides/inference.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

quartus下联合modelsim_Altera仿真

vivado工程转换到quartus下联合modelsim仿真_内有小猪卖的博客-CSDN博客 这个博客是用单独的modelsim仿真,而下面的流程是使用quartus自带的modelsim-altera仿真。 版本为:quartus ii 13.1 64-bit 以fpga实现数码管和流水灯编码为例。数码管为1时&#x…

Spring中Bean加载流程

上面是跟踪了 getBean 的调用链创建的流程图,为了能够很好地理解 Bean 加载流程,省略一些异常、日志和分支处理和一些特殊条件的判断。 从上面的流程图中,可以看到一个 Bean 加载会经历这么几个阶段(用绿色标记)&…

机器学习算法分类(三)

在机器学习中,又分为监督学习、无监督学习、半监督学习、强化学习和深度学习。 监督、无监督、半监督学习 机器学习根据数据集是否有标签,又分为监督学习、无监督学习、半监督学习。 监督学习:训练数据集全部都有标签无监督学习&#xff1a…

grep命令的使用

grep命令是Linux中常用的文本搜索工具,它可以根据用户指定的模式,在文件或标准输入中查找匹配的文本行并返回。 下面是grep命令的一些常见选项: -i:忽略大小写-n:显示匹配行的行号-v:显示不匹配的行-r&am…

【新版】系统架构设计师 - 计算机系统基础知识

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 计算机系统基础知识考点摘要计算机系统计算机硬件组成浮点数Flynn分类法CISC与RISC流水线技术超标量流水线存储系统层次化存储结构CacheCache的命中率Cache的页面淘汰主存编址磁盘管理&#xff08…

《MySQL(四):基础篇- 约束》

文章目录 4. 约束4.1 概述4.2 约束演示4.3 外键约束4.3.1 介绍4.3.2 语法4.3.3 删除/更新行为 4. 约束 4.1 概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确、有效性和完整性。 分类: 约…

YOLOv5白皮书-第Y6周:模型改进

目录 一、改进网络结构设计1 改进的注意力机制2 多尺度特征融合3 改进的激活函数 二 数据增强和数据平衡1 数据增强2 数据平衡3 注意事项 三、模型融合策略1 投票策略2 加权平均策略3 特征融合策略4 其他模型融合策略 🍨 本文为🔗365天深度学习训练营 中…

protobuf实现原理

文章目录 一、前言二、概述三、数据存储方式:Varints(一)原理(二)举例(三)缺点 四、协议的数据结构(一)原理(二)举例 一、前言 最近刚刚从一家公司离职,在职的时候使用到了go语言的grpc库,了解了除了json之外的另一个专门用于远程调用的序列…

二本计算机专业学长经验之谈

2023.6.9 今年的行情对我们这些双非大学、二本真的太难了,菜鸟今年感觉毕业找的工作真的又苦逼钱又少,准备跳槽的,结果满大街投简历,连个毛都没有,唯一一个给了个海笔,然后就没然后… 所以希望大家真的要好…

Element的Select分组全选模式

Select 选择器选择器的分组,如上图所示,我们希望做到的效果是,点击“热门城市”或“城市名”的时候全选分组的options。 思路 思路一:目前的Select 选择器分组OptionGroup的Title只是一个文本DOM,没用其他东西&#…

详解基于罗德里格斯(Rodrigues)公式由旋转向量到旋转矩阵的 Python 实现

文章目录 旋转向量 rotation vector旋转矩阵 rotation matrix罗德里格斯公式 Rodrigues formula基于 Python 和 NumPy 实现 Rodrigues 公式 旋转向量 rotation vector 任何一个旋转都可以通过一个 旋转轴 加一个 旋转角 进行描述, 即围绕 旋转轴 旋转一个 旋转角. 此时可以通过…

javascript 中的 URL 解码

文章目录 需要URL编解码JavaScript 中的 URL 解码使用 unescaped() 方法解码编码的 URL使用 decodeURI() 方法解码编码的 URL使用 decodeURIComponent() 方法解码编码的 URL 总结 本文着眼于 URL 解码以及如何使用 JavaScript 对编码的 URL 进行解码。 需要URL编解码 URL 应具…

政企HTTPS加密国产化替代的四要素

信创产业是数字经济、信息安全发展的基础,也是“新基建”的重要内容,将成为拉动中国经济增长的重要抓手之一。随着国资委79号文的发布,国央企落实信息化系统的信创国产化改造的步伐加快,贯彻“28N”战略,从党政机关扩展…

Doris学习笔记

1.数据模型 数据模型 - Apache Doris 1.1 Aggregate 模型(聚合) 可以发现,user_id、date、age ...等没有设置 AggregationType, 那么这几个字段就成了一个key了。设置了 AggregationType 字段,说明该列的属性已经成value了。 我们导入一张…

Linux·Binder机制原理

目录 前言 目录 1. Binder到底是什么? 2. 知识储备 2.1 进程空间划分 2.2 进程隔离 & 跨进程通信( IPC ) 2.5 内存映射 3. Binder 跨进程通信机制 模型 3.1 模型原理图 3.3 模型原理步骤说明 3.4 额外说明 4. Binder机制 在An…

自学黑客(网络安全),一般人我劝你还是算了

写在开篇 笔者本人 17 年就读于一所普通的本科学校,20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂,现就职于某大厂安全联合实验室。 我为啥说自学黑客,一般人我还是劝你算了吧!因为我就是那个不一般的人。 ​ 首先我…

elementui tree 支持虚拟滚动和treeLine (下)

​ 由于我之前没有发布过npm 包,这里还得现学一下。 参考资料: 链接: 如何写一个vue组件发布到npm,包教包会,保姆级教学链接: vue组件发布npm最佳实践 按照上面的步骤,我通过 vue-sfc-rollup 生成了项目,…

六级备考8天|CET-6|阅读强化|16:00~17:20

调整做题顺序:仔细阅读——>长篇阅读(信息匹配)——>翻译——>选词填空 顺关系 or 反关系 正态度 or 负态度 阅读要有针对性 理解要有空白性 2)高大上的思维来自于中文的语言特点 练习 第一段:例子,无观点&am…

微伴助手如何增加客户积分?如何自动给客户添加企业标签?

微伴助手是一款企业微信第三方应用,已经为电商、教育、金融、保险、医疗等机构提供技术支持,适用于引流获客、客户意向跟进、销售转化、社群运营等全方位营销场景,旨在帮助企业构建高转化率的私域流量池。 微伴助手基于企业微信开放的接口&a…

adb shell 调试 Android 串口 百度AI也很

在 Android 平台上进行串口调试需要使用 Android Debug Bridge (ADB) 工具。ADB 是一个命令行工具,可以通过 USB 连接 Android 设备,并执行各种命令来调试应用程序。 以下是使用 ADB shell 进行 Android 串口调试的步骤: 连接 Android 设备…