论文链接:https://openaccess.thecvf.com/content/CVPR2022/papers/Long_Stand-Alone_Inter-Frame_Attention_in_Video_Models_CVPR_2022_paper.pdf
代码:https://github.com/FuchenUSTC/SIFA
视频是对移动的视觉图像的电子表示,它自然地形成了运动,它表示物体或人的位置随着时间的不断变化。建模这样的时间动态是必不可少的。现代深度学习模型通过执行时空3D卷积、分别将3D卷积分解为空间和时间卷积,或者沿着时间维度计算自我注意力来利用运动(如下图所示)。这些成功背后的隐含假设是跨连续帧的特征映射可以很好地对齐的基础。然而,这一假设可能并不总是成立,特别是对于大变形的区域。
如下,由于撑杆跳运动员的运动,圆圈中突出显示的跨帧相同位置对应不同的物体(在例中是人和轨道)。因此,在这些位置上执行时间卷积或计算注意力可能是时间特征聚集的次优选择。
本文提出一个 Stand-alone Inter-Frame Attention (SIFA)块,通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。
本文主要引入了一种新的 Stand-alone Inter-Frame Attention (SIFA)用于时间建模。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模SIFA利用连续帧间局部区域内的时间相关性,通过注意力将其局部邻居聚集到相邻帧中,从而增强每帧的特征。接着,在视频模型中设计了一种新颖的独立块,即SIFA块,用于跨帧在低变形区域上执行帧间注意。
在视频表示学习中,时间建模的一种自然方法是使用跨帧进行像素级特征聚合的1D时间卷积。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模然而,该方法仅在时间维度上捕获同一空间位置之间的运动线索,而忽略了不同空间位置的帧间相关性进行时间建模。受注意力(Transformer, Non-Local)对远程依赖建模的启发,作者设计了一种适合于时间建模的新的注意力机制,即Stand-alone Inter-Frame Attention (SIFA),该机制利用局部区域内的帧间相关性进行有效的注意力学习。对相邻帧局部区域内的所有时间邻居进行聚合,增强帧间特征。
如上引入SIFA的细节图所示。具体地,输入F∈RC×L×H×WF\in \mathbb{R}^{C \times L \times H \times W}F∈RC×L×H×W,其中CCC,H×WH\times WH×W,和LLL分别表示channel大小,spatial大小和时间长。这里将FFF转成2D特征序列,记为{ft}t=0L−1\{ f_t \}^{L-1}_{t=0}{ft}t=0L−1。对于第ttt帧,将其在空间位置(x,y)(x, y)(x,y)的特征作为查询Qt∈RCQ_t \in \mathbb{R}^CQt∈RC,通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。同时,将第(t+1)(t+1)(t+1)帧在以(x,y)(x, y)(x,y)为中心的局部区域(大小:k×kk \times kk×k网格)内的特征设为键Kt+1∈RC×{k×k}K_{t+1} \in \mathbb{R}^{C \times \{k \times k \}}Kt+1∈RC×{k×k}和值Vt+1∈RC×{k×k}V_{t+1} \in \mathbb{R}^{C \times \{k \times k \}}Vt+1∈RC×{k×k}。然后,通过dot production计算查询QtQ_tQt和键Kt+1K_{t+1}Kt+1之间的相关矩阵WcorW_{cor}Wcor:
其中⊙表示矩阵乘法,用于测量查询与其局部k×kk × kk×k网格中的时间邻居(即键)之间的成对时间相关性。
现有工作一般将学习到的相关矩阵Wcor∈R1×{k×k}W_{cor} \in \mathbb{R}^{1 \times \{k \times k\}}Wcor∈R1×{k×k}作为像素级位移信息,直接用它来扩充主特征图,辅助流量估计、几何匹配和运动建模任务。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模作为一种替代方法,我们利用相关矩阵作为注意力权重,动态聚集附近帧局部区域内的相应值,以增强查询特性。其中,以相关矩阵WcorW_{cor}Wcor作为注意权值,对局部区域内的Vt+1V_{t+1}Vt+1进行通道聚合:
其中At+1A_{t+1}At+1是由查询的时态邻居派生的聚合特征,[⋅]T[·]^T[⋅]T表示矩阵转置。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。在此基础上,将查询与聚合特征进行集成,得到时态特征聚合后的增强查询特征YtY_tYt:
因此,SIFA对第ttt帧中的每个空间位置进行帧间注意,以挖掘其在第(t+1)(t+1)(t+1)帧局部区域内的时间相关性。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。因此,每一帧的特征图通过注意来聚集下一帧的局部邻居的特征来加强。通过这种方式,我们在输入序列中的每对相邻帧之间操作SIFA。注意,对于序列中的最后一帧,我们在该帧与自身之间进行帧间注意,并通过特征聚合来增强其自身的特征映射,从而保持输出帧序列的时间长度为LLL。
SIFA与以往时空注意机制的详细联系和区别,通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模引入了两种时空注意(即联合时空自注意或分割时空自注意),利用时空自注意进行视频表示学习。其中,联合时空自注意(上图(a)中的ST)整体地对所有帧的输入特征/补丁进行自注意。分割的时空自注意(上图 (b)中的T+ST+ST+S)分别将当前帧内的空间注意和对相邻帧相同空间位置的时间邻居的时间注意应用。
设计SIFA机制是为了模拟连续帧内局部区域内目标的时间演化。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。然而,简单地在等大小的局部区域(k×kk \times kk×k网格)上使用帧间注意不可避免地忽略了每帧对象的不规则几何变换,导致次优解。为了缓解这一问题,我们设计了一个SIFA块,将帧间注意力应用于附近帧的局部变形区域,其中包括在自由形式空间变形中采样的时间邻居。
操作可变形特征重采样的最典型方法是用额外的偏移量来增加空间采样位置,这些偏移量是通过可变形ConvNets中的可学习偏移估计器来预测的。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。尽管如此,这个偏移估计器学会仅根据输入特征映射本身推断每个空间位置的2D偏移,同时留下连续帧之间的固有运动线索。相反,我们提出在局部区域内估计每个空间位置的二维偏移量,基于其运动显著性图(MSM),作为运动监督来指导变形特征的重新采样,上图显示了SIFA块的详细结构。
形式上,给定每一对连续的帧(即第ttt帧ftf_tft和第(t+1)(t+1)(t+1)帧ft+1f_{t+1}ft+1),我们首先计算它们之间的时间差(TD)通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模:
接下来,我们对这种时间差异进行sigmoid操作,从而得到标准化的注意力图。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模该注意图动态地精确定位了第(t+1)(t+1)(t+1)帧中包含高度突出的物体运动的空间位置。因此,将第(t+1)(t+1)(t+1)帧ft+1f_{t+1}ft+1的特征图与注意力图相乘,得到运动显著性图(MSM) fmf_mfm:
以运动显著图fmf_mfm为条件,我们利用偏移估计器来预测第(t+1)(t+1)(t+1)帧ft+1f_{t+1}ft+1的局部区域(k×kk \times kk×k网格)内每个空间位置的二维偏移。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模注意,偏移估计器实现为一个2D卷积层,输出通道大小为2k22k^22k2。更具体地说,设(Δa,Δb)(\Delta a, \Delta b)(Δa,Δb)表示以查询位置(x,y)(x, y)(x,y)为中心的k×kk \times kk×k网格内每个空间位置p=(a,b)p = (a, b)p=(a,b)的估计二维偏移量,相应的不规则空间位置表示为p′=(a+Δa,b+Δb)p' = (a + \Delta a, b + \Delta b)p′=(a+Δa,b+Δb)。在Deformable Convolutional Networks之后,作者在每个不规则空间位置p′p'p′上通过双线性插值对特征Kt+1′(p′)K'_{t+1}(p')Kt+1′(p′)进行采样,即:
其中p′p'p′为分数空间位置,ppp枚举局部区域内的所有积分空间位置。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模Kt+1(p)K_{t+1}(p)Kt+1(p)表示正则空间位置ppp上的主特征,GGG为双线性插值核。对第(t+1)(t+1)(t+1)帧ft+1f_{t+1}ft+1中的所有k2k^2k2个可变形特征进行采样后,将其作为第ttt帧ftf_tft中的查询Qt∈RCQ_t \in \mathbb{R}^CQt∈RC的键Kt+1′∈RC×{k×k}K'_{t+1} \in \mathbb{R}^{C \times \{k \times k \}}Kt+1′∈RC×{k×k}和值Vt+1′∈RC×{k×k}V'_{t+1} \in \mathbb{R}^{C \times \{k \times k \}}Vt+1′∈RC×{k×k}。这样,我们对附近帧的局部可变形区域执行SIFA机制,并通过注意力聚合这些可变形特征来进一步强化每帧特征通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。即
最后,将第ttt帧的增强特征YtY_tYt作为SIFA块的输出。
SIFA块作为时间建模的独立原语,可以插入到任何2D CNN或Vision Transformer架构。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模这样的设计自然升级了这些视觉主干,具有时间建模的能力,从而促进了视频表示的学习。在这里,介绍如何将SIFA块集成到现有的2D CNN(例如ResNet)和Vision Transformer(例如Swin Transformer)中。下图描述了用SIFA块在ResNet/Swin Transformer中配备基本构建块的两种不同结构,即SIFA-Net和SIFA-Transformer。更多细节见论文和代码!!
本文提出了 Stand-alone Inter-Frame Attention(SIFA)块,它探索了跨帧的变形,用于局部自注意的时间建模。通过深入研究帧间的变形来推断局部变形区域内的时间注意力,以进行时间建模。具体来说,SIFA以当前帧的空间位置为查询对象,对下一帧局部邻近区域的键/值进行自注意。此外,针对下一帧目标的不规则变形,利用可变形设计来估计局部区域内各个空间位置的偏移量,从而得到在一次变形中重新采样的键/值。这种可变形的特征重采样被运动线索重新缩放,以促进帧间注意学习。最后,对所有可变形值进行聚合,增强帧内特征。通过将SIFA块插入ResNet和Swin Transformer中,构建了两个新的视频骨干(SIFANet和SIFA-Transformer),并在四个动作识别数据集上进行了实验验证。
仅供参考,有任何问题欢迎一起讨论O(∩_∩)O