Attention U-Net

论文:https://arxiv.org/pdf/1804.03999.pdf
论文翻译1
论文翻译2

亮点:

  1. 将注意力机制应用于UNet分割网络中,可以比较好的实现对显著性区域的关注,以及对无关背景区域的抑制。
  2. 注意力模型可以很好的嵌入到CNN框架中,而且不增加计算量的同时提高模型性能。

架构

model

attention模块用在了skip connection上,原始U-Net只是单纯的把同层的下采样层的特征直接concate到上采样层中,改进后的使用attention模块对下采样层同层和上采样层上一层的特征图进行处理后再和上采样后的特征图进行concate
attention模块

attention

Attention coefficients(取值0~1)与feature map相乘,会让不相关的区域的值变小(抑制),target区域的值变大(Attention)。

这是3D的数据,F代表 feature( channel),H 代表 height, W 代表 width, D代表 depth,就是3D数据块的深度。
Attention的意思是,把注意力放到目标区域上,简单来说就是让目标区域的值变大。

看下面这张图,xl本来是要直接通过跳跃连接和g上采样的结果进行concat,这里先对xl和g转成一样的size,然后相加,relu, sigmoid得到attention 系数后再与xl相乘。

为什么这样就能让注意力放到target区域呢?

文中提到要结合上下文的信息,其实上代表xl,g代表下,因为g学到的东西更多,信息更准确。为什么要加g呢?加g是很重要的,没有g就没有办法实现注意力系数的训练更新。我是这么理解的:g里面的信息,就是注意力该学习的方向。可以这么想,如果直接将g上采样一次得到g',g'和xl的size一样。那么同样是target的区域的像素值,g'里的像素值会比xl里的像素值大,和xl叠加,就相当于告诉了xl应该去学习的重点。

把g里的信息叠加到xl,再通过训练使得attention 系数的值在0~1之间(让注意力更集中),让target区域的值趋近1,不相关的区域趋近0。

最后,让xl与attention coefficients相乘,相乘的结果里,就能把注意力放到目标区域上了。

attention-unet

unet

总结:
利用下采样层的结构化信息和当前层纹理信息的融合,利用sigmoid归一化,得到关联性强的区域,和当前层做乘积,从而强调本层的显著性区域的特征。

在基础的UNet的基础上增加了attention 的机制,通过自动学习参数来调整激活值,attention的可视化效果还是主要部分,不像non-local的方式每一个像素点都要和其他像素点进行关联,可以视作一种隐式的注意力机制。

参考链接:
Attention U-Net--胡二妞
Attention U-Net--炼丹师
Attention U-Net--许希律
医学图像分割-Attention Unet

你可能感兴趣的:(Attention U-Net)