本发明属于人脸表情识别技术领域,具体涉及一种基于信息复用注意力机制的人脸表情识别方法。
背景技术:
面部表情是人类表达情感、互相交流的重要方式之一。表情识别是人机交互中机器理解人们情绪的重要方式,在教育、医疗、安全等领域都有重要的应用价值。近年来,理想条件下的表情识别取得了很大的进展,其识别效果已接近完美,如在ck 数据集上的准确率已经超过了98%。而实际场景中的人脸往往受到遮挡、多姿态以及光照的影响,这导致复杂条件的表情与理想条件的表情有较大的域差异,从而使得理想条件表情识别方法在实际应用中的效果会严重下降。即,实际应用中的复杂条件使表情识别技术面临着巨大挑战。
技术实现要素:
针对复杂条件下表情识别的挑战,本发明提供了一种基于信息复用注意力机制的表情识别方法。该方法利用注意力机制,自适应地关注对表情识别有益的人脸区域,而忽略对表情识别无用甚至有害的人脸区域。该方法提出一种新的注意力模块,该注意力模块通过信息复用减少了生成注意图过程中信息的损耗,使得生成的注意图蕴含更多的有用信息,以帮助提取到更加有效的表情特征。对于提出的信息复用注意力模块,首先,将当前卷积层输出的特征图和前一层卷积层输出的特征图在通道方向上进行连接;然后将连接后的特征图输入到另一个卷积层中,输出和当前卷积层特征图尺寸一样的注意图;最后将注意图和当前卷积层的特征图进行逐元素乘并输入到sigmoid函数中,输出的结果就是经过注意图修饰的特征图。
本发明所采用的技术方案是:一种基于信息复用注意力机制的人脸表情识别方法,总体框架图见附图1,其具体实现包括以下步骤:
步骤1,数据预处理阶段,获得输入图像x′;
步骤2,模型构建阶段,构建信息复用注意力模型,包括以下子步骤:
步骤2.1,构建主干深度卷积神经网络,所述主干深度卷积神经网络包括输入层、卷积层、最大池化层、多个block、平均池化层、全连接层和softmax分类器,其中每个block中包含多个卷积层;
步骤2.2,构建信息复用注意力模块,并与主干深度卷积神经网络相结合,主干深度卷积神经网络中有多个block,每个block中结合了信息复用注意力模块,称之为信息复用注意块irab;
步骤3,模型训练阶段,将输入图像输入到信息复用注意力模型进行训练;
步骤4,识别阶段,利用训练好的信息复用注意力模型进行人脸表情识别。
进一步的,步骤1的具体实现包括如下子步骤;
步骤1.1,人脸检测、人脸裁剪和缩放;利用人脸检测算法检测出人脸部分,将人脸部分从原始图像中裁剪出来,并缩放成同样的尺寸,最终得到表情数据集
步骤1.2,数据增强;采用随机裁剪、左右随机翻转的方法进行数据增强,对于一张特定的表情图像x,其中x∈x,经过数据增强后得到图像x′,即为输入图像。
进一步的,步骤1.1中采用的人脸检测算法是mtcnn,人脸缩放后的尺寸为112×112,表情类别e的取值为{0,1,2,3,4,5,6},分别代表:生气,厌恶,恐惧,开心,伤心,惊讶和中性。
进一步的,所述主干深度卷积神经网络的第一个卷积层conv1中的卷积核大小为3×3,步长stride为1,填充padding为1。
进一步的,所述主干深度卷积神经网络是对resnet18进行调整后得到的,包括对输入图像调整到一定尺寸、修改第一个卷积层的卷积核大小,修改全连接层的类别数。
进一步的,步骤2.2中,单个信息复用注意块irab的具体处理过程如下:
(1)一个irab中包含顺序串联的4个卷积层,即主干深度卷积神经网络的每个block中包括4个卷积层,前两个卷积层组成basicblock1,后两个卷积层组成basicblock2;
(2)对于basicblock1的两个卷积层,按先后顺序分别称作cov1和cov2,它们所输出的特征图分别为fpre和fcur;
(3)将fpre和fcur在通道方向上进行连接,得到fcat;将fcat输入到卷积层convw中,将convw输出的特征图经过sigmoid函数处理,得到注意图m;
fcat=[fpre∶fcur]
m=σ(f(fcat))=σ(f([fpre∶fcur]))
其中,f表示卷积层,σ代表sigmoid函数;
(4)将得到的注意图m与当前层的特征图fcur进行逐元素相乘,得到被注意图修饰过的特征图f′;
其中
(5)将basicblock1输出的特征图f′作为basicblock2的输入,basicblock2以与basicblock1一样的方式处理。
进一步的,步骤3的具体实现方式如下;
步骤3.1,将经过预处理和增强的表情图像x′输入到信息复用注意力模型中;
步骤3.2,输入的图像经过1个卷积层和最大池化层后,得到特征图f;
步骤3.3,特征图f经过多个信息复用注意块irab顺序处理后,得到特征图f4;
步骤3.4,将特征图f4输入到平均池化层,得到特征图f5,将特征图f5输入到全连接层,得到特征向量f6;
步骤3.5,将特征向量f6输入到softmax分类器中,输出图像x′对应的表情识别结果y′,即表情的种类;
步骤3.6,利用交叉熵损失函数计算预测所得标签和真实标签之间的交叉熵损失值,通过最小化此损失值来优化网络模型的参数,达到训练模型的目的。
进一步的,步骤3中的模型训练阶段,采用tencrop技术进行模型验证。
与现有表情识别技术相比,本发明的优点和有益效果如下:
(1)与现有技术相比,本发明创新地提出了一种基于信息复用的注意力模块,该注意力模块通过信息复用减少了生成注意图过程中信息的损耗,使得生成的注意图蕴含更多的有用信息,以帮助提取到更加有效的表情特征。。
(2)与现有技术相比,本发明提出了一种新的resnet18调整版本,将输入图像大小设置为112×112,减少了模型参数量。
(3)本发明公开的方法在复杂条件的表情数据集raf-db和fer2013上的测试结果证明该方法的有效性,相较其他先进的复杂条件表情识别方法有较大提升。
附图说明
图1:本发明的总体框架图。
图2:本发明中信息复用注意力模块的结构图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供了一种基于信息复用注意力机制的表情识别方法。该方法利用注意力机制,自适应地关注对表情识别有益的人脸区域,而忽略对表情识别无用甚至有害的人脸区域。该方法提出一种新的注意力模块,该注意力模块通过信息复用减少了生成注意图过程中信息的损耗,使得生成的注意图蕴含更多的有用信息,以帮助提取到更加有效的表情特征。对于提出的信息复用注意力模块,首先,将当前卷积层输出的特征图和前一层卷积层输出的特征图在通道方向上进行连接;然后将连接后的特征图输入到另一个卷积层中,输出和当前卷积层特征图尺寸一样的注意图;最后将注意图和当前卷积层的特征图进行逐元素乘并输入到sigmoid函数中,输出的结果就是经过注意图修饰的特征图。本发明公开的方法在复杂条件的表情数据集raf-db和fer2013上的测试结果证明该方法的有效性,相较其他先进的复杂条件表情识别方法有较大提升。
本实施例采用python3.5及pytorch深度学习框架作为实验平台,使用显存为12gb的geforcegtx1080ti显卡作为训练工具。测试数据集为raf-db和fer2013,并以affectnet作为预训练数据集。测试方法时留出法,以raf-db为例,将其划分为互斥的两个子集,一个作为训练集,另一个作为测试集。测试指标为准确率(accuracy)。
raf-db数据集具有生气,厌恶,恐惧,开心,伤心,惊讶和中性7种表情。共有12271张训练图像和3068张测试图像。fer2013数据集具有和raf-db一样的表情种类,包含28709张训练图像,3589张验证图像和3589张测试图像,在本实施例中,仅使用测试图像,而不使用验证图像。以下针对上述实例对本发明做进一步的阐述,本发明的流程包括:
步骤1:数据预处理阶段。数据预处理阶段分别按照步骤1.1和步骤1.2进行。
步骤1.1,人脸检测、人脸裁剪和缩放。利用人脸检测算法检测出人脸部分,将人脸部分从原始图像中裁剪出来,并缩放成同样的尺寸,最终得到表情数据集
步骤1.2,数据增强。采用随机裁剪、左右随机翻转的方法进行数据增强。对于一张特定的表情图像x,(x∈x),经过数据增强后得到图像x′。
步骤2,模型构建阶段,构建信息复用注意力模型,包括以下子步骤:
步骤2.1:构建主干深度卷积神经网络。所述主干深度卷积神经网络包括输入层、卷积层、最大池化层、多个block、平均池化层、全连接层和softmax分类器,其中每个block中包含多个卷积层;本实施例所使用的主干网络是对resnet18进行调整后得到的。具体为:
(1)将输入图片大小由224×224改为112×112;
(2)将第一个卷积层conv1中的卷积核大小改为3×3,步长stride改为1,填充padding改为1;
(3)最后一个全连接层由512×1000改为512×k,其中k为表情的类别数;
步骤2.2:构建信息复用注意力模块,并与主干网络相结合,信息复用注意力模块的结构见图2。本实施例中主干网络中有4个block,即block1~block4,每个block中有两个basicblock,每个basicblock包含两个卷积层。每一个basicblock结合一个信息复用注意力模块(iram,informationreuseattentionmodule),将结合了iram的block称之为信息复用注意块(irab,informationreuseattentionblock)。
步骤3:模型训练阶段。模型训练阶段将结合网络结构进行描述,具体分为以下6个步骤。
步骤3.1:将经过预处理和增强的表情图像x′输入到网络中;
步骤3.2:输入的图像经过第1个卷积层conv1和最大池化层后,得到56×56×64的特征图f;
步骤3.3:将特征图f输入到第1个irab中,得到56×56×64的特征图f1。将特征图f1输入到第2个irab中,得到28×28×128的特征图f2,将特征图f2输入到第3个irab中,得到14×14×256的特征图f3,将特征图f3输入到第4个irab中,得到7×7×512的特征图f4;
步骤3.4:将特征图f4输入到平均池化层,得到1×1×512的特征图f5,将特征图f5输入到全连接层,得到1×1×7的特征向量f6。
步骤3.5:将特征向量f6输入到softmax分类器中,输出图像x′对应的表情识别结果y′,即表情的种类。
步骤3.6:利用交叉熵损失函数计算预测所得标签和真实标签之间的交叉熵损失值,通过最小化此损失值来优化网络模型的参数,达到训练模型的目的。
步骤4,识别阶段,利用训练好的信息复用注意力模型进行人脸表情识别。
关于以上步骤的细节描述如下:
在步骤1中,所采用的人脸检测算法是mtcnn,人脸缩放后的尺寸为112×112。表情种类e可取的值为{0,1,2,3,4,5,6},它们分别代表:生气,厌恶,恐惧,开心,伤心,惊讶和中性。
在步骤2.1中,所述的主干网络的具体结构如表1所示。表中original代表原始的resnet18网络,adjusted代表调整后的网络(即所述主干网络),s代表步长stride,p代表填充padding。
表1主干网络的结构
在步骤2.2中,以第1个irab块为例,对其具体结构进行描述。
(1)此irab中包含顺序串联的4个卷积层,卷积核尺寸为3×3×64,前两个卷积层组成basicblock1,后两个卷积层组成basicblock2;
(2)对于basicblock1的两个卷积层,按先后顺序分别称作cov1和cov2,它们所输出的特征图分别为fpre和fcur,特征图的尺寸都是56×56×64;
(3)将fpre和fcur在通道方向上进行连接,得到fcat,其尺寸为56×56×128。将fcat输入到卷积层convw中,将输出的尺寸为56×56×64的特征图经过sigmoid函数处理,得到注意图m。其中convw的卷积核尺寸为3×3×64。注意,这里的convw是一个普通的卷积层,它的作用是生成权重注意图。
fcat=[fpre∶fcur]
m=σ(f(fcat))=σ(f([fpre∶fcur]))
其中,f表示卷积层,σ代表sigmoid函数;
(4)将得到的注意图m与当前层的特征图fcur进行逐元素相乘,得到被注意图修饰过的特征图f′。
其中
(5)将basicblock1输出的特征图f′作为basicblock2的输入,basicblock2以与basicblock1一样的方式处理;将第1个irab输出的特征图作为第2个irab的输入,第2个irab以与第1个irab类似的方式处理;后面两个irab以此类推。
在步骤4中,训练模型过程中,采用了tencrop技术进行模型验证。
在本实施例中,将本方法的测试结果与其他先进方法进行了对比。在数据集raf-db上的对比实验结果如表2所示,在数据集fer2013上的对比实验结果如表3所示。为了验证信息复用的效果,和未采用信息复用的注意力模块(am)进行了对比,比较的结果是基于信息复用的注意力模块比未采用信息复用的注意力模块更加有效。而且,相比其他先进的方法也更加有效。
表2在数据集raf-db上的对比实验结果
表3在数据集fer2013上的对比实验结果
[1]s.liandw.deng,"reliablecrowdsourcinganddeeplocality-preservinglearningforunconstrainedfacialexpressionrecognition,"inieeetransactionsonimageprocessing,vol.28,no.1,pp.356-370,jan.2019.
[2]y.li,j.zeng,s.shan,x.chen,“occlusionawarefacialexpressionrecognitionusingcnnwithattentionmechanism,”,ieeetrans.imageprocess.,vol.28,no.5,pp.2439-2450,may2019.
[3]k.wang,x.peng,j.yang,d.meng,y.qiao,(2019).regionattentionnetworksforposeandocclusionrobustfacialexpressionrecognition.
[4]a.h.farzanehandxiaojunqi,“facialexpressionrecognitioninthewildviadeepattentivecenterloss,”inproc.ieeewinterconferenceonapplicationsofcomputervision(wacv),snowmassvillage,co,usa,2020,pp.1149-1158.
[5]t.vo,g.lee,h.yangands.kim,"pyramidwithsuperresolutionforin-the-wildfacialexpressionrecognition,"inieeeaccess,vol.8,pp.131988-132001,2020.
[6]m.georgescu,r.t.ionescuandm.popescu,"locallearningwithdeepandhandcraftedfeaturesforfacialexpressionrecognition,"inieeeaccess,vol.7,pp.64827-64836,2019.
[7]b.kim,s.dong,j.roh,g.kimands.lee,"fusingalignedandnon-alignedfaceinformationforautomaticaffectrecognitioninthewild:adeeplearningapproach,"2016ieeeconferenceoncomputervisionandpatternrecognitionworkshops(cvprw),lasvegas,nv,2016,pp.1499-1508.
[8]d.h.nguyen,s.kim,g.lee,h.yang,i.naands.h.kim,"facialexpressionrecognitionusingatemporalensembleofmulti-levelconvolutionalneuralnetworks,"inieeetransactionsonaffectivecomputing.
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
1.一种基于信息复用注意力机制的人脸表情识别方法,其特征在于,包括以下步骤:
步骤1,数据预处理阶段,获得输入图像x′;
步骤2,模型构建阶段,构建信息复用注意力模型,包括以下子步骤:
步骤2.1,构建主干深度卷积神经网络,所述主干深度卷积神经网络包括输入层、卷积层、最大池化层、多个block、平均池化层、全连接层和softmax分类器,其中每个block中包含多个卷积层;
步骤2.2,构建信息复用注意力模块,并与主干深度卷积神经网络相结合,主干深度卷积神经网络中有多个block,每个block中结合了信息复用注意力模块,称之为信息复用注意块irab;
步骤3,模型训练阶段,将输入图像输入到信息复用注意力模型进行训练;
步骤4,识别阶段,利用训练好的信息复用注意力模型进行人脸表情识别。
2.如权利要求1所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:步骤1的具体实现包括如下子步骤;
步骤1.1,人脸检测、人脸裁剪和缩放;利用人脸检测算法检测出人脸部分,将人脸部分从原始图像中裁剪出来,并缩放成同样的尺寸,最终得到表情数据集
步骤1.2,数据增强;采用随机裁剪、左右随机翻转的方法进行数据增强,对于一张特定的表情图像x,其中x∈x,经过数据增强后得到图像x′,即为输入图像。
3.如权利要求2所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:步骤1.1中采用的人脸检测算法是mtcnn,人脸缩放后的尺寸为112×112,表情类别e的取值为{0,1,2,3,4,5,6},分别代表:生气,厌恶,恐惧,开心,伤心,惊讶和中性。
4.如权利要求2所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:所述主干深度卷积神经网络的第一个卷积层conv1中的卷积核大小为3×3,步长stride为1,填充padding为1。
5.如权利要求1所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:所述主干深度卷积神经网络是对resnet18进行调整后得到的,包括对输入图像调整到一定尺寸、修改第一个卷积层的卷积核大小,修改全连接层的类别数。
6.如权利要求1所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:步骤2.2中,单个信息复用注意块irab的具体处理过程如下:
(1)一个irab中包含顺序串联的4个卷积层,即主干深度卷积神经网络的每个block中包括4个卷积层,前两个卷积层组成basicblock1,后两个卷积层组成basicblock2;
(2)对于basicblock1的两个卷积层,按先后顺序分别称作cov1和cov2,它们所输出的特征图分别为fpre和fcur;
(3)将fpre和fcur在通道方向上进行连接,得到fcat;将fcat输入到卷积层convw中,将convw输出的特征图经过sigmoid函数处理,得到注意图m;
fcat=[fpre∶fcur]
m=σ(f(fcat))=σ(f([fpre∶fcur]))
其中,f表示卷积层,σ代表sigmoid函数;
(4)将得到的注意图m与当前层的特征图fcur进行逐元素相乘,得到被注意图修饰过的特征图f′;
其中
(5)将basicblock1输出的特征图f′作为basicblock2的输入,basicblock2以与basicblock1一样的方式处理。
7.如权利要求1所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:步骤3的具体实现方式如下;
步骤3.1,将经过预处理和增强的表情图像x′输入到信息复用注意力模型中;
步骤3.2,输入的图像经过1个卷积层和最大池化层后,得到特征图f;
步骤3.3,特征图f经过多个信息复用注意块irab顺序处理后,得到特征图f4;
步骤3.4,将特征图f4输入到平均池化层,得到特征图f5,将特征图f5输入到全连接层,得到特征向量f6;
步骤3.5,将特征向量f6输入到softmax分类器中,输出图像x′对应的表情识别结果y′,即表情的种类;
步骤3.6,利用交叉熵损失函数计算预测所得标签和真实标签之间的交叉熵损失值,通过最小化此损失值来优化网络模型的参数,达到训练模型的目的。
8.如权利要求1所述的一种基于信息复用注意力机制的人脸表情识别方法,其特征在于:步骤3中的模型训练阶段,采用tencrop技术进行模型验证。
技术总结