论文阅读(11)Facial Landmark Detectio

2019-06-17  本文已影响0人  续袁

1.作者相关

ECCV2014

2. 摘要

由于遮挡和姿势变化的问题,面部关键点的检测一直受到阻碍。我们不再将检测任务视为一个独立的问题,而是研究通过多任务学习提高检测鲁棒性的可能性。具体地说,我们希望用异质但微妙相关的任务去优化人脸关键点检测,例如头部姿势估计和面部属性推断。这是不平凡的,因为不同的任务有不同的学习困难和收敛速度。为了解决这一问题,我们提出了一种新的任务约束深度模型,通过提前停止任务来促进学习收敛。广泛的评估表明,所提出的任务约束学习(i)优于现有的方法,特别是在处理具有严重遮挡和姿势变化的人脸时,以及(ii)与目前基于级联深度模型的最新方法相比,大大降低了模型复杂性。

2.2 主要贡献

Multi-task learning is not new (see Section 2), but to our knowledge, this is the first attempt to investigate how facial landmark detection can be optimized together with heterogeneous but subtly correlated tasks. We systematically show that multiple tasks share and learn common deep layers, so the representations learned from related tasks facilitate the learning of the main task. We further show that tasks relatedness are captured implicitly by the pro-posed model. The proposed approach outperforms the cascaded CNN model and other existing methods. Finally, we demonstrate the effectiveness of using our five-landmark estimation as robust initialization for improving a state-of-the-art face alignment method.
(1)多任务学习并不新鲜,但据我们所知,这是第一次尝试研究人脸关键点检测如何与异质但微妙的相关任务一起优化。
(2)我们系统地展示了多个任务共享和学习共同的深层次,因此从相关任务中学习的表示有助于学习主要任务。进一步证明了该模型隐式地捕获了任务的相关性。
(3)该方法优于级联CNN模型和其他现有方法。最后,我们证明了使用我们的五个关键点估计作为鲁棒初始化改进目前最先进的面部对齐方法的有效性。

3.主要思想

3.1 创新点

(1)将MTL(多任务学习)结合CNN应用到人脸关键点检测 ;
(2)为解决各任务有着不同收敛速度而导致的优化难问题,提出针对多任务学习的early stopping。
(3)TCDCN是借助了MTL(多任务学习)机制,有效将面部属性(如:性别,是否戴眼镜,微笑与否,面部姿势)结合到人脸关键点检测任务上。
理论支撑:在进行人脸特征点检测任务时,结合一些辅助信息可以帮助更好的定位特征点。

image.png

4.主要方法

4.1 模型

作者将人脸关键点检测(5个关键点)与性别,是否带眼镜,是否微笑和脸部的姿势这四个子任务结合起来构成一个多任务学习模型,模型框架如图所示:


TCDCN网络结构

网络输入为40X40的灰度图,经过CNN最终得到2X2X64的特征图,再通过一层含100个神经元的全连接层输出最终提取得到的共享特征。该特征为所有任务共同享用,对于关键点检测问题,就采用线性回归模型;对于分类问题,就采用逻辑回归。

4.2 损失学习函数

(1)传统的多任务学习(multi-task learning)把每个任务都赋予相同的权重 :

image.png

其中,f(x^t;w^t)表示x^t与权值矩阵w^t相乘之后经过函数f(∗)l(∗)表示损失函数,Φ(⋅)是正则项。可以看到对于各任务t而言,其重要性是相同的,

(2)但是在多任务学习中,往往不同任务的学习难易程度不同,若采用相同的损失权重,会导致学习任务难以收敛。文章针对多任务学习中,不同学习难度问题进行了优化,提出带权值的目标函数:

image.png

(3)针对人脸关键点检测任务,本文结合了四个子任务,分别是:性别、是否带眼镜、是否微笑和脸部的姿势,不同的任务具有不同的loss,特征点检测是平方和误差,而其它分类任务是交叉熵误差,因此最后的目标函数为:


image.png

从这个式子可以看到,第一项是平方和误差,表示人脸关键点损失函数;第二项是分类任务,采用的是交叉熵误差,不同的分类任务loss相加;第三项即正则项,惩罚大权重。在训练时,各个任务使用相同的特征,只有在最后一级才根据任务的不同做不同处理(线性回归或者分类)。值得注意的是,这个式子中的\lambda ^a论文中并未给出具体数值,可以认为是一个超参数,需要自行调参,我估计这个数值对结果有一定的影响。

4.3 task-wise early stopping

解决的问题:不同的任务有不同的特点,不同的收敛速度
当某个子任务达到最好表现以后,这个子任务就对主任务已经没有帮助,就可以停止这个任务。文章给出自动停止子任务的计算公式,如下:

image.png

其中,E^a_{tr}表示任务a的训练误差, E^a_{val}表示任务a的验证误差,ε为阈值,第一项表示训练误差的趋势,第二项表示泛化误差与训练误差之比,当两项之积大于阈值 ,则该任务停止。

t表示当前的迭代次数,k控制长度为k的训练间隔。“med”表示计算中值的函数。式(5)中的第一项表示训练误差的趋势,如果训练误差在长度为k的时期内迅速下降,则第一项的值很小,说明训练可以继续进行,因为任务仍然有价值;否则,第一项的值较大,则任务更有可能停止。

第二项度量泛化误差与训练误差的比值。\lambda ^a是第a个任务误差的重要系数,可以通过梯度下降来学习。它的重要性表明,更重要的任务往往具有更长的影响。该策略在多任务下学习深度卷积网络,取得了满意的效果。

5.实验结果

image.png image.png

参考资料

[1] 人脸关键点:TCDCN-Facial Landmark Detection by Deep Multi-task Learning
[2] 人脸特征点检测(四)——Tasks-Constrained DCN(TCDCN)
[3] 人脸特征点检测:TCDCN

代码

[1] http://mmlab.ie.cuhk.edu.hk/projects/TCDCN.html

上一篇下一篇

猜你喜欢

热点阅读