微动脉瘤是糖尿病视网膜病变的初期症状,消除该病灶可在早期非常有效地预防糖尿病视网膜病变。但由于视网膜结构复杂,同时眼底图像的成像由于患者、环境、采集设备等因素的不同会存在不同的亮度和对比度,现有的微动脉瘤检测算法难以实现该病灶的精确检测和定位,为此本文提出嵌入SENet(squeeze-and-excitation networks)的改进YOLO(you only look once)v4自动检测算法。该算法在YOLOv4网络基础上,首先通过使用一种改进的快速模糊C均值聚类算法对目标样本进行先验框参数优化,以提高先验框与特征图的匹配度;然后,在主干网络嵌入SENet模块,通过强化关键信息,抑制背景信息,提高微动脉瘤的置信度;此外,还在网络颈部增加空间金字塔池化结构以增强主干网络输出特征的接受域,从而有助于分离出重要的上下文信息;最后,在Kaggle数据集上进行模型验证,并与其他方法进行对比。实验结果表明,与其他各种结构的YOLOv4网络模型相比,所提出的嵌入SENet的改进YOLOv4网络模型能显著提高检测结果(与原始YOLOv4相比F-score提升了12.68%);与其他网络模型以及方法相比,所提出的嵌入SENet的改进YOLOv4网络模型的自动检测精度明显更优,且可实现精准定位。故本文所提出的嵌入SENet的改进YOLOv4算法性能较优,能准确、有效地检测并定位出眼底图像中的微动脉瘤。
引用本文: 高玮玮, 单明陶, 宋楠, 樊博, 方宇. 嵌入SENet的改进YOLOv4眼底图像微动脉瘤自动检测算法. 生物医学工程学杂志, 2022, 39(4): 713-720. doi: 10.7507/1001-5515.202203022 复制
引言
糖尿病视网膜病变(简称“糖网”,diabetic retinopathy,DR)是一种血管疾病,是糖尿病患者致盲的首要原因[1],主要由视网膜微血管因葡萄糖水平升高受损而引起[2],是一种进展性疾病,以微小的红色病变——微动脉瘤(microaneurysms,MAs)开始。随着时间的推移,病灶的大小会随之增大,并逐步扩散至整个视网膜[3]甚至发展为更为严重的病灶,如视网膜内出血等,进而影响患者视力[4]。因此,若能通过治疗及时阻止MAs的生长,可以有效预防糖网的病程发展[5]。此外,由于MAs是最早发生在视网膜上的病变,因此及时治疗MAs是糖网治疗中最有效且成本最低的方法。使用激光治疗MAs时需要确定其在视网膜上的确切位置[2,6],由于MAs体积小(直径在10~100 µm),尤其是在早期该病灶肉眼几乎不可见,故为尽早发现病灶以便进行及时治疗,研究人员提出了许多自动检测算法。
MAs自动检测算法一般可分为基于物理模型、基于分类器和基于深度学习的方法。基于物理模型的方法主要是根据微动脉瘤的灰度分布结构进行数学建模,如Zhang等[7]提出了一种基于特征转移网络和局部背景抑制的MAs检测方法,可以降低噪声;高玮玮等[8]利用数学形态学扩展极小值变换后获得微动脉瘤候选区域,进而根据尺寸信息获取真正的MAs。基于分类器的方法主要是先提取MAs候选区,再对候选区进行分类,如Orlando等[9]首先采用中值滤波去除眼底图像中的MAs,再经过形态学膨胀得到糖网背景图像,将原图与糖网背景图像相减得到MAs的候选区,然后对候选区提取传统特征和深度特征用于MAs分类;Dashtbozorg等[10]采用局部收敛滤波(local convergence filters,LCFs)实现眼底图像增强与MAs候选区提取,再结合LCFs响应特征与灰度特征值进行精确检测。基于深度学习的检测方法主要是搭建端到端的深度神经网络,如Xia等[11]提出了一种基于深度卷积编码器解码器的MAs检测模型;赵学功等[12]提出了基于卷积神经网络的MAs检测方法;Rohan[13]提出了一种基于YOLO(you only look once)的MAs自动检测算法。
然而,上述方法除基于YOLO的方法外均集中于检测MAs的存在,并不能够精确定位MAs在视网膜图像上的位置,这使得眼科学家很难直接使用检测模型的结果来治疗MAs,所以目前这项工作仍由眼科学家手动完成。而基于YOLO的MAs自动检测算法虽然在一定程度上实现了对于MAs的定位及检测,但由于YOLO网络模型结构复杂,容易出现过拟合等问题,其检测、定位精度及速度并不高。基于此本文提出了嵌入SENet(Squeeze-and-Excitation networks)的改进YOLOv4(improved YOLOv4,YOLOv4-Pro)用于实现眼底图像中MAs的自动检测及定位。该方法在YOLOv4网络模型的基础上结合MAs病灶尺寸较小的特点,首先利用改进的快速模糊C均值(improved and fast fuzzy c-means,IFFCM)聚类算法[14]对目标样本进行先验框参数优化,提高先验框与特征图的匹配度以提高定位精度;在此基础上,为提升检测精度,进一步结合SENet注意力机制和空间金字塔池化结构(spatial pyramid pooling,SPP)对YOLOv4算法进行优化。在完成YOLOv4网络结构优化的基础上,利用该网络模型检测视网膜上MAs的存在,并精确定位MAs在视网膜上的位置。
1 实验材料及设备
实验采用Kaggle糖网数据集用以训练和测试所提出的YOLOv4-Pro算法对于眼底图像中MAs(具体形态如图1所示)的自动检测及定位性能。Kaggle糖网数据集由EyePACS(视网膜病变筛查免费平台)提供,于2015年在Kaggle上公开,共有35 126幅训练图像和53 576幅测试图像,来源于44 351位患者,左右眼各一幅,图像的分辨率在433 × 289像素~5184 × 3456像素之间[15]。眼科医师基于国际标准对每幅眼底图像进行了糖网病患病程度的5级分级:0为健康图像,1为轻微病变图像,2为中度病变图像,3为重度病变图像,4为增生性病变图像。但由于本文研究的是所提出模型对于MAs病灶的自动检测及定位性能,故需对该数据集进行处理以满足本研究的需求,具体为利用文献[8]所述方法并辅以眼科医师的帮助对数据集进行预处理以获取MAs图像及注释文件。由于Kaggle糖网数据集的分布不平衡,在这一阶段去除了大量图像(几乎90%的图像不包含任何病变),最后只剩下5 519幅包含MAs的眼底图像。对于这5 519幅眼底图像,均生成了注释文件。生成注释文件后,整个数据集(5 519幅图像)按90/10的比例进行划分,5 000幅用于训练,519幅用于测试。此外,为充分验证所提出改进网络的检测性能,对原本包含519幅眼底图像的测试集另增加100幅健康眼底图像进行扩充,即实际测试时测试集包含619幅眼底图像。

此外,实验系统配置为:Intel Core i5-10300H处理器,32.00 GB运行内存,RTX2060独立显卡,6 GB显存。深度学习框架为Pytorch。另外,安装Cuda10.0和Cudnn7.51进行GPU加速运算。
2 方法
YOLOv4目标检测网络[16]是在YOLOv3基础上,对其三部分构成——骨干特征提取网络、颈部特征融合网络和分类回归的预测输出部分进行改进得来。主干网络在DarkNet-53的基础上融合CSPNet(cross stage partial network)思想,形成CSPDarkNet-53,降低网络计算量的同时仍可保证准确率;颈部采用融合特征金字塔网络(feature pyramid networks,FPN)和SPP的路径聚合网络(path aggregation network,PANet),解决了FPN网络由浅层向深层传递时浅层特征丢失的问题;检测头仍然使用YOLOv3检测头[17]。YOLOv4在一定程度上解决了对小目标不敏感的问题,但在眼底图像MAs的自动检测问题上,直接使用YOLOv4网络检测效果依然并不理想。由图1可看出,MAs相对于整幅图像占比较小,故针对所需检测病灶的特征,需对YOLOv4算法进行改进,具体为:首先采用IFFCM聚类算法进行目标框优化以提高先验框与目标数据集的匹配度;在此基础上,通过在主干网络中嵌入SENet结构来提高网络对于密集小目标缺陷的置信度;此外,还在网络颈部增加SPP模块以实现丰富检测头信息特征表达能力的目标。改进后的网络YOLOv4-Pro结构具体如图2所示。

2.1 改进的YOLOv4算法
2.1.1 IFFCM算法优化先验框
YOLOv4算法先验框是通过K-均值聚类算法在PASCAL_VOC数据集上聚类得到的,故当使用它对眼底图像进行MAs的自动检测时会在计算交并比(Intersection over Union,IoU)时筛选出不合适的边界框,从而影响模型检测目标的性能,故有必要针对眼底图像数据集优化先验框。
采用文献[14]所提出的IFFCM聚类算法对Kaggle糖网数据集的先验框进行聚类分析。该聚类算法与K-均值聚类算法(硬聚类)相比,合理结合了聚类技术中软、硬聚类技术的各自优势,利用K-均值聚类算法的聚类结果对FCM算法的聚类中心进行初始化,同时利用中值滤波技术优化FCM算法的准则函数,不仅有效抑制了噪声对聚类结果的影响,而且提高了算法效率。
采用IFFCM聚类算法对收集到的数据集进行聚类,优化了初始点的选择,能显著降低误差,以获得更适合目标数据集的先验框大小,从而提高网络检测精度。利用该聚类算法对YOLOv4网络模型的先验框参数进行优化,并将该优化后的网络模型称为YOLOv4-IFFCM。
2.1.2 嵌入SENet结构改进主干网络
在眼底图像中利用原始YOLOv4对相对密集的小目标MAs进行检测时往往会误检或漏检,这是由于置信分布不平衡造成的。因此,为了使网络能学习全局特征,提高对密集小目标病灶的检测精度,需对各个通道的权值进行标定[18]。
SENet[19]是一种利用全局信息选择性强调信息特征并抑制无用特征的网络,它通过让网络根据损失(loss)去学习特征权重而获取每个特征图的重要程度,然后依据该重要程度给每一个特征通道赋予一个权重值,从而让神经网络去重点关注某些特征图,使得有效的特征图权重大,无效或效果小的特征图权重小,使模型达到更好的效果。在YOLOv4网络深层的颈部和头部,特征图表现的语义信息较主干网络更丰富,感受野更大,但SENet难以从特征信息高度融合的小尺度特征图中有效区分重要特征;而YOLOv4主干网络中的特征图语义信息虽不丰富,但富含目标在中、浅层的纹理信息和轮廓信息,这些信息对小目标的检测极其重要,因此选择在主干网络中的CSP模块嵌入SENet,具体如图2中红色及黄色虚线框内所示。将嵌入SENet改进主干网络的YOLOv4算法称为YOLOv4-SENet,该模型在大量减少参数的情况下,同时保留了全局信息故可增强模型的鲁棒性。
2.1.3 增加SPP模块优化颈部网络
在原始YOLOv4中,在主干网络后加入了SPP模块,利用其对主干网络最后的特征层经过三次卷积后的结果使用四种不同尺度的池化核(分别为1 × 1、5 × 5、9 × 9、13 × 13)进行池化层处理。最大池化层在保持特征图平移不变性的同时扩大感受野,而SPP结构则将使用不同大小池化核得到的特征图局部区域感受野和接近全局的感受野信息进行特征融合,这种融合不同尺度感受野的操作能有效丰富特征图的表达能力,增强主干网络输出特征的接受范围,分离出重要的上下文信息,从而有效提升模型的检测性能。
在原始YOLOv4中,SPP模块位于特征图大小为13×13的主干网络之后,将提取出的特征信息送入特征图大小为13 × 13的检测头进行预测。鉴于此,为丰富输入到26 × 26和52 × 52尺度的检测头的特征图特征信息以实现更好的检测效果,选择在YOLOv4第一次上采样后和第二次上采样后加入SPP模块,改进后的YOLOv4颈部如图2中的蓝色虚线框内所示,并将增加SPP模块改进网络颈部的YOLOv4算法称为YOLOv4-SPP。
2.2 MAs自动检测方法
利用所提出的YOLOv4-Pro算法对眼底图像中MAs进行自动检测需经过网络模型的训练及测试。在模型训练阶段,为提高模型泛化能力,需对眼底图像进行在线数据增强[20]。在线数据增强,除mosic数据增强外,还包括随机旋转、水平翻转、竖直翻转、中值滤波、平滑滤波,调整饱和度(0.9至1.3倍)、曝光度(0.9至1.3倍)等。为保证预测结果的精度,同时避免过多的先验框带来过大的运算量,聚类中心数仍为9,其宽和高分别为(4,4)、(7,8)、(8,10)、(9,9)、(9,13)、(11,15)、(11,17)、(17,19)、(19,27)。
对于网络模型的训练采用带动量因子的小批量随机梯度下降法(mini-batch stochastic gradient decent,MSGD)。MSGD[21]是介于全批量梯度下降法和随机梯度下降法之间的折中方法,可以减少随机梯度下降法中的杂乱样本数量,又比全批量梯度下降法更高效。为使梯度稳定更新,采用动量(momentum)作为优化器对其进行梯度下降[22]。为了增强模型鲁棒性,采用L2正则化来防止过拟合的出现。此外,学习率的大小对随机梯度下降法的性能影响较大,直接决定了参数移动到最优值时的速度。故训练开始时设置较大的学习率,可使模型快速收敛;随着训练迭代次数的增加,应逐渐降低学习率,以找出最优解[23]。
对于网络的超参数选择在PASCAL_VOC预训练权重的基础上进行设定[24]。训练epoch在区间[5,60]以5为步长进行取值,并根据损失不再下降而选择为60。momentum动量参数常用值为0.55、0.9、0.99,经实验验证0.9最优。对于L2正则化权重衰减系数,若其取值过大会把所有的参数最小化从而造成欠拟合现象;若其取值过小则可能无法避免过拟合问题[25],故该系数设为0.9。对于学习率衰减方式,经验证YOLOv4-Pro在进行眼底图像MAs的自动检测时分段衰减方式效果最佳(初始学习率设为0.001,经测试发现在30个epoch时衰减为初始学习率1/10时效果最佳)。此外,批大小(batchsize)的设置对网络训练尤为重要:若batchsize过小,会导致训练迭代损失不收敛且训练速度慢;若batchsize过大,则会导致网络收敛到局部最优点。鉴于此,同时结合数据集以及硬件设备性能,将该值设为2,每个epoch迭代800次,故整个网络训练过程迭代48 000次。
YOLOv4-Pro网络训练过程的损失函数变化如图3所示,训练损失收敛值为0.037。训练完毕后,即得到了确定的网络模型,可以用于对新输入的样本进行MAs的自动检测。

3 结果与分析
3.1 评价指标
在目标检测任务中,通常使用召回率(recall,)和精确率(precision,
)以及综合考虑召回率与精确率的指标F-score对网络性能进行评价。因此为评价所提出网络模型对于MAs的检测性能,基于病灶区域水平定义了上述指标,具体计算公式分别如式(1)~(3)所示[26]:
![]() |
![]() |
![]() |
式中TP为成功预测的正例,TN为成功预测的负例,FP为被误判为正例的负例,FN为被错误预测为负例的正例。除此之外,还采用每检测一张图像所用的时间t来评价网络模型的检测速度。
此外,为评价所提出模型对于病灶的准确定位能力,基于病灶区域水平定义了IoU(“预测的边框B”和“真实的边框A”的交叠率)与平均精度(average precision,AP,为不同R下的P值的均值,即P-R曲线的积分),用以评价所提出模型对MAs的定位能力。
3.2 实验结果及分析
为验证所提出的改进之处是否能够提升YOLOv4网络的性能,结合Kaggle糖网数据集,针对MAs检测任务,对实验内容(流程如图4所示)进行了设计。在模型训练阶段,首先对训练样本进行数据增强,其次采用增强后的数据集训练原始YOLOv4网络,同时为了改进网络模型对边界框的预测准确率,对收集到的所有样本标注采用IFFCM聚类获取先验框的初始大小,然后将先验框参数应用于不同网络结构改进的YOLOv4算法,最后经过训练迭代,得到不同的检测模型。在模型测试阶段,将测试样本作为输入分别使用各算法模型检测,判断图像中是否存在MAs,若存在则输出病灶种类及位置,并比较不同模型的性能。

首先,为验证IFFCM聚类算法优化先验框参数对YOLOv4网络检测性能的影响,采用Kaggle糖网数据集分别训练优化前后的YOLOv4网络即YOLOv4与YOLOv4-IFFCM,并测试检测性能,得到实验结果为:YOLOv4-IFFCM的为81.23%,较YOLOv4的
(77.29%)提升了近4%,即采用IFFCM算法优化先验框能使其更适合Kaggle糖网数据集的框定(IFFCM算法与K-均值聚类算法的具体聚类效果如图5所示,其中K-均值聚类算法为原始YOLOv4网络所采用的获取先验框参数的聚类算法),从而使网络检测性能得到较为明显的提升。

在优化先验框的基础上,继续采用消融实验即图4所示实验流程,对比分析后续不同改进结构的YOLOv4算法分别在Kaggle糖网数据集上对MAs的自动检测性能, 在训练过程中的变化如图6所示,检测性能见表1。由表1发现,每种网络改进策略均在不同程度上提高了Baseline(仅采用IFFCM优化先验框的YOLOv4网络,即YOLOv4-IFFCM)的检测性能,尤其是先验框、主干网络和颈部皆改进的YOLOv4-Pro,
较YOLOv4-IFFCM提升了8.74%,较原始YOLOv4提升得更为明显(为12.68%)。此外还应注意到,虽然SENet模块和SPP模块的加入增加了模型计算量,但由于后处理优化算法Matrix NMS的使用使得运算开销得以减少,故最终平均一幅图像检测时间 t 并未发生明显变化(仅增加了0.006 9 s)。


由以上实验结果发现,所提出的对于YOLOv4的三点改进用于Kaggle糖网数据集上的MAs自动检测,有效提升了网络性能。该网络模型对于MAs的具体检测效果如图7所示。由图7发现,该网络模型可以实现对眼底图像中MAs的准确检测。

此外,为进一步验证所提出的算法对于MAs的检测性能,将该方法与文献[8](传统图像处理方法)、文献[12](卷积神经网络)、文献[13](YOLO网络)对眼底图像中MAs的自动检测性能进行了对比,具体结果如表2所示。由表2可见,深度神经网络方法即文献[12-13]以及文中所提出的YOLOv4-Pro算法的均优于传统算法。传统算法的F-score较低,是因为传统算法容易受到参数限制,在复杂环境中提取的MAs病灶候选区易存在较多干扰,最终会成为FP,从而导致P值较低进而影响了F-score。而深度神经网络具备更强的拟合性能,且随着深度网络的发展,检测结果更为精确(YOLOv4-Pro的F-score明显优于前两种深度神经网络),但是深度神经网络也可能存在过拟合现象,从而导致部分MAs会检测不出,因此文献[12-13]的召回率R会低于传统算法,而YOLOv4-Pro则在一定程度上克服了这个问题。由此可见,所提出的嵌入SENet的改进YOLOv4算法能准确、有效地检测出眼底图像中的MAs,即检测性能更优。

由于表2只体现了所提出的YOLOv4-Pro能有效地检测MAs的存在,并不能反映所提出算法对于MAs的精确定位能力,故采用IoU以及AP来评估其精确定位能力,并与文献[13]进行对比,结果见表3。由表3可见,所提出的模型YOLOv4-Pro可以精确定位88.92%(AP)的MAs,且定位精度为84.71%(IoU),明显优于文献[13]。故所提出的嵌入SENet的改进YOLOv4算法对于眼底图像中MAs的定位性能更优。

4 结论
本文提出了一种嵌入SENet的改进YOLOv4算法,可准确、有效地检测并定位出眼底图像中的MAs。该算法在YOLOv4网络模型的基础上,首先利用IFFCM算法对目标样本进行先验框参数优化以提高先验框与特征图的匹配度;在此基础上,为提升检测任务中对于小目标——MAs的检测精度,进一步结合SENet注意力机制和空间金字塔池化模块对YOLOv4网络结构进行了改进;最后在以Kaggle糖网数据集为测试对象的基础上,采用消融实验分析验证了所提出的嵌入SENet的改进YOLOv4网络模型能够有效提升MAs的自动检测及定位性能。在此基础上,将该方法与基于YOLO、基于深度卷积神经网络的算法以及传统图像处理方法进行了对比,发现所提出的嵌入SENet的改进YOLOv4网络模型在MAs的自动检测精度方面明显更优。此外,还将所提出的模型对MAs的定位性能与其他方法进行了对比,发现其在具有更高检测性能的基础上,定位精度也更高。该研究工作解决了检测视网膜上MAs的存在并找到其精确位置的问题,所提出的模型输出可直接用于眼科医生治疗MAs,不需要医生手动干预,有助于实现完全自动化的MAs检测过程,进而有效引导和帮助眼科医生治疗和消除MAs,从而有效遏制糖网的进一步发展和恶化。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:高玮玮负责算法实现及论文撰写,单明陶负责模型改进,宋楠负责病灶标注指导,樊博负责病灶标注,方宇负责算法指导。
引言
糖尿病视网膜病变(简称“糖网”,diabetic retinopathy,DR)是一种血管疾病,是糖尿病患者致盲的首要原因[1],主要由视网膜微血管因葡萄糖水平升高受损而引起[2],是一种进展性疾病,以微小的红色病变——微动脉瘤(microaneurysms,MAs)开始。随着时间的推移,病灶的大小会随之增大,并逐步扩散至整个视网膜[3]甚至发展为更为严重的病灶,如视网膜内出血等,进而影响患者视力[4]。因此,若能通过治疗及时阻止MAs的生长,可以有效预防糖网的病程发展[5]。此外,由于MAs是最早发生在视网膜上的病变,因此及时治疗MAs是糖网治疗中最有效且成本最低的方法。使用激光治疗MAs时需要确定其在视网膜上的确切位置[2,6],由于MAs体积小(直径在10~100 µm),尤其是在早期该病灶肉眼几乎不可见,故为尽早发现病灶以便进行及时治疗,研究人员提出了许多自动检测算法。
MAs自动检测算法一般可分为基于物理模型、基于分类器和基于深度学习的方法。基于物理模型的方法主要是根据微动脉瘤的灰度分布结构进行数学建模,如Zhang等[7]提出了一种基于特征转移网络和局部背景抑制的MAs检测方法,可以降低噪声;高玮玮等[8]利用数学形态学扩展极小值变换后获得微动脉瘤候选区域,进而根据尺寸信息获取真正的MAs。基于分类器的方法主要是先提取MAs候选区,再对候选区进行分类,如Orlando等[9]首先采用中值滤波去除眼底图像中的MAs,再经过形态学膨胀得到糖网背景图像,将原图与糖网背景图像相减得到MAs的候选区,然后对候选区提取传统特征和深度特征用于MAs分类;Dashtbozorg等[10]采用局部收敛滤波(local convergence filters,LCFs)实现眼底图像增强与MAs候选区提取,再结合LCFs响应特征与灰度特征值进行精确检测。基于深度学习的检测方法主要是搭建端到端的深度神经网络,如Xia等[11]提出了一种基于深度卷积编码器解码器的MAs检测模型;赵学功等[12]提出了基于卷积神经网络的MAs检测方法;Rohan[13]提出了一种基于YOLO(you only look once)的MAs自动检测算法。
然而,上述方法除基于YOLO的方法外均集中于检测MAs的存在,并不能够精确定位MAs在视网膜图像上的位置,这使得眼科学家很难直接使用检测模型的结果来治疗MAs,所以目前这项工作仍由眼科学家手动完成。而基于YOLO的MAs自动检测算法虽然在一定程度上实现了对于MAs的定位及检测,但由于YOLO网络模型结构复杂,容易出现过拟合等问题,其检测、定位精度及速度并不高。基于此本文提出了嵌入SENet(Squeeze-and-Excitation networks)的改进YOLOv4(improved YOLOv4,YOLOv4-Pro)用于实现眼底图像中MAs的自动检测及定位。该方法在YOLOv4网络模型的基础上结合MAs病灶尺寸较小的特点,首先利用改进的快速模糊C均值(improved and fast fuzzy c-means,IFFCM)聚类算法[14]对目标样本进行先验框参数优化,提高先验框与特征图的匹配度以提高定位精度;在此基础上,为提升检测精度,进一步结合SENet注意力机制和空间金字塔池化结构(spatial pyramid pooling,SPP)对YOLOv4算法进行优化。在完成YOLOv4网络结构优化的基础上,利用该网络模型检测视网膜上MAs的存在,并精确定位MAs在视网膜上的位置。
1 实验材料及设备
实验采用Kaggle糖网数据集用以训练和测试所提出的YOLOv4-Pro算法对于眼底图像中MAs(具体形态如图1所示)的自动检测及定位性能。Kaggle糖网数据集由EyePACS(视网膜病变筛查免费平台)提供,于2015年在Kaggle上公开,共有35 126幅训练图像和53 576幅测试图像,来源于44 351位患者,左右眼各一幅,图像的分辨率在433 × 289像素~5184 × 3456像素之间[15]。眼科医师基于国际标准对每幅眼底图像进行了糖网病患病程度的5级分级:0为健康图像,1为轻微病变图像,2为中度病变图像,3为重度病变图像,4为增生性病变图像。但由于本文研究的是所提出模型对于MAs病灶的自动检测及定位性能,故需对该数据集进行处理以满足本研究的需求,具体为利用文献[8]所述方法并辅以眼科医师的帮助对数据集进行预处理以获取MAs图像及注释文件。由于Kaggle糖网数据集的分布不平衡,在这一阶段去除了大量图像(几乎90%的图像不包含任何病变),最后只剩下5 519幅包含MAs的眼底图像。对于这5 519幅眼底图像,均生成了注释文件。生成注释文件后,整个数据集(5 519幅图像)按90/10的比例进行划分,5 000幅用于训练,519幅用于测试。此外,为充分验证所提出改进网络的检测性能,对原本包含519幅眼底图像的测试集另增加100幅健康眼底图像进行扩充,即实际测试时测试集包含619幅眼底图像。

此外,实验系统配置为:Intel Core i5-10300H处理器,32.00 GB运行内存,RTX2060独立显卡,6 GB显存。深度学习框架为Pytorch。另外,安装Cuda10.0和Cudnn7.51进行GPU加速运算。
2 方法
YOLOv4目标检测网络[16]是在YOLOv3基础上,对其三部分构成——骨干特征提取网络、颈部特征融合网络和分类回归的预测输出部分进行改进得来。主干网络在DarkNet-53的基础上融合CSPNet(cross stage partial network)思想,形成CSPDarkNet-53,降低网络计算量的同时仍可保证准确率;颈部采用融合特征金字塔网络(feature pyramid networks,FPN)和SPP的路径聚合网络(path aggregation network,PANet),解决了FPN网络由浅层向深层传递时浅层特征丢失的问题;检测头仍然使用YOLOv3检测头[17]。YOLOv4在一定程度上解决了对小目标不敏感的问题,但在眼底图像MAs的自动检测问题上,直接使用YOLOv4网络检测效果依然并不理想。由图1可看出,MAs相对于整幅图像占比较小,故针对所需检测病灶的特征,需对YOLOv4算法进行改进,具体为:首先采用IFFCM聚类算法进行目标框优化以提高先验框与目标数据集的匹配度;在此基础上,通过在主干网络中嵌入SENet结构来提高网络对于密集小目标缺陷的置信度;此外,还在网络颈部增加SPP模块以实现丰富检测头信息特征表达能力的目标。改进后的网络YOLOv4-Pro结构具体如图2所示。

2.1 改进的YOLOv4算法
2.1.1 IFFCM算法优化先验框
YOLOv4算法先验框是通过K-均值聚类算法在PASCAL_VOC数据集上聚类得到的,故当使用它对眼底图像进行MAs的自动检测时会在计算交并比(Intersection over Union,IoU)时筛选出不合适的边界框,从而影响模型检测目标的性能,故有必要针对眼底图像数据集优化先验框。
采用文献[14]所提出的IFFCM聚类算法对Kaggle糖网数据集的先验框进行聚类分析。该聚类算法与K-均值聚类算法(硬聚类)相比,合理结合了聚类技术中软、硬聚类技术的各自优势,利用K-均值聚类算法的聚类结果对FCM算法的聚类中心进行初始化,同时利用中值滤波技术优化FCM算法的准则函数,不仅有效抑制了噪声对聚类结果的影响,而且提高了算法效率。
采用IFFCM聚类算法对收集到的数据集进行聚类,优化了初始点的选择,能显著降低误差,以获得更适合目标数据集的先验框大小,从而提高网络检测精度。利用该聚类算法对YOLOv4网络模型的先验框参数进行优化,并将该优化后的网络模型称为YOLOv4-IFFCM。
2.1.2 嵌入SENet结构改进主干网络
在眼底图像中利用原始YOLOv4对相对密集的小目标MAs进行检测时往往会误检或漏检,这是由于置信分布不平衡造成的。因此,为了使网络能学习全局特征,提高对密集小目标病灶的检测精度,需对各个通道的权值进行标定[18]。
SENet[19]是一种利用全局信息选择性强调信息特征并抑制无用特征的网络,它通过让网络根据损失(loss)去学习特征权重而获取每个特征图的重要程度,然后依据该重要程度给每一个特征通道赋予一个权重值,从而让神经网络去重点关注某些特征图,使得有效的特征图权重大,无效或效果小的特征图权重小,使模型达到更好的效果。在YOLOv4网络深层的颈部和头部,特征图表现的语义信息较主干网络更丰富,感受野更大,但SENet难以从特征信息高度融合的小尺度特征图中有效区分重要特征;而YOLOv4主干网络中的特征图语义信息虽不丰富,但富含目标在中、浅层的纹理信息和轮廓信息,这些信息对小目标的检测极其重要,因此选择在主干网络中的CSP模块嵌入SENet,具体如图2中红色及黄色虚线框内所示。将嵌入SENet改进主干网络的YOLOv4算法称为YOLOv4-SENet,该模型在大量减少参数的情况下,同时保留了全局信息故可增强模型的鲁棒性。
2.1.3 增加SPP模块优化颈部网络
在原始YOLOv4中,在主干网络后加入了SPP模块,利用其对主干网络最后的特征层经过三次卷积后的结果使用四种不同尺度的池化核(分别为1 × 1、5 × 5、9 × 9、13 × 13)进行池化层处理。最大池化层在保持特征图平移不变性的同时扩大感受野,而SPP结构则将使用不同大小池化核得到的特征图局部区域感受野和接近全局的感受野信息进行特征融合,这种融合不同尺度感受野的操作能有效丰富特征图的表达能力,增强主干网络输出特征的接受范围,分离出重要的上下文信息,从而有效提升模型的检测性能。
在原始YOLOv4中,SPP模块位于特征图大小为13×13的主干网络之后,将提取出的特征信息送入特征图大小为13 × 13的检测头进行预测。鉴于此,为丰富输入到26 × 26和52 × 52尺度的检测头的特征图特征信息以实现更好的检测效果,选择在YOLOv4第一次上采样后和第二次上采样后加入SPP模块,改进后的YOLOv4颈部如图2中的蓝色虚线框内所示,并将增加SPP模块改进网络颈部的YOLOv4算法称为YOLOv4-SPP。
2.2 MAs自动检测方法
利用所提出的YOLOv4-Pro算法对眼底图像中MAs进行自动检测需经过网络模型的训练及测试。在模型训练阶段,为提高模型泛化能力,需对眼底图像进行在线数据增强[20]。在线数据增强,除mosic数据增强外,还包括随机旋转、水平翻转、竖直翻转、中值滤波、平滑滤波,调整饱和度(0.9至1.3倍)、曝光度(0.9至1.3倍)等。为保证预测结果的精度,同时避免过多的先验框带来过大的运算量,聚类中心数仍为9,其宽和高分别为(4,4)、(7,8)、(8,10)、(9,9)、(9,13)、(11,15)、(11,17)、(17,19)、(19,27)。
对于网络模型的训练采用带动量因子的小批量随机梯度下降法(mini-batch stochastic gradient decent,MSGD)。MSGD[21]是介于全批量梯度下降法和随机梯度下降法之间的折中方法,可以减少随机梯度下降法中的杂乱样本数量,又比全批量梯度下降法更高效。为使梯度稳定更新,采用动量(momentum)作为优化器对其进行梯度下降[22]。为了增强模型鲁棒性,采用L2正则化来防止过拟合的出现。此外,学习率的大小对随机梯度下降法的性能影响较大,直接决定了参数移动到最优值时的速度。故训练开始时设置较大的学习率,可使模型快速收敛;随着训练迭代次数的增加,应逐渐降低学习率,以找出最优解[23]。
对于网络的超参数选择在PASCAL_VOC预训练权重的基础上进行设定[24]。训练epoch在区间[5,60]以5为步长进行取值,并根据损失不再下降而选择为60。momentum动量参数常用值为0.55、0.9、0.99,经实验验证0.9最优。对于L2正则化权重衰减系数,若其取值过大会把所有的参数最小化从而造成欠拟合现象;若其取值过小则可能无法避免过拟合问题[25],故该系数设为0.9。对于学习率衰减方式,经验证YOLOv4-Pro在进行眼底图像MAs的自动检测时分段衰减方式效果最佳(初始学习率设为0.001,经测试发现在30个epoch时衰减为初始学习率1/10时效果最佳)。此外,批大小(batchsize)的设置对网络训练尤为重要:若batchsize过小,会导致训练迭代损失不收敛且训练速度慢;若batchsize过大,则会导致网络收敛到局部最优点。鉴于此,同时结合数据集以及硬件设备性能,将该值设为2,每个epoch迭代800次,故整个网络训练过程迭代48 000次。
YOLOv4-Pro网络训练过程的损失函数变化如图3所示,训练损失收敛值为0.037。训练完毕后,即得到了确定的网络模型,可以用于对新输入的样本进行MAs的自动检测。

3 结果与分析
3.1 评价指标
在目标检测任务中,通常使用召回率(recall,)和精确率(precision,
)以及综合考虑召回率与精确率的指标F-score对网络性能进行评价。因此为评价所提出网络模型对于MAs的检测性能,基于病灶区域水平定义了上述指标,具体计算公式分别如式(1)~(3)所示[26]:
![]() |
![]() |
![]() |
式中TP为成功预测的正例,TN为成功预测的负例,FP为被误判为正例的负例,FN为被错误预测为负例的正例。除此之外,还采用每检测一张图像所用的时间t来评价网络模型的检测速度。
此外,为评价所提出模型对于病灶的准确定位能力,基于病灶区域水平定义了IoU(“预测的边框B”和“真实的边框A”的交叠率)与平均精度(average precision,AP,为不同R下的P值的均值,即P-R曲线的积分),用以评价所提出模型对MAs的定位能力。
3.2 实验结果及分析
为验证所提出的改进之处是否能够提升YOLOv4网络的性能,结合Kaggle糖网数据集,针对MAs检测任务,对实验内容(流程如图4所示)进行了设计。在模型训练阶段,首先对训练样本进行数据增强,其次采用增强后的数据集训练原始YOLOv4网络,同时为了改进网络模型对边界框的预测准确率,对收集到的所有样本标注采用IFFCM聚类获取先验框的初始大小,然后将先验框参数应用于不同网络结构改进的YOLOv4算法,最后经过训练迭代,得到不同的检测模型。在模型测试阶段,将测试样本作为输入分别使用各算法模型检测,判断图像中是否存在MAs,若存在则输出病灶种类及位置,并比较不同模型的性能。

首先,为验证IFFCM聚类算法优化先验框参数对YOLOv4网络检测性能的影响,采用Kaggle糖网数据集分别训练优化前后的YOLOv4网络即YOLOv4与YOLOv4-IFFCM,并测试检测性能,得到实验结果为:YOLOv4-IFFCM的为81.23%,较YOLOv4的
(77.29%)提升了近4%,即采用IFFCM算法优化先验框能使其更适合Kaggle糖网数据集的框定(IFFCM算法与K-均值聚类算法的具体聚类效果如图5所示,其中K-均值聚类算法为原始YOLOv4网络所采用的获取先验框参数的聚类算法),从而使网络检测性能得到较为明显的提升。

在优化先验框的基础上,继续采用消融实验即图4所示实验流程,对比分析后续不同改进结构的YOLOv4算法分别在Kaggle糖网数据集上对MAs的自动检测性能, 在训练过程中的变化如图6所示,检测性能见表1。由表1发现,每种网络改进策略均在不同程度上提高了Baseline(仅采用IFFCM优化先验框的YOLOv4网络,即YOLOv4-IFFCM)的检测性能,尤其是先验框、主干网络和颈部皆改进的YOLOv4-Pro,
较YOLOv4-IFFCM提升了8.74%,较原始YOLOv4提升得更为明显(为12.68%)。此外还应注意到,虽然SENet模块和SPP模块的加入增加了模型计算量,但由于后处理优化算法Matrix NMS的使用使得运算开销得以减少,故最终平均一幅图像检测时间 t 并未发生明显变化(仅增加了0.006 9 s)。


由以上实验结果发现,所提出的对于YOLOv4的三点改进用于Kaggle糖网数据集上的MAs自动检测,有效提升了网络性能。该网络模型对于MAs的具体检测效果如图7所示。由图7发现,该网络模型可以实现对眼底图像中MAs的准确检测。

此外,为进一步验证所提出的算法对于MAs的检测性能,将该方法与文献[8](传统图像处理方法)、文献[12](卷积神经网络)、文献[13](YOLO网络)对眼底图像中MAs的自动检测性能进行了对比,具体结果如表2所示。由表2可见,深度神经网络方法即文献[12-13]以及文中所提出的YOLOv4-Pro算法的均优于传统算法。传统算法的F-score较低,是因为传统算法容易受到参数限制,在复杂环境中提取的MAs病灶候选区易存在较多干扰,最终会成为FP,从而导致P值较低进而影响了F-score。而深度神经网络具备更强的拟合性能,且随着深度网络的发展,检测结果更为精确(YOLOv4-Pro的F-score明显优于前两种深度神经网络),但是深度神经网络也可能存在过拟合现象,从而导致部分MAs会检测不出,因此文献[12-13]的召回率R会低于传统算法,而YOLOv4-Pro则在一定程度上克服了这个问题。由此可见,所提出的嵌入SENet的改进YOLOv4算法能准确、有效地检测出眼底图像中的MAs,即检测性能更优。

由于表2只体现了所提出的YOLOv4-Pro能有效地检测MAs的存在,并不能反映所提出算法对于MAs的精确定位能力,故采用IoU以及AP来评估其精确定位能力,并与文献[13]进行对比,结果见表3。由表3可见,所提出的模型YOLOv4-Pro可以精确定位88.92%(AP)的MAs,且定位精度为84.71%(IoU),明显优于文献[13]。故所提出的嵌入SENet的改进YOLOv4算法对于眼底图像中MAs的定位性能更优。

4 结论
本文提出了一种嵌入SENet的改进YOLOv4算法,可准确、有效地检测并定位出眼底图像中的MAs。该算法在YOLOv4网络模型的基础上,首先利用IFFCM算法对目标样本进行先验框参数优化以提高先验框与特征图的匹配度;在此基础上,为提升检测任务中对于小目标——MAs的检测精度,进一步结合SENet注意力机制和空间金字塔池化模块对YOLOv4网络结构进行了改进;最后在以Kaggle糖网数据集为测试对象的基础上,采用消融实验分析验证了所提出的嵌入SENet的改进YOLOv4网络模型能够有效提升MAs的自动检测及定位性能。在此基础上,将该方法与基于YOLO、基于深度卷积神经网络的算法以及传统图像处理方法进行了对比,发现所提出的嵌入SENet的改进YOLOv4网络模型在MAs的自动检测精度方面明显更优。此外,还将所提出的模型对MAs的定位性能与其他方法进行了对比,发现其在具有更高检测性能的基础上,定位精度也更高。该研究工作解决了检测视网膜上MAs的存在并找到其精确位置的问题,所提出的模型输出可直接用于眼科医生治疗MAs,不需要医生手动干预,有助于实现完全自动化的MAs检测过程,进而有效引导和帮助眼科医生治疗和消除MAs,从而有效遏制糖网的进一步发展和恶化。
重要声明
利益冲突声明:本文全体作者均声明不存在利益冲突。
作者贡献声明:高玮玮负责算法实现及论文撰写,单明陶负责模型改进,宋楠负责病灶标注指导,樊博负责病灶标注,方宇负责算法指导。