赞
踩
摘要
通过使用疟疾患者的薄血膜图片作为数据集进行深度学习训练,可以得到判断疟疾是否存在的一个训练模型。在实际使用时能够针对待测样本进行图像分析,判断该样本是否属于疟疾病人的样本,可以实现对疟疾的快速诊断。在欠发达地区,这项技术可为当地群众提供准确快速的疟疾诊断,弥补当地医疗资源短缺和人手不足的问题。能有效进行疟疾的诊断同时也为后续的治疗提供帮助。
01
项目设计
1.1.1简介
在本项目中使用的模型为Vision Transformer(ViT),以下简称为ViT。ViT是2020年Google团队提出的将Transformer应用在图像分类的模型,虽然不是第一篇将Transformer应用在视觉任务的论文,但是因为其模型"简单"且效果好,可扩展性强(scalable,模型越大效果越好),成为了Transformer在CV领域应用的里程碑著作。ViT是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。
ViT模型的主体结构是基于Transformer模型的Encoder部分(部分结构顺序有调整,如:Normalization的位置与标准Transformer不同),其结构图如下:
ViT模型主要应用于图像分类领域。因此,其模型结构相较于传统的Transformer有以下几个特点:
数据集的原图像被划分为多个patch后,将二维patch(不考虑channel)转换为一维向量,再加上类别向量与位置向量作为模型输入。
模型主体的Block结构是基于Transformer的Encoder结构,但是调整了Normalization的位置,其中,最主要的结构依然是Multi-head Attention结构。
模型在Blocks堆叠后接全连接层,接受类别向量的输出作为输入并用于分类。通常情况下,我们将最后的全连接层称为Head,Transformer Encoder部分为backbone。
Transformer模型源于2017年的一篇文章。在这篇文章中提出的基于Attention机制的编码器-解码器型结构在自然语言处理领域获得了巨大的成功。模型结构如下图所示:
其主要结构为多个Encoder和Decoder模块所组成,其中Encoder和Decoder的详细结构如下图所示:
Encoder与Decoder由许多结构组成,如:多头注意力(Multi-Head Attention)层,Feed Forward层,Normalization层,甚至残差连接(Residual Connection,图中的"Add")。不过,其中最重要的结构是多头注意力(Multi-Head Attention)结构,该结构基于自注意力(Self-Attention)机制,是多个Self-Attention的并行组成。
该模型训练所用数据集来自于National Library of Medicine,以下为数据集下载链接https://lhncbc.nlm.nih.gov/LHC-research/LHC-projects/image-processing/malaria-datasheet.html。获得数据集后需根据昇思MindSpore的数据集进行预处理。在导入数据后,需要构建ViT模型。以下为模型构建流程示意图:
完整训练ViT模型需要很长的时间,实际应用时建议根据项目需要调整epoch_size。本次项目中受限于算力,相关参数的设定epoch_size = 10、momentum = 0.9、num_classes = 1000。以下为训练过程展示:
1、该模型使用业界通用的评价标准Top_1_Accuracy和Top_5_Accuracy评价指标来评价模型表现。该评价标准定义为:
Top-1:Accuracy是指排名第一的类别与实际结果相符的准确率,就是你预测的label取最后概率向量里面最大的那一个作为预测结果,如过你的预测结果中概率最大的那个分类正确,则预测正确。否则预测错误。
Top-5:Accuracy是指排名前五的类别包含实际结果的准确率,就是最后概率向量最大的前五名中,只要出现了正确概率即为预测正确。否则预测错误。
以下为本项目的模型评价结果。
通过上图可知:Top_1_Accuracy=0.8081、Top_5_Accuracy=1.0。可知该模型具有优良的准确性。
2、输出效果图展示
02
昇思MindSpore安装
首先在昇思MindSpore官网安装页面(http://mindspore.cn/install/)寻找合适计算机系统的版本。
注意,本次项目使用的版本为2.1.0,以下为pip安装命令:
- $pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.1.0/MindSpore/
- unified/x86_64/mindspore-2.1.0-cp38-cp38-linux_x86_64.whl --trusted-host
- ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
复制
03
项目使用方法
1、本项目结构如文件所示。
data文件夹即数据集,里面包含测试集test以及数据集train。
2、ViT文件夹即网页中展示的已经训练好的模型。
3、python文件:如文件名字所示,test即为测试程序,train即为训练程序,verify即为验证程序。
4、如果是新手,记得在使用前修改其中的文件地址,一般情况下,报错大概率是由于环境配置错误(版本错误)或者文件地址修改错误(漏了地址没有修改或者/ \两个符号没有变换)等等。
5、如果有问题欢迎交流。
6、本项目完全开源,使用了MIT协议即:允许他人修改源代码后再闭源,不用对修改过的文件做说明,且二次开发的软件可以使用原作者的名字做营销。
04
总结
通过昇思MindSpore实现本项目的数据处理、模型训练、模型推理等等内容。通过本次项目所训练出的模型评价为Top_1_Accuracy=0.8081、Top_5_Accuracy=1.0。可知该模型具有优良的准确率。当输入图片进行推理时可以看出其预测的结果。
通过本次基于深度学习的疟疾病理切片的判读项目的学习与时间,掌握了深度学习计算机环境的搭建以及学习了Vision Transformer框架。
该项目可以根据昇思MindeSpore搭载于硬件开发板上进行推理应用,具体可以根据官网文档进行操作,这里由于时间关系没有制作,如果有感兴趣的读者可以进行深度的开发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。