结合多特征和跨连通道加权的面部表情识别
2021-03-13唐颖军黄淑英
柳 璇,唐颖军,黄淑英
(江西财经大学 软件与物联网工程学院,南昌 330032)
1 引 言
面部表情能够传递人内在的情感信息,是人类表达情感的主要方式.由于人的面部表情比其他情感信号更易获得,因此面部表情识别一直是备受关注的研究热点,并且应用到心理分析、临床医学、车辆监控、远程教育等领域.
面部表情识别的过程可分为图像预处理、特征的提取、表情分类3个步骤.其中特征的提取是面部表情识别过程中的关键步骤.传统的表情特征提取方法主要分为两类,纹理特征提取和几何特征提取.纹理特征提取方法有Gabor 小波变换[1]、尺度不变的特征变换(SIFT)[2]和局部二值模式(LBP)[3]等.几何特征提取方法主要利用面部动作单元变化较大的特征点来描述几何变化.但是人工提取特征存在识别性能有限,并且泛化能力不足的问题.
随着深度学习的快速发展,面部表情识别的研究出现了许多新的方法.在大多数情况下,卷积神经网络CNN需要大量的训练数据才能提取有效的特征.但是目前面部表情数据集数量有限,而手工特征的提取不需要大规模数据的训练,因此将手工特征和深度学习结合起来的方法受到关注.Connie等[4]将SIFT特征与CNN 特征相结合取得了较好的性能.但是,对于模糊的图像而言,SIFT特征检测出的特征点过少,有可能降低该类方法识别的精度.Yang等[5]提出一个基于面部灰度图和LBP特征图的双通道网络.将面部灰度图像输入预训练的VGG网络,LBP特征图输入浅层CNN网络,两个通道的输出以加权方式融合成最后的特征进行分类.Kim等[6]提出了一种可以对结果(最常见的2个错误情感)进行重新分类的分层深度神经网络结构.这个结构主要分为基于外观特征和基于运动特征的网络.基于外观特征的网络使用LBP图像来学习整体特征,基于运动特征的网络学习面部特征点的变化.夏添等[7]提出了一种利用面部特征点识别表情序列的方法,该方法将特征点坐标输入网络进行训练,在降低时间复杂度的同时取得了较好的识别效果.神经网络的分类准确率受训练样本的影响,当训练样本不充足时会影响最终的识别效果.手工特征与深度学习相结合可以使神经网络在小样本数据集上也有较好的表现.
虽然神经网络依据输入的样本可以自动学习表情特征,但是表情特征的提取依然受多种因素的影响.考虑到场景、主体身份、不同尺度和层次等因素影响下表情特征的特点可以提高面部表情识别算法的鲁棒性和准确率.Zhang等[8]提出了一种基于多尺度的全局图像和局部面部图像的方法,显著提高了面部表情识别的性能.Jan等[9]提出了一种融合面部不同部分特征的方法,提取眉毛、眼睛、鼻子、嘴4个部分的纹理图和深度图,分别通过四个预训练的VGG网络最后进行特征融合.该方法在3D表情数据库上取得了不错的识别率.李勇等[10]提出了用一种跨层连接的改进LeNet-5模型,该方法将低层次特征与高层次特征进行了结合,但是产生了大量冗余特征.Yang等[11]提出了一种利用条件生成式对抗网络CGAN生成输入图像对应的基本表情图像,在特征空间判断输入图像与生成图像距离进而实现分类的方法.但是该方法要求数据集有配对的图像.Li[12]等提出了一种面部遮挡情况下表情识别的方法,该方法利用注意力机制使网络关注未遮挡的部分从而提高识别效果.
综上所述,本文设想提出一种结合手工特征和深度学习特征的方法,首先获取表情图像的灰度图、LBP特征图和Sobel算子特征图,合并为三通道特征图作为网络的输入.将灰度图与两种手工特征图合并输入可以避免完全依赖手工特征的提取进而影响分类效果的问题,也可减轻神经网络需要大规模训练数据才能有效提取特征的弊端.此外,本文设想提出一种跨连通道加权模块,该模块以深度可分离卷积[13]为基础,利用通道加权建模不同通道特征之间的关系.通过将不同的层次和不同通道之间权重不同的特征进行连接,更加高效地进行不同卷积层之间和不同通道之间特征的融合.
2 相关工作
2.1 深度可分离卷积
卷积核的主要作用是提取输入样本的特征.标准的卷积使用的是三维的卷积核.深度可分离卷积将标准的卷积分为两个过程,深度卷积和点卷积,如图1所示.深度卷积首先保持通道之间独立,在空间维度上进行卷积,从而获得了每个通道的空间特征.点卷积是按照深度方向进行卷积,得到新的通道空间.
图1 标准卷积与深度可分离卷积结构Fig.1 Standard convolution and depth separable convolution structure
假设输入图的尺寸为H×W×C,卷积核大小为K×K,数量为N,进行标准卷积所需要的参数量为K×K×C×N×H×W,进行深度可分离卷积所需要的参数量为K×K×1×C×H×W+1×1×C×N×H×W,由于输入图像H和W相等,则可得出深度可分离卷积与标准卷积参数量之比为
由此可见,深度可分离卷积与标准卷积相比大大减少了参数量,可以提高运算效率,减少训练和识别的时间.因此,本文设想使用深度可分离卷积代替标准卷积.
2.2 SE模块
SE(Squeeze-and-Excitation)模块[14]可以建模特征图各个通道之间的依赖关系,从而提升网络的特征学习能力.该模块结构如图2所示,首先通过全局平均池化获得全局信息,其次利用两个全连接层进行学习并融合各通道的信息,学习每个通道的重要程度,然后经过sigmoid得到各通道的权重,最后与原图进行相乘输出,得到最终的通道加权的特征图.
图2 SE结构Fig.2 Squeeze-and-excitation module
在网络中引入SE模块,可以在增加有限计算量的同时对不同的通道特征按照重要程度分配不同的权重,有选择性地增强有价值的特征.因此本文设想采用SE模块来提高对不同通道特征的利用率,通过神经网络对灰度图、LBP特征图和Sobel算子特征图构成的三通道特征图进行权值的学习和分配,以实现手工特征和深度学习特征之间的结合.
3 本文工作
神经网络在学习的过程中会产生不同层次的特征,跨层连接的网络实现了不同层次特征的有效复用,然而没有考虑到不同通道之间重要程度的差异,本文设想将不同通道和层次的特征充分利用,同时结合手工特征与深度学习的优势,设计基于跨连通道加权模块的深度可分离卷积网络.首先通过面部检测去除表情图片中与主体无关的背景信息.其次对数据集进行增强,从而减轻小数据集产生过拟合现象的可能性.然后对面部表情图像进行人工特征提取与融合,将灰度图与两个手工特征图合并为三通道特征图作为最终的网络输入.最后将融合的特征图输入跨连通道加权网络,训练得到最终的面部表情分类模型.
3.1 数据集预处理
3.1.1 面部检测
面部表情的产生主要由眉毛、眼睛、鼻子、嘴巴及其周围的动作变化而形成.因此,面部表情的识别主要集中在对这四个部位及其周围的特征的识别.一张图像往往包含较多与面部无关的背景信息,直接输入进网络会造成对表情识别的效果造成干扰,所以首先对图片利用多任务卷积神经网络MTCNN对人脸进行的识别和裁剪,去除与主体无关的信息,如图3所示.
图3 面部检测示例Fig.3 Face detection example
3.1.2 数据集增强
面部表情数据集样本数量有限,训练时数据量太小可能造成网络过拟合,导致在实际测试过程中达不到良好的效果.因而将从模拟真实情景方面着手,对图像进行预处理提高数据集数量.通过对图像不同区域裁切生成新图像,将对比度、亮度以及锐度以特定参数进行缩放,将图像进行左右翻转等方法对数据集进行扩充,如图4所示.
图4 数据集增强示例Fig.4 Dataset enhancement example
3.2 人工特征提取与融合
面部表情识别的关键是特征的提取,特征提取的优劣直接影响着最终的识别结果.不同的特征提取算子具有不同的优点.LBP特征具有灰度不变性,在描述纹理特征方面具有良好的性能.Sobel算子方法简单,能够较快地得到光滑且连续的边缘.单一使用某种特征无法应对亮度、尺度等问题,将表情的不同特征进行融合可以有效的解决这个问题.
在输入网络之前,如果表情图像为RGB图像,则首先获得图像的灰度图,灰度图有利于面部整体信息的获取.在灰度图的基础上获得LBP特征和Sobel算子特征两个手工特征.LBP特征图可以使面部与表情相关的区域的特征更加显著,有利于图像中面部表情细节信息的获取.Sobel算子特征补充边缘信息.将这3个图像分别作为RGB三个通道后进行合并得到最终的特征图,如图5所示,使得网络更倾向于获得与表情变化相关的特征.
图5 人工提取特征的融合Fig.5 Fusion of artificial features
3.3 基于跨连通道加权网络设计
3.3.1 跨连通道加权模块
在网络结构中设计图6所示跨连通道加权模块,可以调整通道之间的依赖关系,提高网络对不同通道特征的表达能力和对不同层次特征学习能力.该模块以深度可分离卷积和通道加权结构为基础.首先对输入图像进行深度可分离卷积,对通道数进行扩大,假设输入图X,大小为W×H,通道数为N,进行深度可分离卷积后得到S,大小为W×H,通道数为C.输入图像进行卷积后分为两个分支,一支为通道加权部分,一支为特征提取部分.
图6 跨连通道加权模块Fig.6 Cross-connect weighted channel module
通道加权部分以SE模块为基础,首先进行全局平均池化得到各个通道的全局信息,那么对于特征图上的任意通道C,可得到如公式(1)所示:
(1)
然后通过全连接层1缩小4倍通道数、ReLU激活函数、全连接层2扩大至原来的通道数,通过学习不同通道之间的关系,获得不同通道之间重要程度的权重.随后经过sigmoid函数激活,可得到如公式(2)所示,将各个通道的权值范围控制在0-1范围内.
M=σ(W2ReLU(W1K))
(2)
最后与原始特征S相乘,得到通道加权后的特征图,对于任意通道可得到如公式(3)所示:
(3)
经过SE模块后,进行最大池化,在减小特征的同时保留纹理信息,输出为如公式(4)所示:
S′(maxpool)=Maxpooling2×2(S′)
(4)
特征提取部分以深度可分离卷积为基础.对输入图像S池化后进行深度可分离卷积,将通道数扩大至原来的两倍,提高网络的表达能力,然后利用ReLU函数进行激活.最后输出Z,大小为W/2×H/2,通道数为2C.
Y=Concatenate[S′(maxpool),Z]
(5)
3.3.2 网络模型设计
本文所采用模型如图7所示,其中输入为面部表情图像,输出为每种基本表情的概率,最终确定概率最大的表情为预测表情.该模型主要由跨连通道加权模块、全连接层以及softmax层构成,网络共包含4个深度可分离卷积层、5个池化层、2个特征加权模块(SE模块)、2个全连接层、1个softmax层.对于不同的表情图像,均输入经过人工特征融合的三
图7 基于跨连通道加权网络Fig.7 Cross-connect weighted channel network
通道特征图,大小为256×256.卷积核大小均为3×3,相较于使用大的卷积核可以获得更多的特征信息.每次进行深度可分离卷积后使用ReLU激活函数进行激活.第一层全连接层共包含512个神经元,第2层全连接层共包含128个神经元.最后一层输出经由softmax输出6个网络节点,即每个基本表情的概率大小.
4 实验结果分析与比较
4.1 实验平台
本实验在Windows平台下基于TensorFlow框架对所提出的算法进行实验分析,计算及配置为Intel i7处理器、16G内存、NVIDIA GeForce MX150显卡、2G显存,并安装有Python3.6.
4.2 数据集
为了使实验结果更加准确,本文采用CK+数据集[15]和JAFFE[16]数据集进行分析.
CK+数据集:该数据库包括来自123个被试者的593个图像序列,其中327个序列有表情标签.本文选择有表情标签的序列中6种基本表情的三个峰值图像,共927张图像.采用数据增强策略对样本扩充至原来的10倍,得到9270张图像.
JAFFE数据集:该数据库包括来自10个被试者的6种基本表情以及中性表情,本文选择6种基本表情中的图像,共183张图像.采用数据增强策略,对样本扩充至原来的60倍,得到10980张图像.
4.3 实验结果分析
面部表情识别实验在训练过程中采用随机初始化权重和偏置的方法,初始学习率为0.001.CK+数据库和JAFFE数据库都采用了十折交叉验证的方法,将数据集样本分为10份,每次取其中的9份作为训练集,剩下的1份作为测试集,对10次测试的准确率求平均值作为整个数据集的最终结果,以混淆矩阵形式呈现.
由表1可知,在CK+数据集上关于愤怒和高兴的识别率达到了100%,而厌恶、恐惧、悲伤和惊讶的识别率则出现了不同程度的下降.由表2可知,在JAFFE数据集上,愤怒的识别率最高,而厌恶、高兴和悲伤出现了一定程度的交叉,恐惧的识别率最低.由于JAFFE数据集样本数量少,进行扩充也容易产生过拟合现象,这可能是导致最终准确率低于CK+数据集的原因.根据混淆矩阵六种基本表情的识别率表明,提出的跨连通道加权网络能够很好地学习到CK+数据集和JAFFE数据集的特征,保持了较高的准确率.
表1 CK+数据集混淆矩阵Table 1 CK+ dataset confusion matrix
表2 JAFFE数据集混淆矩阵Table 2 JAFFE dataset confusion matrix
4.4 模块有效性分析
为了证明将三通道特征图与跨连通道加权模块相结合在表情识别方法上的作用,本文做了一组对比实验,分别为将灰度图输入跨连通道加权网络和三通道特征图输入跨连通道加权网络.训练步数为1000次,batch大小为100,学习率为0.001,图8和图9为两种方法随着步数变化的准确率的对比,可以看出,在一定迭代次数内,采用三通道的方法准确率得到了更加快速的提升,说明本文结合三通道特征和跨连通道加权模块的方法比原来使用灰度图输入网络的方法更加高效.
在CK+数据集上将单通道灰度图像输入网络,进行十折交叉验证,各个表情分类的最终准确率与三通道特征图对比如图10所示.在恐惧和悲伤这两类易错表情上,正确分类的概率有了明显的提高.可以看出,将三通道特征图输入跨连通道加权网络有利于表情分类准确率的提升.
图8 灰度图准确率 变化曲线Fig.8 Grayscale accuracy curve图9 三通道特征图准确率变化曲线Fig.9 Three-channel feature mapaccuracy curve
图10 灰度图与三通道准确率对比Fig.10 Comparison of grayscale and three-channel accuracy
4.5 实验结果对比
为了证明本文方法具有有效性,将近期不同方法在CK+和JAFFE数据集上的准确率与本文方法进行对比,如表3和表4所示.在CK+数据集上,本文与基于跨连接的LeNet-5网络[10]和基于Inception结构的网络[17]相比,识别效果取得了较大的提升.谭小慧等[18]采用多尺度细节增强的方法准确率达98.19%.Connie等人[4]提出CNN和SIFT结合的方法达到99.1%左右.本文方法6类基本表情识别率达99.77%.
表3 CK+数据集准确率对比Table 3 Comparison of CK+ dataset accuracy
表4 JAFFE数据集准确率对比Table 4 Comparison of JAFFE dataset accuracy
在JAFFE数据集上,与基于跨连接的LeNet-5网络[10]相比,取得了不错的识别效果.胡敏等人[19]提出的融合局部纹理和形状特征的方法,准确率达到98.10%.张瑞等[20]基于稀疏特征挑选和概率线性判别分析的方法达到98.57%,He等[21]基于几何和纹理特征的方法达到98.75%.本文方法6类基本表情识别率达99.48%.由表3和表4可知,本文方法具有一定的优势.本文方法将手工特征与深度学习特征相结合,通过跨连通道加权模块实现对特征的有效利用.
5 结束语
本文提出了一种结合多特征和跨连通道加权的表情识别方法.将多通道特征图作为网络的输入,以跨连通道加权模块为基础构建网络,减少了网络层数.实验表明,该方法在CK+、JAFFE数据集上识别率实现了提升.然而当前工作中采用的数据集多为正面清晰的表情图像,在今后的工作中,将利用多尺度信息进一步实现复杂情境下面部表情识别的研究.