TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation(阅读笔记)

TransUNet结合Transformer与U-Net,通过Transformer编码全局上下文,U-Net解码实现精确分割。在医学图像分割任务中表现出优于传统CNN的效果,尤其在多器官和心脏分割上。

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

  • 代码:Beckschen/TransUNet
  • 论文:https://arxiv.org/abs/2102.04306

Abstract

TransUNet:Transformers为医学图像分割做强大编码器。医学图像分割领域U-Net架构取得突出成果但在远程依赖关系上有局限,而序列预测transformer由于low-level细节不足导致定位能力受限,本文提出transformer与U-Net结合,transformer将CNN特征图编码为上下文序列,解码器对编码的特征上采样,再与高分辨率特征图结合实现精准定位,结合transformer的U-Net,是医学图像分割的有效方案。

Introduction

CNN特别是全卷积神经在医学图像分割领域主导地位,在一些变体中,像UNet用跳过连接方式的网络增强了细节上特征的保留,成功应用在医学图像处理领域。但是在质地形状等特征上的保留仍有局限性,因此,基于CNN特征提出self-attention机制,完全免除卷积运算符,完全依靠注意力机制,此前广泛应用与NLP,最近应用在图像识别上也颇有成效。

本文提出TransUNet,Transformer采用self-attention机制将来自卷积神经网络(CNN)特征图的标记化图像块编码为提取全局上下文的输入序列。然后为了弥补Transformers特征解析(encoder)带来的损失,TransUNet采用混合CNN-Transforme

论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》由谷歌团队发表于ICLR 2021,主要介绍了Vision Transformer (ViT) 的设计与性能。以下是关于该论文的一些重要引用: ### 关键概念概述 - **图像分割为Patch序列**:为了使Transformer能够处理图像数据,论文提出将图像划分为固定大小的块(patches)。这些块被线性映射为向量,并附加位置编码以保留空间信息[^2]。 - **减少归纳偏差**:相比于传统卷积神经网络(CNN),ViT通过直接处理图像patch序列的方式显著减少了图像特定的归纳偏差。这意味着模型更加灵活,能够在不同类型的图像任务中表现出更强的泛化能力[^3]。 - **预训练的重要性**:研究发现,在大规模数据集上进行预训练对于提升ViT的表现至关重要。即使是在较小的数据集上微调时,经过充分预训练的ViT也能达到甚至超过现有最佳卷积网络的效果[^4]。 - **计算效率高**:尽管Transformer架构通常被认为计算成本较高,但实验表明,当应用于适当规模的任务时,ViT所需的计算资源实际上低于许多先进的CNN模型。 ### 技术细节说明 下面是一段简单的Python代码实现如何将一张图片转换成适合输入给ViT模型的形式: ```python import numpy as np def split_image_into_patches(image, patch_size=16): height, width, channels = image.shape patches = [] for y in range(0, height, patch_size): for x in range(0, width, patch_size): patch = image[y:y+patch_size, x:x+patch_size] if patch.shape[:2] == (patch_size, patch_size): # Ensure full-sized patches only. patches.append(patch.flatten()) return np.array(patches) # Example usage with a dummy RGB image of size 224x224 pixels and 3 color channels. dummy_image = np.random.rand(224, 224, 3) image_patches = split_image_into_patches(dummy_image) print(f"Number of Patches Generated: {len(image_patches)}") ``` 此函数会把任意尺寸的RGB图像切割成一系列形状相同的补丁,准备作为后续嵌入层的输入源材料之一。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值