U-Net Transformer: Self and Cross Attention for Medical Image Segmentation

论文:https://arxiv.org/abs/2103.06104

主框架还是U-net,大体方向上改变了两个部分 encoder 和 skip
encoder:U-net的encoder是基于CNN网络经过卷积和pooling不断去降低分辨率,扩大感受野,将信息从分辨率转换到通道上,提取更高级的encoder feature map.
本文在提取encoder feature map之前,增加了self attention利用特征之间的全局作用去获得contextual information.(本质也是在CNN后面加入了Transformer模块)

skip:U-net的skip是将之前的encoder的不同层次的高分辨特征和decoder的特征进行拼接组合,这样有利于恢复decoder的高维特征丢失的空间信息
本文是引入了一个cross attention将encoder的特征中非关注的信息给过滤出去,使decoder获取更好的空间信息进行精修。
U-Net Transformer: Self and Cross Attention for Medical Image Segmentation_第1张图片

self attention:
U-Net Transformer: Self and Cross Attention for Medical Image Segmentation_第2张图片

就是transformer传统的self attention
可以获取图像的长距离结构信息
positional encoding可以获取器官绝对或者相对位置信息

cross attention:
U-Net Transformer: Self and Cross Attention for Medical Image Segmentation_第3张图片

S就是原来的skip结构,从encoder中拿的高分辨率特征
Y就是当前的decoder高维特征

这个cross attention的思想基本源自Attention U-Net那篇文章
基本的流程是这样的
U-Net Transformer: Self and Cross Attention for Medical Image Segmentation_第4张图片
(手画了)

这个cross attention 大概的思想就是我们分割的重点是什么,把encoder的高分辨率特征中分割的重点的特征拿过来
Q和K取自当前的decoder特征 V取自相对应的encoder特征
特征的结合由两种种途径构成
一 用Q和K获取当前特征的权重矩阵 x乘以V 获取分割中重要的部分的信息 再上采样成 2h2wd 然后把经过position encoding的S拿过来进行 点乘
二 把经过position encoding的Y 上采样到2hX2wX2d 然后再经过卷积降到2hX2wXd
把一和二最后的特征拼接在一起 得到新的decoder特征

在这个attention中
输入 是hXwX2d 输出2hX2wX2d
decoder主要是逐渐恢复分辨率 把通道信息放在图像的空间上 这个cross attention并没有改变特征的维度 和U-net一样 之后需要连接卷积去进行降维。

idea:
利用cross attention取代skip 过滤出富含语义分割的信息
Q和K来自decoder特征是为了寻找分割目标 给予对应的encoder特征中分割目标更大的权重

你可能感兴趣的:(图像分割,transformer,深度学习,pytorch)