基于卷积神经网络特征图聚类的人脸表情识别

2020-04-09 04:48刘全明辛阳阳
计算技术与自动化 2020年1期
关键词:卷积神经网络

刘全明 辛阳阳

摘   要:针对卷积层存在的特征冗余问题,提出了一种基于卷积神经网络的特征图聚类方法。首先通过预训练网络参数提取网络最后一层卷积层的特征图,然后对特征图进行聚类操作,取聚类中心构成新的特征图集合,以聚类后的特征图集作为数据集训练分类器。将有监督的深度学习方法与传统的机器学习方法相结合,使用特征图聚类进行特征去冗余让网络学习到更有效的特征。去冗余后的特征使用神经网络分类器在fer2013测试集上达到了71.67%准确率,在CK+测试集上达到86.98%准确率,证明了该人脸表情识别方法的有效性。

关键词:卷积神经网络;特征冗余;特征图聚类;表情识别

中图分类号:TP391.4                                             文献标识码:A

Facial Expression Recognition Based on Convolutional

Neural Network Feature Map Clustering

LIU Quan-ming?覮,XIN Yang-yang

(College of Computer and Information Technology,Shanxi University,Taiyuan,Shanxi 030006,China)

Abstract:To solve the problem of feature redundancy in convolution layer,a feature graph clustering method based on convolution neural network is proposed. Firstly,the feature map of the last convolution layer of the network is extracted by pre-training network parameters,and then the feature map is clustered. The clustering center is taken to form a new set of feature graphs,and the clustered feature graph set is used as the training classifier of the data set. This paper combines supervised in-depth learning method with traditional machine learning method,and uses feature graph clustering to remove redundancy so that the network can learn more effective features. After redundancy removal,the neural network classifier achieves 71.67% accuracy on fer2013 test set and 86.98% accuracy on CK + test set,which proves the validity of the facial expression recognition method.

Key words:convolutional neural network;feature redundancy;feature graph clustering;facial expression recognition

人臉表情不仅可以传达人类情绪,而且还能够表现人类丰富情感信息。研究发现,信息交流过程中,可通过人脸传递的信息量占据了总信息量的55%[1],因此通过人脸表情的识别来获取信息是一种有意义且可行的操作。心理学家Mehrabian[2]最早提出人类有六种主要情感,每种情感以唯一的表情来反映人的一种独特的心理活动。这六种情感被称为基本情感,由愤怒(anger)、高兴(happiness)、悲伤 (sadness)、惊讶(surprise)、厌恶(disgust)和恐惧(fear)组成,后又添加了中性共七种表情。人脸表情识别主要是针对这七种表情,通过人脸定位、特征提取和分类识别来自动分辨人脸表情类别。

特征提取与分类识别是人脸表情识别的关键环节。基于模型的静态特征提取方法通常采用主动形状模型或者主动外观模型来定位人脸的关键点位置,然后在关键点位置提取几何或者纹理特征[3]。基于图像的静态特征提取方法通常采用Gabor变换[4]、主成分分析[5]、局部二元模式[6]等提取图像的静态特征。在分类识别方面,通常采用机器学习建立分类器,对人脸表情特征进行分类,常用的方法有迭代算法(Adaboost)[7]、支持向量机(SVM)、神经网络[8]和深度学习网络[9]等。目前基于深度学习的表情识别方法的主要问题在于特征相关度过高或者冗余数据过多,耗费时力且识别精度一般[10]。

特征提取的过程中需要进行特征选择[11,12]。常用的特征选择方法是最大化特征与分类变量之间的相关度,即选择与分类变量拥有最高相关度的变量。但是在特征选择中,由于特征之间可能是高度相关或相似的,因此多个出色的特征组合并不能增加分类器的性能,这就导致了特征变量的冗余[12]。由Peng et.al提出的一种滤波式的特征选择方法最小冗余最大相关性(mRMR)[13,14],mRMR的核心思想最大化特征与分类变量之间的相关性,而最小化特征与特征之间的相关性。在神经网络中通过池化层进行特征选择并利用层剪枝[15]的方式来压缩模型,达到压缩参数[16]和减少计算量目的。文献[10]提出一种基于特征相关性的特征选择方法,利用聚类挑选出具有代表性的特征,取得了不错的分类效果。

提出了一种基于卷积神经网络特征图聚类的人脸表情识别方法:先使用一个卷积神经网络进行预训练,在预训练网络最后一层池化层后添加分类误差去更好的学习最后一层卷积层的权重参数。通过预训练的权重参数提取出样本图像的最后一层卷积层的特征图,分别使用SVM和神经网络分类器对聚类后的特征图进行分类。我们提出在融合剪枝层的基础上进行特征图聚类,通过聚类进行更深层次的特征选择,以删除高度相似的人脸表情特征,减少计算量的同时提高模型的效率,并提高人脸表情分类精度。通过实验比较和分析验证了本文方法的正确性与有效性。

1   网络设计

主要介绍基于卷积神经网络特征图聚类的人脸表情识别使用的预训练网络、特征图聚类方法、分类器以及使用的损失函数,使用特征图聚类来选取有效特征,利用浅层网络在保持较少的参数量的同时保证分类准确率。

1.1   预训练网络

卷积神经网络主要包括输入层、卷积层、池化层、全连接层和输出层[17]。通过输入层将图像以张量的形式传入到网络中,通过一系列的卷积层进行特征提取,池化层用来进行特征选择,在网络中的特征以图的形式进行映射传递。池化层得到有效的特征经过全连接层进行特征组合,将这些具有辨别性的特征用来进行表情分类。预训练模型网络框架如图1所示:

图1   预训练模型网络框架

預训练网络主要由卷积层,池化层和全连接层这三部分组成,与大多数卷积神经网络相似,在卷积层后接池化层,网络后端为全连接层。利用卷积层提取图像的局部纹理等特征,通过最大池化层进行下采样[18],分支网络直接在最后一层池化层后添加一个分类层,该层的神经元个数和主干网络最后一层相同,防止由全连接层的级联低维映射和激活函数造成的编码特征损失,可以让网络前层卷积层学习到更好的参数。主干网络的最后一层使用Soft max层进行分类。

1.2   特征图聚类(Feature-Image-Cluster,FIC)

假设网络一次训练一个样本,在通过最后一个卷积层后会有64张特征图,对这64张特征图进行K聚类实现特征降维及有效特征的选取,如式(1)所示。

mapcuuster = K(mapConv,k)          (1)

k为类别个数,mapcluster为聚类后的k个类别的聚类中心组成的新的特征图,mapConv为卷积层生成的原始特征图,K为聚类操作。

图2中图(a)为训练样本图;图(b)为网络最后一层卷积层的特征可视化图,从图中可以发现有部分特征图相似;图(c)为对最后一层卷积层的64张特征图聚类后得到的每一类聚类中心;图(d)为聚类后的属于某一类的特征图,从图中可以发现第一行的第1,2,3张,第二行的第3,4张,第三行的第4张,第四行的第1张相似,它们表示的特征具有相似性。通过聚类只选取每一类的聚类中心用于分类。

图2   特征图聚类过程

1.3   分类器

分别采用SVM分类器和Soft max神经网络分类器(FC)进行分类结果分析,将聚类后的特征图作为分类器的输入,SVM分类器使用前先采用PCA对特征进行降维,然后采用RBF核的SVM进行分类;Soft max神经网络分类器主要由全连接层构建,输入的是特征图的聚类中心图,通过全连接层连接到输出,最后一层全连接层使用的激活函数是soft max,所以也称Soft max层,通过Soft max层将输出变为属于各个类别的概率。

1.4   损失函数

在预训练网络中我们使用分支网络的分类误差和主干网络的分类损失引导训练。

1)分类误差:是指图像的类别标签和预测值之间的误差。如式(2)所示:其中zj表示分类层中第j个神经元的激活值,m代表神经元的个数,即图像类别。

L (classification)(y,z) = -log(e■/■e■)          (2)

2)分类损失

可以将基于深度学习的表情识别作为一个多分类问题,设计卷积神经网络结构。作为一个用于多分类的卷积神经网络结构,自然离不开soft max激活函数。使用soft max激活函数实现从特征空间到[0,1]概率空间的映射,得到每一个像素分类得分的概率,然后使用交叉熵指导网络训练。将通过分类层得到的输出作为交叉熵的输入,计算得到分类损失。分类损失公式如式(3)所示,假设样本类别数为n,则分类层有n个输出向量,Si是分类层的输出向量S的第i个值,表示样本属于第i个类别的概率,y是一个1*n的向量,而且只有一个1值其余则都为0,Lsoft max表示的是分类损失。

Lsoft max = -■yilogSi          (3)

预训练网络的总损失如式(4)所示,包含两部分。全连接层的低维映射和非线性映射会产生的分类误差,将这些低维映射进行级联则会损失分类精度。通过建立分支网络,在最后一个池化层后添加一个分类层,并计算分类误差来解决问题。

L = L (classification) + Lsoft max          (4)

2   实验

实验通过在具有GPU的1080ti显卡的电脑上搭建TensorFlow框架来构建网络模型并训练,各个模型的训练参数如表1所示。

表1   训练参数

2.1   预处理数据集

使用fer2013数据集和CK+数据集来训练网络进行实验分析。

Fer2013人脸表情数据集由35886张人脸表情图片组成,其中,训练集28708张,验证集和测试集各3589张。每张图片是由大小固定为48*48的灰度图像组成,共有7种表情,分别对应于数字标签0-6,具体表情对应的标签和中英文如下:0(anger)生气;1(disgust)厌恶;2(fear)恐惧;3(happy)开心;4(sad)伤心;5(surprised)惊讶;6(neutral)中性。

CK+人脸表情数据集由920张人脸表情图片组成,本文随机选取734张为训练集,剩下186张为测试集,我们将每张图片是由大小固定为48*48,共有8种表情,具体表情对应的标签和中英文如下:(anger)生气;(contempt)轻视;(disgust)厌恶;(fear)恐惧;(happiness)开心;(sadness)伤心;(surprise)惊讶;(neutral)中性。

使用网络进行原始样本的训练,得到预训练权重,将其作为网络初始化权重提取最后一层卷积层的特征图,对提取到的特征图进行聚类得到新的特征图作为分类器的训练集。由于处理数据量较大,为了方便处理数据,将提取到的特征图保存为CSV格式。

如图3(a)所示对fer2013数据集七个表情类下每个样本提取的最后一层卷积层聚类后的特征图,每个类别下都有多个样本(横行),每个样本下有多张特征图(纵行),数据保存为CSV格式。本文通过实验分析采用K=40的聚类,所以每个样本下都有40张特征图。图3(b)为将聚类后的特征图保存为CSV格式文件后的标签值和像素值。第一列label是数据样本对应的标签,后面列pixel0-pixel5759表示(12*12*40)个像素的像素值。12*12表示的是聚类后每张特征图的大小,40表示的是聚类后每个样本下有40张特征图。对于CK+数据集的处理与fer2013数据集的处理方式相同。

(a)每个类别下的特征图

(b)CSV文件

图3

2.2   实验展示

首先分别在fer2013和CK+的训练集上进行实验。通过比较不同K值在训练集上的准确率选择合适的K值,然后通过在训练集上混淆矩阵的比较进一步确定本文方法的可行性。最终分别在两个数据集的测试集上进行验证。

采取不同K值聚類得到的准确率如图4,5所示,从图中我们可以发现当K=40时在fer2013训练集和CK+训练集上分别使用FC分类器和SVM分类器有一个较高的准确率,图中的original_image_acc表示的是K=64。表3和表4是分别对两个数据集使用FC分类器和SVM分类器的准确率值。根据图和表展示的结果,本文采用K=40聚类进行接下来的实验。

epoch

(a)在FC分类器上训练精度

epoch

(b)在SVM分类器上训练精度

图4    使用预训练模型聚类后在fer2013训练集上训练精度

(a)在FC分类器上训练精度

(b)在SVM分类器上训练精度

图5   使用预训练模型聚类后在CK+训练集上训练精度

表3   不同K值在fer2013训练集上分别在FC分类器

和SVM分类器上的准确率

表4   不同K值在CK+训练集上分别在FC分类器

和SVM分类器上的准确率

如图6所示为不同策略在fer2013训练集上的混淆矩阵,从混淆矩阵结果可以看出,本文方法在每个类别上的分类准确率都有所提高。图6(a)为CNN模型的混淆矩阵;图6(b)是特征图聚类后采用FC分类器的混淆矩阵,其中最低分类正确率为0.53,是对第三种类别的正确分类,而最高分类是对第四种表情达到0.87;图6(c)是特征图聚类后采用SVM分类器的混淆矩阵,其中最低分类正确率为0.62,是对第六种类别的正确分类,而最高分类是对第七种表情达到0.98。

通过以上在fer2013训练集混淆矩阵结果,我们确定了本文方法的有效性。分别在fer2013的测试集和CK+测试集上进行验证,比较本文方法和一般的CNN方法,准确率如表5和表6所示,在fer2013测试集上进行特征图聚类后使用Soft max神经网络分类器准确率为71.67%,而CNN方法只有67.94%,SVM分类器由于分类器的局限性导致准确率并没有大的提升。

(a)CNN

(b)FC分类器

(c)SVM 分类器

图6 预训练模型和特征图聚类在fer2013训练

数据集上的混淆矩阵图

表5   采取不同策略在fer2013训练集

和测试集上准确率的比较

表6   采取不同策略在CK+数据集上训练集

和测试集准确率的比较

如表7所示,将本文方法与现有的单模型和集成方法在fer2013测试集进行比较,本文方法在使用相对较浅层的网络也能够达到一些先进的单模型方法的精度。从表中可以看出单模型中精度最好的是CPC方法准确率为71.35%,而本文方法也能够达到71.67%的准确率。

表7   与最新的方法在fer2013数据集测试集上准确率比较

3   总结

提出一种基于卷积神经网络特征图聚类的人脸表情识别方法。对于人脸表情识别首先使用训练好的参数提取最后一层卷积层的特征,通过聚类得到的特征图聚类中心作为分类器网络的输入,来训练分类器。通过实验表明使用特征图聚类来进行特征去冗余让网络学习的特征更有效,使用浅层网络也能达到深层网络的分类准确率。实验在fer2013数据集和CK+数据集都得到不错的准确率,实验模型评估结果均证明了该方法的有效性。然而由于考虑到反向传播训练参数问题所以分步训练,不能直接将聚类融合到神经网络训练当中,导致我们在数据处理上比较耗时,在接下来的工作当中我们将重点研究深度聚类,实现可融合到深度模型中可训练的方法。

参考文献

[1]    陈航. 基于卷积神经网络的表情识别研究[D]. 南京:南京邮电大学,2018.

[2]    MEHRABIAN A. Communication without words[J]. Psychology Today,1968,2(4):53—56

[3]    YI J Z,XIA M,MITSURU I,et al. Facial expression recognition based on feature point vector and texture deformation energy parameters[J]. Journal of Electronics & Information Technology,2013,35(10):2403—2410.

[4]    LI Kuan,YIN Jian-ping,LI Yong,et al. Local statistical analysis of Gabor coefficients and adaptive feature extraction for face description and recognition[J]. Journal of Computer Research and Development,2019,49(4):778—784.

[5]    LUO Y,WU C M,ZHANG Y. Facial expression feature extraction using hybrid PCA and LBP[J]. The Journal of China Universities of Posts and Telecommunications,2013,20(2):120—124.

[6]   CAO N T,TON-THAT A H,CHOI H I. Facial expression recognition based on local binary pattern features and support vector machine[J]. International Journal of Pattern Recognition and Artificial Intelligence,2014,28(06):1456012.

[7]    GHIMIRE D,LEE J. Geometric feature-based facial expression recognition in image sequences using multi-class AdaBoost and support vector machines[J]. Sensors,2013,13(6):7714—7734.

[8]    KIM B K,ROH J,DONG S Y,et al. Hierarchical committee of deep convolutional neural networks for robust facial expression recognition[J]. Journal on Multimodal User Interfaces,2016,10(2):173—189.

[9]    LIU P,HAN S,MENG Z,et al. Facial expression recognition via a boosted deep belief network[C]// 2014 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society,2014.

[10]  蒋盛益,王连喜. 基于特征相关性的特征选择[J]. 计算机工程与应用,2010,46(20):153—156.

[11]  黄辉. 基于ReliefF的多标签特征选择算法研究[D].广州:广东工业大学,2018.

[12]  刘强,刘波,康同曦. 基于全局最小冗余的多视角数据分类研究[J].无线互联科技,2016(18):110—111+136.

[13]  林培榕. 基于邻域互信息最大相关性最小冗余度的特征选择[J]. 漳州师范学院学报:自然科学版,2013,26(04):13—18.

[14] PENG H C,LONG F H,DING C. Feature selection based on mutual information:criteria of max-dependency,max-relevance,and min-redundancy [C]//IEEE Transactions on Pattern Analysis and Machine Intelligence,2005,(27):1226—1238.

[15]  杨文慧. 基于参数和特征冗余的神经网络模型压缩方法[D].西安:西安电子科技大学,2018.

[16]  陈超. 基于参数与特征冗余压缩的卷积神经网络加速算法研究[D]. 厦门:厦门大学,2017.

[17]  赵澎桢.基于网络图片数据库与深度学习的人脸表情识别[J].中國高新科技,2018(19):107—110.

[18]  杨斌,钟金英. 卷积神经网络的研究进展综述[J].南华大学学报:自然科学版,2016,30(03):66—72.

[19]  JEON J,PARK J C,JO Y J,et al. A real-time facial expression recognizer using deep neural network[C]// International Conference on Ubiquitous Information Management & Communication. ACM,2016:1-4.

[20]  CHANG T,WEN G,HU Y,et al. Facial expression recognition based on complexity perception classification algorithm[J]. 2018.

[21]  LI D,WEN G,HOU Z,et al. RTCRelief-F:an effective clustering and ordering-based ensemble pruning algorithm for facial expression recognition[J]. Knowledge and Information Systems,2019,59(1):219—250.

猜你喜欢
卷积神经网络
基于深度神经网络的微表情识别
卷积神经网络中减少训练样本时间方法研究
卷积神经网络语言模型研究
基于卷积神经网络的车辆检索方法研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
深度学习技术下的中文微博情感的分析与研究
基于卷积神经网络的树叶识别的算法的研究