基于GAN改进的人脸表情识别算法及应用

2020-05-29 06:22李婷婷胡玉龙魏枫林
吉林大学学报(理学版) 2020年3期
关键词:人脸特征提取分类器

李婷婷, 胡玉龙, 魏枫林

(1.吉林大学 符号计算与知识工程教育部重点实验室, 长春 130012;2.吉林大学 计算机科学与技术学院, 长春 130012; 3.吉林大学 软件学院, 长春 130012)

表情是人们进行情感表达的重要形式[1].人脸表情识别[2-4]在实际生活中应用广泛, 如安全驾驶中司机驾驶状态分析、犯罪审讯中嫌疑人心理活动分析以及教育中学生学习状态分析等[5].传统的人脸表情识别算法主要依赖手工标注特征点提取特征, 利用提取的表情特征进行分类, 导致算法过于依赖人工干预, 鲁棒性较差, 识别率较低.近年来, 随着深度学习[6]的发展, 深度卷积神经网络[7]广泛应用于人脸表情识别中.卷积神经网络可自动学习并提取人脸表情特征, 无需人为参与, 在一定程度上提高了表情识别的准确率.

本文提出一种基于生成对抗网络(generative adversarial networks, GAN)[8]改进的人脸表情识别算法, 并将该算法应用在工作状态智能监测中, 以监管研究人员的状态, 提高计算机公共资源利用率.首先, 将人脸表情图像输入特征提取器中, 提取人脸表情特征; 其次, 将提取的人脸表情特征同时输入特征合成器和分类器中: 在分类器中, 使用SoftMax操作对表情特征进行分类, 得到表情图像的分类结果; 同时, 在特征合成器中生成假人脸表情图像; 最后, 将真实图像和生成图像同时输入判别器中, 判断哪幅图像是真实图像, 哪幅图像是生成图像, 判别器将判别结果反馈给生成器, 以促进生成器生成更真实的图像.在生成器和判别器的对抗过程中逐步提高特征提取器提取表情特征的能力.实验结果表明, 本文算法具有较强的鲁棒性, 能有效提高人脸表情识别效果.

1 生成对抗网络

图1 传统生成对抗网络模型Fig.1 Model of traditionally generative adversarial networks

生成对抗网络是目前人工智能领域使用较多的一种深度学习模型, 主要用于数据增强、图像生成等.经典生成对抗网络主要由两部分组成, 分别是生成器和判别器.传统的生成对抗网络模型如图1所示.其中, 生成器主要用于学习真实图像的分布, 并生成一张接近真实图像的图像; 同时生成器把生成图像和真实图像输入判别器中.判别器实际上是一个分类网络, 主要判断输入图像是真实图像还是生成图像, 并给生成器一个反馈, 用于和生成器对抗博弈.

经典对抗生成网络训练过程如下: 首先将生成图像和真实图像同时输入判别器, 对判别器进行训练, 随着训练过程的进行, 生成器生成的图片越来越真实, 判别器的分类能力逐渐提高; 最后训练过程达到收敛状态, 判别器无法识别输入图像的真假, 生成器生成的图像也与真实图像相同, 即达到Nash均衡状态.经典GAN网络的目标函数为

(1)

其中:G为生成器;D为判别器;x为真实图像;z为输入生成器的图像;G(z)为生成器生成的图像;D(x)为判别器判断x为真实图像的概率;D(G(z))为判别器判断生成器生成的图像为真实图像的概率;Ex~Pdata(x)和Ez~Pz(z)为期望函数.

2 改进算法设计

本文基于传统生成对抗网络提出一种改进的人脸表情识别算法.该算法模型主要由两部分组成, 分别是生成器和判别器, 其中, 生成器由特征提取器和特征合成器组成, 如图2所示.

图2 基于GAN改进的人脸表情识别算法模型Fig.2 Model of improved facial expression recognition algorithm based on GAN

特征提取器用于提取输入图像的特征, 图像输入分辨率为3×48×48, 主干网络使用ResNet18[9].与传统生成对抗网络不同, 生成器输入的不是随机噪声, 而是一幅人脸表情图像.首先, 特征提取器对输入图像xi(i=1,2,…,n)进行3×3卷积操作, 步长为1, 卷积层后紧接一个Batch Normalization层和一个Relu激活层; 其次, 基于文献[9], 分别进行4个模块的卷积操作, 每个卷积层操作的卷积核大小为3×3; 再次, 在卷积模块后进行平均池化操作, 窗口大小为2×2, 为了防止在训练过程中产生过拟合, 在平均池化操作后使用dropout; 最后, 将提取的特征输入到分类器.

分类器由两个全连接层和SoftMax层组成, 将512维特征向量分类为7类人脸表情, 得到人脸表情识别结果.分类器的分类损失Ec定义为

其中:xi为原始输入图像;θf为特征提取器的参数;Gf为特征提取器;θc为分类器的参数;Gc为分类器;yi为真实标注;Lc为分类损失计算函数.

为提高特征提取器提取特征的能力, 本文采用GAN中的对抗思想, 通过生成器和判别器之间的对抗训练, 提高特征提取器提取特征的能力及判别器的识别能力.特征合成器是与特征提取器对称的结构, 主要由卷积层和上采样层组成, 其经过不断地卷积和上采样操作, 输出和输入图像大小一致的生成图像.判别器主干网络采用VGG16[10].首先对图像进行2次卷积和池化操作, 每次操作包括2个卷积和1个最大池化, 然后再进行3次卷积和池化操作, 每次操作包括3个卷积操作和1个最大池化操作, 最后使用3个全连接层和1个SoftMax层.与传统生成对抗网络类似, 判别器主要判断输入判别器图像的真假.输入图像与生成图像大小和维度相同, 均为3×48×48, 分别输入判别器.

生成器与判别器的对抗损失Eadv定义为

(2)

其中:xi为真实图像;Gf为特征提取器;θf为特征提取器的参数;Gh为特征合成器;θh为特征合成器的参数;Gd为判别器;θd为判别器的参数;Ld为判别器损失计算函数.本文算法总损失函数Etotal为

Etotal(θf,θh,θc,θd)=Ec(θf,θc)+Eadv(θf,θh,θd).

(3)

3 实 验

为验证本文算法的有效性, 进行多次实验验证.实验平台环境为: Ubuntu16.04, Python3.5, Pytorch1.1.0结合的编程环境, TITAN X (Pascal) GPU时钟频率, 内存12.0 GB.

3.1 数据集预处理

本文采用CK+人脸表情数据集[11]进行实验, 以验证基于GAN改进的人脸表情识别算法性能.CK+数据集采集了123张不同人的面部表情图像, 共593例表情序列, 951张图像样本.其中包含207张高兴表情图像, 84张悲伤表情图像, 135张愤怒表情图像, 75张恐惧表情图像, 249张惊讶表情图像, 177张厌恶表情图像, 24张中性表情图像, 共7类基本表情, 图像像素大小为3×48×48, 数据集部分图像及真实类别标注如图3所示.

为进一步提高算法模型的分类能力, 防止由于样本数量少而产生的过拟合现象, 本文在实验过程中使用数据增强[12], 通过对数据集中的表情图像进行旋转、水平翻转和竖直翻转等操作, 将数据集扩展到10 000张.

3.2 结果分析

为了测试和评估模型的效果, 在扩展后的表情图像数据集中随机选取8 000张图像作为训练集, 1 000张图像作为测试集, 剩余1 000张图像作为验证集.部分测试集图像可视化效果如图4所示.

图3 CK+数据集表情示例Fig.3 Expression examples of CK+ dataset

a. 生气; b. 厌恶; c. 害怕; d. 开心; e. 悲伤; f. 惊讶; g. 中性.图4 算法实验部分图像效果Fig.4 Part image effects of experiment of algorithm

表1为本文算法识别效果的混淆矩阵.由表1可见: 本文算法对高兴、愤怒、惊讶和厌恶4种表情识别率较高, 分别达96.43%,95.45%,97.01%和95.55%; 对悲伤、恐惧和中性3种表情的识别率相对较低, 分别为92.14%,93.40%和93.17%.改进算法将悲伤表情误分类为恐惧和愤怒表情的概率为4.92%, 这可能是由于悲伤表情与这两类表情在眼睛部位具有一定的相似度所致; 将恐惧表情误分类为惊讶的概率较高, 主要原因可能是由于恐惧表情与惊讶表情在眼睛、鼻子等器官特征层次上具有较高的相似度; 中性表情误分类为高兴、厌恶和悲伤的概率较大, 可能是由于这4类表情在眼睛和嘴巴部位的特征具有较高的相似度.

表1 CK+测试结果混淆矩阵(%)

实验表明, 本文算法在CK+数据集上的平均准确率达94.73%, 高于传统人脸表情识别算法.

4 应 用

4.1 表情数值化

由于工作人员的情绪对其工作状态有较大影响, 仅依赖表情标签无法正确分析工作状态, 因此本文将上述7种表情对工作状态的影响进行数值上的划分, 如图5所示.由图5可见, 在高兴、惊讶和中性的情绪下, 工作人员工作状态较好, 分值较高; 在悲伤、愤怒、恐惧和厌恶的情绪下, 工作人员工作状态较差, 分值较低.因此, 需根据工作人员的表情对其工作状态进行分析, 从而合理地分配实验室资源, 以达到提高实验室资源利用率的目的.

4.2 工作状态智能监测

本文将改进方法应用于实验室管理中.首先, 用监控摄像头采集实验室工作人员的表情数据, 然后用本文方法将这些数据进行处理, 通过计算某工作人员在一段时间内的表情变化得到工作状态值, 从而了解实验室工作人员在24 h内的工作状态变化, 结果如图6所示.由图6可见, 该实验室工作人员在24 h内工作状态呈波浪形变化, 其中, 在16:00~17:00,19:00~22:00内, 工作状态较好, 较适合使用实验室资源; 在8:00~15:00内, 其工作状态较差, 不建议在该时间段内使用实验室资源, 应分配给其他在该时间段内状态较好的工作人员, 从而实现资源的交错式分配, 以达到提高实验室资源利用率的目的.

图5 不同情绪对工作状态的影响Fig.5 Influence of different emotions on working state

图6 工作状态-时间曲线Fig.6 Curve of working state-time

综上所述, 本文提出了一种基于GAN改进的人脸表情识别算法.该算法基于生成器和判别器之间的对抗思想, 首先通过特征提取器提取表情图像特征, 然后将特征输入到特征合成器输出生成图像, 最后通过判别器提供给生成器的反馈信息不断提高特征提取器提取表情特征的能力, 进而提高表情识别算法的识别率.实验结果表明, 基于GAN改进的人脸表情识别算法在CK+数据集上的识别准确率较高.

猜你喜欢
人脸特征提取分类器
有特点的人脸
一起学画人脸
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
Bagging RCSP脑电特征提取算法
基于MED和循环域解调的多故障特征提取
基于层次化分类器的遥感图像飞机目标检测