融合注意力机制与DenseNet的胸部X光片肺炎检测算法
2023-09-24盛承光
盛承光
(深圳信息职业技术学院应用外语学院,深圳 518172)
0 引言
X 光穿透照射图像(X 光片)与计算机断层扫描(computed tomography, CT)是诊断肺炎的常用手段,其中CT 检查技术虽然比较先进,但价格昂贵,在实际使用过程中受到一定程度的限制,而X 光片以其成本低、辐射少等优点,已成为国内外应用最为广泛的影像学检查手段之一,这可以协助医生快速诊断患者是否患有肺炎。但仍需要有专业经验的医生进行仔细阅片与诊断,非常费时费力[1]。计算机辅助诊断(computeraided diagnosis, CAD)技术是解决这一问题的有效手段之一。
传统的CAD 系统大多使用基于手工提取特征的机器学习技术,尽管在肺炎X 光片的检测任务中取得了一些成果,但仍存在严重依赖人工设计特征、检测精度较低等问题。近年来,深度学习在计算机视觉领域发展迅速、表现不俗,其利用卷积神经网络(convolutional neural networks,CNN)可以在不同的层次上自动学习低级到高级的图像特征的优势,克服了传统机器学习方法需要人工提取特征的局限,成为肺炎X光片CAD系统的主流手段。其中,Ozturk等[2]提出了Dark-Net算法,基于肺部X光图像自动检测COVID-19 患者,并在COVID-19 和普通肺炎的分类中取得了98.08%的准确率,在COVID-19阳性、普通肺炎、正常三类实验中,准确率为87.02%。Wang 等[3]基于迁移学习的思想和CNN算法提出了COVIDNet,对胸部X 光片进行分类,得到93.3%的准确率。
本文提出了一种融合注意力机制与Dense-Net的胸部X 光片肺炎检测算法,可以高效准确地对正常胸片和携带不同肺炎的患者胸片进行检测和分类,其利用注意力机制关注图像重要病变区域而忽视无关的背景信息,以获取更显著的和有识别力的图像特征。
1 网络结构
近年来,注意力机制广泛应用于计算机视觉领域,其可以帮助网络聚焦图像的重要特征,抑制不必要的区域响应。基于此,本文将通道-空间注意力[4]和DenseNet121[5]进行整合用于胸部X光片肺炎检测,其网络结构如图1所示,主要是由DenseNet121 和通道-空间注意力模块这两部分组成。
图1 本文网络结构
给定一张X 光片图像,利用DenseNet121 的强大特征提取能力学习到的高级图像特征图F∈RC×H×W,作为注意力机制模块的输入。通道-空间注意力模块在通道和空间两个维度上序列化地生成注意力特征图,即1D 通道注意力特征图Wc∈RC×1×1与2D 空间注意力特征图Ws∈R1×H×W。然后,这两种注意力特征图在与之前原输入特征图F进行相乘进行自适应特征修正,输出最后的注意力特征F′′。上述过程可以描述如下:
其中,∘表示点积,中间采用广播机制进行维度变换与匹配。
通道注意力机制特征图的每个通道都用来被视作一个特征检测器,通过学习特征内部之间的关系以聚焦和区分图像中有用的信息。具体实现是通过平均池化与最大池化方法压缩特征图的空间维度计算通道注意力特征,产生了两种不同的空间上下文信息:平均池化特征和最大池化特征。然后,将这两种池化特征输入到一个共享的多层感知机(multi-layer perceptron,MLP)以生成通道注意力特征图Wc:
通过建模特征图空间内部的关系来产生空间注意力特征图。不同于通道注意力,空间注意力聚焦于特征图上的有效信息所在区域。为了计算空间注意力,首先在通道维度平均池化和最大池化,然后将他们产生的特征图拼接起来。在拼接后的特征图上,使用卷积操作来产生最终的空间注意力特征图。类似于通道注意力,使用两种池化方法生成2D 特征图:∈R1×H×W和∈R1×H×W,最终这个过程的公式如下:
最后,所提取到注意力特征用于胸部X 光片肺炎分类。
2 实验与结果分析
2.1 实验环境及数据集
本文实验基于PyTorch1.6.0 深度学习框架,采用Python3.6.8 语言在Jupyter notebook 代码编辑器上完成搭建。选取由Kaggle 网站提供的21165 张肺部X 光图像数据集(https://www.kaggle.com/datasets/tawsifurrahman/covid19-radiographydatabase)进行模型训练和测试,该肺炎数据集包括四个类别:3616 张COVID-19、6012 张Lung_Opacity、1345 张Viral Pneumonia 和10192张Normal,具体划分方法见表1。在训练过程中,输入网络的X 光胸片大小设置为224×224,采用ADAM[6]作为优化器,批量大小设置为64,学习率为0.001,共训练100个epoch。
表1 数据集具体划分
2.2 评价指标
本文采用准确率(Accuracy)、召回率(Recall)、精确率(Precision)和F1-score 作为胸部X 光片肺炎检测任务的评价指标,具体计算方式如下:
式中:TP为正确分类的正样本数;TN为正确分类的负样本数;FP是错误分类的正样本数;FN是错误分类负样本的数量。
2.3 实验结果分析
为验证本文所提出方法的有效性,将其与现有卷积神经网络分类模型进行比较,包括VGG16[7]、VGG19[7]、ResNet34[8]和ResNet50[8]。从表2可以看出,所提出方法的各项评价指标都展现了良好的性能,优于其他模型,其准确率、召回率、精确率和F1-score 值分别为94.40%、95.09%、95.42%和95.23%,相比于ResNet50,分别提升了0.61、0.88、0.41 和0.63 个百分点。此外,绘制了混淆矩阵直观地观察网络对四个类别的分类效果,如图2 所示。在混淆矩阵中,对角线上的数字代表每个类别正确分类的样本个数,对角线上数值越大说明分类越准确。实验结果证实了所提出算法能够利用通道-空间注意力机制,提升网络的特征表达能力,使网络更能关注到图像中的具有辨识性的病变区域,达到了更高的识别效果。
表2 实验结果对比
图2 混淆矩阵
3 结语
本文提出了一种基于融合注意力机制与DenseNet 的X 光片肺炎检测算法,该算法使用DenseNet121 提取的高级图像特征图作为注意力模块的输入,然后采用注意力机制学习通道-空间注意力权重,并将其应用于所提取的特征图,以聚焦图像的重要特征、抑制不必要的区域响应,促使网络关注病变区域,增强网络模型对不同肺炎差异特征的提取和识别能力。实验结果表明,与其他分类算法相比,本文所提出算法能够对肺炎疾病进行高效识别,具有更高的识别性能。