Multi-Attention Transformer for Naturalistic Driving Action Recognition

标题:用于自然驾驶行为识别的多注意力Transformer

源文链接:https://openaccess.thecvf.com/content/CVPR2023W/AICity/papers/Dong_Multi-Attention_Transformer_for_Naturalistic_Driving_Action_Recognition_CVPRW_2023_paper.pdficon-default.png?t=N7T8https://openaccess.thecvf.com/content/CVPR2023W/AICity/papers/Dong_Multi-Attention_Transformer_for_Naturalistic_Driving_Action_Recognition_CVPRW_2023_paper.pdf

源码链接:https://github.com/wolfworld6/Aicity2023-Track3icon-default.png?t=N7T8https://github.com/wolfworld6/Aicity2023-Track3

发表:CVPR-2023

目录

摘要 

1. 简介

2. 方法

2.1 数据预处理

2.2 特征提取

2.3 时间动作定位

2.4 时间校正

3. 实验

3.1 训练

 3.1.1 特征提取模型

3.1.2 时间动作定位模型

3.2 结果

3.2.1 数据预处理结果

3.2.2 多视角模型结果

3.2.3 后视图模型结果

4. 结论

读后总结


摘要 

为了检测AI City Challenge Track 3中未剪辑视频中每个动作的开始时间和结束时间,本文提出了一种强大的网络架构——多注意力Transformer。之前的方法通过设置固定滑动窗口来提取特征,这意味着一个固定的时间间隔,并预测动作的开始和结束时间。我们认为,采用一系列固定窗口会破坏包含上下文信息的视频特征。因此,我们提出了一种多注意力Transformer模块,该模块结合了局部窗口注意力和全局注意力来解决这个问题。采用VideoMAE提供的特征的方法在验证集A2上取得了66.34的得分。然后使用时间校正模块将得分提高到67.23。最终,我们在AI City Challenge 2023的Track 3 A2数据集上获得了第三名。我们的代码可在以下地址获取:https://github.com/wolfworld6/Aicity2023-Track3。

1. 简介

分心驾驶可能非常危险。如今,自然驾驶研究和计算机视觉技术的发展为消除和减少分心驾驶行为的发生提供了急需的解决方案。自然驾驶研究对于研究驾驶员行为至关重要。它们可以帮助我们捕捉交通环境中的驾驶员行为,并分析驾驶员在驾驶时的分心情况,这是减少分心驾驶的关键之一。AI City Challenge的Track 3提供了车内驾驶员的视频片段,这些片段覆盖了三个不同的视角,并包含了16种不同类型的驾驶员动作。在这一赛道中,参与者需要实现一个算法来标注视频中的各种动作,并识别它们的开始和结束时间。

这个任务可以看作是视频理解领域的时间动作定位(TAL)任务。这项任务中的视频通常是较长的未编辑视频,但每个单独动作的时间间隔相对较短。在时间动作定位算法中,一个直观的想法是预定义一组不同时间长度的滑动窗口,并将它们在视频上滑动,如S-CNN [17]、TURN [6] 和 CBR [5]。然后,逐一判断每个滑动窗口内的时间间隔内的动作类别。受两阶段目标检测算法的启发,基于候选时间间隔的算法首先从视频中生成一些可能包含动作的候选时间间隔,然后判断每个候选时间间隔内的动作类别并校正间隔边界,如R-C3D [19] 和 TAL-Net [3]。此外,单阶段目标检测的理念也可以应用于时间动作定位,如SSAD [12] 和 GTAN [15]。目前,Transformer模型在计算机视觉的各个领域中表现出了卓越的性能,如目标检测 [2],[21],[10],[9],图像分类 [4],[13],和视频理解 [7],[14]。然而,当在长时间视频中使用Transformer模型时,视频帧数量的增加将导致计算量显著增加。Gedas Bertasius等人 [1] 进行了广泛的实验,发现了一种可分离的时空注意力方法,为Transformer模型在长视频理解中的应用打开了大门。其次,由于不同动作的持续时间可能差异很大,在Transformer模型中设置固定的窗口和块大小来提取适当的特征是具有挑战性的。Kai Han等人 [8] 提出了Transformer中的Transformer (TNT) 模型,该模型融合了外部块和内部块的特征,丰富了特征信息,提高了特征表达。

受上述观察的启发,我们提出了一个多注意力Transformer模块,该模块不仅用于建模不同剪辑窗口之间的关系,还用于建模全局窗口内的关系。此外,我们设计了一个时间校正模块,以融合和校正高置信度的预测结果,从而获得更准确的结果

2. 方法

2.1 数据预处理

我们在视频中检测人体并裁剪每一帧为了确保视频的稳定性,我们对视频的每一帧进行人体检测,并将检测区域最大的帧保存为整个视频的裁剪标准,以避免由于不同帧中的检测尺寸不同而导致的背景抖动。裁剪操作保留了与人体相关的信息,去除了冗余信息。一方面,它减少了其他噪音对动作特征的干扰。另一方面,它使模型更容易学习人体动作。

2.2 特征提取

我们在不同的视频表示模型和A1视频的三个视角上进行了多次实验。由于VideoMAE [18] 在表1中显示了更好的性能,因此在本文中采用它对后视和仪表盘视角进行特征提取。我们使用了在不同数据集上预训练的公共权重,并在A1数据上进行了微调。本文中使用的权重如表 2所示。我们分别对后视和仪表盘视角的视频进行了微调,并提取了A2数据集的特征。

2.3 时间动作定位

Actionformer [20] 结合了多尺度特征表示和局部自注意力,并使用轻量级解码器对每个时刻进行分类并估计相应的动作边界。如图1所示,在Actionformer的基础上,我们提出了一个多注意力Transformer,不仅用于建模不同剪辑窗口之间的关系,还用于建模全局窗口内的关系

图1. 我们模型架构的概述。我们的方法构建了一个基于Transformer的模型,用于动作分类并估计每个时刻的动作边界。在特征提取阶段,我们通过VideoMAE提取一系列视频剪辑特征,然后对这些特征进行嵌入。嵌入的特征将通过窗口注意力和全局注意力模块进行编码。在每个时间步,通过使用分类头预测动作类别和回归头预测动作时间边界,生成候选动作

多注意力:如图1右侧所示,在多尺度通道Transformer编码器中,从视频片段中提取的特征 f_1 输入到LayerNorm、多头注意力和窗口注意力模块,然后进行下采样以获得特征\tilde{f}_1。特征 \tilde{f}_1 重新输入编码器,经过LayerNorm、多头注意力、窗口注意力和下采样后,获得特征\tilde{f}_2。这种操作重复N-1次,以获得 \tilde{f}_2, \tilde{f}_3, ... \tilde{f}_N。之后, \tilde{f}_2, \tilde{f}_3, ... \tilde{f}_N输入到多尺度通道Transformer解码器进行解码,通过不同的全连接层回归动作的类别信息和相应的时间信息

在多头注意力模块中,所有输入特征之间进行特征融合;由于输入特征是按照视频时间段排列的,多头注意力模块将利用时间轴上的信息。在窗口注意力模块中,特征融合既针对相邻位置的视频片段特征,也针对所有特征进行,但不同之处在于,特征融合仅在通道维度上进行。

我们的模型有N层Transformer层,采用多尺度来捕捉不同时间尺度上的动作。每一层由局部多头自注意力(MSA)和全局多头自注意力(GMSA)组成。为了在不同的注意力下捕捉动作,这个操作被公式化为:

\sum_{i=1}^NMSA_i+GMSA_i,\qquad(1)

其中,\text{MSA}_i 指的是第i层的MSA,\text{GMSA}_i 指的是第i层的GMSA。一个标准的Transformer块结构包括多头自注意力(MSA)和多层感知器(MLP)。为了提高效率,我们采用了一个多注意力模块,该模块由剪辑窗口注意力模块和全局注意力模块组成,可以从不同区域的不同表示子空间中学习信息。具体来说,每个剪辑窗口通道的嵌入进行平均,然后通过头对头Transformer获得相同数量的注意力值。注意力值将相应地乘或加在通道上。该模块通过维度级别的注意力实现特征增强,仅增加少量参数

2.4 时间校正

时间动作定位模型的输出包含大量低分数的预测结果,这些结果在时间上有大量重叠的区域。评分标准要求每个正确的结果尽可能只匹配一个预测,并且该预测的时间范围与正确的结果差异尽量小。这意味着需要过滤大量的结果,只保留置信度高的结果。因此,我们设计了时间校正模块,以融合和校正置信度高的预测结果,并获得时间更准确的最终结果

时间校正操作包括三个主要步骤,分别是:

1. 对于每个视频ID的所有预测结果,仅保留具有相同标签结果中得分最高的一个,丢弃其他项目。
2. 分别对几个不同模型执行步骤1,并拼接得到的结果;

3. 对于步骤2中获得的结果,根据时间交集并集(tIoU)融合相同标签和相同视频ID的结果;具体的融合操作包括:

(1)移除所有时间长度小于1秒的结果;移除所有时间长度大于30秒的结果;

(2)对于具有相同视频ID和相同标签的所有结果,将结果分成不同的集合,使得每个集合中所有时间区域的tIoU大于集合阈值;

(3)移除长度为1的集合;

(4)对步骤(3)中获得的所有集合,计算每个集合中所有时间点的平均值;由于每个集合中的所有结果具有相同的视频ID和相同的标签,将集合中所有开始时间的平均值计算为该视频ID和该标签的开始时间将集合中所有结束时间的平均值计算为该视频ID和该标签的结束时间。第i个视频ID和第j个标签的动作的开始时间和结束时间可以通过以下公式计算:
\begin{aligned} t{s_{i}}^{j}=\frac{1}{N}\sum_{p=1}^{N}start_{p}, \\ te_{i}{}^{j}=\frac{1}{N}\sum_{p=1}^{N}end_{p},&& \text{(2)} \\ (start_{p},end_{p})\in S_{i}{}^{j}. \end{aligned}
其中,t{s_{i}}^{j}是第i个视频ID和第j个标签的动作的开始时间,te_{i}{}^{j}是第i个视频ID和第j个标签的动作的结束时间。S_{i}{}^{j}表示视频ID为i且标签为j的预测集合。N是S_{i}^{j}的长度。\text{start}_p表示S_{i}{}^{j}中第p个预测的开始时间,\text{end}_p 表示S_{i}{}^{j}中第p个预测的结束时间。

此外,在融合相同视频ID和相同标签的结果时,除了描述的第四步中取所有时间点的平均值的方法外,我们还尝试另一种方法:根据它们的分数对时间节点的融合进行加权,公式如下:
\begin{aligned} t{s_{i}}^{j}=\frac{\sum_{p=1}^{N}start_{p}*score_{p}}{\sum_{p=1}^{N}score_{p}}, \\ te_{i}{}^{j}=\frac{\sum_{p=1}^{N}end_{p}*score_{p}}{\sum_{p=1}^{N}end_{p}},&& \text{(3)} \\ (start_{p},end_{p},score_{p})\in S_{i}{}^{j}. \end{aligned}
其中, {score}_p表示S_{i}{}^{j}中第p个预测的分数。

3. 实验

3.1 训练

 3.1.1 特征提取模型

使用了 VideoMAE-L 和 VideoMAE-H 在 A1 数据集上进行微调,训练裁剪大小为 224。初始学习率为 2e-3。帧数为 16,采样率为 4。实验在 8 个 Nvidia V100 GPU 上以批量大小 2 运行。VideoMAE-L 训练了 35 个 epoch,而 VideoMAE-H 训练了 40 个 epoch。

3.1.2 时间动作定位模型

我们在 A1 数据集上进行实验,将数据划分为训练集和测试集,比例为 7:3。实验后,我们使用所有 A1 数据作为训练集。首先,我们将 32 个连续帧作为输入提供给预训练模型 UniFormerV2,使用步幅为 16 的滑动窗口,并从原始视频中提取了覆盖左、中、右三部分的 3072-D 特征,以优化网络结构。使用 mAP@[0.1:0.5:5] 来评估我们的模型。其次,我们还对提取的 1024D 特征进行了一些消融实验。我们的 TAL 模型训练了 40 个 epoch,线性预热了 5 个 epoch。初始学习率为 1e-3,采用余弦学习率衰减,权重衰减为 5e-2。最后,我们使用预训练的 VideoMAE 提取 1028-D 特征和 1024-D 特征。该方法可适用于不同的特征,并测试模型在多视角、单视角和多特征上的性能。

3.2 结果

3.2.1 数据预处理结果

针对裁剪操作是否增强了模型效果,我们进行了消融实验来验证。实验结果表明,裁剪操作确实起到了作用。如表3所示,使用具有 FH(k400)(1280) 特征的 Multi-Attention 模型,裁剪操作可将后视和仪表盘视图上的 mAP 从 83.67 提升到 87.79。

3.2.2 多视角模型结果

我们开始进行实验,并在 A1 数据集上使用预训练模型 UniFormerV2 提取所有视角视频的 3072-D 特征,我们使用验证集进行训练。窗口大小的超参数设定为 9,小批量大小为 4,最大段数设定为 2304。表4总结了结果,我们的方法在平均 mAP 上达到了 67.33%,在 tIoU=0.5 时的 mAP 为 59.02%。通过简单设计和强大的多注意力Transformer模型的结合,模型性能得到了提升。此外,我们尝试了各种超参数,包括使用具有8个头的FPN架构,将窗口大小增加到13,并将中心样本半径设定为2.5。结果,mAP 从 67.33% 提高到了 70.69%。

考虑到不同区域包含屏幕目标的不同信息,我们尽可能地进行了大量实验,以便对具有不同裁剪部分和不同调整大小模式的视频特征进行公平比较。结果如表5所示。与表4中的结果(mAP 67.33%)相比,差别不大,因此我们在后续实验中删除了裁剪模式。

3.2.3 后视图模型结果

通过实验发现,使用后视图的分类模型的准确性更高,如表1所示。我们测试了使用不同的VideoMAE背景模型提取的后视图和仪表盘视图特征的模型性能。如表6所示,不同的特征在时间动作定位上具有不同的性能。

3.2.4 时间校正模块结果

时间校正模块的实验结果如表7所示。模型M1到M10的具体信息如表8所示。由于系统提供的评估次数有限,我们无法对每个模型组合遍历所有方法以获得最佳的评估结果。因此,在总结每个比较实验中的模式后,我们直接为更好的模型使用最佳处理方法。我们在第2.4节介绍了时间校正模块。在第二步中,将几个不同模型的结果拼接在一起,与使用单个模型相比,结果更高。单个模型M1的平均重叠分数为0.6382,但在拼接三个模型的结果并采用时间校正后,评估结果的性能提高到了0.6482。此外,四个模型M7 + M8 + M9 + M10的拼接结果比三个模型M7 + M8 + M9的拼接结果将评估分数从0.6634提高到了0.6723。第三步中,移除了长度为1的集合。这个操作也提升了结果。在添加此操作后,与没有此操作的时间校正模块的结果相比,评估分数从0.6325提高到了0.6482。针对A1数据集进行了动作持续时间的统计,发现持续时间都在1-30秒的范围内,因此我们限制了预测结果的持续时间范围。此外,当融合相同视频ID和相同标签的结果时,我们尝试了两种方法:取所有时间点的平均值和根据它们的分数对时间节点进行加权融合。然而,实验结果表明,使用平均值更令人满意。使用相同的模型组合M4 + M5 + M6,加权和平均方法分别得到0.6514和0.6593。赛道的总体排名和得分如表9所示。表7中M7 + M8 + M9 + M10模型组合的结果是我们团队最终的预测结果,在公共排行榜上平均重叠分数为0.6723,排名第三。在这个组合中,M7、M8和M9分别表示使用表2中的特征FL(hybrid)(1024)、FL(ego)(1024)和FH(k400)(1280)训练的时间动作定位模型。而M10代表Tridet模型。毫无疑问,通过将更强大的视频特征背景与目标检测结果相结合,我们方法在AI城市挑战赛的Track 3上的结果可以进一步提高。

4. 结论

本文提出了一种基于多注意力Transformer的时间动作定位方法。该方法的强大之处在于我们的设计选择,特别是将特征与多注意力模块的方法相结合,以对视频中的更长时间范围的上下文进行建模。此外,我们进行了大量实验,比较了不同的视频视角、不同的特征提取网络、不同的预训练数据集,以找到具有更好特征表示能力的视角和网络。此外,我们还提出了一个时间校正模块来提高时间精度

读后总结

创新点1:在实现时间动作定位部分,提出多注意力Transformer模块,在transformer中加入局部窗口注意力,通过局部窗口注意力和全局窗口注意力的组合来代替固定窗口。

创新点2:提出时间校准模块,对视频段的预测结果进行融合和处理(平均,加权平均)等处理,实现时间定位更加准确。

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

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

相关文章

java读取shp文件,获取点位

Testvoid contextLoads() {System.out.println(System.currentTimeMillis());//1716516228057 1716516228798String zipFilePath "C:\\code\\risk\\risk_management_backend\\edatope-app\\src\\main\\resources\\新中心范围SHP导入模板.zip";String destDir &quo…

思科模拟器--06.单臂路由升级版--多端路由互连实验--24.5.20

实验图纸如下: 第0步: 先放置六台个人电脑,一台交换机和一台2911路由器(千兆路由器(G0开头的)) 接着,用直通线将 PC0的F0,PC1的F0分别和交换机的F0/0, F0/1连接 交换机的F0/3和路由器的G0/0连接 PC2的F0,PC3的F0分别和交换机的F0/4, F0/5连接 交换机的F0/6和路由器的G0/1…

电脑连接爱快iKuai软路由之后,网卡没有正常获取到IP,无法访问爱快路由管理页?

前言 上一次咱们说到在爱快控制台上设置/辨认lan口,设置完成之后,其他的一些设置就需要在爱快iKuai软路由的管理页面上设置。 有些小伙伴会发现,当电脑连接上爱快软路由的lan口之后,电脑并没有正常获取到ip,导致无法访…

JavaScript表达式和运算符

表达式 表达式一般由常量、变量、运算符、子表达式构成。最简单的表达式可以是一个简单的值。常量或变量。例:var a10 运算符 运算符一般用符号来表示,也有些使用关键字表示。运算符由3中类型 1.一元运算符:一个运算符能够结合一个操作数&…

【Arthas】阿里的线上jvm监控诊断工具的基本使用

关于对运行中的项目做java监测的需求下,Arthas则是一个很好的解决方案。 我们可以用来 1.监控cpu 现成、内存、堆栈 2.排查cpu飚高 造成原因 3.接口没反应 是否死锁 4.接口慢优化 5.代码未按预期执行 是分支不对 还是没提交? 6.线上低级错误 能不能不重启…

STL--set和multiset集合

set和multiset会根据特定的排序准则&#xff0c;自动将元素排序。两者不同之处在于multiset 允许元素重复而 set 不允许。如下图: 使用set或multiset&#xff0c;必须先包含头文件: #include <set>上述两个类型都被定义为命名空间std内的class template: namespace std…

亚马逊自养号测评:深入解析与搭建要求

在亚马逊这电商平台上&#xff0c;商品的评价对于卖家来说至关重要。为了提升商品的曝光率、排名、权重和销量&#xff0c;卖家们纷纷采用各种推广方式&#xff0c;其中&#xff0c;亚马逊自养号测评成为了越来越多卖家选择的一种有效方式。 亚马逊自养号测评&#xff0c;顾名…

分布式事务——9种解决方案的原理与分类

目录 一、概要1. 分布式事务的概念2. 分布式事务解决方案分类 二、常见的分布式事务解决方案1. 基础的 2PC&#xff08;二阶段提交&#xff09;1.1 核心思想1.2 简介1.3 主要特点1.3.1 优点1.3.2 缺点 2. 基础的 3PC&#xff08;三阶段提交&#xff09;2.1 核心思想2.2 简介2.3…

C语言/数据结构——每日一题(有效的括号)

一.前言 如果想要使用C语言来解决这道题——有效的括号&#xff1a;https://leetcode.cn/problems/valid-parentheses/description/我们必须要借用上一篇我们所讲的内容——栈的实现&#xff1a;https://blog.csdn.net/yiqingaa/article/details/138923750?spm1001.2014.3001.…

go routing 之 gorilla/mux

1. 背景 继续学习 go 2. 关于 routing 的学习 上一篇 go 用的库是&#xff1a;net/http &#xff0c;这次我们使用官方的库 github.com/gorilla/mux 来实现 routing。 3. demo示例 package mainimport ("fmt""net/http""github.com/gorilla/mux&…

react实现把pc网站快捷添加到桌面快捷方式

文章目录 1. 需求2. 实现效果3. 核心逻辑4. 完整react代码 1. 需求 这种需求其实在国外一些游戏网站和推广网站中经常会用到&#xff0c;目的是为了让客户 快捷方便的保存网站到桌面 &#xff0c;网站主动尽量避免下次找不到网站地址了&#xff0c;当然精确的客户自己也可以使…

Oracle递归查询笔记

目录 一、创建表结构和插入数据 二、查询所有子节点 三、查询所有父节点 四、查询指定节点的根节点 五、查询指定节点的递归路径 六、递归子类 七、递归父类 一、创建表结构和插入数据 CREATE TABLE "REGION" ( "ID" VARCHAR2(36) DEFAULT SYS_GUI…

GPT提示词技巧,使用教程,国内版官网直达,非套壳

GPT提示词技巧&#xff0c;使用教程&#xff0c;国内版官网直达&#xff0c;非套壳 主站点&#xff1a;https://chatgpt-plus.top&#xff08;江苏福建地区打不开&#xff0c;需要魔法&#xff09; 店铺地址&#xff1a;https://buy.chatgpt-plus.top/ 选择plus账号进入&…

鸿蒙开发ArkUI-X基础知识:【ArkUI代码工程及构建介绍】

代码工程及构建介绍 背景 ArkUI作为OpenHarmony的默认开发框架&#xff0c;在本项目&#xff08;ArkUI-X&#xff09;中需要做到一套代码同时支持多平台构建&#xff0c;所以会采取共仓开发的方式&#xff0c;部分仓直接指向OpenHarmony相关开源仓。 代码结构及仓库结构 代…

【机器学习300问】94、什么是多任务学习?

一、多任务学习的定义 多任务学习&#xff08;Multi-Task Learning, MTL&#xff09;是一种机器学习范式&#xff0c;它允许一个模型同时学习执行多个相关但不完全相同的任务。这种方法的核心是&#xff1a;通过共享表示或权重&#xff0c;不同的任务可以在学习过程中相互促进&…

Python中文件操作和异常处理

文章目录 一、文件操作1.概念2.文件3.二进制 二、基本文件操作三、乱码产生四、with open() as f五、代码实现文件复制粘贴六、try ... except ...七、代码比较 一、文件操作 1.概念 帮助我们把爬虫抓下来的数据&#xff0c;进行保存。 2.文件 在计算机中&#xff0c;没有p…

力扣226. 翻转二叉树(DFS的两种思路)

Problem: 226. 翻转二叉树 文章目录 题目描述思路复杂度Code 题目描述 思路 涉及二叉树的递归解法时往往需要考虑两种思路&#xff1a; 1.在递归遍历时执行题目需要的具体要求&#xff1b; 2.将一个大问题分解为多个小子问题 具体到本体&#xff1a; 思路1&#xff1a;遍历 先…

【源码分享】简单的404 HTML页面示例,该页面在加载时会等待2秒钟,然后自动重定向到首页

展示效果 源码 html <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>404 页面未找到</title><meta http-equiv"refresh" content"2;url/"> <!-- 设置2秒后跳转到首…

机器学习云环境测试

等待创建完成后&#xff0c;点击 PyTorch 打开&#xff0c;创建一个全新的 notebook 在 Cell 中输入如下代码&#xff0c;并点击 Run 完成后点击 New Cell &#xff0c;在 New Cell 中输入如下代码 输入完成后点击 Run &#xff0c;运行 New Cell 。&#xff08;每个 Cell 代…

1077: 平衡二叉树的判定

解法&#xff1a; 平衡二叉树是一种特殊的二叉树&#xff0c;它满足以下两个条件&#xff1a; 左子树和右子树的高度差不超过1&#xff08;即&#xff0c;左右子树高度差的绝对值不超过1&#xff09;。左子树和右子树都是平衡二叉树。 后序遍历过程中每次判断左右子树高度差…