『关键点检测』CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation
网络简介
face++2017年coco keypoint benchmark 数据集冠军的文章,发表于CVPR2018
1 提出了一种金字塔型的串接模型,即CPN(cascaded pyramid network),这个模型能够同时兼顾人体关节点的局部信息以及全局信息,结果取得了不错的效果;
2 使用了在线难例挖掘(online hard keypoints mining)的技术,这对于人体姿态估计任务中一些存在遮挡的“hard”的关键点的预测有所帮助;
3 测试阶段考量了soft-NMS和传统的hard-NMS(非极大值抑制)在human detection阶段产生的影响,结论是soft-NMS对于最后的结果是有所帮助的。
本算发聚焦点在于处理多人姿态估计所面临的挑战:关键点遮挡,关键点不可见,复杂背景等——就是优化对于难以检测的点的预测,即着重于处理 “hard” 关键点。思路就是detector先定位bbox,然后使用CPN检测关键点,其中原作者使用的是FPN进行bbox定位(下图解释了FPN的优越性),并应用了ROIAlign。
需要说明的式,本文的方法仍然是一个传统的top-down的pipeline,即现在图片中检测到人体,再做一个单人的human pose estimation。
下面这张图阐述了作者的网络设计思路,即一些比较容易识别出来的人体关键点,直接利用一个CNN模型就可以回归得到;而对于一些遮挡比较严重的关节点,则需要增大局部区域感受野以及结合上下文信息才能够进一步refine得到。、
CPN本体由两部分组成:GlobalNet和RefineNet,流程如下图所示,GlobalNet对关键点进行粗提取(实际就是用ResNet的网络架构回归heatmap),RefineNet精细加工难以识别的网络(RefineNet对不同层信息进行了融合,可以更好的综合特征定位关键点),首先对于可以看见的easy 关键点直接预测得到,对于不可见的关键点,使用增大感受野来获得关键点位置,对于还未检测出的点,使用上下文context进行预测(即融合多个感受野信息,最后concatenate所有的同一尺寸特征图进一步回归一些有歧义的关键点位置)。
GlobalNet 采用类似于FPN的特征金字塔结构,并在每个elem-sum前添加了1x 卷积,负责网络所有关键点的检测,重点是对比较容易检测的眼睛、胳膊等部位的关键点。
RefineNet基于GlobalNet生成的特征金字塔,其链接了所有层的金字塔特征用于定位“hard”关键点,GolbalNet对身体部位的那些遮挡,看不见,或者有复杂背景的关键点预测误差较大,RefineNet则专门修正这些点。主要还是基于shortcut的思想,在该阶段的训练中,还使用了类似OHEM的online hard keypoints mining难例挖掘策略。
下图表示的更明显,眼睛等关键点GlobalNet 直接输出结果,其他关键点使用添加了RefineNet 的组合网络输出结果:
实验要点
(1)数据增强,提升0.4map
训练数据的处理上使用了随机翻转,(-45度,45度)的随机旋转,(0,7,1.35)的随机尺度变换
(2)大batch的训练,主要针对检测框架,提升0.4-0.7map
(3)在行人检测框架中使用soft NMS取代hard NMS,提升0.3map
(4)随着检测map的提高,关键点的map提升非常有限
(5)online hard keypoints mining
在coco 数据集中有17个关键点需要预测,GolbalNet预测所有的17个点,并计算所有17个点的loss,RefineNet也预测所有的17个点,但是只有最难的8个点的loss 贡献给总loss。作者称这为OHEM。
(6)多模型融合集成,提升1.1-1.5map在coco minval数据集上