使用树莓派构建情感识别控制系统

摘要

在人机交互、驾驶员状态监控或用户情绪状态监控中,面部表情分析一直是情感识别领域的一个重要课题。人类具有多种情绪,在不同情绪下,其面部表情会呈现出不同的特征。例如,当一个人处于快乐状态时,可能会呈现笑脸或笑眼;而当一个人生气或悲伤时,则可能会皱眉。一旦系统识别出用户的面部表情,便会采取相应的行动。本文提出了一种利用树莓派功能开发情感识别系统的框架。我们使用树莓派的摄像头模块来检测用户的面部表情,并借助微软情感识别API来识别用户的情绪。当识别结果为生气或悲伤情绪时,系统将播放轻柔音乐并调节灯光为柔和模式,以舒缓人的情绪。实验结果表明,该系统能够与用户的情绪进行有效交互。

关键词 :人机交互 Microsoft Emotion API 树莓派 Emotion识别

1 引言

物联网由于网络技术的快速进步和信息技术应用范围的不断扩大,正成为一个热门的研究课题。与此同时,人们对高性能计算机系统的需求越来越高,希望计算机能够为我们带来更好的生活质量。因此,我们越来越关注人机交互。人类倾向于通过行为来传达情绪,这些行为不仅表现出人类的情感,还蕴含大量信息。通过这些信息,可以了解一个人当时的状态。例如,在影像监护系统中,通过观察患者的面部表情和行为,判断患者状况是否稳定;在驾驶监控系统中,当驾驶员疲劳时,其面部会显现出疲劳迹象,面部表情也会发生变化,此时监控系统将采取适当措施,提醒驾驶员休息。

计算机视觉在人机交互的发展中起着重要作用。如果计算机视觉能够帮助识别一个人的面部表情,从而使计算机提供适当的应对方式,那么人与计算机之间的关系将变得更加紧密。因此,面部表情识别近年来已成为一个热门的研究课题。通过对面部特征的捕获信息进行量化和分类,计算机将能够学习识别人的情绪状态,并为人类提供更好的服务。例如,当识别到一个人的情绪为喜悦或处于好心情时,系统将播放节奏轻快的音乐,或者将灯光调节为更生动的红色。

面部图像特征提取方法分为两类。一种方法是基于面部动作编码系统(FACS)[10],利用几何特征[4–7]来提取面部表情。FACS能够描述面部特定区域的位移情况。另一种方法则是通过面部外观特征来提取面部表情,以处理纹理特征[8, 9]。张等人[12]对这两种面部表情识别方法进行了比较。结果表明,使用局部纹理特征的方法比使用几何特征的方法性能更优。P. Viola和M. Jones提出的Viola‐Jones目标检测框架[1, 11],已成为面部表情识别中最流行的分类器之一。此外,Viola‐Jones目标检测框架在计算速度方面表现优异。

本文提出了一种将表情识别研究应用于实际生活的方法。利用树莓派作为工具采集人脸图像,并通过R语言将图像发送至情绪识别API进行识别,识别结果再回传至树莓派。随后,树莓派根据接收到的结果发送相应指令以控制设备。

本文的其余部分组织如下:第2节回顾了相关的图像识别技术。第3节介绍了我们的研究方法,第4节讨论了实验结果。最后,我们在第5节给出结论。

2 背景

2.1 树莓派上的图像处理

树莓派是一种具有多种扩展模块的微型计算机。它可以使用摄像头模块采集图像信息。树莓派支持Python,而Python支持跨平台计算机视觉库(OpenCV)。因此,树莓派可用于开发图像识别应用。

2.2 Viola‐Jones目标检测框架

维奥拉‐琼斯目标检测框架是一种分类器,其具有三个特征。第一,该分类器可以利用每个像素差异来寻找矩形特征,然后利用这些矩形特征来定义人脸的结构。图1是使用矩形特征找出人脸框的一个示例。该方法在计算速度方面表现出色。第二,该方法具有实时特性,且其跨平台计算机视觉库还为系统开发者提供了可用的函数。第三个特点是,维奥拉‐琼斯目标检测框架是一种自适应增强分类器(AdaBoost)。自适应增强分类器的特点是,已被错误分类的样本将用于训练下一个分类器。尽管起初它是一个弱分类器,但在训练之后,也可以转变为强分类器。

示意图0

2.3 卷积神经网络

卷积神经网络(CNN)[2]是一种前馈神经网络。前馈神经网络是神经网络中最简单且最早的发明。卷积神经网络由全连接层和一个或多个卷积组成,还包含相关的权重和池化层。卷积神经网络在图像和语音识别方面表现良好。

2.3.1 卷积层

每个卷积层[2]由多个卷积单元组成。卷积操作的目的是获取输入的不同特征。第一个卷积层可能只能获取初级特征,如角点、边缘或线条。更高级的特征可以通过迭代从初级特征中获得。

2.3.2 修正线性单元层

修正线性单元层(ReLU层)[2]使用线性整流作为神经层的激活函数。

$$
f(x) = \max(0, x)
$$

它优化了决策函数和整个神经网络的非线性,而线性整流不会影响卷积层。此外,其他函数也可用于改善网络的非线性特性,例如双曲正切函数,

$$
f(x) = \tanh(x); \quad f(x) = |\tanh(x)|
$$

ReLU函数的优点是它可以将神经网络的训练速度提高数倍,同时不会影响整个模型的泛化精度。

2.3.3 池化层

池化[2]是卷积神经网络中的一个重要部分,其中池化是对模式进行下采样的过程。非线性池化函数有许多模型,“最大池化”是最常用的函数之一。最大池化将输入图像划分为多个矩形区域,然后对每个矩形区域输出其最大值。

这种机制非常高效,因为在发现某个特征后,该特征的确切位置远不如该特征与其他特征之间的相对位置关系重要。池化层会持续减小数据空间的大小,从而使参数数量和计算量也随之减少,进而能够控制过拟合。池化层会周期性地插入在CNN卷积层之间。

池化层通常作用于每个输入特征,并减小特征的尺寸。更常用的池化层形式是,每2个元素会从图像中分离出一个2×2块,然后使用该块中4个值的最大值。这样可以将数据量减少75%。图2展示了池化的概念。

示意图1

由于池化层会过快地缩小数据尺寸,目前的趋势是使用池化滤波器代替池化层。

2.3.4 损失层

损失层[2]用于判断训练过程,将预测结果与真实结果进行比较,然后决定如何调整下一次训练。损失层通常是卷积神经网络中的最后一层。

2.4 情绪API

微软情绪API[3]会处理用户上传的图像,并为每张面部给出情绪评分。情绪API还使用人脸API来检测面部位置。

反馈结果中有八种情绪,包括愤怒、轻蔑、厌恶、恐惧、快乐、中性、悲伤和惊讶。这些情绪具有不同的面部表情特征。面部表情也是人与人之间交流的重要组成部分。图3是将图像上传至情绪API后结果的示例。

示意图2

3 提出的方法

我们的情感识别系统研究使用了树莓派及其摄像头模块、个人电脑以及其他设备进行控制。个人电脑上安装了R Studio。该研究的流程是利用树莓派摄像头模块采集用户的面部图像,树莓派通过无线网络将采集到的面部图像发送至个人电脑。然后,个人电脑使用R语言调用情绪API来识别情绪表达。当个人电脑获得结果后,会将结果发送回树莓派。树莓派将根据识别结果控制相应的设备。图4展示了我们系统的架构。

示意图3

我们可以通过情绪API获得27个关键点[1](见图5)。这27个关键点包括左鼻根、左眉内侧、左眉外侧、左眼上部、左瞳孔、左眼外角、左眼下部、左眼内角、左鼻尖、左鼻翼上部、左鼻翼外尖、嘴左侧、右鼻根、右眉内侧、右眉外侧、右眼上部、右瞳孔、右眼外角、右眼下部、右眼内角、右鼻尖、右鼻翼上部、右鼻翼外尖、嘴右侧、上唇上部、上唇下部、下唇上部、下唇下部。

示意图4

根据面部表情特征,情绪API可以处理图像以判断用户的情绪,结果包括愤怒、轻蔑、厌恶、恐惧、快乐、中性、悲伤和惊讶。我们将八种情绪分为两类,即好心情和坏心情。其中,快乐属于好心情,而坏心情包括愤怒、轻蔑、厌恶、恐惧、中性、悲伤、惊讶。树莓派将根据这些结果采取相应行动。

4 初步实验

4.1 情绪识别单元

我们使用R编程通过上传图像并调用情绪API来验证系统的可行性。我们使用8张图片来测试系统。图片由手机的摄像头拍摄。目的是测试微软情绪API在无任何控制因素环境下的表现。图6是由R语言导出的结果。该结果包含8种情感的得分,其中得分最高的即为情感识别系统的识别结果。图6显示快乐的得分为0.997591,在8种情感得分中最高。因此,情感识别系统的识别结果为快乐。

我们将8种情感图片上传至系统,得到如表1所示的8个结果。这8种情感图片包括AN(愤怒)、CO(蔑视)、DI(厌恶)、FE(恐惧)、HA(快乐)、NE(中性)、SA(悲伤)、SU(惊讶),表格fields分为图像输入和结果。

可以看出,该系统在处理愤怒、蔑视、厌恶、恐惧、悲伤、惊讶时表现不佳,但在处理快乐和中性时效果较好。

示意图5

图像输入 结果
AN FE
CO DI
DI FE
FE FE
HA HA
NE NE
SA SU
SU SU

表1. 情感识别系统中每种情绪的测试结果

4.2 控制单元

系统在从情感识别系统获得结果后,将结果发送至树莓派。树莓派会判断该结果,并通过蓝牙发送指令以控制蓝牙彩球。图7展示了由蓝牙不同指令控制的蓝牙彩球的各种颜色图像。

示意图6

我们将八种情绪设置为八种不同颜色。这八种颜色包括红色代表愤怒,湖绿色代表轻蔑,绿色代表厌恶,紫色代表恐惧,橙色代表快乐,黄色代表中性,蓝色代表悲伤,粉色代表惊讶。表2显示了蓝牙彩球的颜色信息,我们可以通过其对应的颜色看出用户的情绪。

情绪 颜色
愤怒 红色
轻蔑 湖绿色
厌恶 绿色
恐惧 紫色
快乐 橙色
中性 黄色
悲伤 蓝色
惊讶 粉色

表2. 每种颜色代表不同情绪

5 结论

本文所展示的实验结果仅为初步研究成果,该研究仍有改进空间。目前,情绪API对快乐情绪的识别表现已足够好,但在处理其他类型情绪时则不尽如人意。我们未来的研究将集中在情绪API反馈的处理,或引入图像预处理操作,并致力于提升情感识别系统的性能。此外,我们还期望该系统未来能够控制音视频设备或温控设备。

更多推荐