zoukankan      html  css  js  c++  java
  • 医学图像分割论文(cvpr2021): TransUNet

     摘要

      在医学语义分割中,卷积操作的固有局部性,导致U型网络在建模长期依赖方面显示出局限性。transformer被设计用于序列到序列的预测,由于其固有的全局注意力机制,使其可作为可选网络结构。但transformer低级细节不足,可能导致本地化能力有限。

        本文提出TransUNet,比transformer和Unet都要好,可作为医学图像分割的替代方案。transformer从cnn的特征图编码图像块,作为输入序列,用于提取全局特征。解码器上采样编码特征,与高分辨率CNN特征结合,进行精确定位。

    代码已开源:https://github.com/Beckschen/TransUNet


    方法

    transformer作为编码器    

    • 图像序列化

            与【4】相同,首先进行切分,将输入x变为平面的2维patch序列,每个patch大小PxP,数量N=(HW)/P2,即序列长度。

    • patch嵌入

        使用可训练线性投影,将向量化的patch Xp映射到潜在的d维嵌入空间.

        为编码patch空间信息,学习特定的位置嵌入,与patch嵌入相加,保留位置信息

      

        E是Patch嵌入投影,Epos代表位置嵌入

        transformer编码器由L层多头自注意力(MSA)和多层感知机块(MLP)组成,所以第l层的输出为:

      

        LN代表层归一化,ZL是编码的图像表征,transformer层的结构如图1(a)所示。

     

    TransUNet

        利用一个混合了CNN-Transformer结构作为编码器,并且用一个级联的上采样器保证精确预测。

    • CNN-transformer混合作为编码器

            CNN首先用于特征提取器产生一个特征图,作为输出。

            patch嵌入应用到(CNN的)特征图对应的1x1的patches上,而不是原图。

    • 级联的上采样器(CUP)

            包含多个上采样步骤,以解码输入特征,用于输出最后的分割掩码。

           在将隐藏特征序列变为H/P x H/P x D,我们通过级联多个上采样块来实现从H/P × W/P到H×W的全分辨率,每个块依次由一个2×上采样算子、3×3卷积层和ReLU层组成。

            我们可以看到,CUP和混合编码器形成了一个u型架构,通过跳过连接,可以在不同的分辨率级别上实现特征聚合。CUP的详细结构以及中间的跳跃连接如图1(b).


    实验和讨论   

    实现细节:

        简单数据增强:随机旋转和翻转

        ViT:12层transformer层;

        R50-ViT:ResNet-50和ViT

        输入:224x224,patch为16x16

        4个上采样块

     

     

     

     

    过去已逝,未来太远,只争今朝
  • 相关阅读:
    JAVA-throw new IOException报错unhandled exception:java.lang.Exception 2021年6月7日
    GIt保持远程 源仓库与Fork仓库同步--2017年6月13日
    Python的getattr()-2017年6月7日
    JavaScript学习-2017年5月18日
    Writing your first Django app--2017年5月9日
    M4-AC6 Oh,Trojan Again--2017年5月9日
    吴军硅谷来信
    【1】Prologue--A Game of Thrones--2017年4月8日
    M4-PC9 Read 10,000 Books,Travel 10,000 Miles--2017年5月8日
    资源分配图RAG的化简
  • 原文地址:https://www.cnblogs.com/BlogLwc/p/14750685.html
Copyright © 2011-2022 走看看