CPN(Cascaded Pyramid Network for Multi-Peron Pose Estimation)

CPN阅读笔记

论文链接:https://arxiv.org/abs/1711.07319
GitHub:https://github.com/chenyilun95/tf-cpn.git

1 提出问题

人体姿态检测难点:
1,关键点的遮挡,不可见,产生一些“难以检测到的关键点”。
2,复杂的背景,比如拥挤的人群。

难检测关键点难以检测的原因:
1,一些关键点(比如躯干上的关节点)很难通过appearance features简单识别。
2,这些难以检测的关键点没有在训练网络的过程中明确解决。

2 CPN 网络架构

为解决上述难题,本文提出了一种级联金字塔网络。由两部分构成,GlobalNet和RefineNet.
GlobalNet基于特征金字塔网络学习一个很好的特征。特征金字塔网络可以提供足够的上下文信息,这对于被遮挡和不可见关节的检测极其有利。在特征金字塔网络的基础上,RefineNet基于困难样本挖掘的方法明确的解决了难以检测的关键点的检测问题。
本文进行多人姿态检测方法为自顶向下,即先用目标检测器检测出人体框,然后对每个人体框检测关键点,最后投影到原图上。


整体网络架构

2.1 GlobalNet

GlobalNet基于resnet改进而来,将resnet 最后4个block分别表示为C2,C3, C4,C5。在这些block后面通过3*3卷积生成关键点的热力图。像C2和C3这样的浅层特征图具有较高的空间信息(利于定位),但语义信息较低(不利于识别)。另一方面,像C4和C5这样的深层特征具有更多的语义信息,但空间信息较少。因此,通常用U形编码解码结构来既保持空间信息又包含语义信息。FPN改进了U形结构,同样也可以应用于关键点估计。与FPN略有不同,GlobalNet在上采样之前加上了一个1×1卷积。GlobalNet 即FPN加上Resnet。


如上图所示,基于ResNet骨干网的GlobalNet可以有效地定位眼睛等关键点,但无法精确定位臀部位置。像臀部这样的关键点的定位通常需要更多的附近上下文信息来检测。单个GlobalNet很难直接识别这些“难检测”关键点。

2.2 RefineNet

RefineNet通过上采样和concat连接不同stride的feature map,以集成不同层次的特征。
与沙漏网络的refine策略不同,RefineNet连接了所有金字塔特征,而不是简单地使用网络末端检测。RefineNet包含了很多bottleneck 单元,可以使网络运行更加快速。
RefineNet基于训练损失(online hard keypoints mining)选出难以识别的关键点,只反向传播这些“困难点”的梯度。

3 实验验证


CPN的backbone 实验



NMS和soft-NMS对比实验



CPN与其他关键点检测算法比较

4 small trick

4.1 Online Hard Keypoints Mining

第一阶段GlobalNet学习所有17个关键点,第二阶段RefineNet只学习“难检测点”M (M<17)个。下图为不同M值的对比实验:


4.2 Data Augmentation Strategy.

数据增强对于多尺度的学习和旋转不变有重要作用。对训练集进行了随机翻转, 随机旋转 (−45度到+45度) , 随机尺度缩放(0.7到1.35)。

你可能感兴趣的:(CPN(Cascaded Pyramid Network for Multi-Peron Pose Estimation))