一种基于特征金字塔的人脸表情识别方法及装置

文档序号:27383141发布日期:2021-11-15 20:38阅读:154来源:国知局
一种基于特征金字塔的人脸表情识别方法及装置

1.本发明涉及由计算机进行人脸面部表情识别,可通过输入一张图片从而计算所属不同表情的概率,属于深度学习和计算机视觉技术领域。


背景技术:

2.面部表情是人与人进行情感沟通的一种有效方式,可以通过对面部表情的分析,了解一个人大概的心理活动。心理学家研究表明,人们的日常生活中由语言、声音和面部表情这三种主要的方式来表达情感。其中人脸表情表达的信息量占到了总量的55%,声音表达的信息量占到了38%,语言表达的信息量占到了7%,即最主要的情感表达方式是面部表情,其次是声音和语言。面部表情传达了人们大量有效的信息。如果计算机能够收集、分析面部表情并加以运用,将会在很多方面发挥极大的作用,如安全驾驶、在线教育、远程医疗等等。
3.在国外19世纪就开始了面部表情的研究工作。二十世纪七十年代,ekman和friesen以及众多学者不断研究完善后,制定了一个分类准则,将人类的表情划分为7类,即生气、恶心、害怕、高兴、悲伤、惊讶和中性。传统的人类面部表情识别方法首先是进行特征提取,然后在此结果的基础上进行特征分类。有研究人员使用sift特征进行面部表情识别,也有结合了lbp和gabor两种特征。其对表情识别的分类器算法主要选用k

means分类器、贝叶斯分类器、支持向量机、隐式马尔科夫模型等。
4.传统方法特征提取与表情分类是两个分开的过程,效率较低,且其特征提取受到人为因素影响,容易丢失部分表情特征,特征提取的不完备使得最终分类效果一般。随着深度学习算法的不断发展,众多算法已经被应用到机器视觉领域中。其中,前馈神经网络和卷积神经网络都可以用作面部表情的特征提取,其中的卷积神经网络由于强大的特征学习能力被应用于面部表情识别中,从而极大地提高了面部表情特征提取的效率。但是人脸图片尺度不一致,而卷积神经网络不具有尺度不变性,一般的做法先裁剪出人脸表情,再将其缩放到统一的尺度,最后进行分类,比如使用opencv库的人脸检测器,对人脸图片进行裁剪后再送入网络进行预测。由于人脸角度、光照等对人脸检测器的影响较大,这是提升表情识别准确率的瓶颈。


技术实现要素:

5.针对上述问题,本发明使用特征金字塔网络来提取不同尺度的人脸表情特征,使用注意力机制重点关注人脸表情特征,而忽略其背景,使用自动调节的权值对不同尺度的人脸表情特征图进行加权,最后网络预测表情种类。
6.为了解决上述技术问题,本发明采用以下技术方案:
7.一种基于特征金字塔的人脸表情识别方法,包括以下步骤:
8.步骤1:构建卷积注意力模块cbam,从通道和空间的维度对特征图进行注意力机制,得到注意力特征图;
9.步骤2:构建一个金字塔网络与卷积注意力模块cbam融合,使得特征金字塔网络关注到对表情识别有用的地方,用于过滤输入图片无用的背景信息,得到尺度注意力特征图;
10.步骤3:通过上采样或下采样的方式缩放所有步骤2中得到的尺度注意力特征图,使其分辨率一致,便于特征加权融合;
11.步骤4:将步骤3得到的缩放特征图进行特征加权融合,得到融合特征图序列;
12.步骤5:将步骤4得到的融合特征图送入全连接网络,得到多个预测结果,最后经过投票,得到最后的预测结果。
13.上述技术方案中,步骤1包括以下步骤:
14.步骤1.1:将输入的特征图分别经过最大池化和平均池化,得到两个特征图,两个特征图分别为最大池化特征图和平均池化特征图;
15.步骤1.2:将步骤1.1得到的两个特征图通过一个共享权值的多层感知机进行维度压缩后相加;
16.步骤1.3:经过一个sigmoid函数,得到通道注意力特征图;
17.步骤1.4:将步骤1.3得到的通道注意力特征图分别进行基于通道的最大池化和平均池化;
18.步骤1.5:将步骤1.4得到的两个特征图连接后经过一个卷积操作;
19.步骤1.6:经过一个sigmoid函数得到空间注意力特征图;
20.通道注意力可以表示为:
21.m
c
(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
22.其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,mlp()表示多层感知机,σ()表示sigmoid激活函数:
23.空间注意力可以表示为
24.m
s
(f)=σ(f7×7([avgpool(f);maxpool(f)]))
[0025]
其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,f7×7表示7
×
7的卷积,σ()表示sigmoid激活函数。
[0026]
上述技术方案中,步骤2包括以下步骤:
[0027]
步骤2.1:构建一个金字塔网络;
[0028]
步骤2.2:根据网络结构,将金字塔网络每个块后面添加一个步骤1的卷积注意力模块cbam;
[0029]
步骤2.3:金字塔网络得到尺度注意力特征图。
[0030]
上述技术方案中,步骤3包括以下步骤:
[0031]
步骤3.1:对于上采样,先通过一个1
×
1的卷积,使得尺度注意力特征图的通道数与金字塔网络第l层尺度注意力特征图的通道数一致;
[0032]
步骤3.2:通过最近邻插值、双线性插值或者是双三次插值的方法进行上采样,得到缩放特征图x1,x2......x
l

[0033]
步骤3.3:对于下采样,使用步长为2的卷积,使得尺度注意力特征图的通道数与第l层尺度注意力特征图的通道数一致;
[0034]
步骤3.4:使用池化的操作降低分辨率,得到缩放特征图x1,x2......x
l
,其中l是指金字塔网络的层数序号;
[0035]
上述技术方案中,步骤4包括以下步骤:
[0036]
将步骤3得到的缩放特征图进行特征加权融合,得到特征融合图序列[y1,y2......y
l
],其中金字塔网络的l层对应的融合特征图y
l

[0037][0038]
x1,x2......x
l
中的x的上标大于l,则采用下采样对应的缩放特征图,x上标比l小,则采用上采样对应的缩放特征图,如x上标等于l则采用原有的尺度注意力特征图;
[0039][0040]
得到,其中是由1
×
1的卷积层与对应的注意力特征图卷积得到。
[0041]
本发明还提供了一种基于特征金字塔的人脸表情识别装置,包括以下模块:
[0042]
构建卷积注意力模块cbam:从通道和空间的维度对特征图进行注意力机制,得到注意力特征图;
[0043]
尺度注意力特征图模块:构建一个金字塔网络与卷积注意力模块cbam融合,使得特征金字塔网络关注到对表情识别有用的地方,用于过滤输入图片无用的背景信息,得到尺度注意力特征图;
[0044]
缩放注意力特征图:通过上采样或下采样的方式缩放所有得到的尺度注意力特征图,使其分辨率一致,便于特征加权融合;
[0045]
特征融合模块:将得到的缩放特征图进行特征加权融合,得到融合特征图序列;
[0046]
预测模块:将融合特征图送入全连接网络,得到多个预测结果,最后经过投票,得到最后的预测结果。
[0047]
上述技术方案中,构建卷积注意力模块cbam的实现包括以下步骤:
[0048]
步骤1.1:将输入的特征图分别经过最大池化和平均池化,得到两个特征图,两个特征图分别为最大池化特征图和平均池化特征图;
[0049]
步骤1.2:将步骤1.1得到的两个特征图通过一个共享权值的多层感知机进行维度压缩后相加;
[0050]
步骤1.3:经过一个sigmoid函数,得到通道注意力特征图;
[0051]
步骤1.4:将步骤1.3得到的通道注意力特征图分别进行基于通道的最大池化和平均池化;
[0052]
步骤1.5:将步骤1.4得到的两个特征图连接后经过一个卷积操作;
[0053]
步骤1.6:经过一个sigmoid函数得到空间注意力特征图;
[0054]
通道注意力可以表示为:
[0055]
m
c
(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
[0056]
其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,mlp()表示多层感知机,σ()表示sigmoid激活函数:
[0057]
空间注意力可以表示为
[0058]
m
s
(f)=σ(f7×
7([avgpool(f);maxpool(f)]))
[0059]
其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,f7×7表示7
×
7的卷积,σ()表示sigmoid激活函数。
[0060]
上述技术方案中,尺度注意力特征图模块的实现包括以下步骤:
[0061]
步骤2.1:构建一个金字塔网络;
[0062]
步骤2.2:根据网络结构,将金字塔网络每个块后面添加一个步骤1的卷积注意力模块cbam;
[0063]
步骤2.3:金字塔网络得到尺度注意力特征图。
[0064]
上述技术方案中,缩放注意力特征图的实现包括以下步骤:
[0065]
步骤3.1:对于上采样,先通过一个1
×
1的卷积,使得尺度注意力特征图的通道数与金字塔网络第l层尺度注意力特征图的通道数一致;
[0066]
步骤3.2:通过最近邻插值、双线性插值或者是双三次插值的方法进行上采样,得到缩放特征图x1,x2......x
l

[0067]
步骤3.3:对于下采样,使用步长为2的卷积,使得尺度注意力特征图的通道数与第l层尺度注意力特征图的通道数一致;
[0068]
步骤3.4:使用池化的操作降低分辨率,得到缩放特征图x1,x2......x
l
,其中l是指金字塔网络的层数序号;
[0069]
上述技术方案中,特征融合模块的实现包括以下步骤:
[0070]
将缩放特征图进行特征加权融合,得到特征融合图序列[y1,y2......y
l
],其中金字塔网络的l层对应的融合特征图y
l

[0071][0072]
x1,x2......x
l
中的x的上标大于l,则采用下采样对应的缩放特征图,x上标比l小,则采用上采样对应的缩放特征图,如x上标等于l则采用原有的尺度注意力特征图;
[0073][0074]
得到,其中是由1
×
1的卷积层与对应的注意力特征图卷积得到。
[0075]
因为本发明采用上述技术手段,因此具备以下有益效果:
[0076]
1.扩充数据集,使得各类表情的数据量基本平衡,从而使得神经网络识别各类表情准确率相近,减少了神经网络模型过拟合的可能。并且对数据集运用了各种数据增强的方法,进一步提高了面部表情识别的精度以及降低了网络模型过拟合的可能。
[0077]
2.不同于使用人脸检测器检测人脸图片,裁剪后送入网络预测的方法,本发明通过特征金字塔网络进行人脸检测与识别,实现了端到端的检测形式,使得人脸检测器的精度不再是模型精度的提高的瓶颈,并且更容易训练。
[0078]
3.使用特征金字塔网络,使得模型能够识别不同尺度的人脸图像。
[0079]
4.嵌入cbam注意力机制模块,进行图像特征的筛选,使得模型更加关注代表面部表情的特征,提高了一些较难分辨的表情种类。
[0080]
5.使用步骤3和步骤4得到的动态权重,使得模型自主选择合适尺度的特征图进行
分类,而不是直接采用投票的形式,使得模型精度更高,训练收敛更快。
附图说明
[0081]
图1为fer2013人脸表情数据集的7种表情示例;
[0082]
图2为cbam模块图;
[0083]
图3为人脸面部表情识别的总体框图。
具体实施方式
[0084]
主要方案包括,1)数据集扩充与增强;2)特征金字塔提取特征;3)获取注意力特征图;4)缩放注意力特征图;5)注意力特征图加权融合;6)分类预测
[0085]
一、数据集扩充与增强
[0086]
本发明主要采用的数据集是fer2013。fer2013人脸表情数据集由35886张人脸表情图片组成,其中包含愤怒(4953张)、厌恶(547张)、恐惧(5121张)、快乐(8989张)、悲伤(6077张)、惊喜(4002张)和中立(6198张)7类表情,每张图片是由大小固定为48
×
48的灰度图像组成,分别对应于数字标签0

6,具体表情对应的标签和中英文如下:0

anger

生气;1

disgust

厌恶;2

fear

恐惧;3

happy

开心;4

sad

伤心;5

surprised

惊讶;6

neutral

中性。可以看到各类表情存在类别不均衡的特点。本发明将图片进行了灰度化、旋转、反转以及缩放等数据增强方法将每种表情的图片扩充至相等的数量,并且增加了尺度的信息,能够训练模型使得其获得分辨不同尺度人脸的能力。按照8∶1∶1的比例分为训练集、测试集和验证集。
[0087]
一、特征金字塔提取特征
[0088]
主干网络采用resnet,将预处理好的图片送入网络。自底向上,特征图的语义信息更丰富,但是其感受野也越大。所以高层的特征图更能捕获尺度较大的物体,对于小的特征可能检测不到。而低层的特征图感受野小,但语义信息不够。所以自底向上每一级往上用步长为2的下采样,使得下一级特征图为上一级的特征图分辨率的一半,自顶向下每层进行上采样并与第一级的特征图相加,能够融合低分辨率语义信息较强的特征图和高分辨率语义信息较弱但空间信息丰富的特征图。
[0089]
二、嵌入cbam模块
[0090]
在网络每个块后面增加一个卷积注意力模块cbam,将输入的特征图分别经过最大池化和平均池化,再经过一个共享权值的多层感知机后相加,最后经过一个sigmoid函数,得到通道注意力图。将得到的通道注意力特征图分别进行基于通道的最大池化和平均池化,然后将这2个结果连接后经过一个卷积操作,最后经过一个sigmoid函数得到空间注意力特征图。
[0091]
通道注意力公式
[0092]
m
c
(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
[0093]
其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,
[0094]
mlp()表示多层感知机,σ()表示sigmoid激活函数
[0095]
空间注意力公式
[0096]
m
s
(f)=σ(f7×
7([avgpool(f);maxpool(f)]))
[0097]
其中,f表示输入特征图,avgpool()和maxpool()表示平均池化和最大池化,f7×7表示7
×
7的卷积,σ()表示sigmoid激活函数
[0098]
三、缩放注意力特征图
[0099]
通过上采样或下采样的方式缩放所有注意力特征图,使其分辨率一致,便于特征加权融合。对于上采样,先通过一个1
×
1的卷积,使得特征图的通道数与level l层的一致,然后通过插值的方法进行上采样。对于下采样,使用步长为2的卷积与池化实现特征图分辨率的降低。
[0100]
四、自适应特征图融合
[0101]
对于在不同尺度的特征图分类的结果可能不一致,即不同层级之间的特征冲突,往往采用不同尺度特征图预测并投票的方法。但是每张图片有其适合的尺度来检测人脸,并且这种冲突会干扰训练期间的梯度计算,并降低特征金字塔的有效性。所以投票预测结果是不合理的,特征金字塔网络无法选择合适的尺度进行预测,因此需要动态地为每个尺度赋予一个权重,从而让模型自适应地选择合适的尺度。
[0102]
每层的融合特征图通过以下公式计算
[0103][0104]
x1,x2......x
l
中的x上标大于l,则采用下采样对应的缩放特征图,x上标比l小,则采用上采样对应的缩放特征图,如x上标等于l则采用原有的尺度注意力特征图;
[0105][0106]
得到,其中是由1
×
1的卷积层与对应的注意力特征图卷积得到,由于权重又是通过softmax函数计算,保证了权重相加为1,并且权重的取值范围是0到1之间。动态权值使得网络能够直接学习如何在其他级别对特征进行空间滤波,从而仅保留有用的信息以进行组合,对于某个级别的特征,首先将其他级别的特征调整为相同的分辨率并简单集成,然后训练以找到最佳的融合方式。在每个空间位置,能够将不同级别的特征自适应地融合在一起。
[0107]
六、网络模型训练
[0108]
从训练集里选择图片x
i
和它对应标签,并将标签用one

hot编码的形式表示为y
i
,得到一组训练数据(x
i
,y
i
)。本发明通过tensorflow框架搭建网络模型,实验共迭代200次,初始学习率设为0.005,批量大小设为64,每次随机选取64组数据,进行训练,逐步减小模型的学习率,并采取早停策略。
[0109]
训练过程中,采用第一步搭建的预训练模型进行初始化设置,并以交叉熵损失函数作为计算预测值与实际值之间的差异,用于模型的微调。
[0110][0111]
其中w为权值矩阵,b为偏置,a为预测值,y为真实值
[0112]
七、表情分类
[0113]
将得到融合特征图送入全连接网络,得到多个预测结果,最后经过投票,得到最后的预测结果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1