基于深度学习的人血涂片图片疟疾分类识别技术研究
2024-01-04王圣琪胡天寒许晶淼韩子卓
王圣琪,胡天寒,许晶淼,韩子卓
(皖南医学院,安徽 芜湖 241000)
0 引言
疟疾是由疟原虫寄生于人体引起的一种传染病。2018 年11 月发布的最新世界疟疾报告指出,相较于2016 年,2017 年的疟疾病例总人数增长了200 万左右。疟疾病例总数增多,表明了对于防控疟疾需要实施一套完整的体系,包括对于疟疾传播的防治和及时提供抗疟药物进行有效治疗[1]。疟原虫主要有5 类:恶性疟原虫(P.falciparum)、间日疟原虫(P.vivax)、三日疟原虫(P.malariae)、卵形疟原虫(P.ovale)和诺氏疟原虫(P.knowlesi),大部分疟疾是由恶性疟原虫和间日疟原虫诱发的[2-3]。
伴随着计算机技术的进步和医疗技术的发展,深度学习方法可以帮助人们分类疟疾,其中卷积神经网络(Convolutional Neural Networks,CNN),可以自动对疟疾进行分类识别,更好更方便快速诊断并治疗疟疾。在2015 年的IEEE 国际计算机视觉与模式识别会议上,何恺明等人提出了深度残差网络(ResNet)[4]。该网络使用残差结构,避免网络退化现象,神经网络的“深度”第一次达到了100层。在2018 年,Rajaraman 等人[5]使用的预训练模型是以卷积神经网络为基础的,进行图像特征提取后,评估了其对被感染和未感染细胞进行分类的能力。在文献[5]中,明确表述了在提取被感染细胞和未感染细胞特征方面,预训练卷积神经网络ResNet-50 与使用其他的预训练卷积网络相比,性能更为出色。本文使用ResNet-50 卷积神经网络架构对细胞图像进行分类,将感染的血涂片图像和未被感染的正常血涂片图像分成两类。
1 研究内容
1.1 数据集的选取
本文采用来自Lister Hill 国家生物医学交流中心(LHNCBC)的数据集,他们细心收集和标记了公开可用的健康和受感染的血涂片图像的数据集。将受恶性疟原虫感染的150 个病人的薄血涂片和50 个健康病人的薄血涂片使用吉姆萨染液进行染色,进行显微镜观察,同时使用内置摄像捕捉获取后,利用幻灯片阅读器标记,得到如下数据集,其中包含感染疟原虫的和未被感染疟原虫的(健康的)血细胞图像都为13 779张。图1是被寄生虫感染的细胞图像,图2是未被寄生虫感染的细胞图像。
图1 寄生虫感染的细胞图像
图2 未被寄生虫感染的细胞图像
1.2 图像预处理
在训练和测试模型的过程中,将使用大量图像数据用作支撑。使用图像预处理的方法,以此来使图像数据进一步优化,使获得的信息真实性和可靠性进一步提高。以下使用图像缩放、图像增强和灰度化3种预处理方法。
1)图像缩放:是指通过增加或减少像素来使图像的尺寸发生变化。将初始图像的大小通过缩放变换为125×125 像素。如图3 是未经过缩放处理的图像,图4是经过缩放处理后的图像。
图3 未经过缩放处理的图像
图4 经过缩放处理后的图像
2)图像增强:从训练数据集中载入现有图像,并且应用转换操作,例如旋转、裁剪、翻转等,使图像的视觉效果得到改善,有目标地提高图像整体或局部的清晰度,从而使图像变得更容易进行分析处理。由于这些随机转换,获取的图像不一样。
旋转:是指图片按照一个中心或者某一点进行一定角度的变换。如图5 是未经旋转的图像,图6 经过旋转处理图像。
图5 未经旋转的图像
图6 经过旋转处理的图像
裁剪:是将图片中的一部分单独剪切提取出来的操作。图7 未经裁剪的图像,图8经过裁剪处理的图像。
图7 未经裁剪的图像
图8 经过裁剪处理的图像
翻转:是指在目标图像平面或者空间按照一定角度进行旋转。图9是未经翻转的图像,图10为经过翻转处理的图像。
图9 未经翻转的图像
图10 经过翻转处理的图像
3)灰度化:是使彩色图像通道中的R、G、B三个分量的数值互等的过程,称之为灰度化图像。OpenCV以BGR或蓝、绿、红的顺序读取图像,上面显示的图像是蓝色的,实际的图片是粉色的。例如图11是原图经过编译运行cv2.cvtColor(img, cv2.COLOR_BGR2RGB)转换回RGB 顺序,结果如图12 所示,是RGB 读取的图像。
图11 BGR读取的图像
图12 RGB读取的图像(实际颜色)
1.3 模型的构建与训练
本文采用ResNet-50模型,ResNet-50网络结构图如图13所示。本文采用的ResNet-50模型进行训练,使用ImageNet数据集,此数据集是一个大型的图像分类数据集,符合模型要用大量图像数据训练的要求。通过迁移学习,可以很好地避免由于训练数据集的图片数以及测试数据集的样本数量不足,导致不理想的精度效果,造成过拟合现象问题。因此,用ImageNet预训练的模型来进行迁移学习,对模型的泛化能力和精度的提升都有重要意义[6]。
图13 ResNet-50网络结构图
2 实现结果的分析
2.1 设备配置
如表1 所示,该模型训练时用的设备配置。数据集按照训练集和测试集划分为7:3,在训练期间应用训练数据集,并采用测试数据集来检查模型的性能。
表1 设备配置
2.2 模型评估
评估模型使用准确性(Accuracy)、精确度(Precision)、召回率(Recall)和F1-Score 为其主要指标。表2为混淆矩阵,TP 是指分类器预测结果感染样本,实际也为感染样本,代表感染样本被正确识别的数量,FP表示分类器预测结果为感染样本,实际是未感染样本,代表误报的未感染样本数量,TN是指分类器预测结果为未感染样本,实际也为未感染样本,代表未感染样本被正确识别的数量,FN 表示分类器预测结果为未感染样本,实际为感染样本,代表漏报的感染样本数量。
表2 混淆矩阵
1)准确率(Accuracy)
准确率是指对于分类器预测正确的样本与总样本的比例。其计算公式如(1)所示:
2)精确度(Precision)
精确度是指实际为感染样本在分类器预测为感染样本中的概率,精确度等于分类器预测正确的感染样本数量与所有预测为感染样本数量之比,其计算公式如式(2)所示:
3)召回率(Recall)
召回率是预测正确的感染样本的概率,召回率等于分类器预测正确的感染样本数量与所有感染样本的总和之比,其计算公式如式(3)所示:
4)F1-Score
F1-Score 是一个平均数,是精确度与召回率进行平均的一个结果,它的最大值是1,最小值是0。其计算公式如(4)所示:
通过初步实验获得的准确率为98.93%、精确度98.95%、召回率98.93%,F1 Score 为98.93%,表3为本文使用的模型与其他方法的模型比较,从表3可以看出,使用ResNet-50 所获得结果比Basic CNN、VGG-19 Frozen和VGG-19 Fine-tune都要好。
表3 ResNet-50模型与其他方法的比较
2.3 实验结果分析
下面将训练过程中每个Epoch 的训练集Accuracy、Loss 以及验证集Validation Accuracy、Validation Loss,值绘制成曲线图,如图14 所示。其中Loss 为损失函数,用来表现预测与实际数据的差距程度。
图14 训练100次训练集和验证集Accuracy值和Loss值变化曲线图
从图14 的结果可以得出,当训练达到100 次时,准确率上升接近平稳,当Epoch=100 次时,准确率接近0.99。loss 值下降接近平稳,到Epoch=100 次时,loss值接近0,损失值较低。
为了更好地体现疟疾分类识别的结果,把原始图片放进分类识别系统进行分类,先识别细胞是否被感染,再分辨疟原虫的种类。系统界面如图15所示。
图15 分类识别系统
3 总结
疟疾是一种疟原虫感染人体内的红细胞而引起的疾病,疟原虫属于原生动物,属于传染病。本文将通过专业知识和实际操作,运用ResNet-50 模型与CNN 模型,VGG-19 Frozen 模型以及VGG-19 Finetune 对比,不断调整和修改加以优化后获得最优模型,然后设计一个疟疾分类识别系统,来判断和识别出细胞是否被感染以及感染的疟原虫种类。此系统可以提高诊断的效率和正确率,提升治疗的速度,还能解决医疗资源不足问题。