基于自发表情数据集预训练的多任务深度网络表情识别方法

2019-07-25 09:21
计算机测量与控制 2019年7期
关键词:多任务分类器人脸

(1.西北工业大学 电子信息学院,西安 710129; 2.西北大学 信息科学与技术学院,西安 710127;3.西北大学 智能交互与信息艺术研究中心,西安 710127)

0 引言

人脸表情在许多领域中发挥着重要作用[1],如图像理解、新闻分析、个性化推荐,人机交互等。因此,近三十年来,自动人脸表情识别引起了众多学者的关注[2]。人脸表情通常被划分为有限类型,每种类型的特征又因种族、文化、个性等的不同而有很大的差异,因此,人脸表情识别仍然是一个具有很大挑战性的问题。

经典的人脸表情识别方法主要分为三类:(1)主元分析(PCA)[3]和线性判别分析LDA(Linear Discriminant Analysis)[4];(2)主动形状模型ASM(Active Shape Model)和主动表观模型AAM(Active Appearance Model)[5];(3)基于纹理特征的Gabor小波[6]和局部二进制模式LBP[7]等。经典方法的不足之处在于,所用的特征提取方法都是以手工特征为基准进行提取,损失了原图像的很多细节特征。近年来,随着深度学习领域的崛起,卷积神经网络(Convolution Neural Network,CNN)逐渐被运用于图像处理与分析领域[8]。CNN避免了对图像的复杂前期预处理,可以直接输入原始图像,逐层构建一个多层的深度神经网络,让机器自主地从样本数据中学习到特征。特别是VGG face[9]、Googlenet[10]、Resnet34[11]等的表现突出。但是,现有深度神经网络方法大多专注于单个识别任务,然而,现实世界中人脸表情与不同个体的面部形态、头部姿势、外部光照等多种因素交织在一起,为了减弱面部形态对表情识别的影响,文献[12]构建了深度多任务学习框架,该框架以现有深度卷积神经网络模型为基础,用双层树分类器替换输出层的平面softmax分类器,通过利用人脸表情标签和人脸标签共同学习更具辨识力的深度特征,将知识从相关人脸识别任务中迁移至表情识别任务中来,从而减弱面部形态对表情识别的影响,有效提高了人脸表情识别率。然而VGG face[9]、Googlenet[10]、Resnet34[11]等这些模型都不是针对表情识别任务而训练的,如果能用大量表情数据对这些模型进行再次训练,预期能取得更高的识别率。

现有的人脸表情数据集可分为两类。一类专注于六种基本的情绪,即快乐、悲伤、惊讶、愤怒、厌恶和恐惧。例如,MMI人脸表情数据集[13]包含2 000余幅表情图像或帧,50人的表情图像500余幅。日本女性人脸表情(JAFFE)数据集[14]提供了213幅日本女性人脸表情图像,每个对象分别为7个基本表情(6个情绪表情加上中性脸)中的3个或4个例子。另一个类关注于提取人脸表情的细粒度描述。例如,Cohn-Kanade数据集[15]包含单动作单元和基于Ekman提出的面部动作编码系统(FACS)的动作单元的组合。除此之外,还有一些其他的包括一些常见人脸表情的数据集[16-18]。所有这些数据集都面临着两个问题:首先,每个数据集中图像的数量很少;第二,由于表情图像是在人为设置的环境中获得的,而不是自发表情图像。因此,很难学习丰富的表情特征并有效地对表情进行分类。为了克服上述两方面的缺陷,文献[19]基于大型网络图像,结合不同的种族和文化,提出了一种自发人脸表情数据集构建方法。

本文提出基于自发表情数据集预训练的多任务深度网络表情识别方法,首先通过自建自然人脸表情数据集对现有成熟深度网络模型进行预训练,再采用多任务深度学习框架进行表情识别,有效提高了表情识别准确率。

1 自发表情数据集的建立

为了构建表情数据集,参考文献[19]得到如图1所示的框图,在百度和谷歌等搜索引擎中,总共使用7个关键词(即愤怒、蔑视、厌恶、恐惧、幸福、悲伤、惊讶,及其对应英文词语)作为查询词进行搜索。搜索引擎通过每个关键词返回大量图像,得到初步的表情图像数据集。然后通过人脸检测、特征提取、自动过滤和手动过滤四个步骤,得到自然表情图像数据集。下面简要介绍这四个步骤。

图1 构建自然表情数据集基本过程

1.1 人脸检测

目前,Viola-Jones[20]人脸检测算法与其他算法相比,表现出较好的性能(准确性和速度)。因此,在本文中,我们利用该算法通过提取haar特征和设计Adaboost分类器来检测原始数据集中的候选人脸。

1.2 特征提取

局部二值模式(local Binary Patterns, LBP)[21]、局部相位量化(local Phase Quantization, LPQ)[22]和二值统计图像特征(binarized statistical Image Features, BSIF)[23]等三类特征在人脸表情描述上表现较好,所以在这里选择这三类特征作为表情特征。

1.2.1 LBP

LBP描述符是一个髙度区分灰度纹理的描述符。对于图像中的每个像素,二进制代码是通过用中心像素的值对一个圆对称邻域进行阈值计算得到的。

1.2.2 LPQ

LPQ特性是一个模糊的鲁棒图像描述符。LPQ描述符的低频相位分量对中心对称模糊不敏感。因此,LPQ可以使用短期傅里叶变换的相位信息,在图像的每个像素周围的窗口上进行局部计算得到。

1.2.3 BSIF

BSIF特征是属于LBP和LPQ同一家族的二值纹理描述符。但是,BSIF不使用手工设计的滤波器,而是使用一组自然图像来自动学习一组固定的滤波器。这组过滤器是根据从一组训练图像中获取的图像块的统计信息来学习的。

分别提取这三类高维视觉特征并将其映射到不同的特征空间。每个特征空间都用来描述图像的某种视觉属性。由于这些特征是基于直方图的特征,因此用χ2核函数作为直方图的基核。给定图像I和J的两个特征向量u和v,定义χ2核:

(1)

其中:D是特征向量的维度。ui和vi是特征向量u和v的第i维。这样,第c个特征直方图的核函数Kc(I,J)定义为:

Kc(I,J)=e-x2(u,v)/σc

(2)

其中:σc是所有图像对之间的x2距离的平均值。

利用这些不同权重的基核的线性组合来逼近视觉特征的核,并通过交叉验证来确定这些权值。图像之间不同的视觉相似性更精确地表征为:

(3)

其中:τ是图像核的数量。βl≥0是第l个图像核Kl(I,J)的权重,可通过交叉验证来估计。在本文中,τ设置为3,对应三个基本核函数。

1.3 自动图像清理

为了进一步对原始数据集的弱相关图像进行交互过滤,需要在上述初始数据集中显示图像,然后直接删除弱相关图像。在自动图像清理中有三个步骤:

1)釆用近邻传播(AP)[24]算法将图像聚类为多个类别。考虑到2000个左右的图像很难清晰显示,而且很多图像都是相似的,最好将几个有代表性的图像显示给人们,以确定弱相关的图像。所以所有的图像都用AP方法聚类成一些子集,然后选择几个图像作为每个类别的代表性图像。

2)釆用双曲可视化方法,也就是说根据用户的非线性视觉相似性背景,使用双曲线可视化技术显示大量返回的图像,获得初始数据集[25]的全局视图,以帮助用户交互地评估用户的查询意图与初始图像之间的相关性。

3)不相关的图像作为垃圾图像被过滤掉。首先,通过在双曲线可视化空间上点击并拖动鼠标来选择被视为无关的图像;然后,将与每个所选图像高度相似的一些图像作为垃圾图像滤除。

如果认为仍然存在许多不相关的图像,则将AP聚类再次用于剩余图像,并且重复上述交互式过滤过程。

1.4 手动图像清理

通过聚类自动清理后,只有少量图像被错误标记。由于这些图像的数量相对较少,我们选择手工消除这些错误标记的图像。

2 多任务深度卷积神经网络表情识别方法

参考文献[12],得到如图2所示分层多任务学习框架。使用两层树分类器来代替传统深层网络中的平面softmax分类器,利用人脸表情标签和人脸标签来帮助深度网络学习更具辨别力的深度特征。

图2 分层多任务学习框架

对于输入图像I,属于第m类人脸表情的对象图像I的预测概率可以用式(4)计算:

(4)

其中:em表示第m类人脸表情;xe表示人脸表情的深度特征向量;Wm表示人脸表情识别分类器对应第m类表情的权重参数;T表示表示转置;M表示人脸表情类别数;be为偏置参数。

人脸表情识别的预测概率可用于选择特定的人脸识别分类器。 对于对应于第l类表情的低层人脸识别分类器,输入图像I属于第n个人脸类别的预测概率可以表示为式(5):

(5)

其中:fi表示第j类人脸;xf表示人脸的深度特征向量;Vn表示人脸识别分类器对应第n类人脸的权重参数;T表示表示转置;N表示人脸类别数;bf为偏置参数。

由于最终预测概率可计算为P(I∈em)P(I∈fn),因此深层网络的损失函数可以表示为式(6):

(6)

该目标函数旨在最大化人脸表情识别和人脸识别的正确预测概率,因此在每次迭代期间可以联合优化多级分类器中的权重参数。

3 实验结果

首先,采用第二节描述的方法对每类表情收集到3000幅图像,得到共21000幅表情图像数据集。然后,将提出的方法与两个最流行的人脸表情数据集(CK +和Oulu-Caisa)上的现有类似方法进行比较。每个数据集中的图像序列数量如表1所示。

表1 每个数据集中的图像序列分布

所有实验均在HP工作站上进行,该工作站配备Intel i5-7400 CPU,带有8G内存的Nvidia GTX1080;16G内存,512G SSD。所有的实验都在PyTorch平台上进行。

3.1 CK+数据集实验结果

CK+数据集[25]:扩展CohnKanade *(CK+)数据集是用于评估人脸表情识别方法的最常用数据集之一。CK +包含来自123名受试者的593个视频序列,其中有327个被标记。CK+数据集未为每幅图像提供精确的标签,只图像序列有标签,序列中包含了从平静到表情表现峰值的图像。因此通过对应表情序列取表情峰值附近的3帧。之后,九个子集用于训练,另一个子集用于验证。在本文中,所有118个具有精确标签的受试者被分配到7个人脸表情类别中。

在CK+数据集上的识别准确率如表2所示,可以很容易地发现,本文所提出的方法在准确率方面取得非常有竞争力的表现。不仅可以在依赖于人的实验中获得最佳性能。更重要的是,提出的方法可以在不依赖于人的实验上得到更多的改善。在识别快乐、愤怒、厌恶和惊讶方面表现得非常好,并且在其他表情识别方面表现也不错。

3.2 Oulu-Casia的实验结果

Oulu-Casia数据集[31]包含2880个图像序列和80个标记有6种基本表情的主题。与CK +类似,提取最后三帧(仅考虑强照明条件)作为对应标签的峰值帧。 所有图像的九个子集用于训练,另一组用于验证。在该实验中,构建的两层分层结构包括6个粗粒度节点(人脸表情)和480个细粒度节点(每个人脸表情下80个人)。

表2 CK +数据集上不同表情识别方法的准确率

如表3所示,提出的方法仍然在Oulu-Casia数据集上实现了最佳性能。实验中发现提出的方法可以在愤怒,恐惧,快乐和惊讶方面达到很高的准确率,但在识别厌恶和悲伤方面表现相对差一些。

表3 Oulu-Casia数据集的准确率

4 结论

利用社交图像构建了一个新的自发人脸表情数据集,社会标签图像是通过特定的关键词从图像搜索引擎中获取的,利用垃圾图像清理算法去除标记错误的图像;然后,采用双层树分类器代替传统深层CNN中的平面softmax分类器,构成在表情识别同时考虑人脸识别的多任务学习框架,利用自然表情图像数据集对网络进行预训练,有效提高了表情识别准确率。在未来的研究中可以从以下几方面进行更深入研究:一是进一步扩大人脸表情数据集;二是对容易混淆的表情采用特殊处理方法;三是将更多人脸属性考虑进去构成更完善的多任务深度学习框架。

猜你喜欢
多任务分类器人脸
数字时代的注意困境:媒体多任务的视角*
学贯中西(6):阐述ML分类器的工作流程
结合自监督学习的多任务文本语义匹配方法
有特点的人脸
一起学画人脸
玻璃窗上的人脸
面向多任务的无人系统通信及控制系统设计与实现
基于朴素Bayes组合的简易集成分类器①
基于动态分类器集成系统的卷烟感官质量预测方法
一种自适应子融合集成多分类器方法