基于OpenCV与Face++的自闭症儿童情绪识别系统
2022-04-29叶继阳屠益军
叶继阳 屠益军
关键词:自闭症;OpenCV;情绪
中图法分类号:TP312 文献标识码:A
1概述
情绪反映个体的认知心理状态,对行为表现具有调节效用,是诊断性评价和形成性评价的关键指标之一。自闭症儿童的面部表情与正常儿童存在一定差异,目前学术界和教育界均没有发布针对自闭症儿童情感计算的面部表情图像数据集,尤其缺少基于真实教育场景的自闭症儿童面部表情图像数据集。因此,开展面向自闭症儿童的情绪智能感知已成为一个重要研究方向。本次研究开发了一套情绪识别数据分析系统,该系统主要有三大功能:按指定帧数间隔截取视频帧,并将图像保存到指定位置;通过机器学习对图片进行分类,识别截取的图像中是否包含人脸,对包含人脸的图像进行标注并保存,对不包含人脸的图像则进行删除;对保存位置的所有文件夹下的图像进行情绪识别分析,主要识别愤怒、厌恶、恐惧、高兴、平静、伤心、惊喜七类最重要的情緒,最后以Excel形式输出分析数据。
目前,在一些普通的应用中,主要依靠训练好的深度学习模型进行人脸识别,国内如旷视科技、华为、阿里巴巴和腾讯等云平台都提供此功能。用户直接调用平台开放的公共接口就可以进行分类和预测。使用这种方式,不需要购置GPU等硬件设备,不需要花费大量的时间进行样本数据训练,技术和开发难度小,成本较低。Face++是世界最大的人脸识别技术平台,提供人脸检测与情绪分析等功能,其情绪识别功能较为完善,所以本文选用Face++分析自闭症儿童的脸部情绪。
2系统总体架构
获取自闭症儿童脸部表情信息的渠道主要是:儿童在学习、表演、娱乐、生活时的视频。首先借助OpenCV处理视频流,然后通过Face++AI对脸部表情数据进行分析,可以挖掘其中的情绪信息。情绪识别系统采用Python进行开发,计算机视觉库则选用OpenCV。
3数据处理流程
情绪监测系统中的数据处理流程如图1所示。
4相关技术
4.1视频采集
绝大多数的自闭症儿童或多或少都有语言交流的障碍,他们与他人交流的意愿不强,与人交际存在困难,往往在与人交往时有逃避的心理。相较于参加群体活动,他们更喜欢独自一人相处,因此社交障碍是自闭症患儿面临的最大问题。但是,这并不意味着他们没有感情,因此,自闭症儿童的脸部视频采集需要在特殊的环境和场景(比如专门的机构或者学校)下进行。
4.2抽取视频帧
视频的读取操作通过OpenCV中的VideoCapture类来实现;视频的写入操作是通过OpenCV中的VideoWriter类来实现。其中,VideoCapture类支持从视频文件和摄像机中读取视频信息。
首先,要想获取视频信息需创建一个VideoCapture对象,VideoCapture对象的创建方式有以下三种:从文件中读取视频,对象创建以后,OpenCV将会打开文件并做好读取准备,如果文件打开成功,则可以开始读取视频的帧;从摄像机中读取视频,在这种情况下,系统会给出一个标识符,用于表示想要访问的摄像机及其与操作系统的握手方式;先创建一个捕获对象,然后通过成员函数open()来设定打开的信息。
每帧都是一幅基于BRG格式的图像,可以通过VideoCapture类中的read()函数来获取新的帧,用grab()或retrive()方法读取一组或者一个多头摄像头。由于情绪变化有一个过程,对视频每秒抽取1帧图像进行分析,足以满足对自闭症儿童脸部的情绪监测要求。
4.3图像预处理
对抽取的图像中不包含人脸信息的图像进行剔除,主要借助Dlib库来实现。Dlib是一个机器学习的开源库,其包含机器学习诸多算法,使用起来很便捷,直接包含头文件即可使用,并且不依赖于其他库。用Dlib库来实现人脸识别,它已经替我们做好了绝大部分工作,对其进行调用即可。Dlib库含有人脸检测器,具有训练好的人脸关键点检测器。使用Dlib库所带的cvtColor()方法可以将彩色图像转换为灰度图像,这个过程虽然丢失了颜色信息,但保留了纹理及轮廓等特征,可以有效减少存储空间。处理效果如图2所示。
4.4情绪检测
针对需要检测人脸的图像,首先将这些图像在本地进行Base64编码,图片数据被编码成一系列字符串,然后将编码后的图像上传到Face++平台提供的通用接口即可。
目前,Face++AI人脸检测支持的图片格式有PNG、JPG、JPEG,平台支持对检测到的人脸进行直接分析,以获得人脸的关键点和各类属性信息。此外,该平台对上传的图片有一些基本的格式要求,比如图片像素尺寸最小是48?48、图片像素尺寸最大是4096?4096、图片文件小于2MB等。
通过调用Face++AI的人脸检测API,并在调用人脸检测接口时带上emotion参数,即可对这张人脸图片进行情绪识别。Face++平台可识别的情绪主要包含7种,分别为愤怒、厌恶、恐惧、高兴、伤心、惊讶和无情绪。
4.5情绪分析与存储
Xlwt是一个支持使用Python语言对Excel表格操作的库,不过目前只支持xls格式。最后,可通过调用循环语句将Face++平台返回的json数据写入Excel单元格,然后通过Excel的统计和分析功能形成图标分析统计数,以文件的形式保存在电脑上。
5结束语
在开发自闭症儿童情绪识别系统的过程中,首先对采集的视频资料进行抽帧,并对抽帧后的图像进行分析,再对包含人脸的图像进行base64格式编码,最后调用Face++平台的人脸识别接口,分析自闭症儿童的脸部情绪,并利用Xlwt操作Excel电子表格文件。通过调用循环语句将Face++平台返回的json数据写入Excel单元格,然后通过Excel的统计和分析功形成图标分析统计数,以文件的形式保存在电脑上,再将检测结果反馈给研究人员。今后,可结合更多的传感设备来获取对象的数据,让自闭症儿童的情绪检查更加准确。
作者简介:
叶继阳(1982—),本科,讲师,主要研究方向:虚拟现实技术、人工智能技术。
屠益军(1981—),本科,工程师,主要研究方向:计算机辅助技术在自闭症治疗中的应用。