眼底彩照血管及动静脉的识别方法与流程

文档序号:14796723发布日期:2018-06-29 18:41阅读:2246来源:国知局

本发明涉及一种眼底彩照血管及动静脉的识别方法。



背景技术:

为了迅速大批量地进行眼底彩照中的血管及动静脉的识别和边界绘制,以能够准确有效地对血管轮廓与与血管动静脉进行标记识别,然后通过计算静动脉的直径比,可以辅助诊断视网膜血管等疾病。在临床中,由于边远山区、基层医院眼科医生和眼底相关阅片人员等人力所限,如对大量的眼底彩照一张一张机械性地进行审阅,工作内容繁重、单一重复、且效率不高,浪费大量的宝贵的人力资源。现有眼底彩照自动识别系统也有涉及到眼底图像自动识别分区方法,但却不是进行眼底结构位置的精确定位,病变识别。此外现有,方法多是利用网上的标准图片进行参照比较识别,然而现实临床中的眼底彩照图片并不是标准图片,甚至包括很多聚焦、明暗都有问题的图片,目前很多系统都是直接将图片进行识别,而不分图片质量,因为网上的标准库都是质量较好的图片,而且数量都很少。



技术实现要素:

本发明的首要目的是提供一种眼底彩照血管及动静脉的识别方法。对眼底彩照中各部位的自动定位以及测量,达到疾病预筛选的效果,将有病变嫌疑的图片自动筛选出,以能够准确有效地对血管轮廓与与血管动静脉进行标记识别,然后通过计算静动脉的直径比,可以辅助诊断视网膜血管等疾病,减少医生工作量;并且其结果不依赖于医生经验,更加客观,能够有效的协助医生进行疾病的诊断,实现远程会诊的目的。

为解决上述技术问题,本发明所采用的技术方案是:

本发明提供的眼底彩照血管及动静脉的识别方法具有以下特点:

1、通过将形态学方法与机器学习方法相结合,将定位的区域通过形态学方法进行初步处理,然后进行机器学习方法预测,最后再通过形态学方法精确定位;

2、对医院或社区采集的大量患者的眼底彩照进行自动识别,以辅助医生对大量的视网膜血管等疾病病变筛查及体检中心常规眼底彩照图片进行诊断;

3、利用大量张真实眼底彩照使模型充分地学习各种情况下图像数据的特征,使得判断更为精确,并且有更好的容错性,同时系统首先进行眼底彩照预处理以及图像质量的鉴别,以保证本系统在图片质量参差不齐的情况下,也能有很好的识别能力,有普适性。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例选择的图像示例;

图2为本发明实施例所选择图像的灰度分布;

图3为本发明实施例血管识别时大致的血管轮廓示意图;

图4为本发明实施例血管识别时去毛刺处理后的血管轮廓示意图;

图5为本发明实施例血管识别时血管轮廓示意图断点拟合示意图;

图6为本发明实施例血管识别时确定血管边界示意图;

图7为本发明实施例血管识别效果示意图;

图8为本发明实施例眼底图像动静脉识别结果示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

一种眼底彩照血管及动静脉的识别方法,包括以下步骤:

图片质量检测:

一、特征提取:

利用图像的骨架,提取其纹理特征,RGB,三个图层,每个图层提取15个特征。

首先使用canny算子对图像进行边缘检测,再用中值滤波进行去噪处理,之后用预处理过的图,计算边缘总像素点的个数、边缘的总周长、边缘区域的最大高度、最大宽度、奇数链的链码数目(边缘不连续的点的数目)、目标面积、矩形度、伸长度。

再接着提取图像的七个不变矩特征:

The sum of horizontal and vertical directed variance,more distributed towards horizontal and vertical axes,the values are enlarged.

The covariance value of vertical and horizontal axes when the variance intensity of vertical axis and horizontal axis were similar.

The result emphasizing the values inclined to left/right and upper/lower axes.

The result emphasizing the values counterbalancing to left/right and upper/lower axes.

The extraction of values invariant against size,rotation,and location.

根据清晰度的判断,RGB,每个图层提取5个判断清晰度的特征。

a)灰度熵:

它反映了图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令pi表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:

b)Brenner梯度函数

Brenner梯度函数是最简单的梯度评价函数,它只是简单的计算相邻两个像素灰度差的平方,该函数定义如下:

f(x,y)表示图像f对应像素点(x,y)的灰度值。

c)方差函数

因为清晰聚焦的图像有着比模糊图像更大的灰度差异,可以将方差函数作为评价函数:

其中,为整幅图像的平均灰度值,该函数对噪声比较敏感,图像画面越纯净,函数值越小。

d)能量梯度函数

e)梯度函数

3、灰度直方图256个特征。

现将RGB如转换成灰度图,Gray=0.29900*R+0.58700*G+0.11400*B,然后利用灰度直方图提取特征。

灰度直方图是关于灰度级分布的函数,是对图像中灰度级分布的统计。灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。0-255个灰度值的频率,共提取256个特征。

4、将RGB空间进行转换,提取出色彩与纹理特征256个。

利用论文《Color and texture descriptors》将原本的RGB空间转换为HSV空间,计算色彩直方图,得到有256个特征。

至此,所需的全部特征全部提取完毕,然后利用提取出来的所有特征作为自变量,图片质量的好坏作为因变量(0或1),对图片质量进行预测。这里我们采用随机森林模型进行预测。

一、机器学习进行预测:

随机森林算法:

1、给定训练数据集d=(X,y),其中X为提取出来的特征,y为0,1分类变量(0表示图片质量差,1表示图片质量好)。固定m≤p(m为随机抽取出的特征个数,p为特征总个数)以及树(决策树算法)的个数B。

2、对每个b=1,2,...,B,做如下步骤:

a)对训练数据d通过随机从n个样本中抽取n次,构造bootstrap训练集

b)使用中的数据构造最大深度的树随机从p个变量中抽取m个进行分裂;

c)储存树与bootstrap样本的信息。

3、对任意预测点x0,进行随机森林的拟合与预测。对每棵树都会预测出一个类别,这样由于有B棵树,所以可以预测出B个01类别。最终的预测结果,就是B个类别中,出现次数最多的类别(0或1)。

由于真实图片中存在着大量质量不好的图片,所以通过图片质量检测先将这批质量不好的图片筛选出来,只针对图片质量过关的眼底图像进行后续处理。

图像预处理:

预处理采用直方图均衡化。首先在所有的图像中选择一张识别效果最好的,如图1所示,并提取其RGB三个轨道的灰度分布,如图2所示。将其作为标准图。

视盘识别:

视盘识别主要分为三个主要步骤:初定位(ROI提取),精确定位,平滑拟合

初定位:首先基于视盘具有高亮的特点,其在红色轨道上最为明显,我们首先选取红色轨道进行分析。具体来说红绿轨道均能肉眼识别视盘位置,红色轨道更为明显。感兴趣区域(ROI)提取主要是利用自适应阈值分割的方法。首先将将整张图片更亮的区域用阈值分割的方法提取出来,其余较暗区域利用均值填补。修改后的图片再次进行阈值切分。通过多次迭代,将较亮区域面积一步步减小。当ROI面积事先确定的阈值后,停止迭代。然后再对提取出的高亮区域进行筛选。然后提取出该ROI的中心并截取ROI以供下一步分析。在ROI位置确定的方法上,目前流行的方法类似的还有简单阈值切割法:Optic cup and disc localization for Detection of glaucoma usingMatlab,Hanamant M.Havagondi,2 Mahesh S.Kumbhar.Kaiser Window定位法:Blood vessel inpainting based technique for efficient localization andsegmentationof optic disc in digital fundus images,Biomedical Signal Processing and Control 25(2016)108–117等。相比较于其他方法,我们优点在于:单纯利用红轨道信息,血管影响比较小。对于边界曝光过度的照片。本发明所用方法可以很快去掉这部分影响,不会对ROI提取造成困扰。而对于一部分图像本身高亮区域过多(或者高度病变,视盘亮度不够),这些质量不是很高,ROI定位不准的图片程序会自动提示质量问题,不进行后续的分析。

精确定位与平滑拟合:

在提取出的ROI中,主要利用形态学处理方法先去掉噪音影响,然后对于图像进行阈值分割,可以得到相对不光滑的边界位置。然后对于边界位置进行椭圆拟合(最小外接椭圆),拟合出一个边界参数方程

x=a*cos(t)*cos(θ)-b*sin(t)*sin(θ)+x0

y=a*cos(t)*sin(θ)-b*sin(t)*cos(θ)+y0

其中θ为椭圆倾斜角,a,b为长短半轴,t为参数,x0,y0是椭圆中心坐标。最后将边界方程绘制在原图上。目前关于视盘边界定位方面,主要还有固定阈值分割和区域生长等算法。固定阈值分割稳定性最差,边界识别不准,而我们的自适应阈值方法则根据视盘面积自动选择最优阈值,不会造成视盘边界的明显误判。而区域生长算法则对于初始种子点选取有一定要求,并且可能会造成识别区域偏小的问题。

血管识别:

一,读入图片。

二,对图片做的第一个处理是去掉圆形眼底图片周围的黑色边框。

三,图片处理

对图片处理,得到大致的血管轮廓。首先,预处理去噪音,之后中值滤波、阈值去噪,结果如图3所示;

接着,对预处理得到的血管,进行多次腐蚀操作,得到血管的大致分布范围,这时由于部分图片会因为拍摄角度,光线等原因造成的图片局部出现类似于暗点的图片质量原因,所以这一步得到的图片可能会出现血管在某一处断裂的情况,所以接着对得到的不连续的断裂的血管进行像素链接及对角线填充,得到连续的血管。然后对得到的粗糙的血管进行去毛刺处理,到血管的大致轮廓,结果如图4所示。

四,血管识别

接着血管识别是把每一段血管看做一个个体,识别每一段血管。

主要做法是首先找到血管的中心线。因为初步识别血管的轮廓不准,但通过腐蚀操作可以找到相对来说比较准确的血管中心线。这一步就已经把血管各段分开了,除去血管的连接点,每一段都是连续的线。然后利用算法对断点进行拟合,如图5所示。

中心线选好后,利用中心线两侧向外的灰度梯度变化,确定血管边界,如图6所示。

最后将识别的血管画在原图片上,如图7所示。

血管动静脉识别:

动静脉识别是在血管识别和实盘识别的基础上,利用眼底图片及对应的标记好动静脉的血管图片行训练而成的。

动静脉识别我们利用了机器学习的方法。

训练是运用机器学习的方法,首先识别的对象是血管,需要识别出动静脉,所以要选定机器识别的图片特征作为识别标准。训练所需要的图片特征首先从血管所在的位置入手。根据血管所在的位置,可以将该区域以血管壁为边界,分为血管外侧,血管边界,血管内侧三个子区域。然后对这三个子区域分别提取灰度梯度变化和纹理变化两个大方面的特征。这类特征包括每一处像素点所在小区域(以每个像素点为中心的3*3区域)的灰度梯度变化的平均数,中位数,众数,及纹理特征的模式,也包括这些特征的线性及非线性组合共141个训练特征进行训练。这里选择SVM(支持向量机)进行训练,得到我们需要的分类器。

动静脉识别的区域选择血管较粗,交叉较少的区域进行识别。所以选择以视盘为圆心一定距离内的区域作为目标区域。

识别时将图片输入,然后识别出目标区域的血管,然后在血管的外侧,血管壁,内测分别提取我们训练所选择的141个特征,然后用训练得到的机器学习分类器进行识别,得到结果,并将结果展示在原图片上,结果如图8所示。

识别的过程中对图片的处理与血管识别时对图片的处理基本相同,这里不进行赘述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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