【论文阅读笔记】A Recent Survey of Vision Transformers for Medical Image Segmentation

Khan A, Rauf Z, Khan A R, et al. A Recent Survey of Vision Transformers for Medical Image Segmentation[J]. arXiv preprint arXiv:2312.00634, 2023.

【论文概述】

本文是关于医学图像分割中视觉变换器(Vision Transformers,ViTs)的最新综述。文中详细回顾了ViTs及其与卷积神经网络(CNNs)结合形成的混合视觉Transformers(Hybrid Vision Transformers,HVTs)在医学图像分割方面的最新进展。文中讨论了这些技术如何通过模拟图像中的长距离关系来提高诊断、治疗计划和疾病监测的准确性。同时,还探讨了这些方法在不同医学图像模态(如CT、MRI、X射线等)中的实际应用,以及它们面临的挑战和未来的发展方向。

本文中规中矩,对涉及到的方法只是简单陈列,并没有细致的优缺点探讨,可以作为寻找对应方向论文的一个参考,笔记中对涉及到的方法根据之前读文经历进行简单的优缺点归纳。

【本文模型的分类方法】

  1. 本文首先对基于ViT的医学图像分割方法进行了全面综述,将其分为两大类:基于ViT的方法(ViT-based methods)和混合视觉Transformers的方法(HVT-based methods)。
  2. 对于基于ViT的方法,进一步将其细分为以下四类:
  • ViT在编码器(encoder)中的应用。

  • ViT在解码器(decoder)中的应用。

  • ViT在编码器-解码器之间(in between encoder-decoder)的应用。

  • 编码器和解码器都采用基于ViT的架构(both the encoder and decoder are ViT-based architectures)。

    3.对于混合视觉Transformers(HVT)的

视觉Transformer (ViT) 在通用图像分割任务中已经展现出强大的性能,尤其是在处理全局依赖和长距离上下文建模方面。然而,与传统卷积神经网络(CNN)相比,ViT 仍存在一些缺失点或局限性。 ### 计算资源需求较高 视觉Transformer 的计算复杂度通常与输入图像的分辨率呈平方关系,这使得其在高分辨率图像上的推理速度较慢,并且需要更多的内存支持。这种计算开销限制了其在实时应用或资源受限设备上的部署 [^1]。 ### 对局部细节建模不足 由于 ViT 主要依赖于自注意力机制来捕捉全局上下文信息,因此可能在建模局部细节时表现不如 CNN。卷积操作天然适合提取局部特征并保持空间层次结构,而 ViT 则需要额外的设计(如多尺度架构或引入局部注意力)才能有效保留这些特性 [^1]。 ### 数据依赖性强 视觉Transformer 模型通常需要大规模数据集进行预训练以达到最佳性能。对于小规模数据集,如果没有足够的正则化或增强策略,ViT 容易出现过拟合现象。相比之下,CNN 可以通过手工设计的归纳偏置(inductive bias)更好地泛化到较小的数据集上 [^1]。 ### 缺乏对多尺度特征的有效融合 尽管已有工作尝试将多尺度机制引入 ViT 架构中,但如何有效地整合不同层级的语义信息仍然是一个挑战。传统的 U-Net 或 Feature Pyramid Network (FPN) 等结构能够很好地结合浅层细节和深层语义,而 ViT 在这方面仍需进一步优化 [^1]。 ### 实现复杂度与工程实现难度 视觉Transformer 的实现相对复杂,尤其是在嵌入位置编码、窗口划分、掩码生成等方面。此外,在实际部署过程中还需要考虑硬件兼容性和加速库的支持问题,这对开发者提出了更高的要求 [^1]。 为了缓解上述问题,研究者们提出了多种改进方案,例如 Swin Transformer 中使用的滑动窗口机制、Convolutional Vision Transformer (ConViT) 中引入的卷积增强模块等。这些方法旨在结合 CNN 和 Transformer 的优势,从而提升模型的整体性能 [^1]。 ```python # 示例代码:使用 Hugging Face Transformers 库加载预训练的 SegFormer 模型用于图像分割 from transformers import SegformerForSemanticSegmentation, SegformerFeatureExtractor import torch # 加载预训练模型和特征提取器 model_name = "nvidia/segformer-b0-finetuned-ade-512-512" feature_extractor = SegformerFeatureExtractor.from_pretrained(model_name) model = SegformerForSemanticSegmentation.from_pretrained(model_name) # 输入图像处理 image = Image.open("example_image.jpg") inputs = feature_extractor(images=image, return_tensors="pt") # 推理过程 with torch.no_grad(): outputs = model(**inputs) logits = outputs.logits ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值