结合卷积神经网络与OpenCV的人脸表情识别

人工智能及识别技术
钢锭模
本栏目责任编辑:唐一东
结合卷积神经网络与OpenCV 的人脸表情识别
张悦欣,付晓峰
(杭州电子科技大学计算机学院,浙江杭州310018)
摘要:针对实时人脸表情识别模型训练慢、识别速度慢的问题,提出一种OpenCV 和卷积神经网络结合进行实时表情识别
的方法。人脸表情是多个局部区域特征的集合,而卷积神经网络提取出的特征能更多地关注局部,因此采取卷积神经网络的方式进行模型的训练。所提网络在全连接层中加入了Dropout ,能有效预防过拟合现象的发生,并且提升模型泛化能力。实验结果表明此模型的可行性,在fer2013数据集上的准确率达到71.6%。基于以上方法再结合OpenCV 构建一个实时表情识别系统,系统实时识别表情的速度为0.4s 。
所构建的系统相比于现有的其他系统,具有训练速度较快、准确率较高、识别速度较快等优点。关键词:OpenCV;卷积神经网络;表情识别;情感分类;深度学习中图分类号:TP183
文献标识码:A
文章编号:1009-3044(2021)05-0183-03
开放科学(资源服务)标识码(OSID ):
Facial Expression Recognition Combining Convolutional Neural Network and OpenCV ZHANG Yue-xin ,FU Xiao-feng
(School of Computer Science and Technology,Hangzhou Dianzi University,Hangzhou 310018,China)Abstract :Aiming at the problems of slow training and slow recognition speed of real-time facial expression recognition model,a method for real-time expression recognition by combining OpenCV and convolutional neural network is proposed.Facial expres⁃sion is a collection of features of multiple local regions,and the features extracted by the convolutional neural network can pay more attention to the locality.Therefore,this paper adopts the method of convolutional neural network to train the model.The net⁃work in this paper adds Dropout to the fully connected layer,which can eff
ectively prevent the occurrence of overfitting and im⁃prove the model generalization ability.The experimental results show the feasibility of this model,and the accuracy rate on the fer2013data set reaches 71.6%.Based on the above method and then combined with OpenCV to construct the real-time expression recognition system in this paper,the system's real-time expression recognition speed is 0.4s.Compared with the existing system,the system in this paper has the advantages of faster training speed,higher accuracy and faster recognition speed.Key words :OpenCV;convolutional neural network;facial expression recognition;emotion classification;deep learning
面部表情是人们用来表达自己内心情绪的方式之一,对比语言能更具象直观地表达人类的心情。随着人工智能技术和计算机技术的日益进步,人们日益向往智能化的人机交互方式[1]。如果计算机能认识和识别人类的情感,将能更好地为人类服务。因此人脸表情识别在机器人、心理学、医学、智能监控
及3D 合成动画[2]
等方面都有很大的应用价值。
目前表情识别的应用方法有LBP 、SVM [3]和深度学习[4]等。近几年来,深度学习逐渐走进越来越多人的视线,成了人们研究的热点,卷积神经网络[5]也成为其中较为热门的方法,并取得了越来越好的成绩,比如VGGNet [6]、CNN16等。但结合实时摄像进行表情识别的仍然不是很多,用时存在识别时
间较长等问题。为了减少人脸识别的时间,本文使用了OpenCV 中的haar⁃
cascade 分类器[7],其中积分图和AdaBoost 级联分类器的使用节
省了大量时间,可提高检测效率。
本文采用OpenCV 的haarcascade 分类器检测人脸部分,利用卷积神经网络来提取人脸表情特征,设计了一个可以进行实时人脸表情识别的系统,还可进行静态图片或视频中的表情识别。
1方法
卷积神经网络是包括卷积层、池化层、全连接层的深度神经网络[8]
。卷积神经网络权值共享,卷积池化交替出现的层组织结构方式能够减少网络参数并对输入进行降维,使提取出的特征具有高度不变性。本文采用4层卷积和4层池化交替,输
收稿日期:2020-09-30
基金项目:国家自然科学基金资助项目(61672199);浙江省科技计划项目-2018年度重点研发计划项目(2018C01030)作者简介:张悦欣(1999—),女,浙江嘉兴人,本科,主要研究方向为人脸表情识别;付晓峰(1981—),女,浙江杭州人,博士,副教
授,主要研究方向为计算机视觉、人工智能、图像处理。
183
Computer Knowledge and Technology 电脑知识与技术第17卷第5期(2021年2月)
本栏目责任编辑:唐一东
人工智能及识别技术
入数据集的训练图片,输出包含7个神经元,对应7种表情,分别为angry 、disgust 、fear 、happy 、neutral 、sad 、surprise 。
人脸图像具有丰富的表情数据信息,如:眼睛睁大、眉毛皱起、嘴巴张大、嘴角上扬等,这些都是人心情通过面部的具象表达。为了提取出的特征能更多地关注局部,一般设定卷积神经网络内的卷积核小于输入图像的大小,适合提取人脸多个局部区域特征。关于表情分类,本文先利用卷积神经网络提取相关特征,再通过分类器得到最后的分类结果。1.1表情识别模型构建
卷积神经网络具有由卷积池化结构提供特征提取的能力,
其组织方式使其含有较少的训练参数,能够提取旋转、位移不变形特征以及像素局部相关性。本文的卷积神经网络由4层卷积层、4层池化层、2层全连接层组成,接下来将详细介绍本文所采用的卷积神经网络的组成。1.1.1卷积层
在特征提取的部分受到了ResNet [9]的启发,建立一个3*3的滤波器,设置步长为1,步长是指每次向前传播的像素数,在输入图像数据的宽度和高度上向前移动,然后计算整个滤波器与输入数据任意一处的内积,就会得到一个卷积后的特征矩阵。在卷积层中,多个滤波器共同工作,输出时将每个滤波器卷积后的数据叠加在一起输出。1.1.2池化层
池化层主要有两种类型:最大池化和平均池化,本文使用最大池化,设置窗口大小和步长均为2。每次都从2*2的窗口中选取最大的数据,同时滑动2个步长进入新的窗口。对图像进行下采样,丢掉其中75%的激活信息,选取其中最大地保存下来,去除一些噪声信息,能够有效降低数据的大小。1.1.3全连接层
卷积神经网络和输入数据中的一部分连接,并且输出的神经元每个深度切片都共享参数。经过了前面的卷积层和池化层之后,提取出图片的特征图,将特征图中的全部神经元转变为全连接层的样子,直观上即将一个3D 的立方体排列组合,变成一个全连接层,然后通过几个隐藏层,最后在输出层输出最终结果。为了防止过拟合现象的发生会引入Dropout ,本文设置Dropout 为0.25。1.2小卷积核
较大的卷积核能够获取更大的感受野,但是会导致计算量
防刺手套的明显增加,计算性能也会因此降低。使用多个小卷积核[10]代替大卷积核可在相同感受野的情况下,减少所需的计算量。本文3层卷积层均使用3*3的卷积核结构,保留一层5*5的卷积核,在保留足够感受野的同时,减少计算量。1.3haarcascade 分类器
haar 分类器=haar-like 特征+AdaBoost 算法+级联+积分图
快速计算。AdaBoost 方法是一种迭代算法,在每一轮中添加一个新的弱分类器,直到达到一个预估的极小的错误率。每一张训练样本图片都被初始赋予一个权重,表示它被其中一个分类器选入训练集的概率大小。如果某张样本图片已经被选入正确的分类器,在选择下一个训练集时,它被选中的概率就降低;相反,如果某张样本图片没有被准确分类,它的权重就得到提高。
2实验
2.1图片预处理
基于深度学习的方法需要大量样本用来训练,本文采用
fer2013表情库作为实验对象,将其分为训练集和测试集,其中每张图片的表情由一个0~6中的数字代gammaproteobacteria
表,0=angry ,1=disgust ,2=fear ,3=happy ,4=sad ,5=surprise ,6=neutral 。训练集中一共28709张图片,测试集3589张。在进行网络训练之前,先将图片进行预处理,得到48*48的人脸表情集。2.2表情分类
本文采用的卷积神经网络为4层卷积层、4层池化层、2层全连接层。导入已经预处理完的图片集,定义CNN 结构,导入模型,开始训练模型。此过程大概需要一到两个小时,使用小卷积核替代大卷积核,减少了非常多的计算量。导入测试集进行准确率测试。使用混淆矩阵表示每类表情的精确准确率,具体各表情识别结果准确率如表1所示,混淆矩阵的行标表示本文算法预测表情结果,列标表示实际表情。
表1本文训练模型的混淆矩阵
angry disgust fear happy nature sad surprise
angry
0.590.130.020.020.010.030.01
disgust 0.010.530.000.000.000.000.00
fear 0.010.000.530.000.000.010.01
happy 0.120.080.110.850.070.070.03
nature 0.120.170.090.060.740.320.08
sad 0.090.070.100.050.140.540.03分界开关控制器
surprise 0.020.020.150.020,040.030.85
由表1可知该模型对happy 、surprise 两类表情识别准确率都达到了0.85,识别率较高,而对angry 、fear 、disgust 类表情识别准确率都在0.6以下,识别率较低。
再对本文网络计算F1-score ,F1-score 是衡量分类问题的一个指标,最大为1,最小为0。由表1数据计算得到本文网络的F1-score 为0.64,记录在表2中。2.3与其他算法比较
表2与其他算法的比较
算法CNN
Incerption
VGGNet [13]本文算法
准确率57.1%67.1%69.8%71.6%
F1-score 0.410.580.680.64
为验证本文所提方法的有效性,本文将分别与其他方法进
行准确率、F1-score 的比较。如表2所示,本文算法的准确率对比其他算法有所提升,F1-score 也较高。
3实际应用
实时进行人脸表情识别,利用OpenCV 自带的haarcascade 分类器,检测人脸,可在正脸分类器的基础上加上侧脸及眼睛的分类器提高正确率,配合使用上述模型对已识别到的人脸进行表情识别,连接摄像头建立实时人脸表情识别系统。3.1实时人脸表情识别系统
本系统在Python3.6操作环境下运行。图1为本文设计的
184
Computer Knowledge and Technology 电脑知识与技术
第17卷第5期(2021年2月)
光纤电话机
人工智能及识别技术
本栏目责任编辑:唐一东系统主界面,图中4个按钮分别指向4个不同功能的子界面。“摄像头识别”指向连接摄像头实时进行人脸表情识别,如图2(a );“图片识别”指向静态图片中的人脸表情识别,如图2(b );“视频识别”指向动态视频中的人脸表情识别,如图2(c )
图1表情识别系统主界面
图2为系统各个子界面的初始界面,点击“返回”即可返回主界面。本文将着重介绍系统中关于摄像头实时识别人脸表
情的部分。
图2表情识别系统子界面
图2(a )为摄像头识别系统运行界面,界面中的文件图标表示可选择模型,默认为上文训练出的模型,下面的摄像头图标可打开摄像头,右上的“用时”则表示一次识别所用的时间长短,“识别结果”表示本次识别到的表情的输出结果。
图3为用此模型的识别结果举例,用时在0.04s 左右,时间较短。本文采用OpenCV 中的haarcascade 分类器识别人脸,haar-like 特征通过积分图来计算,积分图是只需要遍历一次图像就可以求出图像中所有区域像素和的快速算法,从而大大地加快了图像特征值计算的速度;AdaBoost 级联分类器[14]是树状结构,每一级都是强分类器,当检测窗口成功遍历全部的强分类器时才被认为是正样本,不然则为负样本,由于每一个强分类器对负样本的判断准确度都十分高,所以一旦发现通过分类器的为负样本,就不再继续调用下面的强分类器,节省了很多的检测时间。图示背景皆为复杂背景[15],通过实验得出,系统能够准确地将人脸从背景中检测出来,并对人脸进行实时跟踪
进行表情检测。
图3部分表情检测图
4结论
本文利用不同于传统的新型卷积神经网络进行模型的训
练,对人脸表情进行高效的分类,达到了较高的准确率。并将
其与摄像头连接,可进行实时的表情识别且识别速度较快。本文中描述的实时人脸表情识别系统,能较好地实现计算机实时人脸表情识别的任务,具有网络容易训练、识别准确度较高、系统实时性强、
识别速度较快等优点,可以应用于较多计算机系统的人机交互。同时,该系统算法也有继续研讨、改良的意义,有一定的提升空间。
参考文献:
排线焊接
[1]薛雨丽,毛峡,郭叶,等.人机交互中的人脸表情识别研究进展[J].中国图象图形学报,2009,14(5):764-772.
[2]潘光良.机器人人脸表情识别技术研究[J].智能机器人,2019(1):50-52.
[3]姚丽莎,徐国明,房波,等.结合LBP 和SVM 的视频表情识别方法[J].山东理工大学学报(自然科学版),2020,34(4):67-72.
[4]卢官明,何嘉利,闫静杰,等.一种用于人脸表情识别的卷积神经网络[J].南京邮电大学学报(自然科学版),2016,36(1):16-22.[5]施宇楠,吴自万,孙文.基于卷积神经网络的人脸表情识别研究[J].科学技术创新,2020(5):75-76.
[6]Simonyan K,Zisserman A.Very deep convolutional net-works for large-scale image recognition[C].International Conference on Learning Representations,San Diego,USA:ICLR,2015:1-5.
[7]谢尔曼,罗森林,潘丽敏.基于Haar 特征的Turbo-Boost 表情识别算法[J].计算机辅助设计与图形学学报,2011,23(8):1442-1446,1454.
[8]张立春,刘雅楠,曲柄光,等.深度学习下的人脸表情识别算法分析[J].电子元器件与信息技术,2020:4(1):67-68.
[9]Hhen K,ZHANG X,REN S,et al.Deep residual learning for image recognition[C].Computer Vision and Pattern Recognition (CVPR),Las Vegas:2016.770-778.
[10]Chen Hang,QIU Xiaohui.Research on Emotional Recogni⁃tion Based on Convolution Neural Network and Pooling Algo⁃rithm[J].Computer Technology and Development,2019(1):61-65.
[11]张丽英,沈诗婕,瞿子文,等.基于痛苦表情识别的智能医疗监护系统[J].国外电子测量技术,2020,39(3):148-151.
[12]夏成静.基于数据增强和卷积神经网络的面部表情识别研究与实现[J].电脑知识与技术,2020,16(3):213-215.
[13]Dong Feiyan.Application of Distributed Training of Convolu⁃tional Neural Network in Facial Expression Recognition[J].Soft⁃ware ,2020(1):160-164.
[14]朱健翔,苏光大,李迎春.结合Gabor 特征与Adaboost 的人脸表情识别[J].光电子·激光,2006,17(8):993-998.
[15]王金云,周晖杰,纪政.复杂背景中的人脸识别技术研究[J].计算机工程,2013,39(8):196-199,203.
【通联编辑:唐一东】
185

本文发布于:2024-09-25 10:37:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/114906.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:表情   识别   卷积   人脸
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议