本发明属于人脸表情识别技术领域,特别涉及一种基于胶囊-长短时记忆神经网络的视频表情识别方法。
背景技术:
人脸作为人的重要的生物特征之一,包含着大量的信息,人脸所包含的诸多信息中,表情信息是较为重要的一种。表情是人类情绪的直观反应,多指面部肌肉及五官形成的状态,表情识别作为人机相互作用重要的一环一直是计算机视觉的重要研究发现之一。采用计算机技术的进步,大数据时代的到来以及gpu等计算机硬件的发展,人脸识别领域中关于人脸的检测、人脸特征的提取和图像分类等几个步骤的相关成果可以在表情识别领域中被借鉴,表情识别也在软硬件上都得到了长足的发展,相应的研究机构与表情数据库以及新的算法越来越多。
表情识别拥有非常广泛的应用领域,在人机交互、机器人制造、医疗卫生、远程教育等各领域都有它的身影,采用人工智能识别表情可以客观地分析对方的情绪,避免因为个人情绪而对对方情绪产生错误解读,弥补人类精力有限的缺陷,并且可以捕捉到一些肉眼可能会忽略的细微表情。在案件审查中,辅助警察对犯罪份子实施表情监控,检测其真实心理情况帮助侦破案件;在临床医学中,通过对自闭儿童的表情观测了解患者心理活动,辅助医生制定出更加适合的治疗方案来协助其快速康复;在商场中,针对某项产品监控客户满意程度,协助商场工作人员制定出更合适的推广方案;在交通出行方面,有学者针对疲劳驾驶进行研究,预防驾驶人由于自身状态不佳而导致事故;在远程教育中,通过检测学生在上课时的情绪变化,帮助老师掌握学生对知识点的了解程度,科学的调节学习进度,从而更好地促进学生的学习。
目前,常见的视频序列表情的识别方法是结合卷积神经网络和长短时记忆神经网络对视频中人脸表情的变化进行建模,一般需采用深层卷积神经网络提取空间信息,采用多层长短时记忆神经网络获取时间信息。卷积神经网络具有表征学习能力。卷积神经网络的优点很多,但在实际的应用中也暴露出一些缺点:(1)图像迁移后的一致性识别能力低,这里的图像迁移是指卷积神经网络对于左右的平移,旋转和加上边框等难以察觉出一致性,这就造成了cnn所需的训练集很大,数据增强技术虽然有用,但提升有限;(2)卷积神经网络的问题是其神经元之间都是平等的,没有内部的组织结构,这导致无法保证在不同位置,不同角度下对同一个物品做出相同的识别,也无法提取不同卷积核得出的子结构之间的相互关系。卷积神经网络在对物体特征提取和检测的性能很好,但忽略了局部和内部的相对位置信息(比如:相对位置,方向,偏度等),从而丢失了一些重要的信息。
技术实现要素:
针对上述不足,本发明提出一种基于胶囊-长短时记忆神经网络的视频表情识别方法,如图1,具体包括以下步骤:
将包括有人脸的视频转换为视频帧;
检测视频帧中的人脸图像,并对人脸图像进行预处理;
构建胶囊网络,利用胶囊网络编码器提取人脸图像的特征并利用胶囊网络解码器进行图片的重构;
构建长短时记忆神经网络,将胶囊网络编码器的输出作为长短时记忆网络的输入;
将长短时记忆神经网络输出中最大概率值对应的表情分类作为该序列的标签。
进一步的,检测视频帧中的人脸图像,并对人脸图像进行预处理包括:
对视频帧进行人脸检测,截取人脸roi区域,并进行尺寸归一化以及灰度化;
采用mtcnn算法检测出视频帧中的人脸并对视频帧中的人脸进行定位,将检测到的人脸裁剪为固定尺寸的大小,并做灰度化处理;
每个视频中的视频帧分别选取固定帧作为一组视频序列,完成人脸图像的提取以及预处理。
进一步的,本发明中的胶囊网络使用三层卷积层、卷积胶囊层和数字胶囊层作为胶囊网络的编码器,使用四层反卷积层作为数字胶囊的解码器,通过卷积层提取图片的特征并将经过最后一个卷积操作后的特征图转换为原始的胶囊,以供动态路由算法的使用,将胶囊经过动态路由算法进行迭代,并在最后一维进行叠加,数字胶囊层采用每个胶囊向量的长度代表每个表情类别的概率,并用于计算分类损失;编码器用来优化网络,对输出概率最高类别的图像进行重构,重构的图像与原始图像的欧氏距离进行对比,计算重建损失。
进一步的,压缩操作表示为:
其中,vj、sj均为capsule的向量,vj根据前一个胶囊sj计算。
进一步的,动态路由算法用于根据原始的胶囊获取高层的胶囊,包括:
其中,sj为高层的胶囊,
进一步的,高层的胶囊与底层的胶囊都有一个耦合系数cij为,cij为耦合系数之和为1,其系数表示为:
cij=softmax(bi′j);
其中,b'ij为代表更新后的值,bij为更新前的值,其初始为零值;vj为高层胶囊的向量。
进一步的,编码器的损失函数表示为:
lc=tcmax(0,m -‖vc‖)2 λ(1-tc)max(0,‖vc‖-m-)2;
其中,tc表示为表情类别c是否存在,当存在时其值为1,不存在为0;m 、m-分别为上边界和下边界;||vc||表示为胶囊的模长,即表情类别c的概率。
进一步的,解码器的损失函数表示为:
其中,n代表像素点数,ri为第i个像素点经过基于capsule的人脸表情识别网络和解码器最后得到的重构值;ai为第i个像素点的真实值。
进一步的,构建长短时记忆神经网络时,将输入向量和该向量的实际标签做交叉熵,将向量中所有元素的交叉熵的平均值作为长短时记忆神经网络的损失函数,该交叉熵表示为:
其中,yi'为实际的表情类别标签;yi为样本i预测的表情概率。
本发明具有如下有益效果:
1.使用改进后的胶囊网络取代卷积神经网络来进行人脸表情图像识别;
2.采用三层卷积对预处理后的图像进行特征提取,从而更容易提取到潜在特征;
3.将胶囊网络与长短时记忆网络相结合,胶囊网络提取空间信息,长短时记忆神经网络提取时序信息,从而有效地提升了表情分类的精度;
4.长短时记忆神经网络相比于传统的循环神经网络(rnn),解决了梯度消失的问题,降低了训练模型的难度。
附图说明
图1为本发明基于胶囊-长短时记忆神经网络的视频表情识别方法流程图;
图2为本发明afew数据集人脸检测及预处理后的效果示意图;
图3为本发明胶囊网络编码器的网络模型;
图4为本发明胶囊网络中解码器的网络模型结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于胶囊-长短时记忆神经网络的视频表情识别方法,具体包括以下步骤:
将包括有人脸的视频转换为视频帧;
检测视频帧中的人脸图像,并对人脸图像进行预处理;
构建胶囊网络,利用胶囊网络提取人脸图像的特征并进行图片的重构;
构建长短时记忆神经网络,并利用该网络对重构的图片进行时序特征的提取;
将长短时记忆神经网络输出中最大概率值对应的表情分类作为该序列的标签。
实施例1
本实施例对一种基于胶囊-长短时记忆神经网络的视频表情识别方法进行进一步说明。
在本实施例中将该方法分为三步,具体包括:
(一)获取原始数据并对原始数据进行预处理
在本实施例中,使用mmi数据集和afew数据集,将数据集中的视频使用ffmpeg转化为视频帧。
在本实施例中,采用mtcnn对视频帧进行人脸定位,并将检测到的人脸裁剪为固定尺寸大小,这里通过resize()将图像缩减到48*48;
对缩减后的图片做灰度化处理,预处理结果如图2所示,将每个视频中的视频帧分别选取16帧作为一组视频序列。
(二)利用胶囊网络进行特征提取并进行重构图片
在本实施例中,构建的胶囊网络包括卷积层、卷积胶囊层和数字胶囊层以及反卷积层,在本实施例中,如图3,卷积层的数量为3个,反卷积层的数量为4个,其中第一层卷积层采用5*5的卷积核,步长为1;第二层的卷积操作中,其卷积核采用5*5,步长为2;第三层为卷积胶囊层,该层的实质是把经过一个卷积操作后的特征图转换为原始的胶囊,以供动态路由算法的使用,在该层首先进行卷积操作,在实际操作时,该层卷积核为9*9,步长为2,每个卷积层都采用relu函数作为激活函数。
数字胶囊层是胶囊网络的关键,第三层卷积胶囊层的转换的胶囊作为输入,这些输入的胶囊经过动态路由算法的迭代计算,将提取到的信息在最后一维进行叠加,叠加后进行压缩操作,压缩操作是对向量中的每个元素进行规范化,使其介于0和1之间,其中压缩函数squash()表示为:
其中,vj、sj均为capsule的向量,vj根据前一个胶囊sj计算。
动态路由算法用于根据原始的胶囊获取高层的胶囊,包括:
其中,sj为高层的胶囊,
cij=softmax(bi′j);
其中,b'ij为代表更新后的值,bij为更新前的值,其初始为零值,由b'ij经过softmax函数而来;vj为高层胶囊的向量。
最后得到的输出值也是一个用于表示实体特征的向量,得到的向量,该向量的模长表示表情存在的概率。胶囊网络的总损失函数由两部分组成,编码器的编辑损失和解码器的重建损失,胶囊网络的参数根据损失函数来进行迭代更新,其中胶囊网络编码器部分的的损失函数定义为:
lc=tcmax(0,m -‖vc‖)2 λ(1-tc)max(0,‖vc‖-m-)2;
其中,tc表示为表情类别c存在为1,不存在为0;m ,m-分别为上边界和下边界,在本发明中对应值分别设置为0.9,0.1;||vc||表示为胶囊的模长,即为表情类别c的概率。
编码器网络结构如图4所示,采用反卷积层对编码器提取的特征进行重建并与原图进行对比。
在进入解码器网络之前,原本编码器的输出会经过softmax算法求得模长最大的表情,然后对另外几个类别的capsule表征实体进行掩码处理,然后就输入到基于反卷积的解码器中。最开始需要经过一个全连接层,该层的输出神经元为2304个。通过转换这个输出将数据重新组织生成尺寸为12*12*16的数据,而解码器就是准备从这些信息中推导出原始的图像信息。反卷积层中反卷积的参数设置反卷积核尺寸为3*3,其对应的步长为1,通过四层反卷积反卷积网络后可以得到一个48*48的数据结构,将得到的重构值与对应像素点的真实值对比,由此可以定义一个重构损失函数为:
其中,n代表像素点数,ri可以看作是第i个像素点经过基于capsule的人脸表情识别网络和解码器,最后得到的重构值;ai为第i个像素点的真实值。
(三)采用长短时记忆神经网络进行时序特征提取
使用胶囊网络编码器输出作为长短时记忆神经网络的输入,长短时记忆神经网络的隐含层数量设为128,将输出的向量和样本的实际标签做交叉熵,公式如下:
其中,yi'为实际的表情类别标签;yi为样本i预测的表情概率。
取长短时记忆神经网络的输出,选取最大概率值对应的表情类别作为该序列样本的标签,完成对于该序列样本的视频表情分类。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,具体包括以下步骤:
将包括有人脸的视频转换为视频帧;
检测视频帧中的人脸图像,并对人脸图像进行预处理;
构建胶囊网络,利用胶囊网络编码器提取人脸图像的特征并利用胶囊网络解码器进行图片的重构;
构建长短时记忆神经网络,将胶囊网络编码器的输出作为长短时记忆网络的输入;
将长短时记忆神经网络输出中最大概率值对应的表情分类作为该序列的标签。
2.根据权利要求1所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,检测视频帧中的人脸图像,并对人脸图像进行预处理包括:
对视频帧进行人脸检测,截取人脸roi区域,并进行尺寸归一化以及灰度化;
采用mtcnn算法检测出视频帧中的人脸并对视频帧中的人脸进行定位,将检测到的人脸裁剪为固定尺寸的大小,并做灰度化处理;
每个视频中的视频帧分别选取固定帧作为一组视频序列,完成人脸图像的提取以及预处理。
3.根据权利要求1所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,本发明中的胶囊网络使用三层卷积层、卷积胶囊层和数字胶囊层作为胶囊网络的编码器,使用四层反卷积层作为数字胶囊的解码器,通过卷积层提取图片的特征并将经过最后一个卷积操作后的特征图转换为原始的胶囊,以供动态路由算法的使用,将胶囊经过动态路由算法进行迭代,并在最后一维进行叠加,数字胶囊层采用每个胶囊向量的长度代表每个表情类别的概率,并用于计算分类损失;编码器用来优化网络,对输出概率最高类别的图像进行重构,重构的图像与原始图像的欧氏距离进行对比,计算重建损失。
4.根据权利要求3所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,动态路由算法用于根据原始的胶囊获取高层的胶囊,包括:
其中,sj为高层的胶囊,
5.根据权利要求4所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,高层的胶囊与底层的胶囊都有一个系数cij,cij系数之和为1,其系数表示为:
cij=softmax(b′ij);
其中,b'ij为代表更新后的值,bij为更新前的值,其初始为零值;vj为高层胶囊的向量。
6.根据权利要求3所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,编码器的损失函数表示为:
lc=tcmax(0,m -||vc||)2 λ(1-tc)max(0,||vc||-m-)2;
其中,tc表示为表情类别c是否存在,当存在时其值为1,不存在为0;m 、m-分别为上边界和下边界;||vc||表示为胶囊的模长,即表情类别c的概率。
7.根据权利要求3所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,解码器的损失函数表示为:
其中,n代表像素点数,ri为第i个像素点经过基于capsule的人脸表情识别网络和解码器最后得到的重构值;ai为第i个像素点的真实值。
8.根据权利要求1所述的基于胶囊-长短时记忆神经网络的视频表情识别方法,其特征在于,构建长短时记忆神经网络时,将输入向量和该向量的实际标签做交叉熵,将向量中所有元素的交叉熵的平均值作为长短时记忆神经网络的损失函数,该交叉熵表示为:
其中,yi'为实际的表情类别标签;yi为样本i预测的表情概率。
技术总结