人脸关键点检测之Facial landmark detection using Multi-Task Learning

2014 ECCV的paper

1. Introduction

作者认为,人脸关键点检测不是一个孤立的问题,应该与其他问题联系起来(比如头的姿势、有无旋转、有无戴眼镜、有没有笑)。

为什么要这样猜想呢?因为人脸处于不同的状态,其特征也是不同的。对于不同的图片,如果CNN能区分出它的状态,那么会更有利于检测关键点。比如侧脸和正脸的关键点的位置是不同的。有没有旋转,关键点的分布也是不同的。
这里写图片描述

因此,本文提出一种多任务学习的方法进行关键点检测。

传统的人脸关键点检测分为两种方法:
基于回归的方法;模版拟合的方法(template fitting method)
基于回归的方法:
直接利用图像特征预测关键点的坐标。
不断迭代精修预测的坐标。
因此,第一次预测很关键。(本文优势在于不需要关键点位置的初始化)
模版拟合的方法:
事先构建一些模版来拟合输入图像

与本文方法最相近的一种方法:Cascade CNN(deep convolutional network cascade for facial point detection)
需要事先对人脸进行分块,对不同块用不同的CNN
显得比较笨重,本文不需要分块,也不用级联

multi-task learning:
也就是本文的方法,在许多计算机视觉问题中,多任务学习已经被证明很6。

3. Task-Constrained Facial Landmark Detection

3.1 Problem Formulation

(1)传统的多任务学习最终要实现的是所有任务的性能最大化。
假设我们有T个任务,则训练网络的目标函数是:
这里写图片描述
其中损失函数选择中,选择欧几里得损失作为回归损失,选择hinge loss作为分类损失。公式第二项为正则项。

(2)本文,则是最优化主要任务即可,也就是人脸关键点检测。
即:
这里写图片描述

详细点:
这里写图片描述

当然,这里的分类损失用的是交叉熵损失。

训练网络时,利用多个任务的损失对网络进行更新。

3.2 Learning Task-Constrained Deep Convolutional Network

early-stopping:
为了防止辅助任务过拟合,从而损害主要任务(人脸关键点检测),扰乱权重的良好更新,我们进行一个既有效率又有效果的early stop。
因为一开始,用多任务约束是为了防止损失函数陷入局部最小点。
但不同任务收敛速度不同,如果辅助任务已经没有利用价值了,它们就不该再训练了。

3.3 Architecture

4个卷积层+1个FC层
这里写图片描述

猜你喜欢

转载自blog.csdn.net/leewanzhi/article/details/80259583