当前位置: 首页 > 专利查询>李辉专利>正文

一种基于优化AlexNet人脸表情识别方法技术

技术编号:29586255 阅读:22 留言:0更新日期:2021-08-06 19:45
本发明专利技术在图像处理技术领域公开了一种基于优化AlexNet人脸表情识别方法,为了解决传统神经网络方法对于人脸表情识别准确率不高的问题,在经典AlexNet网络的基础上,引入Focal_loss损失函数,解决训练样本之间的不均衡问题。同时由于ReLU激活函数在x<0时,权重可能存在无法更新的情况,因此使用了Swish代替Relu作为激活函数。最后使用了全局平均池化替代全连接,减少了网络参数,进一步避免网络产生过拟合的问题。通过在Fer2013以及Jaffe数据集上进行实验,优化AlexNet都取得的较高的准确率,和其他的方法相比,人脸表情识别的准确率有一定的提高。通过对自己的表情进行预测,本发明专利技术准确的预测出相应的表情,证明了模型的泛化能力,有了从人脸数据中识别表情的性能。

【技术实现步骤摘要】
一种基于优化AlexNet人脸表情识别方法
本专利技术涉及图像处理
,更具体的说是涉及一种人工智能卷积神经网络对人脸表情的自动识别方法。
技术介绍
人脸表情是人们之间非语言交流时最丰富的的资源和最容易表达人们感情的一种有效方式,在人们的交流中起着非常重要的作用。表情含有丰富的信息,是情感的主要载体,通过脸部情绪能够表达人的心理状态。人们对表情的研究始于19世纪,1872年,达尔文在他著名的论著《人类和动物的表情(TheExpressionoftheEmotionsinAnimalsandMan,1872)》中就阐述了人的面部表情和动物的面部表情之间的联系和区别。1971年,Ekman和Friesen研究了人类的6种基本表情(即高兴、悲伤、惊讶、恐惧、愤怒、厌恶),并系统地建立了人脸表情图像库,细致的描述了每一种表情所对应的面部变化,包括眉毛、眼睛、眼睑、嘴唇等等是如何变化的。1978年,Suwa等人提出了在图像序列中进行面部表情自动分析。从20世纪90年代开始,由Mase和Pentland提出的光流法进行面部表情识别之后,自动面部表情识别进入了新的时期。表情识别方法的研究可分为传统方法和深度学习算法。传统特征提取主要依赖人工设计的提取器,目前人脸特征提取的方法有Gabor滤波器、尺度不变特征转换(SUFT)、梯度直方图(HOG)、线性判别分析(LDA)和局部二值模式(LBP)等。虽然这些方法对于人脸识别的效果较好,但需要大量以及扎实的专业知识,同时泛化性能较差,较20深度学习方法比较有很大的不足。>第一个典型的CNN是LeNet5网络结构,但是第一个引起大家注意的网络却是AlexNet,AlexNet由AlexKrizhevsky于2012年提出,在2012年的ImageNet竞赛中,AlexNet网络相对于传统的人工提取特征的方法,错误率降低了将近10%,夺得2012年ILSVRC比赛的冠军,top5预测的错误率为16.4%,远超第二名,可见在图像识别分类领域,卷积神经网络相对于其他的方法更具有优势。因此本文考虑,使用AlexNet卷积神经网络实现人脸表情识别,但是经典的AlexNet网络有一定的局限性,不适合本文需要解决的问题,因此本文在经典的AlexNet卷积神经网络的基础上,做出了改进。改进之后的AlexNet在Fer2013以及Jaffe数据集上都有着较好的表现。
技术实现思路
经典的AlexNet网络分为上下两部分,分别利用两块GPU来提高运算效率,其有8层深度神经网络,其中包括5层卷积和3层全连接层,不计激活层和池化层。经典AlexNet网络结构如图1附图所示。层结构和卷积层与池化层步长与填充方式分别如表1和表2所示。CONV表示卷积层,LRN表示局部响应归一化,POOL表示池化层,FC表示全连接层,ReLU表示激活函数,Dropout表示参与训练神经元百分比,针对全连接层。第一层:卷积层1,输入大小为224×224×3的彩色图像,卷积核的数量为96,使用两片GPU分别计算48个核;卷积核的大小为11×11×3;stride=4,stride表示的是步长,pad=0,表示不扩充边缘;然后进行局部响应归一化(LRN),后面跟着池化pool_size=(3,3),stride=2,pad=0最终获得第一层卷积的featuremap。Alexnet中采用的是最大池化,是为了避免平均池化的模糊化效果,从而保留最显著的特征,并且AlexNet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性,减少了信息的丢失。第二层:卷积层2,输入为上一层卷积的featuremap,使用256个5X5大小的卷积核filter对特征图进一步提取特征,两个GPU分别有128个卷积核。卷积核的大小为:5×5×48;pad=2,stride=1;然后做LRN,最后max_pooling,pool_size=(3,3),stride=2;第三层:卷积3,输入为第二层的输出,卷积核个数为384,kernel_size=(3×3×256),padding=1,第三层没有做LRN和Pool。第四层:卷积4,输入为第三层的输出,卷积核个数为384,kernel_size=(3×3),padding=1,和第三层一样,没有LRN和Pool。第五层:卷积5,输入为第四层的输出,卷积核个数为256,kernel_size=(3×3),padding=1。然后直接进行max_pooling,pool_size=(3,3),stride=2;第六,七,八层是全连接层,六,七的神经元的个数为4096,最终输出softmax为1000,因为上面介绍过,ImageNet这个比赛的分类个数为1000,所以在最后第八层的神经元设置为1000,全连接层中使用了RELU和Dropout。表1AlexNet层结构表2卷积层与池化层步长与填充方式AlexNet网络之所以能够在2012年ImageNet竞赛中取得巨大的成功,取决于AlexNet本身下面几个独特的优势:(1)更深的网络结构,AlexNet包含了6亿3000万个连接,6000万个参数和65万个神经元,拥有5个卷积层,其中3个卷积层后面连接了最大池化层,最后还有3个全连接层。AlexNet以显著的优势赢得了竞争激烈的ILSVRC2012比赛,top-5的错误率降低至了16.4%,相比第二名的成绩26.2%错误率有了巨大的提升。(2)使用层叠的卷积层,即卷积层+卷积层+池化层来提取图像的特征;在LeNet中池化(使用的是平均池化)是不可叠加的,即池化的窗口的大小和步长是相等的,即f=2,s=2。AlexNet中使用的池化(Pooling)却是可重叠的,也就是说,在池化的时候,每次移动的步长s小于池化的窗口长度f。AlexNet池化的大小为3×3的正方形,每次池化移动步长为2,这样就会出现重叠。重叠池化可以避免过拟合,这个策略贡献了0.3%的Top-5错误率。与非重叠方案s=2,f=2相比,输出的维度是相等的,并且能在一定成都上抑制过拟合。(3)使用Dropout抑制过拟合,dropout是指在深度学习网络训练过程中,让神经元按一定的概率停止工作。但只是暂时停止参与计算,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。Dropout在CNN中对于防止过拟合提高效果是十分有效的。过拟合值得就是网络在训练的时候准确率较高,但预测的时候准确率却比较低。经过交叉验证,隐含节点dropout率等于0.5的时候效果最好,原因是0.5的时候dropout随机生成的网络结构最多。(4)使用ReLU替换之前的Sigmoid的作为激活函数,针对Sigmoid梯度饱和导致训练收敛慢的问题,在AlexNet中引入了ReLU。ReLU是一个分段线性函数,小于等于0则输出为0;大于0的则恒等于输出。相比于Sigmoid,ReLU有以下优点:计算本文档来自技高网...

【技术保护点】
1.一种基于优化AlexNet人脸表情识别方法,其特征在于,为了解决传统神经网络方法对于人脸表情识别准确率不高的问题,本专利技术在传统AlexNet网络基础上,做出了包括以下改进:/nS1:引入Focal_loss损失函数,解决训练样本之间的不均衡问题,/nS2:使用了Swish代替ReLu作为网络激活函数,解决ReLU激活函数在x<0时,权重可能存在无法更新的情况,/nS3:使用了全局平均池化替代全连接,减少了网络参数,进一步避免网络产生过拟合的问题,/n首先在训练神经网络的时候,各个样本数量保持在相对均衡的水平是十分重要的,但是事实上,样本不均衡问题一直是深度学习领域的一个难题,想要找出合适的训练数据是很不容易的,在实际分类任务中,多说样本都是容易分类的,难分类的只占少数,简单的样本占据主导权,简单的样本损失少,但数量多,对损失起了主要贡献,难分类样本则容易被忽略,在Fer2013数据集中,每种表情的数量差别很大,其中,样本数量最多的表情和样本数量最少的表情比例竟能达到16∶1,而且,像快乐的表情就容易捕捉到,而厌恶的表情由于其微妙的变化而不容易被收集到,因此,在人脸表情识别问题中,解决样本不均衡问题有着十分重大的意义,样本的高度不平衡,负样本数量太大,占总的loss的大部分,而且多是容易分类的,使得容易导致网络朝着错误的方向收敛,所以,针对样本类别不均衡问题,本专利技术在标准交叉熵损失(categorical_crossentropy)的基础上,引入了一种新的损失函数-Focal loss,其中:/n...

【技术特征摘要】
1.一种基于优化AlexNet人脸表情识别方法,其特征在于,为了解决传统神经网络方法对于人脸表情识别准确率不高的问题,本发明在传统AlexNet网络基础上,做出了包括以下改进:
S1:引入Focal_loss损失函数,解决训练样本之间的不均衡问题,
S2:使用了Swish代替ReLu作为网络激活函数,解决ReLU激活函数在x<0时,权重可能存在无法更新的情况,
S3:使用了全局平均池化替代全连接,减少了网络参数,进一步避免网络产生过拟合的问题,
首先在训练神经网络的时候,各个样本数量保持在相对均衡的水平是十分重要的,但是事实上,样本不均衡问题一直是深度学习领域的一个难题,想要找出合适的训练数据是很不容易的,在实际分类任务中,多说样本都是容易分类的,难分类的只占少数,简单的样本占据主导权,简单的样本损失少,但数量多,对损失起了主要贡献,难分类样本则容易被忽略,在Fer2013数据集中,每种表情的数量差别很大,其中,样本数量最多的表情和样本数量最少的表情比例竟能达到16∶1,而且,像快乐的表情就容易捕捉到,而厌恶的表情由于其微妙的变化而不容易被收集到,因此,在人脸表情识别问题中,解决样本不均衡问题有着十分重大的意义,样本的高度不平衡,负样本数量太大,占总的loss的大部分,而且多是容易分类的,使得容易导致网络朝着错误的方向收敛,所以,针对样本类别不均衡问题,本发明在标准交叉熵损失(categorical_crossentropy)的基础上,引入了一种新的损失函数-Focalloss,其中:



概率分布p为期望输出,概率分布q为实际输出,H(p,q)为交叉熵,当p=q时,交叉熵取得最小值,因此可以利用交叉熵比较一个分布与另一个分布的吻合情况,交叉熵接近于熵,q便是针对p更好的逼近,事实上模型的输出与期望的输出越接近,交叉熵也会越小,这正是损失函数所需要的,但是在目标检测领域,就出现了上述问题,一张图像上负样本数量太大,占总loss的大部分,这种样本类别不均衡的情况会导致模型的优化方向存在偏差,标准的交叉熵损失函数在这个问题上存在不足,FocalLossFunction是在平衡交叉熵损失基础上增加一个调节因子(1-pt)γ和可聚焦参数γ≥0,让损失函数聚焦在困难样本的训练,
FL(pt)=-αt(1-pt)γlog(pt)-(1-αt)(pt)γlog(1-pt)公式(2)
其中,γ≥0使得减少易分类样本的损失,使得模型更专注于困难样本,直观地讲,调节因子减少了简单示例的loss贡献,并扩展了样本接收低loss的范围,提升了网络的性能。


2.根据权利要求1所述的一种基于优化AlexNet人脸表情识别方法,其特征在于,S2包括以下内容:
首先介绍一下几个概念,当x趋向于正无穷时,函数的导数趋近于0,此时称为右饱和,当x趋向于负无穷时,函数的导数趋近于0,此时称为左饱和,当一个函数既满足右饱和,又满足左饱和,则称为饱和函数,否则称为非饱和函数,如果激活函数在非极限状态下存在一个常数C可以证明,在x大于或小于该常数C时,h(x)的一次导数存在恒等于零的情况时则称h(x)为右硬饱和函数或左硬饱和函数,否则称其为软饱和函数,
采用ReLU激活函数替代Sigmoid激活函数是AlexNet网络在ImageNet竞赛中夺冠的重要因素之一,其成功的关键因素在于,ReLU激活函数在方向求导过程中导数不为0,解决了使用Sigmoid激活函数在反向传播求导过程中导数为0而造成的梯度消失的现象,从而导致参数无法更新,同时,ReLU会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生,此外,ReLU激活函数的收敛速度也远快于Sigmoid,
虽然ReLU激活函数相较于S...

【专利技术属性】
技术研发人员:李辉
申请(专利权)人:李辉
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1