HRNet 是一篇非常经典的关于2D 人体姿势检测的论文,昨天把demo跑通了,记录一下复现过程。

论文题目:Deep High-Resolution Representation Learning for Human Pose Estimation
发表时间:2019
论文级别:Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

论文笔记

HRNet 论文笔记

代码复现

  • 创建虚拟环境
conda create -n HRNet python=3.6

我是在 AutoDL服务器上跑的

  • 下载pytorch
    pytorch 地址:pytorch 官网,根据里面的指引,按照你环境类型复制下载命令。

  • 下载依赖,根据github源代码里的requirements.txt文件下载,使用下面命令:

pip install -r requirements.txt
  • Make libs:
cd ${POSE_ROOT}/lib
make

这里的${POSE_ROOT}是你放源代码的位置

  • 创建文件夹:
mkdir output 
mkdir log

最后文件夹的结构是下面的样子:

${POSE_ROOT}
├── data
├── experiments
├── lib
├── log
├── models
├── output
├── tools 
├── README.md
└── requirements.txt
  • 下载预训练姿势检测器,下载到models文件夹中,下载地址为:https://drive.google.com/drive/folders/1hOTihvbyIxsm5ygDpbUuJ7O_tzv4oXjC?usp=sharing

  • 然后把你自己想检测的视频放在videos文件夹下(videos文件夹自己创建),最终的文件结构如下:

HRNet 文件夹结构

  • 开始运行推理代码:
python demo/inference.py --cfg demo/inference-config.yaml \
    --videoFile ../../multi_people.mp4 \
    --writeBoxFrames \
    --outputDir output \
    TEST.MODEL_FILE ../models/pytorch/pose_coco/pose_hrnet_w32_256x192.pth 

运行代码过程中报错

ModuleNotFoundError:No module named ‘lib’

01 报错找不到模块,但是明明有这个自定义模块,最后看了博客

ModuleNotFoundError:No module named ‘lib’

受到启发,是因为没有在inference.py文件中导入初始化路径,在inference.py文件中加上以下代码:import _init_paths,然后_init_paths.py文件中这样写:

2
2.

cannot connect to X server

3
上网查原因是因为项目中有显示图片的代码,但是因为服务器没有图形显示界面,所以不能显示出来。
在inference.py文件中把显示图片的代码注释掉:

5
然后就可以正常运行,可以在output文件夹中看到很多帧图片以及一个视频

6

除了运行视频文件,还可以有其他参数,比如相机,图片,具体参数解释如下:

7

我挑选了图片参数进行测试,运行以下代码:

python demo/demo.py --image test.jpg --showFps --write

这里要注意去inference-config.yaml 修改预训练模型和输出位置:我还修改了GPU的个数,我在服务器跑是有一个GPU的,但是运行demo的时候报错说CUDA参数错误,然后上网查了一下,可能是GPU数量不匹配,所以我改了GPUs为0,想不到就不报错了。

8
然后在demo.py中修改cfg的位置,
9

最终在output文件夹得到如下结果:
10

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐