Non-local U-Nets for Biomedical

2020-05-18  本文已影响0人  zelda2333

论文:https://arxiv.org/abs/1812.04103
tensorflow代码:https://github.com/divelab/Non-local-U-Nets
pytorch代码:https://github.com/Whu-wxy/Non-local-U-Nets

存在的不足

作者首先分析了U-Net存在的不足。

创新点

实际上这个global aggregation block 完完全全就是将 NLP 中的 self-attention ,用到了图像中。不知道 self-attention 的可以看( ),我认为经典的 non-local block 就是把 self-attention 思想简化后应用到图像的结构,不知道 non-local block 的可以看(),

整体网络

整体网络

一开始输入维度为2 是因为作者的使用的数据集是 脑部 MRI ,每个数据都有2张图,分别是 T1, T2。

整体架构很清晰,我们来看一下每个 Block 具体都是什么。

Input Block

Input Block ,由一个 3 * 3 * 3 ,stride=1的卷积后接一个标准残差块构成。

标准残差模块

Down-sampling Block

由下图组成

down-sampling residual block

Bottom Block

底部模块,使用 Global Aggregation Block

Bottom Block

Global Aggregation Block

Global Aggregation Block

x,y:输入输出

Conv_1N:输出通道为N的点卷积

Unfold(·):将D × H × W × C展开为(D ×H ×W)×C张量

QueryTransformCK (·): 生成CK feature maps的任何操作, 在 Bottom Block QueryTransformCK (·)是111的卷积。

CK, CV:是表示键和值的维度的超参数

K,V: 假设X的尺寸为D×H×W×C,则K和V的尺寸分别为(D×H×W)×CK和(D×H×W)×CV

第一步,生成query (Q), key (K) and value (V ) 矩阵。Unfold之前有Multi-Head操作,Multi-Head将通道拆分,Q的维度为(DQ × HQ × WQ) × CK

Q,K,V

第二步,自注意机制。A为注意力矩阵,用Q点乘K的转置,除以根号CK,再使用softmax,A的维度为(DQ × HQ × WQ) × (D × H × W)。O的维度为(DQ × HQ × WQ) × CV。

自注意机制

第三步,还原为原维度大小。


还原为原维度大小

Up-sampling Block

倒数第一层 Up-sampling Block 由 up-sampling residual block 后接 标准残差模块 构成。
此处的 Up-sampling Global Aggregation Block ,和普通的 Global Aggregation Block一样,只是将 QueryTransformCK (·) 的 111的卷积 变为 反卷积,3 * 3 * 3
kernel_size = 2。

up-sampling residual block

倒数第二次 Up-sampling Block, 由反卷积和一个标准残差块组成。

Output Block

经过一个dropout层,1 * 1 * 1 后输出分割结果。

参考链接:

[AAAI 2020] 医学图像分割的Non-local U-Nets
【论文篇】【1】详解Non-local U-Nets

上一篇 下一篇

猜你喜欢

热点阅读