一、常用数据集
Pose Estimation/keypoint常用数据集
1. Posetrack:https://posetrack.net/
- > 500 video sequences
- > 20K frames
- > 150K body pose annotations
- 3 challenges
2. LSP:http://sam.johnson.io/research/lsp.html
- 样本数:2K
- 关节点个数:14
- 全身,单人
3. FLIC:https://bensapp.github.io/flic-dataset.html
- 样本数:2W
- 关节点个数:9
- 全身,单人
4. MPII:http://human-pose.mpi-inf.mpg.de/
- 样本数:25K
- 关节点个数:16
- 全身,单人/多人,40K people,410 human activities
5. MSCOCO:http://cocodataset.org/#download
- 样本数:>= 30W
- 关节点个数:18
- 全身,多人,keypoints on 10W people
6. AI Challenge:https://challenger.ai/competition/keypoint/subject
- 样本数:21W Training, 3W Validation, 3W Testing
- 关节点个数:14
- 全身,多人,38W people
二、主流方法
2D Pose estimation主要面临的困难:遮挡、复杂背景、光照、真实世界的复杂姿态、人的尺度不一、拍摄角度不固定等。
单人姿态估计
传统方法:基于Pictorial Structures, DPM
▪ 基于深度学习的算法包括直接回归坐标(Deep Pose)和通过热力图回归坐标(CPM, Hourlgass)
目前单人姿态估计,主流算法是基于Hourlgass各种更改结构的算法。
多人姿态估计
二维图像姿态估计基于CNN的多人姿态估计方法,通常有2个思路(Bottom-Up Approaches和Top-Down Approaches):
(1)Top-Down Approaches,即two-step framework,就是先进行行人检测,得到边界框,然后在每一个边界框中检测人体关键点,连接成一个人形,缺点就是受检测框的影响太大,漏检,误检,IOU大小等都会对结果有影响,算法包括RMPE、Mask-RCNN 等。
(2)Bottom-Up Approaches,即part-based framework,就是先对整个图片进行每个人体关键点部件的检测,再将检测到的部件拼接成一个人形,缺点就是会将不同人的不同部位按一个人进行拼接,代表方法就是openpose、DeepCut 、PAFs。
tricks
- 采用多尺度,多分辨率的网络结构
- 采用基于Residual Block来构建网络
- 扩大感受野(large kernel, dilation convolution, Spatial Transformer Network、hourglass module)
- 预处理很重要(将人放在输入图片的中心,人的尺度尽量归一化到统一尺度,对图片进行翻转、旋转)