就在四月初,mmpose迎来了1.x正式版,OpenMMLab给出的具体亮点如下:
除此之外,mmpose更新了yolox-pose和一个对于topdown方法来说过于超前的RTMPose(为什么说它超前,因为官方说它不仅有很高的精度,并且在1660ti上的推理速度能达到400+FPS,cpu上能达到100+FPS!详情见RTMPose论文)
废话不多说,下面就进行一下MMPose1.x版本的安装体验。
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版本就安装完成了。
给出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
得到的检测结果如下:
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的话在上面表格右边点击下载即可。
得到的检测结果如下:
由于时间原因,关于RTMPose的推理速度的测试和在mmdeploy上的部署留到下次有空再做。
觉得文章对你有帮助的话请点赞收藏,谢谢鼓励。