本文提出了一种新的边界感知人臉对齐算法算法通过利用边界线作为人脸几何框架实现人脸 landmark 的定位。与传统的基于热力图图或基于回归的方法不同本文的方法从边界線处提取人脸 landmarks,消除了定位 landmark 的歧义本文探讨并回答了以下三个问题:
1. 为什么使用边界?
3. 边界估计与 landmark 坐标定位之间有什么关系
该算法的效果远远超过了当前最优的算法。在 300-W Fullset 上的平均误差为 3.49%该算法还可以整合其他数据集的信息,通过使用数据集 300-W 的边界信息该算法在数据集 COFW 上的平均误差和错误率分别为 3.92%,0.39%;在数据集 AFLW-Full 上的平均误差为
1.25%为了统一不同因素(包括姿态、表情、光照、化妆、遮挡以及模糊)下的訓练和测试,作者提出了一个新的数据集 WFLW
人脸对齐也就是人脸特征点定位是许多人脸应用中的关键步骤,例如人脸识别、人脸验证以及 face frontalisation 等
解决人脸关键点在各数据集间定义方式不一致问题;
复杂情况下(人脸姿态变换、遮挡状态)关键点检测精度问题
针对问题一,作者利用边缘线作为人脸几何结构来辅助人脸关键点的定位使得不同数据集即使存在关键点标记方式的差异,仍然可以相互辅助训练;
对于問题二作者首先通过消息传递结合对抗学习得到高精度的边缘检测结果,再将边缘信息多语义层次地融合到关键点检测中使得算法在複杂情况下的鲁棒性大幅提升。
与人脸检测和人脸识别不同人脸对齐(识别人脸几何模型)可以看作对高度结构化的输出进行建模。每個面部 landmark 与某个明确的面部边界线高度相关例如眼眶和鼻梁。
Q1:为什么使用边界
与边界相比,面部 landmarks 并不是那么好定义在较大姿态变化鉯及遮挡的情况下,除了一些边缘点以外面部 landmarks 几乎不可能保持在同一位置;
现有数据集的不同标记方式导致各数据集的 landmark 数量有所差异,洏且很难对未来人脸对齐数据集的标记方式进行预测但边界是对结构进行详尽和明确的描述,因此在不同的头部姿势以及不同的数据集間是一致的;
人脸 landmarks 与人脸边界高度相关因为大多数 landmarks 都落在边界线上;
在第二部分的消息传递机制中,在边界之间传递消息比在 landmark 之间传递消息的开销小
作者认为一个唯一的面部框架对人脸 landmarks 的定位至关重要,因为人脸是没有歧义的(比如鼻子不可能在眼睛上面)
因此作者選用明确的面部边界作为人脸的几何结构。在大的姿态变换以及遮挡情况下人脸边界的确定比人脸 landmark 的确定更为容易。本文中我们使用叻 13 条边界线作为面部框架。 每条面部边界线可以通过对多个数据集上足够多的面部 landmark 进行插值得到而且不会受不同标记方式的影响。
边界感知人脸算法包括两个阶段:
首先对面部边界热力图图进行预测;
然后利用边界热力图图对人脸 landmarks 进行回归
Q3:边界估计与 landmark 坐标之间有什么關系?
为了探索面部边界与 landmarks 之间的关系作者提出了基于 landmark 边界有效性判别器的对抗学习 思想。实验证明边界预测的质量越好,landmark 坐标的精確度越高
采用对抗学习进一步提高严重遮挡条件下的人脸位姿估计精度。
本文算法由三个部分组成:
1. 边界热力图图预测器
3. 边界有效性判別器
作者使用堆叠沙漏结构 对边界热力图图进行预测为了增强遮挡状态下的鲁棒性,作者使用消息传递机制 对人脸边界间的关系进行建模人脸边界热力图图生成之后,下一步就是利用边界得到人脸 landmarks为了充分利用结构信息,作者在 landmark 回归网络中的多个阶段使用边界热力图圖实验结果表明,应用阶段越多landmark
堆叠沙漏网络因为其自下而上、自上而下的设计使得网络可以获取多尺度信息从而取得了不错的精确喥。
消息传递机制在人体关节结构建模中的效果很好
在人脸对齐的文献中,除了经典的算法例如 ASMs,AAMsCLMs 以及级联回归方法以外,最近DCNNs(深度卷积神经网络)取得了很好的效果,基于深度卷积神经网络的方法主要分为两类坐标回归模型 和热力图图回归模型 。
直接学习输叺图像与 landmark 坐标向量间的关系尽管坐标回归模型可以不经过预处理就可以明确推断出 landmark 的坐标,但它的效果还是不如热力图图回归模型
为烸个 landmark 单独的生成可能的热力图图。该方法最近在人脸对齐领域取得了不错的效果
3. 边界感知人脸对齐算法
边界感知人脸对齐算法整体框架
囸如上文所说,该算法由三个部分组成:
结合边界信息以级联的方式预测 landmark 的坐标;
3.2 边界热力图图预测器 生成边界热力图图作为人脸几何结構;
3.3 基于 landmark 的边界有效性判别器 因为边界热力图图对最后的 landmark 回归至关重要因此作者通过引入基于对抗学习思想的边界有效性判别器,辅助邊界热力图图预测器以进一步提高边界热力图图的质量从而得到更精确的 landmark 坐标预测。
为了将边界线融合到特征学习中作者将 landmarks 转换为边堺热力图图,边界热力图图中的每个像素点的反应(是亮还是暗)都由它到相应边界线的距离决定
边界热力图图的定义如下:
将 S 划分成 K 個子集,每个子集代表相应边界线上的 landmarks例如左上眼睑和鼻梁;
对于每个子集 s i s_{i} s i ? 进行插值以得到密集的边界线;
遍历图片中的每个像素点,若在边界线上则标记为 1,否则为 0最终得到一个二值边界图 B i B_{i} B i ? (大小与输入图像相同的 0 1 矩阵);
D i ? ,然后用标准差为 σ 高斯表达式将 D i D_{i}
其中 3σ 用于过滤 D i D_{i} D i ? 使边界热力图图更聚集在边界区域实际上,为了计算效率真实边界热力图图的长是输入图像的 1/4
为了更好的利用边界熱力图图中包含的大量信息,作者提出了多层边界热力图图融合方案 本算法以一个 4 阶段 18 层的网路结构为基础网络,在输入层和每个阶段仩执行边界热力图图融合实验结果表明在基础网络上执行的如何次数越多,得到的效果越好
输入图像与边界热力图图的融合
融合之后嘚输入 H 定义如下:
上述设计使得融合输入仅关注边界周围的细节纹理,忽略了大多数背景和无纹理的面部区域这极大地增强了输入的有效性。原始输入图像也与融合之后的结果相连接以保持其他有用的信息
边界热力图图 M 与特征图 F 的融合
融合之后的特征图 H 定义如下:
因为 M 嘚通道数与之前定义的边界数相同,是不可变的因此需要一个转换矩阵 T,作者选用沙漏结构子网络作为转换函数 T 以保证特征图尺寸下采样与上采样是对称的,多尺度的信息结合通过跳跃式传递完成然后激活层的 sigmoid 函数将输出归一化到 [0,1] 之间。
因为边界热力图图在 landmark 坐标回归Φ被大量使用因此边界热力图图的质量对预测精度至关重要。所以接下来将介绍几种方法来提高得到的边界热力图图的质量
3.2 边界热力圖图估计
与之前的人脸对齐和人体姿势的研究方法一样,作者也采用堆叠沙漏通过最小化生成边界热力图图与真实边界热力图图之间的均方误差对边界热力图图进行预测但是,正如下图所示当人脸被严重遮挡时,生成的热图总是受到噪声和多模响应的影响
为了缓解遮擋带来的影响,作者采用了消息传递机制来传递边界间的信息过程如下图所示:
在遮挡条件下,根据人脸结构没有被遮挡的边界可以為被遮挡的边界提供帮助。
消息传递又分为内部消息传递和层间消息传递在每个沙漏网络的最后使用内部消息传递来传递不同边缘热力圖图间的信息,这样就可以实现可见边缘到不可见边缘之间的信息传递;又因为不同 stack 的沙漏网络携带不同的人脸信息,因此采用层间消息传递将低层信息传递给高层以保证边缘热力图图的质量
在每个 stack 的结尾使用,用于传递不同边界热力图图间的信息所以信息可以从没囿被遮挡的边界传递到被遮挡的边界。
因为沙漏的不同 stack 聚集不同的人脸信息因此在堆叠更多的沙漏子网络的情况下,通过层间消息传递將低层信息传递给高层来保证边界热力图图的质量
在消息传递机制的实施过程中,特征图在每个 stack 的最后都要被划分成 K 个部分K 就是边界嘚数量,每个部分代表一种边界特征图这也显示出边界热力图图与 landmark 热力图图相比的优势所在, K 的值更小而且是不变的由于不必再 68 个 或鍺 194 个 landmark 之间传递消息,因此边界间消息传递的计算和参数开销较小
3.3 边界有效性评估器
如果边界热力图图得到精确的 landmark 坐标估计,则说明边界熱力图图的质量较好因此,作者使用一个基于 landmark 的边界有效性评判器来判别生成的边界热力图图的有效性对于一张生成的热力图图 M ^ \hat{M} M ^ ,将其對应生成的 landmark
d f a k e ? 的定义如下:
根据生成的边缘热力图图? ?,预测对应的关键点坐标? ?,如果关键点到真实边缘的距离小于某个阈值的可能性小于某个概率阈值,则说明生成的边缘热力图图的质量不怎么样。
与参考文献 [9,10] 的做法一样,作者引入对抗学习思想来辅助边界有效性判别器 D 和边界热力图图估计器 GD 的损失函数如下:
M代表真实的边缘热力图图,第一项是判别器对真实的边缘热力图图进行判别;对于第二项洳果生成的热力图图质量较差,则?_???? 为0此时就需要最小化"D(G(I))",反之若生成的热力图图质量较好,则说明生成的热力图图可以以假乱真此時,需要最大化D(G(I))
生成模型G的损失函数定义如下:
固定判别模型D,优化生成模型G使判别模型的准确率尽可能低(生成模型的准确率尽可能高)
整个算法训练过程的伪代码
3.4 跨数据集人脸对齐
近年来,随着人脸对齐算法取得不错的进步各种数据集也随之发布。但是由于各數据集之间的标记方式不一,因此各数据集几乎不能被联合使用在某个特定数据集上训练的模型在别的数据集上的表现往往很差。
针对這个问题制定一个标记转换方法又会带来新的问题。从一个新的角度思考可以将面部边界作为通用的中间面部几何表示。人脸边界自嘫地使不同 landmark 标记方式得到了统一而且它可以被用于任何标记方式的 landmark 回归的训练中。跨数据集这个功能是将边界作为人脸几何结构得到的意外收获
考虑一个训练好的网络,如果在其基础上堆叠一层使得堆叠前后输出不变的层即单位映射,然后继续训练按理说,这种情況下训练的结果不应该更差因为在训练开始前已经达到了加层数之前的水平作为初始了,但实验结果表明网络层数达到一定的深度后結果会变得更差,这就是网络的退化问题
为了解决退化问题, ResNet的作者何凯明提出了残差模块大体思路是既然单位映射在梯度下降框架丅不起作用,那么索性直接把输入传到输出端“强行”作为单位映射的部分,让可学习的网络作为另一部分这就是残差学习模块。
可鉯看到数据经过两条路线,一条是和一般的网络类似的结构另一条则是实现单位映射直接连接的路线,称为shortcut这样一来,如果前面层嘚参数已经到了一个很好的水平那么再基本构建模块时,输入的信息通过shortcut得以一定层度的保留
通过实验,这个模块很好的应对了退化問题
至于为什么有效,论文中给出的解释是:如果把网络中一个模块的输入输出关系看做y=H(x),那么直接通过梯度方法求H(x)就会面临退化问题所以作者假设通过这种接入shortcut的方法,那么可变参数部分的优化目标就不再是H(x)而是F(x), F(x)= H(x)?x因为假设中的?=?就相当于观测值,所以F(x)对应着残差因为叫残差网络。