基于改进轻量级秩扩展网络的人脸表情识别方法

2022-09-15 06:59郑伟鹏罗晓曙蒙志明
计算机工程 2022年9期
关键词:细化人脸类别

郑伟鹏,罗晓曙,蒙志明

(1.广西师范大学 电子工程学院,广西 桂林 541000;2.广西师范大学 创新创业学院,广西 桂林 541000)

0 概述

面部表情是人类情绪的一种最直接的外部表现,而赋予机器感知人类情绪的能力是实现人机交互的重要目标之一。随着人工智能的迅速发展,人脸表情的自动识别成为研究热点。人脸表情识别(Facial Expression Recognition,FER)的研究在心理学、疲劳驾驶检测、课堂教学效果评价、智能医疗、公安测谎系统、车载安全系统等领域得到广泛关注[1-2]。

近年来,随着深度学习在计算机视觉和模式识别领域的广泛应用,FER 取得了显著的进展[3-4]。但是FER 不同于其他模式识别任务,FER 数据中的有用信息相对较少。FER 在背景简单和人脸端正等实验室环境下的准确率相对较高。在自然环境下,受头部姿态变化、遮挡、光照等因素以及不同个体对情感表达的影响,网络在人脸表情的识别过程中会产生大量的冗余信息,导致FER 准确率降低。为解决该问题,网络架构(如VGG[5]、AlexNet[6]、ResNet[7]等被作为基础网络)广泛应用于FER,并对其进行优化,以提高FER 的准确率。例如,文献[8]在VGG19的基础上,通过优化网络结构和参数,并利用迁移学习技术克服训练样本的不足,提高FER 的准确率。文献[9]将丢弃层引入到ResNet 网络中,并移除softmax 层,通过对全连接层进行修改,减少网络参数量,同时将SE 模块添加到网络中,以提高识别准确率。文献[10]提出一种结合残差网络与目标掩膜的特征提取方法,通过3D ResNet 网络对连续的微表情序列进行训练和识别。文献[11]构建基于域适应的卷积神经网络结构,以较少的参数量获得较高的识别准确率。文献[12]引入深度可分离卷积以减少网络参数,嵌入压缩网络来学习网络特征权重,并通过加入空间金字塔池化增强网络的鲁棒性。文献[13]采用多层小尺度核卷积块代替大卷积核,减少参数量,在相同感受野的条件下加深网络并精简网络结构,利用softmax 分类器获得表情分类结果,并对数据进行增强处理,提升网络泛化能力并且减小识别误差。同时,仅通过对基础网络的浅层设计修改难以充分地增强表情识别性能。因为在自然环境下的图像质量不一致,容易产生大量噪声,而且表情间存在复杂的抑制共生问题,即不同表情间可能都会对嘴、眼睛、眉毛、鼻子有类似的动作,所以当人脸存在部分遮挡的情况时,不同表情的类似动作会造成表情识别错误。文献[14]通过重新标记标签加权训练,增强对准确率较低的噪声、模糊、相似表情间的加权再学习,并且增加额外噪声数据集对网络进行训练,增强网络对噪声数据的抗干扰能力。文献[15]通过对输入的Gabor 特征进行重新描述,并微调权重来细化训练过程中构建的模型,通过对覆盖部分的特征进行压缩,在眼睛、嘴巴和下脸遮挡的情况下,获得较高的表情分类准确性。文献[16]基于重建部分遮挡的面部表情数据库,提出一个20 层的“VGG+残差”卷积神经网络,该网络对部分遮挡的表情具有较高的准确度。文献[17]通过关键点区域随机将输入表情图像切分为若干个区域,通过卷积神经网络进行区域的特征提取,在自注意力模块中采用全连接层和Sigmoid 函数将注意力权重分配到各个区域。通过上述分析,基础网络设计的方式存在特征表达瓶颈问题,同时,通过建立人脸表情局部和全局特征之间的有效联系成为表情解析的关键。

本文提出一种基于改进轻量级秩扩展网络(Rank Expansion Network,ReXNet)[18]的人脸表情识别方法。以ReXNet 网络融合坐标注意力机制[19]作为改进的基础架构,将位置信息嵌入到通道注意力中。在第一次粗分类后引入细化模块,从分类的角度提取全局上下文信息,从而获得更精确的分类结果。

1 本文方法

本文从基础网络的特征提取性能、计算量和复杂度角度,将坐标注意力机制融合到网络架构中,以改进的轻量级秩扩展网络(ReXNet)作为基础网络架构,引入细化模块以优化FER 模型。本文网络架构如图1 所示。首先,将训练集中的人脸表情样本作为模型的输入,通过改进的主干网络ReXNet 提取特征,从而获得高层次的情感特征,在主干网络之后增加一个坐标注意力模块,增强对表情特征的提取,以建立局部表情特征之间的长距离依赖关系;其次,将获得的特征图送入分类器中得到粗分类结果,为进一步改进ReXNet,引入细化模块来修正粗分类结果中一些错误的样本,细化模块根据每种表情的粗分类结果计算不同类别的类中心和每种表情的注意力类别特征;最后,将注意力类别特征和原始特征图相连接,以获得最终人脸表情的精细分类。

图1 本文网络架构Fig.1 Architecture of the proposed network

1.1 秩扩展网络改进

现有网络通常采用按阶段设计通道数的方式,同时在跨阶段时进行分辨率下采样、通道数倍增操作,在最终分类层之前将其通道数逐渐扩展到1 000以上。这种网络架构设计方案存在表达瓶颈的问题,因此,本文在表情识别过程中引入ReXNet,在网络设计过程中采用通道数渐进递增方式,同时引入Swish-1 激活函数。本文对大小为112×112×16 的浅层特征进行4 倍的卷积下采样,随后与高级语义特征相加并融合,增强对局部特征的关注。本文对网络进行裁剪,将冗余的瓶颈层删除,同时输出的特征图大小由原来的1 280 转为185,参数量由6.8×104减少至5.8×104,达到更轻量化的效果。对于任意数据集,本文将人脸表情图像统一设为224×224 像素,并将其输入到网络中。改进的ReXNet 网络由卷积核为3×3、步长为2 的卷积层、两层瓶颈卷积模块(卷积层+正则化层+Swish-1 激活函数[13])、通道注意力模块组成的瓶颈层、全局池化层、用于表情分类的全连接层组成。改进的ReXNet 网络结构如图2 所示。网络依据下采样以及渐进式的通道递增规则逐步进行特征提取,最终输出1×1×185 的特征图,用于最后的表情分类。

图2 改进的ReXNet 结构Fig.2 Structure of improved ReXNet

1.2 坐标注意力模块

坐标注意力(Coordinate Attention,CA)[19]是利用精确的位置信息对通道关系和长期相关性进行编码,形成一对方向感知和位置敏感的特征图。特征图能够增强感兴趣的目标表示。一个CA 模块可以看作一个用于增强特征表示能力的计算单元,它可以将中间张量X=[x1,x2,…,xc]∈RC×H×W作为输入,并输出一个具有同样尺寸的增强表示能力Y=[y1,y2,…,yc]。CA模块主要分为坐标信息嵌入、坐标注意力生成和输入-输出残差连接3 个步骤。坐标注意力模块结构如图3所示。

图3 坐标注意力模块结构Fig.3 Structure of coordinate attention module

1.2.1 坐标信息嵌入

坐标信息嵌入将全局池化分解为两个一维特征编码,使得注意力模块能够捕获具有精确位置信息的空间长期相关性。针对输入X,坐标信息嵌入使用尺寸(H,1)和(1,W)的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行编码,因此,高度为h的第c个通道的输出表述如式(1)所示:

同理,宽度为w的第c个通道输出如式(2)所示:

式(1)和式(2)的变换是沿着2 个空间方向进行特征聚合,返回一对方向感知特征图。这2 种变换使得注意力模块捕捉到沿着1 个空间方向的长期相关性,并保存沿着另一个空间方向的精确位置信息,有助于网络更准确地定位感兴趣的目标。坐标信息嵌入操作对应图3 中X轴平均池化层和Y轴平均池化层。

1.2.2 坐标注意力生成与输入-输出残差连接

为充分利用坐标信息嵌入模块的全局感受野和精确位置信息的表示,坐标注意力模块首先级联坐标信息嵌入模块生成的两个特征图,然后使用一个共享的1×1 卷积进行变换F1,如式(3)所示:

其中:[,]为特征向量沿空间维度的拼接运算;δ为非线性激活函数;生成的f∈RC/r×(H+W)为空间信息在水平方向和竖直方向的中间特征图,r为下采样比例,用于控制模块的大小。坐标注意力模块沿着空间维度将f分为两个单独的张量f1∈RC/r×H和f2∈RC/r×W,再利用两 个1×1 卷积Fh和Fw将特征图fh和fw变换为与输入X相同的通道数,得到结果如式(4)和式(5)所示:

其中:σ为Sigmoid 函数。注意力坐标机制对fh和fw进行拓展,并作为注意力权重,通过输入-输出残差连接操作得到CA 模块的最终输出结果,如式(6)所示:

CA 模块同时关注了水平方向和竖直方向的注意力,同时将输入与注意力输出相加形成残差学习方式,防止梯度消失,同时增强模块的学习能力。

坐标注意力机制简单灵活且高效,通过2D 全局池化计算通道注意力,在较低的计算成本下提高网络性能,将改进的注意力机制加入到轻量级的ReXNet 网络中,使网络更加专注于人脸有效特征的提取。

1.3 细化模块

细化模块又称注意力类特征(Attention Class Feature,ACF)模块。由于在实际应用过程中人脸表情特征间具有共享特性,即不同类别的特征差异性不明显,因此本文通过上下文信息与粗分类进行特征细化操作,从而增强人脸表情的精细化分类。细化模块是根据人脸表情特征计算并自适应地感知整个样本的不同类别中心,并通过特征聚合来提高识别准确率。细化模块分为类中心模块和类别细化模块。

类中心模块用于描述每个训练批次样本中每个类别的全局性表征,每个标签类的类中心都聚合该类别表情样本的所有特征。类中心模块利用类别上下文信息计算每个类的类中心。类中心模块结构如图4 所示。

图4 类中心模块结构Fig.4 Structure of class center module

本文给定表情粗分类结果Pcoarse∈RN×E和特征图F∈RB×C,其中,B是表情样本数量,N是类别数,C是通道数。本文通过全连接层对特征图F进行通道缩减操作,将通道数量缩减到C',将Pcoarse维度重塑得到Pcoarse∈RN×E,之后进行矩阵乘法和归一化,计算得到类中心Fclass∈RN×C。每个类别的类中心都表达了该类别的全局信息,在训练时有助于模型学习到每个类别中具有鉴别力的特征,从而纠正之前被错分的人脸表情类别。

类别细化模块将粗分类结果作为类中心特征图的注意力并计算类别细化特征。如果粗分类将表情图片错误分类,粗分类需要更加关注那个错误的类别,以检查特征是否具有一致性。类别细化模块如图5 所示。

图5 类别细化模块结构Fig.5 Structure of class refine module

本文给定类中心Fclass∈RN×C和粗分类结果Pcoarse∈RN×E,对Fclass和Pcoarse转置进行矩阵乘法,计算每张图片的类别细化特征Fa。图片j的类别细化特征计算如式(7)所示:

1.4 损失函数

本文实验是一个多分类的问题,常用的损失函数主要有0~1 损失函数、均方误差损失函数和交叉熵损失函数。0~1 损失函数虽然可以用于度量误分类问题,但是该函数曲线是非凸的,呈现阶跃和间断现象,在求最优解时过于复杂。均方误差损失函数通过求解数据间最小距离的平方获得最优解,常用于最小二乘法中。当应用于深度学习训练时,均方误差损失函数使多个训练点到最佳直线的距离最小化。当均方误差损失函数与Sigmoid 激活函数一起使用时,输出层神经元的学习速率减慢。交叉熵损失函数是对数函数,曲线呈单调性趋势,使梯度随损失函数单向变化,有利于梯度下降反向传播,从而更好地更新每一层的参数,以缩短预测值和实际值之间的距离。因此,本文采用的损失函数为交叉熵损失函数。交叉熵损失函数预测分布离真实值越远,交叉熵损失越大,预测分布越接近真实值,交叉熵损失越小,其得到分类结果越准确。具体的表达如式(8)所示:

其中:yn为真实值;pn为预测值;N为类别个数。

2 实验与结果分析

2.1 实验数据集

本文采用RAF-DB 数据集[20]和FERPlus 数据集[21]。RAF-DB 数据集提供了经由40 人标注的29 672 类表情图片,这些图片包含7 类基本表情类别的子集和11 类复合表情类别的子集。本文利用其中6 种基本表情和中性表情的图片,共有15 339 张,将其中12 271 张图片作为训练集,另外3 068 张图片作为测试集。FERPlus 数据库是对FER2013 数据库的扩展,并对其重新标签,由28 709 张训练图片、3 589 张验证图片和3 589 张测试图片组成,该数据集有7 种标记的表情。

2.2 实验设置

本文实验环境是在Ubuntu16.04 系统下使用Intel®UHD Graphics 630 GPU 运 行,以Pytorch 作 为基础学习框架来编写程序,在SCN 网络的源代码基础上搭建本文模型。本文根据图1 所示的网络框架对整体网络进行建模和相关库的优化,在训练过程中使用随机Adam 优化交叉熵损失,初始学习率设置为0.01,在FERPlus 和RAF-DB 数据集中总批次均设置为100 次。

RAF-DB 和FERPlus 数据集有不同的制作标准。RAF-DB 数据集为研究者提供了裁剪好的人脸图片,而FERPlus 数据集仅提供48×48 的灰度值矩阵。本文实验的所有图片都是通过人脸对齐算法检测,并调整到224×224 像素。

2.3 实验结果

2.3.1 与现有方法对比

本文将原始ReXNet、VGG16、VGG19、ResNet18、ResNet34 和ResNet50 主干网络与改进ReXNet 网络进行对比,在RAF-DB 数据集上训练和测试不同网络的性能。网络的输入图片尺寸均为224×224 像素。在RAF-DB 数据集上不同主干网络的准确率对比如表1 所示。

表1 不同主干网络的准确率对比Table 1 Accuracy comparison among different backbone networks

从表1 可以看出,相对于VGG 和ResNet 系列网络,ReXNet 网络以少量的参数能够达到更高的人脸表情识别率,同时改进ReXNet 网络较原始的ReXNet 网络能够更好地适应表情识别任务,表明改进后的ReXNet 网络具有更少的参数量和较低的计算复杂度。相比其他主干网络,改进的ReXNet 作为特征提取器更合适,并具有较优的识别精度。

在RAF-DB 数据集上,使用改进ReXNet 网络的表情识别方法与DLP-CNN[22]、gACNN[23]、RAN[24]、SCN[25]方法的准确率对比如表2所示。从表2可以看出,本文方法的FER 准确率达到88.43%。因此,本文方法优于这些最新的方法。说明本文提出的改进网络在RAF-DB 数据集上能够有效改进FER 识别效果。

表2 在RAF-DB 数据集上不同方法的人脸表情识别准确率对比Table 2 Accuracy of facial expression recognition comparison among different methods on RAF-DB dataset %

在FERPlus 数据集上,本文方法与目前主流方法VGG16-PLD[26]、SHCNN[27]、ResNet+VGG[28]、RAN[24]进行准确率对比,结果如表3 所示。从表3 可以看出,本文方法的FER 准确率达到88.80%。与现有主流方法相比,本文方法具有较优的泛化能力,并且对人脸表情的识别具有更高的准确率。

表3 在FERPlus 数据集上不同方法的人脸表情识别准确率对比Table 3 Accuracy of facial expression recognition comparison among different methods on FERPlus dataset %

2.3.2 注意力图可视化

为进一步验证改进ReXNet 网络的有效性,本文采用加权梯度类激活映射(Gradient-weighted Class Activation Mapping,Grad-CAM)[29]方法获得网络模型的分类结果,使模型更关注人脸图像区域的表情特征。Grad-CAM 方法使得任何目标特征经过最后一个卷积层后生成大致的局部特征图,凸显出图像中对表情预测分类重要的区域。本节在RAF-DB 数据集上利用Grad-CAM 方法生成可视化注意力热图。部分测试图像的可视化注意力热图如图6 所示(彩色效果见《计算机工程》官网HTML 版)。

图6 部分测试图像的可视化注意力热图Fig.6 Visual attention heat map of some test images

从图6 可以看出,对于各类基本表情,热力图红色区域基本集中在人脸的眼睛、眉毛和嘴巴等周围的关键区域。通过Grad-CAM 方法对测试图像中惊讶表情预测的概率分别为0.895 4 和0.994 2(第一行和第二行),对恐惧表情预测的概率分别为1.000 0和0.985 4(第一行和第二行),对厌恶表情预测的概率分别为0.825 1 和0.984 7(第一行和第二行),对开心表情预测的概率分别为0.995 1 和0.825 1(第一行和第二行),对伤心表情预测的概率分别为1.000 0和0.912 5(第一行和第二行),对生气表情预测的概率分别均为1.000 0(第一行和第二行),对中性表情预测的概率分别为1.000 0 和0.857 8(第一行和第二行)。本文方法能够有效地挖掘表情局部和全局信息之间的关系,降低表情间共享特征的影响,使表情学习到区分性更明显的人脸表情特征。

2.3.3 鲁棒性对比

在人脸表情识别的相关研究中,最终的识别效果往往受诸多因素的干扰,特别是人脸中的遮挡因素。本文从RAF-DB 数据集中挑选具有遮挡的图像,构建带有遮挡的遮挡RAF-DB 测试子集,测试本文方法对遮挡条件下表情识别的鲁棒性。在RAF-DB 数据集和遮挡RAF-DB 数据集上,原始方法(ReXNet 网络)和本文方法的人脸表情识别准确率对比如表4 所示。从表4 可以看出,在遮挡RAF-DB数据集上本文方法对于遮挡的表情识别具有较优的鲁棒性。

表4 在不同数据集上不同方法的人脸表情识别准确率对比Table 4 Accuracy of facial expression recognition comparison among different methods on different datasets %

2.3.4 消融实验

为进一步验证坐标注意力模块和细化模块的有效性,以改进的ReXNet 为基础架构,本文在RAF-DB 和FERPlus 数据集上进行消融实验。消融实验结果如表5 所示。改进的ReXNet 网络融合坐标注意力机制CA 和细化模块ACF 后,准确率均有一定的提升。在RAF-DB 和FERPlus 数据集上加入CA 和ACF 模块后整体网络的FER 准确率比基础网络(没有坐标注意力机制CA 和细化模块ACF)分别提高了0.93 和0.8 个百分点。这说明坐标注意力有助于模型更精准地定位和识别感兴趣的目标,从而提高有效特征的提取能力,同时说明细化模块在一定程度上解决不同人脸表情类别间的差异性问题,通过上下文信息与粗分类进行特征细化操作,增强模型对人脸表情的精细化分类。因此,注意力机制和细化模块能够有效提高网络性能,具有较优的特征提取和模型优化性能,提高表情识别的准确率。

表5 消融实验结果Table 5 Ablation experimental results %

2.3.5 特征可视化结果

本文采用t-SNE[30]对2D 空间上可视化基线方法(仅采用ReXNet 网络)和改进ReXNet 网络进行特征提取。提取表达特征的可视化结果如图7 所示(彩色效果见《计算机工程》官网HTML 版)。对于不同的面部表情,基线方法提取的表情特征难以区分,本文方法提取的特征可以有效地减少类内差异,增强不同表情的类间可分性。因此,本文方法对恐惧与惊讶、厌恶与悲伤表情之间的分类更为明显。

图7 提取表达特征的可视化结果Fig.7 Visualization results of extracted expression features

3 结束语

本文提出一种基于改进轻量级秩扩展网络的人脸表情识别方法。将改进的ReXNet 作为基础架构,同时融合坐标注意力模块,增强表情局部特征的表达能力,从而减少计算开销。在此基础上,将细化模块引入到改进的网络架构中,从分类的角度提取全局上下文信息,结合粗分类结果对表情间的关系进行细化分析,改进类间分化效果,从而提高模型的表情分类能力。在RAF-DB 和FERPlus 数据集上的实验结果表明,与DLP-CNN、gACNN、RAN等方法相比,本文方法能够有效挖掘表情局部与全局信息之间的关系,具有较高的人脸表情识别准确率。后续将在GPU、CPU 等通用计算平台上通过模型压缩算法减少模型参数量,以满足实际部署中低功耗、高性能的需求,使模型适用于更加复杂的应用场景中。

猜你喜欢
细化人脸类别
有特点的人脸
论陶瓷刻划花艺术类别与特征
一起学画人脸
在融入乡村振兴中细化文明实践
一起去图书馆吧
三国漫——人脸解锁
中小企业重在责任细化
“细化”市场,赚取百万财富
基于数据分析的大气腐蚀等级细化研究
长得象人脸的十种动物