CVPR:Weakly-supervised Deep Convolutional Neural Network Learning for Facial Action Intensity Estima

本文提出一种基于知识的弱监督深度卷积神经网络模型,仅需少量带标签数据(峰值和谷值帧)进行AU强度检测。通过挖掘领域知识,如外观相似性和时间强度排序等,有效利用未标记数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Weakly-supervised Deep Convolutional Neural Network Learning for Facial Action Intensity Estimation

Abstract

AU强度检测在情感计算和人机交互中有着重要的作用,实际上以及有很多工作利用CNN来进行AU强度的检测,但是都需要大量的标注数据。因此本文提出一个“基于知识的半监督的深度卷积神经网络”来进行AU强度的检测,只需要少量的标注数据(在训练序列中只需要有AU强度标注的peak和valley frames)。

Introduction

我们知道表情可以通过面部肌肉的运动来衡量,Ekman和Friesen创造了Facial Action Coding System(FACS)来描述面部肌肉的运动,定义了AU来表示肌肉的运动。FACS将AU强度划分为6个离散的等级(0~6):
Neural(0)<Trace(A)<Slight(B)<Pronounced(C)<Extreme(D)<Maximum(E)Neural(0)<Trace(A)<Slight(B)<Pronounced(C)<Extreme(D)<Maximum(E)
所谓的AU强度检测就是:给定一副未见过的图片,来预测AU的强度。

本文的“基于知识的半监督的深度卷积神经网络”模型使用先验知识来促进模型的学习,减少数据间的依赖性。该模型只需要少量的标注数据:有AU强度标注的peak和valley frames。为了利用未标记的帧(unlabeled frames),作者还尝试挖掘AU强度中的领域知识(domain knowledge),包括:appearance similarity,temporal intensity ordering,facial symmetry以及contrastive appearance difference,为模型的训练提供了额外的约束。

这里写图片描述

上面所谓的domain knowledge来源于对AU强度在表情序列(emotional sequence)中的观察。
1. 上图-(b)展示了AU12的强度随时间的变化。一开始,由于肌肉的变化比较平滑(smooth),所以AU变化的比较平滑,接下来AU强度逐渐上升,从valley frame变为临近的peak frame(这个过程称为rising duration),然后逐渐从peak frame下降到临近的valley frame(这个过程称为decaying duration)本文的网络在进行AU强度预测时会保留这种关系。
2. 在rising以及decaying duration中,两个帧越相近,则他们的外表看起来会越相似(appearance similarity),在学习中促使提取的特征保持这种特性
3. 人脸是对称的。因此AU的出现和强度对于人脸的左右两侧是几乎一致的。因此面部左右的特征表示应该相近。尽管图片中存在不同的头部角度,但是学习的特征应该对于不同的角度应具有不变性(invariant to head pose)。
4. 一个具有表情的面部肯定是和中性的面部(neural face)在表现上是不同的,因此两者的特征也应该是容易被区分的。

这些领域知识为弱监督(weak supervision)提供了可行的手段,且有利于挖掘无标记帧所蕴含的信息。

本文的贡献:

  • 提出“基于知识的半监督的深度卷积神经网络”模型,只需要少量的标注数据:有AU强度标注的peak和valley frames。降低了对大量标注数据的依赖。
  • 挖掘了四种领域知识:appearance similarity,temporal intensity ordering,facial symmetry以及contrastive appearance difference,为有标记数据和无标记数据建立了联系。
  • 提出在模型训练中使用五元组(5-elements tuples),而不是单个的帧(individual frame)或者帧对(frame pairs),可以有效的利用多帧(multiple frames)之间的高阶关系。

Proposed Method

这里写图片描述

如图-1(b)所示,给定了有标注的peak和valley frames,这个帧序列就可以划分为不同的segment。根据AU强度的趋势,segments可以分为三组:

  • 由valley frame到peak frame
  • 由peak frame到valley frame
  • AU强度保持不变

为了使趋势一致,作者反转了从peak frame到valley frame的顺序,由此每个训练segment或是由valley frame到peak frame,或是AU强度保持不变。

符号标记:
对某个AU,训练集定义为D={Xm,y1m,yNmm}Mm=1D={Xm,ym1,ymNm}m=1M,其中Xm={Xnm}Nmn=1Xm={Xmn}n=1Nm,其中XnmXmn表示训练集中第m个segment中的第n个帧。NmNm表示第m个序列的长度。在每个segment中,只有第一帧和最后一帧拥有AU强度的标记,所以y1mym1表示X1mXm1的强度,yNmmymNm表示XNmmXmNm。又定义ΘΘ表示CNN的参数,y~nm=f(Xnm;Θ)y~mn=f(Xmn;Θ)表示对XnmXmn的预测强度,fnmfmn表示对XnmXmn抽取的特征,换言之,CNN的最后一层全连接层。另外,定义d(a,b)d(a,b)表示两者之间距离d(a,b)=|ab|2d(a,b)=|a−b|2

我们的目标是学习参数ΘΘ,由于对每一个AU,peak和valley的frames的位置是不同的,因此训练CNN每次用于识别一个AU的强度。

Domain Knowledge

Relative appearance similarity:
因为面部容貌变化平滑,在一个segment中,两帧越近,看起来越像。所以对于相近的两幅图,我们使CNN提取的图片的特征也相近。

d(fim,fjm)d(fim,fkm),1i<j<kNm(1)(1)d(fmi,fmj)≤d(fmi,fmk),1≤i<j<k≤Nm

其中d(fim,fjm)=fimfjm2d(fmi,fmj)=‖fmi−fmj‖2。当i,j,k包含第一帧和最后一帧时,上式就将有标记的帧和无标记的帧联系了起来。

Teporal intensity ordering:
前面说过,在面部运动中,当肌肉变化平滑时,面部容貌(facial appearance)的变化也是平滑的。对于AU强度也是如此。相邻的帧有着相似的面部容貌和AU强度。对于整个序列,根据peak和valley可以划分为一系列的segment,对每一个segment,AU强度单调的变化(注意前面所说的反转操作)。为了利用AU强度的顺序来监督模型的训练过程,对预测的一个segment中的AU强度进行如下的限制:

y~1my~2my~Nmm,m=1,2,,M(2)(2)y~m1≤y~m2≤⋯≤y~mNm,m=1,2,…,M

Facial symmetry:
人脸具有对称的特性,对于一张根据两眼中心归一化后的人脸,从中间进行反转后(horizontally flipped face)需要与原有的特征相近,即:

d(fnm,f^nm)=fnmf^nm2(3)(3)d(fmn,f^mn)=‖fmn−f^mn‖2

应该具有很小的值。其中f^nmf^mn表示翻转后的面部。

Contrastive appearance difference:
对每一个人(subject),一个具有表情的面部是不同于中性的面部的(neutral faces)。因此对于本文的CNN,使其能够区分有表情的面部和中性的面部。即定义两者之间的距离满足:

d(fnm,fNm)=fnmfNmη(4)(4)d(fmn,fmN)=‖fmn−fmN‖≥η

其中,ηη是阈值,fNmfmN是有标记的中性面部的特征,且属于第m个segment的某个人(subject)。

Encoding knowledge

这里写图片描述
Trainging tuples:
本文没有直接利用公式2-4来构造目标函数,而是基于训练的元组,对知识进行编码。如图3所示。对一个segment的元组定义为:T={S,A,B,E,N}T={S,A,B,E,N}。其中S<A<B<ES<A<B<E以及N表示帧的index。整个元组包含这个segment中的初始帧(S)和最终帧(E),S与E之间的两帧(A和B),以及中性帧(N)。S,E和N是有标签的,而A和B是无标签的。给定一个训练segment,我们可以生成大量的这样的元组。对来自同一个segment中的元组,有着共同的S和E,有标记的中性帧N可以来自同一个人(subject)的其它的segment。

使用元组的好处:给定训练集D,我们可以得到大量的训练元组,DT={Tkm}m=M,k=Kmm=1,k=1DT={Tmk}m=1,k=1m=M,k=Km,其中MmMm是第m个segment的元组的数量。

Encoding labels:
对每一个segment,只有第一帧和最后一帧是有标记的,它们不仅仅起到有监督的训练模型的作用,也间接地对它们之间的无边际的帧起到了上下界的约束作用。给定元组T,损失函数定义为:

lb(T)=d(y~S,yS)+d(y~E,yE)(5)(5)ℓlb(T)=d(y~S,yS)+d(y~E,yE)

Encoding relative appearance similarity:
同理,对于公式1,作者基于元组设计了一个损失以充分利用有标记的初始帧和最终帧。这个损失有以下特性:

  • 能够捕捉一个segment中面部的变化,换言之,从初始帧到最终帧,特征越来越与初始帧不同,越来越接近于最终帧;
  • 充分利用有标记的帧;
  • 能够考虑多种帧之间的高阶的关系;

给定元组T,损失定义为:

rel(T)=max(d(fS,fA)d(fS,fB)+α,0)+max(d(fE,fB)d(fE,fA)+α,0)+max(d(fB,fA)d(fB,fS),0)+max(d(fA,fB)d(fA,fE),0)(6)(6)ℓrel(T)=max(d(fS,fA)−d(fS,fB)+α,0)+max(d(fE,fB)−d(fE,fA)+α,0)+max(d(fB,fA)−d(fB,fS),0)+max(d(fA,fB)−d(fA,fE),0)

其中,α0α≥0是边界。每一项是一个triplet loss。
这里写图片描述

如图4所示,为了确保只有(b)这种情况出现,引入另外的项来确保,这个很简单,比如对图中的情况,只需要添加一个约束,认为A到B的距离要小于S到B的距离即可。上图只给出了对于起始帧的情况,对于终止帧也是一样的。这就有了公式(6)中的后两项。对于图3中两类不同的元组,使用不同的边界,即:α=0α=0 如果 yS=yEyS=yE,否则,α>0α>0

Encoding temporal intensity ordering:
这里考虑对公式(2)进行转化,给定一个元组T,预测的AU强度应满足y~Sy~Ay~By~Ey~S≤y~A≤y~B≤y~E
可以编码为:

=max(y~Sy~A,0)+max(y~Ay~B,0)+max(y~By~E,0)(7)(7)ℓ=max(y~S−y~A,0)+max(y~A−y~B,0)+max(y~B−y~E,0)

但是这样有个问题,它只考虑了两对之间的关系,忽略了与其它帧的关系。比如,当预测值为y~Sy~By~Ay~Ey~S≤y~B≤y~A≤y~E时,只有第二项的梯度,S和E没用用到。为了充分利用高阶的信息。
同前面一样,我们还需要另外两项约束,以及考虑两种元组,此时损失为:
ord(T)=max(d(y~S,y~A)d(y~S,y~B)+β,0)+max(d(y~E,y~B)d(y~E,y~A)+β,0)+max(d(y~B,y~A)d(y~B,y~S)+β,0)+max(d(y~A,y~B)d(y~A,y~E)+β,0)(8)(8)ℓord(T)=max(d(y~S,y~A)−d(y~S,y~B)+β,0)+max(d(y~E,y~B)−d(y~E,y~A)+β,0)+max(d(y~B,y~A)−d(y~B,y~S)+β,0)+max(d(y~A,y~B)−d(y~A,y~E)+β,0)

Encoding facial symmetry:
这个比较简单,直接定义为:

sym(T)=d(fA,f^A)+d(fB,f^B)(9)(9)ℓsym(T)=d(fA,f^A)+d(fB,f^B)

这里只考虑到了A和B,因为S和E对于同一segment中的元组是相同的。此外,在某些元组中,A和B可以很接近S和E,因为它们也可以覆盖S和E中的相似的信息。又因为S可以是中性帧,因此N也没有被考虑。

Encoding contrastive appearance difference:
给定元组T,loss是:

con(T)=max(ηd(fA,fN),0)+max(ηd(fB,fN),0)(10)(10)ℓcon(T)=max(η−d(fA,fN),0)+max(η−d(fB,fN),0)

其中η0η≥0是阈值。如果yS=yE=0yS=yE=0,则η=0η=0,否则η>0η>0

Learning

对于一个训练元组的整个损失是:

(T)=lb(T)+λ1rel(T)+λ2ord(T)+λ3sym(T)+λ4con(T)(11)(11)ℓ(T)=ℓlb(T)+λ1ℓrel(T)+λ2ℓord(T)+λ3ℓsym(T)+λ4ℓcon(T)

对所有的训练元组上的损失是:

L(DT)=1Gm=1Mk=1Km(Tkm)(12)(12)L(DT)=1G∑m=1M∑k=1Kmℓ(Tmk)

其中G=Mm=1KmG=∑m=1MKm

Inference:
尽管CNN是使用元组来训练的,但是可以对某张图片进行AU强度的预测。给定一张测试图片,预测的结果为y=f(X;Θ)y=f(X;Θ),换言之,将预测值转换为离散结果:0(y<0.5),1(0.5y1.5),2(1.5y2.5),3(2.5y3.5),4(3.5y4.5),5(4.5y)0(y<0.5),1(0.5≤y≤1.5),2(1.5≤y≤2.5),3(2.5≤y≤3.5),4(3.5≤y≤4.5),5(4.5≤y)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值