« 首页 - 西安必信达软件技术有限公司 - BXDSOFT.COM
基于多尺度滤波和线检测算子的视网膜血管检测探究
「本文结合多尺度Hessian矩阵滤波和线性检测算子,提出了一种有效的血管检测方法。以第一位专家手动分割结果作为参照,本文算法对DRIVE和STARE数据库分割的平均准确率和局部准确率分别为94.26%、93.67%和77.63%、76.23%,灵敏度和特异性分别为76.18%、71.26%和95.87%、95.48%。实验结果表明,该方法只需要很少的训练样本即可达到与其他监督学习方法相当的准确率,且在灵敏性上具备更好的性能。在STARE数据评价并参照第二位专家分割结果时,性能下降较大,说明本文方法对细小血管的提取及有病变干扰的图片来说,分割性能还有待加强。(2021-1-24)」
血管自动提取是视网膜眼底图像处理系统的重要问题。眼底图像中的血管表现为狭长的连通的条形模式,并沿一定走向伸展变化,其截面像素的灰度通常呈现高斯分布特性。血管在图像中的形态具有多变性,具体表现在方向和尺寸的变化上,其走向在0°~360°方向均有可能,宽度可以在一至十几个像素之间变化。造成其检测困难的因素除了其自身的形态多变性外,还有复杂背景和其他对象的干扰,例如非均匀照明和对比度,背景纹理干扰和边缘干扰,因此眼底图像血管检测仍然是没有完美解决的问题。国内外学者已经在眼底图像血管提取方面做了较多的研究,相关方法主要分为非监督和监督学习两大类。非监督学习中主要涉及地有基于边缘的方法、形态学和模板匹配等。由于血管表现为曲率变化平滑的连通的狭长结构,可以看作是分段线性的条形模式,其边缘由相邻的平行线段组成,因此通过边缘检测实现血管检测与分割是一种可行的检测技术。但是基于边缘算子的血管检测存在难以克服的固有缺陷:在血管边缘模糊且对比度弱的情况下,边缘不易提取,造成漏检;同时边缘提取算子难以分辨纹理和边缘,从而可能造成误判。形态学做血管提取时,一般采用线状结构元素。为适应走向和尺寸的多变性,可以旋转结构元素,并选择多种尺寸的结构元素进行运算,从而增强检测效果。为了进一步利用线状目标的截面形状特性,Zana等人融合截面的横向曲率分析进行了眼底图像血管的提取。形态学的另一种做法是先通过形态学细化算子提取线状目标的骨架结构,然后再结合聚类、分水岭等图像分割技术实现血管的重构和提取。基于形态学方法的优点体现在运算速度和抗噪声性能上,通过调整结构元素尺寸或组合多种尺寸结构元素也可以在一定程度上适应血管尺度的变化,但难以检测弱、细血管。

  模板匹配也是进行血管检测的有效方法,其检测原理依赖于血管的条形模式特性以及截面的高斯分布特性,提出首先利用二维高斯函数描述血管的截面特性,然后通过高斯匹配模板或Gabor滤波模板抑制背景和非线状目标,凸显图像中的血管目标。但是模板匹配的困难在于模板尺度参数的选取,特别是当图像中血管目标的尺度存在大幅度连续变化时,很难确定合适的模板尺度参数,此外匹配的响应强度在很大程度上受制于待检测区域的照明和对比度因素,同时难以排除对比度强的背景纹理和边缘干扰,这些因素容易导致漏检或误检。为了获得鲁棒性强的血管检测方法,近年来,研究人员较多地采用了监督学习技术来实现血管检测。早期的Niemeijer等人主要是利用区域属性中的颜色、对比度、长宽比、线性度和曲率等信息进行特征提取,然后通过监督学习训练K 近邻分类器、线性或二次分类器来检测血管的。根据血管条形或线形特点,Ricci 等人设计了线形检测器,Staal等人设计了脊线检测器来匹配血管结构,进而提取血管特征,同样可以获得良好的检测效果。考虑到尺度的适应性,Nguyen等人构建了多尺度线性检测器,通过改变线检测算子的长度,避免了紧邻血管的互相干扰。Soares等人使用在各个尺度下二维Gabor小波变换的响应和像素灰度值构成特征向量,使用高斯混合模型分类器对血管进行分割,但噪声和类似血管的物体的假检率比较高,且对光照变化较大的图片检测效果不好,无法对细小的血管进行检测。Marin提取灰度值和不变矩特征,利用人工神经网络对血管进行分类。You结合镜像投影和半监督学习实现血管分割。针对血管的线状结构特性和Hessian矩阵检测线性结构的良好性能,近年来Hessian矩阵多尺度滤波受到了越来越多的关注,其中Krissian、Li和Frangi提出的基于Hessian矩阵特征值和特征向量的血管增强算法应用较为广泛,尤以Frangi血管增强算法应用最为广泛、性能最为优异,但该算法缺少对于尺度适应性的处理。结合多尺度Hessian矩阵滤波和线检测算子, 本文提出了一种有效的血管检测方法。在检测前,为了有效地增强不同尺度的血管结构,同时抑制背 景,采用多尺度Hessian矩阵分析,利用Hessian矩阵特征值构建血管相似性函数实现血管增强,然后在增强的血管图像上,再次利用改进的线检测算子,提取能够反映血管测度的特征,最后采用SVM 实现血管检测。实验结果表明,该方法具有良好的检测性能。

  1 基于Hessian矩阵的血管多尺度滤波增强

  在检测血管前,有必要对眼底图像血管进行增强处理,一方面凸显线状血管结构,另一方面希望抑制背景和其他非线状结构。由于眼底图像血管为树状结构,从主干血管到微细分支血管,血管宽度在整幅图像中呈现较大的变化,因此我们考虑融合多尺度空间滤波技术使不同尺寸的血管都能获得良好的增强效果。

  Hessian矩阵能够求取图像中二阶导数的最大值和方向,某点的Hessian矩阵的特征值刻画了该点的曲率值,其幅值最大的特征值对应的特征向量代表着该点曲率最大的方向,而幅值最小的特征值对应的特征向量代表着该点曲率最小的方向。Hessian矩阵的这一几何意义有着广泛的用途,可以很好地描述线状结构,如提取指纹图像中的脊线、医学图像的血管等。在眼底图像血管检测应用中,较大的特征值对应的特征向量的方向垂直于血管走向,较小的特征值对应的特征向量的方向平行于血管走向。对于二维输入图像I,像素点(x,y)的Hessian。

  2 线检测算子原理

  增强后的眼底图像背景已经得到有效的抑制,线状血管结构清晰。由于在增强过程中边缘信息定位不准确,直接采用阈值分割容易造成大量的误判,因此考虑了采用Ricci和Perfetti等人提出的线性检测算子来实现最终的血管检测。定义一个15×15的检测窗口,N(i,j)为检测窗口中的像素平均灰度值,为检测不同方向的血管,沿着固定长度的线性检测算子,以15° 为旋转步长,计算12个方向的像素平均灰度值。取L(i,j)为12条扫描线上最大平均灰度值,差值S(i,j)=L(i,j)-N(i,j)表示该目标像素点的线强度。由于在平行血管的方向上线强度S(i,j)最大,在垂直血管方向S(i,j)最小,因此考虑了在原线性检测算子正交方向两侧再添加两点,改进的线性检测算子如图2(c)所示。在其正交方向,在线性检测算子下的平均灰度值用Lo(i,j)表示,因此可得到第二个特征So(i,j)=Lo(i,j)-N(i,j)。再加上像素本身的灰度值,便可得到所构造的三维特征向量x =[S(i,j),So(i,j),I(i,j)]。最后根据提取的特征,采用支持向量机对血管进行检测。这种基线性检测算子的视网膜血管分割技术简单有效,保留了匹配滤波器的优点,摒弃了其缺点,且具有良好的边缘定位作用。所提取的特征维数少,只需要较小的训练样本就可以获得良好的检测能力。

  3 实验结果及性能分析

  实验测试所用的数据集来自国际上公开的两个常用的眼底图像数据,即DRIVE和STARE彩色眼底图像库。DRIVE分为测试集和训练集两组,每组20幅图像。训练集包含一由专家手动分割的结果,测试集包含两组由另外两位专家手动分割的结果。在第一位专家人工分割的结果中有12.7%的像素被标记为血管,在第二位专家人工分割的结果中有12.3%的像素被标记为血管。在STARE中包含20张图片,其中病变图片10张。在第一位专家人工分割的结果中有10.4%的像素被标记为血管,在第二位专家人工分割的结果中有14.9%的像素被标记为血管。虽然多数血管方法在进行性能评价时普遍采用第一位专家的标记结果作为参考,但是为了充分评价本文算法,分别用两位专家标注的血管图像做了性能测试。在提取训练样本时,由于眼底图像中非血管像素占了80%以上,如果随机抽取的话,由于血管像素明显少于非血管像素,因此容易造成训练样本不平衡。为了避免这一问题,我们通过人工选取的方式,血管和非血管样本各取了200个样本点,为了尽可能地增强对细小血管的检测准确率,在后期我们又有意地加入了40个细小血管样本。为了对算法进行客观评价,本文采用了4个常用的性能评价指标,即采用准确率、灵敏度、特异性和局部准确率来评价算法的分割性能。准确率(Acc)是用来衡量所有血管和非血管被

  准确分类的概率,定义为所有正确分类的血管和非血管占全部眼底图像像素的比值,即

  Acc= TP+TN

  TP+FP+TN+FN

  灵敏度(SN)是用来衡量正确分类的血管数,表示人工标记的血管被正确识别的比值,即

  SN= TP

  TP+FN

  特异性(SP)则用来衡量正确分类的非血管数,表示非血管被正确识别的比值,即

  SP= TN

  TN+FP

  式中TP表示正确分割的血管像素个数;TN 表示正确识别的非血管像素个数;FP表示非血管错判为血管的像素个数;FN表示血管错判为非血管的像素数目。考虑到眼底图像中血管和非血管比例极不平衡,一幅图片中背景占了多达80%,往往各种方法的平均准确率都比较高,区别很小。引入局部准确率指标,该指标仅考察血管网络及其附近邻域的准确率,具体做法是利用半径为3的结构元素S 对人工标注的血管图像进行形态学膨胀运算,膨胀后的结果作为局部准确率统计区域,此时统计区域中的血管和非血管大概各占一半。尽管增强后的血管结构比较清晰,但直接进行阈值分割难以获得满意的性能,同时也难以排除边界干扰。分别展示了DRIVE和STARE数据库中通过Otsu阈值和本文方法进行分割结果的对比图第一行为原图,第二行专家手动分割的标准图像,第三行为Hessian增强后的图像,第四行为直接阈值分割的结果,第五行为本文方法的分割结果。由可以看出,本文方法相比于直接阈值分割,对于细小血管的提取更为连贯。给出了几种血管分割方法在DRIVE 和SATRE数据集上的血管检测性能指标。需要说明的是,其他几种比较的监督学习方法都是只针对第一位专家的标注结果进行评测的,没有给出对第二位专家的标注进行测试的结果。可以看出,阈值分割的准确率尽管不低,但是灵敏性只有46.64%和45.59%,远低于其他的监督学习方法,同时其特异性又高于其他方法,达到了99.66%和98.40%,表明在进行Otsu阈值分割时,倾向于将血管像素判为非血管,即漏检较多。可以观察到,不同方法在分割准确率上非常接近,也非常接近人类观察的结果,而且本文方法在获得足够准确率的前提下,漏检率低于其他算法,这从算法具有相对较高的灵敏性上可以得到验证。与最新报道的两种方法相比,本文方法在DRIVE数据集中的灵敏性要优于王晓红和Sohini的灵敏性,在准确率上也相当接近,但是在STARE数据集中的性能相对差一些。此外在STARE数据库中,由于第二位专家给出的是非常精细的血管分割结果,加大了评测的难度,尤其是在细小血管检测以及排除边界干扰方面,算法仍难以达到人类专家分割的水平,因此血管检测的敏感性下降较大,从71.26%降到57.27%。

  总的来说,监督学习方法的性能要略好于非监督学习方法,本文方法可以达到其他多种监督学习方法相当的准确率,且在灵敏性上具备更好的性能。其他监督学习方法所用的训练样本都非常大,例如Ricci和Perfetti等人提取了20000个像素点的线性特征进行训练,Staal等人大约提取了30000个像素样本,Soares等人[11]使用一百万个像素点在各尺度下二维Gabor小波变换的响应和灰度值构成特征向量。本文方法尽管也需要训练样本,但是我们只用很少的(480个)样本就达到了与其他方法接近的性能。

  4 结 论

  本文结合多尺度Hessian矩阵滤波和线性检测算子,提出了一种有效的血管检测方法。以第一位专家手动分割结果作为参照,本文算法对DRIVE和STARE数据库分割的平均准确率和局部准确率分别为94.26%、93.67%和77.63%、76.23%,灵敏度和特异性分别为76.18%、71.26%和95.87%、95.48%。实验结果表明,该方法只需要很少的训练样本即可达到与其他监督学习方法相当的准确率,且在灵敏性上具备更好的性能。在STARE数据评价并参照第二位专家分割结果时,性能下降较大,说明本文方法对细小血管的提取及有病变干扰的图片来说,分割性能还有待加强。
(t3遥)
点击进入「必信达创业合作论坛」下一篇:基于C语言的计算机编程技术研究 »
Copyright © 1999-2021 西安必信达软件技术有限公司