南京大学智能软件工程实验室

iselab.cn

摘要:

深度学习在医学分类方面取得了长足的进步。但是,在许多现实的环境中,用于训练和测试的数据不足且不平衡,深度学习模型将很容易过度拟合且泛化能力很差。并且由于医院和患者的状况并不总是适合于收集数据,并且具有相同疾病的患者数据也并非总是可用,因此在医学领域经常出现需要收集平衡且足够的数据的难题。此外,神经网络需要在大量准确而可靠的数据上进行训练,数据不正确或表示不正确可能会导致系统的性能变差。在这项研究中,我们通过对医学数据集执行传统和先进的增强技术,以生成足够且平衡的图像。同时,我们使用分类准确性和 DeepGini 得分作为度量标准,以评估扩增数据集的有效性。

其视频位于https://www.youtube.com/watch?v=P0aQXoE4g。

关键词:

数据扩增,图像分类,医疗图像

一、 绪论

近年来,深度学习在各个领域都取得了巨大的进步和成就。但是,与应用深度学习的其他区域不同,在医疗和自动驾驶等对安全至关重要的领域中,模型的安全性需求通常更高。深度学习模型的安全性在很大程度上取决于训练和测试模型中的数据质量。与 ImageNet 和与其类似的提供数百万个图像的自然图像域数据集不同,医学数据集中可用的训练图像要少得多。足够且平衡的数据成为影响模型质量的关键因素。但是,由于医院和患者的状况并不总是适合于收集数据,并且具有相同疾病的患者数据也并非总是可用,因此在医学领域经常出现收集平衡且足够数据的难题。对于给定的目标疾病,健康的患者要多于不健康的患者。对于给定的患者,通常有比不正常图像更多的正常图像。因此,如何获得足够的平衡图像数据已成为提高模型质量和性能的关键因素。

有多种数据增强方法可用于克服足够数据的问题。这些方法可以分为传统方法(改变旋转,对比度,亮度等)和高级方法(纹理和样式转换等)两类。高级方法包括不同的学习模型和耗时的方法,而传统方法则成本低廉且易于应用。

传统的数据增强通常用于解决数据不平衡问题。通过随机删除样本更多的类的数据来解决数据不平衡问题。但是,这种方法不会增加稀有类的学习能力。

另外,一种新的方法称为特征表示和相似度矩阵的统一学习,该方法使用单个深度卷积神经网络(CNN)对种子标记的数据集进行训练,以从大型未标记的数据集中为每个类别推荐最相似的图像,以供医学专家验证,并将其包含在种子标记的数据集中。它的真实数据增强功能大大减少了昂贵的手动标记时间。它很容易扩展到其他医学图像分类问题。但是,该方法的应用范围有限,算法过于复杂,推荐效率不如我们期望的高。

因此,在本文中,我们从传统扩增技术中选择了无损变换和非刚性变换,以及先进增强技术(如 GAN,SMOTE,AutoAugment)在数据集上生成足够且平衡的图像。同时,我们使用 DeepGini 得分和分类精度作为度量标准,评估扩增数据集的质量并与原始数据集进行比较。

与仅使用传统数据扩增技术的其他方法相比,我们将当前流行的数据扩增方法也加入系统。与单纯删除部分数据相比,我们的方法不仅解决了数据不平衡的问题,而且使数据更加丰富。我们的方法具有以下优点:

  • 与使用单一方法生成扩增图像的其他方法相比,我们的方法将多种常规图像数据扩增方法与先进图像扩增方法结合在一起。在此过程中成功生成图像数据的概率将增加。
  • 通过使用我们的图像数据扩增方法,不仅可以生成足够的医学图像数据,而且可以解决原始图像数据集中数据不平衡的问题。
  • 对于医学专家而言,手动梳理庞大的未标记数据集以获得稀有类别的足够代表性示例可能是不可行的。与人工标记的数据相比,我们的方法不需要大量的人力和资源来标记数据。
  • 我们的方法在获取医学图像数据的同时也保护了患者的隐私。

二、相关工作

在相关工作中,我们主要介绍 GAN 在传统领域中数据增强中的应用。在 DOPING 中,作者将注意力集中在无监督的异常检测上,并提出了针对此任务进行了优化的新型生成数据增强框架。为了应对这一挑战,他们建议使用称为对抗自动编码器(AAE)的 GAN 变体,将高维多峰数据分布转换为具有明确尾部概率的低维单峰潜势分布。在 DADA 中,作者提出了一种深层对抗数据增强(DADA)技术来解决该问题,在该技术中,他们精心地将数据增强公式化为训练类条件和监督型生成对抗网络(GAN)的问题。具体而言,提出了一种新的鉴别器损失,以适应数据扩充的目标,通过该损失,实数样本和扩充样本都将被强制执行,从而有助于并一致地找到决策边界。

三、 方法

该系统包括扩增模块和质量评估模块。首先,将医学图像数据集输入到系统中,然后扩增模块使用不同扩增方法来扩展原始数据集。最后,将该数据集输入到质量评估模块,并使用 DeeiGini 得分和神经网络的分类精度作为度量来评估扩增数据集。

图 1 系统工作流

  1. 扩增模块

对于具有很多重要信息的图片(例如医学图像),最好执行不会增加或丢失图片信息的图像增强变换。因此,我们选择使用无损变换、非刚性变换和先进扩增技术来完成医学图像扩增。

图 2 扩增模块

1) 无损变换

无损变换是通过 albumentations 实现的,具体方法说明如下:

水平翻转。在水平翻转中,翻转后图像的每个像素的横坐标相对于图像的垂直中心线对称于翻转前相应像素的横坐标。

垂直翻转。与水平翻转类似,翻转后图像的每个像素的横坐标相对于垂直翻转中图像的水平中心线对称于翻转前相应像素的横坐标。

我们在此模块中同时执行水平翻转和垂直翻转。尽管在常规图像扩展中未使用垂直翻转(如颠倒的狗可能不会对模型训练产生影响),但由于医学图像的特殊性,这种方式可能仍然有意义。

随机旋转。通过变换矩阵实现旋转:

首先,将坐标的原点从左上角变换到图像的中心。然后,以旋转中心为原点,将图像旋转角度

。旋转完成后,坐标原点恢复到旋转图像的左上角。

在我们的项目中,我们将输入图像随机旋转 90 度零次或多次,即 0、90、180 和 270 度。

转置。转置转换是交换行和列。

图 3 无损变换

2) 非刚性变换

非刚性变换描述了更改大小但不改变形状的图像的任何变换。拉伸或扩张是非刚性类型的转换的示例。在医学图像问题中,非刚性变换有助于增强数据。

弹性变换。弹性变换是为像素的每个维度生成一个随机的标准偏差(-1,1)间隔,然后使用高斯滤波(0,sigma)过滤每个维度的偏差矩阵,最后控制偏差范围放大系数 alpha。最后,从 A(x,y)获得 A'(x + deltaX,y + deltaY)。A'的值替代原始 A 位置的值。一般而言,alpha 越小,sigma 越大,偏差就越小,并且离原始图像越近。

网格失真。失真是一种场像差,它会在全局范围内影响图像的外观,而与影响细节的模糊相反。畸变可以定义为整个像场中放大率的变化。失真的主要且最广为人知的效果是,原始图像中的直线在变换后的图像中将变得弯曲。

光学失真。失真是指光学系统在物体上形成的图像相对于物体本身的失真程度。光学畸变是指通过光学理论计算出的畸变程度。

图 4 非刚性变换

3) 先进扩展技术

GAN。生成对抗网络(GAN)的原理是:网络中有两个角色,并且这两个角色相互博弈。在神经网络的训练过程中,两个网络相互配合以提高网络的性能。GAN 具有两个主要组件,生成器神经网络和鉴别器神经网络。生成网络使用随机输入,尝试输出数据样本,并将生成的数据发送到鉴别器网络 D(x)。鉴别器网络的任务是预测输入是真实的还是生成的。

在训练中,它分两个阶段进行。第一阶段是学习鉴别器。此时,生成器的权重不变,并且仅鉴别器的权重被更新。在训练过程中,分别从噪声分布和真实分布中选择 m 个噪声输入样本和 m 个真实信号样本,并通过最大化损失函数来更新鉴别器的权重。第二阶段是训练 Generator。此时,损失被最小化以更新生成器的权重。

图 5 通过 GAN 生成的扩增图像

SMOTE。SMOTE 是一种用于处理样本类别不平衡的数据集的算法。它的全名是 Synthetic Minority Over-sampled TEchnique。它可以为小样本类别合成新样本。首先,定义特征空间,并确定采样倍率 N。然后为几个类采样点(x,y)找到 K 个最近的邻居样本,随机选择一个最近的邻居

和新的样本点满足

在两点线上。

Fast AutoAugment。AutoAugment 是 Google 对自动选择最佳数据增强程序的研究,这是无监督数据增强的重要研究方向。其基本思想是利用强化学习从数据本身中找到最佳的图像转换策略,并针对不同任务学习不同的强化方法。与 AutoAugment 相比,Fast AutoAugment 使用更有效的基于密度匹配的搜索策略来学习增强策略,因此它可以在保持可比性能的同时将搜索时间提高几个数量级。

  1. 质量评估模块

我们使用深度学习神经网络对原始图像数据集和扩增图像数据集进行测试,以获取分类结果和准确率。同时,我们将使用 DeepGini 处理分类结果以获得相应数据集的 DeepGini 得分。然后,我们将两个指标结合起来以比较测试集的质量。最后,输出最高质量的数据集。

DeepGini 得分。给定一个测试 t 和一个输出的 DNN,并且 n 是类数,则将 t 的错误分类概率定义为:

对于整个数据集

,其中 n 是样本数,我们将 DeepGini 得分定义为:

四、 用法

为了详细说明整个系统的用法和操作过程,我们选择 GON 数据集作为原始数据集,并使用 resnet-50 作为深度神经网络模型进行图像分类。由于我们找不到用于 GON 数据集的任何预训练 DNN 模型,因此我们使用自己训练的 resnet-50 模型。

数据集。医学数据集的类型非常广泛。在本项目中,我们仅以 GON 数据集为例来说明系统。 GON 是来自非青光眼受试者(占 90%)和青光眼患者的大量眼底照片数据集,其中青光眼是目前世界上不可逆失明的主要原因。该数据集中总共提供了 800 张彩色眼底照片,并将其按 1:1 比例分为 2 个子集进行训练和测试,分层后具有相等的青光眼存在百分比。将提供总共 400 张彩色眼底图像的训练集以及相应的青光眼状态和统一的手动像素级注释。

选择扩增技术。用户将原始数据集输入系统中,然后选择系统提供的任何扩增方法来扩增原始数据集。然后,系统将使用用户选择的方法来扩增数据集,并将扩增后的数据集传递给 DNN 模型。

训练模型。使用原始数据集训练 DNN 模型。

数据集评估。系统使用扩增的数据集测试模型以获得准确性和分类结果。然后系统根据分类结果计算每个图像的误分类概率,并从数据集中删除小于 0.05 的图片。同时,系统会计算整个数据集的 DeepGini 得分,并将其用作数据集质量的度量。最后,将模型的分类准确性和数据集的 DeepGini 分数用作评估数据集准确性和多样性的标准。如果评估结果良好,则系统将输出扩展的数据集。但如果评估结果不够好,系统将提示用户选择一种新的增强方法。

五、 结论

在本文中,我们开发了用于医学数据集的图像扩增集成系统。通过使用我们的系统,用户可以自由选择他们想要实现医疗数据集扩增的方式。此外,由于医学图像的精确性和信息丰富性,我们选择了无损变换、非刚性变换和先进的增强技术,这些技术不会在很大范围内改变图像内容以增强原始数据集。

致谢

本文由南京大学软件学院 2019 级硕士王黛薇翻译转述。

感谢国家自然科学基金(61932012,61802171,61772014)支持!

医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增相关推荐

  1. 结构方程模型(SEM)在生态学领域中的实践

    结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰展示研 ...

  2. R语言结构方程模型(SEM)在生态学领域中的应用

    前言:结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰 ...

  3. R语言结构方程模型在生态学领域中的应用

    结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰展示研 ...

  4. R语言结构方程模型(SEM)在生态学领域中的实践

    结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰展示研 ...

  5. 计算机技术在医学领域的作用,计算机技术在医学领域中的应用

    <计算机技术在医学领域中的应用>由会员分享,可在线阅读,更多相关<计算机技术在医学领域中的应用(4页珍藏版)>请在人人文库网上搜索. 1.计算机技术在医学领域中的应用 随着科技 ...

  6. 计算机技术在医学领域的应用视频,计算机技术在医学领域中的应用

    龙源期刊网 http://doc.xuehai.net 计算机技术在医学领域中的应用 作者:王晓姜燕 来源:<科技视界>2013年第18期 [摘要]随着时代的发展,计算机技术已经深入到各个 ...

  7. 医学领域中的计算机,医学领域中计算机技术的应用解析

    信技息术 S I ECN C&TE CE NH 0 L 0 GY 圆墨 学医领域中计算机技术应的用 析解 明高芬 (昆 市山第人民六院医江苏昆 山2 153 2 1 )摘要:信息产业作为为一作 ...

  8. 浅析计算机在医学方面的应用,医学计算机论文,关于医学领域中计算机技术的应用相关参考文献资料-免费论文范文...

    导读:该文是关于医学计算机论文范文,为你的论文写作提供相关论文资料参考. (昆山市第六人民医院 江苏昆山 215321) 摘 要:信息产业作为作为一个新兴的产业,它呈现出了自己独特的生机和活力.随着计 ...

  9. 计算机在医药科研中的应用,计算机在医学领域中应用的现状

    摘 要:本文从计算机在医学领域中的应用入手,概括了我国计算在我国的应用情况,并对计算机在医学领域中的应用前景进行展望,研究表面,计算机和信息技术在医学领域有这广泛的发展前景. 关键词:计算机:医学:应 ...

最新文章

  1. 第1关:利用栈实现整数的十进制转八进制
  2. 【Android APT】注解处理器 ( Element 注解节点相关操作 )
  3. 基于nchan打造百万用户的聊天室
  4. YOLO V3 原理
  5. Java求两个数的最大公约数
  6. Java成神之路——volatile是什么?
  7. L2-029 特立独行的幸福 (25 分)-PAT 团体程序设计天梯赛 GPLT
  8. 垃圾收集 java_Java 垃圾收集技术
  9. Julia : DataFrame常见用法
  10. 无法进入recovery模式?fastboot来拯救
  11. 分享Monaco.ttf字体(Mac样式)
  12. 数据库中的主键与外键的关系
  13. 苹果手机各种型号图片_八款iPhone详细规格参数对比 你会买哪款?
  14. centos 7.6 安装mariadb
  15. 怎样使用计算机网络,手机使用电脑网络怎么操作 手机使用电脑网络操作方法...
  16. 输入框过滤表情和颜文字
  17. 学习:C# 中的委托和事件(转)
  18. zoj 2975 Kinds of Fuwas(数学题)
  19. 建筑施工与管理计算机综合应用能力实训报告,建筑施工管理计算机综合应用能力实训报告...
  20. 【深度学习】 MAE|心中无码,便是高清

热门文章

  1. mysql java jdbc 如何 update select
  2. 配置用户通过Telnet登录设备的身份认证(AAA本地认证)
  3. 综合性深入的技术文章-20161103
  4. 函数的四种调用模式.上下文调用.call.apply
  5. 用C#实现的条形码和二维码编码解码器
  6. Java的SPI机制
  7. C#创建和调用DLL
  8. 游标对于分页存储过程
  9. 判断输入是否为中文的函数
  10. 在Eclipse中使用Maven构建Spring项目