Attention Guided Network for Retinal Image Segmentation

Attention Guided Network for Retinal Image Segmentation

论文地址:https://arxiv.org/abs/1907.12930
代码:https://github.com/HzFu/AGNet
亮点:在深度学习CNN网络中融入了传统的CV方法Guided Filter!


Attention Guided Network for Retinal Image Segmentation是MICCAI2019中的一篇,最近正在做眼底图像处理的项目并且用到了attention机制,导师也让看一些关于segmentation的论文,正好在MICCAI List里面看到了这篇论文,记录一下。

文章提出了一种结合了attention和filter的网络结构:AG-Net,AG-Net以M-Net为基础进行改进,也是一种end-to-end类型的网络结构,看起来类似于U-Net。结构如下:
Attention Guided Network for Retinal Image Segmentation
网络的输入是mutil-scale,每一层都会额外输入一个对应尺度的原图像,这样做可以防止一些原图信息在下采样操作时丢失。文章的亮点在于AG模块,AG模块结合了attention机制和Guided Filter,将深度学习与传统图像处理技术结合了起来。
AG模块结构如下:
Attention Guided Network for Retinal Image Segmentation
AG模块结合了attention机制和Guided Filter,前面是一个简单的attention block,得到一个attention map T,参与后面的Filter运算。Guided Filter由Kaiming He 提出,通过一个指导图像来指导对图像的滤波操作,能够对图像的边缘更加敏感,使得图像中边缘不会因滤波操作而模糊,保持了原有的梯度。


Guided Image Filter:
输入: 原图p 和一个指导图像 I
输出: 图像q
Attention Guided Network for Retinal Image Segmentation
在图像I中的每个Window计算两个参数a和b,然后输出图像q中的每个像素值由I中对应的像素通过线性计算得到(保证了梯度一致)。其中a和b的计算由最小化图像q和原图p之间的像素误差来得到:
Attention Guided Network for Retinal Image Segmentation
还有一个问题就是一个像素i包含在不止一个Window中,由不同Window对应的a和b计算出的值可能不同,文章采用的方法是将从所有相关的Window求出的像素值取平均:
Attention Guided Network for Retinal Image Segmentation


AG block 采用了这样的一个Guided Filter,但是同时结合了attention,前面得到的attention map T在求a和b两个参数时发挥了作用,作者定义了函数为:
Attention Guided Network for Retinal Image Segmentation
通过对这个函数求最小值来得到ab值,其中Ti是对应attention map 在像素i位置的attention
weight。
Attention Block 的使用至关重要,它有效的抑制了图像的背景信息。

该模型在两种眼底图像数据集上都取得了很好的效果
Attention Guided Network for Retinal Image Segmentation
Attention Guided Network for Retinal Image Segmentation