基于卷积神经网络的人脸表情识别研究

2020-01-07 06:14:51施宇楠吴自万
科学技术创新 2020年5期
关键词:池化层人脸运算

施宇楠 吴自万 孙 文

(淮阴师范学院 物理与电子电气工程学院,江苏 淮安223300)

在生活中,人的表情常常代表着他所抒发的情绪和他的真实感情,因此表情是语言以外的另一种交流方式。人脸表情识别做的就是运用计算机进行高效、自动、精准的去识别人的面部表情,根据学者早期研究,将人脸表情定义为6 种:惊奇、恐惧、厌恶、愤怒、高兴、悲伤。人脸表情识别有着非常广泛的应用前景,例如可以实现人类与机器人之间的交互,应用人脸表情识别来对罪犯供词过程中的细节进行监测,以及医学方面通过人脸表情识别来进行面部神经瘫痪诊断等[1]。

人脸识别技术的主要研究有基于几何特征和基于代数特征的方法[2],随着人工智能时代的到来,机器学习的快速发展,深度学习下的BP 神经网络,CNN(卷积神经网络)模型极大地提高了人脸识别的速度和精度,让人脸识别系统在稳定性,准确性,快速性等全方面得到了很大的提升。但存在缺陷的是,人脸特征的高复杂性导致传统模型在运算方面负载比较大,速度与准确度不高。本文研究的项目通过自己收集和引用网络数据库的人脸表情图片作为数据集,CNN 作为模型算法,利用Opencv对人脸表情进行动态捕捉。

1 主要算法

1.1 卷积神经网络

卷积神经网络(Convolutional Neural Network ,CNN)是一种前馈神经网络,卷积神经网络的基本结构,其中包括据输入层,卷积层,池化层,全连接层和输出层。

输入层:将图片以矩阵的形式填充到输入层。

卷积层:卷积层是卷积神经网络的核心,卷积是两个函数的运算,称为卷积运算[4],例如图1-2 就是一个简单的卷积操作。卷积运算就是卷积核以固定的步长去乘以输入矩阵的每个元素,卷积核又称为此过程可以是滤波器,看作是提取图片的每一个部分的信息。

池化层:作用是保留强度高的部分,将强度低的部分滤除从而达到减小卷积运算后矩阵的尺寸大小,之所以要减小尺寸空间大小是因为卷积运算后的矩阵大小过大的话会导致最后全连接层出现过拟合的状况会影响分类器的质量[5]。

全连接层:将一系列经过卷积和池化操作后的数据放入全连接层中,输出类别分值向量,在这片文章中,根据6 种表情,可以将全连接层的输出为1*6 的向量。

Softmax 函数:Softmax 函数用于分类,将多个神经元的输出映射到(0,1)的区间中,使用归一化函数将分类转化为概率的比较问题。

激活函数:由于线性模型只能对线性可分的训练集达到较好的分类效果,因此我们需要对其进行非线性变换,在神经网络中常用的激活函数有Sigmoid,Tanh,Relu 等,在此次的研究过程中使用的是Relu 函数。

卷积神经网络的运作过程:将图片以矩阵的形式输入到输入层,接着在卷积层的卷积运算下进行特征提取,然后再经过池化层进行空间尺寸的减小,可以把卷积层和池化层看作是一次操作,卷积神经网络的计算就是若干次重复以上操作,最后的全连接层对图片进行分类,输出类别对应的值。

1.2 卷积神经网络的训练

1.2.1 前向传播

设x 为训练样本集中的样本,y 为样本x 对应的类别标签,在本次实验中,x 为图片的尺寸大小,y 为图片对应表情的类别标签,将x 输入到卷积神经网络中,经过卷积,池化,全连接最后到输出层(在此过程中,每一层的输出都是后一层的输入),输出层是一个6 维的向量,其中每一维代表一种表情的概率大小。

1.2.2 后向误差传播

输出与类别标签y 向量值的误差,使用最小化均方误差,来反向一层层更新权值。本次研究采用梯度的方式进行反向误差传播。

1.3 训练目标

将预处理后的训练集味入输入层,根据输出值与类别标签值的误差进行迭代更新,每训练一定的次数将测试集的数据进行测试,来观测准确值,当准确值高于0.8 并且收敛的时候停止训练,最后将训练好的模型保存。

2 建立人脸表情数据集扩库

在人脸表情识别系统中,对象针对的是人脸表情,因此为了提高精确度,舍弃头发,耳朵,脖子等与表情无关的部分,可以使用相应软件(Opencv)对图片进行人脸特征提取。

为了解决图片的多样性从而提取尽量多的人脸表情特征,对表情数据集进行一系列扩展处理。在训练卷积神经网络时,需要大量使用各种各样的训练数据,一方面可以提高人脸表情识别的精确度,另一方面可以防止过多训练造成的过拟合现象。对于训练数据集,我们可以通过旋转,镜像,添加噪声等方式来拓展。本次研究对人脸表情照片进行两个操作:镜像和旋转。图像旋转的角度不宜过大,在5°到15°以内。通过数据扩展,数据集更加多样,并且容纳了更多不同情况,使得数据集更加可靠。

3 实验结果及分析

本次实验采用CK+人脸表情数据库,方法采用基于卷积神经网络模型,进行训练。Loss 率表示每次迭代训练的结果与目标值的误差程度,Ess 为准确度,即验证集进行检验的准确程度。

在Loss 率训练跟踪中,一共更新了2500 轮,前1000 轮更新的Loss 率下降的速率比较快,后1500 轮更新的速率变化很小。

在Ess 率训练跟踪中,测试集的准确率在1600 轮次左右开始向1 收敛,由Loss 率和准确率可以调整训练的次数为1600左右,此做法可以大大减少过拟合的可能性。

为了验证卷积神经网络的快速性与准确性,本次采用K-近邻法和BP- 神经网络框架模型进行对比。卷积神经网络的卷积层和池化层起到了滤波作用把图像的主要特征部分提取出来,再进行训练,对于神经网络,大大地减小了计算的复杂程度,节约了大量的训练时间。

同样对每个模型进行2500 次的训练,在500 次时,CNN,BP神经网络,K- 近邻的Loss 率分别为0.83,0.91,0.93,Ess 率为0.43,0.34,0.29 此时看不出什么特别大的区别,但到1000 轮差距开始变大,CNN 的Loss 率此时已经下降到0.51,但BP 神经网络和K- 近邻仅仅降到了0.8 左右,CNN 的Ess 率上升到0.8,相较于0.5 左右的BP 神经网络和K- 近邻在速度上和准确性上都有很大的提升,在1400 轮,卷积神经网络的准确率先收敛于1,bp 神经网络在1600 轮收敛,最后的K- 近邻在1700 时收敛。

以上对比可以看出,虽然三种模型Ess 率最后都成功的收敛于于1,但卷积神经网络模型的训练相比传统的k- 近邻法和一般的BP 神经网络法在速度与准确性方面都有提升。

4 结论

本文研究分析了基于BP 神经网络,k- 近邻法与卷积神经网络的分类法在CK+人脸表情库的准确性与快速性,接着分析了卷积神经网络相较BP 神经网络与k- 近邻而言更快速与准确的原因,通过以上的仿真分析对比,卷积神经网络模型实现人脸表情的分类识别率更高。

猜你喜欢
池化层人脸运算
重视运算与推理,解决数列求和题
有特点的人脸
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
有趣的运算
基于深度学习卷积神经网络的人体行为识别研究
科技传播(2020年6期)2020-05-25 11:07:46
三国漫——人脸解锁
动漫星空(2018年9期)2018-10-26 01:17:14
基于全卷积神经网络的SAR图像目标分类*
“整式的乘法与因式分解”知识归纳
拨云去“误”学乘除运算