Video-FocalNets: Spatio-Temporal Focal Modulation for Video Action Recognition

标题:Video-FocalNets:用于视频动作识别的时空聚焦调制

源文链接:Wasim_Video-FocalNets_Spatio-Temporal_Focal_Modulation_for_Video_Action_Recognition_ICCV_2023_paper.pdf (thecvf.com)icon-default.png?t=N7T8https://openaccess.thecvf.com/content/ICCV2023/papers/Wasim_Video-FocalNets_Spatio-Temporal_Focal_Modulation_for_Video_Action_Recognition_ICCV_2023_paper.pdf

源码链接:GitHub - TalalWasim/Video-FocalNets: Official repository for "Video-FocalNets: Spatio-Temporal Focal Modulation for Video Action Recognition" [ICCV 2023]icon-default.png?t=N7T8https://github.com/TalalWasim/Video-FocalNets

发表:ICCV-2023

目录

摘要

 1.介绍

2. 相关工作

3. 方法

3.1. 时空焦点调制

3.1.1 时空分层上下文化

3.1.2时空门控聚合

3.1.3设计变化

3.2. 网络变体

4. 结果与分析

4.1. 实验设置与方案

4.2. 与最先进的比较

4.3. 消融

5. 结论

读后总结


摘要

近期的视频识别模型利用Transformer模型进行长距离时空上下文建模。视频Transformer设计基于自注意力机制,可以以高计算成本建模全局上下文。相比之下,卷积设计的视频模型提供了一种高效的替代方案,但缺乏长距离依赖建模。为了实现两种设计的优点,本文提出了Video-FocalNet,这是一种高效且有效的视频识别架构能够同时建模局部和全局上下文。Video-FocalNet基于时空聚焦调制架构,通过逆转自注意力的交互和聚合步骤来提高效率。此外,聚合步骤和交互步骤均采用高效的卷积和逐元素乘法操作,相比于视频表示中的自注意力机制,它们的计算成本更低。我们广泛探索了基于聚焦调制的时空上下文建模设计空间,并证明了我们并行的空间和时间编码设计是最佳选择。Video-FocalNets在五个大规模数据集(Kinetics-400、Kinetics-600、SS-v2、Diving-48和ActivityNet-1.3)上的表现优于最先进的基于Transformer的视频识别模型,并且计算成本更低。我们的代码和模型已在https://github.com/TalalWasim/Video-FocalNets发布。

 1.介绍

自AlexNet [36] 引入以来,最先进的视频识别方法受到了卷积神经网络(CNN)的显著影响。最初是2D [30, 48, 55],随后是3D [7, 19, 63] CNN在小规模 [37, 57] 和大规模 [6, 20, 31] 视频识别基准测试上取得了更好的性能。凭借其局部连接性和平移等变性,CNN具有更好的归纳偏差,尤其适用于在小数据集上学习。然而,由于其受限的感受野,CNN在建模长距离依赖关系方面能力有限。另一方面,视觉Transformer(ViTs) [13] 提供了长距离上下文建模,并且在图像分类 [13, 45, 46] 和视频识别 [2, 4, 47, 75] 方面非常有效。ViTs基于自注意力机制 [65],最初在自然语言处理(NLP)中提出,编码了最少的归纳偏差,能够建模短期和长期依赖关系。这使得ViTs在大数据集上能够更好地泛化,如最近在主要视频识别基准测试 [6, 20, 31] 上的结果所示,它们的性能超过了CNN。然而,ViTs伴随着高计算和参数成本 [76]。

视频识别需要同时精确地建模短程和长程的时空依赖性,以实现高性能。然而,现有方法在效率和性能之间存在权衡。虽然CNN更高效且适合短程信息建模,但它们在长程依赖和大数据集的表示学习能力方面有限ViT解决了这些问题,但其参数复杂性和计算成本较高。高复杂性源于双步骤的自注意力操作,首先进行查询-键交互,然后在上下文值上进行聚合。查询-键交互需要计算代价高昂的通过点积计算的令牌到令牌的注意力得分,因为查询和键不包含周围上下文信息(它们只是输入令牌的线性投影)。在这种背景下,本研究旨在优化效率和性能,同时建模视频中的局部和全局上下文

我们提出了一种名为Video-FocalNet的视频识别高效架构(见图1)。Video-FocalNet提出了一种时空聚焦调制架构,通过逆转自注意力操作的步骤来提高效率。该架构受用于图像识别的聚焦调制 [76] 启发,并将其扩展到视频中,通过分别聚合每个令牌的周围空间和时间上下文到空间和时间调制器,然后在交互步骤中将它们与查询融合。聚合基于分层上下文步骤,分别使用深度卷积和逐点卷积堆栈用于空间和时间分支,然后通过门控聚合来实现对短期和长期依赖的建模。聚合步骤(基于深度卷积/逐点卷积)和交互步骤(基于逐元素乘法)的计算成本都比自注意力对应步骤(即,通过矩阵乘法进行的查询-键交互和查询-值聚合)低

图2(a):Video-FocalNet的总体架构:根据[46, 76, 77],我们定义了一个四阶段架构,每个阶段包括一个补丁嵌入和若干Video-FocalNet块。总块数为L,第一、二、三、四阶段分别包含L/6、L/6、L/2和L/6个块。(b)单个Video-FocalNet块:类似于Transformer块[65],我们用时空聚焦调制替换了自注意力。

我们广泛探索了各种设计配置,以实现最佳的时空上下文建模和焦点调制。分析表明,提出的并行空间和时间焦点调制设计比其他顺序设计性能更优,并且更高效。基于时空焦点调制,我们引入了一系列Video-FocalNet架构(tiny、small和base),并展示了它们在视频识别方面的性能优于最先进的基于Transformer的方法,同时计算成本更低。我们的主要贡献总结如下:

•我们解决了视频识别中有效时空建模的挑战。为了解决这一挑战,我们提出了一个视频焦点调制块,通过分层上下文聚合设计,使用计算高效的深度卷积和逐点卷积来进行局部-全局上下文建模
• 我们探索了时空焦点调制的各种设计选择,并提出了一个并行的空间和时间编码设计,在性能和计算成本之间实现优化,如图5所示。
•我们在三个主要基准测试中取得了最先进的性能:Kinetics-400 [31]、Kinetics-600 [5]和Something-Something-v2 [20],分别超过文献中的可比方法0.6%、1.2%和0.6%。此外,我们在相对较小的Diving-48 [41]和ActivityNet-1.3 [24]数据集上也超过了以往的工作。我们在准确性和计算成本之间实现了最佳平衡,如图1所示。

图1:准确性与计算复杂度的权衡比较:我们展示了Video-FocalNets在视频动作识别方面与最近方法的性能对比。准确性与GFLOPs/view在Kinetics-400 [31]数据集上进行了比较。我们的Video-FocalNets在各种模型大小(Tiny、Small和Base)上的性能都优于其对应的方法。

2. 相关工作

视频识别:早期的视频识别方法是基于特征的[34, 38, 66]。然而,随着2D CNN在Imagenet [12]上取得的惊人成功 [23, 36, 56, 62],它们也被引入到视频识别任务中 [30, 48, 55]。后来,随着Kinetics [31]等大规模数据集的发布,基于3D CNN的方法被引入 [7, 19, 63]。这些方法在建模时空关系方面更加有效,优于基于2D CNN的方法。然而,这些基于3D CNN的方法的计算成本非常高昂。因此,引入了各种3D CNN的变体 [14, 17, 18, 40, 44, 53, 58, 60, 64, 72],降低了计算成本并提高了性能。随着Vision Transformer [13]在图像识别中的成功,它们也被引入到视频识别中。这一领域的首个方法使用了Vision Transformer和CNN的组合 [35, 69, 70],包括Transformer块来建模更长范围的上下文。随后的进展引入了完全基于Transformer的架构 [2, 4, 16, 42, 47, 51, 75, 83],在多个基准测试中优于所有先前的方法。最近,提出了一种新的方法 [39],将CNN和ViTs结合起来,其性能与最先进的完全基于Transformer的方法相当。

全局上下文建模:由于2D CNN的局部性质,纯粹基于2D CNN的计算机视觉方法缺乏全局上下文建模。自注意力 [65] 被引入来对视觉输入进行长距离依赖建模。然而,自注意力由于需要矩阵乘法而计算成本高昂。为解决这一问题,引入了各种方法。这些方法包括基于局部窗口的注意力 [10, 45, 46, 50, 52, 77, 81],以及添加全局标记以建模全局信息的变体 [1, 3, 29, 49, 79]。为了减少计算成本,一些方法使用了计算效率较高的注意力模式,如跨步 [8] 和轴向 [27] 模式,以及沿通道维度而不是令牌维度计算的注意力。其他方法还结合了卷积和自注意力进行局部和全局建模。还研究了各种自注意力的线性化方法,包括令牌维度的投影 [33, 68],以及分解softmax-attention核 [9, 54, 73]。最近,使用CNN的一种新方法,称为焦点调制 [76],用于建模全局上下文。为了对局部和全局信息进行建模,焦点调制采用了分层上下文聚合,将不断增加的感受野大小的信息进行组合

3. 方法

假设视频输入经过编码产生特征表示X_{st} \in \mathbb{R}^{T \times H \times W \times C},其中 T 表示帧数,H \times W 表示空间分辨率,C 表示通道数。为了获得给定输入时空特征图X_{st}中的一个令牌(查询) x_i \in \mathbb{R}^C的富含时空上下文的表示y_i \in \mathbb{R}^C,需要对查询和其相邻的空间和时间令牌进行交互,然后在周围的时空上下文中聚合生成的信息。为了有效地对时空输入进行建模,重要的是对视频的富含上下文建模时同时编码短程和长程依赖关系

自注意力机制 [65] 被用于最先进的视频识别方法中 [2, 4, 16, 47, 51, 75, 83],使用的是首次交互、最后聚合(FILA)过程,该过程包括首先通过查询和键的交互T1计算注意力得分,然后在上下文中进行聚合 M1,如公式(1)所示。

\boldsymbol{y}_i=\mathcal{M}_1(\mathcal{T}_1(\boldsymbol{x}_i,\mathbf{X}_{st}),\mathbf{X}_{st}).\quad(1)

由于在交互过程中,查询和键只是输入特征图的简单线性投影,因此自注意力机制通过查询-键交互涉及计算代价高昂的令牌到令牌的注意力得分计算,因为单个键不包含周围上下文的信息

最近提出了一种新的编码方法,称为焦点调制 [76],它采用早期聚合过程,即首次聚合、最后交互(FALI)机制。本质上,自注意力和焦点调制都涉及交互和聚合操作,但操作顺序不同。在焦点调制中,首先进行上下文聚合M2 ,然后是查询和聚合特征之间的交互 T2 ,如公式(2)所示。

\boldsymbol{y}_i=\mathcal{T}_2(\mathcal{M}_2(i,\mathbf{X}_{st}),\boldsymbol{x}_i).\quad(2)

聚合的输出称为调制器,它为每个查询编码周围的上下文信息。需要注意的是,焦点调制中的操作 M2 基于卷积,相比于自注意力中的 M1计算效率更高。同样地,交互操作T2是简单的逐元素乘法,而自注意力中的令牌到令牌的注意力得分计算具有二次复杂度

焦点调制过程 [76] 在图像上通过提取查询令牌周围的空间上下文效果良好。然而,为了建模时空信息,必须提取单个查询令牌周围的空间和时间上下文。为此,我们提出了Video-FocalNets架构,它明确建模帧内(空间)和帧间(时间)信息。我们的方法旨在通过提出一个双流时空焦点调制块来独立建模空间和时间信息,其中一个分支学习空间信息,另一个分支建模时间信息。通过分离空间和时间分支,我们能够分别提取和聚合每个查询令牌的空间和时间上下文,生成空间和时间调制器。这些调制器然后与查询令牌融合,以构建最终的特征图

我们的设计将焦点调制中晚期聚合的理想特性转移到视频任务中。特别地,焦点调制针对每个目标令牌执行,其上下文集中在目标令牌周围,因此具有平移不变性。它还将查询与其周围的上下文解耦,使查询能够保留细粒度信息,同时提取其周围的粗粒度上下文焦点调制使用分层-门控聚合方法,在多个粒度级别上聚合信息。这允许在视频中建模短期和长期依赖关系,同时提高计算和参数效率

现在我们在第3.1节中介绍我们在时空焦点调制方面的方法,并在第3.1.1节和第3.1.2节中分别详细说明视频的分层上下文化和门控聚合过程。为了保持一致性,我们使用与[76]中提出的相同术语。最后,我们在第3.2节概述我们的网络架构变体。

3.1. 时空焦点调制

图2:(a)Video-FocalNets的整体架构:按照[46, 76, 77],我们定义了一个四阶段架构,每个阶段包括一个补丁嵌入层和若干Video-FocalNet块。总块数为L,第一、二、三和四阶段分别有L/6、L/6、L/2和L/6个块。(b)单个Video-FocalNet块:类似于transformer块[65],我们用时空焦点调制替换了自注意力机制。

图3:时空焦点调制层(Spatio-Temporal Focal Modulation layer):我们设计了一个时空焦点调制块,独立建模空间和时间信息。输入首先通过线性层投影,以生成查询、空间/时间特征图和空间/时间门控。然后,通过分层上下文化(M_s\)/\(M_t)和门控聚合(G_s\)/\(G_t),生成空间和时间调制器。这些调制器通过逐元素乘法操作与查询令牌交互\bigodot,形成最终的时空特征图。

为了建模空间和时间维度,我们提出了一个双流时空焦点调制块。整体架构如图2所示,时空焦点调制的设计如图3所示。我们通过详细的消融实验和与其他设计选择的比较验证了其有效性(见第4.3节)。对于输入的时空特征图 X_{st} \in \mathbb{R}^{T \times H \times W \times C},双流时空编码过程包括沿空间和时间维度的独立聚合,然后与查询进行联合交互,如公式(3)所示。

\boldsymbol{y}_i=\mathcal{T}_{st}(\mathcal{M}_s(i_t,\mathbf{X}_{st,t}),\mathcal{M}_t(i_{hw},\mathbf{X}_{st,hw}),\boldsymbol{x}_i),\quad(3)

其中 X_{st,t} \in \mathbb{R}^{H \times W \times C} 是时间维度 t \in \{1, ..., T\}的单个空间切片,而i_t 是切片 t \in \{1, ..., T\} 的空间位置。同样,X_{st,hw} \in \mathbb{R}^{T \times C}是空间维度 h \in \{1, ..., H\}w \in \{1, ..., W\} 的单个时间切片,而i_{hw}是时间位置。操作符M_sM_t分别基于深度卷积和点卷积操作符,T_{st}是逐元素乘法。因此,时空焦点调制过程可以定义如下:

\boldsymbol{y}_i=q(\boldsymbol{x}_i)\odot m_s(i_t,\mathbf{X}_{st,t})\odot m_t(i_{hw},\mathbf{X}_{st,hw}),\text{(4)}

其中 q(\cdot)是查询投影函数,\odot是逐元素乘法,m_s(\cdot)m_t(\cdot)是上下文聚合函数,其输出分别称为空间调制器和时间调制器。m_s(\cdot)m_t(\cdot) 的公式包括两个步骤:分层上下文化和门控聚合。第3.1.1节和第3.1.2节分别讨论了时空分层上下文化和时空门控聚合。

3.1.1 时空分层上下文化

首先,我们使用两个线性层对输入的时空特征图X_{st} \in \mathbb{R}^{T \times H \times W \times C}进行投影,生成 Z^0_{s}Z^0_{t},如公式(5)所定义。

\begin{aligned}&\mathbf{Z}_{s}^{0}=f_{z,s}(\mathbf{X}_{st})\in\mathbb{R}^{T\times H\times W\times C},\\&&\text{(5)}\\&\mathbf{Z}_{t}^{0}=f_{z,t}(\mathbf{X}_{st})\in\mathbb{R}^{T\times H\times W\times C},\end{aligned}

其中 f_{z,s}f_{z,t} 分别是空间和时间线性投影层。然后,我们分别沿着空间和时间维度对投影后的输入 Z^0_{s}Z^0_{t}进行一系列 L深度卷积(DWConv)和点卷积(PWConv)操作。因此,在每个焦点级别 \ell \in \{1, ..., L\}上的输出 Z_{\ell s}Z_{\ell t} 如下:        

\mathbf{Z}_{s}^{\ell}=f_{a,s}^{\ell}(\mathbf{Z}_{s}^{\ell-1})\triangleq\mathsf{GeLU}(\mathsf{DWConv}(\mathbf{Z}_{s}^{\ell-1}))\in\mathbb{R}^{T\times H\times W\times C},\\\mathbf{Z}_{t}^{\ell}=f_{a,t}^{\ell}(\mathbf{Z}_{t}^{\ell-1})\triangleq\mathsf{GeLU}(\mathsf{PWConv}(\mathbf{Z}_{t}^{\ell-1}))\in\mathbb{R}^{T\times H\times W\times C},\quad\text{(6)}

其中 f_{\ell a,s}(\cdot)f_{\ell a,t}(\cdot) 是带有 GeLU [25] 激活函数的空间和时间上下文化函数。为了获得全局表示,分别对 Z_{Ls}Z_{Lt}沿着空间和时间维度执行全局平均池化操作,如下所示:

\begin{aligned} \mathbf{Z}_{s}^{L+1} =\operatorname{Avg-Pool}(\mathbf{Z}_s^L), \\\qquad \text{(7)} \\ \mathbf{Z}_{t}^{L+1} =\operatorname{Avg-Pool}(\mathbf{Z}_t^L), \end{aligned}

其中 Avg-Pool 是全局平均池化操作符。

3.1.2时空门控聚合

时间和空间调制器是指用于视频中每个帧的特征提取的模块,时间调制器关注视频中的时间动态,捕捉视频中的运动和动作变化。空间调制器则专注于视频中的空间特征,捕捉每一帧中的局部视觉内容和变化。

接下来,我们通过门控机制将相应的空间和时间特征图Z^\ell_{s}Z^\ell_{t}压缩成相应的空间和时间调制器。我们使用线性投影层 f_{g,s}f_{g,t} 获得相应的空间和时间门控权重,即 G_s = f_{g,s}(X_{st}) \in \mathbb{R}^{H \times W \times (L+1)}G_t = f_{g,t}(X_{st}) \in \mathbb{R}^{T \times (L+1)}。然后,通过特征图和它们相应的门控权重进行点乘,如公式(8)所示:

\begin{aligned} &\mathbf{Z}_{s}^{out} =\sum_{\ell=1}^{L+1}\mathbf{G}_{s}^{\ell}\odot\mathbf{Z}_{s}^{\ell}\in\mathbb{R}^{H\times W\times C}, \\ &&\text{(8)} \\ &\mathbf{Z}_{t}^{out} =\sum_{\ell=1}^{L+1}\mathbf{G}_{t}^{\ell}\odot\mathbf{Z}_{t}^{\ell}\in\mathbb{R}^{T\times C}, \end{aligned}

其中Z^{\text{out} }_sZ^{\text{out} }_t 分别是单一聚合的空间和时间特征图G^\ell _{ s} \in \mathbb{R}^{H \times W \times 1}G^\ell_{t} \in \mathbb{R}^{T \times 1}G_sG_t的切片,对应于级别 \ell。为了实现不同通道之间的通信,使用另一组线性层 h_s(\cdot)h_t(\cdot)来获取空间调制器M_s = h_s(Z_{\text{out} s}) \in \mathbb{R}^{T \times H \times W \times C}和时间调制器M_t = h_t(Z_{\text{out} t}) \in \mathbb{R}^{T \times H \times W \times C}

因此,定义在公式 4 中的时空聚焦调制过程可以重新写成:

\boldsymbol{y}_i=q(\boldsymbol{x}_i)\odot h_s(\sum_{\ell=1}^{L+1}\boldsymbol{g}_{i,s}^\ell\cdot\boldsymbol{z}_{i,s}^\ell)\odot h_t(\sum_{\ell=1}^{L+1}\boldsymbol{g}_{i,t}^\ell\cdot\boldsymbol{z}_{i,t}^\ell) (9)

其中,z^\ell_{i,s}z^\ell_{i,t}是位置 i 处的空间/时间视觉特征,g^\ell_{i,s}g^\ell_{i,t}是位置 i 处的空间/时间门控值,分别来自Z^\ell_s \) / \( Z^\ell_tG^\ell_s \) / \( G^\ell_t

3.1.3设计变化

图4:我们展示了通过聚焦调制进行时空上下文建模的各种设计选择,并在图5中对它们进行了评估。(a) 一种简单的解决方案,其中每帧通过空间聚焦调制层处理,并取平均值。(b) 该简单解决方案的一个变体,将2D深度卷积替换为分解的3D卷积(2D深度卷积后接1D逐点卷积)。(c) 一个分解编码器设计,将两个编码器堆叠在一起,一个用于建模空间维度,另一个用于建模时间维度。(d) 基于[4]的设计,使用了分解的空间和时间聚焦调制。(e) 我们提出的时空聚焦调制方法,具有并行的空间和时间分支,随后进行时空交互

我们进一步将我们提出的时空聚焦调制设计与图4中展示的各种其他可能设计进行比较。这项探索性研究验证了所提出的设计是最优的。第一个设计(a)是对视频进行空间聚焦调制的简单扩展,它将每一帧通过空间编码器(仅使用2D深度卷积)并沿时间维度取平均值。数学上,对于这种情况,方程(3)可以重写为:

\boldsymbol{y}_{i}=\mathcal{T}_{st}(\mathcal{M}_{s}(i_{t},\mathbf{X}_{st,t})).\text{(10)}

这种设计的变体 (b) 使用分解的3D卷积(先进行2D深度卷积,然后是1D逐点卷积)。

接下来的设计 (c) 使用了一个分解的编码器,将两个编码器堆叠在一起,一个是空间编码器(使用2D深度卷积),另一个是时间编码器(使用1D深度卷积)。这类似于[2]中提出的分解编码器设计,但用空间和时间聚焦调制替代了空间和时间自注意力机制。

倒数第二种设计 (d) 遵循 [4] 提出的分离时空注意力的概念,使用交替的空间和时间聚焦调制。

最后一种设计 (e) 是我们提出的时空聚焦调制。在图5中报告了每种设计在Kinetics-400数据集上的准确性和计算要求。可以看出,我们提出的设计在准确性和计算方面是最优的。

3.2. 网络变体

参考[47, 76],我们采用与[76]相同的四阶段布局和隐藏维度,但将焦点调制块替换为我们的时空焦点调制块。在每个阶段中,使用一组L个Video-FocalNet块,分为四个阶段,分别为{L/6, L/6, L/2, L/6}。我们引入了四种不同版本的Video-FocalNets。模型变体的架构超参数如下:
- Video-FocalNet-T: C = 96,块数量 = {2, 2, 6, 2}
- Video-FocalNet-S: C = 96,块数量 = {2, 2, 18, 2}
- Video-FocalNet-B: C = 128,块数量 = {2, 2, 18, 2}

我们在开始时使用非重叠卷积层进行补丁嵌入(核大小=4×4,步幅=4)以及在两个阶段之间(核大小=2×2,步幅=2)。模型的焦点层级(L)设为2,第一层的核大小设为k1 = 3。我们逐渐从较低的焦点层级到较高的层级增加核大小,每次增加2,即k^\ell=k^{\ell-1}+2.。 

4. 结果与分析

4.1. 实验设置与方案

数据集:我们在三个大规模数据集上报告了视频动作识别的结果,分别是Kinetics-400(K400)[31]、Kinetics-600(K600)[5]和Something-Something-v2(SSv2)[20]。对于每个数据集,我们在训练集上训练模型,并在验证集上进行评估。K400包含大约240,000个训练视频和约20,000个测试视频,涵盖了400个类别。K600包含大约370,000个训练视频和28.3万个测试视频,涵盖了600个类别。SS-v2包含了169,000个训练视频和24,700个验证视频,涵盖了174个类别。对于这三个数据集,我们报告了Top-1准确率,并与最先进的方法进行了比较。

此外,我们还在Diving-48(D-48)[41]和ActivityNet-1.3(ANet-1.3)[24]数据集上测试了我们的Video-FocalNet。D-48是一个具有挑战性的潜水动作数据集,包含大约15000个训练样本和约2000个测试样本。动作仅通过潜水者在帧之间微小的运动来区分,而背景基本保持不变。这意味着该数据集需要对时间进行稳健建模以获得良好的性能。实际上,研究[67]表明,在这个数据集中,通过随机打乱(通过随机打乱)或移除(通过单帧评估)时间信息可能导致准确率分别下降高达约33.6%和约70.2%。另外,ANet-1.3数据集包含用于动作识别任务的未修剪视频。

实施细节:对于K400和K600,我们采用与[39, 42]类似的训练方案,使用SGD优化器进行120个epoch的训练,并使用线性预热进行20个epoch。我们将学习率线性缩放为LR × batchsize 512,其中LR = 0.1是基础学习率。空间模块从预训练的Imagenet-1K FocalNet [76]权重初始化,其余部分随机初始化。对于数据增强,我们遵循类似于[16]的方案,并进行了一些变化。对于每个视频片段,我们以0.5的概率应用水平翻转、Mixup [80](α=0.8)和CutMix [78]。详细的超参数请参见表1。

表1:主要论文实验的训练超参数。“-”表示未使用任何正则化方法。所有列中恒定的值只列出一次。数据集的表示如下:K400:Kinetics-400。K600:Kinetics-600。SS-v2:Something-Something-v2。D-48:Diving 48。ANet-1.3:ActivityNet-1.3。

在训练期间,我们以步幅 τ 采样 T 帧,表示为 T× τ [18]。对于空间域,我们遵循 Inception [59] 的方法,裁剪为 H×W = 224×224,输入区域在比例 [min, max] = [0.08, 1.00] 内选择,并在3/4到4/3之间变化的纵横比。在推理过程中,我们将结果报告为N_{clip}\times N_{crops}的平均值,其中从视频中均匀采样了 N_{clip}个剪辑,并且对于每个视频,在推理期间采用了 N_{crops}个空间裁剪。对于 K400 和 K600,我们在推理时使用 4 × 3。对于 SS-v2、D-48 和 ANet-1.3,我们遵循与 K400 和 K600 相同的训练配方,稍作修改,如 [16, 39, 42, 47] 所述。我们使用 K400 预训练权重初始化模型。对于数据增强,我们不使用随机水平翻转,并在 1 × 3 视图上推理。

4.2. 与最先进的比较

Kinetics-400:在 K400 [31] 数据集上,我们报告了 Video-FocalNet-T、Video-FocalNet-S 和 Video-FocalNet-B 变体的结果,并在表2中与最近的方法进行了比较。首先考虑 T 和 S 变体,可以看到我们的方法分别超过了等价的 Video-Swin Transformer [47] 变体 1.0% 和 0.8%,同时将 TFLOPs 减少了 25%。我们更大的基础模型 Video-FocalNet-B 超过了以前的最先进模型 Uniformer-B [39] 和 MViTv2-B [42] 分别 0.6% 和 0.7%,同时与 MViTv2-B [42] 拥有可比较的 TFLOPs,并且相比 Uniformer-B [39] 减少了约 45% 的 TFLOPs。

Kinetics-600:在 K600 [5] 数据集上,我们在表3中报告了 Video-FocalNet-B 与文献中最近方法的结果。与以前的最先进模型 MViTv2-B [42] 相比,我们的 Video-FocalNet-B 达到了高出 1.2% 的性能。我们的方法使用 ImageNet-1K 初始化还超过了以前在更大的 ImageNet-21K 数据集上预训练的方法,同时保持了更低的 TFLOPs。

Something-Something-v2:在 SS-v2 [20] 基准测试上,我们报告了 Video-FocalNet-B 的结果,并在表4中与最先进的方法进行了比较。在这个时间上具有挑战性的基准测试中,我们的方法超过了以前的最先进方法 MViTv2-B [42] 和 Uniformer-B [39] 分别高出了 0.6% 和 0.7%。这种强大的性能表明我们的方法可以有效地模拟这个具有挑战性的数据集中的微妙时间变化和依赖关系

Diving-48:在 D-48 [41] 上,我们报告了我们的结果,并在表5中将它们与文献中的最近方法进行了比较。Video-FocalNet-B 超过了以前的最先进方法 TFCNET [82] 2.5%。这表明我们的方法即使在使用少量训练样本时也能有效地模拟时间信息

ActivityNet-1.3: 对于ANet-1.3 [24],结果在表格6中呈现。我们提出的Video-FocalNet在未剪辑视频数据集上显著优于基线模型Video-Swin(CVPR'22)[47]。这证明了我们的方法在定位亮点和解决未剪辑视频带来的挑战方面的有效性。我们感谢您深思熟虑的建议,并相信在未剪辑视频数据集上评估我们的方法进一步支持了它在这个具有挑战性的问题设置中的潜力。

4.3. 消融

在本节中,我们对最终设计中的各种选择进行了分析。请注意,所有消融实验均使用Video-FocalNet-S变体在K400上使用与第4.1节中提到的相同的训练设置进行。

调制器融合方法:由于我们提出了一个双流时空聚焦调制设计,因此我们最终得到了两个调制器,分别用于空间和时间分支,需要与查询标记进行融合。我们评估了各种融合方法,以确定哪种方法效果最好。图6(a)显示了三种融合技术的比较,包括简单的平均、逐元素乘法和可学习的投影层。我们发现逐元素乘法提供了最佳性能。

图6:(a)在Kinetics-400 [31]验证集上对Video-FocalNet-S的各种调制器-查询时空交互方法进行剖析。(b)对在Kinetics-400 [31]验证集上使用补丁与管道嵌入的Video-FocalNet-S进行剖析。注意,帧数已经调整,以确保标记数相同。

补丁嵌入与管道嵌入:许多最近的研究 [2, 47, 75] 提出将一个大小为 T × H × W × 3(其中 T = 2)的管道编码为单个标记,而不是将其作为补丁嵌入,其中 T = 1。我们评估了我们模型的这种设计选择,并发现简单的补丁嵌入对我们效果更好,如图6(b)所示。

我们在图7中对K600和SS-V2两个数据集中的样本视频进行了空间和时间调制器的可视化。我们注意到,我们的调制器聚焦于视频中与最终任务相关的显著部分和重要动态。空间调制器倾向于在单个帧中局部空间变化,而时间调制器则专注于跨帧发生大部分运动的全局区域

图7:我们可视化了来自Kinetics-600 [5](顶部行)、Something-Something-V2 [20](中部行)和Diving-48 [41](底部行)的样本视频的空间和时间调制器。请注意,时间调制器会专注于跨帧的全局运动,而空间调制器则捕捉局部变化。例如,在图7a中,时间调制器特别关注刀子与苹果接触的地方,而空间调制器会根据刀子的位置在每一帧中进行焦点切换。对于Diving-48(底部行),我们可以看到模型可以专门关注每一帧中发生动作的区域,而不受相机移动和小兴趣区域的影响。更有趣的是,时间调制器可以分离图7g和图7h中的两个动作区域。

5. 结论

为了学习能够有效地建模局部和全局上下文的时空表示,本文引入了用于视频动作识别任务的Video-FocalNets。该架构源自图像的焦点调制,并能够有效地建模短期和长期依赖关系,以学习强大的时空表示。我们通过广泛评估几种设计选择来开发我们提出的Video-FocalNet块。具体来说,我们的Video-FocalNet使用并行设计,通过以计算有效的方式组合空间和时间卷积和乘法运算来建模分层的情境化。Video-FocalNets比基于Transformer的架构更高效,后者需要昂贵的自注意力操作。我们通过对五个代表性的大规模视频数据集进行评估,证明了Video-FocalNets的有效性,在这些数据集上,我们的方法优于以前基于Transformer和CNN的方法。

读后总结

出发点:针对ViT能够长距离时空上下文建模,但计算成本高;CNN计算成本低但缺乏长距离时空建模的问题,需要一个高效且能够完成长距离时间建模的网络模型以实现视频动作识别。

创新点1:提出一种基于时空聚焦调制架构的Video-FocalNet网络,时空聚焦调制是指通过并行双分支的结构先分别聚合时间和空间特征信息,分别得到时间调制器和空间调制器,再将时间、空间调制器和查询进行交互。分支分别由投影层、分层上下文层(主要通过深度卷积核逐点卷积处理,获得时间维度核空间维度的全局表示)、门控聚合(主要通过线性投影层获得门控权重,通过门控权重选择性地聚合重要的空间和时间特征)和调制器层组成。Video-FocalNet网络架构类似于Swin Transformer,将Swin Transformer Blocks替换为Video-FocalNet Blocks,Video-FocalNet Blocks是将Vision Transformer Blocks注意力模块替换为Spation-Temporal Focal Modulation。通过卷积操作替换注意力模块,更加高效。

创新点2:多部分对比损失,通过将身体部位划分为多个部分(如头部、手臂、腿部等),对每个身体部分的特征和文本对应身体部分的描述特征进行对比学习,同时也进行全局特征对比,使得模型能够学习到更细粒度的身体运动特征

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

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

相关文章

vscode打造舒适的python开发环境

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 背景 突然想写一些python小脚本,提升我的mac使用体验和日常效率提升…

LayUI使用(一)点击树组件的右边空白区域也可响应事件

前提: 如下,希望能够点击右边的空白区域也能够响应,而不仅仅是点击文本才响应 分析流程 一开始问了chatgpt,但它给的方案太麻烦了,而且还有错误,因此自己上手F12进入调试模式,点击查看最终渲…

【MATLAB】基于EMD-PCA-LSTM的回归预测模型

有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 基于EMD-PCA-LSTM的回归预测模型是一种结合了经验模态分解(Empirical Mode Decomposition, EMD)、主成分分析(Principal Component Analysis, PCA)和长短期记忆…

Qt快速入门到熟练(电子相册项目(二))

上一节我们成功实现了创建项目的向导界面的开发,这节我们继续去实现电子相册的其他功能。 新建DirTreeWidget类 还记得在Qt快速入门到熟练(电子相册项目(一))-CSDN博客里面,我们是在QDockWidget中添加了一个treeWidget作为以后显示目录树的空间…

App Inventor 2 TaifunBattery 电池管理器拓展,获取电量、电池容量

TaifunBattery 电池管理器拓展 电池管理器扩展。所需权限:无 demo效果图: 属性 返回当前健康常量。 可能的值有:冷(cold)、死(dead)、好(good)、过热(overheat)、过压(over voltage)、未知(unknown)、未指定故障(unspecified failure)。 返…

海山数据库(He3DB)数据仓库发展历史与架构演进:(一)传统数仓

从1990年代Bill Inmon提出数据仓库概念后经过四十多的发展,经历了早期的PC时代、互联网时代、移动互联网时代再到当前的云计算时代,但是数据仓库的构建目标基本没有变化,都是为了支持企业或者用户的决策分析,包括运营报表、企业营…

最近真的忙炸了。。

大家好,我是鱼皮,每隔一段时间,我都会写一段自己的工作复盘。最近这个月的主题就是 “忙炸了”!基本上只要睁眼的时间,基本都是在工作,以至于眼药水都怼上了。 简单分享一下我最近在做的一些事情吧。 1、…

docker 指定jdk11镜像执行jar

dockerfile :下载jdk11 并将上传的jar 放入jdk11容器/root,改名为app.jar vi dockerfile 。。。。内容见下图 # 构建jdk11镜像 docker build -t demo . # 也可以通过jdk11镜像(前提有jdk11镜像)外挂载目录方式运行jar docker run --name d…

简单介绍十款可以免费使用的API测试工具

API开发应该是后端开发最常见的工作,而调试和测试API是非常关键的,这篇文章简单介绍几款常用的工具以供大家参考。 SoapUI SoapUI是很老牌的工具的,在之前Webservice盛行的时候经常会用到。 现在官方推出了Pro版本的ReadyAPI,但要…

MacOS安装Docker-Compose

方法一 按照百度的方法进行安装,我大致复制一下百度的方法 1.确保您已经安装了Docker Desktop。 2.下载Docker Compose二进制文件。 3.将二进制文件移动到/usr/local/bin目录。 4.更改二进制文件的权限,使其可执行。 以下是具体的命令:…

使用TensorFlow Lite Micro流程记录(带源码)

文章目录 0 关于tflite micro1 克隆仓库2 编译静态库3 模型转换4 编写工程5 编写demo5.1 进行算子注册 5.2 推理过程6 debug记录6.1 缺少算子 6.2 注册表太小6.3 段错误6.4 进一步减小库体积 7 实际部署 0 关于tflite micro 关于tflite micro在这里接不做过多介绍了&#xff0c…

vue3结合element-plus之如何优雅的使用表单组件

背景 在日常开发中,我们会经常使用 element-ui 或者是 antdesign 或者是 element-plus 等组件库实现搜索功能 这里就需要用到相关表单组件 下面就以 element-plus 为例,我们实现一个搜索功能的组件,并且随着屏幕尺寸的变化,其布局也会跟随变化 最终大致效果如下: 这里…

MySql:多表设计-关联查询

目录 多表设计 代码 运行 数据库设计范式 设计三范式 1、第一范式: 2、第二范式: 3、第三范式: 多表设计_关联查询 外键 外键约束 代码 运行 注意: 应用 代码 运行 代码 运行 关联查询 含义: …

Android14之Binder调试(二百一十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

服务器数据恢复—服务器正常断电重启后raid信息丢失的数据恢复案例

服务器数据恢复环境: 一台某品牌DL380 G4服务器,服务器通过该服务器品牌smart array控制器挂载了一台国产的磁盘阵列,磁盘阵列中有一组由14块SCSI硬盘组建的RAID5。服务器安装LINUX操作系统,搭建了NFSFTP,作为内部文件…

【LeetCode】【1】两数之和(1141字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现哈希表 个人主页:丷从心 系列专栏:LeetCode 刷题指南:LeetCode刷题指南 题目描述 给定一个整数数组nums和一个整数目标值target,请在该数组中找出…

传感器通过Profinet转Modbus网关与PLC通讯在生产线的应用

Profinet转Modbus(XD-MDPN100/300)网关可视作一座桥梁,能够实现Profinet协议与Modbus协议相互转换,支持Modbus RTU主站/从站,并且Profinet转Modbus网关设备自带网口和串口,既可以实现协议的转换&#xff0c…

【Java基础】IO流(4) —— 转换流、打印流

【Java基础】IO流(1) —— 简介 【Java基础】IO流(2) —— 字符流 【Java基础】IO流(3) —— 字节流 【Java基础】IO流(4) —— 转换流、打印流 【Java基础】IO流(5) —— 序列流、内存流 【Java基础】IO流(6) —— 随机访问文件流、数据流 转换流 InputStreamReader 是字节输…

VUE H5字体在安卓手机偏上解决

安卓手机展示样式,数字偏上,展示效果如图: 项目内添加新字体,引用新字体 vue 项目需要引入字体的话, 可以移步到这篇文章(无需下载依赖包)Vue3中引入外部自定义字体 项目文件assets内创建font文件夹, 粘贴你想用的字体, 创建对应的css文件; scss代码: font-face {/* 自定义的…

前端学习-day08

文章目录 01-相对定位02-绝对定位03-绝对定位居中04-固定定位05-堆叠顺序06-CSS精灵-基本使用07-案例-京东服务08-字体图标10.垂直对齐方式11-过度12-透明度13-光标类型14-轮播图 01-相对定位 <!DOCTYPE html> <html lang"en"> <head><meta ch…