龙空技术网

「洞幺邦」基于深度学习的新冠肺炎X射线图像分类

洞幺邦 129

前言:

此刻姐妹们对“resnet50和vgg16比较”大致比较关怀,兄弟们都需要剖析一些“resnet50和vgg16比较”的相关资讯。那么小编也在网络上汇集了一些关于“resnet50和vgg16比较””的相关文章,希望看官们能喜欢,朋友们快快来学习一下吧!

一、项目背景

目前,新型冠状病毒肺炎已在全球多国蔓延,甚至出现了病例的爆炸性增长,然而,受过专业训练的医师却是有限的,这导致新冠病毒肺炎患者在诊治时效率低下,在有效时间内缺乏有经验的医师对患者的情况进行及时的判断。

X射线是一种波长极短、能量很大的电磁波。X射线具有穿透性,但人体组织间有密度和厚度的差异,当X射线透过人体不同组织时,被吸收的程度不同,经过显像处理后即可得到不同的影像。因此,根据X射线得到的患者肺部图像,可以很好的评估患者的健康状况。

为了弥补专业医师数量不足导致的诊治效率低下的情况,如果能够设计一个智能信息处理系统,达到对患者的X射线图像智能分类,则会大大提高医师的诊治效率。

深度学习作为一种新兴的智能信息处理方法,能够自动提取数据中的高区分度特征,目前已被广泛应用于图像分类等领域中。在本次实验中,我将深度学习方法应用于新冠肺炎X射线图像分类,并取得了很好的效果。

二、实验内容

2.1认识数据

本次实验采用了Kaggle平台的covid_data_gradientCrescent数据集(),数据为正常人与新冠肺炎患者的X射线图像,并分为训练集与测试集,基本情况见表1.

下图展示了数据集中一个正常人的X射线图像与一个新冠肺炎患者的X射线图像:

2.2 数据预处理

通常,对图像做合适的预处理往往能够提升模型的训练效果,因此,在本次项目中,我对样本进行了一系列的数据预处理。此外,深度学习方法往往需要通过大量的样本进行学习,然而,在本次项目中,我们的样本数量并不充分(训练集仅有130个图像样本),对此,我还对训练集采用了数据增强,如随机旋转等方法。

具体地,我将数据预处理的方法总结如下:

· 去均值化:对输入的图片中的每个通道减去每个通道对应均值;

· ZCA白化:降低了图像特征之间的相关性;

· 随机旋转:我们首先对图像进行了随机旋转,旋转范围设置为50°;

· 错切变换:错切变换的范围设置为0.25;

· 随机缩放:随机缩放的范围设置为0.10;

· 随机通道转换:随机通道转换的范围设置为20。

2.3 模型训练

在本项目中,我们采用了三种主流的神经网络进行了尝试,分别是:VGG16,AlexNet,ResNet50。并采用了迁移学习的模式,以ImageNet训练后的权重为基础,利用X射线图像将网络微调,以适应新的图像分类任务。

2.3.1 验证集划分

由于本项目使用的数据中只包含了训练集与测试集,为了防止过拟合现象,我在训练集中随机划分了80%样本作为验证集,并利用早停法来对模型进行选择(当验证集的AUC连续10个epoch不再上升时,停止训练并返回最优模型)。

2.3.2 VGG16

· 网络层简介:13个卷积层,5个最大池化层。在此基础上,我又添加了一个Flatten层和两个全连接层;

· 网络层维度:额外添加的全连接层维度分别为256与1;

· 优化方法:Adam优化方法;

· 损失函数:二分类交叉熵;

· 学习率:0.0001。

2.3.3 AlexNet

· 网络层简介:5个卷积层,5个零池化层,3个最大池化层。在此基础上,我又添加了两个全连接层;

· 网络层维度:额外添加的全连接层维度分别为256与1;

· 优化方法:Adam优化方法;

· 损失函数:二分类交叉熵;

· 学习率:0.0001。

2.3.4 ResNet50

· 网络层简介:ResNet50相较VGG16和AlexNet而言,网络更深。在ResNet50的基础上,我又添加了一个Flatten层和两个全连接层;

· 网络层维度:额外添加的全连接层维度分别为256与1;

· 优化方法:Adam优化方法;

· 损失函数:二分类交叉熵;

· 学习率:0.0001。

2.4 实验结果

在本次项目中,我们尝试了上述三种网络模型:VGG16,AlexNet,ResNet,并对结果进行了比较,具体结果如下表:

根据上表可以发现,VGG16在此次实验中取得了最好的效果。经过思考,我认为VGG16提取到的特征对新冠肺炎患者的X射线图像更有区分性。

此外,我们对VGG16训练过程进行了可视化:

图3 训练过程中的准确率变化 图4 训练过程中的损失函数变化

最后,我们利用t-SNE方法对学习到的特征降维,进行了可视化:

图5 t-SNE效果图

经过观察可以发现,VGG16提取到了非常有区分性的特征。

标签: #resnet50和vgg16比较