abstract

本文我们描述了参加ISIC2019皮肤病变分类比赛。比赛中有两个任务,一是通过皮肤病变来分类皮肤病图像。二是利用图像和附加的患者元数据进行分类。包含25000张图像的庞大数据集提供给训练过程,共包含8个类别。最后的测试集包含附加、未知的类别。我们介绍一个简单、数据驱动的方法来解决这个挑战,该方法引入了训练集未包含的外部皮肤病变数据。此外,多类别皮肤病分类还有严重的类别不平衡问题。我们尝试使用损失平衡来解决这个问题。同时数据中包含的图像有着不同分辨率,我们通过输入不同模型不同分辨率、裁剪策略来考虑这种特性。为了聚合元数据,比如年龄,解剖位置、性别,我们使用额外的全连接层并将特征与cnn特征进行融合。我们使用了一个集合策略聚合了所有模型,从而我们能搜索最优模型的子集。我们最好的集合达到了平衡的准确率74.2%,使用了无折交叉验证。在官方的测试集合上,我们的方法在两个任务上都排名第一,任务一准确率63.6%,任务二准确率63.4%。

关键词:皮肤病变分类、深度学习、损失平衡、efficientNet

1 introduction

自动皮肤病变分类是一个挑战性的任务,目前经典方法是卷积神经网络。最近, ISIC 2018 SkinLesion Analysis Towards Melanoma Detection 比赛,得出了一系列高表现的模型,评估皮肤镜图像结果与人类专家相似。为了进一步提高诊断表现,ISIC 2019挑战赛提出了一些旧的问题和一些新的问题。特别是ISIC 2019的测试数据,包含了未知类别。同时,现实生活中严重的类别不平衡问题也是一个需要解决的关键问题。此外,训练数据在之前的HAM10000基础上,扩充了BCN_2000 和MSK数据。图像被不同预处理和准备方案处理后有着不同分辨率也需要我们考虑。
本文,我们描述在 ISIC 2019 Challenge比赛当中参加两个任务的流程。对于任务一,皮肤病变分类只基于皮肤镜图像。对于任务二,皮肤镜图像和附加的患者元数据都需要使用。我们主要建设了一个皮肤病分类方法,该方法包括损失平衡,数据增强,预训练,state-of-the-art cnn和广泛的集合策略。我们通过a color constancy algorithm和 cropping algorithm处理生数据、未处理的皮肤镜图像,已提供数据多变性。
处理测试集合的未知类别数据,我们采用了一个使用外部数据的数据驱动方法。对于任务二,我们融合了附加的元数据信息到模型中,使用全连接网络与cnn特征融合。

2 materials and mothods

2.1 datasets

主要的训练数据包含25331个皮肤镜图像,从多个地方采集并被不同处理方法处理过。包含类别:

训练数据的一部分是HAM0000,包含600450的图像,已经被中心化并提供患处周围的裁剪。其中一些图像已经被数据管理人员做了直方图矫正。另一个数据集是BCN_20000,包含10241024的图像。该数据尤其具有挑战性,因为图像没有被裁剪,并且病变出现在各种不寻常的位置。最后一个数据,是MSK,包含各种尺寸的图像。
数据中也包含元信息,比如患者年龄组,解剖部位,性别。元数据是不完整的,很多图片的元数据有缺失值。
除此之外,我们使用了外部数据。我们使用了7-point数据集中的995个皮肤镜图像。我们使用in-house数据,其中包含1339张图像。in-house数据中也包含353张图像我们用来标记未知类别。。。。(省略一句废话),我们的主要想法是建立一个广泛的皮肤病变类别,从而激励模型能够分析任何一个不属于8个类别的图像。如果在外部数据中可以获得,我们也考虑三个类别的元数据。
在内部数据评测中,我们划分训练数据为5个部分。数据中包含同个病变的多幅图像,因此我们确相同病变的所有图像均等划分到每个部分。我们把外部数据添加到每个训练集合中,值得注意的是,我们没有包含任何未知类别的数据在评估中,因为我们不知道是否他们能准确表示实际情况的未知类别。因此,我们的模型训练去预测九个类别。但我们评估过程在已知的八个类别上。
我们使用平均敏感度来进行内部评估:

TP是真正例,FN是假反例,C是类别数量。该策略也被比赛排名采用。

2.2 preprocessing

  • image preprocessing 作为第一步,我们使用裁剪策略处理大的背景黑色的未裁剪图像。我们有用很低的阈值进行二值化,使得整个皮肤镜背景变成1。然后,我们找到一个椭圆的质心和长轴和短轴有相同的第二中心矩的内部区域。基于这些值,我们得到了一个矩形包围框,用于裁剪相关的视场。过程如fig1。

    我们基于测试机是否边界强度与中心强度有明显区别,来启发式自动决定是否进行裁剪。:人工检测表明,该方法是稳健的。在训练集中,6226个被自动裁剪。在测试集中,3864幅图像被自动裁剪。接下来,我们应用阴影灰色恒常性法与闵可夫斯基范数p = 6,沿用去年冠军方法。这一点特别重要,因为用于训练的数据集差别很大。此外,我们调整了数据集中较大图像的大小。我们把HAM10000分辨率作为参考和调整所有图像的长边为600像素同时保持长宽比。
  • meta data preprocessing 对于任务二,我们的方法使用全连接网络处理元数据。因此我们需要把数据编码为向量。对于解剖位置和性别,我们选择onehot编码。所以,解剖部位占8位特征,对于性别也一样。对于确实的样本,所有特征都设置成0,因为缺失的信息没有任何意义。我们把缺失值-5编码为0,也是训练集合设置的范围。为了解决缺失值编码问题,我们也考虑onhet编码年龄组,然而实验效果来看不如数字编码效果好。

2.3 深度学习模型

  • 整体方法:对于任务一,我们采用多种cnn来分类皮肤镜图像。对于任务二,我们的深度学习模型包含两部分,cnn来处理图像和全连接网络来处理元数据、方法描述如fig2。首先,我们在图像上训练cnn(任务一),然后固定cnn权重,拼接元数据网络。接下来,我们只训练元数据网络权重和分类层。我们首先描述cnn训练,然后描述元数据训练。
  • cnn架构:我们广泛依赖efficientNets(EN),该网络已经在imagenet数据上使用 autoaugment v0策略训练好。模型家族包含八个不同模型,结构都相似,是根据特定缩放规则来适应不同图像大小。最小的版本B0 使用标准输入244*244,更大的版本到B7增加输入尺寸,同时也扩张了网络宽度和深度。我们采用En B0到B6.对于最终模型集合的多变性,我们也使用了SENet154,和两个ResNet使用弱监督学习方法的变种预训练方法。
  • CNN数据增强:再输入给网络之前,我们使用数据增强方法。我们使用随机亮度和对比度改变,随机翻转,旋转,尺度缩放(恰当的padding和cropping),随机剪切。此外,我们使用CutOut【7】(翻译不明白)设置一个hole,且hole大小为16。我们尝试应用autoaugment v0策略,但没有获得更好的效果。
  • Cnn输入策略:我们采用不同的输入策略进行训练,将经过预处理的图像从原始大小转换为合适的输入大小。首先我们采用相同大小裁剪策略,也是去年使用的策略。这里我们随机裁剪一个预处理图像。然后,我们使用随机大小策略,该策略在ImageNet训练中很流行。这里,每个图像随机调整大小和尺度,然后在与处理中裁剪一个切片。
  • cnn训练:训练100个epochs,使用权重交叉熵损失函数,每个类别i的权重因子,
    N是训练样本总数量,Ni是类别i的样本数量。发现k=1效果最好。
  • 元数据架构:对于任务二,元数据输入两层全连接,每层256个单元。每层包括批归一化,relu激活函数,dropout p=0.4。网络输与cnn特征向量全局平均池化后进行拼接。然后再进行批归一化,relu和dropout。作为一个baseline模型,我们使用1024个神经元来扩充更大的模型,使用efficientNet的尺度规则来控制网络宽度,然后分类层也是如此。
  • 元数据增强:处理缺失值,我们编码特征的时候,随机把每个特征按照概率0.1编码成缺失值。我们发现这非常必要,因为未知类别的图像没有任何元数据。因此我们需要确保模型不要认为缺失值的和没有类别的数据是有联系的。
  • 元数据训练:cnn权重固定,利用如上描述的cnn增强策略,cnn仍然参与正向,cnn特征对每张图像固定。元数据层 两层神经网络与cnn特征拼接。训练50epoch,学习率lr 10e-5, batchsize 设置20.
  • 预测:对于固定大小的裁剪策略,按顺序采集36个裁剪,预测结果对每个裁剪进行平均。对于随机裁剪策略,每个图像16个预测,采用四个尺度,携带翻转处理。对于元数据,对每个裁剪使用相同的输入。
  • 集合策略:最终我们创建一个集合,包括所有训练的模型。我们选择最优子集,基于交叉验证来选择子集中的模型。

Skin Lesion Classification Using Ensembles of Multi-Resolution EfficientNets with Meta Data相关推荐

  1. A MULTI-TASK FRAMEWORK WITH FEATURE PASSING MODULE FOR SKIN LESION CLASSIFICATION AND SEGMENTATION

    摘要: 1.分割任务和分类任务是有联系的 2.设计了一个特征融合模块在分类分支和分割分支之间传递信息 3.有些信息是有用有些信息是无用的,所以设置了一个门函数来控制信息之间的传递 introducti ...

  2. Skin Lesion Classification Using CNNs with Patch-Based Attention and Diagnosis-Guided Loss Weighting

    2019年 我的总结,写在前面 该文章,参加HAM数据集的评测,内容是皮肤病分类诊断,解决两件事 1 图像中全局局部上下文融合 提出了多个patch子图的attention机制,融入了经典cnn架构中 ...

  3. 【论文阅读】Crop Classification in a Heterogeneous Arable Landscape Using Uncalibrated UAV Data

    期刊:remote sensing 日期:2018.6 发表单位:苏黎世大学遥感实验室地理系 目录 Abstract 1. Introduction 2. Material 2.1. Study Ar ...

  4. 图像整合到文件中_整合图像和表格数据以进行深度学习

    图像整合到文件中 I recently participated in the SIIM-ISIC Melanoma Classification competition on Kaggle. In ...

  5. (二十八:2021.01.10)MICCAI 2019 追踪之论文纲要(中)

    讲在前面 这部分是PART III和PART IV. 论文目录 PART III Neuroimage Reconstruction and Synthesis(神经图像重建与合成) 概要 1.Iso ...

  6. [论文翻译]测试时数据增强(TTA):Automatic Brain Tumor Segmentation using Convolutional Neural Networks with TTA

    论文下载: 地址 Automatic Brain Tumor Segmentation using Convolutional Neural Networks with Test-Time Augme ...

  7. (三十 :2021.01.11)MICCAI 2018 追踪之论文纲要(上)

    讲在前面 这部分是PART I和PART II. 论文目录 PART I Image Quality and Artefacts(图像质量和伪影) 概要 1.Conditional Generativ ...

  8. 【今日CV 计算机视觉论文速览 第114期】Thu, 9 May 2019

    今日CS.CV 计算机视觉论文速览 Thu, 9 May 2019 Totally 37 papers ?上期速览✈更多精彩请移步主页 Interesting: ?用于单图像人体形状重建的卷积网格回归 ...

  9. 一文探讨可解释深度学习技术在医疗图像诊断中的应用

    2020-10-20 14:39:24 机器之心分析师网络 作者:仵冀颖 编辑:Joni 本文依托于综述性文章,首先回顾了可解释性方法的主要分类以及可解释深度学习在医疗图像诊断领域中应用的主要方法.然 ...

最新文章

  1. 安卓开发环境之 Android Studio
  2. 2018年终总结—努力做一个有趣的人
  3. 如何查找涉密文件_企业如何处理涉密信息文件?这四点必知
  4. Linux系统的头文件和库文件搜索路径
  5. SAS Planet软件使用教程及下载Googlemap地图
  6. 西数云存储 重置 使用手册_如何重置IE浏览器(以IE8 为例),并添加信任网址...
  7. 史上超详细python爬取国家统计局数据
  8. 数据中心网络设计方案,数据中心网络规划设计
  9. 四、Springboot 整合Shiro---02认证---记住我
  10. 近期DDG挖矿病毒防护与分析
  11. /proc/cpuinfo参数说明查看CPU参数
  12. ubuntu18.04双系统解决进入桌面后鼠标和键盘失灵问题
  13. Camtasia v2021.18汉化屏幕录像软件教程分享
  14. ES 实现数据库or查询效果
  15. java 堆内存结构_基于JDK1.8的JVM 内存结构【JVM篇三】
  16. 项目1在线交流平台-4. 使用radis高性能储存方案-5.redis常用使用场景-开发关注功能-redis事务
  17. SAP ABAP-获取屏幕字段数据
  18. 计算机组成原理勘误,《计算机组成原理》勘误表.doc
  19. Navicat for MySQL(三叶草)破解工具
  20. 写一个简单的自动取款机c语言程序,C语言编程模仿银行ATM自动取款机功能

热门文章

  1. 小度之家SDK功能介绍
  2. 数组push方法使用 Uncaught TypeError: Cannot read property ‘push‘ of null
  3. 在线AI智能写春联工具
  4. SqlServer数据库异地服务器备份
  5. 微信小程序反编译工具wxappUnpacker使用
  6. 计算机士官学校,杭州士官学校官网
  7. Linux的libc库
  8. php日历css样式,css+html实现简单的日历
  9. Blender基本使用(个人笔记)
  10. GoogleTest单元测试学习