论文阅读:Rethinking Visual Relationships for High-level Image Understanding

视觉关系检测新视角:构建VrR-VG数据集
论文提出了一种方法来过滤Visual Genome数据集中视觉不相关的关系样本,创建了VrR-VG数据集,挑战了仅依赖统计的视觉关系检测。通过visually-relevant relationship discriminator,过滤掉可通过非视觉信息预测的关系,使得数据更加聚焦于真正的视觉关系,推动了高阶图像理解的研究。

VrR-VG

文章
  本文想解决的问题是,对于视觉关系检测这一任务来说,在目前常用的权威数据集Visual Genome的一个子集VG150(VG中出现频率最高的150类物体和50类关系)上,直接可以依赖统计的方法解决得比较好,这不利于关系检测的进一步研究,因此文章设计了一个网络可以滤除掉VG数据集中那些视觉无关(visually-irrelevant)的关系样本。在新的数据集上,基于频率的方法不再有效。

如上图(a)就是VG150中的一个场景图描述,(b)则是本文的的方法对VG清洗之后留下的场景图描述(Visually-relevant Relationships in Visual Genome,VrR-VG)。其实我们也可以大概看出来,(b)的话更难使用频率进行关系类别的判断。

  为了滤除掉视觉不相关的关系样本,本文设计了一个visually-relevant relationship discriminator,思想就是“如果一个关系样本,在利用除视觉信息以外的特征,如物体类别和边界框位置就能较好地预测得话,那么这个样本就是视觉不相关的。”下面是本文的discriminator的结构

输入是主语和宾语的类别词向量和边界框的信息,p_o和p_s是主语和宾语边界框的(x,y,w,h),p_j则是两个框的一些相对位置信息如下

### TransUNet架构设计及其在医学图像分割中的改进 TransUNet 是一种结合了 Transformer 和 U-Net 的混合架构,旨在解决传统卷积神经网络(CNN)在处理长距离依赖和复杂特征时的不足。以下是 TransUNet 的核心设计和改进: #### 1. 架构概述 TransUNet 将 Transformer 引入到传统的 U-Net 结构中,通过以下方式增强其性能: - **Transformer Encoder**:利用多头自注意力机制(Multi-head Self-Attention, MHSA),捕捉全局上下文信息[^4]。 - **Decoder**:采用与 U-Net 类似的解码器结构,结合跳过连接(Skip Connection)恢复高分辨率特征图[^5]。 这种设计使得 TransUNet 能够在保持计算效率的同时,显著提升对复杂医学图像的分割精度。 #### 2. 改进点分析 TransUNet 在医学图像分割任务中引入了以下关键改进: - **长距离依赖建模**:相比于传统的 CNN,Transformer 的自注意力机制能够更好地捕捉图像中的长距离依赖关系,这对于医学图像中需要精确分割的小目标尤其重要[^6]。 - **多尺度特征融合**:通过结合 Transformer 和 CNN 的优势,TransUNet 能够在不同尺度上提取特征,并通过跳跃连接将这些特征有效融合[^7]。 - **轻量化设计**:尽管引入了 Transformer,TransUNet 仍然保持了较低的计算复杂度,这得益于其模块化的设计和高效的实现方式[^8]。 #### 3. 实现细节 以下是 TransUNet 的实现步骤和代码示例: ```python import torch import torch.nn as nn from transformer import Transformer class TransUNet(nn.Module): def __init__(self, img_size=224, patch_size=16, in_channels=3, num_classes=2, embed_dim=768, depth=12, num_heads=12): super(TransUNet, self).__init__() self.encoder = Transformer(img_size, patch_size, in_channels, embed_dim, depth, num_heads) self.decoder = UNetDecoder(embed_dim, num_classes) def forward(self, x): encoded_features = self.encoder(x) # Extract features using Transformer output = self.decoder(encoded_features) # Decode to generate segmentation map return output class UNetDecoder(nn.Module): def __init__(self, input_dim, num_classes): super(UNetDecoder, self).__init__() self.upconv1 = nn.ConvTranspose2d(input_dim, 512, kernel_size=2, stride=2) self.upconv2 = nn.ConvTranspose2d(512, 256, kernel_size=2, stride=2) self.final_conv = nn.Conv2d(256, num_classes, kernel_size=1) def forward(self, x): x = self.upconv1(x) x = self.upconv2(x) x = self.final_conv(x) return x ``` #### 4. 实验结果与比较 实验表明,TransUNet 在多个医学图像分割数据集上表现出色。例如,在 CT 腹部图像分割任务中,TransUNet 的 Dice 系数显著高于传统的 U-Net 和 Attention U-Net[^9]。此外,TransUNet 还展示了良好的泛化能力,能够在不同规模的数据集上保持稳定的性能[^10]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值