基于空间通道注意力机制与残差融合的视网膜血管分割方法

文档序号:35131545发布日期:2023-08-15 05:49阅读:69来源:国知局
基于空间通道注意力机制与残差融合的视网膜血管分割方法

本发明涉及深度学习和医学图像分割领域,具体涉及一种基于空间通道注意力机制与残差融合的视网膜血管分割方法。


背景技术:

1、传统视网膜血管分割方法依靠数字图像处理技术,主要包括特征提取和分类器的实现这两个步骤,传统分割算法大部分是无监督的方法,即不需要额外的数据标签,用于视网膜血管分割的传统方法大致包括以下几类:基于血管跟踪的方法、基于匹配滤波的方法、基于数学形态学的方法。传统的分割算法特点是依赖于特征设计,缺乏特征自动提取能力,而且传统分割算法的特征设计涉及到的参数选择等人为因素较多,对一些结构复杂的血管,特别是微小血管的分割质量较差,部分复杂血管的特征较难提取到。因此,传统方法在特征提取过程的效率还有待于进一步提升。现有的许多方法和模型对微小血管的分割质量还不够好,分割出的微小血管容易出现断裂的情形,且由于血管形态、大小各异,部分复杂的血管结构难以被有效的检测出。因此,实现对不同形态、粗细的血管结构分割,以及如何使得分割出来的血管结构更加连续,减少血管断裂的概率,进一步提升模型对微血管、毛细血管等分割能力极为重要。


技术实现思路

1、针对现有的视网膜血管分割精准度与灵敏度问题,以及许多方法和模型对噪声得鲁棒性不够强,使得血管分割结果容易受到眼底图像噪声因素干扰。对于尤其是视网膜中微小血管得分割质量不够好,分割出的微小血管容易出现断裂的问题,本次发明设计了相应的解决策略和方法,提出了改进的u-net模型:sase-net,对于经典u-net模型灵敏度低、鲁棒性不够好等问题做出改进方案,通过引入空间和通道注意力机制与残差模型融合的模块,提升视网膜血管的分割能力,提高分割灵敏度与鲁棒性。

2、本发明的技术方案:基于空间通道注意力机制与残差融合的视网膜血管分割方法,包括如下步骤:

3、步骤1、对公开的眼底图像进行预处理,提高分割效率;

4、步骤2、对进行预处理之后的图像进行数据增强,防止出现过拟合现象;

5、步骤3、搭建空间和通道注意力机制与残差模块相融合的分割网络sase-net,并将处理后的数据集传入搭建的网络进行训练,保存训练权重,得到训练好的模型。

6、步骤4、将测试集数据传入步骤3得到的训练模型中,进行测试,获得分割结果并和人工标注视网膜血管进行对比,得到对比数据以及分割结果。

7、进一步概括步骤一包括以下3个步骤:

8、第一步是:图像灰度化,不同于许多文献中采用的单通道(通常为g通道)提取的方法,我们采用的是rgb图像3个通道加权的方法进行灰度化,实现对彩色图像每个通道信息的充分利用。具体的加权公式为:

9、yreyimage=0.287*r+0.611*g+0.114*b

10、第二步是:在得到灰度化后的图像,接着我们采用限制对比度自适应直方图均衡化(clahe)的方法对得到的灰度图进行对比度增强,增加血管和背景的区分度,该方法还可以抑制部分的背景噪声,凸显血管结构。

11、最后:使用矫正系数为1.0的伽马矫正(gamma correction)来矫正clahe的结果。伽马矫正主要目的是增强图像中较暗的部分,同时保证较亮的部分也不受影响,它可以进一步增大图像的对比度效果。此外,伽马矫正还可以减少噪声因素的干扰。

12、处理过程中图像变化如图1所示,我们对比(b),(c)可以发现,相比于(b)的三通道加权灰度化后的结果,clahe方法的结果(c)可以有效的提升灰度图中血管像素和背景像素的对比度,而对比(c),(d)可发现,在clahe结果(c)的基础上使用伽马矫正之后,在没影响到视杯视盘亮度的同时,可以看到图像中的血管变得更暗了,这就说明(d)在(c)的基础上又进一步增大了血管和背景的对比度差异。图1结果证明了我们通过该预处理流程,可以有效的解决光照不均匀的问题,增大眼底图像血管和非血管像素的对比度。我们预处理之后的图片,将有助于后续的深度学习模型在特征提取时能够学到更有表达能力和鲁棒性的特征,提升模型对血管、非血管像素的区分能力。

13、进一步地,所述步骤2包括:

14、采用的数据增强方法主要包括:图像的旋转、平移、水平镜像、垂直镜像和裁剪,考虑到直接对图像进行resize缩放操作会用到线性插值运算,这会导致一些局部微小血管的像素出现偏差,因此,我们采用随机裁剪而不是resize的方法来调整眼底图像的大小,在裁剪的时候,为了方便深度网络模型的特征提取,我们统一设定裁剪大小是512×512dpi,裁剪有沿着图像左上角、左下角、右上角、右下角四种方式。在具体数据增强方案实施上,我们以drive数据集为例,drive总共包含20张的训练图片,我们沿着顺时针角度,分别对每张眼底图像都依次旋转10度的角度,这样每张图片就可以增强到36张,这样总共可以得到36×20=720张增强图像,然后再随机的为这720张图片进行水平或者垂直镜像。最后,对于沿着四个角进行固定大小的裁剪,每张图片从4种裁剪方位中任意选取两种方位,这样最终可以得到720×2=1440张训练的图像。图2是随机从这1440张扩充的图片选取了20张图片以及其对应的专家标注label的可视化效果。

15、进一步地,所述步骤3包括:

16、在所提出的sase-net模型的训练阶段,我们首先通过本文第三章的方法,对眼底图像进行预处理和数据增强、将图像裁剪成相同的512×512大小,然后将处理好的眼底图像送入我们的sase-net模型进行全监督训练,根据预先设定的损失函数(loss function)计算训练过程的预测结果和专家标注label的误差,再根据误差反向传播原理来更新sase-net模型的参数。在训练过程中,我们动态地将验证集上表现最好的某个epoch下的模型权重进行保存,这样在训练结束后,可以得到最优模型的权重文件。而在测试阶段,我们只需要将预处理后的眼底图像分别沿着左上、左下、右上和右下四个角剪成4张和训练图片相同尺寸的512×512大小的图像块(image patch),然后加载保存好的模型参数文件,分可以别得到四个角的图片各自的预测概率图。然后我们将四个角的图片的预测概率图拼接在一起(即image patch预测结果的合并,有重叠的地方取平均),就可以得到和原始眼底图像相同分辨率大小的血管分割结果。图3系统的描述了上述的眼底图像分割的训练和测试的整个流程。

17、通过设计注意力机制,包括编码阶段的空间和通道注意力-残差模块(spatialandchannel attention-residual error,sacar)和解码阶段的se block(squeeze andexcitation block),来增大重要特征的权值,抑制非重要的特征,实现眼底图像特征权重的调整和重标定,减少噪声等因素对分割结果的干扰,提升分割准确度。

18、设计了多尺度特征提取和聚合(multi-scale feature extraction andpolymerization,mfep)模块来对分辨率不同的原始眼底图像进行特征提取,获得更为丰富的语义信息。在mfep中采用不同大小的空洞卷积的组合,可以使得模型自适应地捕获不同粗细、大小的血管信息,且我们将mfep的结果与编码路径池化层的结果进行融合,也在一定程度弥补了编码阶段下采样过程中细节信息丢失的不足。

19、进一步地,所述步骤3包括:

20、网络模型训练,选择视网膜血管公开的两个数据集drive和stare数据预处理与增强后的数据集,导入到模型中进行训练,和原始手工标注分割图进行比较,保存训练好的模型,计算精度。再将训练完成的模型进行测试集训练,最终得到稳定的血管分割图。

21、实验参数:

22、在视网膜眼底血管分割实验中,我们的硬件环境为:nvidia geforce rtx 3090显卡,显存24g;移动硬盘2t。我们使用的软件环境是:linux;pytorch深度学习框架;cuda11.3;cudnn7.6;pycharm 2018;python 3.6。采用adam优化器用于更新参数。其中,初始化学习率(learning rate,lr)设置为1e-4,betas参数设置为(0.9,0.999),批处理大小(batch size)设置为8,总共训练轮数(epoch)设置为400。在训练过程中,我们采用学习率线性衰减策略,在第t个epoch时的学习率可表示为:

23、

24、在多尺度特征pytorch编码模块的超参数设置中,我们设置多头注意力头数为4,编码阶段的stage0,stage1,stage3和stage5设置的patch size分别为32,32,8和2。pytorch block中mlp的中间隐藏层的维度设置为1024,线性投影(linear projection)映射维度d设置为1024。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1