Post博士。
Barath Narayanan,
代顿大学研究所(UDRI)合著者:博士。
拉塞尔·c·难的代顿大学(UD),
Manawduge Supun De Silva、UD和
纳撒尼尔·k·KuetermanUD。
介绍
糖尿病性视网膜病变(DR)是失明的主要原因之一,影响着世界各地超过9300万人。博士是一个眼科疾病与糖尿病有关。在早期检测和分级博士将有助于防止永久性视力丧失。自动检测和分级在视网膜筛查过程将有助于提供一个有价值的第二意见。在这个博客中,我们实现一个简单的基于transfer-learning使用深卷积神经网络(CNN)
检测博士。
请引用以下文章如果你使用代码的任何部分的研究:
- Narayanan, b . N。难的,r . C。,De Silva, M. S., & Kueterman, N. K. (2020).混合动力机器学习架构自动化检测和分级的糖尿病性视网膜病变视网膜图像。医学影像杂志》7 (3),034501。
- Narayanan, b . N。,De Silva, M. S., Hardie, R. C., Kueterman, N. K., & Ali, R. (2019).理解深层神经网络预测医学成像的应用程序。arXiv预印本arXiv: 1912.09621。
Kaggle盲检测的挑战的数据集(
APTOS 2019数据集)包含单独训练和测试用例。在这个博客中,我们仅利用训练数据集来研究和预测性能。这些图像捕获亚拉文眼科医院,印度。训练数据集包含3662个图像标记为不同类别(正常、轻度博士温和的博士,博士,和增生性博士)的专家医生。
注意,在这个博客,我们专注于检测博士,你可以找到关于我们的分级结构的更多细节纸。
按类别分组数据
我们从excel表中提取标签和图像分类成2-folders“不”或“是的”,我们只专注于检测博士在这个博客。
把数据分类的辅助代码的这篇文章。
加载数据库
让我们首先加载数据库使用
imageDatastore。这是一个计算效率函数加载图片连同它的标签进行分析。
two_class_datapath =的训练数据集两类;imd = imageDatastore (two_class_datapath,……“IncludeSubfolders”,真的,…“LabelSource”、“foldernames”);total_split = countEachLabel (imd)
可视化图像
让我们想象图片,看看图片每个类而有所不同。它还将帮助我们确定分类技术可以应用的类型区分两类。根据图片,我们可以识别预处理技术,将协助我们的分类过程。我们还可以确定CNN的类型体系结构研究,可以利用基于类内的相似之处和差异在类。在本文中,我们使用inception-v3实现转移学习架构。你可以
读我们的论文看不同的预处理操作的性能和其他建立架构。
num_images =长度(imds.Labels);烫= randperm (num_images 20);图;idx = 1:20次要情节(4、5、idx);imshow (imread (imds.Files{烫发(idx)}));标题(sprintf (“% s”, imds.Labels(烫发(idx))))
培训,测试和验证
我们将数据集分为训练、验证和测试。首先,我们把数据集分成组80%(培训&验证)和20%(测试)。确保将相等数量的每个类。
train_percent = 0.80;[imdsTrain, imdsTest] = splitEachLabel (imd, train_percent“随机”);valid_percent = 0.1;[imdsValid, imdsTrain] = splitEachLabel (imdsTrain valid_percent,“随机”);
这让我们面临以下数量:
|
是的 |
没有 |
训练集: |
1337年 |
1300年 |
验证设置: |
144年 |
149年 |
测试集: |
361年 |
371年 |
深度学习的方法
我们采用转移学习方法对视网膜图像进行分类。在这篇文章中,我利用Inception-v3分类,你可以利用其他转移学习方法如前所述
纸或任何其他建筑,你认为可能适合这个应用程序。我MathWorks博客建立转移学习使用其他网络可以在这里找到:
AlexNet,
ResNet
培训
我们将利用验证耐心3的停止标准。首先,我们使用“MaxEpochs”作为我们的培训2,但我们可以调整它进一步基于我们的培训进度。理想情况下,我们想要验证性能高当训练过程停止。我们选择mini-batch大小为32基于硬件的内存限制,你可以选择一个更大的mini-batch大小但一定要相应改变其他参数。
augimdsTrain = augmentedImageDatastore ([299 - 299], imdsTrain);augimdsValid = augmentedImageDatastore ([299 - 299], imdsValid);选择= trainingOptions(“亚当”、“MaxEpochs”2“MiniBatchSize”, 32岁的……“阴谋”,“训练进步”、“详细”,0,“ExecutionEnvironment”、“平行”,…augimdsValid‘ValidationData’,‘ValidationFrequency’, 50岁“ValidationPatience”, 3);netTransfer = trainNetwork (augimdsTrain、incepnet选项);
测试和性能评估
augimdsTest = augmentedImageDatastore ([299 - 299], imdsTest);[predicted_labels,后]= (netTransfer augimdsTest)进行分类;actual_labels = imdsTest.Labels;图plotconfusion (actual_labels predicted_labels)标题(“混淆矩阵:《盗梦空间》v3”);
test_labels =双(名义(imdsTest.Labels));[fp_rate tp_rate T, AUC] = perfcurve (test_labels后(:,2)2);图;情节(fp_rate tp_rate, ' b - ');坚持;网格;包含(“假阳性率”);ylabel(检出率);
类活动映射结果
我们可视化类激活映射(CAM)结果博士这些网络在不同情况下使用代码:
//www.tatmou.com/help/deeplearning/examples/investigate-network-predictions-using-class-activation-mapping.html。这将有助于提供见解医生的决定背后的算法。
这里有各种情况下的结果:
结论
在这个博客中,我们提出了一个简单的基于深度学习分类方法博士CAD的视网膜图像。分类算法使用没有任何预处理Inception-v3表现相对较好,总体精度98.0%和0.9947的AUC(结果可能会有所不同,因为随机分裂)。在
纸的性能,我们研究了各种CNN建立体系结构相同的训练集和测试情况下不同预处理条件下。结合各种体系结构提供了一个提升的结果准确性的AUC和总体性能。这些算法的全面研究,无论是计算(内存和时间)和性能,允许主题专家做出明智的选择。此外,我们提出了新颖的体系结构方法
纸博士的检测和分级。
关于作者
辅助代码
博士代码分组数据的类别(是或否)
从网站下载ZIP文件后,提取一个文件夹叫“train_images”。确保下载excel表(火车。csv,把它转换成.xlsx标签代码)包含如此的专家医生。我们从excel表中提取标签和图像分类成2-folders“不”或“是的”,我们只专注于检测博士在这个博客。
datapath公司= ' train_images \ ';two_class_datapath = '训练数据集两类\ ';class_names ={‘不’,‘是的’};mkdir (sprintf (% s % s, two_class_datapath, class_names {1})) mkdir (sprintf (% s % s, two_class_datapath, class_names {2}))[num_data, text_data] = xlsread (“train.xlsx”);train_labels = num_data (: 1);train_labels (train_labels ~ = 0) = 2;train_labels (train_labels = = 0) = 1;文件名= text_data(2:最终,1);idx = 1:长度(文件名)%流('处理% d % d文件包括:% s \ n”, idx,长度(文件名),文件名{idx}) [/ %)current_filename = strrep (char(39),文件名{idx} ");img = imread (sprintf (% s % s.png, datapath公司,current_filename));imwrite (img sprintf (' % s % s % s % s.png ', two_class_datapath, class_names {train_labels (idx)},“\”, current_filename));清楚img;结束
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。