Certernet实现人体姿态估计(包括人体检测)的步骤记录

  • Post author:
  • Post category:其他


首先展示效果(此为官方图):

在这里插入图片描述

github链接:

https://github.com/xingyizhou/CenterNet



1. 编译nms


Note:


若未编译nms,则运行demo时会报错ModuleNotFoundError: No module named ‘external.nms’

git clone https://github.com/xingyizhou/CenterNet.git
pip install -r requirements.txt  # 安装必要模块,可使用conda创建一个新的环境,需要torch 
cd $Centernet_HOME # (即centernet根目录)
cd src/lib/external
make



2. 编译DCNv2


Note:


源代码里给的是pytorch0.4版本的,如果用的是torch<=0.4版本可直接使用,若是pytorch1.x版本则需要下载DCNv2源码(

链接地址

)替换掉

src/lib/model/networks

里的DCNv2目录后再进行编译

使用torch1.x版本又使用此项目里自带的DCNv2,编译DCNv2后运行demo会报错

ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.


我用的是pytorch1.1版本的

cd src/lib/model/networks
rm -rf DCNv2 # 移除旧版本DCNv2
git clone https://github.com/CharlesShang/DCNv2.git # 下载新版本DCNv2
cd DCNv2
./make.sh


Note:


以上编译在Linux上建议使用gcc4.9以上版本进行编译(尝试使用gcc4.8.5编译后运行demo检测视频时报错

Segmentations fault (core dumped)



3. 模型

下载人体姿态估计模型

multi_pose_dla_3x.pth

79M(

链接:https://pan.baidu.com/s/1VUcK0CKZYANFnjn70WkTSw 密码:h1ls



运行demo时所需要的预训练模型

dla34-ba72cf86.pth

60M(

链接:https://pan.baidu.com/s/1A_zfUeQItuuCdNkzlpzZwg 密码:p4ye



,根据提示拷贝到.torch下的指定目录里



4. 运行demo

python demo.py multi_pose --demo 3.mp4 --load_model multi_pose_dla_3x.pth



5. c++调用(使用tensortRT加速)

后续更新转换模型供c++调用



版权声明:本文为lxx4610原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。