Swin-Unet:纯Transformer的医学分割

整体架构:

05dac08633f506676495075d1880e38e.png

    由上图可以看出Swin-Unet主要由Swin Transformer Block,Patch Merging,Patch Expanding组成,其中左半部份就是Swin Transformer: Hierarchical Vision Transformer using Shifted Windows该篇论文的部分。Swin Transformer我在另一篇文章中有详细的解析与源码解读(Swin Transformer解读

Patch Expanding

        该模块的作用是进行上采样,用于扩大分辨率,调整通道数。(其中最后一次上采样Patch Expanding分辨率扩大了4倍)。

class PatchExpand(nn.Module):  
    def __init__(self, input_resolution, dim, dim_scale=2, norm_layer=nn.LayerNorm):
        super().__init__()
        self.input_resolution = input_resolution
        self.dim = dim
        self.expand = nn.Linear(dim, 2*dim, bias=False) if dim_scale==2 else nn.Identity()
        self.norm = norm_layer(dim // dim_scale)


    def forward(self, x):
        """
        x: B, H*W, c
        """
        H, W = self.input_resolution
        x = self.expand(x)    #[B,H*W,2c]
        B, L, C = x.shape
        assert L == H * W, "input feature has wrong size"


        x = x.view(B, H, W, C)
        x = rearrange(x, 'b h w (p1 p2 c)-> b (h p1) (w p2) c', p1=2, p2=2, c=C//4)  #[B,2H,2W,C//4]
        x = x.view(B,-1,C//4)        #[B,2H*2W,C//4]
        x= self.norm(x)
        return x

        该操作实质上就是Patch Merging的逆操作,示意图如下所示。

293966d05d6432c0a5f8634d4320aa70.png

实验结果

        对图像进行32倍的下采样和上采样,对多组医学器官进行了相应的分割表明,基于纯SwinTransformer的Unet网络要优于那些全卷机或者Transformer和卷积的组合。

3fc4973200de351d8a978c8c11e1e5ec.png

316ece1cc1e3def86f4ac82bd8e59399.png

c723b9a57fd36a37b98552d4bf2b3877.png

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Transformer发轫于NLP(自然语言处理),并跨界应用到CV计算机视觉)领域。 Swin Transformer是基于Transformer计算机视觉骨干网,在图像分类、目标检测、实例分割、语义分割等多项下游CV应用中取得了SOTA的性能。该项工作也获得了ICCV 2021顶会最佳论文奖。本课程将手把手地教大家使用labelme标注和使用Swin Transformer训练自己的数据集进行图片和视频的实例分割。  本课程将介绍Transformer及在CV领域的应用、Swin Transformer的原理。 本课程以汽车驾驶场景图片和视频开展项目实践:对汽车行驶场景中的路坑、车、车道线进行物体标注和实例分割。  课程在Windows和Ubuntu系统上分别做项目演示。包括:安装软件环境、安装Pytorch、安装Swin-Transformer-Object-Detection、标注自己的数据集、准备自己的数据集、数据集格式转换(Python脚本完成)、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计、日志分析。  本课程提供项目的数据集和相关Python程序文件。相关课程: 《Transformer原理与代码精讲(PyTorch)》https://edu.csdn.net/course/detail/36697《Transformer原理与代码精讲(TensorFlow)》https://edu.csdn.net/course/detail/36699《ViT(Vision Transformer)原理与代码精讲》https://edu.csdn.net/course/detail/36719《DETR原理与代码精讲》https://edu.csdn.net/course/detail/36768《Swin Transformer实战目标检测:训练自己的数据集》https://edu.csdn.net/course/detail/36585《Swin Transformer实战实例分割:训练自己的数据集》https://edu.csdn.net/course/detail/36586《Swin Transformer原理与代码精讲》 https://download.csdn.net/course/detail/37045
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柯西的笔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值