目前人脸表情识别研究多数采用卷积神经网络(CNN)提取人脸特征并分类, CNN的缺点是网络结构复杂, 消耗计算资源. 针对以上缺点, 本文采用基于多层感知机(MLP)的Mixer Layer网络结构用于人脸表情识别. 采用数据增强和迁移学习方法解决数据集样本不足的问题, 搭建了不同层数的Mixer Layer网络. 经过实验比较, 4层Mixer Layer网络在CK+和JAFFE 数据集上的识别准确率分别达到了98.71%和95.93%, 8层Mixer Layer网络在Fer2013数据集上的识别准确率达到了63.06%. 实验结果表明, 无卷积结构的Mixer Layer网络在人脸表情识别任务上表现出良好的学习能力和泛化能力.
At present, most facial expression recognition research uses a convolutional neural network (CNN) to extract facial features and classify them. The disadvantage of CNN is that its network structure is complex and consumes substantial computing resources. In response, this study uses the Mixer Layer network structure based on multilayer perceptron (MLP) for facial expression recognition. Data augmentation and transfer learning methods are employed to solve the problem of insufficient data set samples, and Mixer Layer networks with different layers are built. According to experimental comparison, the recognition accuracy of the 4-layer Mixer Layer network on CK+ and JAFFE data sets reach 98.71% and 95.93% respectively, and that of the 8-layer Mixer Layer network on Fer2013 data set is 63.06%. The experimental results show that the Mixer Layer networks without a convolution structure exhibit sound learning and generalization abilities in facial expression recognition tasks.
人脸表情是反映人类情感最普遍最重要的方式之一, 面部表情传达着人与人之间的社会和情感信息, 面部基本表情可分为6种(快乐, 悲伤, 惊讶, 恐惧, 愤怒和厌恶). 随着人工智能和深度学习的兴起, 基于深度学习的人脸表情识别得到了广泛的发展和应用, 基于传统特征提取方法的人脸表情识别, 需要大量专业知识来设计提取器, 同时传统方法的泛化能力和鲁棒性相对于深度学习的方法略有不足. 神经网络可以获得表情图像中更抽象, 更复杂的特征, 使识别更加准确. 随着深度学习的发展, 基于卷积神经网络的人脸表情识别, 取得了巨大的进步.
Shi等[
可以看出, 对于人脸表情识别的研究方法, 目前大多数是基于卷积神经网络, 同时对数据进行了一定预处理. 本文通过搭建无卷积结构的浅层神经网络对人脸表情进行识别, 该模型结构简单, 计算复杂度低.
2021年Google提出来一种无卷积和注意力机制的网络MLP-Mixer[
MLP Mixer网络结构
每个MLP包含两个全连接层. channel-mixing将不同的通道之间联系起来, token-mixing寻找图片上不同空间位置的关系. MLP-Mixer 的整体结构包括Per-patch Fully-connected, Mixer Layer 和Global Average Pooling. Per-patch Fully-connected将分割的图片块映射为指定维度. 网络包含GELU[
其中,
迁移学习是从源域传输信息提高目标域的学习训练效率, 迁移学习的源域和目标域担任的任务要相同, 在深度学习中, 迁移学习多用于解决数据量少, 训练样本不充分这一问题, 在图像识别领域被广泛运用.
用Mixer Layer代替CNN , 使用ExpW数据集预训练主干网络, 将新的表情样本输入到网络中进行微调. 实验证明, 通过该方法训练完成的模型具有较好的表情识别效果, 具体步骤如
人脸表情识别方法结构图
实验运行环境: Windows 10 (64位)操作系统, Intel(R) Xeon(R) Gold 6132 CPU, GPU为NVIDIA GeForce RTX 2080 Ti显存大小为 11 GB, Python版本为3.7.0.
为了说明该方法的有效性, 采用日本女性面部表情数据集(JAFFE), CK+ (Extended Cohn-Kanada)数据集和Fer2013 数据集进行实验. 实验采用的样本数量分布如
CK+、JAFFE、Fer2013数据集实验样本选取数量分布表
数据集 | Angry | Neutral | Disgust | Fear |
JAFFE | 30 | 30 | 29 | 32 |
CK+ | 135 | 0 | 177 | 75 |
Fer2013 | 4055 | 6189 | 546 | 5133 |
数据集 | Happy | Sad/Sadness | Surprise | Contempt |
JAFFE | 31 | 31 | 30 | 0 |
CK+ | 207 | 84 | 249 | 54 |
Fer2013 | 8758 | 6074 | 3995 | 0 |
其中 JAFFE 数据集包含10 位日本女性, 每个人做出7种表情, 一共包含213张大小为256×256的人脸正面图像, 共分为angry, disgust, fear, happy, sad, surprise, neutral (愤怒, 厌恶, 恐惧, 高兴, 悲伤, 惊讶, 自然) 7种标签. 该数据集的样本分布均匀, 标签准确, 如
JAFFE 数据集样例图
CK+ 数据集包含123个对象的327个被标记的表情图片序列, 包含angry, disgust, fear, happy, sadness, surprise, contempt (愤怒, 厌恶, 恐惧, 高兴, 悲伤, 惊讶, 蔑视) 7种标签. 每一个图片序列的最后一帧被提供了表情标签, 所以共有327个图像被标记. 该数据集样本分布较为不均匀, 如
Fer2013数据集总共有35886张人脸表情组成, 分为angry, disgust, fear, happy, neutral, sad, surprise (愤怒, 厌恶, 恐惧, 高兴, 自然, 悲伤, 惊讶) 7种表情, 其中包含训练集28708张, 共有验证集和私有验证集各3589张, 每张图片的固定大小为48×48的灰度图, 该样本数据分布不均衡且样本中包含了错误样本, 较为混乱, 分类难度大, 如
CK+ 数据集样例图
Fer2013数据集样例图
Fer2013数据集错误样本样例图
由
数据增强图
通过数据增强后JAFFE数据集一共有907张图片, CK+数据集一共有4905张图片, 随机抽取数据集中80%作为训练集, 其余部分为验证集. 针对Fer2013数据集的特点, 本文实验剔除了数据集中不包含人脸样本, 并将所有样本混合, 随机抽取和原测试集样本同等数量的图片作为测试集, 其余部分为训练集.
为了防止网络过拟合, 在Fully-connected 后加入了Dropout. 如
MLP网络结构
Expression in-the-Wild 数据库 (ExpW) 包含使用 Google 图片搜索下载的91793张面孔. 每个人脸图像都被手动注释为7个基本表情类别之一. 在注释过程中去除了非人脸图像. 如
ExpW数据集样例图
为保证预训练模型特征提取的正确性, 先从图片中提取出人脸, 再对人脸进行矫正, 去除样本中的错误样本, 剩余87305张图片, 随机抽取80%作为训练集, 将20%的图片作为验证集, 验证模型的有效性. 在预训练过程中, 会将图像缩放为48×48大小的灰度图, 使用自适应矩估计(Adam)的策略, 设置学习率为0.001, Batch size 为64, Dropout 为0.2, 使用交叉熵损失函数和cosine learning rate decay[
为了验证迁移学习的必要性, 使用4层Mixer网络, 对迁移前后准确率进行对比, 如
Mixer 网络参数表
参数 | 值 |
Patch resolution |
4×4 |
Hidden size |
512 |
Sequence length |
144 |
MLP dimension |
2048 |
MLP dimension |
256 |
数据集迁移学习前后准确率对比 (%)
数据集 | 迁移前 | 迁移后 |
JAFFE | 90.0 | 95.93 |
CK+ | 97.9 | 98.71 |
由
使用无卷积的Mixer 网络结构, 通过实验证明, 该网络同样具有提取人脸表情特征提取的能力, 在人脸表情识别达到了很好的识别效果. 同时, 在样本充足的数据集上训练过的Mixer Layer神经网络模型, 再对其结果进行调整和训练, 能够很好地迁移到其他小样本的数据集上.
尝试了不同层数的Mixer Layer 网络对3个数据集识别率的影响. 微调和训练网络时, 网络结构参数与
将增强后的目标数据集微调预训练好的网络, 综合考虑训练代价和识别准确率, 对数据集CK+, JAFFE采用含4层Mixer Layer网络. Fer2013数据集采用含8层Mixer Layer网络. 训练精度和训练损失精度如
从图中的准确率可以看出, 模型收敛快, 训练过程没有发生过拟合, 且在CK+和JAFFE数据集上表现能力良好, 无卷积的Mixer Layer 网络具有良好的学习能力和泛化能力. 将该方法与国内外优秀的人脸表情识别算法进行对比, 在CK+ 数据集上准确率有1%–4%的提升, 在JAFFE数据集上有1%–2%的提升. Fer2013数据集人为识别准确率为(65±5)%, 8层 Mixer Layer模型的识别准确率达到了这一范围, 且准确率有1%–2%的提升. 验证了Mixer Layer结构在人脸表情识别上的有效性, 对比结果如
微调和训练参数表
超参数 | 微调 | 训练 |
初始学习率 | 0.001 | 0.01 |
优化器 | Adam | Adam |
损失函数 | 交叉熵损失 | 交叉熵损失 |
Dropout | 0.5 | 0.2 |
Batch size | 64 | 64 |
策略 | 验证集损失不再下降时停止 | 验证集损失10 个epochs不下降时学习率下降为原来的0.1, 20个epochs不下降时停止训练 |
不同网络层数准确率
数据集 | Mixer Layer层数 | 准确率 (%) |
CK+ | 1 | 97.20 |
4 | ||
8 | 99.30 | |
JAFFE | 1 | 93.30 |
4 | ||
8 | 93.88 | |
Fer2013 | 4 | 59.97 |
8 | ||
12 | 61.97 | |
20 | 60.92 |
为了进一步验证该算法, 根据CK+和JAFFE 数据集上的实验结果绘制混淆矩阵, 其中横坐标代表真实类别, 对角线代表该类样本预测正确的样本数, 其余为该类样本预测错误类别数, 该方法对于数据集CK+和JAFFE法分类结果均匀, 各类表情样本更倾向于所属的类别, 具有良好的分类表现能力. 如
本文基于Mixer Layer 提出了一种结构简单的人脸表情识别方法. 针对数据集样本不足问题, 通过迁移学习和数据增强的方法提升了模型的识别准确率和泛化能力. 本文分别在CK+, JAFFE和Fer2013数据集上做了对比实验, 最终实验结果表明, 无卷积的Mixer Layer 网络对人脸表情也有很好的识别性.
虽然基于Mixer Layer的网络在人脸表情识别取得了很好的识别效果, 但样本差异大, 有错误标注的数据集对网络识别准确率影响依然较大. 后续工作会在本文的基础上, 改进网络结构, 提升模型在复杂环境下的识别准确率.
训练准确率和损失曲线
不同方法在CK+数据集上识别准确率
模型 | 准确率 (%) |
MBCC-CNN[ |
98.48 |
剪枝GoogLeNet[ |
85.09 |
I2CNN[ |
96.2 |
改进AlexNet[ |
97.46 |
STM-ExpLet[ |
94.19 |
本文算法 |
不同方法在JAFFE数据集上识别准确率
模型 | 准确率 (%) |
LBP+CNN6[ |
93.48 |
剪枝GoogLeNet[ |
83.84 |
C-LetNet5[ |
94.37 |
本文算法 |
不同方法在Fer2013数据集上识别准确率
模型 | 准确率 (%) |
MI+MII [ |
61.3 |
CNN5+ DAL结构[ |
61.59 |
本文算法 |
数据集混淆矩阵
Shi CP, Tan C, Wang LG. A facial expression recognition method based on a multibranch cross-connection convolutional neural network. IEEE Access, 2021, 9: 39255–39274, doi: 10.1109/ACCESS.2021.3063493.
Li B. Facial expression recognition via transfer learning. EAI Endorsed Transactions on e-Learning, 2021, 7(21): e4, doi: 10.4108/eai.8-4-2021.169180.
Zhang YD, Yang ZJ, Lu HM,
魏赟,李栋.结合改进卷积神经网络与自编码器的表情识别[J].小型微型计算机系统,2022,43(02):387-392.
江大鹏, 杨彪, 邹凌. 基于LBP卷积神经网络的面部表情识别. 计算机工程与设计, 2018, 39(7): 1971–1977.
申毫, 孟庆浩, 刘胤伯. 基于轻量卷积网络多层特征融合的人脸表情识别. 激光与光电子学进展, 2021, 58(6): 0610005.
伊力哈木·亚尔买买提, 张伟. 一种新的人脸面部表情识别算法研究. 电子器件, 2021, 44(3): 616–623.
崔子越, 皮家甜, 陈勇, 等. 结合改进VGGNet和Focal Loss的人脸表情识别. 计算机工程与应用, 2021, 57(19): 171–178.
张宏丽, 白翔宇. 利用优化剪枝GoogLeNet的人脸表情识别方法. 计算机工程与应用, 2021, 57(19): 179–188.
Dhankhar P. ResNet-50 and VGG-16 for recognizing Facial Emotions. International Journal of Innovations in Engineering and Technology (IJIET), 2019, 13(4): 126–130.
et al. Bag of tricks for image classification with convolutional neural networks. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Long Beach: IEEE, 2019. 558–567.]]>
et al. Identity-aware convolutional neural network for facial expression recognition. 2017 12th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2017). Washington, DC: IEEE, 2017. 558–565.]]>
石翠萍, 谭聪, 左江, 等. 基于改进AlexNet卷积神经网络的人脸表情识别. 电讯技术, 2020, 60(9): 1005–1012.
et al. Learning expressionlets on spatio-temporal manifold for dynamic facial expression recognition. 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 1749–1756.]]>
李勇, 林小竹, 蒋梦莹. 基于跨连接LeNet-5网络的面部表情识别. 自动化学报, 2018, 44(1): 176–182.
et al. Hand-crafted feature guided deep learning for facial expression recognition. 2018 13th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2018). Xi’an: IEEE, 2018. 423–430.]]>
翟懿奎, 刘健. 面向人脸表情识别的迁移卷积神经网络研究. 信号处理, 2018, 34(6): 729–738.