用FCN来分类皮肤病(应用类型的项目)

CNN解决皮肤病分类问题

来自(未来的科技)炼丹小白师的项目,希望大家喜欢!


目录

  • CNN解决皮肤病分类问题
  • 前言
  • 一、题目描述
  • 二、数据库
    • 1. 公开数据集:kaggle竞赛平台提供Datasets,Skin Cancer: Malignant vs. Benign
    • 2. 公开数据集:项目使用了阿里云天池数据集,该数据集包含ISIC 2019挑战赛的训练数据,它已经包含了前几年(2018和2017)的数据。ISIC 2019的数据集包含25,331张图像,可用于对9种不同诊断类别中的皮肤镜图像进行分类。每类数据样本数不同采用20%的部分作为测试。
  • 三、任务建模
    • 1.数据预处理部分
    • 2.模型选择部分
    • 3.模型训练部分
    • 4.模型优化部分
  • 四、评价指标
  • 五、实验过程和讨论分析
    • 2 基于ResNet-50分类
  • 六、总结
    • 1 Resnet50使用心得
    • 2 FCNN的使用心得
  • 七、参考文献
  • 看到这里的您,为您准备了一颗大彩蛋


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目描述

皮肤作为人体免疫系统的第一道防线,对人体疾病防护有着非常重要的作用。现如今社会,由于环境,饮食等问题,皮肤病的发病率逐渐增高,病种也越来越多。目前已知的皮肤病有四千多种,而黑色素瘤、基底细胞癌等癌症肿瘤类是恶性程度最高、发病率增长最快的,相比于其他实体瘤,其致死年龄更低,缺乏特效治疗。因此,早期诊断和治疗极其重要,所以当下皮肤检测技术越来越受社会关注。然而,正确诊断一种皮肤病具有挑战性,由于皮肤科专家的不同经验,用皮肤病镜像图片鉴别的皮肤病可能是不准确的。在实践过程中,专家通过对黑色素瘤皮肤病镜像图片的诊断准确率达到75%到84%之间。但是由于诊断具有严重的主观性,不同的专家差异可能很大,导致专家诊断具有一定的局限性。
要求:
1、实现典型皮肤病识别。可根据采集的图片选择哪些典型的皮肤病纲入识别范围,识别结果中应包含正常类别。
2、须包含图片的预处理,并给出预处理操作对识别结果的影响分析。
3、要采用至少三种深度学习模型进行识别,其中至少一种为近5年提出的方法,识别准确率应高于85%。
4、要设计充分的实验,例如模型参数的选择、模型的鲁棒性、各模型之间的对比、数据集的比较、模型对特殊图片(模糊、暗光、脏污等)的识别效果等,并对结果进行详细的分析。

二、数据库

1. 公开数据集:kaggle竞赛平台提供Datasets,Skin Cancer: Malignant vs. Benign

每类数据样本数不同采用20%的部分作为测试。

2. 公开数据集:项目使用了阿里云天池数据集,该数据集包含ISIC 2019挑战赛的训练数据,它已经包含了前几年(2018和2017)的数据。ISIC 2019的数据集包含25,331张图像,可用于对9种不同诊断类别中的皮肤镜图像进行分类。每类数据样本数不同采用20%的部分作为测试。

冲鸭:——> 数据集传送门

三、任务建模

本次任务建立一个用于分类皮肤病数据的模型,并以此为基础去实现皮肤病种类识别。用FCN来分类皮肤病(应用类型的项目)_第1张图片本次任务分为四个部分:

1.数据预处理部分

对于图片精确获取ROI区域,对比10类皮肤病样本特征,我们本打算对其做图像级特征分析,经过前期分析,我们得到几个强特征,如病变区域边缘及内容,而强干扰特征如:毛发信息等。
综上所述,我们提出了一种采用ostu阈值自动分割的方法将毛发噪声磨平,并借此将病变特征强化,并更强化深度学习模型。

2.模型选择部分

我们的方法采用先易后难,采用FCNN、Faster-CNN、YOLO-v5深度学习模型作为基础模型,首先检验效果,我负责FCNN的架构和训练,效果训练的准确率近乎于60%,不合于当前效果,故后期做了提升。

3.模型训练部分

我们采用GPU机器进行训练
采用的GPU型号如下:
NVIDIA Geforce RTX1050Ti
NVIDIA Geforce RTX2080Ti
NVIDIA Geforce RTX3080Ti
NVIDIA Geforce RTX3090Ti
随着型号显卡的升级,我们的训练时间也相应缩短,从而提供给我们优化的基础。

4.模型优化部分

模型优化我们采用增加一层带权重的block层,从而大幅度降低梯度,更改预处理部分并且增强图片内容特征,根据网络内部结构,从而使模型更为注意病变区域。从而将准确率提高了10%,前一阶段的过拟合问题也得到了解决。

四、评价指标

Time 单批次运行时间
ACC 准确率
Val_accuracy 测试集准确率
Loss 损失函数
Val_Loss 测试集损失函数

五、实验过程和讨论分析

详细架构如下:
采用Relu作为激活函数,防止出现梯度下降的情况,ReLu函数的改进就是它使得保证深层梯度传递到浅度。
采用Adam作为优化器,目的在于Adam在深度学习领域是一种很受欢迎的算法,因为它能很快取得好的成果。实证结果表明:在实践中,Adam的工作表现良好,并优于其他随机优化方法。在原论文中,通过实证证明了该方法的收敛性满足了理论分析的期望。Adam采用了逻辑回归算法,利用大型模型和数据集,Adam可以有效地解决实际的深度学习问题。边缘特征和内容特征将在第一层之中得到Dropout收敛,并在flatten层压缩特征,在dense层进行分类。
用FCN来分类皮肤病(应用类型的项目)_第2张图片

Adam 迭代公式过程如下:
用FCN来分类皮肤病(应用类型的项目)_第3张图片

分类结果如下:
用FCN来分类皮肤病(应用类型的项目)_第4张图片
用FCN来分类皮肤病(应用类型的项目)_第5张图片

根据trainacc与testacc的结果与train-loss与test-loss出现的结果,由此证明前期阶段出现过拟合,故提出来改进方案,一个是提高准确率的方法,第二是削弱前期的过拟合问题。
基于OSTU阈值自动分割后,将训练数据图片分离三通道并减去OSTU阈值再合并,使图片的特征更为明显,由此增强了深度学习模型学习病变内容的特征学习效率。
用FCN来分类皮肤病(应用类型的项目)_第6张图片

          	原图										

用FCN来分类皮肤病(应用类型的项目)_第7张图片

预处理后图片

改进预处理部分的训练效果如下:
用FCN来分类皮肤病(应用类型的项目)_第8张图片
用FCN来分类皮肤病(应用类型的项目)_第9张图片

2 基于ResNet-50分类

输入同上,前期加载预训练模型。池化层定义为平均池化。ResNet-50,数字代表的是网络的深度,50指定的是带有权重的50层,包括卷积层和全连接层,不包括池化层和BN层。ResNet及其变体网路系列,对于一般的图像识别任务表现优异,要根据具体在皮肤病特征信息,进行具体网络结构改进,如增加权重,更改激活函数等。但是考虑到梯度问题,而且对于训练Resnet网络自身前期训练就可以的到结果。[1]采用的resnet50方法及应用领域,在皮肤特征上也可使用。
Loss函数数学公式:

在这里插入图片描述
在这里插入图片描述
训练效果如下:
在这里插入图片描述
用FCN来分类皮肤病(应用类型的项目)_第10张图片
用FCN来分类皮肤病(应用类型的项目)_第11张图片


六、总结

1 Resnet50使用心得

梯度弥散(当使用反向传播方法计算导数的时候,随着网络的深度的增加,反向传播的梯度(从输出层到网络的最初几层)的幅度值会急剧地减小。结果就造成了整体的损失函数相对于最初几层的权重的导数非常小。这样,当使用梯度下降法的时候,最初几层的权重变化非常缓慢,以至于它们不能够从样本中进行有效的学习)和梯度爆炸(差梯度在网络训练时被用来得到网络参数更新的方向和幅度,进而在正确的方向上以合适的幅度更新网络参数。在深层网络或递归神经网络中,误差梯度在更新中累积得到一个非常大的梯度,这样的梯度会大幅度更新网络参数,进而导致网络不稳定。在极端情况下,权重的值变得特别大,以至于结果会溢出(NaN值,无穷与非数值)。当梯度爆炸发生时,网络层之间反复乘以大于1.0的梯度值使得梯度值成倍增长),这两点常常困扰着卷积神经网络的设计者和使用者,也成为人们不得不思考的问题。但是所幸的是,一些网络的出现很好的解决了这些问题。Resnet就有效的解决了这个问题。Resnet的提出目的并不是为了解决梯度弥散,有效的消除梯度弥散(意外收获)。卷积神经网络(CNN),导致depth随着层数增加,就出现了学习退化的问题。

2 FCNN的使用心得

配合学习[4]的方法,启发了我对传统FCN的改进方法。对于传统的CNN网络在卷积层后使用全连接层得到固定长度的特征向量进行分类(全连接层+SoftMax输出)不同,FCNN网络可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样,使它恢复到与输入图像想通的尺寸,从而可以对每个像素都产生了一个预测,同时保留了原始输入图像的空间信息,最后在上采样的特征图上进行逐像素分类。最后逐个像素计算softmax分类的损失,相当于每一个像素对应一个训练样本。

七、参考文献

[1]宋京,段惠斌 . 基于改进卷积神经网络的手势识别 [J]. 物联网技 术,2020,10(7):26-27.
[2] KRIZHEVSKY A,SUTSKEVER I,HINTON G. Imagenet classification with deep convolutional neural networks [J]. Advances in neural information processing systems,2012,25(2).
[3] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition

欢迎大家学习交流,附上小白师的QQ用FCN来分类皮肤病(应用类型的项目)_第12张图片

看到这里的您,为您准备了一颗大彩蛋

最近在Kaggle上打比赛,这是传感器压力预测的相关特征的展示图!
采用树模型分析的哦!详细教程很快就和大家见面了!!!!!
用FCN来分类皮肤病(应用类型的项目)_第13张图片

你可能感兴趣的:(深度学习,人工智能,python)