基于光流和RNN的长视频微表情检测

Micro-expression detection in long videos using optical flow and recurrent neural networks

原文地址:

https://arxiv.org/pdf/1903.10765.pdf

1. 介绍

本文通过在微表情图像序列的光流特征上使用递归神经网络(RNN),能够在长视频序列中发现微表情区间。

具体地,提取定向光流直方图(HOOF)特征来编码所选面部区域的时间变化,然后将其传递给由长短期记忆(LSTM)单位组成的RNN以进行检测任务。该方法使用长为0.5s的滑动窗口,因此可以检测到可能包含微表情的0.5s的区间。

这项工作的主要贡献是所提出的方法有可能使自发微表情数据集的标记工作耗时更少,将这些经过处理的短区间呈现给注释器以进行验证,这减少了需要检查的片段的数量。此外,注释器关于视频区间中是否包含微表情的决定也可以反馈到网络中,从而自动改善模型的性能。

该方法在SAMM数据集上进行评估,该数据集具有159个标记的微动作,并且包括微表情和其他相关的微动作。在LOSO交叉验证协议下,所提出的方法产生了1569个误报——相当于整个数据集片段的四分之一——同时保留了几乎一半的发生的微动作,实现了0.4654的召回率。

2. 提出的方法

该方法包含三个主要部分:预处理,特征提取和微表情检测。预处理包括裁剪和对齐面部,然后提取ROI。特征提取包括在帧上应用光流方法并使用得到的流向量来计算HOOF特征。最后,为了发现微表情区间,将视频序列的提取特征提供给由LSTM单元组成的RNN,然后分类给定序列是否包含相关的微观运动,然后是抑制相邻检测的后处理步骤。

A. 预处理

首先使用Dlib中的默认面部检测器检测并裁剪面部,如图2中的上半部分所示。其次使用来自imutils包的便利功能,它首先使用Dlib库中预先训练的面部界标检测器在裁剪图像上定位面部界标,然后使用检测到的界标计算双眼的中心点。随后,对准面部使得眼睛在水平线上,如图2的右下方所示。
在这里插入图片描述
最后的预处理步骤涉及提取感兴趣的区域(ROI)。在重新调整对齐图像上的面部特征点后通过选择相应特征点周围的边界框来提取ROI,如图2左下图所示。因为眼睛眨眼会产生太多噪音,选择排除眼睛区域;因为鼻子是刚性的并且提供的信息很少,选择排除鼻子区域;另外,因为实验表明嘴的中间区域只产生噪声,排除嘴的中间区域,边界框围绕着嘴角。

人脸对齐一种方法是独立地对准每个帧,确保眼睛在水平线上。然而,这种方法适得其反,因为特征点定位时的由于微表情带来的细小误差将导致整个头部的不必要变换。第二种方法是采用Li等人使用的时间滑动窗口。滑动窗口的第一帧用于定位界标并对齐面部,因此,相同的变换应用于滑动窗口中的剩余帧。另外,ROI的提取基于窗口的第一帧,通过使滑动窗口的尺寸足够小,在开始和结束之间的头部方向将不会有任何显着变化。

滑动窗口 W W W的大小设为0.5s,这意味着对于200 fps数据, ∣ W ∣ = 100 |W| = 100 W=100,为滑动窗口选择此大小因为这是微表情持续时间的上限。滑动窗口的重叠 W o v e r l a p W_{overlap} Woverlap为0.3s,即滑动步长为0.2s,从而生成区间的集合 I 1 , I 2 , … , I M I_{1}, I_{2}, \ldots, I_{M} I1,I2,,IM,如图3所示。由此可以保证生成的区间使得对于任何微表情片段 S M E S_{ME} SME,均存在区间 I j , 1 ≤ j ≤ M I_{j}, 1 \leq j \leq M Ij,1jM使得:
I j ∩ S M E S M E ≥ 0.8 \frac{I_{j} \cap S_{M E}}{S_{M E}} \geq 0.8 SMEIjSME0.8
本文确信网络能够检测包含80%微表情片段的区间。

B. 特征提取

特征提取采用定向光流直方图(HOOF)特征,这是一种基于光学流动的运动特征,可以提取有效信息来发现微表情,与使用原始像素数据相比,它提供了更高的信噪比。在很多情况下,卷积神经网络(CNN)也可用于特征提取,然而由于训练样本数量较少,本文探索了手工制作特征的使用。

1)光流(OF)

基于光流的特征在最近的研究中越来越受欢迎,部分原因在于它在测量时空变化强度方面的有效性[23]。光流方法通过编码每个像素在帧之间的移动的速度和方向来计算两帧之间的差异。

光流有三个主要假设:它假设亮度是恒定的; 它假设小块中的像素来自同一表面并具有相似的速度; 它假设物体随着时间的推移逐渐变化而不是剧烈变化。总的来说,微表情数据通常会满足这些假设,因为面部会随着时间的推移逐渐变化;小块中的像素通常来自同一表面;亮度,特别是在数据集中,保持相当稳定。在现实生活中,亮度可能并不总是恒定的,但很可能它在(微)表情的持续时间内足够恒定。

2)定向光流直方图(HOOF)

在区间集合 I 1 , I 2 , … , I M I_{1}, I_{2}, \ldots, I_{M} I1,I2,,IM中的每一个区间提取帧与帧之间的HOOF特征,但由于微表情视频帧率较高,相邻帧之间的光流非常不微小,因此本文采取降采样的方式,降采样率 R R R为1/50s,相当于从200fps的数据中提取4帧,对于短视频 V short = f 1 , f 2 , … , f W V_{\text {short}}=f_{1}, f_{2}, \ldots, f_{W} Vshort=f1,f2,,fW中的每一帧 f i ∈ V short , R &lt; i ≤ W f_{i} \in V_{\text {short}},R&lt;i \leq W fiVshort,R<iW,计算 f i − R f_{i-R} fiR f i f_i fi之间的光,然后使用所获得的每对帧的光流来计算HOOF特征,但并非在整个帧上计算HOOF特征而是只在ROI之内。
在这里插入图片描述
通过对光流向量基于方向进行分级并且通过向量的大小加权来计算HOOF,如图4所示。原始HOOF特征是对每个bin中的矢量的大小求和,随后由各个方向的bin创建归一化的直方图。由于靠近bin边界的向量对相邻bin没有贡献,小差异偶尔会对结果产生很大影响,Happy和Routray建议使用HOOF的模糊化方法,让向量基于隶属函数贡献多个二进制位,这样,像图4中 b ⃗ \vec{b} b 这样的向量对区间7和8的贡献大致相等。本文使用Piotr Dollar的Matlab工具箱的直方图函数中实现软分类,它利用线性插值让矢量贡献到2个最接近的方向区间。
在这里插入图片描述

C. 微表情检测

LSTM的任务是分类给定序列是否包含相关的微动作。LSTM的输入序列包含25个timestep,其中timestep t i t_i ti基于帧 f i f_i fi f i + R f_{i + R} fi+R之间的光流计算。因此,每个timestep包含对于每个ROI提取的HOOF特征,如图5所示。
在这里插入图片描述
有关训练标签的设置,根据SAMM数据集包含起始,顶点和终止帧数的ground truth数据,设置对于长为 W W W的区间 I j I_j Ij是否包含微表情,即如果在ground truth数据中存在间隔 S M E S_{ME} SME使得等式(1)中的条件成立,则标签值为真。

LSTM网络由2个LSTM层组成,每个层具有12个维度。使用softmax函数和ADAM优化器,学习率为 1 0 − 3 10^{-3} 103,衰减为0。网络训练50个epoch,使其不会过度拟合。

D. 后处理

由于滑动窗口伴随着重叠 W o v e r l a p W_{overlap} Woverlap,因此检测也将重叠。为了解决重叠检测的问题,对网络的输出进行后处理从而抑制重叠检测。使用类似于贪婪非最大抑制法的方法,在连续检测中采用具有最大置信度的区间,并且抑制直接(重叠)相邻区间。

3. 实验结果

遵循LOSO交叉验证协议,使用SAMM数据集评估所提出的方法,该数据集包含总共159个微动作的79个视频。如果存在微表情区间 S M E S_{ME} SME使得(1)中的条件成立,则检测的区间 I j I_j Ij被认为是真阳性(TP)。否则,如果不存在这样的间隔 S M E S_{ME} SME,则将检测的间隔 I j I_j Ij视为误报(FP)。另外,通过获取数据集中的微表情的总数,减去真阳性的数量来获得假阴性(FN)的数量。本文对TP的定义不同于Li等人提出的TP的定义,其中区间大小需要与微表情的持续时间成比例,这种TP的定义对于该方法来说效果不好,因为它目前专注于发现大小为 ∣ W ∣ |W| W的间隔,它可以传递给标注者,而并非发现微表情的确切开始和偏移。表I中显示了对获得的结果计算的若干度量,图6为提出的方法的ROC曲线。

$的间隔,它可以传递给标注者,而并非发现微表情的确切开始和偏移。表I中显示了对获得的结果计算的若干度量,图6为提出的方法的ROC曲线。
在这里插入图片描述

  • 2
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值