【CV-表情识别】研究面部表情丰富性评判的相关问题总结

一、问题背景

  面部表情是人类表达情感的一种非常重要的方式,丰富的面部表情使得人与人之间的情感交流变得容易,因此除了识别表情以外,衡量面部表情的丰富性/多样性也将成为表情识别领域的重要课题[1]。

二、定义方式

1. 借鉴其他邻域关于丰富度的定义

  在生物学界,生物学家用简单的数值表示群落内种类多样性的程度,称为物种多样性指数。物种多样性指数是丰富度和均匀性的综合指标。应该指出的是,应用物种多样性指数时,具低丰富度和高均匀度的群落与具高丰富度与低均匀度的群落,可能得到相同的多样性指数。
  常用的物种多样性指数有以下几种:丰富度指数、辛普森多样性指数、香农多样性指数。大部分多样性指数中,组成群落的生物种类越多,其多样性指数值越大。参考物种多样性指数的计算公式,我们也可以类似地定义一个表情多样性指数,这个值随着人脸表情丰富性的增加而增大。相关公式很多,此处暂时不一一列举,可以进入链接查看。

2. 方差(variance)

  方差是在概率论和统计中衡量随机变量或一组数据时离散程度的度量。因此,方差也可以作为衡量表情多样性的参考公式,方差越大,意味着样本越多样。
  在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。为避免出现离均差总和为零,离均差平方和受样本含量的影响,统计学采用平均离均差平方和来描述变量的变异程度。总体方差计算公式:
σ2=∑(X−μ)2N\ \sigma^2=\frac{\sum(X-\mu)^2}{N}  σ2=N∑(X−μ)2​
  σ2\sigma^2σ2为总体方差,XXX为变量,μ\muμ为总体均值,NNN为总体例数。
  实际工作中,总体均数难以得到时,应用样本统计量代替总体参数,经校正后,样本方差计算公式:
S2=∑(X−X‾)n−1\ S^2=\frac{\sum(X-\overline{X})}{n-1}  S2=n−1∑(X−X)​
  S2S^2S2为样本方差,XXX为变量,X‾\overline{X}X为样本均值,nnn为样本例数。

  在概率分布中,设XXX是一个离散型随机变量,若E2(X−E(X))E^2(X-E(X))E2(X−E(X))存在,则称为XXX的方差,记为D(X)D(X)D(X),或Var(X)Var(X)Var(X),其中E(X)E(X)E(X)是XXX的期望值,XXX是变量值,公式中的EEE是期望值expectedvalueexpected\ valueexpected value的缩写,意为“随机变量值与其期望值之差的平方和”的期望值。离散型随机变量方差计算公式:
D(X)=E2(X−E(X))=E(X2)−E(X)2\ D(X)=E^2(X-E(X))=E(X^2)-E(X)^2  D(X)=E2(X−E(X))=E(X2)−E(X)2

3. 信息熵与基尼指数(基尼不纯度)

(1)信息熵

  在信息论和概率论中熵是对随机变量不确定性的度量,在机器学习中,熵还可以度量样本集合的纯度(熵越小集合纯度越高)。信息熵的定义为:
Ent(D)=−∑k=1∣K∣pklogpk\ Ent(D)=-\sum_{k=1}^{|K|}p_klogp_k  Ent(D)=−k=1∑∣K∣​pk​logpk​
  其中,DDD表示集合,KKK表示类别数,pkp_kpk​表示第kkk类别样本的比例。集合中每一类样本的比例越接近,表示集合纯度越低,越混乱,即熵的值越大。集合中类别越单一,表示纯度越高,熵的值越小。

(2) 基尼指数

  数据集DDD的纯度也可以用基尼指数来度量,基尼指数反映数据集DDD中随机抽取两个样本,其类别标记不一致的概率,不一致的概率越小集合就越纯。公式:
Gini=∑k=1∣K∣∑k′!=kpkpk′=1−∑k=1∣K∣pk2\ Gini=\sum_{k=1}^{|K|}\sum_{k'!=k}p_kp_{k'}=1-\sum_{k=1}^{|K|}p_k^2  Gini=k=1∑∣K∣​k′!=k∑​pk​pk′​=1−k=1∑∣K∣​pk2​

  不纯度与多样性恰恰是一对类似的概念,因此信息熵与基尼指数公式也可以用来定义面部表情的丰富性指数。

4. 具体的定义方法

  表情丰富度的具体定义与计算方法可能有多种,但应该都是基于表情识别的结果的,因此其可能与表情识别运用的技术方法和模型的输入输出形式相关,现从静态和动态两个角度提出一些可能可行的方法,之后可以验证这些方法的准确性与可行性,找到最优的定义方法。

(1)静态表情图片

①七种基础表情分类----输出为记录各类概率的七维向量

  若以静态表情图片作为输入,现在最流行的方法是训练CNN模型来识别七种基础表情中的一个,模型的输出结果通常是一个记录了各种情感概率的七元向量,并最终将预测的情感类别作为具有最大概率的类别[2]。
  假设输出结果为X=[p0,p1,p2,p3,...,p6]X=[p_0,p_1,p_2,p_3,...,p_6]X=[p0​,p1​,p2​,p3​,...,p6​](其中pip_ipi​为该输入图片是iii类表情的概率),可以根据信息熵公式计算识别结果的不确定性为Ent(X)=−∑k=06pklogpk\ Ent(X)=-\sum_{k=0}^{6}p_klogp_k Ent(X)=−∑k=06​pk​logpk​,若识别结果是准确的,那么这个值可以用来衡量这一输入面部表情的纯度,即值越低,表情所代表的含义越纯粹。但仅凭单一表情识别结果的纯度是否能用来评估某人面部表情的丰富性我认为还有待商榷。

②基于AU检测的表情识别----FACS多标签探测

  FACS (Facial Action Coding System) 即面部行为编码系统,它特指一组面部肌肉运动状态。

  根据上面的面部运动编码编码可以得出相应的情绪计算公式,具体计算公式如下所示:

  这种基于面部运动单元进行表情识别的方法成为了一种多标签分类问题,因为对于一个表情图像最终检测出来的AUs通常不止一个[4]。若作为一个表情识别任务,可以通过以上公式判断检测出的AU组合最终符合哪种表情。但如果我们需要计算的是该表情是否丰富,可以仅以检测到的AU的种类和数目作为参考,与物种多样性中的物种种类类比,定义一个AU种类多样性指数。

  ①②两种计算静态表情丰富性的方法定义完全不同,但评估的目的和对象相同,所以或许可以通过对同一组表情图像进行两种方法的丰富性计算并且对比二者的相对结果来判断这两种定义是否具有正确性和本质上的一致性。

(2)动态表情视频

①直接检测像素点强度随时间变化的熵

  在2006年有学者对帕金森病人的面部表情序列进行了研究[7],逐帧处理被试者面部表情的视频并计算像素点强度随时间变化的熵,发现帕金森病人的熵比健康人的熵要低,且达到巅峰表情的速度比健康人慢很多,这是由帕金森病人的运动徐缓和表情缺失引起的。由此可见,像素点强度随时间变化的熵也可能可以作为衡量动态表情序列的表情丰富度的参考指数。

②提取帧进行基础表情分类

  对于一段面部活动视频,通常存在多个表情从开始到结束的帧序列,提取每一个表情的结束帧(或每隔固定的一段时间提取一帧)图像送进网络,得到各帧的表情预测概率向量[8]。设一段视频中提取到nnn帧,每一帧的预测结果分别为X1,X2,...,XnX_1,X_2,...,X_nX1​,X2​,...,Xn​,那么可以用这nnn个结果的方差D(X)=∑k=1n(Xk−E(X))2D(X)=\sum_{k=1}^{n}(X_k-E(X))^2D(X)=∑k=1n​(Xk​−E(X))2来衡量这nnn个概率向量的离散程度,对应于这段视频中各表情的差异程度,差异越大,说明表情越丰富。

③动态AU检测

  由于不同的AU可能发生在不同的时刻,因此动态视频序列的AU检测可以不以全脸为单位,而以人脸的局部区域为单位,将这一多label的分类问题限制在更细粒度上,以提高精度[9]。


  如上,全脸被划分成九个区域,每个区域所会发生的AU种类是固定的,且通常一个时刻一个区域只会出现一种AU(考虑到同一区域还是有可能出现多个 AU ,本文使用了 sigmoid cross entropy 的损失函数来计算损失并反向传播优化网络参数),最终可以得到各区域AU随时间变化的情况。其中,AU的变化种类和变化频率可以作为衡量面部表情丰富度的两个主要因素,这一点与物种多样性是由物种丰富度和均匀性两个因素综合决定是相似的,因此也可以参考定义相关的函数。

三、应用方向

1. 帕金森疾病的诊断

  面部呆板,毫无表情,双眼转动减少且瞬目减少是帕金森氏病的常见症状,因此面部表情丰富性低可以作为诊断帕金森疾病的一个参考因素。

2. 自闭症等心理疾病的诊断

  正常人通常能够积极自然地表达情绪,而面部表情是情绪表达的重要途经。自闭症等心理疾病的患者缺乏正常的情绪表达能力,因此他们的面部表情丰富度可能产生异常(过低或过高),这使得表情丰富度的检测可以成为诊断心理疾病的一种手段。

四、参考文献

[1] Li S, Deng W. Deep facial expression recognition: A survey[J]. IEEE Transactions on Affective Computing, 2020.
[2] Levi G, Hassner T. Emotion Recognition in the Wild via Convolutional Neural Networks and Mapped Binary Patterns[C]// the 2015 ACM. ACM, 2015.
[3] X Wang, J Huang, J Zhu, et al. Facial expression recognition with deep learning[C]// the 10th International Conference. 2018.
[4] Zhao K, Chu W S, Zhang H. Deep Region and Multi-label Learning for Facial Action Unit Detection[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.
[5] Xia Y. Upper, Middle and Lower Region Learning for Facial Action Unit Detection[J]. 2020.
[6] Gomez-Gomez L F, Morales A, Fierrez J, et al. Exploring Facial Expressions and Affective Domains for Parkinson Detection. 2020.
[7] Bowers D, Miller K, Bosch W, et al. Faces of Emotion in Parkinson Disease: Micro-expressivity and Bradykinesia During Voluntary Facial Expressions[J]. JOURNAL- INTERNATIONAL NEUROPSYCHOLOGICAL SOCIETY, 2006.
[8] Kuo C M , Lai S H , Sarkis M . A Compact Deep Learning Model for Robust Facial Expression Recognition[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW). IEEE, 2018.
[9] Ma C, Chen L, Yong J. AU R-CNN: Encoding Expert Prior Knowledge into R-CNN for Action Unit Detection[J]. 2018.

【CV-表情识别】如何衡量面部表情丰富性?相关推荐

  1. 面部表情识别3:Android实现表情识别(含源码,可实时检测)

    面部表情识别3:Android实现表情识别(含源码,可实时检测) 目录 面部表情识别3:Android实现表情识别(含源码,可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型训 ...

  2. 【杂谈】从CV小白到人脸表情识别专栏作者,我与有三AI的故事

    各位有三AI的读者朋友大家好呀~我是刚刚更新完结的[人脸表情识别]专栏的作者,一名仍然在读的研究生.在分享完我的专栏内容后,分享一下我这枚CV小白与有三 AI 的故事. 认识有三AI 我本科的专业是软 ...

  3. 脸部细微表情识别_您可以仅使用面部表情来控制字体吗?

    脸部细微表情识别 原型 (The prototype) Facetype is the name of Adam's interactive project, in which the emotion ...

  4. 表情识别(七)--面部表情识别阶段综述(2018.4)

    本文主要参考论文<Deep Facial Expression Recognition: A Survey> 首先我们来了解一下表情识别的相关背景知识以及发展近况.人脸表情是最直接.最有效 ...

  5. 表情识别(七)--面部表情识别阶段综述

    本文主要参考论文<Deep Facial Expression Recognition: A Survey> 首先我们来了解一下表情识别的相关背景知识以及发展近况.人脸表情是最直接.最有效 ...

  6. 人脸识别之表情识别(七)--面部表情识别阶段综述

    转自:https://blog.csdn.net/app_12062011/article/details/80504960 本文主要参考论文<Deep Facial Expression Re ...

  7. matlab怎么显示特征脸,matlab表情识别 Matlab表情识别,特征脸[1 ]作为面部表情分类的方法 联合开发网 - pudn.com...

    matlab表情识别 所属分类:其他 开发工具:matlab 文件大小:4575KB 下载次数:23 上传日期:2019-03-11 20:20:45 上 传 者:bbqQq 说明:  Matlab表 ...

  8. 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码)

    面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 目录 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 1.面部表情识别方法 2.面部表情识别数据集 ...

  9. 面部表情识别1:表情识别数据集(含下载链接)

    面部表情识别1:表情识别数据集(含下载链接) 目录 面部表情识别1:表情识别数据集(含下载链接) 1.前言 2.表情识别数据集介绍 1.JAFFE数据集 2.KDEF(Karolinska Direc ...

最新文章

  1. python zipfile教程_Python模块zipfile原理及使用方法详解
  2. 从alexnet到resnet,初探深度学习算法玩摄影
  3. Raising Modulo Numbers
  4. c语言中 if(week == 6,C语言程序设计(第六章).pptx
  5. Android开发之利用动画做出Activity悬浮滑动效果
  6. java8 linq4j_Java 8仍然需要LINQ吗? 还是比LINQ更好?
  7. linux系统打开m3u8文件,M3U8 文件扩展名: 它是什么以及如何打开它?
  8. tensorboard ckpt pb 模型的输出节点_算法工程化系列——模型固化
  9. python词云乱码_python词云库wordCloud使用方法详解(解决中文乱码)
  10. 网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
  11. 基于IP子网将加域的电脑移动到不同的OU
  12. Xmind用例导入到TAPD的方案(附代码)
  13. Python学习笔记——基础篇【第六周】——shutil模块
  14. linux-uos输入法丢失解决办法
  15. 外文版计算机科学期刊,EI(SCI) 收录国外英文期刊(计算机类)
  16. 一起从零开始学VUE(1) VUE基本使用步骤和指令
  17. 【实习之路】在广州欢聚时代入职的第一天
  18. 一只计算机专业学生的【大一年度总结】
  19. k8s集群外go客户端示例
  20. 11种 Matplotlib 科研论文图表教程(附代码)

热门文章

  1. Cordova 拨打电话_Cordova 项目开启拨打电话
  2. Python新手引导 第三篇-Python基础和字符编码
  3. 【心理咨询师考试笔记】操作技能(四)——心理咨询方法
  4. 为大家推荐几个不错的公众号!
  5. html中加减页码怎么设置,页码设置了1全是1
  6. 前端开发都有什么编程语言?
  7. Java学习之【Object】
  8. 服务器可以装win7或win10系统吗,win10改win7用legacy还是uefi?_网站服务器运行维护,window...
  9. 面纱星云的西面纱中的女巫帚星云
  10. SQL注入原理与防御姿势(问答方式 描述)