APP下载

基于深度学习的人脸情绪识别研究

2021-03-23尚宇成郝世宇

科学技术创新 2021年7期
关键词:残差人脸卷积

尚宇成 郝世宇 洪 扬

(南京邮电大学自动化学院人工智能学院,江苏 南京210000)

人脸面部表情是人与人沟通的一种高效、快速的方式,也是当代实现人机交互的关键组成部分,广泛应用于教育、科技、医学等领域。在1974 年美国心理学家Mehrabian 的研究中,在人类情绪表达方式中,通过声音及语言表达的信息分别占所有信息的7%,38%,而55%的信息则通过表情来传达。二十世纪,心理学家Ekman 和Friesen 经过跨文化的研究和实验,将人类表情分为六种基本表情,包括:愤怒、惊讶、害怕、哀伤、高兴、厌恶。人脸情绪识别是用计算机获取的面部数据,通过网络进行模型的建立,对人脸面部表情进行分类,从而来判断当前人脸所代表的情绪。

1 问题分析

进入21 世纪,以深度学习为首的机器学习获得了迅速发展,其通过对输入的数据进行迭代处理,并不断调整参数,使机器能够在学习中找到某一事物的特定“规则”,并建立该“规则”下的模型,下次数据输入时便可直接使用。其中深度网络已经在机器视觉、图像分类、声音识别等多个方面取得很多成果。深度神经网络和传统的处理方式相比,能够更好的揭示数据之间的深层联系,提取出有利于处理和分类的抽象特征。数据量决定模型训练的高度,输入的数据越多,深度网络建立的模型就越精准,使用深度神经网络进行模型训练的方法效果明显优于传统的提取方法,所以采用深度学习进行情绪识别。

2 理论与所提方法

图1 深度学习基本流程图

图2 残差网络情绪识别框图

近来随着视觉识别挑战赛(ILSVRC)和FER2013 表情识别比赛提供了充分的情绪数据,推动了情绪识别技术的发展,深度学习作为研究机器学习的新领域,其在准确和效率方面得到了很大提高,卷积神经网络(CNN)在目标分类任务上取得了显著成效,1998 年,LeCun 等应用CNN 实现了手写数字识别,2012年,Alex Krizhevsky 等使用CNN 方法在ImageNet 2012 比赛中赢得了第一名。2013 年,Tang 和Bergstra 在kaggle 举办的面部表情识别挑战赛中使用卷积神经网络赢得了第一名。可以将人类面部表情进行分类,譬如:“惊讶”、“恐慌”、“愤怒”、“厌恶”、“中性”等,每一类寻取足够多的图片数据放入深度神经网络中进行训练,获得隶属于每一类的深度学习模型(如图1)。

卷积神经网络受生物学视觉皮层的启发,由Hubel 和Wiesel 在1962 年对猫视觉皮层的实验中研究而来,在图像分类中应用广泛,若采用传统优化算法训练网络,包括梯度下降及变体、牛顿法或其他算法,若没有残差模块,没有首尾段的直接相连,随着网络层数的增多,模型训练的准确率会下降,训练表现不是很好,会出现梯度下降十分缓慢的问题。由此可见网络结构的层数不是越多越好。事实上,网络层数的增多会导致训练集的准确率降低。但残差网络不同,其将原始输入数据加到下一层的输入,可以学习更深层次的网络,显著改善梯度消失和爆炸的问题,使得在训练深层网络的同时,又可提高模型训练的准确性。残差网络在训练深度网络模型方面效果显著,故可以用来进行情绪分类、识别。结构框图如图2。

3 常见的数据集(库)

3.1 FER2013 数据集

FER2013 人脸面部表情数据集是在Kaggle 竞赛中被提出,其中有28709 张训练图。验证图像与测试图像相同,都为3589 张,每张图像为48*48 像素,包括厌恶、恐惧、悲伤、高兴、惊讶、愤怒和中性七种表情,大多是在自然条件下拍摄的表情。

3.2 CK+数据集

CK+数据集是进行人脸表情识别最大的实验室数据集,包含593 个视频序列,其中有327 个被标签的序列,包含生气、轻视、厌恶、悲痛、惊讶、恐惧、快乐七种基本情绪,没有训练集、验证集、测试集。

3.3 ExpressionNet 数据集

ExpressionNet 是一个大规模的人脸表情数据集,包括了从互联网上收集到的一百万张人脸表情图片。其中共有95 万张图片被收集、提供标记。其中也包含了2478 张被六种基本表情和十种复合表情标记的人脸表情图片。

3.4 CMU MultiPLE 数据

MU MultiPLE 数据库有337 个人、共750000 张照片,从不同的角度和光照条件进行拍摄,共有愤怒、厌恶、快乐、中立、惊喜、伤心、惊讶七种情绪。

3.5 GEMEP-FERA 2011 数据库

GEMEP-FERA 2011 数据库中含有10 个演员的表情数据,包括7 个主题含155 个图像序列的训练数据及6 个主题含134个图像序列的测试数据,包括了生气、害怕、幸福、安慰和哀伤五种情绪。

3.6 JAFFE 人脸表情数据库

JAFFE 人脸表情数据库,包括10 位日本女性构成的213 张图像,包含七种面部表情(生气、开心、悲痛、中性、厌恶、恐惧、惊讶)。60 名女学生对6 个情感形容词进行语义评分。

本文使用FER2013 数据集,其像素大小规整,且包含训练集、验证集、测试集,可以更好进行网络测试和数据训练,减少了计算量。为了提高模型训练的成效,需要对数据预处理,常见的数据预处理方式包括均值化、归一化、PCA 和白化等。均值化是使数据每个点的数值减去平均值,对于图像来说,可以在RGB三个维度上分别操作,使图像的每一个像素减去图像中所有像素加权求得的平均值。可以较有效的移除图像的公共部分,显现特性,对图片处理更加方便快速,归一化是将数据的多个维度进行映射,使得不同量纲的数据可以进行比较和运算。对于图像数据,像素从0-255 变为0-1 范围,加快训练网络的收敛性,但这种处理只在输入图像形状不同的情况下使用才有意义,本文使用的FER2013 数据集不必再做归一化处理。PCA 即主成分分析,将数据降维后得到新的数据,将一系列可能存在相关性的变量转换成线性无关的变量,将多维特征降到n 维上,这n 维特征即为主成分,可以降低输入的冗余性。白化,即是在主成分分析的基础上除以每个特征值的标准差,使数据进行归一化,白化后的数据相关性低,是一个均值为零的矩阵。

4 残差网络与学习框架

网络层数的增多可能会伴随着梯度消失、过拟合以及耗费计算资源等问题,发生网络退化时,层数较少的网络往往能取得比深层网络更准确的模型,在提取特征的过程中,将原始数据传送到高层,补充深层丢失的特征原始信息,可以解决网络退化的问题以及层数太多导致的过拟合,增加模型的泛化能力。2015 年,ResNet 卷积神经网络被微软提出,可以解决神经网络深度过深呈现的梯度消失问题,且残差网络块的提出可以明显提高训练效率。残差网络可分为ResNet-50、ResNet-101、ResNet-152 等。ResNet 残差网络中,包含的残差模块如图3,首先用1x1 的卷积核对网络进行降维,再经过3x3 卷积,之后使用1x1 卷积进行升维。其中,1x1 的卷积核能够大大减少参数数量。此外残差网络中使用的批归一化方法,可以对网络进行优化,以达到高的准确率,解决了训练网络过深造成的梯度消失问题。

图3 残差单元模块

目前较为流行的深度学习框架包括命令式的实现和符号式的实现两大类,包括以下几类:

(1)Caffe 是模块化的,由BVLC 创立,内核由C++实现,但提供有C++、Python 接口,支持卷积神经网络与图像处理,可以实现CPU 和GPU 的无缝转换,能够大幅减少网络训练时间,但其安装和配置时较为复杂且可移植性较低。

(2)Tensorflow 是Google 开发且开源的深度学习技术,内含大量RNN 的API,支持快速开发,支持移动端,但其由Python 编写导致速度较慢。

(3)Keras 是基于Theano 和Tensorflow 的深度学习框架,由Python 编写,高级API 简化了模型搭建,在keras 中实现网络设计较轻松。

(4)Torch 于2002 年诞生于纽约大学,使用不是很大众的Lua 作为接口,其简洁高效但使用的人较少。

本文的目标是找一个操作简便、计算迅速、兼容性好、灵活性高的框架,Tensorflow 能够满足要求,所以选取Tensorflow 作为训练模型的框架。

5 结论

随着深度学习和计算机视觉迅猛发展,教育、医疗机构、广告公司等为了更好的实现人机交互,急需能够准确识别人脸面部表情的技术,用来达到更好的医疗效果和广告转换率。通过研究,发现目前实现图像分类效果较好的是采用深度学习算法中的卷积神经网络,采用fer2013 数据集,所有图片为48*48 大小的分辨率且有足够多的样本,可以大大缩减网络模型大小,加快计算速度,得到更高的准确率,而卷积神经网络中的残差网络,采用首段与尾端相连,解决了网络过深造成的梯度过深的问题,以达到更好的情绪识别效果。

猜你喜欢

残差人脸卷积
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于深度卷积的残差三生网络研究与应用
从滤波器理解卷积
三国漫——人脸解锁