【CV-表情识别】研究面部表情丰富性评判的相关问题总结
一、问题背景
面部表情是人类表达情感的一种非常重要的方式,丰富的面部表情使得人与人之间的情感交流变得容易,因此除了识别表情以外,衡量面部表情的丰富性/多样性也将成为表情识别领域的重要课题[1]。
二、定义方式
1. 借鉴其他邻域关于丰富度的定义
在生物学界,生物学家用简单的数值表示群落内种类多样性的程度,称为物种多样性指数。物种多样性指数是丰富度和均匀性的综合指标。应该指出的是,应用物种多样性指数时,具低丰富度和高均匀度的群落与具高丰富度与低均匀度的群落,可能得到相同的多样性指数。
常用的物种多样性指数有以下几种:丰富度指数、辛普森多样性指数、香农多样性指数。大部分多样性指数中,组成群落的生物种类越多,其多样性指数值越大。参考物种多样性指数的计算公式,我们也可以类似地定义一个表情多样性指数,这个值随着人脸表情丰富性的增加而增大。相关公式很多,此处暂时不一一列举,可以进入链接查看。
2. 方差(variance)
方差是在概率论和统计中衡量随机变量或一组数据时离散程度的度量。因此,方差也可以作为衡量表情多样性的参考公式,方差越大,意味着样本越多样。
在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。为避免出现离均差总和为零,离均差平方和受样本含量的影响,统计学采用平均离均差平方和来描述变量的变异程度。总体方差计算公式:
σ
2
=
∑
(
X
−
μ
)
2
N
\ \sigma^2=\frac{\sum(X-\mu)^2}{N}
σ2=N∑(X−μ)2
σ
2
\sigma^2
σ2为总体方差,
X
X
X为变量,
μ
\mu
μ为总体均值,
N
N
N为总体例数。
实际工作中,总体均数难以得到时,应用样本统计量代替总体参数,经校正后,样本方差计算公式:
S
2
=
∑
(
X
−
X
‾
)
n
−
1
\ S^2=\frac{\sum(X-\overline{X})}{n-1}
S2=n−1∑(X−X)
S
2
S^2
S2为样本方差,
X
X
X为变量,
X
‾
\overline{X}
X为样本均值,
n
n
n为样本例数。
在概率分布中,设
X
X
X是一个离散型随机变量,若
E
2
(
X
−
E
(
X
)
)
E^2(X-E(X))
E2(X−E(X))存在,则称为
X
X
X的方差,记为
D
(
X
)
D(X)
D(X),或
V
a
r
(
X
)
Var(X)
Var(X),其中
E
(
X
)
E(X)
E(X)是
X
X
X的期望值,
X
X
X是变量值,公式中的
E
E
E是期望值
e
x
p
e
c
t
e
d
v
a
l
u
e
expected\ value
expected value的缩写,意为“随机变量值与其期望值之差的平方和”的期望值。离散型随机变量方差计算公式:
D
(
X
)
=
E
2
(
X
−
E
(
X
)
)
=
E
(
X
2
)
−
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)信息熵
在信息论和概率论中熵是对随机变量不确定性的度量,在机器学习中,熵还可以度量样本集合的纯度(熵越小集合纯度越高)。信息熵的定义为:
E
n
t
(
D
)
=
−
∑
k
=
1
∣
K
∣
p
k
l
o
g
p
k
\ Ent(D)=-\sum_{k=1}^{|K|}p_klogp_k
Ent(D)=−k=1∑∣K∣pklogpk
其中,
D
D
D表示集合,
K
K
K表示类别数,
p
k
p_k
pk表示第
k
k
k类别样本的比例。集合中每一类样本的比例越接近,表示集合纯度越低,越混乱,即熵的值越大。集合中类别越单一,表示纯度越高,熵的值越小。
(2) 基尼指数
数据集
D
D
D的纯度也可以用基尼指数来度量,基尼指数反映数据集
D
D
D中随机抽取两个样本,其类别标记不一致的概率,不一致的概率越小集合就越纯。公式:
G
i
n
i
=
∑
k
=
1
∣
K
∣
∑
k
′
!
=
k
p
k
p
k
′
=
1
−
∑
k
=
1
∣
K
∣
p
k
2
\ 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∑pkpk′=1−k=1∑∣K∣pk2
不纯度与多样性恰恰是一对类似的概念,因此信息熵与基尼指数公式也可以用来定义面部表情的丰富性指数。
4. 具体的定义方法
表情丰富度的具体定义与计算方法可能有多种,但应该都是基于表情识别的结果的,因此其可能与表情识别运用的技术方法和模型的输入输出形式相关,现从静态和动态两个角度提出一些可能可行的方法,之后可以验证这些方法的准确性与可行性,找到最优的定义方法。
(1)静态表情图片
①七种基础表情分类----输出为记录各类概率的七维向量
若以静态表情图片作为输入,现在最流行的方法是训练CNN模型来识别七种基础表情中的一个,模型的输出结果通常是一个记录了各种情感概率的七元向量,并最终将预测的情感类别作为具有最大概率的类别[2]。
假设输出结果为
X
=
[
p
0
,
p
1
,
p
2
,
p
3
,
.
.
.
,
p
6
]
X=[p_0,p_1,p_2,p_3,...,p_6]
X=[p0,p1,p2,p3,...,p6](其中
p
i
p_i
pi为该输入图片是
i
i
i类表情的概率),可以根据信息熵公式计算识别结果的不确定性为
E
n
t
(
X
)
=
−
∑
k
=
0
6
p
k
l
o
g
p
k
\ Ent(X)=-\sum_{k=0}^{6}p_klogp_k
Ent(X)=−∑k=06pklogpk,若识别结果是准确的,那么这个值可以用来衡量这一输入面部表情的纯度,即值越低,表情所代表的含义越纯粹。但仅凭单一表情识别结果的纯度是否能用来评估某人面部表情的丰富性我认为还有待商榷。
②基于AU检测的表情识别----FACS多标签探测
FACS (Facial Action Coding System) 即面部行为编码系统,它特指一组面部肌肉运动状态。
根据上面的面部运动编码编码可以得出相应的情绪计算公式,具体计算公式如下所示:
这种基于面部运动单元进行表情识别的方法成为了一种多标签分类问题,因为对于一个表情图像最终检测出来的AUs通常不止一个[4]。若作为一个表情识别任务,可以通过以上公式判断检测出的AU组合最终符合哪种表情。但如果我们需要计算的是该表情是否丰富,可以仅以检测到的AU的种类和数目作为参考,与物种多样性中的物种种类类比,定义一个AU种类多样性指数。
①②两种计算静态表情丰富性的方法定义完全不同,但评估的目的和对象相同,所以或许可以通过对同一组表情图像进行两种方法的丰富性计算并且对比二者的相对结果来判断这两种定义是否具有正确性和本质上的一致性。
(2)动态表情视频
①直接检测像素点强度随时间变化的熵
在2006年有学者对帕金森病人的面部表情序列进行了研究[7],逐帧处理被试者面部表情的视频并计算像素点强度随时间变化的熵,发现帕金森病人的熵比健康人的熵要低,且达到巅峰表情的速度比健康人慢很多,这是由帕金森病人的运动徐缓和表情缺失引起的。由此可见,像素点强度随时间变化的熵也可能可以作为衡量动态表情序列的表情丰富度的参考指数。
②提取帧进行基础表情分类
对于一段面部活动视频,通常存在多个表情从开始到结束的帧序列,提取每一个表情的结束帧(或每隔固定的一段时间提取一帧)图像送进网络,得到各帧的表情预测概率向量[8]。设一段视频中提取到 n n n帧,每一帧的预测结果分别为 X 1 , X 2 , . . . , X n X_1,X_2,...,X_n X1,X2,...,Xn,那么可以用这 n n n个结果的方差 D ( X ) = ∑ k = 1 n ( X k − E ( X ) ) 2 D(X)=\sum_{k=1}^{n}(X_k-E(X))^2 D(X)=∑k=1n(Xk−E(X))2来衡量这 n n n个概率向量的离散程度,对应于这段视频中各表情的差异程度,差异越大,说明表情越丰富。
③动态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.