RMPose_PAF

August 24, 2021 · View on GitHub

Ai Studio: https://aistudio.baidu.com/aistudio/projectdetail/2306743

《Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ∗ 》论文复现

训练权重:https://drive.google.com/file/d/1Fz1MP4ybmbhr1oP2dPRFj0T54YUkmKNZ/view?usp=sharing

VGG19训练权重:https://drive.google.com/file/d/1xZJyh-scsvq4bdHdRgs5Ou-L0qtdx9JN/view?usp=sharing

下载后放在./目录下

Structure

文件结构

├── data │ └── mpii │ ├── annot │ └── images └── RMPose_PAFs ├── ...

pose_estimation.py: Model

ski.jpg : Test image

nohup.out: Train Log


模型整体流程

首要条件

export PYTHONPATH="$PWD":$PYTHONPATH  #终端执行

训练

可通过training/config.yml 文件夹修改训练超参数

python training/train_pose.py --config ./trainning/config.yml --train_dir ./datasets/process_train.json --val_dir ./datasets/process_val.json

评估

  • model:模型权重
  • only_eval: 已有评估完成存在的predection.npy文件,对此评估。
python testing/eval.py  --model ./RMPose_PAFs.pdparams.tar -only_eval True

测试

  • image_dir: 支持文件夹路径,以及单文件处理
  • model: 模型权重
  • output: 输出文件夹路径
python testing/test_pose.py --image_dir ./ski.jpg --model ./RMPose_PAFs.pdparams.tar

Question

Q: ModuleNotFoundError: No module named 'pafprocess_mpi'

A: export PYTHONPATH="$PWD":$PYTHONPATH

评估指标

参考代码(Matlab版): https://github.com/anibali/eval-mpii-pose

MPII数据集的评估指标采用的是PCKh@0.5。预测的关节点与其对应的真实关节点之间的归一化距离小于设定阈值,则认为关节点被正确预测,PCK即通过这种方法正确预测的关节点比例。

PCK@0.2表示以躯干直径作为参考,如果归一化后的距离大于阈值0.2,则认为预测正确。

PCKh@0.5表示以头部长度作为参考,如果归一化后的距离大于阈值0.5,则认为预测正确。

在本项目中论文复现结果:

MethodHeadShoulderElbowWristHipKneeAnkleMean
RMPose_PAFs36.9492.1986.2179.7785.6281.6276.6480.96
原论文91.2887.677.766.875.468.961.775.6
DeeperCut73.471.857.939.956.744.032.054.1
AlphaPose91.390.584.076.480.379.972.482.1