【安装教程】MMPose安装与使用(测试HRNet与Lite-HRNet)

MMPose的官方文档对于怎么安装其实写得非常清楚,所以本篇文章其实相当于一个过程记录。

1.安装环境

python 3.7.6

pytorch 1.13

cuda 11.6

windows 11

2.安装mmcv

首先安装openmim

pip install -U openmim

安装完成后再使用openmim安装mmcv

mim install mmcv-full

3.安装mmpose

官方给出了两种安装模式:

  • 从源码安装(推荐):如果基于 MMPose 框架开发自己的任务,需要添加新的功能,比如新的模型或是数据集,或者使用我们提供的各种工具。

  • 作为 Python 包安装:只是希望调用 MMPose 的接口,或者在自己的项目中导入 MMPose 中的模块。

1)从源码安装需要我们从github上下载源代码:

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

2)作为 Python 包安装

直接使用pip指令即可

pip install mmpose

4.使用HRNet和Lite-HRNet验证安装

因为听说Lite-HRNet虽然浮点运算很低,但是实际运行起来并没有比HRNet快多少,所以这里运行了一下两个网络,并比较了一下推理时间。

首先需要下载两个模型的权重,下面给出两个网络的信息,这里分别下载HRNetW32_256x192(108M)的权重和LiteHRNet-18_256x192(4.82M)的权重

ArchInput SizeAPAP50AP75ARAR50ckptlog
pose_hrnet_w32256x1920.7460.9040.8190.7990.942ckptlog
pose_hrnet_w32384x2880.7600.9060.8290.8100.943ckptlog
pose_hrnet_w48256x1920.7560.9070.8250.8060.942ckptlog
pose_hrnet_w48384x2880.7670.9100.8310.8160.946ckptlog
ArchInput SizeAPAP50AP75ARAR50ckptlog
LiteHRNet-18256x1920.6430.8680.7200.7060.912ckptlog
LiteHRNet-18384x2880.6770.8780.7460.7350.920ckptlog
LiteHRNet-30256x1920.6750.8810.7540.7360.924ckptlog
LiteHRNet-30384x2880.7000.8840.7760.7580.928ckptlog

这里选择了一个42秒共1266帧的视频做测试,在RTX 2080S上,两个模型的表现如下(上为lite-hrnet):

 

load checkpoint from local path: hrnet_w32_coco_256x192-c78dce93_20200708.pth
Running inference...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ] 1265/1266, 5.7 task/s, elapsed: 221s, ETA:     0s
load checkpoint from local path: litehrnet18_coco_256x192-6bace359_20211230.pth
Running inference...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ] 1265/1266, 5.2 task/s, elapsed: 242s, ETA:     0s

可以发现lite-hrnet的推理速度(242s)确实不如hrnet(221s),考虑到lite-hrnet可能在cpu上表现会更好,下面在cpu上进行了测试(i5-12400)。为了节约时间,这里将上一个视频剪短到了3s,共89帧。模型表现如下:

load checkpoint from local path: hrnet_w32_coco_256x192-c78dce93_20200708.pth
Running inference...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 89/89, 0.3 task/s, elapsed: 330s, ETA:     0s
load checkpoint from local path: litehrnet18_coco_256x192-6bace359_20211230.pth
Running inference...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 89/89, 0.3 task/s, elapsed: 259s, ETA:     0s

可以看到lite-hrnet确实要比hrnet推理速度要快。但是也并没有像论文里浮点运算的差距,这很难不让人对论文的产生怀疑。


2023.3.14 更新一下实验

上面的实验结果让我百思不得其解,想了很久。直到有一天我突然想到,hrnet和litehrnet都是top-down的方法,上面实验在推理时使用了mmdet的fasterRCNN,并且视频的处理不是批量处理,故不能真实反映网络的推理性能。所以我又在MPII数据集上进行了验证,使用的GPU是1050ti。在MPII的验证集上,指定batchsize为64,HRNetW32的处理速度为20.3 task/s,而Lite-HRNet18处理速度为39.7 task/s.

这个实验证明,lite确实要比HRNet要快,当然两个网络的精度还是有区别的。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值