Это официальная реализация Simple Baselines for Human Pose Estimation and Tracking на 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 |
Арка | АП | Ап.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 |
Арка | АП | Ап.5 | АП .75 | АП (М) | АП (Л) | АР | АР .5 | АР .75 | РУКА) | АР (Л) |
---|---|---|---|---|---|---|---|---|---|---|
256x192_pose_resnet_50_ кафе _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_ кафе _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_ кафе _d256d256d256 | 0,728 | 0,925 | 0,804 | 0,702 | 0,766 | 0,760 | 0,931 | 0,828 | 0,729 | 0,806 |
Код разработан с использованием Python 3.6 в Ubuntu 16.04. Нужны графические процессоры NVIDIA. Код разработан и протестирован с использованием четырех графических карт NVIDIA P100. Другие платформы или карты графического процессора не тестировались полностью.
Установите pytorch >= v0.4.0, следуя официальной инструкции.
Отключите 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 imagenet из зоопарка моделей pytorch и предварительно обученные модели в стиле caffe с GoogleDrive.
Загрузите предварительно обученные модели mpii и coco из OneDrive или GoogleDrive. Загрузите их в папку ${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
Вывод инициализации (каталог вывода обучающей модели) и каталог журнала (каталог журнала тензорной доски):
mkdir output
mkdir log
Ваше дерево каталогов должно выглядеть так:
${POSE_ROOT}
├── data
├── experiments
├── lib
├── log
├── models
├── output
├── pose_estimation
├── README.md
└── requirements.txt
Данные MPII можно загрузить из набора данных MPII Human Pose. Исходные файлы аннотаций имеют формат 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. Train/Val 2017 необходим для обучения и проверки ключевых точек COCO. Мы также предоставляем результаты обнаружения людей 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}
}