APP下载

改进的EM-Xception人脸情绪识别研究

2021-06-29南京邮电大学尚宇成林发学陈格恩

电子世界 2021年10期
关键词:人脸卷积情绪

南京邮电大学 尚宇成 林发学 陈格恩

现今人类表达情感的方式极为丰富,包括面部表情、语气语调、甚至网上聊天的一个标点符号都是情感的体现,但是,面部表情是人类表达情绪最直接、最有效的方式。即使身在异地的二人,视频通话的方式也可将二人情感表达地淋漓尽致。深度学习实现人脸情绪识别一直是研究的热点方向之一,人脸情绪识别也可以广泛的应用于教育、辅助治疗、人机交互等领域。

本文的目的是在已有的CNN主流框架Xception模型的基础上进行改进,使得模型在减少训练参数的同时可以快速准确地识别人脸情绪。再结合Opencv中的人脸检测分类器,实现对视频中的人脸提取,完成人脸情绪识别的实时情绪检测系统。

1 技术

1.1 Xception网络

Xception是卷积神经网络的主流框架之一,包括36个卷积层14个模块,使用深度可分离卷积来替换Inception V3中卷积模块,且加入Residual learning的结构,除了第一以及最后一个模块,中间模块都有残差连接。Xception网络与Inception网络极为相似,但仍略有不同。前者首先执行通道空间卷积操作,每一次卷积操作之后加入批归一化和激活函数RELU。中间的模块采用残差直连结构,可以减少网络复杂性,在数据量很大的图像分类数据集上,训练效果显著优于Inception V3。

1.2 Opencv

Opencv是开源的跨平台计算机视觉库,是研究计算机视觉的有力工具。本文基于Windows平台,使用Python语言进行代码编写,Opencv主要用于视频实时读取和人脸检测。在Pycharm中安装Opencv-Python来调用。视频读取用到了Opencv中的VideoCapture类,其可以实现读取本地视频和读取摄像头视频。关于人脸检测,本系统用到的是基于级联的人脸检测方法,运行速度较快。

2 整体设计

2.1 系统整体框图

基于改进的人脸情绪识别系统结构框图如图1所示,包括视频数据采集、识别人脸图像、人脸表情预测、结果显示四部分。计算机通过摄像头进行数据采集,并通过Opencv检测人脸。将截取到的人脸图像送入模型预测,并将预测结果实时显示在UI界面。

图1 情绪识别系统框图

2.2 改进后的EM-Xception模型

Xception网络中有超过2285万个参数,而FER2013数据集较为简单,在如此复杂的网络中训练模型有过拟合的风险且对于本实验环境而言过度消耗计算资源。因此,为了增强模型的泛化能力以及预测的准确性,本文在Xception的基础上改进得到EM-Xception网络,减少原网络中的残差模块数量,并将残差模块中的激活函数RELU替换为ELU,其与RELU函数相比,同样能够解决梯度消失问题。不同处在于ELU中含有负值,可以达到批标准化的效果,减少计算量,且不存在神经元“坏死”的现象。ELU函数如图2所示。

图2 ELU激活函数

图3 EM-Xception网络结构图

图4 准确率及损失

本文的EM-Xception网络结构如图3所示,包含8个深度可分离卷积以及3个普通卷积,改进后的模型总参数为50263个,而训练参数降为49287个。输入图像先经过两次卷积后送入四个Xception模块中,每个模块中进行深度可分离卷积后用ELU激活函数激活,再进行第二次深度分离卷积后批归一化,最后经过最大池化层送入下一个Xception模块,该模块共有四个,每一个模块都通过残差直连。最后一个Xception模块输出的数据经过卷积及全局均值池化后送入Softmax激活函数进行分类。模型中均采用1×1及3×3的小卷积核可以减少参数数量,提高网络的训练效果。每个模块中加入批归一化层,加快网络的训练速度。

3 实验

3.1 数据集选取

FER2013表情数据集在Kaggle人脸表情分析比赛提出。包括28709张训练样本,验证集与测试集的样本数量相同,为3859张,图像大小为48×48。有的图存在缺失标签、标签错误以及有头发等遮挡物的遮挡、倾斜等影响因素,导致数据集存在一定的误差。这个数据库人眼判别的准确率为65%±5%。

FER2013数据集完善齐全,符合实际场景的需要,且图像大小规整,利于数据处理,因此选用该数据集进行测试。

3.2 数据处理

本文使用数据增强的方式进行数据预处理,数据增强即人为对图像进行翻转、切割、旋转,可以防止过拟合现象,本文中利用keras中的图片生成器ImageDataGenerator,对图片进行随机旋转、变形、归一化等操作,增强模型泛化能力。本文设置参数随机旋转度数范围为10度,随机缩放范围为0.1,水平及垂直偏移的参数设为0.1,设置随机水平翻转,不进行去中心化及标准化。

3.3 实验结果

将经过数据增强后的FER2013数据集送入EM-Xception中训练,由实验结果知EM-Xception训练的总轮数为134次,在FER2013训练集上准确率为69.3%,模型训练集和验证集的损失及准确率变化如图4所示。说明采用EM-Xception可以在简化模型的同时提高模型训练的准确性,不到50000个训练参数便可达到中等偏上的准确率,大大减少了模型训练的资源消耗。

人脸情绪识别系统加载训练好的模型,并通过Opencv调用摄像头,将视频画面实时显示在UI界面上,截取视频中每一帧的数据,通过Opencv的函数检测人脸,并将检测到的人脸数据送入模型中预测。将预测结果实时显示在UI界面上。也可以通过送入系统的图片直接进行检测,本文从网络中选取不同类型的图片送入系统进行检测,结果如图5所示,预测结果正确。

图5 情绪识别结果

结束语:深度学习实现人脸情绪识别是当下及未来一段时间的热门研究方向,人脸情绪识别可广泛应用在医疗、教育、科技等领域,实现精准的人脸情绪识别可以为医生及教育工作者提供更多的帮助。本文提出的EM-Xception模型在Xception的基础上进行了精简和改进,大大减少了参数数量,减轻硬件负担,可以在FER2013数据集上实现较高的准确率。将模型加入情绪识别系统,可以较准确预测人脸表情。

猜你喜欢

人脸卷积情绪
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
从滤波器理解卷积
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法
小情绪
小情绪
小情绪
情绪认同