当前位置: 首页 > news >正文

论文阅读:LOGO-Former: Local-Global Spatio-Temporal Transformer for DFER(ICASSP2023)

文章目录

  • 摘要
  • 动机与贡献
  • 具体方法
    • 整体架构
    • 输入嵌入生成
    • LOGO-Former
      • 多头局部注意力
      • 多头全局注意力
    • 紧凑损失正则化
  • 实验
  • 思考
  • 总结

本篇论文 LOGO-Former: Local-Global Spatio-Temporal Transformer for Dynamic Facial Expression Recognition发表在ICASSP(声学顶会),代码暂未开源。

摘要

以前的动态面部表情识别(DFER)方法主要基于卷积神经网络(CNN),其局部操作忽略了视频中的长程依赖性。基于Transformer的DFER方法可以实现更好的性能,但会导致更高的FLOPs和计算成本。为了解决这些问题,局部-全局时空Transformer(LOGO-Former)被提出来捕获每个帧内的区别性特征,并在平衡复杂度的同时建模帧之间的上下文关系。基于面部肌肉局部运动和面部表情逐渐变化的先验知识,我们首先将空间注意力和时间注意力限制在一个局部窗口内,以捕获特征标记之间的局部交互。此外,我们执行的全局注意力,通过查询一个token的功能,从每个局部窗口迭代获得整个视频序列的长距离信息。此外,我们提出了紧凑的损失正则化项,以进一步鼓励学习的特征具有最小的类内距离和最大的类间距离。在两个野外动态面部表情数据集上的实验(即,DFEW和FERV 39 K)的结果表明,我们的方法提供了一种有效的方法来利用空间和时间的依赖性DFER。

动机与贡献

下面是几种不同时空自注意方案:

在这里插入图片描述
不同时空自我注意方案的可视化。为了更好地说明,我们用浅黄色表示query token,用玫瑰色表示key token,用浅蓝色表示非注意token。
(a)全局时空注意力: O ( T 2 S 2 ) O(T^2S^2) OT2S2
(b)仅空间注意力: O ( T S 2 ) O(TS^2) OTS2
(c)时空分割注意力 O ( T S 2 + T 2 S ) O(TS^2+T^2S) OTS2+T2S
(d)时空混合注意力: O ( T S 2 ) O(TS^2) OTS2
(e)(f)本文采用的局部和全局时空的注意力机制

不同的面部肌肉在局部面部区域内运动,并且面部表情在视频中的相邻帧内逐渐改变。我们的目标是利用视频中的时空信息,同时最大限度地减少tranformer的计算成本,以实现高效的动态面部表情识别。

  • 为了实现这一点,本文提出了局部-全局时空Transformer(LOGO-Former)用于捕获短期和长期依赖关系,同时降低transformer的计算成本。我们计算非重叠窗口内的自我注意力,以捕捉token之间的局部交互。
  • 这样的局部时空注意力无法捕捉全局信息。因此,利用全局时空注意力使query token关注窗口级的 key token,如上如(f)所示
  • 为了进一步提高模型的鉴别能力,我们提出了紧凑损失正则化项来减少类内距离和增加类间距离。定量结果和可视化结果表明,我们的方法在野外动态面部表情识别的有效性。

具体方法

整体架构

在这里插入图片描述
从视频中采样的人脸帧被CNN主干处理以获得帧级别的特征序列。LOGO-FORM通过联合计算空间关注度和时间关注度来获取区分特征标记。

输入嵌入生成

在这里插入图片描述

给定一个图像序列 X ∈ R F × H 0 × W 0 × 3 X ∈ R^{F× H _0 × W _0 ×3} XRF×H0×W0×3,其中 F F F个RGB人脸帧大小为 H 0 × W 0 H _0 × W _0 H0×W0,从视频中采样,我们利用CNN骨干提取帧级特征。标准CNN主干(ResNet 18)用于为每帧生成大小为 H × W H ×W H×W的高级特征图。片段特征 f 0 ∈ R F × H × W × C f_0 ∈ R^{F×H×W×C} f0RF×H×W×C是通过连接所有帧级特征图来获得的。

在这里插入图片描述

随后,我们将片段特征 f 0 f_0 f0的空间维度平坦化,并通过1 × 1卷积将它们投影,从而产生新的特征序列 f 1 ∈ R F × ( H × W ) × d f1 ∈ R^{F×(H×W)×d} f1RF×H×W×d

注意, f 1 f_1 f1的时间顺序与输入 X X X的时间顺序一致。为了补充特征序列的时空位置信息,我们将可学习的位置嵌入与 f 1 f_1 f1结合起来。我们还在时间维度上将分类标记 [ C L S ] [CLS] [CLS]前置到序列中,该标记对序列的全局状态进行建模,并进一步用于识别。类似地,还添加了时间位置嵌入。最后,获得时空Transformer的输入嵌入X0。

LOGO-Former

LOGO-Former由 N N N个分块组成,每个分块由多头局部注意力和多头全局注意力组成,迭代学习上下文和区分性时空特征表示。

多头局部注意力

在这里插入图片描述

在这里插入图片描述

F × H × W F ×H ×W F×H×W的输入特征图(为了简单起见,我们在这里省略了 [ C L S ] [CLS] [CLS]标记)作为输入,我们将其均匀地分成几个大小为 f × h w f × hw f×hw的窗口,从而得到 F f × H W h w \frac{F}{ f} × \frac{HW} {hw} fF×hwHW窗口,如上图所示。我们在一个窗口 ( i , j ) (i,j) ij内将这些token平坦化,可以表示为 X i , j ∈ R ( f h w ) × d X_{i,j} ∈ R^{(fhw)×d} XijRfhw×d。第 k k k个块的多头局部注意力公式化为:
在这里插入图片描述
时间复杂度如下:
在这里插入图片描述

多头全局注意力

在这里插入图片描述

在这里插入图片描述

我们应用卷积运算来分离和合并特征图,划分为非重叠区域,其中每个区域是特征图的时空抽象。每个区域用于将全局上下文信息传递给每个查询标记。多头全局注意力被公式化为:
在这里插入图片描述
不失一般性,假设我们将特征映射 Y k Y_k Yk池化成 F W H f w h \frac{FWH} {fwh} fwhFWH个token,我们的多头全局注意力的复杂度为:
在这里插入图片描述
因此,我们的LOGOFormer的整个注意力复杂度可以计算为:
在这里插入图片描述
最后,我们将单个全连接(FC)层应用于最后一个块的分类token X ( 0 , 0 ) N X^N_{(0,0)} X00N
在这里插入图片描述

紧凑损失正则化

进阶详解KL散度:https://zhuanlan.zhihu.com/p/372835186

学习判别性的时空特征在野外DFER要求损失函数具有最大化不同类别之间的特征距离的能力。为了实现这一点,我们建议使用对称Kullback-Leibler(KL)散度 D ( u ) ∣ ∣ p ) + D ( p ∣ ∣ u ) {D(u)||p)+ D(p|| u)} Du∣∣p+Dp∣∣u来测量分布 u u u p p p之间的差异,并对预测分布 p p p施加约束,其中 u u u C − 1 C − 1 C1上的均匀分布, p p p是预测分布,但不包括相应目标 y y y的概率。 u 由 u由 usoftmax函数计算:
在这里插入图片描述
在这里插入图片描述

实验

我们使用两个野外DFER数据集(即,DFEW和FERV 39 K)来评估我们提出的方法。对于DFEW和FERV 39 K,经处理的面部区域图像被正式检测、对齐并公开提供。我们的模型在DFEW和FERV 39 K上使用两个NVIDIA GTX 1080Ti GPU卡进行了100次训练,批量为32。初始学习率为0.001的SGD优化器和锐度感知最小化用于优化我们提出的模型。我们使用MSCeleb-1 M 上预训练的ResNet 18作为CNN骨干。时空Transformer层的数量N和头的数量分别经验地分配为4和8。未加权平均召回率(UAR)和加权平均召回率(WAR)作为评价指标。
在这里插入图片描述
在这里插入图片描述
从上表中可以发现加入正则项之后对模型的性能有显著的提升,我们提出的新方法在降低计算量的情况下,还能有较好的模型性能。
在这里插入图片描述
通过可视化也可以发现加入紧凑正则项之后使得学习到的特征具有更好的聚合效果,在不同表情之间表现出更清晰的类间边界。

思考

本篇文章设计的思路与MAE-DFER: Efficient Masked Autoencoder for Self-supervised Dynamic Facial Expression Recognition有一定的相似之处。
在MAE-DFER中LGI - Former是组成编码器的核心模块,LGI - Former的核心思想是在局部区域引入一组具有代表性的小标记。一方面,这些标记负责汇总局部区域的关键信息。另一方面,它们允许对不同区域之间的长距离依赖关系进行建模,并实现有效的局部-全局信息交换。
在这里插入图片描述
本文设计的 LOGO-Former和上文的LGI - Former有异曲同工之妙, LOGO-Former的多头局部注意力和LGI - Former中的Local Intra-Regin Self-Attention基本完全相同。

LOGO-Former的多头全局注意力模块应用卷积操作来分离和池化特征图,每个区域用于向每个query key传递全局上下文信息。这一操作对应着LGI - Former中的global inter-region self-attention和local-global interaction。
在这里插入图片描述

在这里插入图片描述

总结

在本文中,我们提出了一个简单而有效的局部-全局Transformer(LOGO-Former)和紧凑的损失正则化项在野生动态面部表情识别(DFER)。我们联合应用每个块内的局部注意力和全局注意力来迭代地学习时空表示。为了进一步提高模型的判别能力,我们通过紧凑的损失正则化项对预测分布施加约束,以增强类内相关性并增加类间距离。实验结果和可视化结果表明,我们的方法学习的歧视性时空特征表示,并提高了分类边缘。

相关文章:

论文阅读:LOGO-Former: Local-Global Spatio-Temporal Transformer for DFER(ICASSP2023)

文章目录 摘要动机与贡献具体方法整体架构输入嵌入生成LOGO-Former多头局部注意力多头全局注意力 紧凑损失正则化 实验思考总结 本篇论文 LOGO-Former: Local-Global Spatio-Temporal Transformer for Dynamic Facial Expression Recognition发表在ICASSP(声学顶会…...

【GO】项目import第三方的依赖包

目录 一、导入第三方包 1.执行命令 2.查看go环境变量参数 3.查看go.mod文件的变化情况 二、程序里如何import 1. import依赖包 2. 程序编写 本次学习go如果依赖第三方的包,并根据第三方的包提供的接口进行编程,这里需要使用go get命令。下面将go…...

【Linux基础IO篇】用户缓冲区、文件系统、以及软硬链接

【Linux基础IO篇】用户缓冲区、文件系统、以及软硬链接 目录 【Linux基础IO篇】用户缓冲区、文件系统、以及软硬链接深入理解用户缓冲区缓冲区刷新问题缓冲区存在的意义 File模拟实现C语言中文件标准库 文件系统认识磁盘对目录的理解 软硬链接软硬链接的删除文件的三个时间 作者…...

电脑软件:推荐一款电脑多屏幕管理工具DisplayFusion

下载https://download.csdn.net/download/mo3408/88514558 一、软件简介 DisplayFusion是一款多屏幕管理工具,它可以让用户更轻松地管理连接到同一台计算机上的多个显示器。 二、软件功能 2.1 多个任务栏 通过在每个显示器上显示任务栏,让您的窗口管理更…...

免费好用的网页采集工具软件推荐

在众多各具特色的采集器软件中,真正好用的采集器软件有哪些? 自己一个个去查找和尝试无疑会耗费大量的时间和精力。 因此,在深入体验大多数采集器后,给大家推荐几款优秀且好用的免费网页采集器软件。 本文将对这几款采集器进行…...

6.ELK之Elasticsearch嵌套(Nested)类型

0、前言 在Elasticsearch实际应用中经常会遇到嵌套文档的情况,而且会有“对象数组彼此独立地进行索引和查询的诉求”。在ES中这种嵌套文档称为父子文档,父子文档“彼此独立地进行查询”至少有以下两种方式: 1)父子文档。在ES的5.…...

RefConv: 重参数化的重新聚焦卷积(论文翻译)

文章目录 摘要1、简介2、相关研究2.1、用于更好性能的架构设计2.2、结构重参数化2.3、权重重参数化方法 3、重参数化的重聚焦卷积3.1、深度RefConv3.2、普通的RefConv3.3、重聚焦学习 4、实验4.1、在ImageNet上的性能评估4.2、与其他重参数化方法的比较4.3、目标检测和语义分割…...

指令重排序

指令重排序是现代处理器在执行指令时的一种优化技术,其目的是为了提高处理器执行指令的效率。这种优化手段会对指令进行重新排序,以提高并行度和性能。 为何会发生指令重排序: 处理器性能优化: 为了更好地利用现代处理器的流水线、…...

【Head First 设计模式】-- 观察者模式

背景 客户有一个WeatherData对象,负责追踪温度、湿度和气压等数据。现在客户给我们提了个需求,让我们利用WeatherData对象取得数据,并更新三个布告板:目前状况、气象统计和天气预报。 WeatherData对象提供了4个接口: …...

JavaWeb篇_01——JavaEE简介【面试常问】

JavaEE简介 什么是JavaEE JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台,它是一组Specification。最早由Sun公司定制并发布,后由Oracle负责维护。在JavaEE平台规范了在开发企业级web应用…...

QtC++与QRadioButton详解

介绍 QRadioButton 是 Qt 中的一个重要部件,用于创建单选按钮,它有以下几个主要作用和特点: 单选功能: QRadioButton 用于创建单选按钮,用户可以从一组互斥的选项中选择一个。这在用户界面设计中常用于需要用户从多个…...

移远EC600U-CN开发板 day01

1.官方文档快速上手,安装驱动,下载QPYcom QuecPython 快速入门 - QuecPython (quectel.com)https://python.quectel.com/doc/Getting_started/zh/index.html 注意: (1)打开开发板步骤 成功打开之后就可以连接开发板…...

【C/C++】什么是POD(Plain Old Data)类型

2023年11月6日,周一下午 目录 POD类型的定义标量类型POD类型的特点POD类型的例子整数类型:C 风格的结构体:数组:C 风格的字符串:std::array:使用 memcpy 对 POD 类型进行复制把POD类型存储到文件中,并从文…...

注册虾皮买家号需要哪些资料?

注册虾皮买家号其实是很简单的,使用相应国家的手机号及对应的环境就可以注册了的,如果想要账号更方便使用,也可以绑定邮箱进行认证。 而如果想要使用shopee买家通系统进行自动化的注册,那么对于资料就有一定的要求了。 1、手机号…...

小腿筋膜炎怎么治疗最有效

小腿筋膜炎症状主要有疼痛、肌肉紧张、活动受限等。 1.疼痛:小腿筋膜炎主要会导致炎症性疼痛,没有固定的压痛点,通常以踝关节、膝关节活动时疼痛为主。疼痛呈持续性,或者反复发作,尤其是在晨起或者天气变化、劳累、受…...

After Effects 2024 v24.0.2(AE2024)

After Effects 2024是视频特效和动态图形设计软件。以下是After Effects 2024的主要功能和特点: 支持创建各种令人惊叹的视觉效果,例如粒子系统、合成特效、绿屏抠像等。支持动画制作,包括关键帧动画、形状动画、运动跟踪等工具,…...

自己实现一个自动检测网卡状态,并设置ip地址

阅读本文前,请先学习下面几篇文章 《搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?》 《简简单单教你如何用C语言列举当前所有网口!》 《Linux下C语言操作网卡的几个代码实例!特别实用》 《安卓如何设置…...

【Linux】进程程序替换

文章目录 替换原理站在进程的角度站在程序的角度初体验及理解原理 替换函数函数解释命名理解exec系列函数与main函数之间的关系在一个程序中调用我们自己写的程序 替换原理 创建子进程的目的是什么? ->想让子进程执行父进程代码的一部分 执行父进程对应的磁盘代码…...

项目构建工具maven的基本配置+idea 中配置 maven

👑 博主简介:知名开发工程师 👣 出没地点:北京 💊 2023年目标:成为一个大佬 ——————————————————————————————————————————— 版权声明:本文为原创文…...

【解密ChatGPT】:从过去到未来,揭示其发展与变革

🎊专栏【ChatGPT】 🌺每日一句:天行健,君子以自强不息,地势坤,君子以厚德载物 ⭐欢迎并且感谢大家指出我的问题 文章目录 一、ChatGPT的发展历程 二、ChatGPT的技术原理 三、ChatGPT的应用场景 四、ChatGPT的未来趋势 五、总结 引言:随着…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...

计算机系统结构复习-名词解释2

1.定向&#xff1a;在某条指令产生计算结果之前&#xff0c;其他指令并不真正立即需要该计算结果&#xff0c;如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方&#xff0c;那么就可以避免停顿。 2.多级存储层次&#xff1a;由若干个采用不同实现技术的存储…...