一种基于U-net卷积神经网络的彩色眼底图像血管分割方法与流程

文档序号:17843614发布日期:2019-06-11 21:29阅读:1175来源:国知局
一种基于U-net卷积神经网络的彩色眼底图像血管分割方法与流程

本发明属于图像处理和深度学习技术领域,具体涉及一种基于神经网络的眼底图像血管自动分割方法。



背景技术:

眼底血管网络是人体内能够通过非创直接观察到的比较深层次的微血管。任何系统性和血液性的病变都会导致眼底微血管的特征或形态发生变化。视网膜血管分割是眼科计算机辅助诊断和大规模疾病筛查系统的基础。大多数医院都是通过眼科医生仔细观察眼底图像,然后得出诊断结果。这种人工检测方法操作时间长、工作强度大,而且人的主观判断对结果影响很大,标准不能统一;重复而又单调,效率低下,所以人工观察的方式已经难以快速、准确、客观的对眼底图像进行观察。随着机器视觉技术的成熟发展,使用计算机取代眼科医生的眼睛,通过计算机智能化的观察和分析图像,采用自动化的方法帮助眼科医生进行视网膜图像的理解,早已引起了国内外学者们的兴趣。为了彩色眼底图像血管分割的准确率和效率,本发明提出了一种基于神经网络的彩色眼底图像血管自动分割方法。首先对彩色眼底图像进行对比度受限的自适应直方图均衡处理,伽马校正和二维gabor滤波,再将处理后的图片制成训练神经网络所需数据集,然后将数据集中的样本送入设计好的深度卷积神经网络中进行彩色眼底图像血管识别模型的训练。最后,我们使用这个模型进行彩色眼底图像中的血管分割。

本发明提出的方法应用在彩色眼底图像中的血管分割,可以极大程度地降低血管分割的人力成本,提高生产效率和识别准确率。



技术实现要素:

本发明针对彩色眼底图像中的血管分割人工成本高和辨别效率低的缺点,设计了一种基于神经网络的彩色眼底图像血管自动分割方法,从而达到高效、准确和成本低的彩色眼底图像中的血管分割的目的。

本发明技术方案是一种基于u-net卷积神经网络的彩色眼底图像血管分割方法,该方法包括以下步骤:

步骤1:人工获得彩色眼底样本图像;

步骤2:提取步骤1的彩色眼底样本图像中的绿色通道信息;

步骤3:对步骤2提取到的绿色通道信息进行对比度受限的自适应直方图均衡处理;

步骤4:利用伽马校正(gammacorrection)对步骤3处理后的图像进行图像校正;

步骤5:对步骤4校正的后的图像进行反置;

步骤6:构建二维gabor滤波器;

步骤7:利用步骤6构建的二维gabor滤波器对步骤5反置后的图像进行滤波;

步骤8:将步骤7获得的滤波后的图像进行方向和尺度的最值处理;

步骤9:获取步骤1获得的彩色眼底样本图像对应的手工血管分割图像;

步骤10:对步骤8和步骤9获得的图片进行相同的裁剪操作,然后制成数据集;

步骤11:将步骤10制作好的数据集随机分为训练集和测试集;

步骤12:建立卷积神经网络;

步骤13:将步骤11的训练集和测试集输入到步骤12建立的深度卷积神经网络进行彩色眼底图像血管识别模型的训练,训练完成后保存模型参数;

步骤14:将待测彩色眼底图像经过步骤2到步骤8,裁剪后送入到步骤13中训练好的彩色眼底图像血管识别模型中,得彩色眼底图像血管识别结果。

进一步的,所述步骤3的具体步骤为:

步骤3.1:创建一个对比度受限的自适应直方图均衡对象,其cliplimit设置为5.0,tilegridsize设置为20×20;

步骤3.2:利用步骤3.1创建的自适应直方图均衡对象对步骤2提取到的绿色通道信息进行对比度受限的自适应直方图均衡处理。

进一步的,所述步骤4的具体步骤为:

步骤4.1:设置伽马校正(gammacorrection)参数,计算公式如下所示:

t(x,y)=a*f(x,y)gamma

其中,t(x,y)是输出(x,y)的像素值,f(x,y)是输入(x,y)的像素值,a和gamma是可调参数;本发明中,a为1,gamma为1/3;

步骤4.2:将步骤3.2得到的图像利用步骤4.1的公式计算伽马校正;

进一步的,所述步骤6的具体步骤为:

步骤6.1:选着合适的二维gabor小波定义公式,二维gabor小波核函数定义如下所示:

gu,v(z)=||ku,v||2/sigma2*exp(-||ku,v||2*||z||2/2*sigma2)*[exp(i*ku,v*z)-exp(-sigma2/2)]

其中,gu,v(z)为二维gabor小波,u为方向,v为尺度,z=(x,y)为图像坐标,sigma是高斯函数半径,ku,v是滤波器的中心频率,i为虚数单位;

步骤6.2:提取步骤6.1的二维gabor小波核函数的实部,其计算公式如下所示:

gr(m+hh+1,n+hw+1)=(kmax/fv)2*k1*k2/sigma2

k1=exp(-((kmax/fv)4(m2+n2)/2*sigma2)

k2=cos((kmax/fv)cos(π*u/18)*n+(kmax/fv)*sin(π*u/18)*m)-exp(-sigma2/2)

其中,gr(j+hh+1,i+hw+1)为二维gabor小波核函数的实部,m,n的取值范围为-hh≤m≤hh,-hw≤n≤hw,kmax为最大频率,f为空间因子,fv表示f的v次方,hh为滤波器二分之一高度,hw为滤波器二分之一宽度;为简化公式,所以将二维gabor小波核函数的实部计算公式中的部分公式用k1和k2表示;

本发明中,hh和hw均等于17,sigma等于π/2,f为21/2,kmax为1.5*π/2,u的取值范围为[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],v的取值范围为[0,1,2,3,4,5,6,7];

进一步的,所述步骤8的具体步骤为:

步骤8.1:取步骤7中u为[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],v为[4,5,6]的滤波图像;

步骤8.2:将步骤8.1所得的图像进行最大值化处理,计算公式如下:

其中,i(x,y)为输入图像,p(x,y)为输出图像。

进一步的,所述步骤10的具体步骤为:

步骤10.1:将步骤8.2和步骤9获得的图像进行相同的裁剪,将图像裁剪成48×48大小的图片;

步骤10.2:在步骤10.1裁剪后图片中随机抽取100000张图片制成数据集;

进一步的,所述步骤12的具体步骤为:

步骤12.1:搭建深度神经网络,其结构包括八层,其中第一层为输入层,第二层至第层七为隐藏层,第八层为输出层,各层结构如下

第一层:输入层:输入训练集的图像数据和每张图像的真实标签;

第二层:隐藏层:包含两个卷积层,一个dropout层和一个池化层;

第三层:隐藏层:包含两个卷积层,一个dropout层和一个池化层;

第四层:隐藏层:包含两个卷积层和一个dropout层;

第五层:隐藏层:包含两个卷积层,一个dropout层,一个upsampling层和一个merge层;

第六层:隐藏层:包含两个卷积层,一个dropout层,一个upsampling层和一个merge层;

第七层:隐藏层:包含一个卷积层,一个reshape层和一个permute层;

第八层:输出层:一个激活函数层;

步骤12.2:设置深度神经网络参数:

第二层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为32,激活函数为relu激活函数,池化层为最大池化层,大小为2×2,步长stride为2,填充模式padding设置为same,dropout层的元素保留率keep_prob设置为0.8;

第三层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为64,激活函数为relu激活函数,池化层为最大池化层,大小为2×2,步长stride为2,填充模式padding设置为same,dropout层的元素保留率keep_prob设置为0.8;

第四层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为128,激活函数为relu激活函数,dropout层的元素保留率keep_prob设置为0.8;

第五层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为64,激活函数为relu激活函数,dropout层的元素保留率keep_prob设置为0.8;upsampling层的大小设置为2×2;merge层轴号设置为1;

第六层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为32,激活函数为relu激活函数,dropout层的元素保留率keep_prob设置为0.8;upsampling层的大小设置为2×2;merge层轴号设置为1;

第七层:卷积层的卷积核大小为1×1,步长stride为1,卷积核数量为2,激活函数为relu激活函数;

第八层:激活函数为softmax激活函数。

所述步骤13的具体步骤为:

步骤13.1:将步骤11的训练集样本图像输入到步骤12建立的深度卷积神经网络中,计算训练集交叉熵损失train-loss.

步骤13.2:使用sgd优化器对步骤13.1的交叉熵损失train-loss进行优化;

步骤13.3:每隔1000训练步长,便将测试集样本图像也输入到步骤12建立的神经网络中,同时计算训练集交叉熵损失train-loss和测试集交叉熵损失test-loss;

步骤13.4:重复步骤13.1、13.2和13.3,当步骤13.3的train-loss小于0.001和步骤13.3的test-loss小于0.01时,训练停止,保存训练完成后的模型参数。

本发明在图像进行对比度受限的自适应直方图均衡处理后进行gamma校正,能够有效地提升眼底图像中血管与眼底图像背景的对比度,提升二维gabor滤波器的滤波效果,有利于眼底图像中微细血管的分割。本发明在二维滤波器后对图像采用最值化处理,可以在分割血管的同时很好地抑制噪声。本发明采用的神经网络为改进的u-net神经网络,输入图像的大小为48×48,使得神经网络的结构得到优化,并且训练样本的数量可以得到极大的扩增,使得分割模型的分割效果得到较大的改善。

附图说明

图1为眼底显微图像。

图2为本发明步骤8处理后的图像。

图3为本发明步骤9获得的手工血管分割图像。

图4为本发明步骤10裁剪后的图像;图4-1为最值化裁剪图像,图4-2为手工分割裁剪图像。

图5为本发明一种基于神经网络的彩色眼底图像血管自动分割方法的流程图。

图6为本发明步骤12搭建的神经网络结构图。

具体实施方式

下面结合附图,对本发明一种基于神经网络的彩色眼底图像血管自动分割方法进行详细说明:

步骤1:人工获得彩色眼底样本图像;

步骤2:提取步骤1的彩色眼底样本图像中的绿色通道信息;

步骤3:对步骤2提取到的绿色通道信息进行对比度受限的自适应直方图均衡处理;

步骤3.1:将对比度受限的自适应直方图均衡对cliplimit设置为5.0,tilegridsize设置为20×20;

步骤3.2:利用步骤3.1创建的自适应直方图均衡对象对步骤2提取到的绿色通道信息进行对比度受限的自适应直方图均衡处理;

步骤4:利用伽马校正(gammacorrection)对步骤3.2处理后的的图像进行图像校正;

步骤4.1:设置,令a为1,gamma为1/3;

步骤4.2:利用步骤4.1的伽马校正(gammacorrection)参数对步骤3.2得到的图像进行伽马校正;

步骤5:对步骤4.2校正的后的图像进行反置;

步骤6:构建二维gabor滤波器;

步骤6.1:选着合适的二维gabor小波定义公式;

步骤6.2:提取步骤6.1的二维gabor小波核函数的实部;

步骤7:利用步骤6.2构建的二维gabor滤波器对步骤5反置后的图像进行滤波;

步骤8:将步骤7获得的滤波后的图像进行方向和尺度的最值处理;

所述步骤8的具体步骤为:

步骤8.1:取步骤7中u为[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],v为[4,5,6]的滤波图像;

步骤8.2:将步骤8.1所得的图像进行最大值化处理,计算公式如下:

其中,i(x,y)为输入图像,p(x,y)为输出图像;

步骤9:获取步骤1获得的彩色眼底样本图像对应的手工血管分割图像;

步骤10.1:将步骤8.2和步骤9获得的图像进行相同的裁剪,将图像裁剪成48×48大小的图片;

步骤10.2:在步骤10.1裁剪后图片中随机抽取100000张图片制成数据集;

步骤11:将步骤10.2制作好的数据集按4:1的比例随机分为训练集和测试集,即训练集为80000张图片,测试集为20000张图片;

步骤12:建立深度卷积神经网络;

所述步骤12的具体步骤为:

步骤12.1:搭建深度神经网络,其结构包括八层,其中第一层为输入层,第二层至第层七为隐藏层,第八层为输出层,各层结构如下

第一层:输入层:输入训练集的图像数据和每张图像的真实标签;

第二层:隐藏层:包含两个卷积层,一个dropout层和一个池化层;

第三层:隐藏层:包含两个卷积层,一个dropout层和一个池化层;

第四层:隐藏层:包含两个卷积层和一个dropout层;

第五层:隐藏层:包含两个卷积层,一个dropout层,一个upsampling层和一个merge层;

第六层:隐藏层:包含两个卷积层,一个dropout层,一个upsampling层和一个merge层;

第七层:隐藏层:包含一个卷积层,一个reshape层和一个permute层;

第八层:输出层:一个激活函数层;

步骤12.2:设置深度神经网络参数:

第二层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为32,激活函数为relu激活函数,池化层为最大池化层,大小为2×2,步长stride为2,填充模式padding设置为same,dropout层的keep_prob(元素保留率)设置为0.8;

第三层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为64,激活函数为relu激活函数,池化层为最大池化层,大小为2×2,步长stride为2,填充模式padding设置为same,dropout层的keep_prob(元素保留率)设置为0.8;

第四层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为128,激活函数为relu激活函数,dropout层的keep_prob(元素保留率)设置为0.8;

第五层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为64,激活函数为relu激活函数,dropout层的keep_prob(元素保留率)设置为0.8;upsampling层的大小设置为2×2;merge层轴号设置为1;

第六层:卷积层的卷积核大小为3×3,步长stride为1,卷积核数量为32,激活函数为relu激活函数,dropout层的keep_prob(元素保留率)设置为0.8;upsampling层的大小设置为2×2;merge层轴号设置为1;

第七层:卷积层的卷积核大小为1×1,步长stride为1,卷积核数量为2,激活函数为relu激活函数;

第八层:激活函数为softmax激活函数;步骤13:将步骤11的训练集和测试集输入到步骤12建立的深度卷积神经网络进行彩色眼底图像血管识别模型的训练,训练完成后保存模型参数;

步骤13.1:将步骤11的训练集样本图像输入到步骤12建立的深度卷积神经网络中,计算训练集交叉熵损失train-loss.

步骤13.2:使用sgd优化器对步骤13.1的交叉熵损失train-loss进行优化,本发明中优化器的momentum(动量参数)为0.3,learningrate(学习率)为0.01,学习率衰减为0.000001;

步骤13.3:每隔1000训练步长,便将测试集样本图像也输入到步骤12建立的神经网络中,同时计算训练集交叉熵损失train-loss和测试集交叉熵损失test-loss;

步骤13.4:重复步骤13.1、13.2和13.3,当步骤13.3的train-loss小于0.001和步骤13.3的test-loss小于0.01时,训练停止,保存训练完成后的模型参数。

步骤14:将待测彩色眼底图像经过步骤2到步骤8,裁剪后送入到步骤13中训练好的彩色眼底图像血管识别模型中,得彩色眼底图像血管识别结果。

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