在社交互动中,面部表情在非语言交流中起着至关重要的作用。 心理学家保罗·埃克曼提出,全世界的人都有七种情绪表达方式:快乐、悲伤、惊讶、恐惧、愤怒、厌恶和蔑视。 建立更好的人机交互,例如通过图像检测人类情绪,可能是一项艰巨的任务。
面部表情对于社交互动很重要,并且在非语言人机交互方面发挥着重要作用。本篇文章的目标是创建一个模型,该模型可以使用网络摄像头等普通设备识别和分类一个人当前的情绪。
数据集
使用的数据集是从 Kaggle 的 2013 年面部情感识别挑战赛中收集的,连接在文章最后。
数据由人脸的 48x48 像素灰度图像组成。并且已经经过了自动对齐,也就是说在每张图像中占据大致相同的空间,并且基本上都是居中的。
我们的任务是根据面部表情中显示的情绪将每张脸分为七类之一(0=愤怒,1=厌恶,2=恐惧,3=快乐,4=悲伤,5=惊讶,6=中性) . 训练集包含 28,709 个示例,公共测试集包含 3,589 个示例。
卷积神经网络
在深度学习中,卷积神经网络(CNN 或 ConvNet)是最常用于分析视觉图像的一类人工神经网络。
当我们将Adam优化器和学习率0.0001的CNN模型与SVM和Random Forest这两个基线进行比较时,其准确率分别为45.62%和46%,准确率为61.34%。
通过上图对比看到,我们只使用了简单的CNN就能够将准确率提升15%,这说明CNN相比传统的机器学习模型优势还是很大的。
完整文章