表情识别技术综述

Abstract:Facial expression recognition is the key research direction in many fields such as machine vision, pattern recognition and artificial intelligence. It has become a research hotspot of many scholars and experts. As a research direction of emotion calculation, facial expression recognition constitutes the basis of emotional understanding and an important prerequisite for realizing human-computer interaction intelligence. This paper reviews the definition and development history of facial expression recognition technology, and introduces the main methods and applications of facial expression feature extraction and facial expression recognition in the past five years. Finally, through facial expression recognition at home and abroad. The actual application is studied, and the current challenges and shortcomings of facial expression recognition and future development prospects are analyzed.
摘要:人脸表情识别是机器视觉、模式识别和人工智能等众多领域的重点研究方向,目国内外多名专家学者都在针对此领域进行研究。人脸的表情不仅可以传达表达心情、传递情绪,而且在人际交往中也起到重要的作用。因此,研究人脸表情识别显得尤为重要。本文主要介绍了人脸表情识别技术的定义、发展历史,列举了近年来国内和国外专家学者对于人脸表情识别的主要方法和应用,最后通过对国内外人脸表情识别的研究情况,分析得出人脸表情识别目前的挑战与不足以及未来的发展前景。

1引言

1.1人脸表情识别的定义
    动态视频中提取出人的表情状态,从而进一步识别出对象的心理状态[5]。这项技术可是是计算机更能理解人的情绪,并能根据人类在不同环境中的面部表情对人的心理活动做出判断并给与相应回应。人脸表情识别主要由:人脸检测、人脸表情特征提取和表情分类三部分组成。本文将在下文当前流行的各种表情提取方法及简要介绍和对比。
1.2人脸表情识别的发展历程
    有关人脸面部表情的研究在心理学和医学界由来已久,但在计算机人脸表情识别领域却起步较晚。
关于面部识表情识别最早的研究是在1978年,Suwa和Sugie等人[6]对一段面部视频关键点的外表做了一个预先实验。但由于当时计算能力的限制,面部表情研究在很长一段时间内不受专家学者关注。
90年代初,Mase等[7]使用光流法实现自动提取特征的研究的成功使面部表情识别逐渐回到大家的视野中。
    2001年,Tian等[8]将AU用于面部识别分析的研究开自动表情研究的先河。
    近些年来,许多专家学者不断创新,像Gabor滤波器[9]、光流法和局部二值模式(Local Binary Pattern, LBP)[10]或两者之间的组合[11]的方法不断被采用。初次之外,在自动面部表情识别领域,诸如自发面部表情检测、复杂精神状态分析研究等的新的领域也不断被开辟。
1.3人脸表情识别的应用
    当前人脸表情识别技术正处于蓬勃的发展期,其技术手段也应用到了包括人机交互、安全、机器人制造、医疗、游戏和汽车制造等不同领域。在安全方面,例如贩子分子的测谎工作,如果仅仅依靠人力观察和可能因为评判标准不一和表情遗漏造成误判,此时就需要使用具有表情识别能力的计算机来辅助判断。在机器人制造、医疗方面,如在临床治疗和服务行业中结合人脸表情识别可以使机器人更能理解人的心理活动,从而为人们提供更加准确、周到的服务。在游戏方面,已经推出有像Dancing Face等类似表情识别的相关的游戏,并取得了不错的反响。在汽车领域主要进行了针对人脸表情对驾驶人员进行是否疲劳驾驶的判断,在赵磊的基于深度学习和面部多源动态行为融合的驾驶员疲劳检测方法研究[21]中利用人脸识别技术对驾驶员疲劳状况的加测取得了较为准确的结果。

2人脸表情识别的过程

基于计算机的人脸表情识别主要分为三步即人脸检测、表情特征提取以及表情分类。通常情况下,进行人脸表情识别的图像或视频中存在其他环境的干扰信息,因此人脸检测相当于在待处理的视频或图像中将人脸进行检测并从图像中进行分割,从而有效降低表情识别过程中可能出现的干扰信息。人脸检测主要是根据人脸的特有特征,在待测的图像区域中检测是否存在人脸,并将检测的可能性与阈值进行比较,从而定位人脸的坐标信息并分割出人脸所在的位置。
当确定人脸区域后,相当于缩小了表情识别的检测区域,在人脸区域上对表情信息进行特征提取。目前较为流行的表情特征提取法由主成分分析法(PCA)、局部二值模式(LBP)以及一些其他基于运动和形变的特征提取方法。
    在该阶段需要针对待求问题选择合适的分类器训练得到分类准确、泛化能力强的分类器,并将需要检测的图像作为输入,经过人脸检测、提取表情特征以及分类器分类得到人脸表情的所属类别[12]。

图1 人脸表情自动识别主要步骤
2.1人脸检测与方法简介
    在进行表情特征提取之前,首先要对图片进行预处理,图片与处理主要需要两个步骤,即去除复杂背景以及图像归一化。人脸检测技术在这方面可以提供很好的技术支撑。人脸检测与定位就是在输入图像中找到人脸的准确位置并及逆行定位分割,目前采取的方法主要有:基于传统知识的算法、基于集合的算法、基于AdaBoost的算法以及基于神经网络的算法。本文将对后两种经典算法进行简要介绍。
2.1.1基于AdaBoost的人脸检测算法
    AdaBoost是一种通过迭代在训练机上训练的出弱分类器,再将弱分类器真和得到请分类器的算法。这种算法可以快速计算检测器使用的特征,可以产生高效的分类器。

图2 基于AdaBoost的人脸检测主要步骤
    AdaBoost算法目前具有广泛的应用,如在沈翔等人基于肤色与改进AdaBoost算法的人脸检测[13]中,提出了一种基于肤色与改进Adaboost算法的人脸检测。使用双阈值的权重更新方式避免了分类器训练过程中可能出现的过拟合现象;人脸检测时利用肤色的聚类性, 将检测到的肤色区域作为Adaboost分类器的搜索候选区域。有效缩短检测时间,降低了误检率。黎向锋等人提出的一种基于改进AdaBoost+Haar的车辆检测算法[14]中在训练阶段对负样本进行分类,训练出的分类器先简单后复杂;在检测阶段提出车款匹配算法,已检测框底边作为参考,调整检测窗口的范围,减少检测窗口数量,达到了在复杂背景条件下对车辆的检测。
2.1.2基于神经网络的人脸检测算法
    卷积神经网络(CNN)是深度学习和人工神经网络相结合的一种算法。相比传统算法和其它神经网络,卷积神经网络能够高效处理图片的二维局部信息,提取图片特征,进行图像分类。通过海量带标签数据输入,用梯度下降和误差反向传播的方法训练模型。卷积神经网络在大批量图像处理方面占据绝对优势,但容易受数据空间多样性的影响,也存在结构层数多,训练难度高的问题。

图3 基于卷积神经网络的人脸检测主要步骤
    基于卷积神经网络的优势和劣势,薛艳杰等人提出基于改进卷积神经网络的人脸识别研究[15],结构上包含两个子卷积网络, 实现多卷积的功效;然后, 对于提取人脸特征的卷积层和池化层采取融合, 以减少网络参数及训练时间;最后分类器采用Softmax分类器。使识别别率、训练速度得到了提高。
2.2表情特征提取
    表情特征提取在人脸表情识别中发挥着重要的作用,有效的表情表情特征应该完整提取人脸表情有效特征并且排除无关的干扰因素,并使图像的位数降低到适宜范围,对于不同的类别的表情有较好的区分效果。基于以上几点,我将对目前较为流行的主成分分析法(PCA)和局部二值模式(LBP)作简要介绍。
2.2.1主成分分析法
    主成分分析法的主要作用就是对输入矩阵进行降维,其原理就是将原来的输入数据投影到一个新的坐标中,在新的坐标之下,表示一个同样的矩阵可以用一个维数更低的矩阵进行描述,具体的步骤为:

图4 主成分分析法主要步骤
    虽然使用主成分分析法可以实现对对于数据的降维,但是它的计算复杂度十分高并且对存储空间也有很大的要求。在涂亮等人微表情识别中面部动力谱特征提取的PCA改进[16]中提出基于主元分析(PCA)的改进算法。首先将数据中心平移到原点,其次估计相关矩阵,最后估计其特征向量和特征值,取最大特征值对应的特征向量方向作为时空立方体的主方向,低了原PCA算法的复杂度。
2.2.2局部二值模式
    LBP算法的原理是将待测图像中每个像素与其局部邻域的点在亮度上的二值序关系进行编码形成局部二值模式,才用多区域直方图进行特征描述。处理过程为:通过计算每个像素与其邻域的8个灰度值的关系,形成一个二进制码,中心点的值代表阈值,当邻域数值大于中心点数值时在该邻域处填入数值1,否则填入数值0。举例如下:

    本例中,二进制编码为11011010。像素点的个数为n,中心点的像素位置为gc(Xc,Yc),相邻点的坐标为g0,g1…g7,则LBP的计算公式为:

    LBP算法具有光照不变性,并且算法复杂度低的优点,但本算法无法区分邻与阈值相等这种情况,并且在高精度计算中存在内存消耗大的劣势。在嵇介曲基于LBP算法的人脸识别研究中[17],针对LBP算法提取人脸图像的表情特征信息时会丢失特殊的特征信息的缺点,提出了多重局部二值模式的人脸表情识别方法, 该方法在中心像素点以及邻域像素点灰度值之间创造性地增加了一位二进制编码,实验结果表明可有效提高LBP算法的识别率。
2.3表情识别
    在表情识别阶段包括分类器设计和分了决策两部分,表情识别的主要目的是根据特征提取中所提去出的表情特征对人脸表情进行分类判断,目前应用的主要有一下几种方法。
2.3.1k-最近邻学习法
    K-最近邻学习法是根据测量不同特征值之间的临近距离进行分类。它的思路是:输入待测样本,设定K值,如果K个最相似样本中大多数都属于某一特定类别,那么待测样本也应该属于这一类别。下面通过举例来表示本算法:

图5 k-最近邻学习法示例图
    在本图中,如果对图片中的绿色圆形进行分类判断,当K取3时,由于邻近的三个分类中对象中红色三角形所占的比例最大为2/3,所以绿色原型归为红色三角形一类,当K取5时,由于在邻近的5个分类对象中蓝色矩形所占的比例最大为3/5,所以绿色圆形被归为蓝色矩形一类。由此可以判断此种分类方法,关键在于K值的选取。
    在此种方法中距离的计算主要采用欧式距离或曼哈顿距离。

    将这种分类方法应用于人脸表情识别的主要过程为:在训练集中表情数据标签已知的情况下,输入上一步骤中提取的表情特征,并计算其与哥哥训练及数据之间的距离;按照距离的递增关系进行排序;选取距离最小的前K个点;确定前K个点所在类别的出现频率;返回前出现频率最高的类别作为人脸表情的预测分类。在王晓霞等人基于混合特征和分层最近邻法的人脸表情识别[18]中,根据人脸表情特征基于分类树思想将表情进行三层分类,整个识别过程由粗到细,融合了几何特征和频域特征,实验验证了k-最近邻学习法的有效性。
2.3.2神经网络分类器
    人工神经网络(Artificial Neural Network,ANN)采用仿生学原理模拟人类大脑的神经元细胞结构,与人脑类似它由大量的神经元相互连接成的自适应非线性动态系统,对输入细腻些进行复杂运算。下面我将对BP神经网络进行简单介绍:
    依据仿生学原理,BP神经网络抽象出了节点、节点中之间的连接、节点之间的连接强度。其主要构成为:输入层、隐藏层和输出层。

图6 神经网络分类器原理图
    在BP网络中进行人脸识别的主要流程为:
    1)进行网络初始化设定各连接权值、误差函数 e给定计算精度值 ε 和最大学习次数 M ;
    2)在迭代次数范围内,选取一个学习样本,正向传入输入;
    3)计算各层神经元的输入与输出;
    4)调整连接权值和阈值;
    5)循环遍历所有的输入样本直至结束;
    6)计算平均误差E;
    7)对样本的精度进行判断,选择继续迭代还是输出分类结果。

3表情识别存在的问题与发展前景

3.1 当前表情识别存在的问题
    面部表情识别是一个跨学科,具有挑战性的前沿话题,但目前尚未进入实践领域。一个好的表情识别系统应该能够抵抗外加复杂背景因素的干扰,提取出有效的表情特征,并能准确高效的分析出人脸表情的所属类别。在过去的几十年中,面部识别技术从无到有,虽然面部表情识别的理论和技术取得了很大进展,但仍旧存在需要优化和改进的部分:
    1)由于人的多样性,面部的外观,表情和肤色可能不同,具有模式可变性,面部识别的准确性并不总是十分稳定[19];
    2)再度人脸进行特征提取时很难排除人脸胡须、眼睛等因素的干扰,这些干扰因素的存在会降低实验结果的准确性;
    3)现实生活中对于人脸以及人脸表情的检测往往会受制于复杂背景和光照条件的影响,如在强光条件下人脸检测和表情识别的准确度都会大大降低;
    4)当前的研究中,各学科结合不够密切,对于人类表情的分类还停滞于6中基本表情;
    5)当前的人脸表情研究算法缺乏创新,大多数人的研究只是基于各种已有算法的叠加;
    6)各种算法有待优化,对于表情识别和人脸检测中,准确度高的算法往往对计算机的硬件要求高,并且运算复杂度高、运算时间长,很难应用于实际生产生活。
3.2 表情识别的发展前景
    随着大数据时代的到来以及人工智能、深度学习的持续火热,人们对面部表情实时识别的需求急剧增加。未来人脸表情识别将会有更大的发展潜力,现总结如下:
    1)进行三维表情研究,目前的研究大都输入人脸的二位图像,手指与这种现状,很难完全反映出一个人的表情状态,二使用三维图像,可以完整、真实的传递人的表情信息,减少表情识别受光照和状态的影响,使用三维信息对人脸表情进行研究将是未来一个重要的研究课题;
    2)加强技术融合,目前人脸检测,表情特征提取、表情识别的方法哟很多,每种方法有其自身优势也相应存在部分缺陷,如何荣获人各种检测识别方法中的优势,提高表情是别的速度与准确率,会批各自缺点,也将是未来表情识别中的研究中重点;
    3)融入非视觉的因素,人的表情和思维具有较高的复杂度,仅仅从表情一方面很难对情绪进行准确判断,未来应结合体温、声音、环境等因素对人的心理进行总和判断;
    4)建立公共表情数据库,目前对人脸表情的研究离不开表情数据库的使用,而有效的、开放的表情数据库又寥寥无几,因此着力建立表情数据库也是未来表情识别发展中的一个关键问题。

4 结束语

表情识别是目前研究的热门领域,具有广阔的研究前景。本文主要针对人脸表情识别的定义、发展历程、识别方法。并简要介绍了几种关于人脸检测、特征提取、表情分类的经典算法,通过对不同算法的分析得出目前表情识别发展中存在的问题,并对未来的表情识别做出了总结与展望。

参考文献:

[1]A.Mehrabian. Communication without words. Psychology Today,1968,2(4):53-56.
[2] Schlosberg H.Three dimensions of emotion[J].Psychological Review,1954,61(2):81-88.
[3] Ekman P,Friesen W V.Facial action coding system:a technique for the measurement of facial movement[M] Palo Alto:Consulting Psychologists Press,1978:271-302.
[4]Keltner D,Ekman P.Facial expression of emotion[J].American Psychologist,1993,48(4):384-392.
[5]王大伟, 周军, 梅红岩, et al. 人脸表情识别综述[J]. 计算机工程与应用, 2014, 50(20):149-157.
[6]徐琳琳, 张树美, 赵俊莉. 基于图像的面部表情识别方法综述[J]. 计算机应用, 2017(12):171-178+208.
[7]梁瑞奇,基于神经网络的人脸识别.电子制作,2018,10.
[8]M. Suwa et al. , In: Proc. 4th Int. Joint Conf. Pattern Recognition, 1978, pp. 408~ 410.
[9]K. Mase, IEICE Trans, Special Issue on Computer Vision and its Application, 1991, E74( 10).
[10]TIAN Y L, KANADE T, COHN J F. Recognizing action units for facial expression analysis[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2001, 23(2): 97-115.
[11]LITTLEWORT G, BARTLETT M S, FASEL I, et al. Dynamics of facial expression extracted automatically from video[J]. Image & Vision Computing, 2006, 24(6): 615-625.
[12]SHAN C F, GONG S G, MCOWAN P W. Facial expression recognition based on local binary patterns:a comprehensive study[J]. Image and Vision Computing, 2009, 27(6): 803-816. DOI:10.1016/j.imavis.2008.08.005
[13]COHEN I, SEBE N, GARG A, et al. Facial expression recognition from video sequences:temporal and static modeling[J]. Computer Vision & Image Understanding, 2003, 91(1/2): 160-187.
[14]赵磊,基于深度学习和面部多源动态行为融合的驾驶员疲劳检测方法研究,博士,2018,05
[15]杨晓龙; 闫河; 张杨,人脸表情识别综述,数字技术与应用,2018,02.
[16]沈翔;朱建鸿,基于肤色与改进AdaBoost算法的人脸检测,传感器与微系统,2019,03,143-145.
[17]黎向锋;赵伟康;豆心愿;左敦稳,基于改进AdaBoost+Haar的车辆检测算法,2019,02,
[18]薛艳杰;邓燕妮,基于改进卷积神经网络的人脸识别研究,科技风,2019,04,106-131.
[19]涂亮;刘本永,微表情识别中面部动力谱特征提取的PCA改进,通信技术,2019,02,337-342.
[20]嵇介曲,基于LBP算法的人脸识别研究,安徽理工大学,2017,06.
[21]王晓霞;李振龙;辛乐,基于混合特征和分层最近邻法的人脸表情识别,计算机工程,2011,08,171-173+176.
[22]李菊霞,人脸表情识别方法及展望,农业网络信息,2009,02,100-103.

【人机交互技术】人脸表情识别技术综述(感觉写的比较简单)相关推荐

  1. 腾讯大佬总结的人脸表情识别技术

    李振东 北京邮电大学硕士在读,计算机视觉方向 言有三 毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人 作者 | 李振东/言有三 编辑 | 言有三 随着机器学习和深度神经网络两个领域的迅速发 ...

  2. 深度人脸表情识别研究进展

    近年来,随着人工智能与人机交互技术的发展,人脸检测.对齐.识别技术的不断跟进,自动人脸表情识别由于其潜在的社交媒体分析和情感计算能力而成为了计算机视觉领域的热点研究话题,并在众多商业场景中有着巨大的应 ...

  3. Python基于OpenCV的人脸表情识别系统[源码&部署教程]

    1.项目背景 人脸表情识别是模式识别中一个非常重要却十分复杂的课题.首先对计算机人脸表情识别技术的研究背景及发展历程作了简单回顾.然后对近期人脸表情识别的方法进行了分类综述.通过对各种识别方法的分析与 ...

  4. android人脸情绪识别器,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  5. 计算机表情识别技术研究学什么,表情识别的图像预处理和特征提取方法研究

    表情识别的图像预处理和特征提取方法研究 表情识别是基于视觉信息将脸部的运动或脸部特征的形变进行分类,包括三部分:脸部定位.脸部特征抽取和表情分类.本文首先使用肤色模型进行脸部定位;对提取出来的人脸进 ...

  6. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  7. 【图像识别】基于支持向量机算法svm实现脸部动态特征人脸表情识别附matlab代码

    1 简介 人脸表情识别技术涉及情感计算,图像处理,机器视觉模式识别,生物特征识别等研究领域,是一个极富挑战性的交叉课题.该文介绍一种基于lpq特征,利用支持向量机(SVM)进行分类的人脸表情识别技术. ...

  8. 人脸表情识别概述(一)

    一.人脸表情识别技术目前主要的应用领域包括人机交互.安全.机器人制造.医疗.通信和汽车领域等 二.1971年,心理学家Ekman与Friesen的研究最早提出人类有六种主要情感,每种情感以唯一的表情来 ...

  9. 基于卷积网络的人脸表情识别及其应用

    基于卷积网络的人脸表情识别及其应用 前言 一.人脸表情识别技术现状 二.卷积神经网络技术概述 1.卷积神经网络图像理解过程 2.卷积神经网络组成结构 3.卷积神经网络的优势 三.人脸表情识别卷积网络模 ...

最新文章

  1. 计算机专业的学员为什么要学erp,对要进入计算机专业学习的人的小小建议(浅谈)...
  2. Leetcode 190. 颠倒二进制位 解题思路及C++实现
  3. forward_list容器
  4. html模板(base标签,meta标签,禁用浏览器缓存)+JSP自定义标签荔枝
  5. 订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
  6. nutch源代码阅读心得
  7. er图-为什么画er图?有哪些规范?
  8. 银行卡验证(四要素)和银行联行号查询
  9. 推荐一个键盘快捷键库Mousetrap
  10. mysql的备份与还原步骤_MySQL备份与还原
  11. [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
  12. 数据校验之Checksum算法
  13. 信息化故事--温州的传奇(11)从“进城务工”看“温州新版自闭症”
  14. PHP常用的文件操作函数集锦
  15. Corona SDK 游戏开发引擎介绍
  16. MongoDB循序渐进之[入门]
  17. 机器人系统常用仿真软件介绍效果与评价指标
  18. mysql的id生成uuid
  19. Django 操作MySQL数据库
  20. 常见电脑硬件故障有哪些?如何解决?~~~硬盘故障

热门文章

  1. 数字IC设计和验证理论
  2. hdu 6400 Parentheses Matrix
  3. 视频教程-SEM实战教程(五)-网络营销
  4. SEM优化教程第1讲—SEM是什么?SEM与SEO的区别?
  5. seq2seq + attention
  6. Windows10家庭版VMWare15.5安装虚拟机启动蓝屏问题
  7. 经销商窜货怎么办?最好的解决方案是?
  8. oracle lmd0,用strace跟踪分析oracle 10.2.0.1 rac lmd进程系列二
  9. Java+spring 基于ssm的健康体检管理系统#毕业设计
  10. checksum java_Checksum getChecksum()