APP下载

基于Mixer Layer的人脸表情识别①

2022-08-04简腾飞曹少中杨树林

计算机系统应用 2022年7期
关键词:集上卷积人脸

简腾飞,王 佳,曹少中,杨树林,张 寒

(北京印刷学院 信息工程学院,北京 102600)

人脸表情是反映人类情感最普遍最重要的方式之一,面部表情传达着人与人之间的社会和情感信息,面部基本表情可分为6 种(快乐,悲伤,惊讶,恐惧,愤怒和厌恶). 随着人工智能和深度学习的兴起,基于深度学习的人脸表情识别得到了广泛的发展和应用,基于传统特征提取方法的人脸表情识别,需要大量专业知识来设计提取器,同时传统方法的泛化能力和鲁棒性相对于深度学习的方法略有不足. 神经网络可以获得表情图像中更抽象,更复杂的特征,使识别更加准确.随着深度学习的发展,基于卷积神经网络的人脸表情识别,取得了巨大的进步.

Shi 等[1]基于ResNet 提出一种多分支交叉卷积神经网络(MBCC-CNN)提高了每个感受野的特征提取能力,在CK+数据集上的识别准确率达到了98.48%.Li[2]利用ResNet-101 使用文献[3]中的数据集识别准确率达到了96.29%±0.78%. 魏赟等[4]提出了一种引入注意力机制的轻量级CNN 通道和卷积自编码器预训练通道的双通道模型,在减少模型参数量的同时也保证了识别准确率. 江大鹏等[5]提出局部二值模式(LBP)图像的卷积网络对6 种面部表情识别,通过Viola-Jones 框架提取出面部表情感兴趣区域,获得感兴趣区域的LBP 图像,再输入到卷积网络进行识别. 申毫等[6]基于残差网络提出一种轻量卷积网络的多特征融合的人脸表情识别方法,使用改进的倒置残差网络为基本单元,搭建轻量级卷积网络,用11 层的卷积筛选网络中的浅层特征,该模型的参数量仅有0.2×106,但在RAD-DB 数据集上的识别准确率达到了85.46%. 伊力哈木·亚尔买买提等[7]提出了一种融合局部特征与深度置信网络(DBN)的人脸面部表情识别算法,融合表情局部敏感质量分布图(LSH)非均匀光照不变特征和人脸面部表情的边缘局部细节纹理特征,把融合后特征用于训练深度置信网络(DBN)模型,在JAFFE 数据集上达到了97.56% 的识别率. 崔子越等[8]通过改进VGGNet 结合Focal loss 的方法来处理面部表情数据集样本不均衡,防止网络过拟合,在数据集 CK+,JAFFE,Fer2013 上相比于传统的损失函数,模型的准确率提升了1%–2%,模型的分类能力更加均衡. 在保证识别准确率的情况下,张宏丽等[9]通过优化剪枝GoogLeNet识别人脸表情,以达到简化网络结构的参数量,提高运行效率,网络运行时间低于200 ms. Dhankhar[10]组合了ResNet-50 和VGG16 用于人脸表情识别,在数据集KDEF 上取得了较好的效果.

可以看出,对于人脸表情识别的研究方法,目前大多数是基于卷积神经网络,同时对数据进行了一定预处理. 本文通过搭建无卷积结构的浅层神经网络对人脸表情进行识别,该模型结构简单,计算复杂度低.

1 人脸表识别方法

1.1 MLP-Mixer 网络结构

2021年Google 提出来一种无卷积和注意力机制的网络MLP-Mixer[11],网络结构如图1[11]所示.

图1 MLP Mixer 网络结构

图1 展示了MLP-Mixer 的网络结构,MLP-Mixer网络的输入是一串不重复的图片块序列S,把每一个图片块映射成指定的维度C,Mixer Layer 的输入维度为X∈RS×C. 假设输入的图片的分辨率为(H,W),每个图片块的分辨率为(P,P),则S=(H×W)/P2. Mixer Layer接受一系列的线性投影的图像块,且输入输出形状保持为X∈RS×C. Mixer Layer 由两种MLP (多层感知机)组成: token-mixing (MLP1)和channel-mixing (MLP2).

每个MLP 包含两个全连接层. channel-mixing 将不同的通道之间联系起来,token-mixing 寻找图片上不同空间位置的关系. MLP-Mixer 的整体结构包括Perpatch Fully-connected,Mixer Layer 和Global Average Pooling. Per-patch Fully-connected 将分割的图片块映射为指定维度. 网络包含GELU[12]非线性激活函数,跨越连接和 Layer Normal 等结构. Mixer Layer 可表示为式(1).

其中,σ表示GELU 激活函数,W为感知机权重,∂为Layer Normal. 分别用DC和DS表示感知机channelm ixing 和token-mixing 中全连接层的节点个数.

1.2 迁移学习

迁移学习是从源域传输信息提高目标域的学习训练效率,迁移学习的源域和目标域担任的任务要相同,在深度学习中,迁移学习多用于解决数据量少,训练样本不充分这一问题,在图像识别领域被广泛运用.

用Mixer Layer 代替CNN ,使用ExpW 数据集预训练主干网络,将新的表情样本输入到网络中进行微调. 实验证明,通过该方法训练完成的模型具有较好的表情识别效果,具体步骤如图2 所示.

图2 人脸表情识别方法结构图

2 实验过程

实验运行环境: Windows 10 (64 位)操作系统,Intel(R)Xeon(R)Gold 6132 CPU,GPU 为NVIDIA GeForce RTX 2080 Ti 显存大小为 11 GB,Python 版本为3.7.0.

2.1 人脸表情数据集

为了说明该方法的有效性,采用日本女性面部表情数据集(JAFFE),CK+ (Extended Cohn-Kanada)数据集和Fer2013 数据集进行实验. 实验采用的样本数量分布如表1 所示.

表1 CK+、JAFFE、Fer2013 数据集实验样本选取数量分布表

其中 JAFFE 数据集包含10 位日本女性,每个人做出7 种表情,一共包含213 张大小为256×256 的人脸正面图像,共分为angry,disgust,fear,happy,sad,surprise,neutral (愤怒,厌恶,恐惧,高兴,悲伤,惊讶,自然)7 种标签. 该数据集的样本分布均匀,标签准确,如图3 所示.

图3 JAFFE 数据集样例图

CK+ 数据集包含123 个对象的327 个被标记的表情图片序列,包含angry,disgust,fear,happy,sadness,surprise,contempt (愤怒,厌恶,恐惧,高兴,悲伤,惊讶,蔑视)7 种标签. 每一个图片序列的最后一帧被提供了表情标签,所以共有327 个图像被标记. 该数据集样本分布较为不均匀,如图4 所示.

图4 CK+ 数据集样例图

Fer2013 数据集总共有35886 张人脸表情组成,分为angry,disgust,fear,happy,neutral,sad,surprise (愤怒,厌恶,恐惧,高兴,自然,悲伤,惊讶)7 种表情,其中包含训练集28708 张,共有验证集和私有验证集各3589张,每张图片的固定大小为48×48 的灰度图,该样本数据分布不均衡且样本中包含了错误样本,较为混乱,分类难度大,如图5,图6 所示.

图5 Fer2013 数据集样例图

图6 Fer2013 数据集错误样本样例图

2.2 数据增强

由表1 可知CK+和JAFFE 数据集样本数量较少,为了防止网络过拟合,增加样本的复杂度,在实验中使用了数据增强的方法,如图7 所示.

图7 数据增强图

通过数据增强后JAFFE 数据集一共有907 张图片,CK+数据集一共有4905 张图片,随机抽取数据集中80%作为训练集,其余部分为验证集. 针对Fer2013数据集的特点,本文实验剔除了数据集中不包含人脸样本,并将所有样本混合,随机抽取和原测试集样本同等数量的图片作为测试集,其余部分为训练集.

2.3 预训练

为了防止网络过拟合,在Fully-connected 后加入了Dropout. 如图8 所示.

图8 MLP 网络结构

Expression in-the-Wild 数据库 (ExpW)包含使用Google 图片搜索下载的91793 张面孔. 每个人脸图像都被手动注释为7 个基本表情类别之一. 在注释过程中去除了非人脸图像. 如图9 所示.

图9 ExpW 数据集样例图

为保证预训练模型特征提取的正确性,先从图片中提取出人脸,再对人脸进行矫正,去除样本中的错误样本,剩余87305 张图片,随机抽取80%作为训练集,将20%的图片作为验证集,验证模型的有效性. 在预训练过程中,会将图像缩放为48×48 大小的灰度图,使用自适应矩估计(Adam)的策略,设置学习率为0.001,Batch size 为64,Dropout 为0.2,使用交叉熵损失函数和cosine learning rate decay[13]学习率衰减策略,训练至损失不再下降. Mixer Layer 网络参数如表2 所示.

表2 Mixer 网络参数表

为了验证迁移学习的必要性,使用4 层Mixer 网络,对迁移前后准确率进行对比,如表3 所示.

表3 数据集迁移学习前后准确率对比 (%)

由表3 可以看出在训练小样本数据集时迁移学习的重要性. 通过迁移学习的方法将该模型在JAFFE 数据集上的准确率提升了大约5%,在CK+数据集上的准确率大约提升了1%. 通过迁移学习,能提高模型的识别准确率. 由于Fer2013 数据集样本丰富,因此该数据集不采取迁移学习策略.

3 实验设置与结果

使用无卷积的Mixer 网络结构,通过实验证明,该网络同样具有提取人脸表情特征提取的能力,在人脸表情识别达到了很好的识别效果. 同时,在样本充足的数据集上训练过的Mixer Layer 神经网络模型,再对其结果进行调整和训练,能够很好地迁移到其他小样本的数据集上.

3.1 训练过程

尝试了不同层数的Mixer Layer 网络对3 个数据集识别率的影响. 微调和训练网络时,网络结构参数与表2 保持一致,其余参数如表4 所示. 模型准确率如表5 所示.

表4 微调和训练参数表

表5 不同网络层数准确率

将增强后的目标数据集微调预训练好的网络,综合考虑训练代价和识别准确率,对数据集CK+,JAFFE 采用含4 层Mixer Layer 网络. Fer2013 数据集采用含8 层Mixer Layer 网络. 训练精度和训练损失精度如图10 所示.

图10 训练准确率和损失曲线

从图中的准确率可以看出,模型收敛快,训练过程没有发生过拟合,且在CK+和JAFFE 数据集上表现能力良好,无卷积的Mixer Layer 网络具有良好的学习能力和泛化能力. 将该方法与国内外优秀的人脸表情识别算法进行对比,在CK+ 数据集上准确率有1%–4%的提升,在JAFFE 数据集上有1%–2%的提升. Fer2013数据集人为识别准确率为(65±5)%,8 层 Mixer Layer模型的识别准确率达到了这一范围,且准确率有1%–2%的提升. 验证了Mixer Layer 结构在人脸表情识别上的有效性,对比结果如表6–表8 所示.

表6 不同方法在CK+数据集上识别准确率

表8 不同方法在Fer2013 数据集上识别准确率

为了进一步验证该算法,根据CK+和JAFFE 数据集上的实验结果绘制混淆矩阵,其中横坐标代表真实类别,对角线代表该类样本预测正确的样本数,其余为该类样本预测错误类别数,该方法对于数据集CK+和JAFFE 法分类结果均匀,各类表情样本更倾向于所属的类别,具有良好的分类表现能力. 如图11 所示.

图11 数据集混淆矩阵

4 结论与展望

本文基于Mixer Layer 提出了一种结构简单的人脸表情识别方法. 针对数据集样本不足问题,通过迁移学习和数据增强的方法提升了模型的识别准确率和泛化能力. 本文分别在CK+,JAFFE 和Fer2013 数据集上做了对比实验,最终实验结果表明,无卷积的Mixer Layer 网络对人脸表情也有很好的识别性.

虽然基于Mixer Layer 的网络在人脸表情识别取得了很好的识别效果,但样本差异大,有错误标注的数据集对网络识别准确率影响依然较大. 后续工作会在本文的基础上,改进网络结构,提升模型在复杂环境下的识别准确率.

表7 不同方法在JAFFE 数据集上识别准确率

猜你喜欢

集上卷积人脸
基于全卷积神经网络的猪背膘厚快速准确测定
单双点平滑结合的流形正则化半监督分类学习框架
基于图像处理与卷积神经网络的零件识别
玻璃窗上的人脸
基于深度卷积网络与空洞卷积融合的人群计数
智力考场:有趣的图片测试
卷积神经网络概述
“领家系”可爱脸VS“高冷系”美人脸
长得象人脸的十种动物
几道导数题引发的解题思考