APP下载

基于人脸识别实现实时监测的青少年心情评估系统的设计与实现

2023-11-06王子荐孟小燕

电脑知识与技术 2023年27期
关键词:人脸心情卷积

王子荐,孟小燕

(内蒙古师范大学青年政治学院,内蒙古 呼和浩特 010080)

0 引言

随着时代的变化,心理健康问题逐渐升级为人们关注的焦点之一。心理问题不像普通的健康问题容易被诊断,更多时候我们很难发现一个人情绪的好坏,多数人因为各种原因隐瞒自己的情绪。古人言“喜形于色”,通过表情来诊察心情的好坏是一种有效的方式。学术调查显示:人类有55%的情感都是通过面部表情来传递的,表情不仅能便捷反映学生的心情变化,更重要的是可以间接凸显出学生的心理状态[1]。调查问卷和亲自观察开始研究情绪识别的主要方式,两种方式的结果都不尽如人意,无法做到样本数量众多的情况下实时进行情绪检测;调查问卷存在一定的主观性,容易受到环境干扰。所以,在实际应用中迫切需要一种适合实时处理大规模数据进行情绪识别的方式。

随着人工智能、计算机图形学和各种硬件设备的不断发展和演变,情绪分析与识别是神经科学、心理学、认知科学、计算机科学和人工智能领域的一个重要跨学科研究课题。基于计算机视觉的表情识别方法因其数据获取的便捷性和方法使用的高效性受到研究者的关注。本作品设计是基于Python、OpenCV视觉库和OpenVino深度学习引擎,可以实时监测对象的情绪变化。前端设计微信小程序,通过摄像头提取人脸,判别人脸表情,后台建立学生人脸表情数据库,生成情绪曲线,用于快速便捷的发现学生心理的波动,开启一个有效的模式:发现—评估—干预,实时获取数据为校园心理咨询服务提供决策依据,从而有针对性地对学生心理问题进行预警和干预,引导青少年形成健康的心理状态,它是计算机技术与教育学科的深度融合,是人工智能技术在心情识别领域的重要应用。

1 本设计的算法:基于深度学习的卷积神经网络(CNN)

卷积神经网络内部涵括了卷积计算在内的反应神经网络,以抓取、预处理几步对特征进行构建,是计算机深度学习中的著名结构,卷积神经网络主要由卷积层、池化层、全连接层三部分组成[2]。算法的转换特征的方式主要由抓取数据集,预加载文件,构建神经网络这几步完成,从而实现我们想要的人脸特征识别。数据集通常是48×48像素的灰色图像,统一的灰度处理,以减少噪声干扰。其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。这样的性质,使CNN 不仅可用于人脸识别,也可用于物体分析、行为认知等其他的计算机视觉识别领域。

CNN 模型相比其他算法,更稳定且识别领域更广,该模型已被研发者大量使用并将其优化获得了更精准的识别率[3]。但在特定的条件下,如低光照度、低分辨率时,识别的准确性可能有所下降;使用CNN 进行特征提取,使用者不必关心具体的特征是哪些,即实现了特征提取的封装。

2 本作品的设计模块

本作品设计是使用Python 调用OpenCV 库,可判断不同同学的心情状况并基于本人身份进行记录。前端使用JavaScript 语言开发微信小程序,方便使用者对记录情况进行观察,后端系统检测(程序识别心情),进行心情数据的存储(独立存储学生不同时间段的心情数据),后台介入(上传教师管理端程序,汇报需要心理干预的学生)。

1)摄像头获取图像:

设置计算核心,内嵌人脸识别程序的摄像头安装在需要评估或者学生流动大的场所,如心理咨询室门口、宿舍楼门口,通过摄像头传入视频,程序的图像获取模块会捕捉每一帧图案,供捕捉和识别模块进行逐帧分析。

2)调用OpenCV视觉库捕捉人脸:

人脸捕捉模块会对图片内绘制检测矩形,加载OpenCV 视觉库的人脸检测模型计算存在权值,捕寻人脸位置,将人脸信息返回到表情识别模块。

3)利用Python语言做表情识别:

心情分析模块会计算分析图片内的人物表情,命名五种心情种类,分别为“自然”“生气”“伤心”“开心”“惊喜”,为保证心情识别的准确程度,程序会计算最大以及第二大的心情概率,并将心情概率绘制在逐帧的视频上,进行输出。

4)基于JavaScript进行前端web开发:

设计微信小程序,优化交互性,学生端记录学生信息、心情数据。

5)通过MySQL 建立基于人脸识别的心情评估数据库:

按照预先设计的人脸特征码,对不同个体的心情数据信息按身份进行存储。

6)反馈预警学生,及时心理疏导:

连接手机教师端进行反馈,根据心情曲线关注某阶段情绪波动较大的学生情况,有针对性地进行心理干预。

3 关键技术和主要技术指标

3.1 功能参数表

使用Python3.7开发,配置环境变量,使用OpenCV视觉库的人脸识别模块以及Intel表情识别模型,功能参数如表1所示。

表1 功能参数表

3.2 核心技术

1)人脸捕捉模块

读取加载模型和配置文件:定义检测矩阵的长宽高,代入模型;通过循环截取人脸,计算分数,确定人脸位置,得到坐标。

2)人脸情绪识别模块

命名五种心情;把人脸坐标代入心情分析模型,分析各种心情的概率;提取最高概率的心情,存入txt1,概率存入nub1;优化交互,绘制最高和次高概率的心情和心情概率在视频帧上,如图1—图2所示。

图1 遮住半张脸的高兴表情

图2 生气表情

3.3 识别的准确性测试

本次测试笔者选取40张人脸作为数据集,随机进行80次测试(图3),通过对比人工识别人物心情和程序处理的结果(图4),验证了识别的准确程度,并针对性分析了可能导致错误的原因。

图3 测试样本

测试结果分析:识别准确度为:96.25%(以正确为1,模糊为0.5),容错率符合目前使用环境;可能导致错误或模糊的原因为:头发、眼镜、帽檐对五官的遮挡;背景过高的曝光度。

4 本设计的创新点

4.1 性能优势

使用OpenVino加速引擎进行学习训练。OpenVino是Intel开发的深度学习模型推理加速引擎,相比其他运算引擎可在Intel 平台上提升计算机视觉相关深度学习性能达19 倍以上[4],对OpenCV,OpenXV 视觉库的传统API 实现加速与优化,并且突破了CNNbased网络在边缘设备的性能瓶颈。使用面部特征码对个体人脸进行识别与存储,JavaScript 编写微信小程序(图5),增加人机交互性;后台连接教师端(图6),可让管理者方便看到个体心理情况,提供及时预警。

图5 人机交互界面

图6 教师端反馈

4.2 应用领域优势

通过文献查找,将Python语言应用于情绪识别平台建设的研究非常有限。将人工智能技术用于情绪分析,针对青少年群体,更好地对有心理问题的学生进行尽早干预和治疗是本次设计作品的意义所在,也是创新特色。除了算法和模型的积累,还需要以宽泛的视角积累大量的用户数据,建立完善的数据库和专家知识决策系统,从而提高反馈情感时的精度,真正做到察言观色、情感分析。

5 结束语

情感识别是社会发展需求、深度学习领域结合人文关怀的综合体现[5]。在当今时代具有重要的科研意义。心理问题是隐性问题,心理健康逐渐升级成了研究者关注的焦点之一,有效的诊疗方式成了当务之急。心理问题不像普通健康问题那样容易被诊断,通过设置产品,实时监测个体的心理波动状况,可以较为容易地掌握个体的心理状况,从而及时、高效地对潜在问题的对象进行人文关怀,具有温馨的社会意义和乐观的效益前景。

猜你喜欢

人脸心情卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
从滤波器理解卷积
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法
马面部与人脸相似度惊人
一种基于卷积神经网络的性别识别方法
稚趣心情