【MMPose】1.x版本安装与体验(测试YOLOX-Pose和RTMPose)

就在四月初,mmpose迎来了1.x正式版,OpenMMLab给出的具体亮点如下:

  1. 基于模型训练引擎 MMEngine 的架构设计,使模型训练流程更直观,代码更简化,接口更统一;
  2. 新增姿态编解码器模块,统合姿态前后处理过程;
  3. 统一 top-down 和 bottom-up 方法的数据接口;
  4. 新增 SimCC,Debias IPR 等多个轻量化姿态估计算法;
  5. 全流程可视化工具,关键点、骨骼、热力图尽收眼底;
  6. 更友好的用户文档,帮助新老用户顺利开启 MMPose 1.0 之旅。

除此之外,mmpose更新了yolox-pose和一个对于topdown方法来说过于超前的RTMPose(为什么说它超前,因为官方说它不仅有很高的精度,并且在1660ti上的推理速度能达到400+FPS,cpu上能达到100+FPS!详情见RTMPose论文)

【MMPose】1.x版本安装与体验(测试YOLOX-Pose和RTMPose)_第1张图片

 废话不多说,下面就进行一下MMPose1.x版本的安装体验。

1.配置安装MMPose

pytorch在年初更新了2.0版本,要求python 3.8和cuda11.7以上,正好手里有一台旧电脑需要重新配置一下。

本文安装环境:VS2022、python3.10、cuda11.8、pytorch2.0、win10

MMPose1.x版本的安装与之前大同小异,首先在GitHub上下载源码

git clone https://github.com/open-mmlab/mmpose.git

参考官方文档,依次执行以下命令:

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

也可以使用pip+清华源的安装方法,只是使用pip会在本地编译后安装,会比使用mim的方法慢不少。特别注意,mmdet在官方文档虽然是可选安装项,但是如果不装的话运行RTMPose时会报错找不到backbone,所以这里mmdet是必须安装的。

切换到mmpose代码路径,执行以下命令:

pip install -r requirements.txt
pip install -v -e .

这样mmpose 1.x版本就安装完成了。

2.测试YOLOX-Pose

给出YOLOX-Pose的表格

Model Input Size AP AP50 AP75 AR AR50 Download
YOLOX-tiny-Pose 640 0.518 0.799 0.545 0.566 0.841 model | log
YOLOX-s-Pose 640 0.632 0.875 0.692 0.676 0.907 model | log
YOLOX-m-Pose 640 0.685 0.897 0.753 0.727 0.925 model | log
YOLOX-l-Pose 640 0.706 0.907 0.775 0.747 0.934 model | log

这里选择tiny-pose测试,点击右侧model下载。在运行之前要下载mmyolo:

mim install mmyolo

因为我是win10,所以需要在demo/inferencer_demo.py中写入环境变量:

import sys
sys.path.append('projects/yolox-pose')

如果是Linux系统,不需要更改py文件,在命令行中添加临时变量即可:

export PYTHONPATH=`pwd`:$PYTHONPATH

注意,pwd是填入当前路径,需要先将命令行切换路径到‘projects/yolox-pose’才能起作用。

要手动填写的话请填入yolox-pose的绝对路径。

然后就可以运行yolox-pose了,命令行输入:

python demo/inferencer_demo.py tests/data/coco/000000197388.jpg --pose2d projects/yolox-pose/configs/yolox-pose_tiny_4xb64-300e_coco.py --pose2d-weights pretrain/yolox-pose_tiny_4xb64-300e_coco-c47dd83b_20230321.pth --scope mmyolo --vis-out-dir vis_results

得到的检测结果如下:

【MMPose】1.x版本安装与体验(测试YOLOX-Pose和RTMPose)_第2张图片

3.测试RTMPose

Detection Config Pose Config Input Size
(Det/Pose)
Model AP
(COCO)
Pipeline AP
(COCO)
Params (M)
(Det/Pose)
Flops (G)
(Det/Pose)
ORT-Latency(ms)
(i7-11700)
TRT-FP16-Latency(ms)
(GTX 1660Ti)
Download
RTMDet-nano RTMPose-t 320x320
256x192
40.3
67.1
64.4 0.99
3.34
0.31
0.36
12.403 2.467 det
pose
RTMDet-nano RTMPose-s 320x320
256x192
40.3
71.1
68.5 0.99
5.47
0.31
0.68
16.658 2.730 det
pose
RTMDet-nano RTMPose-m 320x320
256x192
40.3
75.3
73.2 0.99
13.59
0.31
1.93
26.613 4.312 det
pose
RTMDet-nano RTMPose-l 320x320
256x192
40.3
76.3
74.2 0.99
27.66
0.31
4.16
36.311 4.644 det
pose
RTMDet-m RTMPose-m 640x640
256x192
62.5
75.3
75.7 24.66
13.59
38.95
1.93
- 6.923 det
pose
RTMDet-m RTMPose-l 640x640
256x192
62.5
76.3
76.6 24.66
27.66
38.95
4.16
- 7.204 det
pose

同样,输入命令:

python demo/topdown_demo_with_mmdet.py projects\rtmpose\rtmdet\person\rtmdet_nano_320-8xb32_coco-person.py pretrain\rtmdet_nano_8xb32-100e_coco-obj365-person-05d8511e.pth configs\body_2d_keypoint\rtmpose\mpii\rtmpose-m_8xb64-210e_mpii-256x256.py pretrain\rtmpose-m_simcc-mpii_pt-aic-coco_210e-256x256-ec4dbec8_20230206.pth --input tests\data\mpii\005808361.jpg --output-root vis_results

这里我使用的是mpii训练好的模型文件,想要使用coco的话在上面表格右边点击下载即可。

得到的检测结果如下:

【MMPose】1.x版本安装与体验(测试YOLOX-Pose和RTMPose)_第3张图片

4.RTMPose推理及部署测试

由于时间原因,关于RTMPose的推理速度的测试和在mmdeploy上的部署留到下次有空再做。

觉得文章对你有帮助的话请点赞收藏,谢谢鼓励。

你可能感兴趣的:(mmpose,YOLO,姿态估计,深度学习,人工智能,计算机视觉)