MMPose安装记录

news2024/12/24 21:25:00

参考:GitHub - open-mmlab/mmpose: OpenMMLab Pose Estimation Toolbox and Benchmark.

一、依赖环境

        MMPose 适用于 Linux、Windows 和 macOS。它需要 Python 3.7+、CUDA 9.2+ 和 PyTorch 1.6+。我的环境:

Windows 11

Python 3.9

CUDA 11.6

PyTorch 1.13

        考虑到我的base环境已经配置好了cuda,因此创建一个clone了base环境的虚拟环境。

1、创建一个 conda 虚拟环境并激活它。

conda create --name mmpose--clone base
conda activate mmpose

2、使用MIM安装MMEngine和MMCV

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"

3、安装MMdet

        MMPose 中的一些推理示例脚本需要使用MMDetection(mmdet) 检测人体。如果想运行这些示例脚本,可以通过运行以下命令安装 mmdet:(建议安装)

mim install "mmdet>=3.0.0"

二、从源码安装MMPose

        官方文档:如果基于 MMPose 框架开发自己的任务,需要添加新的功能,比如新的模型或是数据集,或者使用我们提供的各种工具。如果只是希望调用 MMPose 的接口,或者在自己的项目中导入 MMPose 中的模块。直接使用 mim 安装即可。即按照以下命令安装即可。

mim install "mmpose>=1.0.0"

        从源码按如下方式安装 mmpose:

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

        我的MMPose路径如下: 

         注:对于安装慢的问题建议科学上网。

三、验证安装

1、验证安装包都是否可用

# 检查 Pytorch
import torch, torchvision
print('Pytorch 版本', torch.__version__)
print('torchvision版本', torchvision.__version__)
print('CUDA 是否可用',torch.cuda.is_available())

# 检查 mmcv
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print('CUDA版本', get_compiling_cuda_version())
print('编译器版本', get_compiler_version())

# 检查 mmpose
import mmpose
print('mmpose版本', mmpose.__version__)
Pytorch 版本 1.13.1+cu116
torchvision版本 0.14.1+cu116
CUDA 是否可用 True
CUDA版本 11.6
编译器版本 MSVC 192829924
mmpose版本 1.0.0

2、demo测试是否可用

(1)需要下载配置文件和模型权重文件

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

        完成之后,您会在当前目录下找到这两个文件:td-hm_hrnet-w48_8xb32-210e_coco-256x192.py 和 td-hm_hrnet-w48_8xb32-210e_coco-256x192-0e67c616_20220913.pth, 分别是配置文件和对应的模型权重文件。

  (2)验证推理示例

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

        运行上述命令后代码会将预测的关键点和热图绘制在图像中的人体上,并保存到当前文件夹的 vis_results.jpg中

# 测试手部关键点
python demo/topdown_demo_with_mmdet.py \
    demo/mmdetection_cfg/cascade_rcnn_x101_64x4d_fpn_1class.py  \
    https://download.openmmlab.com/mmpose/mmdet_pretrained/cascade_rcnn_x101_64x4d_fpn_20e_onehand10k-dac19597_20201030.pth \
    configs/hand_2d_keypoint/topdown_heatmap/onehand10k/td-hm_hrnetv2-w18_8xb64-210e_onehand10k-256x256.py \
    https://download.openmmlab.com/mmpose/hand/hrnetv2/hrnetv2_w18_onehand10k_256x256-30bc9c6b_20210330.pth \
    --input tests/data/onehand10k/1402.jpg \
    --output-root vis_results \
    --draw-heatmap

四、问题记录

1、ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

        更新numpy到最新版本。

pip install --upgrade numpy

2、cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1255: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

        可能opencv没配好,但是不影响MMPose的使用,在跑demo的时候把--show去掉就好了。

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

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

相关文章

影响客户管理系统的因素有哪些?能买断吗?

客户管理系统是企业数字化转型的必由之路,对于没有部署CRM客户管理系统的企业来说除了关注软件功能还要关注价格,客户管理软件系统多少钱?是否需要买断,今天我们就来说一说。 一、什么是客户管理系统 客户管理系统是帮助企业建立…

经典基于外观的SLAM框架-RTABMAP(RGBD视觉输入方案)

经典基于外观的SLAM框架-RTABMAP 文章目录 经典基于外观的SLAM框架-RTABMAP1. RTABMAP整体框架2.RTABMAP的内存管理机制3. 视觉里程计4. 局部地图5. 回环检测与图优化6. 代码工程实践 1. RTABMAP整体框架 RTABMAP是采用优化算法的方式求解SLAM问题的SLAM框架,本赛题…

Linux---虚拟机配置固定IP

1. IP地址 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯 IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及) IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字…

深度学习应用篇-元学习[15]:基于度量的元学习:SNAIL、RN、PN、MN

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

免费的Outlook邮箱备份的方法!

关于Outlook邮箱备份 Outlook是Microsoft Office微软办公软件套装的组件之一,利用一套Microsoft应用程序和服务,与Office工具共享与协作,和各种设备时刻保持联系。用户可以通过登录邮箱首页申请Outlook为域名后缀的邮箱。 长时间使用Outl…

使用海外社交媒体的九种方法(和五个专业提示!)

社交媒体是推广您的产品、吸引新客户以及围绕您的业务建立社区的有效方式。您可以使用社交媒体做的事情几乎没有限制,但无限的可能性会带来让自己过于分散的风险。好消息是,通过遵循一些最佳实践,您的在线商店可以取得成功。 目录 使用…

3ds MAX 灯光

简单展示一下3dsMAX中灯光的不同效果: 先简单画一个房间出来,展示效果就不添加材质了 在选项卡中添加灯光: 首先是直接渲染的结果,没有添加光照,可以看出也没有阴影等 采用【目标聚光灯】,这有点类似在摄…

【MySQL新手入门系列二】:手把手教你入门MySQL - 数据库及数据表操作

如果您是一位刚刚开始学习MySQL的新手,本文将为您提供一些实用的入门知识和技巧,帮助您快速上手。 【MySQL新手入门系列一】:手把手教你入门MySQL 前面我们已经大致讲了一下mysql的安装等介绍,本篇文章将以windows为例&#xff0c…

聚类分析(文末送书)

目录 聚类分析是什么 一、 定义和数据类型 聚类应用 聚类分析方法的性能指标 聚类分析中常用数据结构有数据矩阵和相异度矩阵 聚类分析方法分类 二、K-means聚类算法 划分聚类方法对数据集进行聚类时包含三个要点 K-Means算法流程: K-means聚类算法的特点 三、k-med…

【JVM系列】垃圾收集器介绍

文章目录 垃圾收集器Serial收集器ParNew收集器Parallel收集器CMS收集器G1收集器 常用的收集器组合 垃圾收集器 Serial收集器 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用…

不逆向解决5s盾之cloudscraper

一、背景 经常写爬虫的同学,肯定知道 Cloud Flare 的五秒盾。当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字: Checking your browser before accessing xxx. This process is automatic. Your browser will redirect to your…

020+limou+C语言内存管理

0.在Linux下验证C语言地址空间排布 这里是limou3434的博文系列。接下来,我会带您了解在C语言程序视角下的内存分布,会涉及到一点操作系统的知识,但是不多,您无需担忧。 注意:只能在Linux下验证,因为Windo…

外观模式(十三)

每天都是全新的一天,感谢今日努力的自己。 上一章简单介绍了组合模式(十二), 如果没有看过, 请观看上一章 一. 外观模式 引用 菜鸟教程里面的外观模式介绍: https://www.runoob.com/design-pattern/facade-pattern.html 外观模式(Facade Pattern&…

商品编号篡改测试-业务安全测试实操(7)

商品编号篡改测试,邮箱和用户篡改测试 手机号码篡改测试-业务安全测试实操(6)_luozhonghua2000的博客-CSDN博客 邮箱和用户篡改测试 测试原理和方法 在发送邮件或站内消息时,篡改其中的发件人参数,导致攻击者可以伪造发信人进行钓鱼攻击等操作,这也是一种平行权限绕过漏洞…

2023年CPSM-3中级项目管理专业人员认证招生简章

CPSM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处)联合中国国际人才交流基金会,面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才…

软体机器人对工业应用的影响

原创 | 文 BFT机器人 软机器人模仿生物体的运动和动作,使它们具有高度的多功能性和迷人性。 软机器人领域正在迅速发展。它旨在为各种行业创造灵活的设备,包括医疗保健、太空探索、食品生产、地理、物流、康复、国防和家庭应用。 软机器人的独特之处在于…

windows下使用cmake编译c++

好久没有更新博客了 最近在做c相关的,编译起来确实很痛苦。 所以心血来潮,继续更新一下 主要还是一些跨平台的库,比如zlib、libpng、opencv、ffmpeg 编译工具使用mingw作为主要编译环境支持,使用msys进行编译。 一、下载mingw…

Python--输入和输出

Python--输入和输出 <font colorblue>一、输入&#xff1a;input()函数<font colorblue>二、输出&#xff1a;print()函数<font colorblue>1.print函数说明<font colorblue>2.格式化输出<font colorblue>方法一&#xff1a;使用占位符&#xff0…

MySQL哈希索引

介绍 建表时存储引擎选择 MEMORY&#xff0c;则创建索引就是哈希索引&#xff1a;如create index nameidx on student(name);哈希索引底层数据结构就是链式哈希表&#xff0c;链式就是指冲突时用链表法解决哈希表中的元素没有任何顺序可言&#xff0c;则只能进行等值比较。如果…

PinYin4j库的使用

一、PinYin4j库简介 1、PinYin4j简介 Pinyin4j 是一个流行的 Java 库&#xff0c;支持汉字和大多数流行的拼音系统之间的转换&#xff08;汉语拼音&#xff0c;罗马拼音等&#xff09;。可自定义拼音输出格式&#xff0c;功能强大。 官网地址&#xff1a;http://pinyin4j.sou…