APP下载

基于深度学习的人脸表情识别研究与应用

2022-07-09雒翠萍聂志刚

甘肃科技 2022年1期
关键词:人脸卷积神经网络

雒翠萍,聂志刚

(甘肃农业大学信息科学技术学院,甘肃 兰州 730070)

人脸表情是人与人之间进行情感信息传递和人际关系协调的主要方式。心理学家通过研究发现,日常生活中人们通过语言进行信息传递的信息量在总信息量中只占7%,然而通过人脸表情传递的要占到总信息量的55%。这些数据充分说明了人脸面部表情在人们日常生活交流中占有重要位置。面部表情是了解特定目标对象情绪状况的重要信息,与其他任何迹象相比,大多数人的情感表情都可以在面部观察到[1]。

目前国内外人脸表情识别技术发展迅猛,人脸面部表情分析在许多人机交互系统中具有重要的实用意义。因此,许多学者针对人脸表情识别做了大量的研究工作。美国学者Ekman[2]在20 世纪70 年代通过大量的人脸表情识别实验,首次将表情划分为6 种基本形式,包括悲伤、快乐、害怕、厌恶、惊讶和生气。过去10 年许多研究学者进行了面部表情识别研究,大多数方法都使用手工特征或浅层学习进行面部表情识别。自2013 年以来,面部表情识别技术和真实场景情绪识别等情感识别比赛收集到了相对充足的训练数据集,这些数据集都是来自现实生活中的场景,具有极大的挑战性。随着图像数据的增多、数据集的扩充,深度学习网络特别是卷积神经网络已经广泛地应用于计算机视觉领域[3]。将基于卷积神经网络的深度神经网络应用到表情识别中,可以同时提取数据集的特征和对数据集进行分类。由于深度学习神经网络的分类准确率高且实用效果明显,许多学者结合深度学习在各自的研究领域上不断创新。Szegedy[4]提出了Google Net 网络结构:一个22 层的深度学习卷积神经网络。在2014年Image Net 视觉识别挑战赛(ILSVRC 14)中,这个网络获得了6.67%的TOP5 错误率。Chollet 等[5]在Google 提出XCEPTION 的网络结构基础之上进行改进,提出mini-Xception 框架,该模型在分类性能上有明显的提高。在最新的人脸技术研究中,Zheng 等[6]提出了一种新的深度人脸识别网络,将老化引起的变化从稳定的特定特征中分离出来,使用年龄根据任务来获取年龄不变的特征。Chen[7]提出了一种基于条件生成对抗网的深度人脸细节网,该网络结构根据复杂的面部表情使用几何和外观损失函数,自动生成高质量具备真实细节的三维人脸[8]。Kumawat等[9]提出了一种新的三维卷积神经网络,它可以在不使用人脸标志的情况下,对时间序列图像进行端到端的面部表情识别训练,能显著减少可训练参数的数量。综上所述,基于卷积神经网络的深度神经网络应用于表情分类已经成为热门,并在各种数据集上具有很好的分类效果。本研究采用Open CV 内置算法进行人脸检测,利用卷积神经网络进行面部表情识别,实现对人脸最基本的7 种表情进行识别,在面部表情特征表现明显的情况下能达到较高的识别精度。

1 人脸表情识别过程

人脸表情识别主要分为4 个步骤:(1)人脸面部采集和部位检测;(2)人脸图像增强;(3)人脸特征提取;(4)人脸表情识别分类。人脸采集是指对人脸区域进行自动检测和人脸确定,从而获得一定时间内的图像或人脸图像序列的处理阶段。面部采集可以通过两种方式完成,即检测头部位置或直接检测面部位置。确定面部位置后,下一步是提取和识别面部表情引起的面部变化。面部特征的提取可以通过一些方法来完成,使用特定形成某些几何图形的面部点,如眼睛或嘴。基于整个面部外观特征如颜色、皱纹、面部运动或者其他一些方法(基于混合的)。特征提取后根据不同的面部特征进行分类,并输出7 种基本表情的概率,选取最大概率的表情作为表情识别结果。人脸表情识别系统处理流程(图1)。

图1 人脸表情识别系统处理流程图

2 实验

2.1 人脸图像采集及预处理

用于训练卷积神经网络模型的数据集采用FER2013 数据集,该数据集是人脸表情公开数据集。用于实验结果验证的数据集是采用摄像头捕获实时视频获取每一帧的人脸图像或人脸表情的图片,通过该数据集对人脸表情识别的实验结果进行初步验证。本研究使用Open CV 调用摄像头获取实时视频流,通过创建Video Capture 对象捕获视频,数据集采集流程(图2)。

图2 人脸图像采集流程

与面部表情无关的因素有背景、光照强度、身份偏差和头部姿势等。这些影响因素在无约束的场景中是非常常见的。因此,在进行卷积神经网络训练之前,需要对训练数据进行预处理,尽可能地消除无关因素的影响,包括面部对齐、数据扩充和标准化[10]。图像预处理是用来提高人脸表情识别性能的过程,在神经网络特征提取过程之前进行。所有图像的大小标准化为48 像素×48 像素后,用了数据增广的方法。每幅图像用不同的线性变换放大10 倍,这些变换包括水平翻转、以介于(-30,30)之间的随机角度旋转、倾斜中心区域和缩放图像的4 个角。最后,将所有图像进行归一化处理,处理为0 单位方差、0 均值。

2.2 神经网络模型的搭建及训练

在实验中,使用已经训练过且分类效果好的模型进行表情特征提取和表情分类。模型是由一种通用的卷积神经网络构建框架,该框架被称作mini-Xception。这个模型被证明在取得良好效果的同时能减少模型中80 倍的参数。因此,该模型采用庞大数据集进行训练时,模型分类的准确率能够得到提升。模型基于FER2013 数据集利用Keras 框架扩大数据集进行训练,模型分类准确率可从66%提高到70%。FER2013 数据集中存在像有围巾、眼镜、帽子等遮挡物以及人脸角度的问题。这些问题对人脸表情识别造成特征提取困难,但该数据集更加符合实际生活的场景。考虑到模型在FER2013 数据集的分类准确率比较高的情况下,决定采用mini-Xception模型架构(图3)。

图3 模型架构图

训练过程中是通过损失函数定义模型的效果及优化的目标,通过监督学习让模型学习图像的特征。卷积神经网络特征提取的过程检查被看作是一个黑盒操作,提取特征数据进行卷积模型训练,从而得到训练模型[11]。卷积神经网络模型训练流程图(图4)。

图4 卷积神经网络模型训练流程图

图4中反向传播算法是在已知分类的情况下,为给定的输入模式训练某些给定的前馈神经网络的算法,通过该算法根据前一次运行获得的错误率对神经网络的权值进行微调,采用这种方法可以降低错误率,提高模型的可靠性。神经网络训练是通过反向传播实现的[12]。

卷积神经网络在输入的灰度图中选择感兴趣区域来提取特征。将这些被提取的特征送到神经网络的分类器中,用神经网络通过在训练时学习到的表情特征对输入的特征进行分类。学习到的表情特征包括悲伤、快乐、中立、厌恶、惊讶、害怕和生气。进行分类时,训练过的模型将会预测输入图像在7种不同表情中的概率,在输出表情识别结果时,选取最大概率的表情类作为识别结果。

2.3 实验过程

通过实时摄像头获取人脸图像,分别进行人脸识别、面部表情识别。人脸识别中进行人脸特征的提取,通过特征进行人脸检测,检测后的人脸图像进行裁剪、归一化、数据增强、人脸标准化等图像预处理。经过处理的人脸图像进行面部表情识别,已经进行了面部特征学习的神经网络模型对输入的人脸图像进行特征提取。神经网络模型将提取的不同面部特征进行分类,并输出同一张人脸图像上7种不同表情的概率。系统选取7种不同表情的概率中最大概率的表情作为识别结果。人脸表情识别结果显示中立、悲伤的表情超过70%,厌恶、生气、害怕的表情超过80%,高兴、惊讶的表情超过90%(表1)。

表1 人脸表情识别概率 %

3 总结

本研究主要通过Open CV内置算法进行人脸检测,基于深度学习卷积神经网络进行人脸表情识别。实验结果表明,在表情特征表现明显时,基于深度学习的人脸表情识别系统对7种不同的表情能够进行准确识别,识别精度都超过70%。但在表情特征不明显或者模糊的情况下,识别结果容易混淆,即同一张人脸图像中7种不同表情的概率比差异不大,造成识别精度不高的现象。因此,需要更庞大的数据集训练神经网络模型,并进一步优化卷积神经网络模型。

猜你喜欢

人脸卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法