论文:Improving Multi-Person Pose Estimation using Label Correction
论文提出了一种openpose人体关键点算法的改进策略。由于官方的coco数据集中存在下面的问题,
- 图片之后的人体区域没有关键点的标注
- 遮挡情况下的人体区域没有关键点的标注
- 有些可见的关键点区域没有进行相应的关键点标注
- 可以忽略的区域的mask标注缺失
实验证明使用修正过的数据进行训练可以加速训练的收敛,并且提升模型的精度。
- 原始COCO数据集的关键点
- 根据关键点生成的PAF
- 使用openpose检测生成的PAF
可以看出由于COCO数据集对超出图片范围的肘部缺少标注,会对生成的PAF造成影响,最终影响训练精度。
人体姿态估计2种思路:
- 自顶向下Top-down
缺点,随着图片种人数量的增加,计算时间也会增加。
代表作,stacked hourglass network,Cascaded Pyramid Network,Mask RCNN
- 自底向上Bottom-up
优点,计算时间复杂度不受图片种人数量多少的影响。
代表作,DeepCut,Integer Linear Program (ILP),DeeperCut
Openpose网络结构:
网络整体以vgg19作为基础结构,后续接了6个stage。最后一个stage分别预测PAF(Part Affinity Fields)和PCM(part confidence map)。第一个stage之前的vgg基础结构共下采样3次,后续的stage都没有进行下采样操作。
以COCO数据集包含18个人体关键点为例子。最终网络的输出将会是18(关键点)+1(背景)个channel的PCM输出和(18+1)*2=38个channel的PAF输出。最终将PCM和PAF的输出concat后,共得到57个channel的输出。
假设输入图像大小为368*368。因此得出,网络输入大小为1*3*368*368,输出大小为1*57*46*46。
其中关键点对应的数字编号如下,
Openpose loss:
PAF和PCM的loss都是MSE。
标签纠正:
H表示关键点PCM,L表示关键点的连接PAF。
纠正的思想很简单,
对于PCM直接取groundtruth和openpose模型预测的关键点中得分较大的。
对于PAF,由于得分有正负之分,因此取绝对值较大的。
蒸馏:
训练数据增强:
随机镜像翻转,-40度---+40度的随机旋转,0.5-1.1的随机缩放,368*368的随机crop。
实验结果:
总结:
对COCO中训练数据的错误label进行修正,有助于提升openpose训练的精度。
Reference:
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/output.md