当前位置:首页 期刊杂志

可学习的硬性渗出病变点标注方法

时间:2024-05-04

刘蒙蒙,郭 松,高颖琪,李 涛,2

1(南开大学 计算机学院,天津 300350)2(天津市网络与数据安全技术重点实验室,天津 300350)

1 引 言

眼底是眼球内后部的组织,即通常所说的视网膜,眼底图像是使用眼底相机获取的视网膜图像,包括视网膜、视杯、视盘、黄斑以及视网膜动静脉等.眼底检查的结果可以反映许多全身性疾病如高血压、肾病、糖尿病等疾病,眼底图像是重要的诊断资料.随着糖尿病、青光眼等多种疾病的发病率不断增加,对眼底图像的定期筛查已经成为预防患者失明的重要手段,目前对视网膜图像的分析筛查主要依靠眼科医生的肉眼观察,以此来判断患者眼部的病变程度,但是日益增加的患者数量对于眼科医护人员带来巨大的挑战[1].

计算机辅助诊断工具为眼底图像的筛查提供了新的思路,辅助诊断工具可以降低主观误诊的因素,帮助临床经验不足的眼科医生进行诊断,辅助诊断信息提高了临床诊断的准确率,减少了诊断决策的时间,大大提高了医护人员的工作效率.当前计算机辅助诊断的方法研究是基于大量标注眼底病变点的眼底图像展开的,主要通过对病变点的分割与检测结果进行评估,获得诊断结果.目前关于眼底病变点分割的公开数据集包括DDR[2]、IDRiD[3]、e-ophtha_EX[4]、e-ophtha_MA[4]、ROC[5]、HEI-MED[6]等几个数据集,表1中列出了上述四个数据集的图片数量和所标注的病变点的种类.

这些对眼底病变点进行像素级标注的数据集,眼底图片数量共计近千张,但这个数据量相较于深度学习的分割模型或相关诊断工具的研究需求,存在“相当大”数量级的差距.为了打破数据集对病变点分割与检测研究的局限,必须对大量眼底图像进行精确的标注,需要耗费大量的人力和时间,且对标注人员的专业素质要求较高.目前,眼底图像主要用于糖尿病性视网膜病变(diabetic retinopathy,DR)的筛查,而硬性渗出是DR早期阶段的显著特征,因此硬渗是计算机辅助诊断工具的重要检测对象,是DR筛查的重要环节.眼底病变中的硬性渗出具有数量不定、形状不规则的特点,且眼底图像背景复杂,需要一种适应眼底图像场景的标注方法,能够快速地标注硬渗区域的不规则轮廓.

表1 眼底病变点分割数据集Table 1 Datasets of fundus lesions segmentation

全自动的分割算法在对眼底图像进行分割时,难以自动获取目标,存在提取边缘不理想的不足[7].因此本文设计了一种可学习的硬性渗出病变点标注方法,加入可学习的分割算法,对眼底图像中的硬性渗出进行逐像素的标注.在标注过程中,包括人的鉴别过程,将其标注的结果加入分割算法并训练分类器,使分割算法具有学习能力,标注区域是基于可学习的分割算法获得的.标注方法的优势在于由分割算法获得疑似区域的轮廓,由分类器鉴别疑似区域,减少用户标注一个硬性渗出区域的点击时间,最终用户能快速完成对不规则渗出区域的标注.

2 相关工作

基于眼底图像的计算机辅助诊断工具主要有两种评估方法,一是评估视网膜血管的形态学特征,二是检测各类特异性的眼底损伤并进行分类和计数,后者对糖尿病性视网膜病变的诊断和分期有重要意义,眼底病变的数量和面积为眼科医生提供有效的辅助诊断信息,换而言之,眼底病变点分割的算法研究与计算机辅助诊断工具的发展息息相关.

基于深度学习的眼底图像分割算法近来得到了迅猛发展.在眼底结构和病变点分割方面,深度学习算法也表现出优异的性能.Pavle等人使用深度卷积神经网络对眼底渗出物进行分割,并结合渗出物位置的高水平解剖学特征,获得了比传统方法更优异的分割结果[8].Feng 等人提出的可检测眼底图像中视盘和渗出的网络结构,获得了较之前方法更准确的分割结果[9].Juan等人利用深度学习网络分割渗出物的灵敏度达到了0.9227,对比传统方法在多个评估指标上性能均有很大提高[10].Jen等人提出的10层卷积网络可以同时分割渗出物,出血和微动脉瘤,其对渗出物的灵敏度达到了0.8758[11].Guo等人设计的小目标分割网络可以同时分割四种病变,在多个数据集表现优异,对于四种病变的灵敏度均超过了国际眼底竞赛的最好成绩[12].

关于眼底图像渗出区域的分割问题研究,Sopharak等人提出了基于模糊C均值(FCM)聚类分割渗出物的方法,获得了较高的敏感性和准确度[13].Worapan等人改进了迭代图形分割的算法,由监督学习的方法识别具有高可信度的种子,继而进行迭代,这种方法具有很强的鲁棒性[14].此外也有人使用一些非机器学习的方法对渗出区域进行分割,即通过手动设计特征和分类规则处理眼底图像.Jaskirat等人提出的动态阈值的分割方法,在多个数据库上获得了平均0.8885的特异性,具有泛化能力和较强的候选能力[15].Welfer等人基于形态学在DIARETDB1上敏感度达到了0.7048[16].Imani等人基于形态学成分分析算法和动态阈值,结合血管的分割结果检测渗出,在多个数据集上达到了优异的效果[17].Li等人利用主成分分析法建立主动形状模型,区域生长和边缘检测的方法达到了100%的灵敏度和0.71的特异性[18].Sinthanayothin等人使用递归区域增长分割算法分割渗出灵敏度为0.88,特异性为0.997[19].

结合深度学习的眼底病变点分割算法,需要大量像素级标注的眼底图像,而当前常用的标注工具如LabelMe[20]、LabelImg等,其标注方法都是依靠人力选择标注区域并添加标签,标注形式主要分为矩形标注和多边形标注.矩形标注速度较快,但是精度不高,多边形标注提高了精度,但需要用户进行多次点击,耗费大量的时间.眼底病变点微小、且多为不规则形状,矩形标注很难用作语义分割任务,而使用多边形对病变点进行标注的时间成本过高,因此通用标注工具的标注方法和形式在速度和精度上都难以适应眼底图像病变点标注的应用场景.

3 可学习的标注方法

可学习的标注方法,顾名思义是一种具有学习能力的方法.标注方法中的分割算法学习用户的标注,将保存的最终标注结果作为训练集样本训练分类器;用户只需简单校正标注结果即可得到满意的结果.由于分类器的存在,分割算法的性能逐渐提高标注过程中用户校正的区域会逐渐减少.

标注工具的学习能力源于分割算法中的增量学习分类器,标注工具基于用户的标注结果获取新的病变点样本,通过增加训练样本集数量来提高分类器对硬渗的鉴别能力.标注工具包括界面以及可学习的分割算法,本节将重点介绍可学习分割算法的原理,分割算法结合了形态学处理与机器学习,由形态学运算获得疑似病变点区域,然后使用分类器对疑似区域进行分类,判断候选区域是否为硬性渗出区域.算法将分割结果返回至界面进行显示,并从界面获得新的样本,用于训练分类器.

3.1 形态学处理

眼底图像的背景复杂,眼底图像存在光照不均匀、对比度小的问题,造成眼底图像的细节丢失,这些噪声显著影响了分割结果的准确性.通过比较眼底图像的三个颜色通道如图1所示,绿色通道保留了最多的细节,选取绿色通道进行算法分割可以获得更好的分割结果.对眼底图像进行图像增强可以增强局部对比度并突出渗出区域,从而获得更好的分割结果,本文采用的是限制局部对比度的CLAHE方法[21].

图1 RGB三通道对比图Fig.1 Contrast between three RGB channels

形态学处理中的开运算是一个基于几何运算的滤波器,是用于去除图像噪点的图像处理方法,开运算实际上就是一个先腐蚀后膨胀的过程[22].公式如下:

图2 眼底图像的背景图(左)和较亮区域(右)Fig.2 Background(left)and bright area(right)of fundus image

开运算可以移除图像中的小斑点,平滑较大区域的边界,同时不会明显改变各个区域的面积,而渗出区域一般是眼底图像中的小斑点,开运算可以有效地移除渗出区域,对分割渗出区域有较为满意的效果.如图2所示,对眼底图像作开运算处理,移除眼底图像中的斑点,即获得图像的背景图.将绿色通道图与背景相减,获得两幅图像的不同之处,即比周围背景亮度更高的区域,也就是可能为渗出的区域.对结果进行阈值分割,获取可能的渗出候选区域.

图3 不同尺寸结构元素的分割结果Fig.3 Segmentation results of different size structural elements

在上述处理过程中,开运算过程中结构元素的选取会显著影响分割结果.要获得较好的分割结果,须选取合适大小和形状的结构元素.选取各向同性的圆形作为结构元素,可以排除渗出区域的方向因素的干扰;结构元素的尺寸影响检测出的渗出区域的效果,结构元素偏小时,分割较大的渗出区域会造成丢失,结构元素偏大对距离较小的渗出区域造成粘连的效果.如图3所示,从左到右是选取合适的结构元素、结构元素偏小、结构元素偏大时的分割结果.

3.2 连通区域检测

经过形态学处理,算法获得硬性渗出的候选区域.眼底的硬性渗出是眼底图像中较为明亮的形状不规则的斑点,不同的硬渗区域不存在连通性且较为独立,而通常一个连通区域中的像素点的类型相同,没有必要对这个区域内的像素点进行逐像素分类.为了加快对整幅图像的分类速度,本文弃用了对图像中所有的候选区域做逐像素分类的方案,而是选择将每一个连通区域作为分类的一条数据可以有效加快对候选区域的分类速度.如图4所示,展示了对步骤①结果图像检测出的部分连通区域,一些十分微小的区域未举例.

图4 连通区域检测结果Fig.4 Connected area detection results

3.3 增量学习分类器

形态学处理获得的候选区域是灰度值高于周围像素点的区域.视盘是一个近似圆盘的明亮区域,血管是眼底图像中的较暗区域,因此视盘或相距很短的两条血管之间的区域都是疑似硬渗的区域.在分割算法中加入分类器完成对候选区域的鉴别,得到新的渗出候选区域,分类器可以提高分割算法的准确率.渗出的形状和大小均不统一,因此选择眼底图像绿色通道的灰度均值和候选区域所有像素点的红绿蓝通道的三个平均值作为分类特征.

增量学习是一个不断引入增量训练集的学习过程[23],KNN算法是一种思想简单且准确度高的算法,在训练集较大时具有良好的分类能力,本文选择了KNN算法作为分类器.KNN的分类过程是选取与当前数据最相似的K个样本,由K个样本共同决定这条数据的类别,每一个连通区域都是一条待分类的数据,将渗出区域的特征送入KNN分类器,判断该区域是否为渗出.标注工具获得自动分割算法的候选渗出区域向用户展示,用户可以对分割结果进行校正,用户接受的分割结果产生新的样本,扩充分类器的训练集,新样本对下一次的分类结果产生影响.

分类器的训练样本由用户的标注产生,这意味着随着用户标注的眼底图像的增加,分类器的训练集将逐渐增加,眼底图像标注场景的特殊性在于,眼底图像的质量彼此之间差别较大,会受到拍摄相机、光照分布、拍摄距离和角度的影响,因此分类器的分类效果与训练集数量密切相关,增量数据集具有在一定范围内提升分类器的准确率的能力.

3.4 算法概述

可学习的分割算法的流程图如图5所示,前几节已经介绍了分割算法中的每个处理过程,本节对分割算法的流程做简要总结.

图5 分割算法的流程图Fig.5 Flow chart of the segmentation algorithm

分割算法中的输入是待标注的眼底图像,第一步取眼底图像的绿色通道经过形态学处理获得硬渗区域的候选域①,第二步提取候选域①中的连通区域的特征送入分类器,根据分类器的分类结果获得候选域②.用户对候选域②中的渗出区域进行鉴别,标注过的图片生成新的正负样本更新分类器.

表2 分割算法的伪代码Table 2 Pseudocode of segmentation algorithm

分割算法的伪代码说明了算法的流程,如表2所示.

4 实验与结果分析

本节对实验结果进行综合测评与分析,实验中采用的平台为:Intel® Xeon® W-2102,CPU @2.90GHz,操作系统为Microsoft Windows10(64位),使用Python 3.7解释执行.此标注工具的界面是基于Python语言GUI编程解决方案PyQt[24]实现的.

图6 分割结果的界面展示Fig.6 Segmentation result showedon GUI

用户可以通过工具界面选择标注的眼底图像,校正自动分割结果.标注工具提供读取、展示眼底图像及分割结果的功能,将用户的分割结果保存生成标注文件.标注工具的界面如图6所示,左侧为工具栏,右侧是两个显示区域分别显示原图和自动分割算法给出的渗出候选区域.

4.1 数据集

为了测试分割算法的性能,本文选取了一个对渗出区域进行逐像素标注的数据集.IDRiD(IndianDiabeticRetinopathyimageDataset),这个公开数据集是由印度糖尿病视网膜病变图像构成的,是印度人的第一个典型数据库,它是在像素水平上对构成典型糖尿病视网膜病变的病变点和正常视网膜结构进行标注的数据集.该数据集提供了关于糖尿病性视网膜病的疾病严重性和每个图像的糖尿病性黄斑水肿的信息,这使其非常适合用于早期检测糖尿病视网膜病变的图像分析算法的开发和评估.本文使用IDRiD数据集中的54张图片及其渗出区域的真值标注结果作为实验样本的评估标准.

4.2 分割算法的性能评估

根据形态学分割结果,数据集中的54张图片共有5708个候选域,其中正样本的数量为1220个,其余为负样本.从数据集中选取8张图片作为测试集,在剩余图片中选取不同数量的图片作为训练集,对分割算法的分割结果做评估.

如图7所示,增加训练集图片,分割算法对同一张图片的分割结果与Label的直观对比:

图7 分割算法结果对比Fig.7 Comparison of the segmentation algorithm result

对硬性渗出做分割时,眼底图像分为渗出区域和背景区域,为了定量比较算法的分割结果与渗出的真值之间的差异,引入四个量化统计的指标:①真阳性(true positive,TP)表示预测为渗出且预测正确的像素点;②真阴性(true negative,TN)预测为背景且预测正确的像素点;③假阳性(false positive,FP)预测为渗出但预测错误的像素点;④假阴性(false negative,FN)预测为背景但预测错误的像素点.表2列出了训练集图片数量不同时,分类器对测试集图片的分割结果,本文使用了召回率(Recall)、特异性(Specificity)、准确率(Accuracy)和精度(Precision)评估分割算法的结果[25].计算公式如表3所示.

表3 分割指标计算公式Table 3 Formula for calculating variables

表4 不同尺寸训练集的分割结果评估Table 4 Evaluation of segmentation result with different size dataset

召回率表示分割算法检测出的正确硬性渗出区域占实际硬渗区域的比例,精度表示检测出的渗出区域中正确预测的比例.表4列出了训练集数量不断增加时的分割结果评估,实验结果显示了在标注图片数量增加的情况下,分割结果的召回率逐渐增加并趋于稳定,精度不断增加并逐渐趋于稳定,这表示分类器的分类能力随训练集的数量增加而提高,分割算法的性能随之增加,这个过程体现了分割算法的可学习能力.

由于开运算的结构元素的尺寸的限制,形态学处理获得的渗出候选域①,对于区域面积超过视盘的渗出区域的检测效果并不理想,该渗出区域较为明显易于人工标注,且这种情况在眼底图像中并不常见,因此本文忽略了该种情况.

5 结束语

本文通过分析眼底图像标注场景中的特点,提出了一种基于分割结果的标注方法,分割算法是由形态学处理和机器学习结合的分割算法获得的结果,可以快速获得硬性渗出区域,用户仅需简单的点击就能校正并完成高精度的标注操作.这种分割算法通过硬渗的亮度特征获得不规则的边界,跳过用户创建多边形的标注过程,节省了多次鼠标点击操作,提高了标注速度;而分割算法中的分类器进一步提高了分割算法的正确率,减少用户的校正操作,进一步减少用户标注的时间.实验结果表明,分割算法随着增量训练集的增加提高预标注结果的准确率,这一算法获得较高准确率的同时,用户只需判断区域内分割结果的正确性就能完成一个不规则区域的标注,提高了标注效率.进一步的研究工作可以使用更复杂的分类器替换本文选择的KNN算法,获得更高的准确率.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!