本发明涉及医学图像处理领域,具体是一种基于高效cnn-crf(convolutionalneuralnetwork,conditionalrandomfield)网络的视网膜图像分割方法。
背景技术:
视网膜图像与糖尿病、高血压及青光眼等易造成失明的眼部疾病密切相关,因此对视网膜图像进行分割以便数字化分析是基本步骤。由于手动分割视网膜图像十分耗时费力,因此视网膜图像的自动分割方法逐渐成为主流。
视网膜血管图像的分割方法主要分为两大类:基于规则和基于学习的分割方法。基于规则的分割方法主要是利用调整好的构成分割规则的参数来处理图像。chaudhuri等人提出采用高斯型曲线近似表示灰度级信息,并采用12个不同的匹配滤波器检测血管。al-rawi等人使用一组参数{l,σ,t}构造了12个模板,沿着所有可能的方向对视网膜图像进行滤波,然后选择出最佳响应。azzopardi等人提出了引入b-cosfire滤波器有方向选择性地检测血管。由于一系列的样本获得最大响应,匹配滤波器的方法能够很好地检测到棒状物体,但该方法运算过程复杂,同时增加了棒状的噪声。mart′
基于学习的分割方法主要是选择合适的特征。niemeijer等人使用knn分类器对视网膜数字图像中的每个像素进行分类。soares等人提出采用类条件概率密度函数的贝叶斯分类器,其中特征向量由像素强度和二维gabor小波变换响应组成。xu等人采用自适应局部阈值将原图像转换成二进制图像,提取出大量连通部分作为血管,然后训练支持向量机对剩余的图像像素进行分类。基于固定长度的物体的平均灰度值估计,ricci等人提出了采用线性检测器和支持向量机对视网膜图像像素进行分类。深度学习方法关键在于设计架构,有人提出了采用10层卷积神经网络进行像素分类,还有人提出了采用深度学习的架构来分割视网膜图像。
上述分割方法要么精度低,要么不能自动分割,要么处理时间长。
技术实现要素:
本发明要解决的技术问题是提供一种基于高效cnn-crf网络的视网膜图像分割方法,实现视网膜血管数字图像的自动分割,精度高,速度快。
为解决上述技术问题,本发明采用的技术方案是:
一种基于高效cnn-crf网络的视网膜图像分割方法,包括以下步骤:
步骤1:对数据库中的视网膜血管图像进行样本扩充;
步骤2:在深度学习工具caffe库中构建cnn-crf神经网络,所述cnn-crf神经网络分为全卷积神经网络和条件随机场语义分割;
步骤3:将扩充后的视网膜血管图像作为全卷积神经网络的输入,对训练样本进行预训练,得到cnn-crf神经网络模型的初始参数;
步骤4:在网络层最后一层前面加入条件随机场层,进行二次调优训练;根据前端全卷积神经网络的输出结果,采用条件随机场对视网膜血管图像的特征图像进行分割;
步骤5:采用训练好的cnn-crf神经网络模型对测试样本进行分割,得到最终的视网膜血管图像分割图。
进一步的,所述步骤1中对样本进行扩充具体为:通过图像变换处理进行样本扩充,包括对视网膜血管图像进行平移、旋转、翻转。
进一步的,所述步骤2中全卷积神经网络包括卷积层、激活层、池化层和上采样层;所述卷积层是采用尺寸大小为3*3像素的卷积核与输入数据内一个窗口内的局部数据进行加权和运算,然后在图像上滑动卷积窗口,直到卷积完所有的输入数据;所述激活层是采用relu修正线性单元,将线性函数转化为非线性,通过激活函数max{0,x}对输入数据进行处理;所述池化层采用最大池化法。
与现有技术相比,本发明的有益效果是:针对视网膜血管图像分割的特点,将条件随机场和全卷积神经网络相结合,仅通过一次前向运算即可有效的对完整的视网膜血管图像进行分割,保证了图像分割的精度。
附图说明
图1是本发明方法的流程示意图。
图2是条件随机场层进行语义分割的层数示意图。
图3是分割前的原始图像。
图4是标准分割示意图。
图5是其他方法分割效果图。
图6是本发明中分割效果图。
具体实施方式
本发明方法首先将整幅视网膜图像作为全卷积神经网络的输入,然后采用全卷积神经网络对视网膜图像中的像素进行预测;根据全卷积神经网络的输出结果,采用条件随机场对视网膜特征图像进行分割,仅通过一次前向运算最后得到血管分割图,如图1所示。
下面通过具体实例对本发明方法及技术效果进行说明。
步骤一:从国际公开数据集drive(digitalretinalimageforvesselextraction)中随机选择40幅视网膜图像,其中30幅图像作为训练样本,剩余10幅作为测试图像。针对训练样本不足的问题,本发明采用对每幅图像进行旋转、翻转、等操作扩充样本数,将30幅视网膜血管图像扩充为15750幅视网膜血管图像,从而满足深度学习训练的要求。
步骤二:在深度学习工具caffe库中构建设计cnn-crf神经网络,将整幅视网膜图像作为全卷积神经网络的输入,对训练样本进行预训练,得到网络模型的初始参数。前端全卷积神经网络的输出结果是图像中每个像素所属于类别的概率和图像中任意两像素之间的灰度值差异和空间距离的能量值。
实验硬件:中央处理器为英特尔酷睿i7-4790k,图形处理器为英伟达gtx770,显存为2gb,随机存取存储器ram为8gb。实验软件:操作系统为ubuntu14.04lts,深度学习工具caffe。
本发明的cnn-crf神经网络主要分为全卷积神经网络和条件随机场语义分割两部分,所述全卷积神经网络主要由卷积层、激活层、池化层、上采样层组成,每层数据都可表示为d×h×w的三维矩阵,其中d表示通道数,w和h分别表示图像的宽度和高度。针对视网膜血管图像的特点,为了增加神经网络对特征的空间约束,加入条件随机场层对之前网络层的特征图像进行语义分割,如图2所示,共25层,其参数设置如表1所示。
表1
卷积层、池化层和激活层对输入图像矩阵进行逐个窗口处理,从而能够保证输出相对位置不变性。假设l表示全卷积神经网络中的第l层,k表示内核的尺寸大小,s表示步长,即每次向后移动的长度,
两个连接层之间的运算公式如下:
本发明中,卷积层主要是利用尺寸大小为3*3像素的卷积核与输入数据内一个窗口内的局部数据进行加权和运算,然后在图像上滑动卷积窗口,直到卷积完所有的输入数据。卷积层相当于二维线性滤波器对整幅视网膜图像进行滤波,提取特征的上下文信息。不同于高斯滤波器的是,在图像处理的过程中卷积的参数不是固定不变的,而是从训练的数据中学习得到的,训练过程中,通过采用梯度下降法最小化损失函数,不断更新网络层中的权重和偏置参数,因此效果更好。
池化层的作用是在局部范围内选择最有效的特征作为输出,从而抑制噪声。本发明选择最大池化法进行有效特征提取,设置池化窗口尺寸大小为3×3,取这9个值中的最大值作为池化后的值,忽略另外8个值。通过池化降低激活层输出的特征向量,同时改善结果,避免出现过拟合。本发明的激活层是采用了relu修正线性单元,将线性函数转化为非线性,通过激活函数max{0,x}对输入数据进行处理,其作用是如果计算输出值小于0就让它等于0,否则保持原来的值,从而得到更加稀疏的数据,减少过拟合的可能性。
为了保证输出数据和原图输入图像尺寸大小相同,采用了尺寸大小为4*4的反卷积核对上一网络层输出的特征图像进行反卷积操作,将特征图像中的值放入对应的池化层中记录的最大值的位置,同时将其他位置的值置为0,从而使图像恢复到和输入图像尺寸相同。
选择交叉熵函数作为代价函数进行预训练,设n表示训练样本数,yn表示第n个样本标签值,在本发明中,对二进制视网膜图像而言,0表示背景,1表示血管;
采用批梯度下降方法最小化损失函数,即每次将一部分数据作为一批数据输入全卷积神经网络中,完成该批次数据前向运算后得到其平均的损失函数,然后利用该损失函数值进行梯度计算。选择多步学习率策略改变学习速率,本发明的全卷积神经网络中所有的权重和偏置参数更新可以按如下方式进行:
wi+1:=wi+vi+1,
其中,η为学习率,是根据迭代次数而逐渐减小。当达到指定的迭代次数时,全卷积神经网络停止训练,得到预训练的网络模型参数。
步骤三:在网络层最后一层前面加入条件随机场层,将前端卷积网络层的输出结果作为条件随机场层的输入,利用预先训练的参数对其进行初始化,使用条件随机场对视网膜血管图像进行分割。
本发明的条件随机场能量函数包括一元能量项和二元能量项,其中一元能量项是基于每个像素属于各个类别的概率,二元能量项是基于图像中任意两像素之间的灰度值差异和空间距离的能量。
假设x为像素向量,xi为第i层的标签,ψu(xi)表示将元素i划分为标签xi的能量,ψp(xi,xj)表示将像素点i,j同时划分为xi,xj的能量,则能量函数可以表示为
第二次训练过程中,通过最小化能量函数,不断更新网络层的权值和偏置的大小。设置迭代次数为300000,当达到指定的迭代次数时,网络停止训练。前端部分卷积网络主要是提取图像中的特征信息,输出结果包括一元能量项ψu(xi)和二元能量项ψp(xi,xj),将其作为条件随机场的输入。当把像素标签的预测结果作为随机变量且能够获得全局观测时,通过条件随机场对这些标签进行建模,对前端卷积神经网络的输出结果进行优化,并考虑像素之间的空间关系,有效避免了图像背景中类似血管状的纹理引入的干扰,采用平均场相似的方法,对视网膜图像进行分割,采用softmax层输出图像每个像素中对应背景类别或血管类别的概率大小,最后得到视网膜血管分割图。
步骤四:利用训练好的cnn-crf网络模型对测试样本进行分割,得到最终的视网膜血管分割图。
训练好的cnn-crf模型中包含各个网络层中的权重和偏置的参数,采用本发明方法对视网膜图像进行血管分割,其准确率为0.9536,召回率为0.8368,分割效果高于目前其他的方法。分割效果如图3至图6所示。由于条件随机场(crf)分割图像时考虑了空间结构信息的约束,该方法分割精度大大提高.本发明cnn-crf网络是视网膜血管分割深度学习方法中第一个仅需一次前向运算即可处理整幅图像的,且每幅图像的处理时间仅为0.53s。因此,基于cnn-crf网络的视网膜图像分割方法是十分高效的。