Multi-modal Information Fusion for Action Unit Detection in the Wild

标题:多模态信息融合用于野外动作单元检测

源文链接:https://openaccess.thecvf.com/content/CVPR2023W/ABAW/papers/Deng_Multi-Modal_Information_Fusion_for_Action_Unit_Detection_in_the_Wild_CVPRW_2023_paper.pdficon-default.png?t=N7T8https://openaccess.thecvf.com/content/CVPR2023W/ABAW/papers/Deng_Multi-Modal_Information_Fusion_for_Action_Unit_Detection_in_the_Wild_CVPRW_2023_paper.pdf

 发表:CVPR-2023

摘要

动作单元(AU)检测是情感计算领域的一个重要研究分支,它帮助我们更好地理解人类的情感意图,并能以更自然的方式响应他们的需求和愿望。在本文中,我们介绍了我们在第五届“在野外的”情感行为分析(ABAW)竞赛中的最新技术进展,包括通过标记进行的数据平衡、通过训练于面部数据库的模型提取视觉特征以及通过深度网络和传统方法从音频中提取特征、提出模型结构以将多模态信息映射到统一的多模态向量空间中以及融合来自多个模型的结果。这些方法在Aff-Wild2官方验证数据集上表现出有效性。在第五届ABAW竞赛的测试数据集中,最终的F1分数达到了54.22%,比第三届ABAW竞赛的最佳结果高出了4.33%。

1.引言

2023年1月大规模语言模型(LLM)的爆发引起了更多人对人工智能的关注,并激发了无数的研究者。作为人工智能和人机交互的重要组成部分,随着心理学研究的深入和深度学习的迅速发展,情感计算近年来取得了显著的进展。然而,仍有许多技术需要进一步研究。动作单元(AU)检测,作为一种情感计算的技术,有助于理解人类的情感需求和意图,在人机交互、医疗保健、市场营销和用户研究中扮演着重要角色。

第五届ABAW竞赛是继2022年ECCV、2022年IEEE CVPR、2021年ICCV、2020年IEEE FG以及2017年CVPR会议举办的比赛的延续,致力于自动情感分析。它激励全球的研究人员在Aff-Wild2数据库上实施他们最新的技术,该数据库由多位专家注释。这为我们提供了丰富且可靠的数据资源,使我们的实验结果更具说服力。我们正在研究过去几年ABAW竞赛获胜者使用的方法,并发现多模态融合表现良好。这启发我们更深入地探索多模态融合方法。

2.相关工作

多模态训练具有利用其他模态来提高模型性能的显著优势。然而,这也增加了输入参数的数量和对GPU的需求。我们改进了模型训练方法,以实现低配置GPU下的高精度输出。

我们的方法分为两个步骤来完成模型训练。首先,我们利用与面部相关的预训练模型来抽取视觉和音频特征。然后,我们将这些特征结合起来作为输入来训练模型。这样,我们可以在一定程度上减少GPU内存使用的同时,实现更长序列的模型训练。

第2节描述了我们为ABAW5竞赛中的AU任务设计的多模态信息融合模型方法。首先,为了平衡训练数据中标签的分布,我们在官方数据集上通过面部关键点检测覆盖图像的上部或下部,并将其扩展到训练集中。接着,我们使用不同深度的网络来抽取视觉和音频特征。最后,我们提出了CrossAttention加上Transformer、Dual Transformer以及TCN加上Transformer的模型结构来训练多模态特征

第3节通过在官方验证集上进行对比实验,证明了这些方法的有效性。

3.方法

一段视频通常包含两个组成部分:视觉信息和音频信息。通常,图像帧用于处理视觉信息,而音频信号则被转换为数字表示以供模型训练使用。在我们的流程中,我们从预训练的面部模型中提取的n维图像特征中导出视觉信息,并使用深度神经网络和传统方法的组合来处理音频信息,从中抽取n维音频特征。我们的模型分别使用这两种类型的特征作为视觉和音频部分的输入,并在AU任务的训练过程中保持统一的序列长度。如果视频的长度短于序列长度,我们会复制最后一帧。此外,对于没有面部的帧,我们使用最近的有效帧来代表它们。

训练特征所需的时间和GPU内存要比直接训练多模态图像-音频数据少。因此,我们使用各种模型结构来训练AU特征,包括单模型Transformer、TCN、GRU、BiGRU、LSTM、BiLSTM以及我们提出的混合模型。图1中展示的三种混合模型结构是在第五届ABAW竞赛期间我们的实验中表现最佳的模型。

3.1 数据平衡

AU数据集由于多标签分类中数据分布的不平衡而带来了挑战。不平衡的数据会阻碍模型学习到更好的表示。为了解决这个问题,我们提出了一种新颖的遮罩方法,利用面部关键点检测来遮盖具有较少标签的图像的上部和下部面部区域。这些经过遮罩的图像及其标签随后被扩展到了训练集中。被黑色边框覆盖的面部动作单元标签被设置为0,而未被覆盖的则保留其原始标签。

这种方法仅应用于那些数据量低于平均值的AU(AU1, AU2, AU4, AU5, AU12, AU15, AU23, AU24, AU26),以缓解数据不平衡的问题。相反,数据量高于平均值的AU(AU6, AU7, AU10, AU25)则不需要额外的遮罩数据。

3.2 特征提取

3.2.1 视觉特征

不同的网络可以提取出对模型训练有不同影响的特征。在第五届ABAW竞赛中,我们使用公共和私有数据集预训练了多种模型,从中提取了用于Aff-Wild2数据集的视觉特征。

iResNet100 iResNet100是一种深度学习架构,结合了残差网络和Inception网络的优点,使用100个卷积层、Inception模块和残差连接。它相比传统的卷积神经网络有几大优势,包括多尺度特征提取和解决深层网络中的梯度消失问题。iResNet100已经在大规模数据集上进行了预训练,并在特征提取和迁移学习方面被证明非常有效。我们称从Glint360K和一个私有的商业FAU数据库预训练的iResNet100中提取的Aff-Wild2数据集的视觉特征为ires100。

MobileNet MobileNet是一种卷积神经网络,使用深度可分离卷积来减小网络的大小和计算量,同时保持准确性。深度可分离卷积涉及两种操作:深度卷积和逐点卷积。深度卷积独立应用于每个输入通道,逐点卷积则结合深度卷积的输出。这种设计允许MobileNet在保持与传统卷积神经网络相当的准确性的前提下,显著减少网络参数。我们称从一个私有的商业VA数据库预训练的MobileNet中提取的Aff-Wild2数据集的视觉特征为mobilenet。

MAE MAE是一种深度网络结构,通过预测每个遮罩块的像素值来重建输入图像。MAE预训练效率高、简单,不需要任何特殊的稀疏操作。我们称从DFEW、Emotionet、FERV39k和一个私有的商业VA数据库预训练的MAE中提取的Aff-Wild2数据集的视觉特征为mae。

DenseNet 传统的卷积神经网络只接收前一层的输出作为输入,但DenseNet设计为接收所有前层的输入。这种密集连接的设计使得DenseNet能够更好地利用前层的特性,用更少的层数达到更好的性能。DenseNet中的每一层都由两个子层组成:主子层和紧凑连接子层。主子层包括卷积层、批归一化层和激活函数层,用于特征提取。紧凑连接子层将所有前层的输出合并,并用作当前层的输入。这种紧凑连接设计允许DenseNet更好地传递梯度,缓解了梯度消失问题,提高了训练效率。我们称从FER+和AffectNet数据库预训练的DenseNet中提取的Aff-Wild2数据集的视觉特征为densenet。

VIT VIT模型首先将输入图像分割成固定大小的块,这些块被拉平成一维向量并通过一组Transformer编码器。每个编码器包含多个自注意力层和前馈神经网络层,用于特征提取和编码。自注意力机制允许模型关注图像的相关区域并捕捉更多的视觉信息。VIT还使用了可学习的位置嵌入向量,代表每个图像块的位置信息,这些向量与图像的特征向量拼接。这种嵌入方法使VIT能够捕获空间信息,并在图像分类任务中实现高性能。我们称从一个私有的商业AU数据库预训练的VIT中提取的Aff-Wild2数据集的视觉特征为vit。

3.2.2 音频特征

获取音频特征有两种方式;一种是通过深度网络提取特征,包括使用Wav2vec 2.0 base提取的特征,称为wav2vec,使用HuBERT提取的特征称为hubert,使用ECAPA-TDNN提取的特征称为ecapatdnn,另一种是使用传统方法Fbank提取的特征,称为fbank。

Wav2vec 2.0 base Wav2vec 2.0 base将语音信号分割成固定长度的小块,并将每一块转换成高维向量表示。这里我们使用由Mel滤波器和可学习线性变换组成的Mel谱特征,将Mel谱特征映射到更高维度的表示空间。使用大量的无标签语音数据,在自监督学习框架下训练一个自编码器模型,目标是最小化原始语音信号和重构语音信号之间的距离。使用掩码卷积机制在编码器的输入和输出之间引入一些随机掩码,以增强模型的鲁棒性。最后,通过微调和适应性预测进行监督学习。

HuBERT HuBERT是一个基于混合输入表示的语音识别模型。它采用了两种不同的输入模式,双耳输入和单耳输入,并结合了卷积神经网络和Transformer网络进行特征提取和编码。具体来说,HuBERT使用了一组跨通道注意力机制,对双耳和单耳输入的特征进行加权融合,进一步提升了模型的性能。

ECAPA-TDNN ECAPA-TDNN在多个方面增强了Time Delay Neural Network(TDNN)的架构。它将初始帧层重构为带有有效跳过连接的一维Res2Net模块。它在神经网络的每一层使用不同复杂度的互补信息来聚合和传播特征。它通过通道依赖帧注意力改进了统计池化模块。这使网络能够在每次通道统计估计时关注不同的帧子集。

Fbank Fbank是一种传统的语音特征提取方法,它将语音信号分割成一系列短时帧,然后对每一帧进行一系列滤波器卷积。最后,每个滤波器的输出取对数并拼接在一起形成固定维度的特征向量。Fbank的优势在于它可以在保留足够语音信息的同时压缩语音信号,从而降低了特征向量的维度,提高了语音识别的效率。

3.3 架构

CrossAttention+Transformer 多头注意力机制使模型能够在不同位置同时关注来自不同表示子空间的信息。为了更有效地整合视觉和音频的多模态特征,我们在Transformer之前添加了CrossAttention,使用跨模态注意力机制处理特征间的相互作用,以改进视觉和音频特征的融合。模型结构图如图1所示,多头注意力的公式如下:

Dual Transformer 视觉和音频特征相比同一模态的特征更加多样化。为了让模型区分这一点,我们使用了双Transformer结构分别处理音频和视觉特征。模型结构图同样在图1中给出。

TCN+Transformer 利用TCN在序列数据中的平移不变性和局部特征提取能力,以及Transformer在序列中的全局依赖和上下文建模能力,我们采用TCN和Transformer的联合模型框架,以提升模型的性能和鲁棒性

损失函数 AU任务是一个不平衡的多标签任务。在第五届ABAW竞赛中,我们选择了二元交叉熵(BCE)损失,创建了一个衡量目标和输入概率之间的二元交叉熵的标准,其公式如下:

4. 实验

4.1 数据库

为了获得更好的视觉特征,我们在开始从Aff-Wild2的AU数据库中抽取视觉特征之前,先在Glint360K、DFEW、Emotionet、FERV39k、FER+、AffectNet、私有的商业AU和私有的商业VA数据库上对我们的模型进行了预训练。

4.2 训练

在我们针对AU任务的训练中,我们发现更长的图像序列能带来更好的模型性能。然而,我们的训练是在2块NVIDIA GeForce RTX 3080 Ti GPU上进行的。由于GPU内存有限,无法直接输入长图像序列。因此,我们首先抽取特征以获得视觉和音频特征,并将它们组合作为模型训练的输入,其中序列长度设定为128。

对于特征训练,优化器选择Adam,学习率为0.0001,学习率调度器使用StepLR,每20个周期将学习率乘以0.1进行衰减。总的训练周期数为50。

4.3 消融研究

数据平衡 在表1中,展示了在相同特征组合和网络下,数据平衡前后验证集性能的比较。

特征消融 表2显示了单一视觉特征Transformer的训练实验,验证了特征的有效性。表3展示了ires100特征与不同音频特征的融合训练实验。不同多模态特征组合的训练实验及其结果见表4。

模型消融 单模型网络的训练实验使用ires100和ecapatdnn的组合特征,在验证集上比较了Transformer、TCN、GRU、BIGRU、LSTM和BiLSTM的性能,结果见表5。之后,我们选择了表现最佳的Transformer和TCN设计了三种混合模型结构进行训练,评估了它们在验证集上的效果,结果也在表5中。

4.4 模型集成

模型融合在某种程度上可以避免模型过拟合,通过利用不同模型结构之间的差异增加模型的鲁棒性并提高模型性能。在尝试了不同的特征组合和模型框架后,我们选择了在AU验证集上表现优异的模型进行结果融合,融合后的结果见表6。

4.5 K折交叉验证

为了增加模型的训练数据以提升模型性能,我们使用了K折方法将数据集划分为7部分,其中训练集被分为5部分,验证集被分为2部分。每一折的验证结果见表7。

4.6 测试性能

在这个小节中,我们描述了我们在第五届ABAW竞赛中的最终提交策略。我们总共提交了五次结果,第一次使用在单一AU标签上表现最好的12个模型对模型结果进行集成,第二次使用在总体AU上表现最好的6个模型进行集成。第三次是通过K折方法融合七个模型,第四次是通过train val mix方法选择六个模型进行集成。第五次是从train val mix方法和K折方法中的13个模型中选取在数据集上表现最好的6个模型进行模型集成。

最终,在第五届ABAW竞赛的测试集上,我们的K折方法实现了54.22%的F1分数,排名第二。相比于第三届ABAW竞赛中的最佳F1分数,这是一个4.33%的提升。与其他队伍的成绩对比见表9。

5. 结论

本文介绍了我们在第五届ABAW竞赛中对面部动作单元(AU)识别任务的训练方法。通过对Aff-Wild2的AU数据集进行实验,我们的数据平衡方法让那些数据量较小的AU表现得更好,而从不同方式提取的多模态特征的联合训练能够提升模型的性能,所提出的混合模型结构相较于单一网络更加有效。在此过程中,我们也学习了许多训练技巧和模型结构方法,这些都是从前人在情感计算领域做出的贡献中学到的。我们希望这篇论文能够激发更多这个领域的研究者们。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS开发】Tabs使用封装

背景 在写Tabs时,会使用很多个TabContent来实现不同页面的展示内容,但是如果TabContent数量很多时,会导致Tabs代码量大而且很臃肿,因此想着尝试去封装Tabs的使用,可以让界面整洁和对内容界面的解耦。 主要依托于wrap…

数据驱动下的私域运营战略布局

一、以用户为中心的组织重构或整合 发现,市场上大部分做的非常成功的私域项目,都是由CEO推动的、基于该战略的组织重构去驱动的。 我们也看到,在很多公司,私域运营是由品牌部门、CRM部门和Trade Marketing部门合作一起运营的。 …

SpringCloud教程 | 第十篇: 读取Nacos的配置

1、引入依赖 <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-config-spring-boot-starter</artifactId><version>0.2.7</version></dependency> 2、在启动类加上 NacosPropertySource(dataId"nac…

芯课堂 | 基于ugui上位机工程怎么使用串口烧录素材

1、查看程序初始化串口引脚和波特率 串口引脚是PE7和PE5&#xff0c;默认初始化波特率是115200。可以使用串口模块连接串口引脚&#xff0c;如果用我们的开发板&#xff0c;板载有ch340串口模块&#xff0c;需要用杜邦线把串口模块连接串口引脚&#xff0c;具体可以查看原理图…

stm32学习:(寄存器1)控制寄存器来让led亮

开启时钟&#xff0c;先查找到开启时钟的寄存器&#xff0c;然后通过该寄存器操作时钟的开启或关闭&#xff0c;要打开的是GPIOA的时钟 在芯片手册&#xff0c;找到RCC寄存器描述章节找到APB2外设时钟使能寄存器&#xff08;RCC_APB2ENR)&#xff0c;现在算RCC_APB2ENR这个寄存…

Monaco 使用 DocumentFormattingEditProvider

文档格式化&#xff0c;是 VSCode 比较常用的功能&#xff0c;在文档上点击右键选择格式化文档。效果如下&#xff1a; 在 Monaco 通过 registerDocumentFormattingEditProvider 方法注册处理函数&#xff0c;实现 provider 方法。 provider 方法返回格式化好的代码。 TextE…

【工具】2102- es-toolkit:一个现代 JavaScript 工具包,体积更小,内置 TypeScript 支持...

介绍 es-toolkit 是一款先进且具备高性能的现代化 JavaScript 实用工具库&#xff0c;其拥有较小的捆绑包规模以及强大的类型注解&#xff0c;同时还提供了一系列非常不错的函数&#xff0c;适合日常使用。 相较于 lodash 等替代方案&#xff0c;es-toolkit 所提供的包体积显著…

C++相关概念和易错语法(21)(虚函数、协变、析构函数的重写)

多态的核心是虚函数&#xff0c;本文从虚函数出发&#xff0c;根据原理慢慢推进得到结论&#xff0c;进而理解多态 1.虚函数 先看一下下面的代码&#xff0c;想想什么导致了这个结果 #include <iostream> using namespace std;class A { public:virtual void test(){co…

原来,BI数据分析也是有模板的

在当今数据驱动的时代&#xff0c;商业智能&#xff08;BI&#xff09;数据分析已经成为企业决策的重要工具。然而&#xff0c;很多人可能并不了解&#xff0c;BI数据分析并非从零开始&#xff0c;而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

Springboot + JWT 的 Token 登录验证

目录 项目结构 一、 引入依赖 二、自定义Auth认证注解 三、 编写登录拦截器 四、定义跨域拦截器 五、 定义全局异常处理器 六、定义工具类 1. 统一错误状态码 2.统一响应类 3.Token工具类 七、 编写实体类 八、 定义控制器 1.定义登录控制器类 2 定义报错处理器 …

量化投资基础(二)之CAPM模型

点赞、关注&#xff0c;养成良好习惯 Life is short, U need Python 量化投资基础系列&#xff0c;不断更新中 资本资产定价模型&#xff08;Capital Asset Pricing Model,CAPM&#xff09;是由美国经济学家 威廉夏普&#xff08;William Sharpe&#xff09;于20世纪60年代基于…

小型数控车床对现代制造业的影响

小型数控车床作为现代制造业的重要生产工具&#xff0c;集成了计算机控制、精密机械、电子技术和自动化技术&#xff0c;为各种复杂零件的加工&#xff0c;在生产效率和精度上带来了显著提升&#xff0c;它是制造业中不可或缺的基础装备&#xff0c;在金属切削加工领域发挥着关…

数据库的管理

目录 远程连接的方式 修改数据库uuid流程 数据库的概念 关系型数据库 非关系型数据库 关系型数据和非关系型数据库优缺点 mysql的数据类型 数据库的管理 sql中的名词 sql语言的分类 1.DDL 创建库和表的语句 create 删除库 drop databases 2.DML: 插入数据 ins…

使用APEXSQL LOG解析sql server事务日志,进行审计与数据恢复

一 下载 https://download.csdn.net/download/sunke861/11449739 二 使用 解压安装包后&#xff0c;点击&#xff1a;ApexSQLLog.exe 2.1 连接数据库 连接要审计的数据库&#xff1a; 假如报错&#xff1a; 则点击ok关闭该窗口&#xff0c;然后点击左上方的New按钮&#xf…

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址&#xff1a;https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字&#xff0c;项目路径&#xff0c;选择maven,点击下面的创建 运行项目 …

数据库管理-第220期 Oracle的高可用-03(20240715)

数据库管理220期 2024-07-15 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09;1 AC/TAC2 配置Service3 用户权限4 端口开放总结 数据库管理-第220期 Oracle的高可用-03&#xff08;20240715&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文…

半导体超纯水(UPW)全面监控检测项目及液体粒子计数器应用

超纯水 (UPW) 是经过高度纯化的水&#xff0c;去除了所有矿物质、颗粒、细菌、微生物和溶解的气体。在芯片厂里&#xff0c;它也经常会被混称为 DI Water&#xff08;去离子水&#xff09;&#xff0c;但国内通常把去离子水与超纯水分的比较开&#xff0c;其实去离子水是包含了…

智能可视采耳棒耳勺安全吗?六大选购技巧排忧解惑!

耳垢作为外耳道内腺的分泌物&#xff0c;如果不及时清理&#xff0c;可能会造成耳道的栓塞&#xff0c;进而引致耳痛、听力减弱、咳嗽等不适。而传统的耳勺由于其盲操作的特性&#xff0c;对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺&#xff0c;让我们…

【转盘案例-基本框架-创建按钮-按钮布局 Objective-C语言】

一、转盘案例的基本框架 1.我们先来看一下这个转盘啊 新建一个项目,Name:01-大转盘 把素材拷过来, 我们先把背景图片设置一下, 这张图片,可能会很大,跟你的屏幕呢,可能不成正比,这个时候呢,我们应该用拉伸的方式,去做,那么,这个控制器的背景,应该怎么去设置, 画…

逆向案例二十——请求头参数加密,某政府农机购置与应用补贴申请办理服务系统,sm3和sm4的加密

网址&#xff1a;农机购置与应用补贴申请办理服务系统 抓包分析&#xff0c;发现请求头参数有加密&#xff0c;表单有加密&#xff0c;返回的数据也是加密的。 请求头Source是固定的&#xff0c;其他的Sign,以及Timsestamp是加密的 请求载荷也是加密的 返回的数据也是加密的。…