科研学习|论文解读——交叉注意力融合2024经典论文(配套模块和代码)

本文探讨了多模态学习和注意力机制中的交叉注意力融合技术,介绍了13个关键的创新成果,包括端到端的图像融合方法、多光谱目标检测、点云分割等领域的解决方案。这些研究展示了交叉注意力在提升模型性能和复杂任务处理中的潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多模态学习和注意力机制是当前深度学习研究的热点领域之一,而交叉注意力融合作为这两个领域的结合点,具有很大的发展空间和创新机会。

作为多模态融合的一个重要组成部分,交叉注意力融合通过注意力机制在不同模块之间建立联系,促进信息的交流和整合,从而提升了模型处理复杂任务的能力,展现出其在多模态学习和聚类分析等领域的强大优势。

本文盘点交叉注意力融合相关的13个技术成果,包含2024年最新的研究,这些模块的来源文章以及代码我都整理了,希望能给各位的论文添砖加瓦。

一、Rethinking Cross-Attention for Infrared and Visible Image Fusion

方法:(https://arxiv.org/pdf/2401.11675.pdf

本文提出了一种端到端的ATFuse网络,用于融合红外图像。通过在交叉注意机制的基础上引入差异信息注入模块(DIIM),可以分别探索源图像的独特特征。同时,作者还应用了交替公共信息注入模块(ACIIM),以充分保留最终结果中的公共信息。为了训练ATFuse,作者设计了一个由不同像素强度约束组成的分割像素损失函数,以在融合结果中达到纹理细节和亮度信息的良好平衡。

创新点:

  1. 提出了一种端到端的ATFuse网络,用于融合IV图像。在多个数据集上进行的大量实验表明,我们提出的ATFuse方法具有良好的效果和泛化能力。
  2. 基于交叉注意机制提出了一种差异信息注入模块(DIIM)。通过这个DIIM,可以分别探索源图像的独特特征。
  3. 将交替公共信息注入模块(ACIIM)应用于所提出的框架中,其中公共信息在最终结果中得到充分保留。
  4. 设计了由不同像素强度约束组成的分割像素损失函数,用于训练ATFuse,以便在融合结果中实现纹理细节和亮度信息的良好权衡。

十字交叉注意力机制(Cross-Cross Attention Mechanism)是一种用于自然语言处理中的注意力机制。它可以将两个不同位置的序列进行交叉关注,从而实现更好的信息交流融合。下面是一个基于PyTorch实现的十字交叉注意力机制的代码示例: ```python import torch import torch.nn as nn class CrossAttention(nn.Module): def __init__(self, hidden_size): super(CrossAttention, self).__init__() self.hidden_size = hidden_size self.attention = nn.Linear(hidden_size * 2, 1) def forward(self, source, target): # source: batch_size x source_len x hidden_size # target: batch_size x target_len x hidden_size batch_size, source_len, _ = source.size() _, target_len, _ = target.size() # compute attention scores source = source.unsqueeze(2).repeat(1, 1, target_len, 1) # batch_size x source_len x target_len x hidden_size target = target.unsqueeze(1).repeat(1, source_len, 1, 1) # batch_size x source_len x target_len x hidden_size combined = torch.cat([source, target], dim=-1) # batch_size x source_len x target_len x hidden_size*2 scores = self.attention(combined).squeeze(-1) # batch_size x source_len x target_len # compute context vectors attn = nn.functional.softmax(scores, dim=-1) # batch_size x source_len x target_len target = torch.bmm(attn.transpose(1, 2), source) # batch_size x target_len x hidden_size source = torch.bmm(attn, target) # batch_size x source_len x hidden_size return source, target ``` 在这个代码中,我们定义了一个名为`CrossAttention`的`nn.Module`,它接受两个输入源`source``target`。这两个源都是三维张量,分别表示形状为`(batch_size, seq_len, hidden_size)`的输入序列。在前向传递过程中,我们首先计算`source``target`之间的注意力得分(`scores`),并使用softmax函数将其转换为权重。然后,我们计算`source``target`的上下文向量(`source``target`),并将它们返回。 值得注意的是,这里的`attention`线性层将输入的`hidden_size*2`维度压缩到了1维,以计算注意力得分。此外,在计算上下文向量时,我们使用了PyTorch中的`bmm`函数来进行批矩阵乘法。 希望这个代码示例能够帮助你更好地理解十字交叉注意力机制的实现方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博士僧小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值