文章提出将离散的人脸的关键点组合连接成边缘轮廓辅助面部关键点的回归。这里的Boundary是通过人脸对应的关键点连线生成的,细节部分可以看原文。另外,与原本的Stacked Hourglass Networks实现不同的地方是在上图(a)中加入了MPL来保证生成heatmap的质量。同时为了保证生成的heatmap更加接近真实的Boundary还用了鉴别器来提供表示boundary真实性的Loss。
Message Passing Layer接在每一个Hourglass子网络的后面分成K个分支,每个分支表示一类边缘特征图。这里的MPL在CVPR2016的 Structured feature learning for pose estimation 中,作者基于人体关节之间的空间相对位置比较稳定,提出双向树结构模型使得人体关节处的特征通道可以收到其他关节处的信息。
关节相对位置的关联性可以用于强化单个关节的识别准确度,但是为了达到这种变化能够刚好把小臂的识别热点移动到它上边那个胳膊肘的位置然和再和已经检测到胳膊肘的特征图叠加来强化这个胳膊肘的位置,这种相互印证来促进准确找到关节位置,也可以通过这些相互印证来抑制错误是别的关节点。而这种位置变换核需要通过学习来调整到最佳的状态,所以作者又设计连续的三个7x7的卷积核来学习这种变换核。
这种位置偏移卷积核的提出很大程度上基于物体形状稳定的假设,并且有直观的设计思路。基于双向的树形结构能够使这种学习到位置偏移卷积有更好的鲁棒性。
Message Passing Layers
在不同的stacked hourglass net 的输出中,提到的轮廓特征可能会比较不一致,但是最终输出的heatmap应该能比较干净地突出其目标的轮廓特征,所以采用MPL的方式将各个阶段输出的heatmap进行融合。
其中表示串联,表示在阶段提取第个轮廓热度图的卷积核,所有的轮廓组合在一起就有了,通过MSE作为Loss
Heatmap生成质量度量
加入Boundary的目的是为了更好地估计关键点的坐标位置,如果这个生成的Heatmap有助于这一过程,那就是一个质量好的Heatmap。但是这很难度量,所以采用GAN中常用的鉴别器来对这种质量进行度量。
所有的关键点都应落在轮廓上,每个轮廓都是由几个关键点组成,比如眼睛的轮廓就是由几个眼睛周围的关键点连接而成的,所以这个轮廓和关键点的位置就算不重合也不能偏离地太远。Pr表示概率表示概率阈值。
这样在距离阈值的限制下,再通过鉴别器可以判断生成的heatmap是否足够真实
这里的是我们通过真实的关键点生成的轮廓heatmap。这样可以把整个模型再简化地写成生成对抗的方式,也是有一个来生成heatmap,由分辨这个heatmap的真假