融合全局和局部特征并基于神经网络的表情识别

2018-07-04 02:56
计算机测量与控制 2018年6期
关键词:原始数据特征提取向量

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

0 引言

在过去的二十多年里,随着科技的飞速发展,计算机的性能得到了显著提高,随之而来的就是计算机应用相关技术的大繁荣。在这样的背景下,人工智能和机器学习领域出现了很多具体的研究方向,图像处理、计算机视觉和模式识别也各自应运而生[1-3]。如何使计算机以人类的思维方式来与人类交流,成为了研究人员非常感兴趣的课题,这是一个涉及心理学、模式识别和计算机视觉等的交叉学科,这方面的研究可以为用户提供高效、友好的人机交互界面和人机交互系统。人脸表情是人类用以表达情感,传递内心世界和态度的重要途径,人们可以运用表情表达自己的情绪,也可以通过表情辨别他人的心理状况。心理学家认为,人们之间的信息传递依赖于言词,依赖于声音,而源于脸部表情。

目前,模式识别算法主要包含特征提取算法和分类算法,特征的提取是模式识别中一个非常重要的环节,图像具有数据多,维数高,富含大量冗余数据的特点,要从一张静态图像中提取有用的信息,并且对图像进行降维处理,就要选取一种合适的特征提取算法。近期,静态图像中表情特征提取算法主要有以下几种:Gaborb小波、Histogram of Oriented Gradient (HOG),SIFT,SURF,Wavelet,DCT、(Local Binary Pattern,LBP),PCA和子空间等[4-5]。在模式识别领域,LBP是众多常用特征描述子之一,它的优势是定义简单、扩展方便、对光照强度具有一定的鲁棒性,运算速度比较快,在表情识别实验中经常使用。特征的提取,盲目减少指标会损失很多信息,更重要的是在多数情况下,许多变量之间可能存在相关性,主成分分析(PCA,Principal Component Analysis),可以减少原始数据包含信息的损失,以达到对图像的全面分析,同时,综合存在相关性的各个变量,对原始数据进行降维。

原始图片经过初始处理、降维后,即可进行下一步的分类,在表情识别中,常用的分类算法有:决策树(Decision Trees)、人工神经网络、KNN算法(K-Nearest Neighbour)、支持向量机(SVM)、朴素贝叶斯、Adaboosting等[6-7]。图像分类使用比较多的有朴素贝叶斯算法[8-10],它有着扎实的数学理论基础,分类效率稳定,所需要的估计参数很少,尤其对部分数据的缺失有一定的鲁棒性,算法比较简单。缺点是:具有最小的误差概率,需要确定先验概率。神经网络是另一种比较常见和应用在表情识别的算法,BP算法有着很强的非线性映射能力,拥有很强的并行处理能力,有自学习的能力,对噪声有很强的鲁棒性[11-12]。

综合近期表情识别的发展,对原始数据特征的提取和对特征数据的分类,不是简单的都选择最优的算法就可以构建一个优秀的模式识别模型,针对不同类型的特征数据有其最合适的分类方法。文中选择PCA特征提取方法与神经网络分类算法相互搭配[13-15],在特征提取前,对原始图片“敏感”部分(眉毛、眼睛、嘴巴)识别并提取出,以便在特征提取、组成时增加权重。

1 全局的PCA提取和局部特征的融合

1.1 人脸、眉毛、眼睛和嘴部的定位与保存

基于haar和adaboost人脸检测算法是一种能够有效识别出人脸和非人脸的算法,利用Open-cv从一幅背景较复杂图片中识别出人脸,调用分类器haarcascade_frontalface_default.xml,在正确识别出人脸的图像上,在此基础上,利用haar算法,调用眼部(可以识别出眼睛和眉毛)和嘴巴分类器haarcascade_eye.xml、haarcascade_mouth.xml,识别并保存。

1.2 PCA的特征提取与选择

特征提取与选择是模式识别中重要的一部分,特征提取的品质,直接影响后续分类的准确率和效率。PCA算法对原始图片进行降维,通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,该变换使得原始数据由维数较少的“有效”特征数据来表示,而不减少原始数据所包含的内在信息量,减少余信息和综合具有相关性信息的,在运算过程对内存的消耗降低。

在对图像提取特征前,首先要对原始图像进行归一化处理,如果原始图像为彩色,应对其进行灰度处理,灰度处理的方法很多,本文采用的是加权平均法对图像进行灰度处理:

Gray(i,j)=0.299*R(i,j)+0.578*G(i,j)+

0.114*B(i,j)

(1)

所有图像均归一化成w*h大小,本文取80*80。

将80*80的图像矩阵转化成一组列向量χi,χi含有K=80*80个元素,设共有70张图片,X为70张图片组成的图像矩阵:

X=[χ1,χ2,......χN]N=70

求出样本图像集的平均图像向量ψ和每个样本与平均值的差值φi:

(2)

φi=χi-ψ

(3)

根据求出的φi,则可得总体的协方差矩阵S:

A=(χ1-ψ,χ2-ψ,......χN-ψ)

(4)

(5)

求解矩阵S的特征值和对应的特征向量,求得的特征值为λi,(i=1,2,3,......N),按照由大到小的顺序排列,然后求得正交归一化后与特征值对应的特征向量μi:

(6)

取前L个特征向量构成“特征表情”空间,即构成投影矩阵Γ=(μ1,μ2,μ3,......μL),L的取值可以根据特征值的累积贡献率选择:

(7)

一般情况下η=0.9~0.99。

主成分的主要用途之一就是能够产生尽可能少地向量维数取代原始数据所包含的有效信息,关于η究竟要取多大,既要能够使提取的主成分可以包含足够的有效信息,这就要求η不能取值过小,避免原始数据过分浓缩,失去很多重要信息,又要去除原始数据中冗余数据,这就要求η不能取值过大,避免不能有效对原始数据进行有效信息的提取。η取值直接关系到PCA主成分提取的效果,因此要在实验中不断调整η值,以期达到精度与效率的平衡点。

原来高维的图像数据K= 80*80,图像矩阵转化成一组列向量χi,经过投影矩阵Γ,原来的K×1维列向量投影在Γ后,降维到L×1维列向量F:

F=ΓT·χi

(8)

这样得到降维后的F,不仅尽量提取了有效的图像特征,且很好保留了原图像矩阵的内部信息。

1.3 数据融合

通过上述对全局图像的降维处理和特征提取,获得了一个L×1维列向量F。在1.1中已经对眉毛、眼睛和嘴巴的提取和保存,由于这些局部图像含有表情识别的信息最为丰富,因此,要尽可能保存局部图像的所有数据而不用像对全局图像的降维处理。

图1为摄像头动态捕捉到的图像,图2分别面部、眉毛、眼睛和嘴巴,由于眉毛和眼睛在一起能够含有更多的位置信息,因此在提取时候将眉毛和眼睛结合在一起,为了减少计算量,同时获取眉毛、眼睛和嘴巴的目的,主要是尽量保留它们轮廓和位置的信息,比如嘴巴的开度,因此,先对其进行灰度处理,再对其进行自适应二值化处理,得到如图2的二值化图像。图2中的所有图像都要进行归一化处理,以便后续特征的组合和分类。

图1 原始图像

图2 全局和局部图像

前面已经完成面部的特征提取,L×1维列向量F,其次眉毛、眼睛和嘴巴的二值化图像也已经获得,假设眉毛和眼睛的图像归一化为20×20的二值化图,转化为400×1的列向量E,同样,嘴部转换成400×1的列向量M。将F,E,M组成一个列向量R,则:

R=(FT,ET,MT)T=(f1,f2,......fL,e1,

e2,......e400,m1,m2,......m400)T

(9)

R就是对全局和局部向量的提取、选择和融合。

2 神经网络分类器

BP网络是一种含有多层神经网络的前馈神经网络,它的结构包含输入层、隐含层和输出层,只有前后两层之间的神经元相连,学习过程正向传播,建立在以梯度下降法的基础上,反向传播误差,是一种广泛使用的分类器。

图3为神经网络拓扑结构,BP网络可以看为一个高度非线性的映射,用公式表示为:

f(X)=YF:Rn→Rm

(10)

其中:xi∈Rn为输入集合,yi∈Rm为输出集合。

图3 BP神经网络拓扑结构

设该神经网络有L层n个神经结点,转移函数为Sigmoid函数,样本有N个(xk,yk)(k=1,2,...,N),任意结点i的输出为Oi,网络的输出为yk,节点i的输出为Oik,第l层第j个神经元,第k个样本,结点j的输入为:

(11)

(12)

使用平方型作为误差函数:

(13)

(14)

设:

(15)

(16)

结点j为输出单元,则:

(17)

神经网络具有非常强的非线性映射能力,可以任意精度无线逼近任何复杂的非线性曲线函数。对于一个复杂的输入输出系统,样本数据越多则分类的效果越好,然而付出的代价就是对数据收集、数据处理和网络的训练等难度会大大增加。在尽量少的训练样本和检测样本要求下,可以预先对样本进行分类,获得分布较为均衡的样本。对于神经网络在训练过程中,选择合适的激活函数(activation function)是构建高效神经网络的关键之一。目前,广泛使用的激活函数有tanh为双切正切函数,取值范围为 [-1,1]、sigmoid为双切正切函数,取值范围为[0,1]、ReLU函数为大于0保留,其余为0,本实验中由于在特征运算过程中,特征相差不是特别大需要更加复杂精细的分类输出,sigmoid更加适合。

3 实验分析

3.1 样本和输入输出

为了验证融合全局和局部特征并基于神经网络的表情识别方法的准确率、速度以及占用内存等性能指标,可以和其他表情识别算法作比较。本实验将使用比较常用的表情数据库JAFFE (Japanese Female Facial Expression),从JAFFE选取具有代表性的7种表情,分别为厌恶、生气、恐惧、惊讶、正常、难过和高兴,部分原始图像如图4,在所有样本中,一部分作为训练样本用于神经网络的训练,这一部分的图像一定要尽量保证各种表情的数量大致一样多,达到均衡分布的效果。另选一部分作为验证样本,当神经网络训练完成后,验证样本经过预处理,作为输入量,对实验结果进行验证。

图4 表情数据库

获得表情数据库中的表情后,由于数据库中的图像大小不一样,因此首先对图片进行归一化处理,对全局和局部进行相应的特征提取和组合后,获得神经网络的输入数据F,接下来是对神经网络的设计,在第1章已经确定F为(L×1+400×1+400×1)维列向量,故神经网络输入层为L+800个神经元,输出层为7种表情,对7种表情采用4位二进制表示,如表1,因此,输出层有4个神经元,构成4维输出量。

表1 表情编码

3.2 神经网络参数选取

由于神经网络的输入和输出量要求位于0到1区间,因此,要对神经网络的输入样本进行归一化处理,MATLAB中有mapminmax(x,ymin,ymax)专门用于数据归一化。由前面可知,训练样本的输入量维数I为L+800,输出量维数为4,可知输入神经元为L+800,输出神经元为4,隐含层神经元H=2I+1为2L+1601,由于数据归一化处理后在[0,1]之间,故神经元传递函数采用S型函数tansing,输出层传递函数采用S型函数logsig,在样本预先处理完成后,利用Levenberg-Marquardt算法对网络进行训练。

3.3 实验与分析

以JAFFE表情数据库对神经网络训练完成后,首先选取数据库中被选作为样本的两张图像(高兴和正常)进行验证,将经过PCA主成分提取和数据融合处理后的图像向量导入MATLAB作为输入量,经过神经网络分类后,结果如图5所示。

图5 分类结果

两次分类结果分别为(1001)和(0101),对照表5可知,其对应的分别为高兴和正常,两次分类的结果都正确,那么不仅要看结果是否满足实验要求,还要评价整个神经网络的性能,查找MATLAB神经网络的一些参数,如图6所示。

图6 分类器性能指标

样本训练迭代到第5次时,误差开始迅速下降,Epoch表示经过9次迭代即结束,达到设定误差要求,Performance:误差达到5.77e-06,Gradient:梯度达到2.45e-05,Time:耗时200 ms,由此得出该神经网络性能优异。

4 结论

本文所使用的表情识别方法,在Matlab和C++平台中对推理过程进行训练与仿真,根据测试结果和各项指标,得出以下结论:

1)提出的PCA算法可以有效地对原始数据降维,去除无效的、具有相关性的信息,降低了信息的冗余,同时保留包含重要特征的信息,提高了有效信息的权值;

2)全局和局部信息的融合可以增加敏感部位在原始数据中的权值,输入数据更好保留与表情相关的信息,使分类既能从全局角度综合判断,又可以重点提高敏感部位信息的权重;

3)提出的神经网络作为分类器的算法,充分利用了BP神经网络所具有的非线性映射特性,可以有效实现各种表情的分类。

参考文献:

[1] 伊茹梦. 人工神经网络理论与应用[J]. 科技经济导刊,2015(18):59-60.

[2] 赵春伟.基于PCA与LDA的表情识别算法研究[D].西安:西安电子科技大学,2014.

[3] 张 天. 面部表情识别的研究与集成实现[D].重庆:重庆邮电大学,2016.

[4] 李雅倩,李颖杰,李海滨,等. 融合全局与局部多样性特征的人脸表情识别[J]. 光学学报,2014,34(5):172-178.

[5] 焦李成,杨淑媛,刘 芳,等. 神经网络七十年:回顾与展望[J].计算机学报,2016(8):1697-1716.

[6] 王文锋,朱书华,冯以浩,等. 基于局部方向编码的遥感影像平行边缘识别[J]. 光学学报,2012,32(3):141-147.

[7] Gabriele D’Antona.Processing magnetic sensor array data for AC Current measurement in multiconductor systems[J].IEEE Transactions on Instrumentation and Measurement,2001,50(5): 2001.

[8] Li Y. Design of intelligent monitoring unit for low voltage power distribution switch cabinet [D]. Chengdu University of Technology, 2010.

[9] Clark F,et al.Wide-Base line stereo for Mars Rovers[A].Proceedings of the 2003 IEEE/RSJ Intl .Conference on Intelligent Robots and Systems[C]. 2003.

[10] 冯 伍,张俊兰. 人工智能在医学上的应用[J]. 电子设计工程,2010(1):19-20.

[11] 周晓彦,郑文明,辛明海,等. 基于稀疏表示的KCCA方法及在表情识别中的应用[J]. 模式识别与人工智能,2013(7):660-666.

[12] 史文樊. 改进的PCA与BP神经网络人脸识别方法研究[D].秦皇岛:燕山大学,2013.

[13] 陈北京,孙星明,王定成,等. 基于彩色图像四元数表示的彩色人脸识别[J]. 自动化学报,2012(11):1815-1823.

猜你喜欢
原始数据特征提取向量
向量的分解
聚焦“向量与三角”创新题
受特定变化趋势限制的传感器数据处理方法研究
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
微动目标雷达特征提取、成像与识别研究进展
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
对物理实验测量仪器读数的思考
向量垂直在解析几何中的应用