使用深度学习方法实现面部表情包识别

这篇博客探讨了使用深度学习方法实现面部表情识别,通过卷积神经网络(CNN)构建模型,处理Kaggle面部识别数据集,最终达到58%的交叉验证准确率。文章介绍了数据预处理、模型构建、卷积层、池化层和输出层的工作原理,以及模型验证和结果分析。
摘要由CSDN通过智能技术生成

1、动机

人类面部表情丰富,但可以总结归纳为 7 类基本表情: happy, sad, surprise, fear, anger, disgust, and neutral。面部表情是通过面部肌肉活动表达出来,有些比较微妙且复杂,包含了大量内心活动信息。通过面部表情识别,我们能简单而低成本地度量出观众/用户对内容和服务的态度。例如,零售商使用这些度量评估客户的满意度。健康医疗提供商能在治疗的过程根据病人的表情状态来提高服务。娱乐厂商能够监控观众的喜欢来持续的生产优质的内容。

“2016 is the year when machines learn to grasp human emotions” --Andrew Moore, the dean of computer science at Carnegie Mellon.

训练过的人类很容易读懂其他人的情绪。事实上,只有 14 个月大的婴儿就可以区别出 happy 和 sad 的区别。但是计算机能够比人类在识别情绪上做的更好吗?为了找到答案,我们设计一个深度神经网络使得机器可以读懂人类情绪。换句话说,给机器以“眼”识别面部表情。

2、语料数据

训练模型的数据集使用的是 Kaggle 面部识别挑战赛的数据集(2013 年)。它由 35887 张面部图片组成,48x48像素灰度图片,标注为 7 类基本表情: happy, sad, surprise, fear, anger, disgust, and neutral。

0?wx_fmt=png

图 1 An overview of FER2013

当作者分析语料数据集时,发现“disgust”分类相对于其它分类不均衡(只有113 张样本)。作者将两类相似的情感(disgust 和 anger)合并起来。为了防止数据倾斜,作者构建一个数据生成器 fer2013datagen.py [1],该生成器很容易分割训练集和保留数据集。本例使用 28709 张面部图片作为训练集,余下的图片作为测试集和验证集(每个数据集 3589 张)。这样我们获得了 6 类均衡的数据集,见图2,包含 happy, sad, surprise, fear, anger, and neutral。

0?wx_fmt=png

图 2. Training and validation data distribution.

3、算法模型

0?wx_fmt=png

图3. Mr. Bean, the model for the model.

深度学习在计算机视觉上是非常流行的技术。本文选择卷积神经网络(CNN)层作为构建基础创建模型架构。CNN 是有名的模仿人脑工作的模型。本文使用憨豆先生的图片作为示例来解释如何将图像赋值给卷积神经网络模型。

典型的卷积神经网络包涵输入层,卷积层,稠密层(比如,全联接层)和输出层(见图4)。这些层按序组合,在 Keras [2] 中,使用 Sequential() 函数创建模型,再把其它层加入进来。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值