何秀玲 高 倩 李洋洋 方 静
(华中师范大学国家数字化学习工程技术研究中心 湖北 武汉 430079)
情绪作为一种主观认知体验,不仅会对记忆、感知、思维等认知活动产生影响,也能够调节学习的动机和行为[1]。学生在学习过程中的情感状态可以对整体学习结果产生积极或消极影响[2],认识并解决这些问题对改善学生学习至关重要。然而,在传统的课堂教学中通常只有一位教师管理多名学生,教师很难时时关注每一名学生的情感状态并作出反馈。因此,利用信息技术在传统课堂中辅助教师及时捕获学生情感状态,并给予相应反馈是十分有必要的。目前,“人工智能+教育”的研究如火如荼,将人工智能技术与教育进行深度融合,打造智慧学习环境,能够获得更全面的学习数据,为学生的学和教师的教提供更优质的服务[3]。心理学研究指出,人的情感表达55%是通过面部表情表现出来的[4]。由此可见,通过识别面部表情能够判断人的情感状态。利用表情识别技术获取学生的课堂学习中的表情,能够判断和记录学生的学习情绪状态,辅助教师给与学生个别指导和反馈。表情识别率的不断提升和算法研究的深入为表情识别应用于课堂教学提供了技术支持。
表情识别的过程一般分为预处理、特征提取和分类三个步骤。其中特征提取是表情识别研究中的关键问题,提取特征的完整性和鲁棒性将直接影响最终识别结果的优劣[5]。近年来最常用的表情特征主要分为两类:几何特征和纹理特征[6]。几何特征提取的主要是面部特征点的坐标信息和特征点之间形成的几何关联信息。如Li等[7]提取面部特征点和特征点之间的角度作为面部表情特征进行识别。Ghimire等[8]根据面部特征点提取基于点、线和三角形的三种几何特征,并采用基于ELM的AdaBoost算法选择最优的三类几何特征,在CK+、MMI和MUG数据库中都取得了较好的效果。但面部特征点定位的准确度易受到光照、姿态等因素的影响,从而直接影响几何特征的稳健性。纹理特征是指图像像素周围空间邻域的灰度分布,常用的纹理特征是Gabor小波变换[9]和局部二值模型(LBP)[10]。随着机器学习的发展,深度学习成为机器学习研究领域的一大热点。基于卷积神经网络的深度学习得到的特征能够保持一定的不变性,而且还包含了更多的高层语义信息,可以有效缩小底层特征和高层语义之间的鸿沟[11]。Sun等[12]利用十层卷积层提取人脸局部特征,通过嵌入式注意模型聚集局部特征进行分类,实验证明该方法提高了识别率,并能够获得良好的可视化效果。罗翔云等[13]将卷积神经网络作为表情特征提取结构,SVM作为提高层分类器,结果表明提取的深度特征能明显增加表情识别能力。
不同的特征具有各自的优缺点,将多种特征从不同的角度进行融合可以更全面地表达面部表情[14]。兰兰等[15]针对单一特征表现不全面的问题,将几何和局部纹理特征融合,在JAFFE数据库和Yale数据库上有效提升了识别的准确率。Majumder等[16]采用自动编码器融合了几何和LBP特征,实验结果显示,融合特征的抗噪性和区分力更强。但也存在一些问题,如多特征融合容易造成较高的特征维度,难以满足课堂应用中实时识别的需求;将浅层特征与深度特征进行融合的研究较少,部分细微、区分度小的表情需要更加深层的特征增加识别能力。因此,本文的主要贡献和创新点归结如下:
1) 提出了一种融合局部几何特征、全局CLBP特征和CNN深度特征的特征提取方法,使用KPCA降维,有效减少了冗余特征。
2) 录制了全新的自发学习表情数据库,用于CNN网络训练。
3) 使用SVM进行分类,在CK+库、中国情绪图片系统和自发学习表情数据库中都得到了理想的效果,证明了本文方法的有效性。
卷积神经网络CNN是能够有效提取深层图像特征的深度学习模型,一般由输入层、卷积层、子采样层、全连接层和输出层构成[17]。
卷积神经网络的特征提取工作主要由卷积层和子采样层来实现。在卷积层中,由神经元排列组成特征平面,一个特征平面内所有神经元共享的权值矩阵又称为卷积核。上一层的特征面通过卷积和激活函数可得到输出特征面。传统神经网络中常用sigmoid作为激活函数,但sigmoid在梯度下降过程中容易造成饱和,从而终止梯度传递。ReLU函数具有收敛速度快、梯度求解简单的优点,因此,目前CNN中常用ReLU函数作为激活函数,计算公式如下:
f(x)=max(0,x)
(1)
卷积层通过卷积的过程逐步提取不同的特征,层数越高,提取的特征越高级,越抽象[18]。
子采样层又称为池化层,其中的特征面与卷积层中的特征面一一对应,个数相同。池化层对卷积层的输出特征进行进一步提取,能有效降低特征维度。常用的池化方式有随机池化、均值池化和最大池化。
全连接层能够将卷积层和采样层提取的局部特征进行汇总,最后输入分类器中进行分类。
CNN中利用损失函数衡量模型的鲁棒性,它能够估量模型中预测值与真实值之间的差异,值越小代表模型鲁棒性越好。大多数模型中使用均方误差作为损失函数[19],计算公式如下:
(2)
CNN提取的深层特征包含高层语义信息,并对缩放、平移等保持一定的不变性,显著减少了高层语义和底层特征之间的差距。本文采用的神经网络结构包括输入层、三层卷积层、三层采样层和一层全连接层,如图1所示。输入为64×64大小的图像,卷积核大小是5×5,提取全连接层的信息作为全局特征。
图1 面部表情特征提取CNN网络结构
图2中的可视化特征展示了网络每一层的特点。第一层卷积提取了物体的边缘和轮廓特征,第二、三层特征更加抽象,拥有更复杂的不变性。
图2 卷积层提取的特征
本文提出了一种基于局部几何特征和全局特征的学习表情特征提取方法,全局特征包括CLBP浅层纹理特征和CNN深度网络特征。将图像的浅层边缘、灰度分布特征和深度特征进行融合,获得了更全面的表情特征,增加了特征的鲁棒性和抗噪性。
几何特征具有计算复杂度低、精确度高的特点。利用几何特征把握表情的直观变化,放大表情之间的差异,有利于获得更有效的分类特征。而表情变化过程中有些面部区域变化并不明显,提取特征过多容易带来冗余。Ekman提出了面部动作编码体系(FACS),描述不同的面部表情所对应的脸部肌肉运动。人脸的表情变化可以通过不同的面部动作单元的组合来表示。相关分析表明,特定的面部特征可以将学习表情从中性状态中分离出来,如困惑可用AU4、AU7、AU15组合表示等。通过AU可以发现,表情特征具有明显的局部性,眉毛、眼睛、嘴巴部分特征对表情的分类起关键作用。因此本文使用RealSense提取面部特征点,选取了面部动作单元变化较大、能对识别起到关键作用的47个特征点,提取了角度、距离、面积、斜率四种几何特征,利用局部特征点之间形成的几何关联信息描述每种表情的核心变化特征。
局部二值模型LBP是一种测量局部图像纹理空间结构信息的有效方法[20]。利用中心点的灰度值tc和以该点为中心半径为r的圆周上m个点的灰度值ti进行计算。以中心点作为阈值进行处理,形成m位二进制数,最后tc的LBP结果以十进制数表示如下:
(3)
式中:di=ti-tc表示中间位置的空间局部结构,又称为局部差分符号数值变换算子(LDSMT)。LDSMT可以分为符号和数值两部分,LBP算子只使用了LDSMT的符号信息,丢失了数值信息。改进的CLBP算子结合了中心像素LBP算子(CLBP_C)、局部差分符号数值变换算子的符号算子(CLBP_S)和数值算子(CLBP_M),对光照变化和噪声具有更高的鲁棒性[21]。图3是输入的人脸图像对应的CLBP_S、CLBP_M和CLBP_C编码的图像示例。可以看出,CLBP可以提取空间模式和局部图像纹理的对比度,如边缘和纹理。
(a) 原图编码图像 (b) CLBP_S编码图像 (c) CLBP_M (d) CLBP_C编码图像图3 人脸图像及对应编码图像
主成分分析PCA是降维的主要方法之一,能够有效消除数据冗余和噪声,但其无法处理非线性数据。KPCA是PCA的非线性形式,将数据映射到高维特征空间进行处理,能够揭示原始高维特征之间复杂的相关性[22]。同时,KPCA是对样本进行整体处理,为了防止在降维过程中丢失局部信息,本文采用KPCA方法对于CLBP_C、CLBP_S和CLBP_M提取的直方图分别进行分块降维处理。将降维后的直方图级联,分别形成CLBP_C、CLBP_S和CLBP_M直方图,再将三个直方图数据联合成最终的特征向量。
由于三种特征之间数值差异较大,因此将提取的三部分特征分别归一化到[0,1]:
(4)
式中:FN表示一组特征归一化后的值;F指原始特征向量值;Fmin和Fmax分别表示原始特征向量的最小值和最大值。
将归一化后的三组特征进行串联,得到融合特征Ffu:
Ffu={FN1,FN2,FN3}
(5)
融合特征包括几何特征42维,CLBP纹理特征48维,CNN特征81维,共171维特征。特征维度较低,既满足了特征的全面性,又有效减少了冗余特征,提高识别效率。
本文提出了一种融合局部几何特征、全局CLBP特征和CNN深度特征的表情特征提取方法,使用SVM作为分类器进行表情分类,流程如图4所示。
图4 基于多特征信息融合的表情识别流程
具体步骤如下:
Step1对数据库中人脸图片进行倾斜校正、大小归一化、直方图均衡和灰度归一化处理;
Step2将预处理后的图像数据输入CNN网络中提取深度特征;
Step3对数据库中表情图像提取几何特征;
Step4对预处理后的表情图像提取CLBP全局纹理特征,并进行分块KPCA降维;
Step5将提取的三种特征分别归一化,然后进行级联融合;
Step6将融合后的特征输入支持向量机中进行训练和分类。
如图5所示,本文构建了自发学习表情数据库,并在此基础上对学生的学习表情进行了识别方法的研究。现存的表情数据库如JAFFE表情库、CK表情库等多是针对基本表情,与学习表情的类别存在差异。另外,人为表情与实际表情存在较大差别,而学生在课堂学习中的表情多是在学习内容刺激下自然产生的,因此人为表情库不能满足对真实应用场景的研究。选取了22名研究生作为被试,其中女生15名,男生9名,录制了其学习过程中的自发表情数据。该全新的数据库将会在作者个人主页公开,供科学研究使用。
图5 自主开发的自发学习表情数据库(部分图片)
数据采集过程如下:
(1) 前期准备。选择采光良好的实验室,录制设备采用Intel(R) Real Sense(TM) Camera SR300摄像头。情感诱导材料选取了两节难度不同学习视频,每节课45分钟并配有相应的测试题目。
(2) 制定数据采集规范。将被试与摄像头之间的距离控制在40~60cm之间,保存640×360 30fps RGB视频流与面部78个特征点的屏幕坐标信息,命名格式为姓名加编号。
(3) 录制视频。录制被试观看学习视频和做题时的表情变化。
(4) 表情标注。由每名被试和心理学专家分别观看视频,被试在出现情感的部分进行分割和标注,心理学专家在出现表情的部分进行分割和标注。通过对录制数据进行整理,最终得到22名被试的979张峰值自发表情图像,包括惊讶、疲倦、困惑、快乐和中性五类学习表情。
本文选用支持向量机(SVM)作为分类器。选择RBF核作为SVM的核函数,因为RBF核能够实现非线性映射,并且参数数量少,降低了模型的复杂程度。采用十折交叉验证获得的最佳c和g参数值对数据库图片进行分类。在自发学习表情数据库、CK+数据库、中国情绪图片系统和中每种表情选取四分之三作为训练样本,剩下的四分之一作为测试样本。进行十折交叉验证,计算平均值作为最终识别率。实验数据库预处理样本图如图6所示。
(a) CK+库
(b)中国化情绪图片系统
(c) 自发学习表情数据库图6 实验数据库预处理样本图
本文算法在自发的学习表情数据中的识别率为95.6%。由表1可以看出,惊讶表情与其他表情混淆的概率较大,分析原图发现学习时的产生惊讶有些比较微弱,显示在面部表情中仅是眉毛轻微上挑的动作,因此较难区分。表2为自发学习表情数据库在不同特征下的识别率对比,结果显示,单独使用局部特征或全局特征时,仅对某种学习表情识别效果较好,如快乐、疲倦,融合特征的使用提升了每种表情以及总体的识别率,证明了本文提出的融合特征能够有效识别学习表情。
表1 融合特征在自发学习表情库上的混淆矩阵
表2 自发学习表情数据库不同特征的识别结果
中国化面孔情绪图片系统中的图片皆为中国面孔,每一类情绪图片都包含不同的强度,强度为1时表情接近中性,相当于微表情,强度为9时表情最为饱满[23]。因此对研究适合中国面孔的不同情绪强度的表情识别算法有一定意义。系统中包含46个人的7种情绪共870张表情图片,其中高兴248张、惊讶150张、恐惧64张、悲伤95张、厌恶47张、愤怒74张、中性222张。
本文算法在中国情绪图片系统上的识别率为86.7%,识别率比较低的主要原因是数据库中的图片情绪有不同的强度,如表3和图7。部分恐惧表情变化幅度较大,被误判为惊讶;一些开心的情绪强度较弱,容易被识别为中性。由实验结果可以得出,本文算法对于中国化表情的识别是有效的。
表3 融合特征在中国情绪图片上的混淆矩阵
图7 误识的恐惧和开心表情示例
CK+库是目前表情识别领域最常用的数据库之一,包含123个被试的593个表情序列。为了进一步验证本文算法的有效性,选取CK+数据库中带标签序列的峰值帧图像作为实验图像,共327张,其中高兴69张、悲伤28张、厌恶59张、愤怒45张、惊讶83张、蔑视43张。
本文算法在CK+库上的识别率为96.3%。由表4可知,生气、厌恶、蔑视三种情绪容易被混淆,主要因为这三种情绪之间存在一定的相似性。例如,生气和厌恶时都会皱眉,蔑视和厌恶都会产生嘴角下拉的特征等。蔑视表情的识别率较低的原因是因为样本量较少,难以训练出有效的特征。
表4 融合特征在CK+库上的混淆矩阵
将本文算法与部分具有代表性的特征提取方法的识别率进行了对比,如表5所示。苏志铭等[24]提取了点和线段两种几何特征,识别率为84.45%。胡敏等[25]利用特征点间距离作为几何特征,基于相似中性脸对特征的比例系数进行自适应加权,识别结果在CK库中达到93%。本文的几何特征识别率为93.8%,由此可见,本文提出的多种几何向量的组合比单一或较少几何特征区分性更高。苏志铭等[24]用AR模型建立分类器,提取几何特征与纹理特征实现动态表情的识别,识别率为86.45%。罗元等[26]将眼睛、嘴巴部分的LBP特征与DCT全局特征相融合,利用SVM进行分类,识别结果达到95%。本文方法相较于以上算法,识别率有所提高,证明了本文的方法有效性。
表5 本文算法与其他表情识别算法对比
利用损失函数对本文提出的CNN模型进行评估,如图8所示,误差在训练开始时快速下降,收敛速度快,之后保持稳定状态。图9展示了局部几何特征、CLBP全局纹理特征、CNN全局深度特征在CK+库、学习表情库和中国情绪库上的对比。实验结果表明,高层次与低层次兼顾的全局特征比单一全局特征的效果更好。在CK+库和中国化情绪图片系统中局部几何特征的识别效果显著,而在自发学习表情数据库中融合的全局特征识别率更高,说明仅使用局部或全局特征难以适用于多种数据库,鲁棒性较低。将局部特征与全局特征融合后,在三种数据库中得到的识别率都是最高的,证明了融合特征能够充分利用特征各自的优势与鉴别能力,提升识别率和鲁棒性。
图8 本文CNN模型训练损失曲线
图9 融合特征识别率对比实验结果
本文提出了一种结合局部特征与全局特征的学习表情特征提取方法。该方法中局部特征是针对表情发生时变化幅度较大的眉毛、眼睛、嘴巴区域提取了四种几何特征,全局特征融合了CLBP浅层纹理特征和CNN深度网络特征。在提取CLBP特征后,应用KPCA进行了降维处理。将归一化后的三种特征进行融合,通过SVM实现表情的分类。将本文提出的方法分别在自发学习表情数据库、CK+库和中国化情绪图片系统中进行测试,对学习表情数据库中的五类表情测试的准确率是95.6%,对CK+和中国化情绪图片的七类表情分类的识别率分别是96.3%和86.7%,验证了该方法的有效性。本文方法可用于课堂教学环境下学生面部表情识别,如困惑、快乐、惊讶、疲倦和中性等五种学习相关表情。在今后的研究中,要进一步实现学习表情的实时识别,使其能够应用于真实的智慧课堂教学环境中,帮助教师及时掌握学生的学习状态。