本文主要用于介绍Face++于2017年提出的用于关键点检测的CPN网络的论文。本笔记主要为方便初学者快速入门,以及自我回顾。
论文链接:https://arxiv.org/pdf/1711.07319.pdf
Github 源码地址:https://github.com/chenyilun95/tf-cpn.git
基本目录如下:
- 摘要
- 核心思想
- 总结
------------------第一菇 - 摘要------------------
1.1 论文摘要
随着卷积神经网络的广泛应用,多人体姿态识别的热度最近也是一直在上升。然而,当前的多人体姿态识别仍然面临着多种问题,比如说那些被遮挡的关键点,不可见的关键点或是复杂背景。本文,我们提出了一种新的网络架构名为 Cascaded Pyramid Network (CPN),该网络旨在解决那些特别难以识别的关键点(hard keypoints)。更具体的来讲,我们的整体算法框架包含了2个阶段,GlobalNet和RefineNet。其中GlobalNet是专门用来定位那些简单关键点的特征层级金字塔网络,但是该阶段的网络并不能识别那些被遮挡或是不可见的关键点。另外一个RefineNet网络就是专门用来解决那些 hard keypoints的。整体来说,为了解决多人姿态识别的问题,我们整体的框架流程仍然是自上而下的,即我们首先会定位出人体框,然后后面再接我们的新提出的CPN网络架构(针对每一个人体框的)。利用我们提出的新的模型架构,我们在COCO关键点预测的验证数据集上平均精确率有73.0,在测试数据集上有72.1,远远超过了2016年60.5的成绩。
1.2 论文主要贡献
- 提出了一种新的用于多人姿态识别的网络模型:CPN
- 本文深入分析了多个用于多人姿态识别自上而下框架的影响因素。
- 刷新了COCO多人姿态识别的记录。
------------------第二菇 - 核心思想------------------
2.1 CPN网络介绍
本文对多人体姿态识别这一问题采用的是自上而下的思路,因此第一步就是很常规的利用主流目标检测器FPN来确认人体框的位置。因此,我们直接来讲,如何利用CPN来做单人体的姿态识别的。
先直接上一张CPN的网络架构图,
整个架构包含了2个子网络,GlobalNet和RefineNet,接下来我们再逐一解析这俩个网络。
2.1.1 GlobalNet网络
整体的网络架构毫无悬念还是基于ResNet的。跟FPN类似,也都是在第2,3,4,5个残差模块后面直接连上个的卷积层用于生成关键点的热图。这种特征金字塔的架构也是考虑到了各个层级其对应捕获的特征是不一样的。跟FPN有一点不同的地方是,在叠加各层的特征图之前,GlobalNet还多加了一层的卷积操作。
这里再贴一张图,让大家感受一下不同层提取出的特征,
大家仔细看看上图,就会发现该层网络对于那种简单的点提取十分有效(左边提取的左眼,热图上的响应激活区域已经很明显了;而右边的被遮挡的那个中臀点就几乎无响应),因此,作者为了提取出那些很难被感受检测到的关键点,又新加了一个小网络RefineNet.
2.1.2 RefineNet网络
为了更高效的整合所有的特征信息,RefineNet采取了类似HyperNet的架构,将各层级提取出的特征通过上采样连接在一起,从而保证了信息的完整性和传输效率。并且不同于 stacked hourglass,RefineNet连接了所有的层级特征而不是仅仅用了最后一层。同时,用了更多的bottleneck blocks(we stack more bottleneck blocks into deeper layers, whose smaller spatial size achieves a good trade-off between effectiveness and efficiency)
在网络训练的时候,我们也采用了 online hard keypoints mining的手段,来让该网络更加集中于去训练那些难以检测的关键点。
整体评价的话,该网络并没有什么特别创新的地方,所以整一个框架比较有趣的其实就是GlobalNet和RefineNet连接在一起,各自负责不同的关键点的设计思路比较巧妙。
至此,整一套CPN网络已经介绍完了。
其余训练的过程和一些数据的预处理细节,有兴趣用到该网络的同学可以再去仔细看一下,这里就不作展开了。
------------------第三菇 - 总结------------------
3.1 总结
到这里,整篇论文的核心思想已经说清楚了。本论文主要是提出了一种可以用于多人人体关键点检测的CPN网络架构,并实验证明了其可行性,为后续发展奠定了基础
简单总结一下本文就是先罗列了一下该论文的摘要,再具体介绍了一下本文作者的思路,也简单表述了一下,自己对整个CPN网络架构的理解。希望大家读完本文后能进一步加深对该论文的理解。有说的不对的地方也请大家指出,多多交流,大家一起进步~😁