实时多人姿态估计
作者:Zhe Cao、Tomas Simon、Shih-En Wei、Yaser Sheikh。
简介
这是获得2016年MSCOCO关键点挑战赛冠军、2016年ECCV最佳演示奖和2017年CVPR口头报告的代码库。
我们提出了一种实时多人姿态估计的自下而上的方法,无需使用任何人检测器。更多细节请参考我们的CVPR'17论文,我们在CVPR 2017上的口头报告视频录制或我们在2016年ILSVRC和COCO研讨会上的演示幻灯片。
本项目根据许可证的条款进行许可。
其他实现
感谢大家为重现做出的努力!如果你有新的实现并希望与他人分享,欢迎提交pull request或给我发邮件!
- 我们新的C++库OpenPose(仅测试)
- Tensorflow [版本 1] | [版本 2] | [版本 3] | [版本 4] | [版本 5] | [版本 6] | [版本 7 - TF2.1]
- Pytorch [版本 1] | [版本 2] | [版本 3]
- Caffe2 [版本 1]
- Chainer [版本 1]
- MXnet [版本 1]
- MatConvnet [版本 1]
- CNTK [版本 1]
内容
测试
C++(实时版本,仅用于演示)
- 请使用OpenPose,现在它可以在CPU/GPU和Windows/Ubuntu上运行。
- 三种输入选项:图像、视频、网络摄像头
Matlab(较慢,用于COCO评估)
- 与通用的Caffe兼容。编译matcaffe。
- 运行
cd testing; get_model.sh
从我们的网络服务器获取最新的MSCOCO模型。 - 修改
config.m
中的caffepath,运行demo.m
以查看示例用法。
Python
cd testing/python
ipython notebook
- 打开
demo.ipynb
并执行代码
训练
网络架构
训练步骤
- 运行
cd training; bash getData.sh
获取dataset/COCO/images/
中的COCO图像、dataset/COCO/annotations/
中的关键点标注以及dataset/COCO/coco/
中的COCO官方工具箱。 - 运行Matlab中的
getANNO.m
将标注格式从json转换为dataset/COCO/mat/
中的mat格式。 - 运行Matlab中的
genCOCOMask.m
以获取未标注人物的掩码图像。你可以在Matlab中使用'parfor'加速代码。 - 运行
genJSON('COCO')
在dataset/COCO/json/
文件夹中生成一个json文件。json文件包含训练所需的原始信息。 - 运行
python genLMDB.py
生成你的LMDB。(你也可以通过bash get_lmdb.sh
下载我们为COCO数据集准备的LMDB(189GB文件)) - 下载我们修改过的caffe:caffe_train。编译pycaffe。它将很快与caffe_rtpose(用于测试)合并。
- 运行
python setLayers.py --exp 1
生成用于训练的prototxt和shell文件。 - 下载VGG-19模型,我们用它来初始化前10层进行训练。
- 运行
bash train_pose.sh 0,1
(由setLayers.py生成)使用两块GPU开始训练。
引用
如果本文对您的研究有所帮助,请在您的出版物中引用:
@inproceedings{cao2017realtime,
author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
booktitle = {CVPR},
title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
year = {2017}
}
@inproceedings{wei2016cpm,
author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
booktitle = {CVPR},
title = {Convolutional pose machines},
year = {2016}
}