基于低像素人脸图像的表情识别 下载: 960次
1 引言
面部表情识别技术使计算机能够通过人的表情得到人的情绪信息,从而对人的状态、意图进行判断,在人机交互、安全驾驶、智能广告系统等领域均有重要意义[1-3]。CK+数据集是经典的人脸表情库,包含愤怒、厌恶、恐惧、快乐、悲伤、惊喜和蔑视的表情图像,其中的表情为视频序列,即包含了同一个表情由平静到剧烈的系列图像[4],可从中提取出中性表情图像。
受距离等因素的影响,图像会出现人脸模糊、脸部像素点少的问题,低像素人脸图像的表情识别就是识别画质低、面部特征不明显的人脸图像,通过降采样得到的图像尺寸均为32 pixel×32 pixel,符合低像素特征。面部表情图像的复杂性高,在面部特征不明显的情况下,难以通过提取鲜明的特征信息进行识别。针对尺寸为32 pixel×32 pixel的面部表情图像,李勇等[5]提出了一种基于改进LeNet-5卷积神经网络(CNN)的面部表情识别方法;江大鹏等[6]提出了一种基于局部二值模式(LBP)的CNN面部表情识别方法。研究表明,CNN在低像素人脸图像的表情识别方面效果较好。本文在此基础上,对CNN模型进行了改进,提出了一种用于低像素人脸图像的表情识别方法,并与其他几种方法进行对比,结果表明该方法识别效果较好。
2 低像素人脸图像的表情识别方法
2.1 面部表情图像预处理
一般的表情识别方法包括:图像预处理、面部特征提取以及表情识别。图像表情识别预处理阶段是进行人脸检测,得到面部区域图像[7]。对低像素人脸图像表情的识别,还需在预处理时进行图像增强或图像超分辨。图像增强是通过改变像素的分布规律增强图像的已有信息,图像超分辨是通过增加像素点恢复一些丢失的像素信息。
本方法的图像预处理包括:人脸检测和裁剪、灰度处理、降采样、数据增强及图像增强。人脸检测的目的是在图像中准确标定出人脸的位置和大小,使用Dlib模型进行人脸检测,Dlib模型可以自动估计图像中脸部特征点的坐标[8],在OpenCV库中处理数据。以此为基础剪裁图像,使图像特征集中在面部。灰度处理是将彩色图像转化为灰色图像的过程。降采样是为了标准化输入CNN模型中的图像尺寸,使用双线性内插法,保证了重新采样后的图像面部位置与原图像相同。使用CNN进行图像识别,训练数据量的大小直接影响了最终识别效果,数据量越大,效果越好。常用的数据增强方法有镜像、旋转以及加入噪声等[9],对原始数据进行镜像及不同角度、不同方向的旋转,使数据增强为原始数据的13倍,再对已有数据添加不同系数的噪声(椒盐噪声、高斯噪声、泊松噪声以及斑点噪声),最终数据增强为原始数据的130倍。对图像进行直方图均衡化并用局部二值模式获得增强后的图像,其中直方图均衡化又称直方图平坦化,实质是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素值数量大致相等。局部二值模式是描述图像局部纹理特征的算子,具有旋转和灰度不变性等优点,可用于提取图像的局部纹理特征。具体预处理流程如
2.2 改进的卷积神经网络模型
随着计算机处理能力的发展,CNN在图像识别方面取得了惊人的成绩[10],新的网络模型结构不断被提出,基于CNN的图像识别方法效率也不断提高,逐渐取代了传统面部表情图像识别方法。2012年的ImageNet面向对象识别的挑战(ILSVRC)中,Krizhevsky等[11]利用CNN模型AlexNet夺得冠军。2014年的ILSVRC的比赛中,CNN模型GoogLeNet架构在分类方面获得第一名[12-13]。Simonyan等[14]提出的CNN VGGNet取得了分类组第二名和定位项目组第一名的成绩。VGGNet在加深网络层数的同时为了避免参数过多,所有层都采用3×3的小卷积核,卷积层步长设置为1。多个卷积层与非线性激活层交替的结构,使其比单一卷积层结构能提取出更深层、更好的特征。在ILSVRC 2015的比赛中,He等[15]提出的ResNet获得冠军,ResNet中有一种叫Shortcut Connection的连接方式,理论上可在网络层不断加深的情况下,使网络一直保持最优状态。没有像素限制的情况下,面部表情中有足够多的特征信息用于优化模型参数,从而得到良好的识别效果。对于低像素人脸图像,需要对不明显的特征信息充分利用,在此基础上,提出了一种针对低像素人脸图像的表情识别的CNN模型,以便更好地提取面部特征。
输入CNN模型的图像尺寸为32 pixel×32 pixel,增加CNN的层数以增加网络模型的非线性,使决策函数的识别能力更强。为避免由加深网络层数导致的梯度消失和梯度爆炸问题,网络需要有更复杂的结构。Srivastava等[16]提出了一种网络连接结构Highway Networks,该结构中的一部分特征不需要处理就可以直接通过某些网络层,使结构更容易优化。结合该结构和Shortcut Connection连接方式,避免了使用更深层网络出现的梯度消失和梯度爆炸问题。实验使用的CNN模型如
在卷积操作和池化操作中,输入特征图的尺寸、卷积和池化操作的内核的大小、步长以及输出特征图的尺寸的数学关系式为
式中,w2为卷积或池化操作后的特征图尺寸,w1为卷积或池化操作前特征图的尺寸,f为卷积和池化操作的内核的尺寸,p为零填充的像素个数,s为步长。
将模型第三层的输出和第五层的输出张量进行求和运算,得到128个尺寸为14 pixel×14 pixel的特征图,再经过ReLU激活函数,作为第六层的输入。将模型第七层和第九层的输出张量进行求和运算,得到256个尺寸为6 pixel×6 pixel的特征图,再经过ReLU激活函数,作为第十层的输入。第十二层是全连接层,将第十层和第十一层的输出分别经过ReLU激活函数,再将得到的张量进行串联运算作为第十二层的输入,输出为160个神经元,最后一层是SoftMax分类器,输出为8个网络节点,分别表示输入图像为不同表情状态的概率。
该CNN中包含了卷积、池化及全连接3种基本运算。其中卷积又分为内卷积和外卷积,即无0填充情况下的卷积和有0填充情况下的卷积。设输入为M×N的矩阵A,卷积核为m×n的矩阵B,且M≥m,N≥n,则其内卷积操作的输出为C=A
式中,1≤i≤M-m+1,1≤j≤N-n+1,为与矩阵A的行列对应相乘,设矩阵B对应位置的像素为bst,矩阵A对应位置的像素为ai+m-s,j+n-t。外卷积定义为将A进行0填充,填充后矩阵的行列与B矩阵的行列数有关,使其成为(M+2m-2)×(N+2n-2)矩阵,再与B做内卷积,可表示为
表 1. 卷积网络参数
Table 1. Convolutional network parameters
|
对矩阵A进行池化,假设对其进行不重叠分块,每块大小为λ×τ,第ij块用矩阵
式中,ast为矩阵A中第s行第t列元素,(ast)λ×τ为矩阵A中λ×τ个元素组成的矩阵块,(i-1)×λ+1≤s≤i×λ,(j-1)×τ+1≤t≤j×τ,最大池化的定义为
平均池化的定义为
用大小为λ×τ的不重叠块对最大池化后的Amax和平均池化后的Amean分别进行下采样,可表示为
对于全连接层的输入A,全连接层的每一个输出都可以看成前一层中第r个结点ar乘以其权重系数wr,再加上一个偏置值bh得到。如设全连接层输入有256×2×2个结点,即输入特征图为256@2×2,输出有80个结点,则一共需要256×2×2×80=81920个权值系数和80个偏置参数,则其输出向量D中单个元素dh可表示为
式中,k为输入特征图的个数。
3 低像素人脸图像的表情识别实验
3.1 数据集准备
实验使用CK+数据集,该数据集是用于评估人脸表情识别(FER)系统的数据集,也是目前面部表情识别比较通用的数据集。包含的视频序列分别来自123个受试者的593个视频序列,持续时间为10~60 frame不等,显示了由平静到剧烈的系列图像。由于原始图像在不同表情上的数目分布不均衡,其中中性表情图像为该表情开始或结束时的图像,依据原始数目分布,选取每个表情序列最后1~3幅表情图像。用于建模的图像共686幅,其中80%用作训练集,20%用作测试集。同一人相同表情的峰值图像不会同时出现在训练集和测试集中。
对训练集进行数据增益,将经过数据增益和未经过数据增益的测试集在同一个被训练好的模型中做测试,发现得到的识别准确率相差较小,因此对测试集不做数据增益处理,最终得到训练集图像规模为71370幅,测试集图像规模为137幅。将所有图像分别进行直方图均衡化和局部二值模式,得到包括原图在内三份规模相同的数据集。
表 2. 人脸表情数据库
Table 2. Facial expression dataset
|
3.2 评价标准
面部表情识别方法主要评价标准是识别准确率和识别速度,其中识别准确率是测试集中正确识别的表情样本数和所有测试集样本数的比值。识别速度是识别模型建立好后识别每个测试集样本所花费的时间,即为测试集识别所花费时间与测试集样本数的比值。
式中,A为识别准确率,p为测试集样本总数,g为指示函数,xb为给定的样本,f(xb)为样本通过模型后的输出,yb为给定样本的标签,td为识别速度,T为所花费的总时间,可通过最后一个测试样本识别后的时间减去第一个测试样本识别之前的时间得到。
3.3 实验过程
表情识别中,由于输入CNN的图像像素低,输出的识别效果会有小幅度波动,因此引入决策融合,做最后的图像识别。在测试阶段,使用五个训练好的网络模型分别对测试集数据进行判断,再使用SoftMax平均值投票(SAV)方式,融合五个模型的判定结果,得到最终结果,以此提升识别效果,测试步骤如
由2.2小节中可知,CNN的输出是一个1维向量,向量中每个元素的值分别为图像可能是某个类别的概率大小。SoftMax平均值投票是将五个训练好的CNN输出结果取平均值,最后输出可能性最大的结果,取三次实验的平均值。实验环境:硬件平台:显卡为NVIDA GeForce 940MX,主频为1122 MHz,内存为2.00 GB。软件平台:操作系统为linuxubuntu16.04,软件为 python3.6、NVIDA CUDA和cuDNN库。为提高识别准确率,采用的训练策略为
1) 在每个卷积层和池化层后都加入批量标准化(BN)和ReLU激活函数克服梯度消失和加快训练速度。
2) 选择性加入L2正则化和Droupout缓解过拟合。
3) 采用学习率衰减的策略,学习率初始时选择一个较大值,N轮迭代后衰减为初始学习率1/10。优化时选用Adam优化算法,使网络能够更快寻找全局最优点。
4) 在数据集分别为原始图像、直方图增强后的图像和局部二值模式特征图时训练CNN模型,并对网络进行调参。
根据测试的准确率,先确定是否需要加入L2正则化以及Droupout层,再确定在哪层放置。根据训练时的损失确定学习率的大概范围,根据训练损失与测试时的准确率,通过两次二分法对学习率进行取值。
3.4 结果分析
为寻找人脸表情识别系统的最优情况,在CNN模型中分别输入原始图像数据集、局部二值模式特征图的数据集和直方图均衡化后数据集,得到的平均识别准确率和速度如
表 3. 识别准确率和时间对比
Table 3. Comparison of recognition accuracy and time
|
可以发现,输入为直方图均衡化后的数据集准确率优于原始图像的数据集,而输入为局部二值模式特征图的数据集准确率最差。三者在速度上并无明显差别,输入为局部二值模式特征图的数据集识别速度稍快,但0.29 s的速度与3.6%的准确率相比优势较小。分析
表 4. 改进CNN模型的识别准确率
Table 4. Improved recognition accuracy of CNN modelunit: %
|
从
为证明所提出方法和决策融合方法对低像素人脸图像的表情识别具有针对性,分别在两种情况下进行实验,一种是用经典的浅层卷积神经网络LeNet-5替代改进的CNN模型,第二种是在不使用决策融合情况下进行实验。
表 5. 两种模型识别准确率和时间对比
Table 5. Comparison of recognition accuracy and time between two models
|
由
近年来,对尺寸为32 pixel×32 pixel的人脸图像进行表情识别的方法相继被提出。在CK+数据集上,李勇等[5]提出了一种跨连LeNet-5的CNN,对不包括中性表情在内的图像进行七分类,识别准确率为83.74%。李宽[17]提出一种浅层CNN,取得97.38%的七分类识别准确率,比本方法的识别准确率高,但跨数据集识别时,用训练好的模型在JAFFE数据集进行六分类时,识别准确率仅有40.98%,泛化能力差。
4 结论
针对低像素人脸图像的表情识别,提出了一种基于改进的CNN表情识别方法。参考Shortcut Connection连接方式和Highway Networks连接结构,通过增加卷积层的方式增加网络模型非线性,减少了梯度消失和梯度爆炸的问题。能从更多层次中提取图像特征,反映图像信息,获得了更好的识别性能。但该方法的识别准确率相对于高像素人脸图像识别准确率仍有差距,之后希望运用反卷积等方法实现CNN各层特征的可视化,更好地理解各层特征,从而找到准确率更高、通用性更好的网络模型。
[1] 姜明星, 胡敏, 王晓华, 等. 视频序列中表情和姿态的双模态情感识别[J]. 激光与光电子学进展, 2018, 55(7): 071004.
[2] 何志超, 赵龙章, 陈闯. 用于人脸表情识别的多分辨率特征融合卷积神经网络[J]. 激光与光电子学进展, 2018, 55(7): 071503.
[3] 王秀友, 范建中, 刘华明, 等. 基于概率协作表示的多表情序列融合识别[J]. 激光与光电子学进展, 2019, 56(13): 131004.
[4] LuceyP, Cohn JF, KanadeT, et al. The extended cohn-kanade dataset (CK+): a complete dataset for action unit and emotion-specified expression[C]∥2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition-Workshops, June 13-18, 2010, San Francisco, CA, USA. New York: IEEE, 2010: 94- 101.
[5] 李勇, 林小竹, 蒋梦莹. 基于跨连接LeNet-5网络的面部表情识别[J]. 自动化学报, 2018, 44(1): 176-182.
Li Y, Lin X Z, Jiang M Y. Facial expression recognition with cross-connect LeNet-5 network[J]. Acta Automatica Sinica, 2018, 44(1): 176-182.
[6] 江大鹏, 杨彪, 邹凌. 基于LBP卷积神经网络的面部表情识别[J]. 计算机工程与设计, 2018, 39(7): 1971-1977.
Jiang D P, Yang B, Zou L. Facial expression recognition based on local binary mode convolution neural network[J]. Computer Engineering and Design, 2018, 39(7): 1971-1977.
[7] JainS, Hu CB, Aggarwal JK. Facial expression recognition with temporal modeling of shapes[C]∥2011 IEEE International Conference on Computer Vision Workshops, November 6-13, 2011, Barcelona, Spain. New York: IEEE, 2011: 1642- 1649.
[8] King D E. Dlib-ml: a machine learning toolkit[J]. Journal of Machine Learning Research, 2009, 10(3): 1755-1758.
[9] Lopes A T, de Aguiar E, de Souza A F, et al. Facial expression recognition with convolutional neural networks: coping with few data and the training sample order[J]. Pattern Recognition, 2017, 61: 610-628.
[10] 卓东, 景军锋, 张缓缓, 等. 基于卷积神经网络的短切毡缺陷分类[J]. 激光与光电子学进展, 2019, 56(10): 101009.
[11] Krizhevsky A. SutskeverI, Hinton GE. ImageNet classification with deep convolutional neural networks[C]∥Proceedings of the 25th International Conference on Neural Information Processing Systems, December 3-6, 2012, Lake Tahoe, Nevada, USA.2012: 1097- 1105.
[12] SzegedyC, IoffeS, VanhouckeV. Inception-v4, inception-ResNet and the impact of residual connections on learning[C]∥ Thirty First AAAI Conference on Artificial Intelligence, February 4-10 , 2017, Hilton, San Francisco Union Square. Palo Alto, California: AAAI, 2017: 4278- 4284.
[13] MollahosseiniA, ChanD, Mahoor MH. Going deeper in facial expression recognition using deep neural networks[C]∥2016 IEEE Winter Conference on Applications of Computer Vision, March 7-10, 2016, Lake Placid, NY, USA. New York: IEEE, 2016: 1- 10.
[14] SimonyanK, ZissermanA. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2019-06-15].https: ∥arxiv.org/abs/1409. 1556.
[15] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition, June 27-30, 2016, Las Vegas, Nevada, USA. New York: IEEE, 2016: 770- 778.
[16] Srivastava RK, GreffK, SchmidhuberJ. Training very deep networks[EB/OL]. [2019-06-15].https:∥arxiv.org/abs/1507. 06228.
[17] 李宽. 基于浅层卷积神经网络的人脸表情识别方法研究[D]. 合肥: 中国科学技术大学, 2019: 42- 47.
LiK. Facial expression recognition based on shallow convolutional neural network[D]. Hefei: University of Science and Technology of China, 2019: 42- 47.
Article Outline
刘芾, 李茂军, 胡建文, 肖雨荷, 齐战. 基于低像素人脸图像的表情识别[J]. 激光与光电子学进展, 2020, 57(10): 101008. Fu Liu, Maojun Li, Jianwen Hu, Yuhe Xiao, Zhan Qi. Expression Recognition Based on Low Pixel Face Images[J]. Laser & Optoelectronics Progress, 2020, 57(10): 101008.