概述
在这篇论文中,提出了一种新的医学图像分割混合架构:phtrans,它在主要构建块中并行混合 transformer 和 cnn,分别从全局和局部特征中生成层次表示并自适应聚合它们,旨在充分利用 transformer 和 cnn 各自的优势以获得更好的分割性能。
具体来说,phtrans 沿用 u 形设计,在深层引入并行混合模块,其中卷积块和修改后的 3d swin transformer 块分别学习局部特征和全局依赖关系,然后使用 sequence-to-volume 操作统一输出维度以实现特征聚合,操作的具体细节在这篇阅读笔记的后面详细介绍。最后在 bcv 和 acdc 数据集上验证了其有效性,并用 nnunet 包预处理 bcv 和 acdc 数据集。
为什么要并行
下图的 (a)~(d) 是几种流行的基于 transformer 和 cnn 的混合架构,既将 transformer 添加到以 cnn 为 backbone 的模型中,或替换部分组件。其中 (c) 与 (b) 的区别是通过 transformer 桥接从编码器到解码器的所有阶段,而不仅仅是相邻的阶段,这就捕获了多尺度全局依赖。(d) 表示将 transformer 和 cnn 交织成一个混合模型,其中卷积编码精确的空间信息,而自注意力机制捕获全局上下文信息。
图 (e) 表示二者的并行。在串行组合中,卷积和自注意力机制无法贯穿整个网络架构,难以连续建模局部和全局表示,因此这篇论文里认为并行可以充分发挥它们的潜力。
phtrans 架构 overview
首先,我们从总体上分析一下 phtrans 架构,然后在下一部分看它的细节。如下图 (b),其主要构建块由 cnn 和 swin transformer 组成,以同时聚合全局和局部表示。图 (a) 依旧遵循的 u 形架构设计,在浅层只是普通的卷积块,在深层引入了 sequence-to-volume 操作来实现 swin transformer 和 cnn 在一个块中的并行组合。
我们上一篇解析的 unext 也是只在深层使用 tokmlp 的,看来浅层的卷积还是必要的。也就是说,与串行混合架构相比,phtrans 可以独立并行构建分层的局部和全局表示,并在每个阶段融合它们。
进一步解释下为什么输入的第一层也就是 u 型架构的浅层没有用 trans&conv block?因为自注意力机制的计算复杂度高,transformer 无法直接接收以像素为标记的输入。在论文的实现中,使用了级联卷积块和下采样操作来减小空间大小,逐步提取高分辨率的低级特征以获得精细的空间信息。类似地,这些纯卷积模块也部署在解码器的对应层,并通过上采样恢复原始维度。
我们仔细看下 phtrans 的编码器,对于 h×w×d 的输入 volume(3d 医学图像),其中 h、w 和 d 分别表示高度、宽度和深度,首先使用几个纯卷积模块得到的 volume,其中 n1 和 c 表示卷积块和通道的数量。然后输入到 trans&conv block 重复 n2 次。对于解码器同样基于纯卷积模块和并行混合模块构建,并通过跳跃连接和加法操作融合来自编码器的语义信息。此外,在训练期间在解码器的每个阶段都使用深度监督机制,产生总共 n1 + n2 个输出,其中应用了由交叉熵和 dice 的联合损失。
深度监督(deep supervision)又称为中继监督(intermediate supervision),其实就是网络的中间部分新添加了额外的 loss,跟多任务是有区别的,多任务有不同的 gt 计算不同的 loss,而深度监督的 gt 都是同一个 gt,不同位置的 loss 按系数求和。深度监督的目的是为了浅层能够得到更加充分的训练,避免梯度消失(有待研究)。在提供的 github 代码里,提到的超参数有 n1、n2、m1 和 m2,m1 和m2 是并行混合模块中 swin transformer 块和卷积块的数量。
trans&conv block
trans&conv block 的设计是我们最感兴趣的地方。缩小比例的特征图分别输入 swin transformer (st) 块和卷积 (conv) 块,分别在 st 块的开头和结尾引入 volume-to-sequence (v2s) 和 sequence-to-volume (s2v) 操作来实现 volume 和 sequence 的变换,使其与 conv 块产生的输出兼容。具体来说,v2s 用于将整个 3d 图像重塑为具有窗口大小的 3d patches 序列。s2v 是相反的操作。
如上一节的图 (b) 所示,一个 st 块由一个基于移位窗口的多头自注意力 (msa) 模块组成,然后是一个 2 层 mlp。在每个 msa 模块和每个 mlp 之前应用一个 layernorm (ln) 层,在每个模块之后应用一个残差连接。在 m1 个连续的 st 块中,w-msa 和 sw-msa 交替嵌入到 st 块中,w-msa能够降低计算复杂度,但是不重合的窗口之间缺乏信息交流,这样其实就失去了 transformer 利用 self-attention 从全局构建关系的能力,于是用 sw-msa 来跨窗口进行信息交流(跨窗口连接),同时保持非重叠窗口的高效计算。
对于医学图像分割,需要将标准 st 块修改为 3d 版本,该版本在局部 3d 窗口内计算自注意力,这些窗口被安排为以非重叠方式均匀划分体积。计算方法是下面这样的:假设 x ∈ h×w×s×c 是 st 块的输入,首先将其 reshape 为 n×l×c,其中 n 和 l = wh × ww × ws 分别表示 3d 窗口的数量和维度。每个 head 中的 self-attention 计算如下:
q, k, v ∈ l×d 是查询、键和值矩阵,d 是查询/键维度,b ∈ l×l 是相对位置偏差。b 的取值在论文和代码里都可以找到,这里我们就不仔细探究了。(b) 中的卷积块以 3 × 3 × 3 卷积层、gelu 非线性和实例归一化层为单位重复 m2 次。最后,通过加法运算融合 st 块和 conv 块的输出。编码器中 trans&conv 块的计算过程(抽象成并行)可以总结如下:
xi−1 是编码器第 i−1 阶段的下采样结果。值得注意的是,在解码器中,除了跳跃连接之外,还通过加法操作来补充来自编码器的上下文信息(图 (a) 中的圈 c 和 圈 +)。因此,解码器中的 trans&conv 块计算(抽象成并行)可以表示为:
实验
实验在 bcv 和 acdc 数据集上,bcv 分割腹部 ct 多个目标,acdc 是 mri 心脏分割,标记了左心室 (lv)、右心室 (rv) 和心肌 (myo)。在 bcv 上和其他 sota 方法的比较如下表:
在 acdc 上和其他 sota 方法的比较如 table 2 所示,table 3 中的参数量和 flops 和其他方法比也没有很夸张,参数量甚至和 nnu-net 相近。
可视化分割结果如下图,我们只定位蓝色肝脏的分割效果,箭头位置表明分割的效果 phtrans 是更优秀的。
总结
phtrans 也许为更多下游医学图像任务开发了新的可能性。在 phtrans 中,都是普通的 swin transformer 和简单的 cnn 块,这表明性能提升源于并行混合架构设计,而不是 transformer 和 cnn 块。此外,phtrans 没有经过预训练,因为到目前为止还没有足够大的通用 3d 医学图像数据集。
360OS 奇少年手机即将上市,它可解决“家庭手机战争”难题
独家供应 Dreamtech为三星提供指纹识别模组
PC/104模块Diamond-MM-AT的原理与应用
未来智能安防需要逾越几大技术鸿沟
关于智慧供配电监控系统发展现状的解读
利用Transformer和CNN 各自的优势以获得更好的分割性能
快讯:Space X载人飞船首发成功并与国际空间站对接
半导体调研要以解决问题为导向
关于智能型太阳能充电电路的系统设计
基于区块链技术驱动的电子商务系统Bezop介绍
请问重装系统后D盘里的软件还能不能用
华为p50 pro像素是多少
深度解读触控面板的静电放电防护措施
日本ZMP开发的送货机器人在东京市区进行测试
!销售/回收HP8561E频谱分析仪HP8561E现货!小兵
变频器干扰的常见现象及解决方法
Java为什么一直在编程语言榜首
日本芯片巨头铠侠已获得许可证,可向华为供应服务器芯片
【服务器数据恢复】raid0数据恢复案例和raid数据回迁案例
锂离子电池全温域应用的性能、机理及策略简析