<加速深度学习训练与…<上一页 基于深度学习的代理模型下一个> 医学成像的语义分割 张贴了Johanna Pingel.,2021年5月10日 225次浏览(最近30天 0喜欢| 4评论 以下帖子是由博士Barath Narayanan,代顿大学研究所(UDRI)与共同作者:Russell C. Hardie博士和Redha Ali。 在本博客中,我们将基于深度学习的分割应用于皮肤镜图像中的皮肤损伤,以帮助黑色素瘤检测。 社会兼职: *传感器和软件系统,代顿大学研究所, 300 College Park, Dayton, OH, 45469Arunachal Pradesh,代顿大学电器与计算机工程系, 300 College Park, Dayton, OH, 45469 背景 皮肤病变的分割是黑色素瘤计算机辅助诊断(CAD)的重要步骤。在本博客中,我们提出了一种基于卷积神经网络(CNN)的分割方法,应用于皮肤镜图像中的皮肤病变。早期发现和诊断黑色素瘤的检测明显提高一个人的存活率。请引用下面的文章,如果您正在使用任何部分的代码为您的研究。[1]阿里,R.,难的,r . C。,Narayanan, b . N。,&de Silva,S。(2019年7月)。“深度学习合奏方法对黑色素瘤检测的皮肤病病变分析".2019年IEEE国家航空航天和电子会议(NAECON)(第311-316页)。IEEE。这个博客使用的数据集取自ISIC 2018.关于数据集的说明在这篇文章的最后。 加载数据集并调整大小 原始图像加载使用imageageAtastore..它是一个计算效率高的函数来收集图像信息。加载地面真理面具使用PixellabeldAtastore..ground truth mask中的白色区域表示“病灶”,其余图像属于“background”类。这个函数pixelLabelImageDatastore有助于使用相应的地面真相面具标记原始图像。让我们从数据集中可视化某些随机图像以供参考。稍后,将所有图像的大小调整为深度学习网络的大小224 x 224。 标记图像显示像素为背景(黑色)和前景“病灶”(白色) %清除工作区清晰;关闭所有;clc;%所有图片IMDS = ImageageAtastore('ISIC2018_TASK1-2_TRINGE_INPUT','uppordubfolders',true);%定义类名和它们的相应ID一会=(“病变”,“背景”);labelIDs = (255,0);%创建一个pixelLabelDatastore,保存ground truth像素标签pxds = pixellabeldataStore('ISIC2018_TASK1_TRAINGE_GRICEDTRUTH',ClassNames,LabelIds);%创建所有图像的像素标签图像数据存储pximds = pixellabelimagedataStore(IMDS,PXD);%图像数量total_num_images =长度(pximds.Images);%可视化随机图像烫= randperm (total_num_images 4);图;%用掩模可视化图像idx = 1:长度(烫)(~,文件名)= fileparts (pximds.Images {idx});次要情节(2,2,idx);imshow (imread (pximds.Images{烫发(idx)}));抓住;visboundaries (imread (pximds.PixelLabelData{烫发(idx)}),“颜色”,“r”);标题(sprintf(“% s”,文件名),“翻译”,“没有一个”);结束 %期望图像尺寸图像= [224 224 3];%创建所有调整大小图像的像素标签图像数据存储pximdsresz = pixellabelimagedataStore(IMDS,PXD,'输出',图像化);%清除除了必要的变量之外的所有变量clearvars -除了pximdsResz classNames total_num_images imageSize 拆分数据集 - 培训,验证和测试 %从数据集中随机选择100张图像进行测试test_idx = randperm(total_num_images,100);%其余指标用于培训和验证train_valid_idx = setdiff (1: total_num_images, test_idx);%从训练数据集中随机选取100张图像进行验证valid_idx = train_valid_idx (randperm(长度(train_valid_idx), 100));%剩余的指数用于培训train_idx = setdiff(train_valid_idx,valid_idx);%列车数据集pximdsTrain = partitionByIndex (pximdsResz train_idx);%的验证数据集pximdsValid = partitionByIndex (pximdsResz valid_idx);%测试数据集pximdstest = partitionByIndex(PXIMDSRESZ,TEST_IDX); 深度学习的方法 定义CNN网络以培训网络以及所需的参数。在此博客中,我们使用Deeplab V3 +网络研究性能。Deebplab V3 +是语义图像分割的CNN。它利用具有扩展卷积的基于编码器解码器的架构并跳过卷积到段图像。在[1]中,我们提出了一种与DEEPLAB V3 +网络组合的组合方法。在博客中,我们专注于使用Reset50架构的Deeplab V3 +网络。随意改变近似参数并观察表现。 注: 确保通过插件浏览器安装用于ResNet-50网络支持包的深度学习工具箱模型。万博1manbetx 由于原始图像的分辨率,输入归一化可能需要5-10分钟。在NVIDIA GeForce GTX 1070中,每个epoch的训练时间约为10分钟。 如果你有多个GPU,你也可以在训练选项中将执行环境设置为“多GPU”。 %类数numClasses =长度(类名);%网络lgraph = deeplabv3plusLayers(图象尺寸、numClasses resnet50);%定义网络参数选择= trainingOptions(“个”,…“InitialLearnRate”,0.03,…“动量”、0.9……“L2Regularization”,0.0005,…“MaxEpochs”,20日……“MiniBatchSize”,32岁的……“VerboseFrequency”,20日……“LearnRateSchedule”、“分段”,…“ExecutionEnvironment”、“gpu的,……“洗牌”、“every-epoch’,…… 'ValidationData',pximdsValid, ... 'ValidationFrequency',50, ... 'ValidationPatience',4,... 'Plots','training-progress',... 'GradientThresholdMethod','l2norm',... 'GradientThreshold',0.05);%训练网络网= trainNetwork (pximdsTrain、lgraph选项); 测试和性能分析 现在,让我们研究一下网络在测试集上的性能。我们根据以下指标来研究性能: 像素分类精度:全局和平均 交叉在联合(IoU):加权和平均 标准化混乱矩阵 在[1]中,我们还研究了用Jaccard指数和Dice系数表示的性能。 基于训练网络的测试数据集的%语义分割[pxdspredicted] = semanticseg (pximdsTest,净WriteLocation, tempdir);% 评估指标= evaluateSemanticSegmentation (pxdspredicted pximdsTest); %归一化混乱矩阵normConfMatData = metrics.NormalizedConfusionMatrix.Variables;图h =热图(类名、类名、100 * normConfMatData);h.XLabel =“预测类”;h.YLabel =真正的类的;h.Title='标准化混淆矩阵(%)'; 目视检查 在本节中,我们通过可视化给定图像的预测和实际掩模来目视检查结果。%图像数量num_test_images =长度(pximdsTest.Images);%随机选择2张图片烫= randperm (num_test_images 2);%用掩模可视化图像idx = 1:长度(烫)%提取标题的文件名(~,文件名)= fileparts (pximdsTest.Images {idx});%读取原始文件并为网络目的调整大小我= imread (pximdsTest.Images{烫发(idx)});我= imresize,图象尺寸(1)图象尺寸(2)),“双线性”);图;图像(I);抓住;%读取实际的蒙版并调整其大小以实现可视化实际_mask = imread(pximdstest.pixellabeldata {perm(idx)});实际_mask = imresize(actual_mask,[图像化(1)图像化(2)],'bilinear');%地面实况visboundaries (actual_mask,“颜色”,“r”);算法预测的%predicted_image =(uint8(readimage(pxdspreedicted,perm(idx)))));%值为1和2 predige_results = uint8(〜(predged_image-1));%转换为二进制和反转极性与labelids匹配%的预测结果visboundaries(prediged_results,'颜色','g');标题(Sprintf('%s红色 - 实际,绿色 - 预测',文件名),'口译员',“无”);IMWRITE(MAT2GRAY(prediged_results),sprintf('%s.png',filename));结束 结论在这篇博客中,我们介绍了一种简单的基于深度学习的细分,适用于皮肤病图像的皮肤病变,以帮助黑色素瘤检测。使用DEEPLAB V3 +的分割算法与RESET50架构相对良好地进行了良好的IOU和像素分类精度。将这些结果与其他现有架构相结合将提供促进性能。随时可以在不同的覆盖物设置和架构下研究表现。在本文[1]中,我们用U-Net架构融合了Deeplab V3 +的结果。皮肤病变的分割将作为检测黑素瘤的分类算法的有价值的预处理步骤。数据集的指令如果您正在使用数据集,请引用以下文章。[2] Noel Codella,Veronica Rotemberg,Philipp Tschandl,M. emre Celebi,斯蒂芬杜萨,大卫古曼,Brian Helba,Aadi Kalloo,Konstantinos Liopyris,Michael Marchetti,Harald Kittler,Allan Halpern:“对黑色素瘤检测的皮肤病变分析2018:2018年国际皮肤成像协作(ISIC)主办的挑战;https://arxiv.org/abs/1902.03368[3] Tschandl, P., Rosendahl, C. & Kittler, H. HAM10000数据集,一个常见有色皮肤病变的多源皮肤镜图像大集合。科学。数据5,180161 doi:10.1038/sdata.2018.161(2018)。下载ISIC 2018任务1,2培训数据(10.4 GB)和训练接地真理(26 MB)为任务1.下载ZIP文件后,将它们提取到相应的文件夹中(“ISIC2018_TASK1-2_TRING_INPUT”,“ISIC2018_TASK1_TRAINTRAINGRINGRING_GRICETRING_GRICETRUTH”,脚本所需).数据集总共包含2594个图像。请注意,我们仅利用“任务1 - 培训数据”来研究系统的性能,因为地面真相是公开可用的。 传记 Barath Narayanan本科毕业,电气工程硕士和博士学位顿大学(UD)分别于2013年和2017年。他目前担任乌司列软件系统集团的研究科学家,并作为UD的ECE系的兼职教师。他的毕业于于SRM大学他于2012年在印度金奈获得电气与电子工程学士学位。主要研究方向为深度学习、机器学习、计算机视觉和模式识别。 Redha阿里2012年获得利比亚巴尼瓦利德电子技术学院计算机科学与信息技术学士学位。他于2016年获得the University of Dayton的电子与计算机工程硕士学位。他的硕士论文和出版物都是在图像和视频去噪领域。他目前在北京大学医学影像专业攻读博士学位顿大学.他的应用研究兴趣包括医学图像处理,深度学习,机器学习,计算机视觉,视频恢复和增强。 拉塞尔·c·哈迪博士以优异成绩毕业于罗耀拉大学1988年在马里兰州巴尔的摩获得工程科学学士学位。他获得电气工程硕士学位和博士学位特拉华大学分别在1990年和1992年。Hardie博士曾担任马里兰州地球卫星公司(Now MDA)的高级科学家顿大学在1993年。他目前是电气与计算机工程系的全职教授,并与电光与光子学系联合聘用。 对作者有一个问题或评论?留下以下评论。 | 你现在正在关注这篇博文 您将看到您的更新活动提要. 你可能会收到电子邮件,这取决于你的通知偏好. 类别: 深度学习 <加速深度学习训练与…<上一页 基于深度学习的代理模型下一个> 另请参阅 基于深度学习的语义分割 博客 糖尿病性视网膜病变检测 博客 医学影像的深度学习:COVID-19检测 博客 基于深度学习的三维脑肿瘤分割 基于深度学习的皮肤损伤分割 基于深度学习的三维脑肿瘤分割 评论 要留下评论,请点击这里登录到您的MathWorks帐户或创建一个新帐户。