這是人體姿勢估計和追蹤的簡單基線的官方 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}
}