هذا هو تطبيق 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 | ا ف ب (م) | ا ف ب (ل) | AR | ع .5 | ع .75 | ذراع) | AR (يسار) |
---|---|---|---|---|---|---|---|---|---|---|
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 | ا ف ب (م) | ا ف ب (ل) | AR | ع .5 | ع .75 | ذراع) | AR (يسار) |
---|---|---|---|---|---|---|---|---|---|---|
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. تم تطوير الكود واختباره باستخدام 4 بطاقات NVIDIA P100 GPU. لم يتم اختبار الأنظمة الأساسية أو بطاقات GPU الأخرى بشكل كامل.
قم بتثبيت pytorch >= v0.4.0 باتباع التعليمات الرسمية.
تعطيل cudnn لـ Batch_norm:
# 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=/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 النموذجية والنماذج المُدربة مسبقًا بنمط القهوة من 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
إخراج Init (دليل إخراج نموذج التدريب) ودليل السجل (دليل سجل Tensorboard):
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، هناك حاجة إلى 2017 Train/Val للتدريب على نقاط مفاتيح 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}
}