【论文阅读】**Cross-Modality depth Estimation via Unsupervised Stereo RGB-to-infrared Translation**

本文提出了一种框架,通过无监督学习和立体约束,从RGB图像生成红外图像并估计RGB-IR立体对的深度。方法利用傅里叶域适应策略和多空间扭曲正则化,解决了KITTI数据集缺乏配对RGB-IR数据和保持立体一致性的问题,提升了深度估计的鲁棒性和性能。

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

【论文阅读】Cross-Modality depth Estimation via Unsupervised Stereo RGB-to-infrared Translation

基础信息

ICASSP 2023 - 2023 IEEE 声学、语音和信号处理国际会议 (ICASSP)

Cross-Modality depth Estimation via Unsupervised Stereo RGB-to-infrared Translation

论文链接:https://ieeexplore.ieee.org/abstract/document/10095982

数据集:

目标:

代码:

已有方法的问题

  1. 由于KITTI中缺乏成对的RGB-IR数据,很难将IR图像的内在特征准确地表达为正则化并保持场景语义一致性,以有效地训练翻译网络无监督的方式
  2. 在为双目深度估计方法生成立体红外图像时,我们必须保持左右视图之间的立体一致性。现有的单视图平移方法[18]、[19]通常无法在两个生成的视图上生成几何一致的纹理。

本文的创新点

  1. 框架由RGB到IR转换(RIT)网络组成,用于从相应的立体RGB图像合成立体IR图像,以及跨模态深度估计(CDE)网络来估计跨模态 RGB-IR 立体对的差异
  2. 我们的核心思想是从可用的成对 RGB-IR 数据集1中学习单视图 RGB-IR 关系,然后将其推广/适应目标 KITTI 立体数据集
  3. 无监督傅里叶域适应策略来促进翻译任务,该策略采用自集成来对齐从源数据和目标数据中提取的特征,将 RGB-to-IR 关系转移到目标域

整体架构

实验

代码细节

介绍

深度估计是许多计算机视觉应用的一项基本任务[1]、[2]、[3]。随着CNN的发展,许多算法进一步提高了深度估计的性能。主流方法是从立体图像估计场景深度。根据训练方式的不同,监督方法[4]、[5]、[6]使用真实视差图直接指导训练,而无监督方法[7]、[8]、[9]将深度估计重新表述为利用立体关系作为监督来辅助训练的图像重建问题。

一般来说,大多数现有方法[ 4,5,6,10,11,7,8,9,12,13 ]仅使用可见光(RGB )图像进行估计。_ _ _ 虽然RGB图像具有丰富的纹理和高对比度,但成像对光线的变化非常敏感,导致在能见度下降的条件下难以准确估计。相反,红外(IR)成像捕捉物体的热辐射,纹理较少,对比度较低,但相对于RGB图像有其自身的优势,例如对光线变化的不变性,对雾/雨/雪天气的穿透力更高以及更远的检测距离,可以为深度估计提供更有意义的线索。然而,受限于低对比度和较少纹理的特点,基于红外图像的方法[14]、[15]、[16]无法以足够的精度估计深度。因此,迫切需要一种 RGB-IR 跨模态的深度估计方式,以便以更鲁棒的方式进行估计。然而,红外图像的获取存在巨大障碍。一些常用的数据集(例如 KITTI [17])没有配对的立体红外图像和 RGB-D 数据。尽管市场上有一些硬件解决方案,但通常需要额外的红外传感器。此外还面临图像收集和配准的挑战。因此,如何有效地获得配对的立体红外图像成为本工作要解决的首要问题。

图像翻译[18]是解决该问题的一种可行方法,考虑到RGB-IR对之间的强结构相似性,通过从相应的RGB图像生成IR图像。然而,我们的困难在于:1)由于KITTI中缺乏成对的RGB-IR数据,很难将IR图像的内在特征准确地表达为正则化并保持场景语义一致性,以有效地训练翻译网络无监督的方式。2)在为双目深度估计方法生成立体红外图像时,我们必须保持左右视图之间的立体一致性。现有的单视图平移方法[18]、[19]通常无法在两个生成的视图上生成几何一致的纹理。在本文中,我们通过正确设计无监督学习方案和立体约束成功地解决了这两个挑战。

具体来说,如图1所示,我们提出了一个框架,该框架由RGB到IR转换(RIT)网络组成,用于从相应的立体RGB图像合成立体IR图像,以及跨模态深度估计(CDE)网络来估计跨模态 RGB-IR 立体对的差异。我们的核心思想是从可用的成对 RGB-IR 数据集1中学习单视图 RGB-IR 关系,然后将其推广/适应目标 KITTI 立体数据集。因此,我们提出了一种无监督傅里叶域适应策略来促进翻译任务,该策略采用自集成来对齐从源数据和目标数据中提取的特征,将 RGB-to-IR 关系转移到目标域。由于红外图像具有低对比度和包含许多平滑区域的特性,我们用频率统计重新表达它们,并在傅立叶域中应用域对齐。对于立体约束,我们引入了多空间扭曲正则化来生成几何一致的立体红外图像,这增强了输出、特征和亲和空间的两个视图之间的左右一致性。我们的主要贡献如下:

  • 我们摆脱了一般范式的束缚,首先引入了一种新颖的跨模态深度估计方案,该方案既可以克服基于单模态方法的弱点,又可以保持对训练数据集的低要求。
  • 我们提出了傅里叶域适应和多空间扭曲正则化,以使无监督立体翻译变得可行。
  • 在合成立体红外图像的辅助下,与现有的基于单模态 (RGB) 的方法相比,我们在 KITTI 上获得了卓越的性能。我们的方案可以灵活地部署到大多数现成的深度估计骨干网,包括无监督[13]、[21]和监督方法[11],以提高其性能。
### Cross-Modality Attention Fusion (CMAF) 的 Python 实现 以下是基于现有技术背景构建的一个可能的 **Cross-Modality Attention Fusion (CMAF)** 的简化实现框架。此代码旨在展示如何通过注意力机制融合来自不同模态的信息。 #### 跨模态注意力融合的核心概念 跨模态注意力融合的目标是从不同的输入模态中提取特征并进行有效组合,从而增强模型的表现力。具体来说,可以通过自注意力机制或双向交互的方式完成这一过程[^1]。 ```python import torch import torch.nn as nn import torch.nn.functional as F class ModalityAttention(nn.Module): """ 单一模态内的注意力计算模块。 输入:单个模态的特征张量。 输出:经过注意力加权后的特征表示。 """ def __init__(self, dim_in, dim_out): super(ModalityAttention, self).__init__() self.query = nn.Linear(dim_in, dim_out) self.key = nn.Linear(dim_in, dim_out) self.value = nn.Linear(dim_in, dim_out) def forward(self, features): Q = self.query(features) # Query K = self.key(features).transpose(-2, -1) # Key Transpose V = self.value(features) # Value attention_scores = torch.matmul(Q, K) / torch.sqrt(torch.tensor(K.size(-1), dtype=torch.float)) attention_probs = F.softmax(attention_scores, dim=-1) context = torch.matmul(attention_probs, V) return context class CrossModalityAttentionFusion(nn.Module): """ 跨模态注意力融合模块。 输入:两个模态的特征向量 X 和 Y。 输出:融合后的特征表示 Z。 """ def __init__(self, modality_dim=512, hidden_dim=256): super(CrossModalityAttentionFusion, self).__init__() self.modality_attention_x = ModalityAttention(modality_dim, hidden_dim) self.modality_attention_y = ModalityAttention(modality_dim, hidden_dim) self.cross_modality_fusion = nn.MultiheadAttention(embed_dim=hidden_dim, num_heads=4) def forward(self, x_features, y_features): attended_x = self.modality_attention_x(x_features) # 对X模态应用注意力 attended_y = self.modality_attention_y(y_features) # 对Y模态应用注意力 fused_representation, _ = self.cross_modality_fusion(attended_x.unsqueeze(0), attended_y.unsqueeze(0), attended_y.unsqueeze(0)) # 双向交互 return fused_representation.squeeze(0) # 测试代码 if __name__ == "__main__": batch_size = 8 seq_len = 10 modality_dim = 512 # 假设我们有两个模态的数据 x_input = torch.randn(batch_size, seq_len, modality_dim) # RGB 数据 y_input = torch.randn(batch_size, seq_len, modality_dim) # 红外数据 cmaf_model = CrossModalityAttentionFusion() output = cmaf_model(x_input, y_input) print(f"Fused Representation Shape: {output.shape}") # 应输出 [batch_size, seq_len, hidden_dim] ``` --- 上述代码实现了以下功能: 1. 定义了一个 `ModalityAttention` 类,用于处理单一模态内部的注意力计算。 2. 构建了核心的 `CrossModalityAttentionFusion` 模型,该模型接受两组模态特征作为输入,并通过双向注意力机制生成融合后的特征表示。 3. 使用 PyTorch 中的 `nn.MultiheadAttention` 来实现跨模态间的交互操作。 这种设计借鉴了 Transformer 结构中的多头注意力机制以及双流网络的思想[^2]。 --- ### 注意事项 - 上述代码是一个基础版本,实际部署时需考虑更多细节,例如正则化、损失函数的设计等。 - 如果涉及更复杂的场景(如行人重识别或多标签分类),可以进一步扩展模型结构,加入额外的分支或约束条件[^3][^4]. - 需要根据具体的任务调整超参数设置,比如隐藏层维度 (`hidden_dim`) 或注意力头数 (`num_heads`)。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值