【论文】人脸特征点检测:TCDCN

姚星宇
2023-12-01

#Learning and Transferring Multi-task Deep Representation for Face Alignment

#摘要

通过多任务学习提升检测鲁棒性。特别的,使用与人脸相关的属性共同学习人脸的特征点位置。
tasks-constrained deep model:解决不同的任务有不同特点这个问题
task-wise early stopping criterion :解决不同的收敛速度问题,来使得任务能够被收敛。

#介绍
面部特征点检测(Facial landmark detection)
当一个小孩在笑的时候,他的嘴巴一定是张开的,能够有效利用这种内在属性,能够使得我们更
好的检测嘴角位置。当做出头部偏转的时候,两眼之间的距离将会变小。若不考虑上述这种信息的影响而单独的做Facial landmark detection,那将不会得到很好的效果。本文的主要目的是优化Facial landmark detection通过一些相关辅助任务,包括:头部姿势估计,性别,年龄,面部表情,面部属性推理.然而这些属性之间学习的难易程度是不同的,不如判断佩戴眼镜属性要比是否在笑要容易的多。所以当某个任务要比其他人物更早的overfitting,导致整个网络失效。
tasks-constrained deep model:解决不同的任务有不同特点这个问题
task-wise early stopping criterion :解决不同的收敛速度问题,来使得任务能够被收敛。

###贡献
我们第一次利用相关信息指导Facial landmark detection,我们进一步表明,所提议的模型隐式地
捕获了任务相关性。我们能够通过TCDCN方法得到的5-point检测简单的转换到更多的点比如68个。

#相关工作
主要分为回归和模板匹配,回归一般是基于initial然后迭代,所以这个initialization是重要的。而我们的方法不需要initial,将raw pixels作为输入。我们的工作比cascadedCNN要优秀,我们不用对输入做pre_partition,也不用cascade。已经存在的多任务学习不适用于当前任务,因为他们将不同的任务的收敛性能考虑为一致的。任务中没有early stop这种策略

#Tasks-Constrained Facial Landmark Detection
公式解析
多任务学习的目标是优化如下公式:

![这里写图片描述](https://img-blog.csdn.net/20180531162946390?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

与传统的多任务学习不同,他们是要使所有任务的性能最大化,而我们是优化主要任务(Facial landmark detection)
其他的数量不定的手段都是用来辅助的。

![这里写图片描述](https://img-blog.csdn.net/20180531163019369?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

在我们的公式中,不同种类的loss函数能够被优化。而已经存在的方法中认为loss函数在所有任务中都是一样的。已经存在的方法中对于不同的任务可以有不同的输入表征,而我们的公式中要求输入是一致的,当然这一点与我们的任务是契合的(因为我们的输入都是一样的:人脸)。
我们用上述的公式2,作为基础进行如下分析。
inputs {xi}N i=1
labels {yr i , yi p, yi g, yi w, yi s}N i=1,
yr i ∈ 十维,5个特征点的两维坐标(centers of the eyes, nose, corners of the mouth)
yi p ∈ {0, 1, …, 4}表示五种不同的姿势(0◦, ±30◦, ±60◦)
yi g, yi w, yi s ∈ {0, 1} 这三个都是二进制属性,表示 ‘gender’, ‘wear glasses’, and ‘smiling’

所以我们用方差来作为Facial landmark detection(回归)的loss函数
所以我们用交叉熵作为辅助任务(分类)的loss函数

![这里写图片描述](https://img-blog.csdn.net/20180531163050433?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

#Learning Tasks-Constrained Deep Convolutional Network
已经存在的方法通过探索不同任务之间的关系,比如学习不同任务权重的协方差矩阵等等,然后
那种方法只适用于任务间的loss函数一致的情况,不适用于我们这个任务。
Task-wise early stopping:当其中某一个辅助任务的loss不再下降,那就把这个辅助任务剔除。
确定在什么时候自动stop一个辅助任务的准则如下。

![这里写图片描述](https://img-blog.csdn.net/20180531163158786?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

k表示一段时间k次的迭代。公式的前半部分,当这段时间内loss下降的快的话,前半部分的值就
小。那么这个对应的a任务还是有效的。所以这部分要是大说明a任务很有可能需要stop了。公式的后半部分表示越重要的任务这个值越小,越不会停止。所以说当着两块相乘超过某个阈值的时候我们就把对应的a任务stop。

#Transferring TCDCN for Different Facial Landmark Configuration
先用上述的方法训练(用的是5个点的数据集),然后做微调,注意的点是微调的时候,辅助任务
就不要了。虽然微调时没有用到辅助任务,但是却继承了辅助任务对于面部情况的鲁棒性。

 类似资料: