基于深度卷积集成网络的视网膜多种疾病筛查和识别方法https://riadd.grand-challenge.org/download-all-classes/
数据集IEEE ISB视网膜眼底图像https://riadd.grand-challenge.org/download-all-classes/
IEEE ISBI 2021 数据集
分享链接:https://pan.baidu.com/s/1cnHMXDjfFQkqctPzLoJkyw?pwd=lekq
提取码:lekq
数据集介绍:该数据集分别使用 3 台数码眼底照相机采集,共2 560张视网膜眼底图像,其中1 920张图像为训练集,640张图像为测试集。这2 560张图像中共包含3种分辨率,分别为4 288×2 848、2 144×1 424和2 048×1 536。此外,数据集包含48种视网膜疾病,其中较为罕见的疾病将被统一标记为“其他(OTHER)”类别,包括“其他”类别在内共有28 种疾病,且每个图像样本为正常或至少包含一种疾病。其余27种疾病如下:糖尿病性视网膜病变(DR)、年龄相关性黄斑变性(ARMD)、屈光介质混浊(media haze,MH)、玻璃疣(drusen,DN)、近视(myopia,MYA)、视网膜静脉分枝阻塞(branch retinal vein occlusion,BRVO)、镶 嵌 眼 底(tessellation,TSLN)、黄斑视网膜前膜(macular epiretinal membrane,ERM)、激光瘢痕(laser scar, LS)、黄斑瘢痕(macular scar,MS)、中心性浆液性脉络膜视网膜病变(central serous chorioretinopathy,CSR)、视神经盘凹(optic disc cupping, ODC)、视网膜中央静脉阻塞(central retinal vein occlusion,CRVO)、血管迂曲(vascular circuity)(原数据集用 TV 表示)、星状玻璃体病变(asteroid hyalosis,AH)、视盘苍白(optic disc pallor,ODP)、视盘水肿(optic disc edema,ODE)、分流(shunt, ST)、前部缺血性视神经病变(anterior ischemic optic neuropathy,AION)、中心凹毛细管扩张(parafoveal telangiectasia,PT)、视网膜牵引(retinal traction, RT)、视网膜炎(retinitis,RS)、脉络膜视网膜炎(chorioretinitis,CRS)、渗出(exudation,EDN)、视网膜色素上皮改变(retinal pigment epithelium change,RPEC)、黄斑裂孔(macular hole,MHL)、色素性视网膜炎(retinitis pigmentosa,RP)。
- 使用方法
- 开发原因:视网膜疾病具有种类繁多、病灶位置不固定等特点
- 使用技术:基于深度卷积集成网络的视网膜多种疾病筛查和识别方法
- 根据视网膜眼底图像裁剪掉两侧黑色边框,并去除图像中的噪声,以降低对 眼底图像的干扰,提高图像的清晰度。
- 通过对处理完成的视网膜眼底图像使用裁剪、旋转等数据增强方法来扩增数 据集。
- 再建立基于深度卷积神经网络的模型进行特征提取,并在网络模型微调后完 成视网膜疾病筛查和识别任务。
- 疾病筛查和识别结果:采用五折交叉验证发提高准确率。
- 存在的问题
1.样本不平衡,疾病的出现往往不是独立出现,没有互斥关系,各种疾病的样本数量无法实现较好的平衡。
2.模型的泛化性不佳
阅读论文:
基于深度卷积集成网络的视网膜多种疾病筛查和识别方法 王禾扬, 杨启鸣, 朱旗
南京航空航天大学计算机科学与技术学院
视网膜疾病的种类非常多,而且不同的人的发病原因、发病位置都无法精准确定,本文提出了一种基于深度卷积集成网络,再通过一系列操作进行特征提取建立多个模型,经过微调后,最终对多个模型进行集成使用。
使用计算机视觉技术研究视网膜疾病,可以很好的帮助医生做出初步诊断。
目前已经有的方法:
- 使用神经网络对糖尿病患者视网膜病变进行特征提取,并进行分级。
- 基于深度学习的端到端系统对早产儿视网膜病变(ROP)进行早期诊断。
- 使用 ImageNet 预训练权重的深度卷积神经网络对年龄相关性黄斑变性(age-related macular degeneration,ARMD)正常、早期、中期、晚期的 4 个阶段进行识别,基于该 疾病的特性,网络从眼底图像中心区域的多个同心矩形中提取特征进行训练。
方法1.2.3只是对单一疾病或病变不同阶段做出贡献,但无法进行多疾病诊断。
- 一种通过深度学习提取视网膜疾病特征后进行特征降维的方法,使用支持向量机 (support vector machine,SVM)分类器对老年性黄斑变性和糖尿病性视网膜病变两种 视网膜疾病进行识别分类。
- 使用集成学习的方法对视盘、黄斑和整个视网膜区域分别训练分类模型,并集成最 终结果。
- 使用VGG(visual geometry group)网络和迁移学习的方法对视网膜疾病进行分类, 疾病种类少时效果较好,但是在对 10 种视网膜疾病进行分类时,准确率仅为36.7%。
方法4.5.6仅适适用于两种或极少种类的疾病进行识别,存在任务难度较小或识别 效果不理想等问题。
实现步骤:
IEEE ISBI 2021中的视网膜眼底图像作为数据集
数据集介绍:
1. 使用 3 台数码眼底照相机采集,共2 560张视网膜眼底图像,其中1 920张图像为训练集,640张图像为测试集
2. 共包含3种分辨率,分别为4 288×2 848、2 144×1 424和2 048×1 536
3. 数据集包含48种视网膜疾病,其中较为罕见的疾病将被统一标记为“其他(OTHER)”类别,包括“其他”类别在内共有28 种疾病,且每个图像样本为正常或至少包含一种疾病
- 数据预处理
- 黑框裁切,由于数据集有三种分辨率,采集到的图像有以下问题
①视网膜眼底图像分辨率不同;
②眼底在整张图像中不固定;
③ 眼底尺寸不固定;
④眼底图像存在大量冗余黑色,需要去除
- 将图像剪裁出感兴趣的区域,并且将图像调整为统一尺寸。
定位方法: sum(R,G,B) - 3×margin > 0
R,G,B为每行每列的RGB色彩值空间,取值范围[0,255]
margin(阈值):由于光照等因素,眼底边缘处不一定全是黑色,尽可能去除黑 色影响。
- 数据增强
- 对输入图像采用图形变换(随即裁剪、垂直和水平方向翻转、随机角度旋转、 增加高斯噪声、 限制对比度自适应直方图均衡化)的方式进行数据增强。
限制对比度自适应直方图均衡化(CLAHE) Zuiderveld K提出
使受光照影响或过亮的图像更加清晰
CutMix数据增强方法 Yun S等人
将每个小批量中的图像进行随机拼接组合,并加权计算总损失
使用该方法,在一次训练过程中拼接两张不同的图像,可以在局部信息中识别出两个不同的目标,从而提高模型的识别能力和泛化能力,达到数据增强的效果。
Step1:在一个轮次中的每个批量中,采用不放回的方式随机抽取两个图象样本和对应的标签,记为a,b;
Step2:随即设置一个概率值p;
Step3:从a中截取占比为p的局部图像A,记录边框对角位置x1、y1、x2、y2,剩余部分记为B;
Step4:利用x1、y1、x2、y2将a中的B区域替换为b中的B区域,组成新的图像c,其中B区域占比为 1‒p;步骤 3、步骤 4 可用式(2)表示:
Step5:将新图像c输入模型,并计算总损失,计算方法如下:
St其中,式(2)中M为与a和b同尺寸的掩码矩阵, ⊙⊙表示点乘,即在掩码矩阵中0为被裁剪的区域, 1为需要保留的区域。式(3)中loss表示损失函数, f(c)为将新图像c输入模型后的输出,Ya和Yb分别为图像a和图像b的标签。
- 基于深度卷积集成网络的视网膜多种疾病筛查和识别模式
本文将 EfficientNet 作为主干网络进行特征提取,再对整个网络模型进行微调,分别完成视网膜疾病的筛查和识别任务。最后,多个网络模型进行集成,并将最终的结果用于疾病筛查和识别。
- 目标函数
需根据眼底图像判断患病风险,可以看作一个二分类问题,用交叉熵损失作为多疾病筛查任务的损失函数。
确定患病后,需要确定患何种病,通过图像对患病概率做预测,而同一病人可能患多种病症,可以看作是一个多标签分类问题,将二分类交叉熵损失作为多种疾病识别任务的损失函数:
综上两个函数可得最终损失函数:
X为输入的视网膜眼底图像,Y为相应图像的标签,f(*)为主干网络对图像信息编 码后预测为正类的概率,N为疾病类别数量,σ(*)为Sigmoid函数,α和β为超 参数,用于平衡两个任务损失函数所占比重。
- 特征提取
深层卷积神经网络可以自动完成特征提取,并取得更好的效果,本文将谷歌大脑团队提出的 EfficientNet作为模型的主干网络部分进行特征提取,该网络可对网络的深度、宽度和输入的分辨率进行适当的调整,以达到更好的特征提取效果。
通过对MBConv模块的叠加和网络参数的调整,构成了不同深度和宽度的网络结构,输入图像的分辨率随之增大,特征提取的能力不断增强本文将采用EfficientNet-B5、EfficientNet-B6、EfficientNet-B7所得到的结果进行后续工作。
- 网络微调
①将主干网络输出的特征图用展平(flatten)操作拉伸成一维向量,经过中间的隐 藏层(包括线性映 射层Linear、归一化层BN和ReLU激活层)增加网络的非线性能 力后,输出维度为对应疾病类别数 量的向量,用于对多种疾病的患病概率进行预测, 并根据该向量计算多种疾病识别损失Lscreen。
②按照上述类似步骤,根据多种疾病患病概率完成疾病筛查任务,即预测患病风险, 并计算疾病筛查损失 Lrec。
③按照合适的权重对两个损失进行加权,计算出总损失,用于对整个网络模型的反向 传播更新网络参数。
- 模型集成
N 为集成模型的数量,Si为第i个模型的预测结果,Wi为第i个模型的权重。
基于深度卷积集成网络的视网膜多种疾病筛查和识别模型
● 投票法:投票法常使用多数表决法,记第i个模型对第j个类别的预测结果对应的标签为Lij,那么 所有模型对第j个类别的分类结果为Rj={L1j, L2j,…,LNj},将Rj中多数投票结果作为最终分类结果。
● 堆叠法:堆叠法实际上通过构建新的学习器,将多个模型预测的结果作为一个新的数据集输入,得 到最终预测结果。
文本使用的模型继承策略
- 实验结果
样本不平衡处理:对样本不平衡的处理是机器学习和深度学习不可避免的一个问题,然而在本文使用的数据集中,样本不平衡的问题尤为突出。在多种疾病筛查和识别问题中,每种疾病往往与其他疾病有一定联系,即各种疾病之间并非互斥关系。