CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation
CPN 网络使用 top-down 模式进行多人姿势估计,即先检测出单个人,再使用 CPN 进行关键点检测。CPN 提出两个子网络检测人体关键点,其中GlobalNet是一个功能金字塔网络,可以成功地定位“简单”的关键点(如眼睛和手),但可能无法准确识别被遮挡或看不见的关键点。而RefineNet尝试通过整合来自GlobalNet的多个尺度的特征,通过扩大感受野的方式以及在线的关键点难例挖掘损失来优化对难例关键点的检测
什么是 CPN ?
- CPN 网络使用 top-down 模式进行多人姿势估计,即先检测出单个人,再使用 CPN 进行关键点检测
- CPN 提出两个子网络检测人体关键点,其中GlobalNet是一个功能金字塔网络,可以成功地定位“简单”的关键点(如眼睛和手),但可能无法准确识别被遮挡或看不见的关键点。而RefineNet尝试通过整合来自GlobalNet的多个尺度的特征,通过扩大感受野的方式以及在线的关键点难例挖掘损失来优化对难例关键点的检测
CPN 的网络结构?
- Human Detector:使用 FPN 和 Mask RCNN 网络,以得到每个人的 bounding-boxes,然后使用 bounding-boxes 对原图进行裁剪,并将裁剪后的结果用于 CPN 网络的输入进行关键点检测
- GlobalNet:一个特征金字塔网络,该网络用于定位简单的关键点,如眼睛和手等,但是对于遮挡点和不可见的点可能缺乏精确的定位
- RefineNet:通过集合来自GolbalNet网络的多级别特征来明确解决“难点”的检测问题
CPN 的 GlobalNet、RefineNet 的原理?
- GlobalNet:使用 resnet 网络,分别提取 C2、C3、C4、C5 四个尺度的特征
- RefineNet:基于四个尺度特征,输出所有关键点的 heatmap 预测
- 上图左对于 left eye (简单点)特征图上的激活区域 (红色)的 groundtruth (绿色) 中的位置和接近,说明在 GlabalNet 阶段,该网络对于这种简单点的检测已经达到了很不错的效果;但是看 left hip,在特征图上,还几乎没有激活区域,说明在该阶段网络并不能有效检测到该类别点,上图右可以看到,经过 RefineNet 之后,该网络已经可以有效检测到难检测点了
CPN 的损失函数?
- CPN 设计了两部分损失
- L2 loss:GlobalNet网络的输出和label计算所有关键点的loss
- L2 loss:RefineNet网络输出和label计算所有关键点的loss,然后对loss进行从大到小排序,最后选择top-k个loss用于网络的反向传播
参考: