Recognizing Micro-Expression in Video Clip with Adaptive Key-Frame Mining阅读笔记
本文主要贡献
据我们所知,这是第一项旨在将视频剪辑中的信息时间子集的端到端学习与单个网络中的微表情识别相结合的工作。 此外,所提出网络中所有模块的设计都与输入视频剪辑的长度无关。 换句话说,网络容忍各种长度的微表情剪辑。 本文的贡献有三方面:
- 提出了一种新的深度学习架构,称为 AKMNet,用于微表情识别,具有挖掘对识别性能贡献最大的关键帧的时间子集的能力。
- 通过将顶点帧与 AKMNet 以纯数据驱动方式学习的关键帧进行比较,丰富了顶点帧的理论空间。
- 通过广泛的实验,所提出的 AKMNet 被证明对微表情识别有效,性能显着提高,并且可推广到视频剪辑中宏观表情的识别。
相关工作
继特征工程方法之后,过去三年见证了微表情研究对计算机视觉社区深度学习热潮的日益增长的反应。 多项研究中使用了各种深度神经网络。 在没有手工特征工程的情况下,端到端神经网络模型能够通过从大量高维(和低级表示)数据中学习来进行分类或预测 [23]。 对于微表情的研究,已经努力从更广泛的计算机版本领域改编几个成功的 CNN 和 RNN 模型来解决这个场景中的问题。
首先,研究人员专注于从整个微表情片段(包括但不限于起始帧和偏移帧之间的帧)中提取表征。 仅举几例,Peng 等人。 [18] 提出使用 3D-CNN 从这种剪辑转换的光流序列中学习表示,而 SVM 用于最终分类。 所提出的架构拥有两个流,旨在使用来自两个基准数据集(CASME I/II)的不同原始帧速率的数据,并且每个流也被缓解为只有 4 个卷积层,每个卷积层后跟一个池层,以便按顺序 以减轻过拟合风险。 通过在 CASMEI/II 上的端到端实现和测试,该方法通过 3 折交叉验证获得了 0.6667 的最佳 f1 分数,比之前最先进的方法高出约 10%([12] [13])。 考虑到视频数据的时间动态,Khor 等人 [24] 提出了一种具有卷积层和循环层的架构。 连同完整的视频剪辑,还在给定时间段的每个时间步提取光流特征,以提供更丰富的时间信息。 然而,他们实现的准确性在某种程度上是有限的,这可能是由于在小型数据集上使用了复杂的网络。 在上述两项研究中,最初用于视频分类的两种流行的网络架构(3D-CNN 和 CNN-RNN)已经在微表情数据集上进行了测试,而所达到的准确度即使不优于以前的手工特征工程,也具有可比性 方法,在实际的端到端设计下具有更高的现实生活影响。
然而,除了用于深度学习模型的微表情数据集的大小有限之外,这里存在的另一个挑战是微表情的每个视频片段中不重要的帧引入的冗余。 针对这个问题,最近的研究[21] [22] 探索了单独使用每个视频片段的顶点帧进行识别的可行性,其中微表情的强度被认为达到最高。 两部作品都证明了并非微表情片段的所有帧都有助于识别。 随着这一发现,研究人员开始使用顶点框架进行微表情识别。 Peng 等人 [19] 提出通过对宏观表情数据进行预训练,使用迁移学习来辅助顶点帧上的微表情识别。 正如这项工作所建议的那样,顶点框架上的微表情识别开辟了一种迁移从宏观表情数据中学习的知识的方法,因为这两项任务都具有很强的相关性并且对静态图像进行操作。 Wang 等人 [20] 的另一项工作提出使用注意力机制 [25] 来帮助网络关注顶点框架的信息量最大的空间区域,因为微表情也在空间上局限于面部的小区域。 后来,Peng 等人 [27] 的另一项研究发现,将顶点帧的空间信息与其相邻帧的时间信息相结合,可以在不同数据集上产生更高的泛化性能。 此外,Xia 等人 [47] 计算并利用起始帧和顶点帧之间的光流特征,使用递归卷积网络进行微表情识别。
我们发现基于顶点框架的研究的一个明显局限性是缺乏一种通用方法来定位基本框架,例如顶点和起点框架。一些研究 [21] [22] 基于空间或光谱特征工程定位顶点帧,而其余研究 [19] [20] [27] 则依赖于手动注释。 另一方面,时间信息的处理方式仅限于对所有输入帧的遍历处理,而启发式时间信息搜索和提取的研究仍然缺失。
在本文中,为了自动处理使用微表情剪辑中所有帧的冗余和对顶点帧手动注释的依赖,我们建议自动学习对识别性能贡献最大的关键帧的信息子集 . 我们的方法通过提出一个名为 AKMNet 的端到端网络,结合了自动子集搜索、时空表示融合和识别。 在下一节中,将详细描述该方法以展示我们如何实现这一目标。
方法
在本节中,我们首先说明所提出的 AKMNet 的总体架构。 我们展示了所提出的网络如何设计用于从微表情视频剪辑中自动学习关键帧。 然后我们详细描述了 AKMNet 中自适应关键帧挖掘模块中使用的建议计算算法。
A. AKMNet 概述
微表情是一种短暂的、暂时定位的面部运动,表明一个人的内在情绪。 因此,能够提供微表情识别信息的帧数是有限的。 此外,微表情剪辑的持续时间因不同的对象而异,即使是相同的情绪也是如此。 这种时间性和个体差异表明,必须首先找到信息量最大的帧,然后对其进行识别。 因此,首先,对于微表情的视频片段,与其他冗余帧相比,一些关键帧存储了更丰富的信息。 其次,关键帧的分布可以是稀疏的,因此每个关键帧可以由多个冗余帧连接。
所提出的 AKMNet 的概述如图 1 所示。给定视频输入𝐕 = {𝑰!,𝑰",…,𝑰#},其中𝑰# 表示第 𝑇 帧,AKMNet 首先提取空间特征 对于使用 ResNet-18 网络 [31] 的每一帧。生成的特征序列为𝑭 ∈ R tcwh 其中 𝑭 = {𝑷1, 𝑷2, … , 𝑷t}。𝑷t ∈ R cwh 是从𝑇-th提取的空间特征 frame 𝑰 ,其中𝐶,𝑊,𝐻分别是通道数,宽度,和高度。在跨帧的空间特征提取中共享相同的ResNet-18网络。这样是为了i)确保从中提取的特征每帧提供相同级别的信息;ii)容忍不同长度的剪辑输入;iii)减少可训练参数的数量,以减轻小型微表情数据集的过度拟合风险。ResNet-18 网络首先使用 ImageNet [37] 并进一步使用名为 AffectNet [39] 的数据集进行预训练。这样做的目的是将 ResNet 的能力从通用图像分类转移到面部表情识别,并减轻过度拟合的风险。 自适应关键帧挖掘模块的详细信息在下一小节中给出。该模块生成 𝑁 帧的特征序列子集,这些帧有望为识别提供最多的信息,表示为 𝑭 key ∈ R ncwh, 𝑭key = {𝑷k1, 𝑷k2, … , 𝑷kn}。 这些关键帧按照它们在空间特征序列𝑭中的原始时间顺序列出。给定不同的输入剪辑,关键帧数𝑁自适应地改变。
如图 2 所示,关键帧特征序列𝑭key = {𝑷k1, 𝑷k2, … , 𝑷kn}由双向 GRUnetworks (bi-GRU) [32] 处理以提取时间特征 . 这种双向循环网络被用来提取时间上下文信息,这对于微表情识别至关重要。 此外,与常用于时间建模的 LSTM 单元相比,GRU 单元的可训练参数更少,有助于减轻较小数据集的过度拟合风险。 特别地,双 GRU 网络用于进行像素级递归处理。 单个 bi-GRU 网络对大小为 𝑁 × 𝐶 的特征像素序列进行操作,这些特征像素是从所有关键帧的相同位置提取的。 由于空间特征𝑃的大小为𝐶×𝑊×𝐻,我们#总共有𝑊×𝐻双GRU网络,以便处理所有帧中的所有特征像素。 通过这种方式,无需池化即可提取时间特征。 这也是为了保持微表情的基本空间信息。 所有双 GRU 网络共享同一组可学习参数,以帮助减少参数大小并容忍不同长度的剪辑输入。 对于双 GRU 网络,给定
其中 [∙] 表示不同向量的堆叠,* 是逐元素乘法,𝜎 是 sigmoid 激活,hn-1是最后一个关键帧的输出,𝑧n和hn是中间特征矩阵,𝑾z、𝑾h和𝑾r是bi-GRU网络的可训练权重矩阵。 每个 bi-GRU 网络的输出是所有关键帧输出 hn 的平均值。 每个 bi-GRU 网络的输出被连接起来产生关键帧时空表示𝑮∈Rc×w×h,其中𝐶是每个 bi-GRU 网络产生的特征向量的通道数。 在我们的端到端训练中,采用softmax层进行最终分类。 这里使用的损失函数可以写成
其中,𝑀是班级总数,𝑚表示当前输入视频剪辑的真实类别,𝑦(𝑮)是输入特征𝑮的分类类别标识,𝐖是输出层和前一层之间的权重向量。 𝟏{∙} 是本征函数,当 {∙} 为真时返回 1,反之返回 0。
B.自适应关键帧挖掘模块
在这里,我们详细描述了关键帧挖掘模块的功能。 一般来说,关键帧挖掘模块学习一个函数𝑓:𝑭→𝑭key。 图 3 提供了关键帧挖掘模块的演示。如图所示,该模块的输入是特征序列𝑭 ∈ Rtcwh,它首先使用全局空间池进行处理生成一个池化特征序列𝑭 ∈ Rtc.也就是说,我们将序列𝑭中的每个特征映射𝑷t∈Rcwh压缩成一个𝐶×1特征向量𝑃t,𝑡∈{1, 2, … , 𝑇} , 其中包含每一帧的紧凑空间信息. 为了获取关键帧序列, 一个三步关键帧挖掘模块被提出。 首先,采用局部自注意力学习步骤,其中为每个特征向量 𝑃 分配一个粗略的注意力权重 α。 其次,基于第一步中计算的这些注意力权重,通过聚合所有特征向量生成全局特征向量𝑃。 然后,通过计算每个特征向量与全局特征向量之间的余弦相关性,得到每个特征向量的细粒度权重。 我们称之为全局相关学习步骤。 最后,基于这些相关值,使用全局稀疏性和最大均值间隔损失函数学习稀疏二元相关向量𝐵。 这被称为稀疏选择步骤。 为关键帧挖掘模块提出的这三个步骤将在下一节中根据经验进行论证,以了解它们各自的影响。 在局部自注意力学习步骤中,每个帧特征输入𝑃的局部权重𝛼t通过具有S形激活函数的全连接层计算为
其中 𝜎 是 sigmoid 激活函数,𝑾t是该层的可训练权重矩阵。 在全局相关学习步骤中,我们首先通过聚合所有输入特征向量和各自的局部自注意权重来获取全局特征向量𝑃
然后,基于余弦相关计算每个特征向量𝑃的细粒度权重𝛽为
最后,在稀疏选择步骤中,我们实现了先前推理的概念,即微表情视频剪辑中的大多数帧都是冗余的,而信息量最大的帧是稀疏局部化的。 因此,我们将稀疏性添加到权重向量 {𝛽1 , 𝛽2 , … , 𝛽t} 。受二进制神经网络中提出的二值化过程的启发,我们计算二进制索引向量 𝐵 ∈ {0,1}作为
其中每个关键帧的位置用数字 1 标记,反之为 0。 有了索引向量𝐵,关键帧特征序列𝑭key通过以下方式获取
其中⨀表示张量分数乘积,并沿着原始特征序列𝑭的时间维度进行。 为了进一步实现细粒度权重 𝛽t的学习和稀疏化过程,我们建议使用全局稀疏性和最大均值间隔 (GS-MMM) 损失函数。 全局稀疏损失的第一部分写为
其中𝒎𝒂𝒙(∙) 和𝒔𝒖𝒎(∙) 分别是最大值和总和的计算。 当 Lgs减少时,我们确保至少选择了一个关键帧。 最大平均边距损失的另一部分写为
其中𝐶设置为2,因为细粒度权重𝛽的值在余弦函数的范围内。 该损失函数旨在通过为其分配更高的权重来进一步帮助将关键帧与其他关键帧区分开来,同时避免 Lgs可能导致的琐碎解决方案。 于是,GS-MMM损失函数写为
其中𝜆和𝜆分别是控制每个损失影响的权重常数。 在 AKMNet 的端到端训练过程中,结合方程 4 和 12,最终要减少的损失函数 𝛀 可以写成
在训练中,网络需要学习导致损失𝛀最小的最佳关键帧子集,这也应提供最佳分类性能。 通过反向传播,更新 ResNet-18 和 bi-GRU 网络中的可训练权重矩阵。 在下一节中,我们将讨论如何将这种自适应关键帧挖掘方法转换为深度学习网络的可训练块。
C. 权重更新策略
通常,梯度下降用于更新神经网络,这要求网络中进行的所有计算都是可微的和凸的。 然而,上一小节中描述的自适应关键帧挖掘模块似乎是一个非凸过程。 具体来说,二进制索引向量𝐵的计算不允许梯度计算。 为了使过程可训练,我们开发了一种替代的最小化方法来特别更新等式 8 和 9。我们首先定义,在反向传播期间,从下一层传递到 𝑭key层的梯度表示为。 根据链式法则等式 9 的更新可以写成
对于等式 8,索引向量 𝐵 的计算产生常数值,这不允许进行梯度计算。 因此,我们通过分别用原始细粒度权重值替换常量值来修改这种计算。 等式 8 可以改写为
在 AKMNet 中,给定视频剪辑输入的微表情识别包括三个阶段:i)使用 ResNet-18 对输入视频剪辑进行遍历空间特征提取; ii) 使用所提出的模块进行自适应关键帧挖掘,其中生成一系列对识别最有价值的关键特征图; iii) 使用 bi-GRU 网络学习像素级时间特征,然后进行特征连接和分类。 为整个网络启用端到端学习。 训练方案写在算法 1* 中。
相关文章:

Recognizing Micro-Expression in Video Clip with Adaptive Key-Frame Mining阅读笔记
本文主要贡献 据我们所知,这是第一项旨在将视频剪辑中的信息时间子集的端到端学习与单个网络中的微表情识别相结合的工作。 此外,所提出网络中所有模块的设计都与输入视频剪辑的长度无关。 换句话说,网络容忍各种长度的微表情剪辑。 本文的贡…...

【SpringBoot整合RabbitMQ(上)】
一、简单的生产者-消费者 1.1、创建连接工具类获取信道 public class RabbitMqUtils {public static Channel getChannel() throws IOException, TimeoutException {//创建一个链接工厂ConnectionFactory factory new ConnectionFactory();//工厂IP 链接RabbitMQ的队列facto…...

Linux 设备驱动程序(二)
系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux设备驱动开发详解 文章目录 系列文章目…...

性价比提升15%,阿里云发布第八代企业级计算实例g8a和性能增强型实例g8ae
5 月 17 日,2023 阿里云峰会常州站上,阿里云正式发布第八代企业级计算实例 g8a 以及性能增强性实例 g8ae。两款实例搭载第四代 AMD EPYC 处理器,标配阿里云 eRDMA 大规模加速能力,网络延时低至 8 微秒。其中,g8a 综合性…...

Unity VR开发教程 OpenXR+XR Interaction Toolkit 番外(一)用 Grip 键, Trigger 键和摇杆控制手部动画
文章目录 📕制作手部动画📕设置 Animation Controller📕添加触摸摇杆的 Input Action📕代码部分 在大部分 VR 游戏中,手部的动画通常是由手柄的三个按键来控制的。比如 Grip 键控制中指、无名指、小拇指的弯曲…...

H.265/HEVC编码原理及其处理流程的分析
H.265/HEVC编码原理及其处理流程的分析 H.265/HEVC编码的框架图,查了很多资料都没搞明白,各个模块的处理的分析网上有很多,很少有把这个流程串起来的。本文的主要目的是讲清楚H.265/HEVC视频编码的处理流程,不涉及复杂的计算过程。…...

数据结构初阶--链表OJⅡ
目录 前言相交链表思路分析代码实现 环形链表思路分析代码实现 环形链表Ⅱ思路分析代码实现 复制带随机指针的链表思路分析代码实现 前言 本篇文章承接上篇博客,继续对部分经典链表OJ题进行讲解 相交链表 先来看题目描述 思路分析 这道题我们还是首先来判断一…...
离职or苟住?
面对不太好的大环境,我们什么时候该离职,什么时候不应该离职呢?分享几个观点,希望对你有所启发。 以前就有大佬讲过,离职无非是两个原因,一是因为薪资不到位,二是因为受委屈了,总之&…...

微服务之以nacos注册中心,以gateway路由转发服务调用实例(第一篇)
实现以nacos为注册中心,网关路由转发调用 项目版本汇总项目初始化新建仓库拉取仓库项目父工程pom初始化依赖版本选择pom文件如下 网关服务构建pom文件启动类配置文件YMLnacos启动新建命名空间配置网关yml(nacos)网关服务启动 用户服务构建pom文件启动类配置文件YML新增url接口配…...

主成分分析(PCA)直观理解与数学推导
近期在完成信息论的作业,发现网上的资料大多是直观解释,对其中的数学原理介绍甚少,并且只介绍了向量降维,而没有介绍向量重构的问题(重构指的是:根据降维后的低维向量来恢复原始向量)࿰…...

什么是合伙企业?普通合伙和有限合伙区别?
1.什么是合伙企业? 合伙企业是指由各合伙人订立合伙协议,共同出资,共同经营,共享收益,共担风险,并对企业债务承担无限连带责任的营利性组织。合伙企业一般无法人资格,不缴纳企业所得税,缴纳个…...
系统结构考点之不明白的点
系统结构考点系列 计算机系统结构的定义计算机组成的定义计算机实现的定义计算系统的定量设计?1. 哈夫曼压缩原理2. Amdahl定律3. cpu性能公式4. 程序访问局部性定理 这样的题已经不多了,主要是要了解下概念。打下一个好的基础。 2023年4月份成绩已经…...

Android中AIDL的简单使用(Hello world)
AIDL:Android Interface Definition Language(Android接口定义语言) 作用:跨进程通讯。如A应用调用B应用提供的接口 代码实现过程简述: A应用创建aidl接口,并且创建一个Service来实现这个接口(…...

ZED使用指南(五)Camera Controls
七、其他 1、相机控制 (1)选择视频模式 左右视频帧同步,以并排格式作为单个未压缩视频帧流式传输。 在ZED Explorer或者使用API可以改变视频的分辨率和帧率。 (2)选择输出视图 ZED能以不同的格式输出图像…...
wrk泛洪攻击监控脚本
wrk泛洪攻击介绍 WRK泛洪攻击(WRK Flood Attack)是一种基于WRK工具进行的DDoS攻击(分布式拒绝服务攻击)。WRK是一个高度并行的HTTP负载生成器,可以模拟大量用户访问一个网站,从而导致该网站服务器瘫痪或失效…...

软件I2C读写MPU6050代码
1、硬件电路 SCL引到了STM32的PB10号引脚,SDA引到了PB11号引脚软件I2C协议: 用普通GPIO口,手动反转电平实现协议,不需要STM32内部的外设资源支持,故端口是可以任意指定MPU605在SCL和SDA自带了两个上拉电阻,…...

销售/回收DSOS254A是德keysight MSOS254A混合信号示波器
Agilent DSOS254A、Keysight MSOS254A、 混合信号示波器,2.5 GHz,20 GSa/s,4 通道,16 数字通道。 Infiniium S 系列示波器 信号保真度方面树立新标杆 500 MHz 至 8 GHz 出色的信号完整性使您可以看到真实显示的信号࿱…...

RIDGID里奇金属管线检测仪故障定位仪维修SR-20KIT
里奇RIDGID管线定位仪/检测仪/探测仪维修SR-20 SR-24 SR-60 美国里奇SeekTech SR-20管线定位仪对于初次使用定位仪的用户或经验丰富的用户,都同样可以轻易上手使用SR-20。SR-20提供许多设置和参数,使得大多数复杂的定位工作变得很容易。此外,…...

NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉。 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了。 但是也别泰国担心,NodeJs的调试是很不方便!这是肯定的。 但是还好&…...

Java面试知识点(全)- Java并发-多线程JUC二-原子类/锁
Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 JUC原子类 什么是CAS CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...