基于表情识别与心理学测试生成性格的分析方法
技术领域
本发明涉及基于表情识别与心理学测试生成性格的分析方法,属于卷积神经网络领域。
背景技术
背景技术:1971年,Ekman和Friesen研究了人类的7种基本表情(即高兴、悲伤、惊讶、恐惧、愤怒、厌恶、中立),并系统地建立了人脸表情图像库,细致的描述了每一种表情所对应的面部变化,包括眉毛、眼睛、嘴唇等等是如何变化的。
从20世纪90年代开始,由Mase和Pentland提出的光流法进行面部表情识别之后,自动面部表情识别的技术进入了新的时期。
2014年3月31日,美国俄亥俄州立大学研究人员在PNAS上发表的一篇文章。该研究利用一个叫面部运动编码的计算机软件分析约5000张面部表情照片结果发现人至少可以表现出21种情绪并提出了复合表情的概念,并且指出多个离散的基础表情能结合在一起从而形成复合表情。
2018年青岛大学发布的《基于深度学习的面部表情识别》明确阐述了基于深度学习对静态人脸图像进行表情识别。
墨尔本大学的研究人员设计了一个名为生物识别镜的系统,可以通过识别面部特征最多可以分析14项性格特征。
目前的技术往往只利用面部识别表情来进行分析性格,但是忽略了周围环境可能对结果分析产生的影响。在一种环境中进行性格分析,那所得的性格只是在那个环境下所表现的性格。一旦周围环境发生改变,那么预测效果很有可能发生改变,预测结果的稳定性不能得到保证。现有技术大多还是通过面部表情来分析人物表层性格,很少有与心理学相结合去分析人物深层性格。
人脸存在相似性,如果仅靠人脸来识别性格,那么可能会因为面部某些特征的相似而把某些完全不同性格的人错误的分析为相同性格。单一特征的分析用于性格分析缺少准确性,不具有说服力。
发明内容
本发明针对上述不足提供了基于表情识别与心理学测试生成性格的分析方法。
本发明采用如下技术方案:
本发明所述的基于表情识别与心理学测试生成性格的分析方法,采用MBTI心理学测试题库对测试者进行测试方法如下:
步骤1)、以测试者脸部为采集对象,利用摄像设备针对测试者进行试题测试时的脸部图像信息进行捕捉;
步骤2)、针对捕捉后的人脸图像进行处理,消除除人脸外的其他图像信息,得到处理归一后的面部表情图像;
步骤3)、搭建两个卷积神经网络,其一卷积神经网络用于训练面部表情图像,通过卷积神经网络来训练步骤2)中得到的面部表情图像获得的面部表情特征;
另一卷积神经网络用于训练心理学测试数据,利用心理学测试数据获得心理学测试特征;
步骤4)、将步骤3)中得到面部表情特征通过支持向量机进行多分类,获得表情心理特征,并于在步骤3)中获得的心理学测试特征融合,获得面部融合特征;
步骤5)通过多层感知机和支持向量机训练一个分类器;
步骤6)、将步骤4)中获得的面部融合特征输入到在步骤5)中获得的分类器进行分类,最终将性格分析分为三类:理智型、情绪型、意志型。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,所述步骤3)中随机选取部分捕捉脸部表情图像作为训练集通过卷积神经网络中的卷积层、池化层经过前向训练处理并提取特征量;将特征量输入至全连接层中进行分类,得到面部表情特征。
所述的卷积层通过如下公式进行前向训练提取特征:
其中n代表当前层,表示当前层的第j个特征图,f()表示激励函数,Mj代表输入图的集合,表示第j个特征图对应的偏置项,表示当前层第j个特征图与前一层第i个特征图的卷积核,表示前一层第i个特征图,*表示卷积运算;
将上述卷积层提取的特征作为输入池化层,并通过入下公式降低数据的维度,进行前向训练提取特征;
和表示当前层和前一层的第j个特型;down()表示采样函数;和表示当前层第j个特征图的乘性偏置和加性偏置。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,其特征在于:所述的将卷积层提取的特征与池化层提取的特征通过全连接层通过如下公式进行分类,获得分类模型:
h(x)=f(wTx+b)
h(x)表示神经元的输出值;x表示神经元输入特征向量;w表示权值向量;b表示偏置,T表示矩阵转置。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,步骤3)卷积神经网络训练得到的面部表情特征根据心理学分类,在步骤4)中利用支持向量机进行多分类获得表情心理特征,具体方法如下:
步骤1.确定要划分类别的个数;
步骤2.构建多个支持向量机同时进行分类来实现多分类问题。支持向量机个数与分类别个数相同;
步骤3.采用一对多多分类支持向量机的方式,每个支持向量机应用于所有样本,一个支持向量机中,一种类别作为正集,其余所有类作为负集。例如在第i个支持向量机中,第i类作为正集,其余类就是作为负集;
步骤4.测试多个支持向量机得到多个测试结果,将所有结果中的最大值作为最后的分类结果。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,步骤3)中训练测试数据的卷积神经网络通过MBTI心理学测试题库随机生成的部分试题为训练集,训练面部表情图像的卷积神经网络利用训练集置卷积层、池化层、全连接层的排列规律,进行前向训练并反向传播更新权值,得到心理学测试模型;将测试者的测试数据数据输入得到的心理学测试模型,得到心理学测试特征。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,步骤3)中训练两个卷积神经网络时,存在训练集输出值与真实值存在误差,此时需要进行反向传播来更新权值。
反向传播:当卷积神经网络输出结果与期望值不符时,则需要进行反向传播方式。求出结果与期望的误差,再将误差一层层返回,计算每层的误差,进行权值更新;具体过程如下:
(1)计算总的误差,求输出与目标值之间的误差,计算公式为:
δ(n)=-(y-a(n))*f(z(n))
(2)误差传入全连接层,求出该层中产生多少误差。误差由神经元造成,所以要求出每个神经元的误差,更新权值。
(3)在下采样层中,根据采用的池化方法,将误差传递到上一层。下采样层不需要权值更新。
(4)在卷积层中,误差通过卷积核来传递,需要先对卷积层误差进行一层全零填充,然后将卷积层进行一百八十度旋转,再用旋转后的卷积核卷积填充过程的误差矩阵,并得到了上一层的误差。更新权值。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,所述步骤5)中所述的面部表情特征通过分类器再分类;利用支持向量机和多层感知机搭建一个分类模型。将在步骤3)中用于训练两个卷积神经网络的训练集得到的训练特征融合,将两类训练特征融合得到的特征集作为训练分类器的训练集,确定激活函数、损失函数、偏置、权值。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,在步骤6)中通过支持向量机和多层感知机搭建一个分类器模型;将在步骤3)中用于训练两个卷积神经网络的两个训练集得到的训练特征融合,将两类特征融合得到的特征集作为训练分类模型的训练集,确定激活函数、损失函数、偏置、权重。
感知机(又叫感知器)是一种简单的前馈神经网络,可分为单层感知机和多层感知机;主要用于模式分类,是对来自空间的特征映射到输出空间做线性分类。感知机由神经元结构组成,将给定的训练集在每一轮迭代中同时调整权重以及偏置,直到满足精度,输出实例的类别,分别是+1和-1,公式为:
f(x)=sign(ωx+b)
f()为sign函数,ω,b为感知机权重和偏置,sign为激活函数,x为输入。
多层感知机是基于感知机的一种多层前馈神经网络,摆脱了感知机只能进行简单的二元分类的弊端,而且感知机使用sign()作为激活函数,处理能力十分有限,所以本发明选择Sigmoid函数作为激活函数,公式如下:
σ(z)为Sigmoid激活函数,z为ωx+b,ω为权重,b为偏置,x为输入。
多层感知机最大特点就是层次较多,每层神经元与下一层神经元全连接,且同层神经元不存在连接,所以也通常被称作“多层前馈神经网络”。其中第一层是输入层,用于输入外部数据以及传输数据,最后一层是输出层,输出分类结果,中间层称为隐含层,对输入信号做处理,此发明隐含层层数设置为2。
多层感知机每层神经元与下一层神经元全连接,且同层神经元不存在连接。其中第一层是输入层,用于输入外部数据以及传输数据,最后一层是输出层,输出分类结果,中间层称为隐含层,对输入信号做处理。此发明隐含层层数设置为2。训练多层感知机常采用误差逆传播算法。首先进行前向传播,利用设置的权值和偏置进行线性运算与激活运算,从输入层开始,逐层运算,最终在输出层输出结果;接着选择均方差算法作为损失函数将输出值与真实值进行比较,得到误差;然后采用反向传播算法,从输出层逆向往上运算,计算每层产生的误差值;根据产生的误差更改每层的权值和偏置,直到误差在允许范围内。
本发明所述的基于表情识别与心理学测试生成性格的分析方法,步骤2)中针对捕捉后的人脸图像进行处理步骤如下:
1)、人脸图像对齐:找到人脸面部上眼睛、鼻子、嘴、面部轮廓等面部标志性特征位置,常采用SDM算法,选取49个特征点。SDM算法是将一个给定的人脸初始形状,通过不断迭代,将初始形状回归到真实形状的位置;
2)、将对齐后的图像特征点增强数据:减小过拟合风险,减小特征提取时出现错误的可能性;
3)、归一化处理:灰度归一化和几何归一化,减小亮度,位置等因素对特征提取的影响;
本发明所述的基于表情识别与心理学测试生成性格的分析方法,所述的步骤3)中搭建的卷积神经网络步骤如下:
步骤01、选择输入层、卷积层、池化层、全连接层、输出层的排列规律;
步骤02、确定输入层矩阵的大小,该矩阵大小被2多次整除;
步骤03、其卷积层使用SamePadding零填充矩阵边界,并设计卷积核大小设置为3*3规格;
步骤04、设定卷积步长选择为1;
步骤05、选择池化层的Pooling窗口,该窗口规格为2*2;
步骤06、设定激活函数和损失函数;激活函数为RELU函数,损失函数为MSE均方误差损失函数;即卷积神经网络搭建完成。
有益效果
本发明提供的基于表情识别与心理学测试生成性格的分析方法,基于表情识别和心理学测试生成性格的分析系统通过多特征融合分析的方式经过更好的提高了分析性格的准确性,也减小了环境对性格测试的影响,具有一定的稳定性。通过卷积神经网络来识别面部表情,能更好的减小过拟合的风险,得到更准确地表情特征。性格分析中加入心理学测试的特征,能通过心理学里的专业知识来构建更合适的神经网络,从而更准确地预测出符合测试者的性格分析。
附图说明
图1表示基于表情识别和心理学测试生成性格分析系统的流程图
图2表示用卷积神经网络识别面部表情具体流程图
图3表示心理学测试特征与表情识别特征进行特征融合并再次分类的流程
图4表示卷积神经网络的图示解析。
图5表示实现基于表情识别和心理学测试生成性格分析系统的实物图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明基于表情识别和心理学测试生成性格分析系统,包括以下步骤:
(1)开始测试,MBTI心理学测试题库中生成测试题,同时打开摄像头实时捕捉受测试者做题时的表情变化。
(2)分别为捕捉到的图像与测试数据构建两个卷积神经网络模型,获取表情特征与心理学测试特征。
(3)将表情特征在通过多个支持向量机实现多分类,得到表情心理特征。
(4)将获得的表情心理特征与心理学测试特征融合,得到一个新的特征集。
(5)利用支持向量机与多层感知机进行训练并进行交叉验证,输出最终的性格分析。
每一步骤的实现结合实例具体如下:
1.获取捕捉到的表情图像,并基于卷积神经网络得到表情特征的具体流程如图二所示,包括:
a.识别面部图像,确定图像上是否有人脸图像,如果有,进入下一步。如果没有,重新捕捉图像。
b.对人脸图像进行预处理阶段,进行人脸对齐来提高面部关键点识别性能,数据增强来减小过拟合风险,进行灰度归一化和几何归一化来将采样把图象归一化到方差为1和均值为0。
c.搭建卷积神经网络,设计卷积层,激励函数和损失函数。卷积神经网络模型如图四所示依序连接1个卷积层、1个池化层、1个卷积层、1个池化层和1个全连接层。激活函数为RELU函数,损失函数为MSE均方误差损失函数。
d.从JAFFE表情数据库中,提取中性、高兴、悲伤、惊奇、生气、讨厌、害怕七种表情图像,共213幅,每种表情提取三幅。将提取图像进行预处理后作为训练样本来训练卷积神经网络,进行前向训练。
e.输出与预测结果误差较大,进行反向传播,计算总误差与卷积层产生的误差,根据误差来更新全连接层与池化层的权值。
f.重复步骤d与步骤e,直至误差在可容许范围内。
g.输入测试图像,获得表情特征。
2.心理学测试数据通过卷积神经网络识别获取测试特征,利用MBTI心理测试集提取训练样本来训练模型,再将受测者测试数据输入,获取心理特征,具体包括:
a.根据MBTI心理测试集创建一个数据库。
b.从数据集中随机抽取一部分作为训练集。
c.搭建卷积神经网络,网络模型依序连接两个卷积层,一个池化层,一个卷积层,一个池化层和两个全连接层。激活函数为RELU函数,损失函数为MSE均方误差损失函数。
d.将训练集输入卷积神经网络进行前向训练,如果于预测值误差过大,进行反向训练,更新权值。
e.重复步骤d,直到误差在可容许范围内。
f.将测试者做的测试题作为测试集输入,得到心理学测试特征。
3.将卷积神经网络得到的面部表情特征利用支持向量机进行分类,获得表情心理特征,具体包括:
a.确定要将表情特征分成5个类别:平淡,积极,不满,犹豫,果断。
b.构建5个支持向量机来完成多分类任务。
c.每个支持向量机都同时训练所有样本,每个向量机都将其中一种类别设置为正集,其余四种类别统一归为负集。
d.五个向量机输出五种结果,其中最大值为最终结果,获取表情表情心理特征。
4.两类特征融合再分类,获得输出性格分析,具体步骤如图三所示,包括:
a.将面部心理特征与心理特征进行融合获的一类新的特征集。
融合得到的特征集输入多层感知机和支持向量机的分类器,进行交叉验证,最后输出结果,得到性格分析。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。