热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微表情识别系统,表情图片

人类通过视觉、味觉、听觉、嗅觉和触觉五个器官来认识世界。我们把用眼睛观察到的视觉信息叫做图像信息,如人脸的表情信息。一般的表情识别可以用单个感官完成,也可以用多个感官相配合来完成。


人类通过视觉、味觉、听觉、嗅觉、触觉五个器官来认识世界。 我们将用眼睛看到的视觉信息称为图像信息。 例如,人脸的表情信息。 一般的表情识别可以通过单个感觉器来进行,也可以组合多个感觉器来进行。 这是整体识别和特征识别共同作用的结果。 具体来说,从远处识别人,主要是整体识别,但在近距离表情识别中,特征性的部件识别更为重要。 另外,眼睛和嘴的重要度比鼻子大等,对人脸各部件的识别的贡献也不同。 人脑研究表明,人脸表情识别与人脸识别虽然相关,但总体上是分离、并行的处理过程。


随着包括人脸检测和人脸识别在内的人脸计算机处理技术的完善,使用计算机进行表情分析也成为可能。 总体而言,表情分析是一个非常困难的研究方向,主要体现在表情特征提取的准确性和有效性上。 特别是在后者的情况下,并不是因为张开了嘴就笑,也有可能哭或者吃惊,在各种各样的表情中,身体现在各自特征点的运动没有很大的差异。


人脸识别技术目前的主要应用领域有人机交互、安全、机器人制造、医疗、通信、汽车领域等。


1971年,心理学家Ekman和Friesen的研究最先提出人类有六种主要情感,每种情感都以唯一的表情反映一个人独特的心理活动。 这六种情绪被称为基本情绪,由愤怒(anger )、喜悦(happiness )、悲伤(sadness )、惊讶(surprise )、厌恶(disgust )和恐惧(fear )组成


以下所述的一些方法是从脸部识别发展而来的,用于配合表情识别的特点。


目前使用的识别特征主要是灰度特征、运动特征和频率特征三种。 灰度的特征从表情图像的灰度值中进行处理,利用灰度值根据表情而不同,从而得到识别的依据。 在此情况下,需要对光和角度等要素进行充分的预处理,使获得的灰度值具有均匀性。 运动特征是根据每个表情状况,利用人脸主要表情点的运动信息进行识别。 频域特征主要利用表情图像的频率分解差异,速度快是其明显特征。


在具体的表情识别方法上,方向主要是整体识别法和局部识别法、形变提取法和运动提取法、几何特征法和容貌特征法。


在整体识别法中,无论是从脸部变形出发,还是从脸部运动出发,都将表情的脸部作为整体进行分析,找出各种表情下的图像差异。 其典型方法有:基于特征脸的主成分分析(Principal Component Analysis,PCA )法、独立成分分析法)独立成分分析, ICA )、Fisher线性判别法) Fisher’sli sher’s fld )、局部特征分析(LFA )、fisher运动法(Fisher Actions )、隐马尔可夫模型法


局部识别法是指在识别时分离脸部的各部位,也就是说各部位的重要性不同。 例如,在表情识别的情况下,眼睛、嘴巴、眉毛等是最典型的部位,这些地方的运动表现出丰富的表情。 相比之下,鼻子动作较少,识别时可以尽量少分析鼻子,加快速度,提高准确性。 其最典型的方法是脸部运动编码分析法(Facial Actions Code System,FACS )和MPEG-4中的脸部运动参数法。 其他还有局部主成分分析法(Local PCA )、Gabor小波法、神经网络法。 脸部运动编码系统(FACS )根据脸部肌肉的类型和运动特征定义基本变形单元AU (action unit ),将脸部的各种表情最终分解为各au进行对应,表情特征


FACS有两个主要弱点。 1 .运动单元是纯局部化的空间模板。 2 .没有时间描述信息,只是启发式信息


变形提取法根据人脸表现各种表情时各部位的变形情况进行识别,主要成分分析法[PCA]、Gabor小波、运动模板法Active Shape Model、ASM][7]和点分布模型point distribution


运动法是基于人脸表现各种特定表情时,特定特征部位会相应工作的原理来识别的。 上述六个基本表格固定了脸部特定特征点(或部位)的运动方向和趋势。 例如,人感到恐惧时,眼睛的张开方式必须比平时大,嘴巴一般是张开的等等。 具体请参照表1。 典型的识别方法有光流法[8]和MPEG-4中的脸部运动参数法Face Animation Parameter FAP。


几何特征法从人脸各部分的形状和位置(包括嘴、眼、眉、鼻)提取特征向量,该特征向量表示人脸的几何特征。 根据该特征向量的不同可以识别不同的表情。 重要方法是基于运动单元(AU )的主成分分析法。 在容貌特征法中,主要是将脸部整体或局部的脸部通过图像滤波得到特征向量。 常用的滤波器是Gabor小波。


当然,这三个发展方向并不是严格独立的,只是来自不同的方面

来提取所需要的表情特征,都只是提供了一种分析表情的思路,相互联系,相互影响。有很多种方法是介于两者甚至是三者之间。例如说面部运动编码系统法是局部法的一种,同时也是从脸部运动上考虑的等等。

人脸表情识别的过程和方法

1、表情库的建立

目前,研究中比较常用的表情库主要有:

美国CMU机器人研究所和心理学系共同建立的Cohn-Kanade AU-Coded Facial Expression Image Database(简称CKACFEID)人脸表情数据库;

日本ATR建立的日本女性表情数据库(JAFFE),它是研究亚洲人表情的重要测试库

fer2013人脸数据集,可以从kaggle网站上下载

更多库--->  参考链接

2、表情识别:

(1)图像获取:通过摄像头等图像捕捉工具获取静态图像或动态图像序列。  

(2)图像预处理:图像的大小和灰度的归一化,头部姿态的矫正,图像分割等。

目的:改善图像质量,消除噪声,统一图像灰度值及尺寸,为后序特征提取和分类识别打好基础

主要工作:人脸表情识别子区域的分割以及表情图像的归一化处理(尺度归一和灰度归一) 

(3)特征提取:将点阵转化成更高级别图像表述—如形状、运动、颜色、纹理、空间结构等, 在尽可能保证稳定性和识别率的前提下,对庞大的图像数据进行降维处理。

特征提取的主要方法有:提取几何特征、统计特征、频率域特征和运动特征等

1)采用几何特征进行特征提取主要是对人脸表情的显著特征,如眼睛、眉毛、嘴巴等的位置变化进行定位、测量,确定其大小、距离、形状及相互比例等特征,进行表情识别

优点:减少了输入数据量

缺点:丢失了一些重要的识别和分类信息,结果的精确性不高 

2)基于整体统计特征的方法主要强调尽可能多的保留原始人脸表情图像中的信息,并允许分类器发现表情图像中相关特征,通过对整幅人脸表情图像进行变换,获取特征进行识别。

主要方法:PCA(主成分分析)和ICA(独立主元分析)

PCA用一个正交维数空间来说明数据变化的主要方向 优点:具有较好的可重建性 缺点:可分性较差

ICA可以获取数据的独立成份,具有很好的可分性

基于图像整体统计特征的提取方法缺点:外来因素的干扰(光照、角度、复杂背景等)将导致识别率下降

3)基于频率域特征提取: 是将图像从空间域转换到频率域提取其特征(较低层次的特征)

 主要方法:Gabor小波变换

 小波变换能够通过定义不同的核频率、带宽和方向对图像进行多分辨率分析,能有效提取不同方向不同细节程度的图像特征并相对稳定,但作为低层次的特征,不易直接用于匹配和识别,常与能干的春天 或SVM 分类器结合使用,提高表情识别的准确率。 

4)基于运动特征的提取:提取动态图像序列的运动特征(今后研究的重点)

 主要方法:光流法

 光流是指亮度模式引起的表观运动,是景物中可见点的三维速度矢量在成像平面上的投影,它表示景物表面上的点在图像中位置的瞬时变化,同时光流场携带了有关运动和结构的丰富信息

 光流模型是处理运动图像的有效方法,其基本思想是将运动图像函数f(x, y,t)作为基本函数,根据图像强度守恒原理建立光流约束方程,通过求解约束方程,计算运动参数。

 优点:反映了表情变化的实质,受光照不均性影响较小

 缺点:计算量大 

4)分类判别:包括设计和分类决策

在表情识别的分类器设计和选择阶段,主要有以下方法:用线性分类器、神经网络分类器、支持向量机、隐马尔可夫模型等分类识别方法

5.1)线性分类器:假设不同类别的模式空间线性可分,引起可分的主要原因是不同表情之间的差异。

5.2)神经网络分类器:人工神经网络(Artificial Neural Network,能干的春天)是一种模拟人脑神经元细胞的网络结构,它是由大量简单的基本元件—神经元,相互连接成的自适应非线性动态系统。将人脸特征的坐标位置和其相应的灰度值作为神经网络的输入,能干的春天可以提供很难想象的复杂的类间分界面。

 神经网络分类器主要有:多层感知器、BP网、RBF网

 缺点:需要大量的训练样本和训练时间,不能满足实时处理要求

5.3)支持向量机(SVM)分类算法:泛化能力很强、解决小样本、非线性及高维模式识别问题方面表、新的研究热点

基本思想:对于非线性可分样本,首先通过非线性变换将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分界面。这种非线性变换通过定义适当的内积函数实现,常用的三种内积函数为:多项式内积函数、径向基内积函数、Sigmoid内积函数

5.4)隐马尔可夫模型(Hidden Markov Models, HMM):特点:统计模型、健壮的数学结构,适用于动态过程时间序列建模,具有强大的模式分类能力,理论上可处理任意长度的时序,应用范围非常广泛。

优点:运用HMM方法能够比较精确的描绘表情的变化本质和动态性能

5.5)其他方法:

  基于人脸物理模型的识别方法,将人脸图像建模为可变形的3D网格表面,把空间和灰度放在一个3D空间中同时考虑。

  基于模型图像编码的方法是使用遗传算法来编码、识别与合成各种不同的表情

四、研究展望

(1)鲁棒性有待提高:

外界因素(主要是头部偏转及光线变化的干扰)

采用多摄像头技术、色彩补偿技术予以解决,有一定效果,但并不理想

(2)表情识别计算量有待降低è确保实时性的要求

(3)加强多信息技术的融合

   面部表情不是唯一的情感表现方式,综合语音语调、脉搏、体温等多方面信息来更准确地推测人的内心情感,将是表情识别技术需要考虑的问题

附现阶段具体的人脸表情识别方法(其实,从这里可以看出,基本就是handcrafted Features + 浅层分类器)

人脸表情识别方法

方法简单描述

优点

缺点

稀疏表示

用稀疏表示法对样本库进行描述,建立超完备子空间,重构并观察残差,最后通过稀疏系数进行分类

操作简单,可以做前期的基础实验,有一定的鲁棒性

描述对象必须要是稀疏的,降低了实际应用价值,对于样本要求也比较高

Gabor变换

通过定义不同的核频率、带宽和方向对图像进行多分辨率分析,能有效提取不同方向不同细节程度的图像特征并相对稳定, 常与能干的春天 或SVM 分类器结合使用,提高表情识别的准确率

在频域和空间域都有较好的分辨能力,有明显的方向选择性和频率选择特性

作为低层次的特征,不易直接用于匹配和识别,识别准确率也不是很高,样本较少的条件下识别准确率也较低

主成分分析和线性判别

尽可能多的保留原始人脸表情图像中的信息,并允许分类器发现表情图像中相关特征,通过对整幅人脸表情图像进行变换,获取特征进行识别

具有较好的可重建性 缺点:可分性较差

外来因素的干扰(光照、角度、复杂背景等)将导致识别率下降

支持向量机

作为分类器做人脸识别,在表情识别时一般和Gabor滤波器一起使用作为分类器

在小样本下的识别效果较为理想,可以做实时性的表情识别

样本较大时,计算量和存储量都很大,识别器的学习也很复杂

光流法对运动特征提取

是将运动图像函数f (x,y,t)作为基本函数,根据图像强度守恒原理建立光流约束方程,通过求解约束方程,计算运动参数

反映了人脸表情变化的实际规律,受外界环境的影响较小,比如光照条件变化时,识别率不会有太大变化

识别模型和算法较复杂,计算量大

图像匹配法

通过使用弹性图匹配的方法将标记图和输入人脸图像进行匹配

允许人脸旋转,和能够实时处理

会受到其他部位特征的影响,如眼镜,头发等

隐马尔可夫模型

由观察的面部表情序列及模型去计算观察面部表情序列的概率,选用最佳准则来决定状态的转移;据观察的面部表情序列计算给定的模型参数

识别准确率较高,平均在97%以上

对前期的面部表情序列模型要求较高,这对表情识别算法的准确率影响也较大

其他方法如:矩阵分解法

以NMF为例,分解后的基图像矩阵和系数矩阵中的元素均是非负的。将表征人脸各部分的基图像进行线性组合从而表征整个表情图像。

需要的样本较少,在无遮挡时识别准确率90%以上

 

 

受外界环境影响较大,识别准确率在嘴巴受到遮挡时,准确率只有80%左右


推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
author-avatar
阿尼陀佛1314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有