计算机系统应用  2022, Vol. 31 Issue (7): 372-378   PDF    
基于Retina-GAN的视网膜图像血管分割
侯松辰, 张俊虎     
青岛科技大学 信息科学技术学院, 青岛 266061
摘要:对于一些可以从视网膜血管观测到的眼科疾病, 眼底图像起着关键的作用, 能够为专业的医科人员提供有效的参考, 然而手工标注血管费时费力, 且工作量较大, 所以实现自动智能的血管分割方法对相关人员大有裨益. 本文将Attention机制与RU-Net结构融合应用到生成对抗网络(generative adversarial network, GAN)的生成器中, 形成了一种新的结构——Retina-GAN. 同时在对眼底图像的预处理步骤上选择了自动色彩均衡 (ACE), 提高图像对比度, 使血管更加清晰. 为了验证所提出的方法, 选用DRIVE数据集, 并把Retina-GAN与其他研究比照, 测量分析了算法准确性、灵敏度和特异度. 实验数据显示Retina-GAN比其他模型具有更好的性能.
关键词: 视网膜眼底图像    RU-Net    生成对抗网络    Retina-GAN    血管分割    深度学习    
Vessel Segmentation in Retinal Image Based on Retina-GAN
HOU Song-Chen, ZHANG Jun-Hu     
College of Information Science and Technology, Qingdao University of Science and Technology, Qingdao 266061, China
Abstract: For finding the ophthalmic diseases that can be observed from retinal vessels, fundus images play a key role and provide an effective reference for professional medical personnel. However, manual vessel segmentation has a large workload, which is time-consuming and laborious. Therefore, developing an automatic and intelligent segmentation method is of great benefit to relevant personnel. In this study, the attention mechanism and RU-Net structure are integrated into the generator of generative adversarial networks (GANs), forming a new structure—Retina-GAN. At the same time, automatic color equalization (ACE) is selected in the preprocessing of fundus images to improve image contrast and make blood vessels clearer. To validate the proposed approach, we compared the Retina-GAN with some other models on DRIVE datasets. Accuracy, sensitivity, and specificity are measured for comparative analysis. The experiment shows that Retina-GAN has better performance than other models.
Key words: retinal fundus image     RU-Net     generative adversarial network (GAN)     Retina-GAN     vessels segmentation     deep learning    

眼科专业人士往往将手工分割后的视网膜眼底图像作为眼科疾病的诊断依据, 从血管的病变情况观察到一些病症[1]. 然而血管的手工标注工作对于眼科医生来说费时费力, 处理不及时还有可能耽误病人的病情, 自动高效的血管分割不仅缓解相关专业人员的压力, 也有助于患者早发现早治疗, 因此实现智能的血管分割在疾病识别和预防方面有重要意义.

早期许多研究利用计算机视觉、有监督或无监督的机器学习算法来实现眼底图像的血管分割. 如高向军[2], 王爱华[3]早期提出的形态学分割方法, Chaudhuri等人[4]的匹配滤波方法等无监督算法, 以及Wang等人[5]提出的基于卷积神经网络的方法等有监督算法. 伴随深度学习算法研究的深入, 众多学者在提高血管分割性能方面的研究愈发深入, 使用深度学习架构的研究获得了比现有方法更好的性能, 比如, Fu等人[6]提出的基于深度学习与条件随机场的分割方法, 吴晨玥等人[7]对于卷积神经网络的改进, Rammy等人[8]提出的基于块的条件生成对抗网络分割方法以及钟文煜等人[9]对改进的U-Net方法等血管分割算法. 这些基于深度学习的算法与以往算法相比展现了极大优势, 尤其是生成对抗网络, 在对于血管分割的问题上, 准确率等指标都可以看出明显提升.

当前分割仍存在问题: (1)眼底血管错综复杂导致分割结果中各类评价指标还有进步空间; (2) 对于血管细微分支类别的准确率还有待优化. 为了尝试解决这个问题. 本文提出了将RU-Net网络作为生成器部分的GAN改进版模型, 并添加了一种Attention机制, 应用在生成器部分, 使分割区域更明确, 提高分割的准确度和特异度; 判别器选择卷积神经网络. 在对数据集的预处理上, 本文使用了自动色彩均衡ACE算法[10], 并与其他预处理方式的实验结果比对, 对DRIVE数据集通过翻转、旋转角度、均匀切割等操作将数据集扩充至3840张, 实验显示, 本文的模型展现了更好的性能.

1 基于深度学习的Retina-GAN模型整体网络架构

本文将生成对抗网络(generative adversarial network, GAN)与RU-Net结合并添加一种Attention机制, 构成Retina-GAN视网膜血管分割模型, 如图1所示, Retina-GAN由3个部分组成:

(1)图像预处理阶段, 采用自动色彩均衡(ACE), 加强图像对比度, 对图像阈值分割得到掩膜图像, 扩充数据集, 每张图像分成16个patch;

(2)生成器部分, 该部分采用RU-Net网络[11], 添加Retina-Attention机制, 将模型关注区域锁定在有效视网膜区域, 生成的patch进行重组;

(3)判别器部分, 采用卷积神经网络对生成的图像进行判别, 继而优化损失函数.

图 1 Retina-GAN模型整体架构

1.1 生成对抗网络GAN

GAN在被Goodfellow等人[12]提出后迅速发展, 并广泛应用于图像合成、样式转换、图像分类、语义分割等领域. 此外, GAN 在医学图像处理中也崭露头角, 如解剖学图像精准采样、检测前列腺癌细胞病变等. 学者们基于GAN模型又提出了多种扩展网络模型, 如Conditional GANs[13]、Wasserstein GAN[14]、Pix2Pix[15]、DCGAN[16]等.

在本文的架构中, 生成器(generator, G)担任着生成眼底血管分割图的角色, 它的输入是任意一张眼底图像z, G通过z生成的视网膜血管图像, 记为G(z). 判别器(discriminator, D)则担任着判别血管图片是否真实的角色, 以专家手工标注的血管图像为标准. 判别器的输入是血管分割图像x, 输出D(x)是图像x为专家标注真实图片的概率, 输出越倾向0, 图片就越虚假, 输出越倾向1, 图像越真实.

对生成器G和判别器D的训练过程就是令G生成的眼底图像G(z)越来越逼真, 使D难以判断图像是否为真实的眼底图像. 在训练过程中, GD逐渐趋向动态平衡. 这个过程最理想的状态就是在DG不断优化的同时, G生成的眼底图像G(z)越来越真实, 令D难以判定其真假性. 对G, D的训练过程如式(1)[12].

$ \begin{split} &\mathop {\min }\limits_G \mathop {{\rm{max}}}\limits_{{D}} {{V(D,G) = }}\\ &{{{E}}_{{{x\sim}}{{{p}}_{{\rm{data}}}}(x)}}\left[ {{{\log D(x)}}} \right]{{ + }}{{{E}}_{{{{\textit{z}}\sim}}{{{p}}_{{\textit{z}}}}({\textit{z}})}}\left[ {{{1 - \log D(G({\textit{z}}))}}} \right] \end{split} $ (1)

其中, x为真实眼底图像, 符合 ${p_{\rm{data}}}(x)$ 分布, z是输入到G的噪声, 符合 $ {p_{\textit{z}}}({\textit{z}}) $ 先验分布, 如高斯分布, G生成的眼底图像用G(z)表示. D(x)是D判断x是否真实的概率, 不难得出, D(G(z))就是G(z)是否真实的概率. 对于G而言, 式(1)越小越好, 对于D而言, 式(1)越大越好.

2 视网膜眼底图像预处理

实验选择DRIVE公开数据集, DRIVE由40张彩色视网膜图像组成以及对应的专家手工分割图像组成.

对图像的预处理选择了自动色彩均衡ACE, 通过对ACE处理过的图像水平、垂直翻转, 旋转角度, 平均分割等方式将DRIVE数据集扩充至3820张128×128的图像.

ACE是由Gatta等人[10]提出的, 并由Rizzi等人[17]以及Getreuer等人[18]进一步优化. ACE模仿人类视觉系统模型来对色彩校正和增强. 文献[17]依据Retinex理论提出了ACE, ACE能够对自适应滤波进行局部的调整, 使图像的对比度、亮度和色彩能够自适应局部或者是非线性特征的情况. 它需要两个阶段. 第一视觉编码阶段恢复场景区域的外观, 第二显示映射阶段将过滤后的图像的值归一化. 如式(2)[10]、式(3)所示, 一阶段从输入像素 $ {I_c}(p) $ 计算 $ {R_c}(p) $ , 二阶段从 $ {R_c}(p) $ 计算增强输出图像 $ {O_c}(p) $ , 在一阶段, 输出图像R在色度和空间调整后被创建, 创建后每个p都要依据图像的内容再次计算. 输出图像R中的每个像素分别为每个通道c计算.

$ {R_c}(p) = \frac{{\displaystyle\sum\nolimits_{j \in {\textit{Subset}}, j \ne p} {\dfrac{{r\left( {{I_c}(p) - {I_c}(j)} \right)}}{{d(p, j)}}} }}{{\displaystyle\sum\nolimits_{j \in {\textit{Subset}}, j \ne p} {\dfrac{{{r_{\max }}}}{{d(p, j)}}} }} $ (2)

其中, pj为两个像素点, $ {I_c}(p) - {I_c}(j) $ 表示2个点的亮度差, $ d(p, j) $ 是距离度量函数, $ r( \cdot ) $ 为亮度表现函数, 且为奇函数, 式(2)的作用是调整局部图像的对比度. $ r( \cdot ) $ 的作用是依照局部内容动态放缩范围, 比如放大细微的差异, $ {r_{\max }} $ 表示 $ r( \cdot ) $ 的最大值, $ {R_c}(p) $ 为中间结果.

$ {O_c}(p) = round[{s_c}{R_c}(p) - {m_c}] $ (3)

对于输出图像 $ {O_c}(p) $ , $ {s_c} $ 为线段 $ [({m_c}, 0), ({M_c}, 255)] $ 的斜率, $ {m_c} = {\min _p}{R_c}(p) $ , $ {M_c} = {\max _p}{R_c}(p) $ . 使用ACE的增强结果如图2(b)所示.

图 2 使用ACE的增强结果

3 基于Retina-Attention机制优化的生成器

对于生成器部分, 本文引用了RU-Net结构, 并添加了一种Attention机制对RU-Net进行优化, 将其称为Retina-Attention机制.

3.1 RU-Net

Alom等人被RCNN, U-Net以及深度残差模型所启发, 提出了基于U-Net的RCNN[19]模型RU-Net[11], 这种方法结合了这3种模型的优势, 如图3. 与U-Net模型相比, 所提出的模型有3方面的差异. RU-Net由卷积编码和解码单元两部分组成, 在编码单元以及解码单元中, 常规前卷积层被使用循环卷积层RCL和带有残差单元的RCL所取代. RCL单元其本身能包含高效的特征积累方法, 带有RCL的单元对模型的深入建设大有裨益.

图 3 RU-Net体系结构[11]

其中, RCL通过RCNN的离散时间步长进行的. 顾及残差RCNN (RRCNN)块的第l层中的 $ {x_l} $ 输入样本和RCL中第k个feature map上的输入样本中位于 $ (i, j) $ 的一个像素, 并假设网络 $O_{{ijk}}^{{l}}(t)$ 在时间步长t时的输出, 可以表示为式(4)[11]:

$ \begin{gathered} O_{ijk}^l(t) = {\left( {w_k^f} \right)^{\rm T}} * x_l^{f(i, j)}(t) + {\left( {w_k^r} \right)^{\rm T}} * x_l^{r(i, j)}(t - 1) + {b_k} \end{gathered} $ (4)

$ x_l^{f(i, j)}\left( t \right) $ 是标准卷积层的输入, $ x_l^{r(i, j)}\left( {t - 1} \right) $ 为第l层RCL的输入. $ w_k^f $ k的标准卷积层权值, $ w_k^r $ k的RCL权值, $ {b_k} $ 是偏差. RCL的输出则被送入标准ReLU激活函数f, 表示为式(5)[11]:

$ F\left( {{x_l}, {w_l}} \right) = f\left( {O_{ijk}^l(t)} \right) = \max \left( {0, O_{ijk}^l(t)} \right) $ (5)

$ F\left( {{x_l}, {w_l}} \right) $ 表示RCNN单元第l层的输出. $ F\left( {{x_l}, {w_l}} \right) $ 的输出被用作RU-Net模型的卷积编码和解码单元的下采样层和上采样层. RCNN单元的最终输出通过残差单元, 假设RRCNN块的输出为 $ {x_l} $ , 可通过式(6)计算:

$ {x_{l + 1}} = {x_l} + F\left( {{x_l}, {w_l}} \right) $ (6)

RU-Net在视网膜图像血管分割上取得了非常不错的分割效果, 准确率达到0.9528, 灵敏度0.7747, 特异度0.9770, 本文提出的模型意在对RU-Net加以改进, 使其作为GAN的生成器部分进一步提高分割效果, 由此, 本文提出在RU-Net中添加一种Attention机制.

3.2 Retina-Attention机制

我们平日所说的注意力是一个神经生理学的概念, 它表示人类认真观察事务的时候能有多专注[20]. 在图像语义分割领域中, Attention机制通过学习获得一个对于目标图像的特征权重分布, 比如我们重点关注的特征的权重相对较高, 而不关心的特征权重则相对较低, 这个权重分布被加到原图的特征上, 为随后的任务提供参考, 使其更多地关注重点特征, 放弃一些不重要的特征, 这样能够显著提高效率.

近年, 众多学者将Attention机制与深度学习的结合研究中不断探索, 使二者相得益彰, 其中, 提取掩膜(mask)成为一个很好的手段. 掩膜给图像添加一层新的权重, 使图像中的重点变得突出, 然后通过学习和训练, 让深度神经网络在后续工作中继承关注新图片中的重点或者说我们感兴趣的区域, 注意力由此而来.

受Self-Attention[21]的启发, 我们需要注意的仅是含有有效视网膜信息的图像, 或者说是含有血管信息的图像, 在本文中也就是圆形内部的信息这部分是我们的感兴趣区域(ROI). 由此本文在生成器部分添加了一种Attention机制, 将其命名为Retina-Attention, 整体结构如图4所示.

图 4 Retina-Attention结构

该机制分为两个步骤:

(1)提取掩膜, 通过二值分割将ROI区域与无关背景区别开来, 如图5.

图 5 提取掩膜

(2)将掩膜与RU-Net的倒数第2层特征映射进行相乘, 如图4中长箭头所示. 如式(7)所示:

$ I\left( {x, y} \right) = \left\{ \begin{gathered} F(x, y) \times 1.0, \; (x, y) \in R \hfill \\ F(x, y) \times 0, \; (x, y) \notin R \hfill \\ \end{gathered} \right. $ (7)

其中, R表示ROI (感兴趣区域), 也就是我们注意力要关注的区域, F表示特征. 这个Attention机制的作用就是让G只关注眼底图像中有信息的视网膜区域(圆形内部的区域), 放弃没有有效信息的噪声背景(圆形外黑色区域), 这样做能有效提高分割效率, 防止G生成不必要的信息来占用D的效率. 提取掩膜有时由于提取之后信息量太少从而导致分类器网络层数堆叠大大减少的问题, 采用这种掩膜与RU-Net中的残差网络结合的方式对当前网络层的信息加上掩膜, 同时也能够把上一层的信息传递下来, 可以有效防止提取信息量较少问题的发生.

4 判别器部分

为了区别G(z)与真实值, 判别器D设计成简单的卷积神经网络并且运用全局平均池化层(global average pooling, GAP), 选择GAP的原因是GAP能够削减参数数量, 有助于给模型训练提速.

由于G(z)是基于块的, 所以在输入D之前需要先进行重组再输入. 关于输入图像, 正样本是经过ACE处理后的眼底图像和专家手工分割图的组合, 负样本是经过ACE处理后的眼底图像和G(z)组合, 通道数设置成2.

样本进入判别器时, 卷积提取特征设置成步长2, 大小3×3, 激活函数选用ReLU, 选取批标准化提高训练进度, 然后设置步长1, 大小3×3的卷积提取特征, 如图6所示, 此时分辨率没有改变, 继而通过2×2的max-pooling使分辨率下降, 特征提取多次后, 通道数为512. 最后采用Sigmoid函数, 配合GAP连接全连接层, 得到D(x).

图 6 判别器部分

5 实验结果 5.1 数据集设置

为了展示Retina-GAN的性能, 我们在DRIVE数据集上进行了实验. 对于DRIVE数据集的处理在第2节中已经做了一些介绍, 选择其一半图像作为训练集, 另外一半样本作为测试集. DRIVE图像原始像素为565×584. 为了开发一个方形数据集, 我们将图像压缩为512×512像素再进行扩充到3840张. 在这个模型实现中, 我们考虑了从DRIVE扩充数据集中随机选择一半图像的patch用于训练, 其余的patch用于验证, 每个patch的大小都是128×128.

5.2 实验设置

实验选择Adam梯度下降方式, 动量项系数为默认值, 学习率设为0.0005, 每训练一次G, 随后训练D, 交替训练. 关于硬件, CPU选择英特尔i7处理器, GPU为英伟达GTX 1080.

模型训练步骤如下:

(1)将专家手工分割图像输入D进行训练;

(2)把DRIVE中的眼底图像和掩膜输入G得到G(z), 再把G(z)与经过ACE处理后的眼底图像标记为负样本输入到D进行训练;

(3)训练G, 得到G(z)后再输入D中继续训练. 反向传播的过程中D的参数没有更新, 只传递误差, G的参数要更新和优化;

步骤(1)–(3)迭代训练, 令G(z)对于D而言能够以假乱真.

5.3 评价指标

进行定量分析时, 选择使用准确性(accuracy, Acc)、灵敏度(sensitivity, Sen)以及特异性(specificity, Spe)这3个性能指标. 具体计算公式如下:

$ Acc = \frac{{TP + TN}}{{TP + TN + FP + FN}} $
$ {\textit{Sen}} = \frac{{TP}}{{TP + FN}} $
$ {\textit{Spe}} = \frac{{TN}}{{TN + FP}} $

TP代表血管被正确分类为血管的像素点数, FP代表背景被误分为血管的像素点数, TN代表背景被正确分类为背景的像素点数, FN代表血管被误分为背景的像素点数.

5.4 实验结果

该方法展现了更精准的分割效果, 图7分别为专家手工标注以及训练迭代1000次, 2000次, 4000次的效果, 方框里为血管的细节分支部分, 随着迭代次数的增多, 血管的分支和细微部分逐渐详细.

图8为在DRIVE数据集上使用不同算法的效果; 折线图9图11横坐标为测试集图片序号, 纵坐标为指标对应的值, 这些数据显示了Retina-GAN在各个指标上均有提升. 这些数字表明, 与GAN、U-Net、RU-Net等方法相比, 本文设计的模型在训练和验证阶段提供更好的性能, 在精确度、灵敏度均有提高. 证实了Retina-GAN对任务分割的有效性.

图 7 血管细节图

图 8 实验结果

图 9 多种方法在DRIVE数据集上的准确率

图 10 多种方法在DRIVE数据集上的灵敏度

图 11 多种方法在DRIVE数据集上的特异度

同时, 预处理方面, 为了与滕梓晴[22]和张天琦[23]使用的CLAHE做比较, 我们分别使用ACE和CLAHE对DRIVE数据集进行预处理, 从表1表2的数据可以看出, 不管是GAN还是Retina-GAN上, ACE的表现均优于CLAHE, 实验效果更好.

表 1 多种方法在DRIVE数据集上的实验结果

表 2 ACE和CLAHE在不同算法上的表现

6 结束语

尽管通过实验证明了Retina-GAN结构的效果在以往算法上有了提升, 但对于灵敏度的指标还有很大提升空间, 未来的工作将围绕在不影响准确率的情况下来优化灵敏度展开.

参考文献
[1]
Khan MI, Shaikh H, Mansuri AM. A review of retinal vessel segmentation techniques and algorithms. International Journal of Computer Technology & Applications, 2011, 2(5): 1140-1144.
[2]
高向军. 基于多尺度线性检测的视网膜血管分割. 科学技术与工程, 2013, 13(23): 6820-6824. DOI:10.3969/j.issn.1671-1815.2013.23.030
[3]
王爱华. 基于Curvelet变换和形态学的视网膜血管分割[硕士学位论文]. 武汉: 华中科技大学, 2013.
[4]
Chaudhuri S, Chatterjee S, Katz N, et al. Detection of blood vessels in retinal images using two-dimensional matched filters. IEEE Transactions on Medical Imaging, 1989, 8(3): 263-269. DOI:10.1109/42.34715
[5]
Wang SL, Yin YL, Cao GC, et al. Hierarchical retinal blood vessel segmentation based on feature and ensemble learning. Neurocomputing, 2015, 149: 708-717. DOI:10.1016/j.neucom.2014.07.059
[6]
Fu HZ, Xu YW, Lin S, et al. DeepVessel: Retinal vessel segmentation via deep learning and conditional random field. Proceedings of the 19th International Conference on Medical Image Computing and Computer-assisted Intervention. Athens: Springer, 2016. 132–139.
[7]
吴晨玥, 易本顺, 章云港, 等. 基于改进卷积神经网络的视网膜血管图像分割. 光学学报, 2018, 38(11): 125-131.
[8]
Rammy SA, Abbas W, Hassan NU, et al. CPGAN: Conditional patch-based generative adversarial network for retinal vessel segmentation. IET Image Processing, 2020, 14(6): 1081-1090. DOI:10.1049/iet-ipr.2019.1007
[9]
钟文煜, 冯寿廷. 改进型UNet: 一种高效准确的视网膜血管分割方法. 光学技术, 2019, 45(6): 744-748.
[10]
Gatta C, Rizzi A, Marini D. ACE: An automatic color equalization algorithm. Proceedings of the 1st European Conference on Colour in Graphics, Imaging, and Vision, CGIV 2002. Poitiers: The Society for Imaging Science and Technology, 2002. 316–320.
[11]
Alom MZ, Yakopcic C, Hasan M, et al. Recurrent residual U-Net for medical image segmentation. Journal of Medical Imaging, 2019, 6(1): 014006.
[12]
Goodfellow IJ, Pouget-Abadie J, Mirza M, et al. Generative adversarial net. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal: MIT Press, 2014. 2672–2680.
[13]
Mirza M, Osindero S. Conditional generative adversarial nets. arXiv: 1411.1784, 2014.
[14]
Arjovsky M, Chintala S, Bottou L. Wasserstein generative adversarial networks. Proceedings of the 34th International Conference on Machine Learning. Sydney: PMLR, 2017. 214–223.
[15]
Isola P, Zhu JY, Zhou TH, et al. Image-to-image translation with conditional adversarial networks. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 5967–5976.
[16]
Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks. Proceedings of the 4th International Conference on Learning Representations. San Juan, 2016.
[17]
Rizzi A, Gatta C, Marini D. From retinex to automatic color equalization: Issues in developing a new algorithm for unsupervised color equalization. Journal of Electronic Imaging, 2004, 13(1): 75-84. DOI:10.1117/1.1635366
[18]
Getreuer P. Automatic color enhancement (ACE) and its fast implementation. Image Processing on Line, 2012, 2: 266-277. DOI:10.5201/ipol.2012.g-ace
[19]
Liang M, Hu XL. Recurrent convolutional neural network for object recognition. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015. 3367–3375.
[20]
李毅泉. 基于注意力机制的显著区域提取研究和实现[硕士学位论文]. 北京: 北京交通大学, 2007.
[21]
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: Curran Associates Inc., 2017. 6000–6010.
[22]
滕梓晴. 基于深度学习的视网膜视盘与血管分割[硕士学位论文]. 南昌: 南昌大学, 2020.
[23]
张天琦. 基于深度学习的视网膜血管图像分割研究[硕士学位论文]. 重庆: 重庆大学, 2019.