An All-In-One Convolutional Neural Network for Face Analysis

https://arxiv.org/abs/1611.00851

摘要

我们提出了一个多用途的算法,使用单一的深度卷积神经网络(CNN)同时进行人脸检测,人脸对齐,姿态估计,性别识别,微笑检测,年龄估计和人脸识别。本文提出的方法是一个多任务学习框架,该框架规范了CNN的共享参数,并在不同领域和任务之间建立协同作用。大量的实验表明,该网络对人脸有更好的理解,并且在大多数任务中都取得了最先进的结果。

1 引言

  人脸分析在人脸识别、情绪分析、生物特征分析、安全等方面都是一个具有挑战性和积极研究的问题。虽然使用基于cnn的方法后,无约束人脸检测和人脸验证等少数具有挑战性的人脸分析任务的性能有了很大提高,但由于缺乏大量公开的训练数据,人脸对齐、头部姿态估计、性别和微笑识别等任务仍然具有挑战性。此外,所有这些任务都被当作单独的问题来处理,这使得它们在集成到端到端系统时效率低下。例如,一个典型的人脸识别系统需要从给定的图像中检测并对齐人脸,然后才能确定其身份。这将导致不同模块之间的错误累积。即使上述任务是相关的,现有的方法也没有利用它们之间的协同作用。最近有研究表明,联合学习相关任务可以提高单个任务[59],[36],[5]的表现。
  在本文中,我们提出了一种新的CNN模型,它可以同时解决人脸检测、特征点定位、姿态估计、性别识别、微笑检测、年龄估计和人脸验证与识别等任务(见图1)。我们选择这组任务是因为它们的应用范围很广。我们在一个多任务学习(MTL)框架(Caruana[3])中联合训练一个CNN,这样CNN的较低层的参数在所有任务之间共享。通过这种方式,较低的层学习了所有任务的通用表示,而较高的层对给定的任务更具体,这减少了共享层中的过度拟合。因此,我们的模型能够学习不同任务的鲁棒特征。使用多个任务使网络能够有效地了解来自不同分布的数据之间的相关性。这种方法在端到端系统中节省了时间和内存,因为它可以同时解决任务,并且需要为每个任务存储一个单一的CNN模型,而不是单独的CNN。据我们所知,这是第一个使用一个CNN以端到端方式同时解决多种面部分析任务的工作。
在这里插入图片描述
图1:该方法可以同时检测人脸,预测任何无约束的人脸图像中的特征点位置、位姿角度、微笑表情、性别、年龄以及身份。
  我们使用Sankaranarayanan等人[41]为人脸识别任务训练的CNN模型初始化网络。我们认为,一个预先训练过人脸识别任务的网络具有较细的人脸信息,可以用来有效地训练其他人脸相关任务。特定任务的子网络从这个网络的不同层分支出来,取决于它们是依赖于脸部的局部信息还是全局信息。完整的网络经过端到端训练后,可以显著提高人脸识别性能和其他人脸分析任务的性能。本文对其进行了研究:
1)我们提出了一种新的CNN架构,可以同时进行人脸检测、特征点定位、姿态估计、性别识别、微笑检测、年龄估计和人脸识别与验证。
2)设计了一个MTL训练框架,使网络参数规范化。
3)对于这些任务中的大多数,我们在挑战无约束数据集方面取得了最先进的性能。
  Ranjan等人[36]最近提出了HyperFace,可以同时完成人脸检测、特征点定位、姿态估计和性别识别等任务。本文的方法与HyperFace有以下几个不同之处。首先,我们另外解决了微笑检测、年龄估计和人脸识别的问题。其次,我们的MTL框架通过在多个数据集上进行训练,利用了基于领域的正则化,而HyperFace只在AFLW[24]上进行训练。最后,我们使用来自人脸识别任务[41]的权值来初始化我们的网络,而HyperFace网络使用来自AlexNet[25]的权值来初始化。
  本文组织如下。第二节回顾了密切相关的工作。第三节详细描述了所提出的算法。第四节提供了我们的方法对挑战数据集的所有任务的结果。最后,第五部分对全文进行了总结,并对今后的工作进行了简要的讨论。

2 相关工作

  Caruana[3]首先对多任务学习进行了详细的分析。此后,有几种方法利用MTL来解决计算机视觉中的许多问题。在[59]中提出了联合学习人脸检测、特征点定位和姿态估计的方法,随后扩展到[60]中。它使用了混合树模型和共享的部分池,其中一个部分代表一个特征点。最近,一些方法已经将MTL框架与深度cnn相结合来训练人脸相关的任务。Levi 等[27]提出了一种同时估计年龄和性别的CNN。HyperFace[36]通过融合CNN的中间层来改进特征提取,训练一个MTL网络用于人脸检测、特征点定位、姿态和性别估计。Ehrlich等人[10]提出了一种多任务受限的Boltzmann 机制来学习面部属性,Zhang等人[56]将其与头位估计和面部属性推断联合训练,改进了特征点定位。虽然这些方法在小任务集上执行MTL,但它们不允许像本文所提议的那样训练大量相关任务集。
  为了改进个人的面部分析任务,已经进行了重要的研究。目前基于深度CNNs的人脸检测方法,如DP2MFD[35]、Faceness[50]、Hyperface[36]、Faster-RCNN[20]等,明显优于TSM[59]、NDPFace[30]等传统方法。
  由于缺乏足够的训练数据,目前只有少数方法将深度cnn用于人脸对准任务[56]、[26]、[58]、[36]。现有的特征点定位方法主要集中在近正脸[2]、[38]、[22],这些位置的关键点都是可见的。最近的一些方法,如PIFA[21]、3DDFA[58]、HyperFace[36]和CCL[57],已经探索了不同位姿角度下的面部对齐。
  姿态估计的任务是推断一个人的头部相对于相机的方向。除了TSM[59]、FaceDPL[60]和HyperFace[36]之外,对于无约束图像的这个任务研究并不多。
  将无约束图像的性别分类和微笑分类看作是面部属性推理的一部分。最近,Liu等[31]发布了CelebA数据集,该数据集包含约20万张近正面图像,包含性别、微笑等40个属性,加速了[46]、[36]、[55]、[10]这一领域的研究。世界的人脸[13]挑战数据集进一步加速了[28]、[44]、[53]不同尺度、不同光照、不同姿态的面向任务的研究。
  年龄估计是一项根据一个人的面部图像来确定其真实年龄或表面年龄的任务。在使用深度CNNs[40],[6]进行表观年龄估计的挑战上,很少有方法已经超越了人为误差。
  人脸验证是预测两张脸是否属于同一个人的任务。最近的方法如DeepFace [43], Facenet [42],VGG-Face[34]通过训练数百万注释数据的deep CNN模型,显著提高了LFW[17]数据集的验证精度。然而,对于视角和光照变化较大的无约束人脸,这仍然是一个具有挑战性的问题。为了解决这个问题,我们使用MTL框架对CNN参数进行正则化,只使用50万个样本(CASIA[51])进行训练。

3 提出的方法

  我们提出了一种能同时检测人脸、提取关键点和姿态角度、检测笑容表情、年龄和性别的多用途CNN。此外,它还为每个人脸分配了一个身份描述,可以用于人脸识别和验证。该算法在MTL框架中进行训练,在不同的人脸相关任务之间建立协同作用,提高了每个任务的性能。在本节中,我们讨论了MTL在人脸分析方面的优势,并提供了网络设计、训练和测试的详细程序

  1. 多任务学习
    通常,人脸分析任务需要一个裁剪过的人脸区域作为输入。深度CNN对人脸进行处理,获得一种表示,并提取与任务相关的有意义的信息。根据[52]的报道,CNN的底层学习的特征与一般的面部分析任务是相同的,而上层则是针对个别任务的。因此,我们在不同的任务之间共享CNN的低层参数,从而产生一个通用的人脸表示,然后由特定任务的层处理生成所需的输出(图2)。Goodfellow等[14]将MTL解释为深度CNN的正则化方法。在我们的框架中使用的MTL方法可以通过以下两种正则化来解释
    在这里插入图片描述
    图2:深度CNN架构下的一般多任务学习框架。较低层在所有任务和输入域之间共享。
    1)基于任务的正则化:将给定任务 t i t_i ti在共享参数 θ s θ_s θs和与任务相关的参数 θ t i θ_{t_i} θti下的代价函数记为 J i ( θ s , θ t i ; D ) J_i(θ_s,θ_{t_i};D) Ji<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值