基于面部多个局部特征的人脸表情识别算法

贾茜伟,闫 娟,杨慧斌,刘向前

(上海工程技术大学 机械与汽车工程学院,上海 201620)

人的面部表情识别可以识别出中性、愤怒、厌恶、惊讶、高兴、悲伤和恐惧七类表情,该表情识别技术有许多应用场景,例如:在汽车司机的疲劳驾驶监测中,通过司机的表情变化来推测司机的驾驶状态,从而对司机发出提醒。在智能安防中,通过监测公众场合人们表情的变化来推测其心理想法,并及时阻止潜在危险行为,从而避免危险事故的发生。在医疗单位中,通过监测病人表情的变化来了解病人的身体状况,一旦发现异样及时采取措施等。

Mehrabian研究指出,人脸面部表情可以传递人们的内心活动和情感变化,如果计算机可以获取到人脸信息,人机交互将会有很大的发展空间。经过Ekman等人的一系列研究,人脸的面部表情识别技术已经迅速发展起来。一般来说,将表情识别分为特征提取和特征分类这两步,特征提取主要是解析人脸面部图像,并将局部特征提取出来,分类器再根据提取到的局部特征进行最优分类。近年来,部分学者提出依据人脸的特征点发生的形变程度来推测人脸面部表情,然而仅仅依靠部分特征点的形变并不能代表整个人脸表情,从而造成表情识别准确率较低。伴随着卷积神经网络(Convolutional Neural Networks,CNN)的研发问世,一些学者提出可以在表情识别中融入CNN算法,经过划分好的区域提取人脸的全局特征迭代回归,取得了不错的识别效果,但是只有面部全局特征,未能突显出局部特征,因此会造成相似表情在一定程度上的区分困难,例如惊讶和恐惧的区分。Kaleekal等人基于面部68个特征点周围提取8个面部突出块(Salient Facial Patches,SFP)的Hahn特征,并采用SVM进行分类,经过试验表明,在CK+与JAFFE数据集的识别率分别为91.33%与93.16%。SFP方法虽然突出了面部的局部特征,但是选取时并未设置一个固定的标准,也忽视了不同表情中局部特征比例上的不同。另外,根据Li等人研究,面部的6类基本表情均有FACS编码中对应的面部肌肉运动单元,但是该分区方法需要大量识别,而单个的识别准确率并不高。

因此,本文提出基于面部多重局部特征的人脸表情识别技术,论文的创新点可表述为:

(1)本算法基于人脸的68个特征点,再将额头部分加上去,总共将面部分为23个子区域。面部表情也会在额头上体现出来,例如额头的皱纹和表面舒张等。本文统计了6类基本表情产生域,再依据其产生域、面部肌肉单元以及面部器官将23个子区域归类到8个候选区域中,为SFP的选取提供了依据,而且可以不用重复就能提取不同表情中包含的相似的局部特征,从而解决了需要重复识别和识别单个效率低的问题。

(2)本文算法采用8个并行的分支进行提取,并根据候选区域所占的面积比例支配不同维全连接层,解决了局部候选区域提取得不够均衡的问题。每个分支的输出按照注意力自适应地连接,经过函数将人脸面部表情基本分为7类:中性、愤怒、厌恶、恐惧、高兴、悲伤、惊讶。在CK+和JAFFE数据集得到的平均准确率分别为99.87%与96.72%,相比S-Patches方法分别增加了6.03%与10.28%。

1.1 面部分区

根据人脸的构造以及产生表情时一些运动的局部肌肉单元,将面部肌肉运动分为45种,现选取部分FACS展示,详见表1。这些局部肌肉运动单元可以组成多个人脸表情,其中包含6类人脸基本表情。继而研究得到的表情相应结果见表2。分析表1、表2可知,眉毛紧在一起、眉毛间出现直形皱纹等,对应着表1的面部肌肉运动单元中的、、、、的一种或几种,表情表现为愤怒;
眉毛向下压、上嘴皮向上抬、下眼皮下面出现皱纹,对应着表1的面部肌肉运动单元中的、,表情表现为厌恶;
眉毛紧皱并抬起、额头显现皱纹、上眼睑向上抬起、下眼皮向下拉伸、嘴微微变化或张大等,对应着表1的面部肌肉运动单元中的、、,表情表现为恐惧;
牙齿露出、嘴角向外拉并微微抬起、眉毛可能会向下弯一点、眼皮下面凸起等,对应着表1的面部肌肉运动单元中的、、,表情表现为高兴;
眉毛向内收缩、嘴角向下拉伸、上眼皮下拉、额头舒张等,对应着表1的面部肌肉运动单元中的、、、,表情表现为悲伤;
眼睛睁大、上眼皮向上抬起、下眼皮向下拉伸、嘴巴张大等,对应着表1的面部肌肉运动单元中的、、、,表情表现为惊讶。

表1 部分面部肌肉运动单元AUTab.1 Part of facial muscles movement unit AU

表2 表情相应AUsTab.2 AUs corresponding to the expression

6类基本表情产生时,大部分面部肌肉运动单元存在明显动作,基于此,将面部分为23个局部特征区域,如图1所示,再将这23个面部区域按照人脸的构造分为8个局部区域AUo,为1到8。每个候选区域都包含一定的特征区域,且只提取本候选区域内的特征,在候选区域内产生的表情见表3。人脸表情的局部区域示意如图2所示。由图2可看出,图2(a)中包含额头和眉毛部分,是、、和的产生域,包含1、2、3、6、7面部的局部特征区域,属于愤怒、恐惧、悲伤、惊讶等表情发生时的肌肉运动单元活动区域;
图2(b)中包含眉毛和眼睛部分,是产生域,包含2、3、6、7、8、11面部的局部特征区域,属于愤怒、恐惧、悲伤表情产生区域;
图2(c)中包含眼睛、鼻梁及其鼻子附近部分,是产生域,包含8、9、10、11、13、15面部的局部特征区域,属于高兴表情产生区域;
图2(d)中包含纵向鼻子及鼻梁部分,是产生域,包含4、5、9、10、14面部的局部特征区域,属于厌恶表情产生区域;
图2(e)中包含鼻子和嘴巴部分,是、产生域,包含14、17、18、19面部的局部特征区域,属于高兴、惊讶、悲伤表情产生区域;
图2(f)中包含嘴巴、下巴及附近肌肉部 分,是、、产生域,包含17、18、19、20、21、22、23面部的局部特征区域,属于高兴、惊讶表情产生区域;
图2(g)中包含下巴部分,是产生域,包含20、21、22、23面部的局部特征区域,属于厌恶、悲伤表情产生区域;
图2(h)中包含嘴巴部分,是、产生域,包含18面部的局部特征区域,属于愤怒表情产生区域。

表3 AU组包含区域Tab.3 AU group contains area

48829d39445a3.webp"/>

图1 面部区域分区Fig.1 Facial area division

图2 局部区域示意图Fig.2 Local area diagram

1.2 与CNN算法融合

本文算法基于面部区域的68个特征点和23个分好的局部特征区域,构成8个局部候选区域,并将候选区所占的面积最小的矩形框输入卷积神经网络中。8个局部候选区选取的矩形框如图3所示。

图3 局部候选区最小矩形示意图Fig.3 Schematic diagram of the smallest rectangle of the local candidate area

本文算法的整体流程如图4所示。每个AUo图像中选取的局部特征区域大小不一,并且都需要经过CNN网络提取特征,再将提取得到的特征拼接为4096大小的全连接层。为了得到更好的识别效果,就需要突出不同表情的局部特征,因此再将拼接的全连接层乘以不同表情所占的权重值,后续又经过特征提取与函数将表情基本分为7类:中性、愤怒、厌恶、恐惧、惊讶、高兴、悲伤。

图4 本文算法流程图Fig.4 Flow chart of the algorithm in this paper

1.3 损失函数

每一类基本表情都有不同的局部特征,将其局部特征突显出来,损失函数是必不可少的。损失函数在许多视觉工作中被经常使用,主要通过最大化真实样本类别的后验概率将特征从不同的类中分离出来,给定输入特征为x,对应的标记y,其计算公式如下:

其中,为批次的大小;
为类的数量;
w∈R是第类最后一个完全连接层的权重;
是特征维度;
b∈是偏置项。在w和x上应用归一化来优化球面上的特征,特征距离与特征角的计算关系如下:

其中,θ是w和x之间的角度。

2.1 实验环境

为验证本文算法的有效性,实验选用Win10系统、内存8 G、CPU为i5-9500、硬盘为512 G固态硬盘,实 验 中 所 需 要 的 软 件 包 括:Ubuntu16.04、Pytorch1.9.0、Opencv4.5.1、Cudnn7.5、CUDA10.1。

2.2 数据集

本文算法的模型选用CK+数据集和JAFFE数据集进行实验,实验前先将图像进行预处理,统一大小为48×48的灰度图,训练集和测试集大致按照4:1随机进行划分,由此得到的CK+和JAFFE数据集中7类基本表情的训练集和测试集的数量分布见表4和表5。

表4 CK+数据集中各表情分布情况Tab.4 Distribution of expressions in the CK+dataset

表5 JAFFE数据集中各表情分布情况Tab.5 The distribution of expressions in the JAFFE dataset

2.3 实验结果与分析

现选取2组不同的局部候选区域与AUo进行实验验证,对比结果如图5所示。选取的2组不同局部候选区域组成见表6。由图5(a)可看到,本文算法选取的区域在CK+数据集的平均准确率达到99.87%,相比于选取的特征区域1与特征区域2高出6.89%与8.84%。在JAFFE数据集的平均准确率达到96.72%,相比于选取的特征区域1与特征区域2高出11.68%与18.68%。实验表明,精确选取局部特征区域比简单选取面部的器官区域得到的识别效果要高得多,局部特征区域对人脸面部表情识别的准确率起到重要的作用。

表6 对比局部候选区域组成Tab.6 Comparing the composition of local candidate regions

图5 对比图Fig.5 Comparison chart

不同表情的权重值W是不同的,也会对面部表情的识别造成一定的影响,现从偏置的值为0、1、2、3、4这五种来进行实验验证不同偏置值对表情识别准确率的影响。由图5(b)可知,当偏置值为1时,CK+数据集中的准确率最高为99.87%;
当偏置值为0时,JAFFE数据集中的准确率为96.72%。实验表明,偏置值不是越大、或者越小越好。

算法对比结果见表7。将本文算法与CNN算法在CK+和JAFFE的混合数据集下对7类基本表情识别的准确率进行对比后,从表7中可以看出,本文算法除在厌恶表情识别上略低于S-Patches算法外,其余表情识别和平均准确率均高于S-Patches算法。对于CNN算法而言,本文算法只在悲伤表情识别中略低,其余方面均与其相等或胜过CNN算法。总地来说,实验通过与两大经典算法做对比,可以证明本文算法在对面部特征划分成有效的局部特征区域后,具有有效性,并且提高了表情识别性能。

表7 算法对比Tab.7 Comparison results of the algorithms

本文基于68个特征点和面部肌肉运动单元,提出基于面部多个局部特征的人脸表情识别算法。算法将包含额头的人脸面部区域划分成23个子区域,再经卷积神经网络提取特征,最后经函数进行表情分类。本文算法在CK+和JAFFE数据集的平均准确率分别为99.87%和96.72%,相对于S-Patches则分别提升了6.03%和10.28%。本文算法也存在一定的不足,比如大量提取局部特征,必然会增加训练时长,还有就是提取局部特征后的降维问题,这些都需要后续进一步地去研究。

猜你喜欢 人脸准确率局部 日常的神性:局部(随笔)山花(2022年5期)2022-05-12玻璃窗上的人脸奥秘(2021年5期)2021-06-15乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析健康之家(2021年19期)2021-05-23多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析健康之家(2021年19期)2021-05-23不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨医学食疗与健康(2021年27期)2021-05-13颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察健康体检与管理(2021年10期)2021-01-03凡·高《夜晚露天咖啡座》局部[荷兰]散文诗(2020年1期)2020-07-20智力考场:有趣的图片测试小雪花·初中高分作文(2017年9期)2018-05-21丁学军作品东方艺术·国画(2016年3期)2017-02-08“领家系”可爱脸VS“高冷系”美人脸米娜·女性大世界(2016年8期)2016-08-17

推荐访问:的人 多个 面部