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

news2024/10/1 19:28:43

文章目录

  • 摘要
  • 动机与贡献
  • 具体方法
    • 整体架构
    • 输入嵌入生成
    • 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)。我们联合应用每个块内的局部注意力和全局注意力来迭代地学习时空表示。为了进一步提高模型的判别能力,我们通过紧凑的损失正则化项对预测分布施加约束,以增强类内相关性并增加类间距离。实验结果和可视化结果表明,我们的方法学习的歧视性时空特征表示,并提高了分类边缘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

369B1860G0028 44A730240-G01 IC697ACC722B

369B1860G0028 44A730240-G01 IC697ACC722B 在NOA,一个名为MO(监控和优化)的独立领域与现有系统分开准备,数据直接从机器人、无人机和新传感器收集,例如腐蚀、声音和振动传感器。此外,现有系统中的数据通过OPC UA导入&#xff0c…

实现前后端分离开发:构建现代化Web应用

文章目录 什么是前后端分离开发?为什么要采用前后端分离开发?前后端分离的最佳实践1. 定义API2. 使用RESTful风格3. 选择适当的前端框架4. 选择合适的后端技术5. 数据交互格式6. 前端路由7. 自动化构建和部署8. 跨域问题 示例:前后端分离开发…

使用JavaScript编写的爬虫程序

这是一个使用JavaScript编写的爬虫程序,它使用了Elasticsearch和Nginx来收集和存储数据。在这个程序中,我们首先设置了代理信息,然后使用JavaScript编写了一个爬虫程序来收集数据。以下是每行代码和步骤的详细解释: // 定义代理信…

Tkinter创建菜单窗口

一、说明 本文专门记录如何添加Tkinter的菜单,包括,菜单如何生成,菜单如何布局,菜单如何绑定回调函数,并安排代码示例,凡期望做菜单界面的读者,可以全面参考。 二、创建菜单实现步骤 2.1 总体…

2023-11笔记

1.switch空指针异常 Exception in thread "main" java.lang.NullPointerException:Cannot invoke "String.hashCode()" because "<local2>" is nullat Study5.Test03.main(Test03.java:6)我们由此可以知道&#xff0c;switch语句部分情况下…

正点原子嵌入式linux驱动开发——Linux Regmap驱动

在前面学习I2C和SPI驱动的时候&#xff0c;针对I2C和SPI设备寄存器的操作都是通过相关的API函数进行操作的。这样Linux内核中就会充斥着大量的重复、冗余代码&#xff0c;但是这些本质上都是对寄存器的操作&#xff0c;所以为了方便内核开发人员统一访问I2C/SPI设备的时候&…

每日一题 2586. 统计范围内的元音字符串数(简单)

简单题&#xff0c;走流程 class Solution:def vowelStrings(self, words: List[str], left: int, right: int) -> int:ans 0for i in range(left, right 1):if words[i][0] in aeiou and words[i][-1] in aeiou:ans 1return ans

1300*B. Big Vova(最大公约数贪心)

Problem - 1407B - Codeforces 解析&#xff1a; 显然最大的数肯定放到第一个&#xff0c;然后对于之后每一个数&#xff0c;贪心考虑让其最大公约数最大即可。 时间复杂度log(n^2logn) #include<bits/stdc.h> using namespace std; #define int long long const int N…

qt多线程例子,不断输出数字

dialog.h #include "dialog.h" #include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog) {ui->setupUi(this); }Dialog::~Dialog() {delete ui; }// 启动线程按钮 void Dialog::on_startButton_clicked() {//conn…

springboot本地启动多个模块报错:Address already in use: JVM_Bind

目录 背景解决方法 背景 环境&#xff1a; jdk1.8 idea 2019.2.4idea本地启动多个模块联调时&#xff0c;提示报错&#xff1a; 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 9090; nested exception is: java.net.BindException: Addre…

vue实现商品列表,组件抽离

1.需求说明 my-tag 标签组件封装 ​ (1) 双击显示输入框&#xff0c;输入框获取焦点 ​ (2) 失去焦点&#xff0c;隐藏输入框 ​ (3) 回显标签信息 ​ (4) 内容修改&#xff0c;回车 → 修改标签信息 my-table 表格组件封装 ​ (1) 动态传递表格数据渲染 ​ (2) 表头支…

电表采集器有抗干扰的能力吗?

电表采集器作为一种数据采集和远程通讯设备&#xff0c;广泛应用于电力、能源、工业等领域。在这些环境中&#xff0c;电表采集器面临着各种各样的电磁干扰&#xff0c;如高频干扰、脉冲干扰、电磁辐射等。为了确保电表采集器的稳定运行和数据准确性&#xff0c;抗干扰能力成为…

极智AI | GPT-4 Turbo登场

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 GPT-4 Turbo登场。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 今天,OpenAI 的首届开发者大会揭幕 (真的像科…

python-28-日志模块Loguru的应用

参考为什么不推荐使用Python原生日志库&#xff1f; 参考loguru&#xff0c;一个神奇的 python 库 Loguru 是一个旨在为 Python 带来愉快的日志记录的库&#xff0c;它可以完全增强你的日志记录体验&#xff0c;并且非常易于使用。 对logging及Loguru进行使用对比。 1 Loguru的…

L4级自动驾驶前装量产车型来了,小马智行与丰田联合打造

11月5日&#xff0c;小马智行与丰田汽车联合发布的首款纯电自动驾驶出租车&#xff08;Robotaxi&#xff09;概念车在第六届进博会亮相&#xff0c;该车型基于广汽丰田生产的bZ4X纯电车辆平台打造&#xff0c;将搭载小马智行研发的第七代L4级自动驾驶乘用车软硬件系统。 今年8月…

实测Java批量导入百万级数据

JAVA通过ThreadPoolTaskExecutor批量插入百万级数据 文章目录 JAVA通过ThreadPoolTaskExecutor批量插入百万级数据一、前言二、实现步骤1、application.yml添加线程池配置信息2、业务类&#xff0c;创建多线程批量插入具体业务方法3、spring容器注入线程池bean对象4、测试 三、…

leetcode:13. 罗马数字转整数(python3解法)

难度&#xff1a;简单 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

C/S架构的医学影像PACS系统源码,应用于放射、超声、内窥镜、病理等影像科室

C/S架构的PACS系统&#xff0c;采用DICOM3.0国际标准设计&#xff0c;以大型关系型数据库作为数据和图像的存储管理工具&#xff0c;是集医学影像的采集、传输、存储、查询、诊断、报告、综合信息管理等于一体的综合应用系统。 系统主要进行病人信息和影像的获取、处理、存储、…

windows10录屏神器,轻松保存高光时刻

录制电脑屏幕成了人们日常生活中经常需要面对的任务&#xff0c;无论是为了制作教程、保存游戏精彩瞬间&#xff0c;还是为了录制在线会议&#xff0c;一个功能强大、简单易用的录屏软件成为人们的迫切需求。在Windows 10操作系统下&#xff0c;有多种录屏方法可供选择。本文将…

如何查看苹果手机电池健康情况?快速查询方法来了!

使用苹果手机的小伙伴们&#xff0c;你们是否关心自己手机的电池健康状况&#xff1f;想随时掌握电池的使用状态&#xff0c;却不知道在哪里查看&#xff1f;本文将为大家提供有关苹果手机电池健康的简单查询方法&#xff0c;让您能够随时随地轻松掌握手机电池的健康状况。 操作…