本发明涉及人脸表情识别,更具体的公开了一种识别准确度高的人脸表情识别方法。
背景技术:
1、目前,人脸表情识别任务越来越受计算机视觉研究界的关注。人脸表情识别是指利用计算机对检测到的人脸进行面部表情特征提取,使计算机能够按照人的思维认识对人脸表情进行相应的理解处理,并能够根据人们的需求做出响应,建立友好的、智能化的人机交互环境。由于表情是人类最为重要的表达方式之一,面部表情也是人类表达情感状态和内涵的最自然、最普遍、最直接的方式之一,关于计算机理解并识别人类的表情是十分重要的,基于这样的现状,人脸表情识别任务在人机交互、医疗进展监测、驾驶员疲劳监测、虚拟现实、智能辅导系统和许多其它领域有着广泛应用。
2、当前人脸表情识别任务基于的数据集大致分为两大类,一类是基于lab-control,另一类是基于wild。基于lab-control的人脸表情图通常是在实验室特定条件下形成的,优点是标签注释准确,缺点是数据量过于少;而基于wild的人脸表情图,由于是制作者在互联网上搜集的,虽然可以轻易获取大量数据,但是也意味着对应的标签是人工注释的,标签准确性很难得到保证,且不同水平的标注者会导致标签不一致以及错误标签的产生,这些都会进一步阻碍模型的学习能力。
3、故而基于wild的数据集使得当前人脸表情识别任务变得极具挑战性。主要原因有两大点:类内差异性,类间相似性。除此之外,如果添加其它辅助数据集来帮助训练还会导致数据集偏差问题,这些都是会阻碍模型精度进一步提升的相关原因。至于类内差异和类间相似通俗解释来说就是,同一类别的人脸表情图片可能被模型识别成不同类别的表情,不同类别的人脸表情图片却被识别成相同类别的表情。这是因为在相同环境下,不同身份、种族、肤色、年龄以及其它细节差异的人们都可以有着相同的表情,这与其它的具有显著差异类别的分类任务是不一样的。更何况基于wild的人脸表情图片来源多样,常常会被遮挡或者有着复杂的背景等因素,同时因为标签水平的不一致,导致网络想要学习到具有辨别性的特征图越加困难。
技术实现思路
1、本发明主要解决的技术问题是提供一种识别准确度高的人脸表情识别方法,能够解决以上背景技术中所存在的问题。
2、为解决上述技术问题,根据本发明的一个方面,更具体的说是一种识别准确度高的人脸表情识别方法,包括以下步骤:
3、s1、模型采用人脸表情识别公开数据集raf-db以及辅助数据集raf-au,并按3∶1的比例提取数据,然后进行拼接作为每轮的总数据集;
4、s2、根据ir50模型的第四阶段输出,即7×7×512的特征图以及mobilefacenet的特征输出7×7×512作为双流vit模型的输入,将ir50的输出记为x,mobilefacenet的输出记为x_landmark;
5、s3、x首先进入增强局部关系感知模块,根据x构建两个分支,每个分支都通过lanet将维度512降至1,得到两个7×7×1的特征图,记为m1与m2,然后将m1与m2分别经过dropout,再进行max处理,最后与x进行相乘融合,得到新的7×7×512特征图,为xout;
6、s4、xout再进入invariance模块,即依次通过2个1×1卷积,每个卷积的通道维度不发生改变,且每经过1个卷积,得到的输出都与卷积的输入进行残差相加处理,最终输出结果依旧为7×7×512,记为x_invariance;
7、s5、x_invariance再经过dropout处理,然后与x进行残差相加处理,x即进入增强局部关系感知模块的输入;
8、s6、另一输入流x_landmark经过dropout处理即可;
9、s7、此时x与x_landmark均为7×7×512,将其reshape成49×512,分别添加对应的cls token,同时x还需要添加position embedding位置编码处理以及dropout处理;
10、s8、将x与x_landmark在数量维度上进行拼接,得到100×512,记为x_l,将x_l首先通过特征金字塔处理,分别得到x_m,x_s,通道维度大小依次为256,128,将其一同输入双流vit模型中进行处理;
11、s9、模型的最后依次添加dropout处理以及layernorm处理,切片取出x的clstoken即512通道维度,然后通过se block注意力模块机制进行处理,最后添加一层fc层即可。
12、更进一步的,所述s1中,模型的输出由两部分组成,一部分是由raf-db通过模型得到的输出,这部分采用交叉熵损失函数来处理,另一部分由raf-au通过模型的au branch分支得到的输出,这部分采用二元交叉熵损失函数来处理,两类损失按1:1分配组成总损失。
13、更进一步的,所述s2中,ir50模型采用基于ms-celeb-1m数据集的预训练权重。
14、更进一步的,所述s3中,lanet由1×1卷积,relu,1×1卷积,sigmoid依次构成。
15、更进一步的,所述s8中,双流vit模型由8层hytransformer block构成,当运行至第6层时,额外做一个操作,取其输出通过au branch模块进行处理,得到的输出包含21个类别au的信息,后续与对应的au 标签进行二元交叉熵损失计算。
16、本发明一种识别准确度高的人脸表情识别方法的有益效果为:本发明在当前在人脸表情识别任务,基于raf-db数据集的准确度达到了最高准确度,通过改进局部关系感知模块,创造了效果更佳的增强局部关系感知模块。
1.一种识别准确度高的人脸表情识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种识别准确度高的人脸表情识别方法,其特征在于:所述s1中,模型的输出由两部分组成,一部分是由raf-db通过模型得到的输出,这部分采用交叉熵损失函数来处理,另一部分由raf-au通过模型的au branch分支得到的输出,这部分采用二元交叉熵损失函数来处理,两类损失按1:1分配组成总损失。
3.根据权利要求1所述的一种识别准确度高的人脸表情识别方法,其特征在于:所述s2中,ir50模型采用基于ms-celeb-1m数据集的预训练权重。
4.根据权利要求1所述的一种识别准确度高的人脸表情识别方法,其特征在于:所述s3中,lanet由1×1卷积,relu,1×1卷积,sigmoid依次构成。
5.根据权利要求1所述的一种识别准确度高的人脸表情识别方法,其特征在于:所述s8中,双流vit模型由8层hytransformer block构成,当运行至第6层时,额外做一个操作,取其输出通过au branch模块进行处理,得到的输出包含21个类别au的信息,后续与对应的au标签进行二元交叉熵损失计算。