论文:CVPR2017,源码开放
概述:DAN-Deep Alignment Network,发表于CVPR-2017。以往级联神经网络输入的是图像的某一部分,与以往不同,DAN各阶段网络的输入均为整张图片。当网络均采用整张图片作为输入时,DAN可以有效的克服头部姿态以及初始化带来的问题,从而得到更好的检测效果。之所以DAN能将整张图片作为输入,是因为其加入了关键点热图(Landmark Heatmaps),关键点热图的使用是本文的主要创新点。(转载:https://blog.csdn.net/u013948010/article/details/80520540)
主要贡献:
1)引入了关键点热图,从而可以使用整张人脸提升实验效果,而避免了使用人脸局部图像块,导致的陷入局部极小值;
2)结果鲁棒性强;
3)开放了源码和网络结构;
以下根据论文摘出文中重点:
文中指出DAN(Deep Alignment Network)是受了Cascade Shape Regression(CSR)方法的启发:图像会得到一个脸部形状的初始化估计,通过若干次的迭代,从而得到最终的结果;而二者又是有区别的,区别在于:CSR使用关键点周围的图像块周围的特征,而DAN使用的是整脸特征;整体框架图如下:
DAN每个阶段都会有三个输入:输入图片(input image I),关键点热图(Ht),和特征图(Ft):输入图片I会被当前的关键点估计旋转(warped),从而与正则形状(canonical shape)S0对齐,而特征图Ft是由先前t-1阶段的dense layer和penultimate layer 产生;
first stage,将输入图作为初始化关键点,而这些关键点是用平均脸形状S0在图像中间位置产生的;
在单个阶段,DAN包含一个前馈神经网络(a feed-forward neutral network)和一个connection layer,前馈神经网络包括transform estimation layer ,image transform layer,landmark transform layer, heatmap generation layer;前馈神经网络用于估计关键点的位置,而connection layer用于产生下一阶段的输入;整个connection layer的结构如下图:
3.1)前馈神经网络
前馈神经网络的结构入下表所示:
pooling使用的是max pooling,每个卷积层使用batch normalization和rectified linear units(ReLU)。同时在第一个全连接之前加入了一层dropout层,最后一层用于梯度更新,估计当前的关键点;
3.2)noramlization to canonical shape
DAN会在每个阶段都对图像进行转换,以致于当前的关键点估计与正则脸形状(canonical face shape)S0对齐,正则步骤(normalization step)保证了DAN产生的转换与整体的转换结果保持不变性(this normalization step allows the further satges of DAN to be invariant to a given family of transforms);the transform estimation layer 用于估计t阶段输出用于Tt+1阶段的参数。
... ...
3.3)Landmark heatmap
关键点热图就是关键点位置的强度的图像,当远离关键点后,强度就变弱了。使用关键点热图可以参考先前阶段的关键点估计结果;
3.4)特征图层
特征图层Ft由dense layer产生,图3展示了相应的特征图:
3.5)训练阶段
the first stage:DAN训练知道验证误差停止改善;
接下来,connection layers和the second stage将被添加进入并进行训练,呆验证误差不再改善就停止训练;
DAN最小化下面的函数用于关键点那位置误差的归一化