这是人体姿势估计和跟踪的简单基线的官方 pytorch 实现。这项工作提供了非常简单和有效的基线方法,因此有助于激发和评估该领域的新想法。最先进的结果是在具有挑战性的基准上取得的。在 COCO 关键点有效数据集上,我们最好的单一模型达到了74.3 的 mAP 。您可以使用此存储库重现我们的结果。所有模型均用于研究目的。
拱 | 头 | 肩膀 | 弯头 | 手腕 | 时髦的 | 膝盖 | 踝 | 意思是 | 平均值@0.1 |
---|---|---|---|---|---|---|---|---|---|
256x256_pose_resnet_50_d256d256d256 | 96.351 | 95.329 | 88.989 | 83.176 | 88.420 | 83.960 | 79.594 | 88.532 | 33.911 |
384x384_pose_resnet_50_d256d256d256 | 96.658 | 95.754 | 89.790 | 84.614 | 88.523 | 84.666 | 79.287 | 89.066 | 38.046 |
256x256_pose_resnet_101_d256d256d256 | 96.862 | 95.873 | 89.518 | 84.376 | 88.437 | 84.486 | 80.703 | 89.131 | 34.020 |
384x384_pose_resnet_101_d256d256d256 | 96.965 | 95.907 | 90.268 | 85.780 | 89.597 | 85.935 | 82.098 | 90.003 | 38.860 |
256x256_pose_resnet_152_d256d256d256 | 97.033 | 95.941 | 90.046 | 84.976 | 89.164 | 85.311 | 81.271 | 89.620 | 35.025 |
384x384_pose_resnet_152_d256d256d256 | 96.794 | 95.618 | 90.080 | 86.225 | 89.700 | 86.862 | 82.853 | 90.200 | 39.433 |
拱 | 美联社 | AP .5 | 美联社.75 | 美联社 (男) | 美联社(大) | 增强现实 | 增强现实.5 | .75 | 手臂) | 增强型(左) |
---|---|---|---|---|---|---|---|---|---|---|
256x192_pose_resnet_50_d256d256d256 | 0.704 | 0.886 | 0.783 | 0.671 | 0.772 | 0.763 | 0.929 | 0.834 | 0.721 | 0.824 |
384x288_pose_resnet_50_d256d256d256 | 0.722 | 0.893 | 0.789 | 0.681 | 0.797 | 0.776 | 0.932 | 0.838 | 0.728 | 0.846 |
256x192_pose_resnet_101_d256d256d256 | 0.714 | 0.893 | 0.793 | 0.681 | 0.781 | 0.771 | 0.934 | 0.840 | 0.730 | 0.832 |
384x288_pose_resnet_101_d256d256d256 | 0.736 | 0.896 | 0.803 | 0.699 | 0.811 | 0.791 | 0.936 | 0.851 | 0.745 | 0.858 |
256x192_pose_resnet_152_d256d256d256 | 0.720 | 0.893 | 0.798 | 0.687 | 0.789 | 0.778 | 0.934 | 0.846 | 0.736 | 0.839 |
384x288_pose_resnet_152_d256d256d256 | 0.743 | 0.896 | 0.811 | 0.705 | 0.816 | 0.797 | 0.937 | 0.858 | 0.751 | 0.863 |
拱 | 美联社 | AP .5 | 美联社.75 | 美联社 (男) | 美联社(大) | 增强现实 | 增强现实.5 | .75 | 手臂) | 增强型(左) |
---|---|---|---|---|---|---|---|---|---|---|
256x192_pose_resnet_50_caffe_d256d256d256 | 0.704 | 0.914 | 0.782 | 0.677 | 0.744 | 0.735 | 0.921 | 0.805 | 0.704 | 0.783 |
256x192_pose_resnet_101_caffe_d256d256d256 | 0.720 | 0.915 | 0.803 | 0.693 | 0.764 | 0.753 | 0.928 | 0.821 | 0.720 | 0.802 |
256x192_pose_resnet_152_caffe_d256d256d256 | 0.728 | 0.925 | 0.804 | 0.702 | 0.766 | 0.760 | 0.931 | 0.828 | 0.729 | 0.806 |
该代码是在 Ubuntu 16.04 上使用 python 3.6 开发的。需要 NVIDIA GPU。该代码是使用 4 个 NVIDIA P100 GPU 卡进行开发和测试的。其他平台或 GPU 卡尚未经过充分测试。
按照官方说明安装 pytorch >= v0.4.0。
为batch_norm禁用cudnn:
# PYTORCH=/path/to/pytorch
# for pytorch v0.4.0
sed -i "1194s/torch.backends.cudnn.enabled/False/g" ${PYTORCH}/torch/nn/functional.py
# for pytorch v0.4.1
sed -i "1254s/torch.backends.cudnn.enabled/False/g" ${PYTORCH}/torch/nn/functional.py
请注意,像 # PYTORCH=/path/to/pytorch 这样的指令表明您应该选择要安装 pytorch 的路径,然后相应地设置环境变量(在本例中为 PYTORCH)。
克隆此存储库,我们会将您克隆的目录称为 ${POSE_ROOT}。
安装依赖项:
pip install -r requirements.txt
制作库:
cd ${POSE_ROOT}/lib
make
安装 COCOAPI:
# COCOAPI=/path/to/clone/cocoapi
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
# Install into global site-packages
make install
# Alternatively, if you do not have permissions or prefer
# not to install the COCO API into global site-packages
python3 setup.py install --user
请注意,像 # COCOAPI=/path/to/install/cocoapi 这样的指令表明您应该选择一个您想要克隆软件的路径,然后相应地设置一个环境变量(在本例中为 COCOAPI)。
从 pytorch model Zoo 下载 pytorch imagenet 预训练模型,从 GoogleDrive 下载 caffe 风格的预训练模型。
从 OneDrive 或 GoogleDrive 下载 mpii 和 coco 预训练模型。请在 ${POSE_ROOT}/models/pytorch 下下载它们,并使它们看起来像这样:
${POSE_ROOT}
`-- models
`-- pytorch
|-- imagenet
| |-- resnet50-19c8e357.pth
| |-- resnet50-caffe.pth.tar
| |-- resnet101-5d3b4d8f.pth
| |-- resnet101-caffe.pth.tar
| |-- resnet152-b121ed2d.pth
| `-- resnet152-caffe.pth.tar
|-- pose_coco
| |-- pose_resnet_101_256x192.pth.tar
| |-- pose_resnet_101_384x288.pth.tar
| |-- pose_resnet_152_256x192.pth.tar
| |-- pose_resnet_152_384x288.pth.tar
| |-- pose_resnet_50_256x192.pth.tar
| `-- pose_resnet_50_384x288.pth.tar
`-- pose_mpii
|-- pose_resnet_101_256x256.pth.tar
|-- pose_resnet_101_384x384.pth.tar
|-- pose_resnet_152_256x256.pth.tar
|-- pose_resnet_152_384x384.pth.tar
|-- pose_resnet_50_256x256.pth.tar
`-- pose_resnet_50_384x384.pth.tar
初始化output(训练模型输出目录)和log(tensorboard日志目录)目录:
mkdir output
mkdir log
您的目录树应如下所示:
${POSE_ROOT}
├── data
├── experiments
├── lib
├── log
├── models
├── output
├── pose_estimation
├── README.md
└── requirements.txt
对于 MPII 数据,请从 MPII 人体姿势数据集下载。原始注释文件是matlab格式。我们已将它们转换为 json 格式,您还需要从 OneDrive 或 GoogleDrive 下载它们。将它们提取到 {POSE_ROOT}/data 下,并使它们看起来像这样:
${POSE_ROOT}
|-- data
`-- |-- mpii
`-- |-- annot
| |-- gt_valid.mat
| |-- test.json
| |-- train.json
| |-- trainval.json
| `-- valid.json
`-- images
|-- 000001163.jpg
|-- 000003072.jpg
对于COCO数据,请从COCO download下载,COCO关键点训练和验证需要2017 Train/Val。我们还提供了 COCO val2017 的人物检测结果来重现我们的多人姿态估计结果。请从 OneDrive 或 GoogleDrive 下载。下载并解压到 {POSE_ROOT}/data 下,使它们看起来像这样:
${POSE_ROOT}
|-- data
`-- |-- coco
`-- |-- annotations
| |-- person_keypoints_train2017.json
| `-- person_keypoints_val2017.json
|-- person_detection_results
| |-- COCO_val2017_detections_AP_H_56_person.json
`-- images
|-- train2017
| |-- 000000000009.jpg
| |-- 000000000025.jpg
| |-- 000000000030.jpg
| |-- ...
`-- val2017
|-- 000000000139.jpg
|-- 000000000285.jpg
|-- 000000000632.jpg
|-- ...
python pose_estimation/valid.py
--cfg experiments/mpii/resnet50/256x256_d256x3_adam_lr1e-3.yaml
--flip-test
--model-file models/pytorch/pose_mpii/pose_resnet_50_256x256.pth.tar
python pose_estimation/train.py
--cfg experiments/mpii/resnet50/256x256_d256x3_adam_lr1e-3.yaml
python pose_estimation/valid.py
--cfg experiments/coco/resnet50/256x192_d256x3_adam_lr1e-3.yaml
--flip-test
--model-file models/pytorch/pose_coco/pose_resnet_50_256x192.pth.tar
python pose_estimation/train.py
--cfg experiments/coco/resnet50/256x192_d256x3_adam_lr1e-3.yaml
如果您在研究中使用我们的代码或模型,请引用:
@inproceedings{xiao2018simple,
author={Xiao, Bin and Wu, Haiping and Wei, Yichen},
title={Simple Baselines for Human Pose Estimation and Tracking},
booktitle = {European Conference on Computer Vision (ECCV)},
year = {2018}
}