高先杰,程纯纯
(山西农业大学基础部,山西 晋中 030800)
旅游业与其他行业有很强的关联性,可以为商业、饮食业、运输业等多产业注入强大的生机和活力。随着人工智能的快速发展,以互联网、大数据、云计算为主要特征的新一代信息技术将在很大程度上提升旅游业的服务品质。近年来,已出现许多人工智能与旅游业结合的相关工作,如利用机器学习分类器选择出行方式,基于监督学习方法对旅行目的地的在线评论进行情感分类,通过机器学习,预测个人的出行方式,使用深度学习进行旅游时间预测等。
随着智能设备的普及和深度学习的发展,人脸识别技术得到前所未有的发展。作为人脸识别技术的一个重要组成部分,人脸表情识别(facial expression recognition,FER) 在旅游业中发挥重要作用。基于游客的面部表情识别,可以得到游客对景点和景区服务质量满意程度等相关信息。表情识别方法主要分为传统方法和深度学习方法,传统方法需要对图片预处理及特征提取;深度学习是机器学习的一个分支,是具有大量隐藏层的神经网络算法。由于先进的优化技术和强大的GPU 计算能力,深度学习对表情识别的发展起到极大推动作用。它打破了传统方法的固有模式,并且提高了表情识别系统的准确率及鲁棒性。本文将人脸表情识别应用于旅游领域中,建立了基于卷积神经网络的人脸表情识别模型。特别地,考虑了不同网络层数,有无Batch Normalization 层和dropout层对模型性能的影响。通过人脸表情进行情感识别与分析,进而改善景区服务质量,提升游客对景区的满意度,促进旅游业的发展。
人工神经网络(ANN)是受哺乳动物大脑皮层神经元结构启发发明的计算模型,它可以准确近似任意连续函数。基于这种强大的运算能力,ANN 被广泛应用于许多问题中。ANN 基本结构如图1 所示,包括输入层、隐藏层和输出层。
图1 单隐层全连接神经网络
卷积神经网络(CNN)提供了一种简化的ANN 结构,主要用于解决困难的图像驱动模式识别任务。CNN 使用权共享策略,能有效节省训练开销。由于CNN 是ANN 的特殊形式,训练ANN 的所有常规方法和技巧仍然适用与CNN。一般情况下CNN 结构主要分为五个部分:输入层、卷积层、Batch Normalization(BN)层、池化层、全连接层和输出层。卷积层是CNN的关键组成部分,通过计算输入区域与权重之间的标量积来确定神经元的输出。
为了克服神经网络层数加深导致难以训练的现象,即梯度消失和爆炸问题,提出了Batch Normalization方法,该方法使得训练可以快速收敛。
池化层在给定输入维度下简单执行下采样,减少卷积层的输出维度,有效减少参数数量,防止过拟合现象。常见的池化方法有最大池化(取给定区域的最大值)和平均池化(取给定区域的平均值)。池化操作最大的缺点是会丢失信息,防止过拟合的同时有可能带来欠拟合。随着计算机性能的提升,使用池化的频率已变得越来越低。
Dropout是训练神经网络的一种正则化技术,让某个神经元的激活值以一定的概率p 停止工作,能够避免在训练数据上产生复杂的相互适应,可以明显地减少过拟合现象。如图2所示。
图2 Dropout后的神经网络
数据来源于Facial Expression Recognition 数据集。面部表情分为七个情感类别。整个程序在Python 3.6中使用,实验环境为:主机CPU 型号为Intel(R) Core(TM) i7-8700K,12 核心,主频为3.70 GHz,Nvidia Geforce GTX1080ti 显卡,12G 显存,物理内存为32GB,操作系统为Ubuntu20.04,深度学习框架为TensorFlow 2.5.0。
CNN 模型结构由输入层、卷积层、BN 层、dropout层、全连接层、输出层组成,如图3所示。
图3 模型结构
我们考虑五种不同CNN 模型:模型1(model1)有三个堆叠单元;与模型1 不同,模型2(model2)去掉dropout 层;模型3(model3)去掉模型1 的BN 层;模型4(model4)有二个堆叠单元;模型5(model5)有一个堆叠单元。
不同CNN 模型下损失(loss)的收敛情况对比如图4 所示。从中可以看出,不同模型收敛曲线均在下降。由损失函数收敛情况可以看出算法的有效性。
图4 不同模型训练过程
表1 为不同模型的分类结果对比
图5~图9为不同模型识别结果保留两位有效数字的归一化混淆矩阵(confusion matrix)。混淆矩阵也称误差矩阵,是一种呈现算法性能的可视化工具,可直观表示预测精度。
图5 模型1识别结果混淆矩阵
图6 模型2识别结果混淆矩阵
图7 模型3识别结果混淆矩阵
图8 模型4识别结果混淆矩阵
图9 模型5识别结果混淆矩阵
模型1与模型2比较可以得出dropout能提高分类性能,提升泛化性;模型1 与模型3 比较可得BN 层也会提高分类性能;模型1与模型4和模型5比较会发现深度网络比浅层网络性能更好。
本文提出了基于CNN 的人脸表情识别建模框架,该模型由输入层、卷积层、BN 层、dropout 层、全连接层、输出层组成。基于Facial Expression Recognition数据集对人脸表情进行识别。实验结果揭示了模型的有效性,并且考虑不同网络层数,Batch Normalization层和dropout层对模型性能的影响。
人脸表情识别(facial expression recognition,FER)在旅游业中可以发挥重要作用。基于游客的面部表情识别,可以得到游客对景点和景区服务质量满意程度等相关信息,发现服务中的不足之处,及时做出调整和整改。将此模型应用于“农谷”旅游,可增强景区吸引力。在人脸表情识别中仍然存在一些挑战,例如对于非配合情况下的人脸图像采集,遮挡问题、运动导致面部图像模糊或摄像头对焦不正确都会严重降低识别率,戴眼镜、首饰和口罩等也会对识别率产生影响,未来工作中我们将进一步突破这些难点。