Progressive Attention on Multi-Level Dense Difference Maps for Generic Event Boundary Detection

本文提出了一种新的视频理解框架,通过多层次特征提取和密集差分映射,结合渐进式注意力机制,增强了外观和运动特征的融合,以提高类事件边界的检测性能。方法使用稠密差异图替代传统光流法,并引入Map-SqueezedAttention等技术优化特征融合过程。

基于多层稠密差分映射的类事件边界检测

贡献点

1.之前GEBD的特征提取,大多是用双流卷积网络进行简单空间和时间尺度的融合,而本文建立了一个多层次的特征库,其中的特征分别收集在不同的空间和时间尺度,这使得后续模块能够彻底感知视频中的不同层次的变化。

2.之前时间尺度的特征提取应用的大多都是光流法,而本文应用的是稠密差异图。我们计算长度为T的剪辑中每两帧之间的成对特征差异,并获得T×T稠密差异图。本质上就是时间自相似矩阵,但差异图更加注重差异,而时间自相似矩阵注重的是相似性,可以将其应用在需要相似性高或低的地方。

在视频理解中,以前的双流方法训练两个单独的网络,并通过线性融合或特征级联来简单融合两种视频模态,即外观和运动。然而,由于两种模态之间缺乏交互,它们的效果较差,无法满足外观和运动特征之间的依赖性。为此,我们的方法逐步尝试用多层次DDM,利用两个模态之间的相关性,以丰富的语义信息进行改善。

3.本文利用渐进式注意力挖掘隐藏在RGB特征和DDM中的重要线索。为了使DDM的形状与RGB特征匹配,我们设计了map-squeezed attention来汲取DDM。

1.框架在这里插入图片描述

2.Backbone/Multi-level Feature Bank

首先,采样的片段被送入 backbone 网络和时序卷积层,提取多层次的特征,GEBD 中的边界 pattern 在空间和时间上都具有多样性:空间上,low-level 的边界主要是环境、颜色、亮度的变化,基于分辨率较小、感受野较大的特征图(feature map)就能够较好地感知,而 high-level 的边界涉及到细节信息,需要利用分辨率较大、感受野较小的特征图;时间上,动作变化的持续时间是多样的,因此也需要利用不同感受野的时序特征。

具体地,我们在 backbone 的m层特征(如 ResNet50 的 layer3 和 layer4,分辨率分别为 1414 和 77)上执行 spatial average pooling,得到多个特征向量,将向量拼接得到该层的特征序列,从而得到m个时序特征序列(batchCT)。然后,对于m个特征序列,我们利用时序卷积得到具有不同感受野的n个时序特征序列。因此,总共有m*n个时序特征序列,用于后续的多层次密集差分计算。值得注意的是,基于 layer4 计算得到的时序特征序列也被作为 Appearance 特征,随后与密集差分图融合。
在这里插入图片描述

3.Multi-level Dense Difference Maps

由Backbone得到了mn的序列后,即共有L=mn层特征层,每一层进行时间自相似矩阵操作,然后,利用叠卷积层将差分矩阵∈ R(L×T×T)变换为M ∈ R(C×T×T)。即可得到C x T x T的DDM。需要注意的是,这个T x T是在DDM下方显示的,C表示的是维数。(这里的T x T实际上是用于生成DDM为了更好地提取时间特征)
在这里插入图片描述

4.Progressive Attention

渐进式注意力(Progressive Attention)是一种用于处理序列数据的注意力机制。在传统的注意力机制中,模型会在每个时间步对输入序列的所有位置进行注意力计算,然后对不同位置的信息进行加权融合,与传统全局注意力的直接加权不同,因为分阶段加权意味着对不同阶段或不同范围的数值应用不同的权重。这种方法通常用于区分不同数据范围的重要性,因此渐进式注意力常用于多模态融合,在多模态中,每个模态的特征权重自然不一样。假设我们要处理一个包含文本和图像的任务,比如图像描述生成。在这种情况下,我们既有图像的特征表示,也有文本描述的特征表示。传统的注意力机制可能会直接将文本和图像的特征进行拼接并加权,而渐进式注意力会分阶段进行。首先,模型可能会对图像和文本分别进行初步处理,得到它们各自的表示。然后,在第一阶段的注意力机制中,模型可能会关注图像的某些局部区域或文本中的关键词,并根据其重要性进行加权。接着,在第二阶段的注意力机制中,模型可能会结合第一阶段的输出,再次关注另一方面的信息,并进行进一步的加权。
在这里插入图片描述
以往的双流网络通常采用简单的聚合和融合方式,如线性融合或时间平均结果的特征级联。然而,它们缺乏模态之间的相互作用,因此不能充分利用我们提出的DDM,因此,为了更好地聚合外观和运动线索,我们在我们提出的多层次DDM中采用渐进式注意,包括Map Attention,Intra-Modal Attention和Cross-Modal Attention。

Map Attention

Map-Squeezed Attention"通过使用一种被称为“压缩映射”的技术,将输入的注意力分布映射到一个更紧凑的表示形式。这样做可以减少注意力权重的数量,并且可以降低计算成本,从而使得模型在处理长序列数据时更加高效。
压缩映射是一种将数据映射到更低维度表示的技术。在深度学习和机器学习中,压缩映射可以应用于特征提取、降维和注意力机制等方面。具体来说,要由图中的C x T x T变化到与RGB外观一致的C x T。首先,作者提到了一个张量 C×T×T=M,在 DDM 中,对于每一帧 Ii,其特征序列 M(i) 表示了该帧与其他帧的差异,因此,作者想要聚合 M(i)的元素以获得对应帧的剪辑级运动测量,作者提出了一种框架式注意力机制,用来计算 M(i)中所有元素的权重,这个权重由该帧的 RGB 特征 A(i)来决定,利用每帧的 RGB 特征 Ai 来参与 Mi 的所有元素,生成权重 γi,并将所有差异根据这些权重自适应地聚合到运动测量 Di 中。如下公式所示,其中Projection matrices是在计算机图形学和计算机视觉中使用的重要概念。它们用于将三维空间中的对象投影到二维平面上,以便在屏幕上显示或进行后续处理

在这里插入图片描述

Intra-Modal Attention

经过Map attention后得到了C x T 的特征序列,在剪辑中,不同时间戳的特征不应该同等重要。例如,在大多数情况下,剪辑的中心帧比剪辑的边缘帧更重要。因此,特征序列中并不是所有序列都同等重要,intra-modal attention的作用就是从一长串的特征序列中分离出关键帧。具体实现为,我们利用两个独立的Transformer解码器来分别聚合和增强关键的模态内特征A和D。
在这里插入图片描述
在这里插入图片描述

正弦位置嵌入是一种常见的位置编码方法,其基本思想是使用正弦函数和余弦函数来为序列中的每个位置分配一个固定维度的位置向量。这些位置向量可以被加到输入的嵌入向量中,从而使得模型在处理序列数据时能够考虑到元素的位置信息。

Cross-Modal Attention

由于类属事件边界的多样性和复杂语义,仅用外观或运动特征很难区分它们。它们的融合可以缓解这个问题,但是先前的融合方法(例如,特征连接)不能跨模态联合学习特征并充分利用特征互补性。因此,为了利用两种模态之间的依赖关系,我们执行跨模态特征聚合。
q ′ A通过交叉注意层引导和增强q ′ D。另一个共同注意力转换器Transformer的输入与第一个共同注意力转换器对称,即q ′ D作为查询,q ′ A作为键和值。
在这里插入图片描述
因此,DDM-Net将外观和运动线索与跨模态指导聚合在一起,有效地提高了事件边界的识别能力。在渐进式注意之后,q“A和q "D被分别传递到两个独立的fc层中以生成边界概率。重复上述预测一帧的边界概率的过程,我们得到整个视频的边界置信度序列。

损失函数

在这里插入图片描述

由于鉴别事件边界的帧是否是边界帧属于二元分类问题,即是边界帧或不是边界帧,因此损失函数可以采用二元交叉熵损失函数。当pn=1时,L是往下走的曲线,即损失函数变小对边界帧影响较小;当pn=0时,L是向上走的曲线,即损失函数变大。u是融合的分类概率,A是RGB外貌概率,D是DDM概率。

可视化结果

在这里插入图片描述

### 关于低光照条件下的多流渐进恢复用于暗图像增强和去噪 在低光照条件下,图像通常会受到噪声的影响,导致视觉质量下降。为了应对这一挑战,研究者们提出了多种方法来提高图像质量和减少噪声。其中一种有效的方法是采用多流渐进恢复策略来进行低光图像增强和去噪。 #### 多流渐进恢复的工作原理 该方法通过多个并行处理路径(即多流),逐步改善输入图像的质量。每一流专注于不同的特征提取或特定类型的降噪操作。随着网络层次加深,不同流之间的信息逐渐融合,从而实现更精细的细节保留和更好的去噪效果[^1]。 对于具体的技术实现方面,在北京交通大学的一项研究中提到的一种基于Transformer架构的设计——TCI (Transformer-based Cascaded Integration),它能够有效地捕捉空间上下文依赖关系,并且利用级联结构进一步增强了模型的学习能力[^2]。 ```python import torch from torchvision import transforms from PIL import Image class TCIModel(torch.nn.Module): def __init__(self, num_streams=3): super(TCIModel, self).__init__() # Define multiple streams here def forward(self, x): outputs = [] for stream in range(num_streams): output_stream = ... # Process each stream separately outputs.append(output_stream) final_output = sum(outputs)/len(outputs) # Simple averaging as an example return final_output def preprocess_image(image_path): transform = transforms.Compose([ transforms.Resize((256, 256)), transforms.ToTensor(), ]) img = Image.open(image_path).convert('RGB') tensor_img = transform(img).unsqueeze(0) return tensor_img if __name__ == "__main__": model = TCIModel() input_tensor = preprocess_image("path_to_low_light_image.jpg") enhanced_image = model(input_tensor) ``` 此代码片段展示了如何定义一个多流渐进恢复框架以及预处理函数以准备输入数据给定一个具体的图片文件路径。请注意这只是一个简化版本的实际应用可能更加复杂涉及到更多组件如注意力机制等特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值