多年以来,人们一直致力于通过面部、声音、生物信号等特征制造出可以识别、解读、模仿人类情感的系统或设备,由麻省理工学院Picard教授提出的情感计算(Affective Computing)技术也因此蓬勃兴起,目的是使情感识别的人机交互更加完美、和谐。毫无疑问,面部表情是一种非常重要的非语言情感表达方式。心理学家Mehrabian提出,人类交流过程中只有7%的信息量是通过语言来传递,而通过面部表情传递的信息量却达到了55%。因此,研究面部表情是一项十分有意义的工作。
研究者们已经为创造出可以实现自动面部表情识别(Facial Expression Recognition,FER)的系统付出了巨大的努力,但由于自动情感计算和FER技术主要基于监督学习,而目前大部分人脸图像数据库不够庞大、缺少标注,所以情感计算系统和FER系统没有得到很好的发展,不能实现有效、全面的识别,也不能实现较好的人机交互效果。目前来看,很多人脸表情数据库是在实验室中获取的,因此缺乏多样性和可靠性。而本文使用的AffectNet人脸图像数据库十分庞大,包含专业人士的标注,并且是根据大量不同的情感关键词从网络搜索引擎上获取的,多样性显著,弥补了很多其他数据库的不足。
另外,由于部分面部表情数据库包含表情种类少,或者识别算法单一,不能达到识别多种情感的目的。而本文的算法基于多种神经网络、LBP和HOG特征提取,以及AffectNet中的标注,最后综合得出结果,可以识别多种情感。
目前的表情识别方法主要有特征提取和机器学习,特征提取的主要方法有LBP特征提取方法、Gabor特征提取方法和Haar特征提取方法;而机器学习的方法主要是SVM方法、Adaboost方法和神经网络方法,神经网络方法包括普通深层神经网络和卷积神经网络。
1 特征提取方法
1.1 LBP特征
局部二值模式(Local Binary Patterns,LBP)特征是一种用于图像纹理分类的特征,由T.Ojala等在1994年首次提出,具有灰度不变性和旋转不变性等优点,并且计算简单、效果较好,因此LBP特征在计算机视觉的许多领域都得到了广泛应用。本文使用计算机视觉开源库OpenCV实现人脸图像的LBP特征计算。
1.2 HOG特征
方向梯度直方图(Histogram of Oriented Gradient,HOG)方法通过计算图像连接区域的梯度方向提取特征。计算HOG特征时,图像会被划分为若干单元(cell),对每个单元中的像素进行计算就构成了梯度直方图。
1.3 其他特征
Gabor:Gabor滤波器是一种用于纹理分析的线性滤波器,首先由Gabor定义,其次由Daugman扩展成二维结构,二维Gabor滤波器在图像处理中有着丰富的应用,特别是在纹理分析和分割特征提取中。
Haar:哈尔特征(Haar-like features)是基于灰度图像的弱特征。该特征用于表述图像某一位置附近矩形区域的图像强度,并计算其强度差别。
2 机器学习方法
2.1 SVM
支持向量机(Support Vector Machines,SVM)法是在统计学习理论基础上发展起来的一种识别方法,是从线性可分情况下的最优分类面发展而来。所谓最优分类面就是要求分类线不但能将两类样本无错误地分开,而且能使两类之间的距离最大。
2.2 Adaboost
Adaboost是一种迭代算法,其中心思想是通过整合和训练,将弱分类器集成为强分类器。在训练时将分类错误的样本权重增大,而分类正确的样本权值减小,每次迭代训练后产生一个弱分类器,然后按一定参数将这些弱分类器组成强分类器。
2.3 神经网络
人工神经网络(Artificial Neural Networks,ANNs)也可称作神经网络(Neural Networks,NNs),由Mcculloch和Pitts通过用数理模型对神经细胞的研究,在1943年首次提出。神经网络可进行大规模的并行处理和分布式的信息存贮,且具有很强的学习功能、联想功能和容错功能。
2.4 卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN)是在1998年由Yann Lecun等根据梯度误差设计并训练出的一种方法,是特别用来处理二维数据的多层神经网络。卷积神经网络是多层的感知器神经网络,主要由卷积层、全连通层及池化层构成,每层由多个二维平面块组成,每个平面块由多个独立神经元组成,本质上实现了一种输入到输出的映射关系。
3 数据库
3.1 常用数据库
现有的人脸表情数据库大致分为两类:一类人脸表情数据库是基于6种基本情感(高兴、悲伤、害怕、嫌恶、惊讶和生气),如日本ATR建立的日本女性表情数据库(JAFFE),包含10个日本女性的6种基本情感和中性情感共213个图像,是研究亚洲人表情的重要测试库;Acted Facial Expressions in the Wild(AFEW)数据库同样使用6种基本情感和中性情感进行标注,不同点是AFEW数据库图像是从54部电影中获取的,包括年龄在1~77岁的330个对象。除了6种基本情感,沉思有时也被当作一种表情,并在很多数据库中使用。另一类人脸表情数据库则注重于提取人脸更加细微的表情,如美国CMU机器人研究所和心理学系共同建立的Cohn-Kanade人脸表情数据库,包括单个动作单元和多个动作单元的组合,共23种表情。从中性到目标显示的图像序列被数字化为640个480或490个像素的阵列,灰度值为8位精度。
关于国内人脸数据库,北京航空航天大学毛峡教授等建立了基于多种情感的北航人脸表情数据库,包含18种单一表情、3种混合表情和4种复杂表情,具有多种在其他人脸数据库中未曾出现的情感表情。此外,香港理工大学近红外人脸数据库(The Hong Kong Polytechnic University NIR Face Database),是使用香港理工大学生物识别研究中心开发的一种实时近红外人脸捕捉设备构建的一个大型近红外人脸数据库。
3.2 AffectNet
上述数据库各有优点,但也有缺陷。其中一个很突出的缺点是,有些数据库的人脸图片是在实验室中采集的(比如JAFFE、Cohn-Kanade和MultiPie),这些图片中的表情是按照调查者的要求做出的,并不是生活中自然流露的表情,因此缺乏说服力。另外,由于实验室的环境有限制,人脸的角度、头部的姿势比较单一,实验室获取的人脸表情图像还有另外一个缺点——缺乏多样性。
因此,很多研究者选择从实验室外获得自然地人脸表情图像(如AFEW、FER-2013和EmotioNet)来制作数据库,然而这些数据库依然有缺陷。如从AFEW的部分模块中挑选而形成的SFEW,这个数据库虽然是非实验室内获取的,而且包含了各种头部姿势、年龄阶段等,但含有的图片数量太少,只有700张,并且实验对象也只有95个。FER-2013数据库包括约35887张人脸图片,是目前从非实验室内获取的、最大的公开人脸表情数据库,但其中某些种类的表情图片不够多。EmotioNet人脸数据库拥有约100万张图片,这些图片是通过从网上搜索与“感觉”相关的关键词获取的。这个数据库非常大,包含表情种类多样,但这些图片大多是通过核类判别式分析法(Kernel Subclass Discriminant Analysis)自动标注的,只有约10%的图片是有经验的程序员人工标注的,缺乏精确性。
显然,现有的大部分数据库优缺点并存,不能全面地满足面部表情识别所需要的条件。本文采用的数据库AffectNet基本包含了上述人脸数据库的优点,并很大程度上弥补了上述数据库的缺陷。
AffectNet数据库中的图片是用6种语言(英语、西班牙语、葡萄牙语、德语、阿拉伯语和波斯语),根据1250个情感关键词,从3个搜索引擎(谷歌、雅虎、必应)中获取的,不是实验室中获取的有条件限制的图片,因此AffectNet数据库具有良好的多样性,包含大量不同、各个年龄阶段的人脸图片,有不同的角度、头部姿势、拍摄环境。由于表情关键词有1250个,各个种类的表情都很丰富,也不用单独寻找中性表情图片。
4 机器学习模型
4.1 神经网络——NN
本文采用的NN神经网络模型由5层线性神经网络构成,它读取的是人工提取的面部特征,即LBP,HOG特征提取法提取的特征,以及AffectNet中的Landmarks。面部特征值首先经过输入大小为1930的线性神经网络层,神经元数量为1200;其次经过4层线性神经网络,输入大小依次为1200、600、120、84,神经元个数依次为600、120、84、8;最后一层神经网络含有8个神经元,每个神经元代表1个表情分类。前4层神经网络的激活函数使用了ReLU,因为在分别使用ReLU和Softmax时,使用ReLU得到的结果更好,原因可能是ReLU会使一部分神经元的输出为0,这样就导致了网络的稀疏性,也减少了参数间的互相依存关系,缓解了过拟合现象的发生。ReLU函数计算公式为:Φ=max(0,x)。本文在第6部分的结果会显示出NN模型虽然使用了人工提取特征,却在精确度等各个方面表现不佳。
4.2 卷积神经网络——ResNet-18
本文的卷积神经网络采用18层深度残差网络的结构,又称作ResNet-18。深度残差网络只读取原始图片,并把图片大小调整为224×224像素。所以,它并未读取人工的特征提取方法,即LBP、HOG、Landmarks等。本文第6部分将会展示即使没有使用特征提取方法,卷积神经网络的精确度也远超使用了特征提取的普通神经网络。
在本文采用的18层深度残差网络中,原始图片先经过一个3×3的卷积神经层,再经过4个部分。其中每部分含有2个基础块,第1个基础块的结果会经过1×1的卷积减小图片尺寸。每个基础块的输入叫作残差,并且每个基础块包含两层核函数大小为3×3的卷积神经:其中第1层卷积神经采取了ReLU和最大池化,ReLU除去了输出中的负数,而池化减小了图片的大小;池化的结果放入第2层卷积神经中,其输出与残差相加,得到基础块的最终结果。在最后一个部分之后,模型使用平均池化再次把图片缩小,并把数据连接到完全连接层。完全连接层为此模型的最后一层神经,共含有8个神经元,每个神经元代表1个表情分类。若忽略1×1的卷积层,则18层深度残差网络中,共有1+4×2×2=17层卷积神经层,再加上完全连接层,共有18层神经元。
5 训练方法
AffectNet提供的测试集随机分为两部分。第一部分含有95%的数据,为本文使用的训练数据集;第二部分含有另外5%的数据,为本文使用的测试数据集。本实验使用AffectNet提供的验证数据集来选取适当的训练速率与方法,信息如下。
由于AffectNet数据不够平衡,本实验在ResNet-18中采取了概率加权的随机抽样(Weighed Random Sampling)方法使得训练阶段每个分类中的图片数量基本一致。批标准化是训练深度残差网络常用的训练方法,由于硬件设备限制,本文训练ResNet-18过程中批尺寸(Batch size)为32个图片。为获得中立的测试结果,批标准化在测试阶段直接使用训练时获得的批量规范结果。
为解决梯度下降算法卡在局部最小值的问题,本文采用随机梯度下降算法(SGD),并把动量设为0.9。训练开始时,学习速率(learning rate)初始化为0.01。每训练100万张图片,学习率缩小10倍,共训练200万次。
训练NN神经网络时,优化器(optimizer)使用的同样是随机梯度下降法,损失函数使用的是交叉熵损失函数(Cross-Entropy Loss),其公式为:
学习速率设置为0.0001,动量设为0.9,批尺寸为12个图片,训练集中所有样本训练次数(epoch)为4。
6 实验结果
评估方法用来衡量算法能否正确判别各类样本,常见的判别样本的术语有:TP(True Positive)为真阳性,即预测为正,实际为正;FP(False Positive)为伪阳性,即预测为正,实际为负;TN(Ture Negative)为真阴性,即预测为负,实际为负;FN(False Negative)为伪阴性,即预测为负,实际为正。本文使用评估方法如下。
(1)精确度。精确度(Accuracy)通过计算判别正确的概率得出的算法整体有效性,公式为:
Accuracy=TP+TN/(TP+FP+TN+FN)
(2)F1-Score。F1-Score是准确率(Precision)和召回率(Recall)的调和平均值,用来衡量二分类模型精确度,取值范围为[0,1]。
准确率用来计算算法的预测能力,公式为:
Precision=TP/(TP+FP)
召回率用来计算算法在单类(正或负)中的有效性,公式为:
Recall=TP/(TP+FN)
因此,F1-Score公式为:
F1-Score=2×Precision×Recall/(Precision+Recall)
(3)AUC。Area under curve of ROC,指接收者操作特征曲线(Receiver Operating Characteristic Curve,ROC)下方区域的面积。ROC空间将伪阳性率(False Positive Rate,FPR)定义为X轴,真阳性率(True Positive Rate,TPR)定义为Y轴。
TPR指在所有实际为阳性的样本中,被正确地判断为阳性之比率。
TRP=TP/(TP+FN)
FPR指在所有实际为阴性的样本中,被错误地判断为阳性之比率。
FPR=FP/(FP+TN)
则AUC=若随机抽取1个阳性样本和1个阴性样本,分类器正确判断阳性样本的值高于阴性样本的概率。
由于本文所使用的标注表情是除去“没有表情、不确定、非人脸”后的8种表情,因此,对8种表情分别计算8次F1-Score和AUC结果,对这2个8次结果分别取平均,就分别得到这2种评估方法的最终结果。
值得注意的是,本文并没有获得AffectNet的测试集,因此仅使用训练集中随机选取的5%进行测试。AffectNet原始的测试集难度比本文使用的测试集难度低,因为原始的测试集是2位标注者手动标注的数据;而本文使用的测试集仅由1位标注者标注,所以标注错误率较大,且难度更大。
7 结语
面部表情是一种非常重要的非语言情感表达方式,因此面部表情识别是一项很有意义的工作。不可否认面部表情识别复杂而困难,但随着面部表情识别的主要方式——机器学习的高速发展,它变得越来越高效且准确。本文使用了2种神经网络——NN和ResNet-18,其中NN模型学习的是经过LBP、HOG特征提取方法提取的特征,以及AffectNet中的Landmarks;ResNet-18模型直接对原始图像进行学习。最终本文将NN和ResNet-18两个模型与AffectNet使用的AlexNet网络模型进行了结果对比,结果表明ResNet-18在准确率上优于AlexNet,而没有使用卷积神经网络的NN差强人意。可以预见,未来的人脸表情识别研究工作主要还会集中在数据库的制作和神经网络模型的设计,并且从实验结果来看,卷积神经网络的优势依然明显。
参考文献
[1]Tao J,Tan T.Affective Computing:A Review[J].Affective Computing & Intelligent Interaction Proceedings,2005,3784(6).
[2]Picard R W.Affective computing[J].Igi Global,2002,1(1).
[3]Mehrabian A.Communication without words[J].Psychology Today,1968,2(4).
[4]Mollahosseini A,Hasani B,Mahoor M H.AffectNet:A Database for Facial Expression, Valence, and Arousal Computing in the Wild[J].IEEE Transactions on Affective Computing,1949,(99).
[5]欧阳琰,桑农.基于面部动作单元组合特征的表情识别[J].中国体视学与图像分析,2011,(1).
[6]Cortes C,Vapnik V.Support-vector networks[C].Machine Learning,1995.
(作者系上海大学通信与信息工程学院学生)