新型冠状病毒肺炎肆虐全球,为了更加快速地诊断新型冠状病毒肺炎(COVID-19),本文提出一种深度可分离稠密网络 DWSDenseNet,以 2 905 例 COVID-19 胸部 X 线平片影像作为实验数据集,在网络训练前使用限制对比度自适应直方图均衡化(CLAHE)算法对图像进行预处理,增强图像的对比度,将预处理之后的图像放入训练网络中,采用 Leaky ReLU 作为激活函数,调整参数以达到最优。本文引入 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型进行比较,所提出的网络在三分类实验中相较于 ResNet34 在准确率、灵敏度和特异性上分别提高了 2.0%、2.3%、1.5%。相对于改进前的 SDenseNet 网络,本文模型的参数量减少了 43.9%,但分类效果并未下降。通过对比实验可以发现,本文所提出的深度可分离稠密网络对 COVID-19 胸部 X 线平片影像数据集具有良好的分类效果,在保证准确率的情况下,深度可分离卷积能够有效地降低模型参数量。
引用本文: 冯毅博, 仇大伟, 曹慧, 张俊忠, 辛在海, 刘静. 基于深度可分离稠密网络的新型冠状病毒肺炎 X 线图像检测方法研究. 生物医学工程学杂志, 2020, 37(4): 557-565. doi: 10.7507/1001-5515.202005056 复制
引言
自 2019 年末新型冠状病毒被发现以来,新型冠状病毒肺炎(coronavirus disease 2019,COVID-19,以下简称新冠肺炎)疫情迅速在全球暴发。截止 2020 年 4 月 19 日,全球超过 200 个国家及地区出现新冠肺炎确诊病例,累计确诊人数达到 216 万,各个国家和地区的医疗体系都面临巨大的挑战,许多国家纷纷出现了缺物资、缺人力、缺技术等问题[1]。新冠肺炎传染性极强,人群普遍易感,有基础疾病的患者容易发展为重症,出现呼吸衰竭等症状[2],这种特性使得新冠肺炎患者往往出现聚集性感染,在短时间内大量涌入医院。控制疫情的关键是将普通肺炎患者与新冠肺炎患者区分开来,对新冠肺炎患者应收尽收,阻断病毒的传播路径。在这种情况下,对新冠肺炎的快速鉴别就显得尤为重要,对社会来说,如果无法快速地鉴别出新冠肺炎患者,就会导致病毒的二次传播,短期内出现大量的聚集性病例;对医疗机构来说,一套行之有效的快速检测方法能够极大地减缓医疗压力,快速的新冠肺炎检测方法使得医院能够早发现、早隔离、早治疗,降低医疗人员的感染风险;对有基础性疾病的患者来说,新冠肺炎病毒在短期内会使得患者快速地转化为重症,尽早发现和治疗能够抑制患者从轻症转化为重症。
胸部影像学检测是新冠肺炎的检测手段之一[3],影像学检测依赖于影像科医生的判断,但短时间内大量的患者涌入医院,会导致影像科医生出现人手短缺以及工作疲劳等问题,而自动化的新冠肺炎检测方法可以帮助医生解决上述问题。近年来,随着医疗影像数据的公开,深度学习在医学影像上的应用越来越广泛,尤其是卷积神经网络在医学图像处理上取得了非常优异的成果[4]。利用卷积神经网络可以提取到医学图像中的高维信息,提高诊断的准确率。卷积神经网络模型众多、结构复杂,梁蒙蒙等[5]分析了卷积神经网络的发展历程,并对卷积神经网络的结构与其在医学图像处理中的应用进行了系统性的总结。卷积神经网络在医学诊断中的应用相当广泛,韩坤等[6]使用多模态图像信息对阿尔兹海默症进行分类诊断,提出了一种基于卷积神经网络的模型,对模态特征信息进行融合,得到了 95% 的准确率。李端等[7]使用深度残差网络对心电信号进行识别,结合小波自适应阈值滤波和 DR-CNN 的算法识别心电信号,取得了较高的准确率。黄盛等[8]提出了一种改进的深度残差网络用来对肺部计算机断层扫描(computed tomography,CT)图像进行分类,通过迁移学习的方法减小神经网络对大数据量的要求。刘一鸣等[9]使用 LUNA16 数据集,提出了一种基于卷积神经网络的肺结节检测办法,采用了一套肺部 CT 图像的预处理方案,所提出的模型准确率达到了 92.3%。Narin 等[10]从 Joseph Cohen 等分享的新冠肺炎数据集获得 50 张新冠肺炎的 X 线影像,从 chest X-ray images 数据集中获得 50 张正常肺部 X 线影像,构建了一个 100 张 X 线影像的数据集,使用 ResNet50 模型进行分类,准确率达到 98%。Jin 等[11]基于一个包含了 723 张新冠肺炎检测阳性和 413 张新冠肺炎检测阴性的 CT 影像数据集,提出一种联合 UNet++与 ResNet50 的模型用于新冠肺炎的诊断,达到 97.4% 的准确率。Shi 等[12]对当前人工智能技术在诊断新冠肺炎中的应用进行了系统性的回顾,分析了 87 篇有关新冠肺炎研究的论文,涵盖了新冠肺炎涉及的医学影像分析技术的所有流程,包括图像采集、分割、诊断等内容。X 线平片是传统的影像学检查手段,可用于扫描骨折、肿瘤、肺部感染等症状,虽然 CT 检查是较为先进的医学影像检查技术,可以帮助影像科医生进行细致的分析[13],但 X 线平片费用低廉,相较于 CT 检查更加便捷,可帮助影像科医生快速判断患者是否为新冠肺炎患者,因此使用深度学习的方法对 X 线平片图像进行自动识别是非常有必要的。
在新冠肺炎的影像学诊断中,常常混杂着新冠肺炎影像、普通肺炎影像和正常肺部影像,因此本文采用了包含这三个类别的共 2 905 张胸部 X 线平片图像的数据集。深度学习模型往往参数量庞大,使用深度可分离卷积(depthwise separable convolution)可以有效地降低参数量。因此,本文提出了一种深度可分离稠密网络 DWSDenseNet,其中 DWS 表示深度可分离卷积,由于是在稠密连接网络(DenseNet)基础上改进,故命名为 DWSDenseNet,加入改进的深度可分离卷积层以减少参数量,使得卷积神经网络更加轻量化,以期为新冠肺炎的早期筛查提供较为准确的辅助诊断意见。
1 实验方法
本文提出了一种基于改进的卷积神经网络的新冠肺炎检测方法,该检测方法运用图像预处理技术联合深度学习中卷积神经网络的相关算法对新冠肺炎进行检测,方法的流程图如图 1 所示。

1.1 图像预处理
本实验所用的肺炎分类数据集包含了 2 905 张胸部 X 线图像,每张图像的大小为 1 024 × 1 024,由于 X 线图像的对比度差、亮度低等问题,本文使用限制对比度自适应直方图均衡化(contrast limited adaptive histogram equalization,CLAHE)算法对 X 线图像进行预处理。CLAHE 算法能够突出胸部 X 线图像的内部细节,抑制噪声,更好地保存 X 线图像中的病灶信息。CLAHE 算法的实现步骤如下所示[14]:
(1)将胸部 X 线图像分为 M × N 个不重叠的图像块。
(2)计算每个分割后的图像块的灰度直方图,将图像块的像素平均到各个灰度级,灰度级的平均像素数 可由下式求出。
![]() |
其中 Ng 是图像块中灰度级的数量,Nxp 是图像块 x 轴方向的像素数,Nyp 是图像块 y 轴方向的像素数。
(3)将灰度直方图中大于 NL 的值截掉,NL 可以由下式求出:
![]() |
其中 S 为截取系数。求出截取部分的像素数,再求出截取到的像素总数平均到每个灰度级的像素数。
(4)直方图均衡化。对每个图像块的直方图进行均衡化,利用变换函数得到变换后的灰度值。图 2 是 X 线图像经过 CLAHE 算法处理前和处理后的对比。

1.2 DWSDenseNet 网络
传统的图像处理是由手工提取图像特征结合机器学习完成[15],手工提取图像特征的能力有限,往往不能很好地表达图像的复杂特征。随着深度学习的发展,尤其是卷积神经网络的出现,打破了传统的手工提取图像特征的方式。卷积神经网络是一种前馈神经网络,在图像处理方面的表现尤为突出,能够将大数据量的图片降维到小数据量,并有效地保存图像的深层特征。卷积神经网络使用反向传播算法进行训练,极大地提高了图像分类的准确度。卷积神经网络一般由卷积层(convolutional layer)、池化层(pooling layer)、全连接层(fully connected layer)组成[16],如图 3 所示。

最经典的卷积神经网络 LeNet 出现在 1998 年,应用于手写数字识别[17]。在以往的神经网络中,往往使用多个全连接层作为分类器,但全连接层的参数量较大,且容易产生过拟合,在 NIN 网络中[18]使用全局平均池化层(global average pooling)来代替全连接层,有效地减少了网络的参数。随后出现的 DenseNet 采用了一种非常密集的连接方式[19]。传统的 DenseNet 网络层数较深,参数量庞大,Huang 等[20]提出了一种改进的 PCANet 联合简化的 DenseNet 的混合网络,在多种医学图像分类上取得了很好的效果,其中简化的 DenseNet 网络被命名为 SDenseNet 网络,本文模型即在此基础上进行改进。
深度可分离卷积将所处理图像的对应区域和通道拆分处理,首先处理区域特征然后考虑通道特征。深度可分离卷积最早由 Sifre 等[21]提出,刘媛媛等[22]将其用于复杂场景下秸秆检测中,极大地降低了训练参数量,且秸秆分割 mIoU 达到 94.3%。在常规的卷积运算中,需要同时考虑图像对应区域的所有通道,而深度可分离卷积提出将这个过程分开。深度可分离卷积由两个部分组成,第一部分是深层卷积(depthwise convolution),第二部分是逐点卷积(pointwise convolution),示意图见图 4。正是由于深度可分离卷积将传统的卷积操作拆分开来,使得网络参数量大大减少。

在临床一线的影像学诊断中,往往需要既准确又快速地给出检查结果,且由于功耗和相关硬件设备的限制,用于输出结果的卷积神经网络模型不能具有非常庞大的参数量,卷积神经网络模型轻量化成为当务之急,而在保证模型性能的前提下尽量地降低模型的复杂度和参数量正是本文希望解决的问题。
本文提出的 DWSDenseNet 网络采用深度可分离卷积来代替传统卷积,实验证明深度可分离卷积能够有效地降低模型的参数量。假设输入是一个通道数为 3、5 × 5 的图像,输出通道为 4,卷积核大小为 3 × 3,使用传统卷积时,需要 108 个参数,而使用深度可分离卷积仅需要 39 个参数。本文将稠密块中的部分卷积层更换,相比于改进前,改进后的网络参数量下降了 43.9%。另外,本文还对传统深度可分离卷积进行了改进。由于 Leaky ReLU 比 ReLU 能够更大程度地保留信息,本文将卷积结构中的 ReLU 更换为 Leaky ReLU。传统卷积过程和本文所改进的深度可分离卷积过程如图 5 所示。

本文以 SDenseNet 网络为基础,采用其对稠密块的改进,使用 BN-Conv-Leaky ReLU 作为基础结构,并将稠密块中第二个卷积层替换为本文所改进的深度可分离卷积层,以达到模型轻量化的目的。本文所提出的 DWSDenseNet 的网络结构如表 1 所示。本文所提出方法的详细步骤如下:

Step 1:将输入的数据集按照 80% 和 20% 的比例划分,train data,test data ←Dataset。
Step 2:使用预处理算法对数据进行处理。data←CLAHE(data)。
Step 3:输入学习率 lr、权重衰减 wd、迭代次数 epoch 等参数,并初始化网络,Init(DWSDenseNet(W,B)),其中 W 是权重,B 是偏差。
Step 4:将训练数据输入网络,计算预测类别,并根据真实类别计算误差 error(L(W,B))。
Step 5:根据上一步计算的误差,优化参数 W←update_weight(error(L(W,B)),lr),B←update_bias(error(L(W,B)))。
Step 6:重复 Step 3 和 Step 4,直至达到迭代次数 epoch。
Step 7:将测试数据输入训练好的 DWSDenseNet 中,DWSDenseNet(W,B)←test data,计算分类的准确度、灵敏度和特异性。
2 实验结果及分析
本文所用的实验环境主要在 CPU 下进行,CPU 为 Core-i7,使用基于 Windows 的 MXNet 深度学习框架,使用 Python 编程语言对卷积神经网络进行搭建。
2.1 实验数据
本文使用的实验数据来自于 COVID-19 Radiography Database 数据集(https://www.kaggle.com/tawsifurrahman/covid19-radiography-database)。该数据集由多个研究组织共同收集制作,主要是针对新冠肺炎病例、病毒性肺炎病例和正常图像的数据库。数据集分布情况如表 2 所示,包含了 1 341 张正常的 X 线图像、1 345 张病毒性肺炎的 X 线图像和 219 张新冠肺炎阳性的 X 线图像,图像格式为 PNG。

2.2 三分类实验结果
首先将数据集进行预处理,使用 CLAHE 算法对训练集中的胸部 X 线图像进行处理,使用 CLAHE 算法可以抑制噪声,增强对比度,更好地突出病灶信息。之后将胸部 X 线图像的大小设置为 224 × 224,再将处理好的图像输入 DWSDenseNet 网络中进行训练,最后将测试集的数据输入训练好的网络进行分类,并对分类结果进行统计分析。在训练过程中,初始学习率设置为 1 × 10−3,根据训练情况,采取了三次衰减策略,学习率每次缩小到之前的十分之一,初始的权重衰减值设置为 1 × 10−4,在学习率第三次衰减之后,将权重衰减的值设置为 0,分类函数设置为 softmax 函数,损失函数使用交叉熵损失函数,优化算法使用 Adam,Leaky ReLU 的参数设置为 0.3。图 6 表示使用 DWSDenseNet 的训练集和测试集准确率的变化图,可以看出在第 25 轮前后训练集准确率达到了 99% 左右,之后趋于收敛。测试集准确率在前期有比较明显的震荡,这是因为在前几轮模型训练中,模型还没有很好地学习出合适的参数,在第 10 轮之后测试集准确率逐渐升高,在 30 轮之后逐渐收敛。

为了评估模型的有效性,本文与另外的卷积神经网络进行比较,包括:VGG16[23]、ResNet18[24]、ResNet34[24]、DenseNet121[18]和 SDenseNet[19],使用同样的图像预处理算法,对预测结果进行评价。本文使用三个指标对模型进行评价,分别是准确率(accuracy,ACC)、灵敏度(sensitivity,SEN)和特异性(specificity,SPE),计算公式如下:
![]() |
![]() |
![]() |
其中 TP 代表真阳性(true positive),即正样本被分到正确分类中的数量;FP 代表假阳性(false positive),即负样本被分到正样本类中的数量;TN 代表真阴性(true negative),即负样本被分到负样本类中的数量;FN 代表假阴性(false negative),即正样本被分到负样本类中的数量。由于本实验是一个三分类实验,且样本分布不均匀,故采用加权平均准确率、加权平均敏感度、加权平均特异性来衡量模型,计算公式如下:
![]() |
![]() |
![]() |
![]() |
其中 Si 为第 i 个类别的样本数,N 为样本总数,wi 为第 i 个类别在总样本中的占比。本文模型与其他模型比较的结果如表 3 所示。

由表 3 可以看出在新冠肺炎数据集上,采用本文 DWSDenseNet 模型的方法在准确率、灵敏度以及特异性上分别为 98.1%、97.8%、98.2%,三项指标均比 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型高,在所有模型中准确率和灵敏度排名第一。SDenseNet 模型的方法在准确率、敏感度以及特异性上分别为 97.9%、97.1%、98.1%,相比于本文所提网络,三个指标都略微低一些。与 SDenseNet 相比,DWSDenseNet 的参数量减少了 43.9%,但是分类效果并未下降。另外从 VGG16 的实验结果可以看出,VGG16 的三个指标均为最低,但参数量最大,说明 VGG16 在新冠肺炎数据集上并不具有非常好的分类效果。各个模型的混淆矩阵如图 7 所示。本文还另外引入了两篇论文的模型进行比较。Chowdhury 等[25]采用多个模型在不使用数据增广和使用数据增广两种条件下进行比较,由于本文未使用数据增广,故与其在未使用数据增广的准确率作比较,可以看出本文所提的模型在准确率和灵敏度上略微高于 Chowdhury 等使用的网络,仅在特异性上本文所提模型略低。Bassi 等[26]使用迁移学习的方法对新冠肺炎数据集中的图像进行分类,本文方法与其灵敏度相当。以上结果表明在新冠肺炎数据集上 DWSDenseNet 相比于其他卷积神经网络模型,参数量更少,具有更好的分类效果。

2.3 二分类实验结果
本节对模型在二分类任务中的分类效果进行评估。实验分为三组,分别是新冠肺炎和正常组、新冠肺炎和病毒性肺炎组、正常和病毒性肺炎组。每组中都包含六个模型的实验,以评估不同模型在不同分类任务中的效果。对模型使用准确率、灵敏度和特异性三个指标进行评估,计算公式见式(3)~(5)。不同组的二分类实验结果如表 4 所示。由表 4 可以看出,在新冠肺炎和正常组分类中,本文模型在灵敏度上表现最好,SDenseNet 在灵敏度和准确率上也达到了很高的指标,DWSDenseNet 在准确率和特异性上距最好结果相差不到一个百分点,但参数量上相差巨大,本文模型的网络参数量远远小于其他模型。在新冠肺炎和病毒性肺炎的分类中,SDenseNet 在准确率和灵敏性上达到 99.7% 和 100%,DenseNet121 在灵敏度方面也达到了 100%,相比于这两者,本文所提出的网络在准确率和特异性上达到最优,在灵敏度上还有待提高。在正常和病毒性肺炎的分类中,本文网络在三个指标中表现均为最优,另外 SDenseNet 在特异性上也达到了最好的指标。由以上分析可知,本文所提出的网络模型虽然参数量小,但在不同的二分类中,模型表现优异。本文模型与改进前的 SDenseNet 网络的混淆矩阵如图 8 所示。


3 结论
新冠肺炎治疗的第一步,是从众多病例中将新冠肺炎患者筛选出来,尽管最终确诊依然主要依靠病毒核酸检测,但影像学检查简单快捷,能够帮助医生更快地确定病灶信息,因此使用影像学筛选新冠肺炎患者已经广泛地应用于临床一线。新冠病毒传染率高,导致大量的患者短时间内涌入医院,对影像科医生产生了极大的负担,抗疫一线往往出现人员短缺的状况,使用深度学习的方法可以很好地解决这个问题。本文提出了 DWSDenseNet 模型对胸部 X 线图像进行分析,相比于 SDenseNet 网络,DWSDenseNet 拥有更少的参数量。通过对比实验可知,相较于传统的卷积神经网络模型,DWSDenseNet 网络具有更好的准确率。本文模型降低了传统 DenseNet 的网络深度,对原始的稠密块进行改进,加入了 Leaky ReLU 作为激活函数,使得训练时收敛速度更快,之后融合深度可分离卷积神经网络进一步降低模型的参数量。为了验证模型的有效性,再次进行二分类的实验,通过结果可知,DWSDenseNet 在三组实验中均具有很好的表现。综上可知,本文模型能够在保证准确率的情况下,降低模型的参数量,从而加快了检测速度。
利益冲突声明:本文全体作者均声明不存在利益冲突。
引言
自 2019 年末新型冠状病毒被发现以来,新型冠状病毒肺炎(coronavirus disease 2019,COVID-19,以下简称新冠肺炎)疫情迅速在全球暴发。截止 2020 年 4 月 19 日,全球超过 200 个国家及地区出现新冠肺炎确诊病例,累计确诊人数达到 216 万,各个国家和地区的医疗体系都面临巨大的挑战,许多国家纷纷出现了缺物资、缺人力、缺技术等问题[1]。新冠肺炎传染性极强,人群普遍易感,有基础疾病的患者容易发展为重症,出现呼吸衰竭等症状[2],这种特性使得新冠肺炎患者往往出现聚集性感染,在短时间内大量涌入医院。控制疫情的关键是将普通肺炎患者与新冠肺炎患者区分开来,对新冠肺炎患者应收尽收,阻断病毒的传播路径。在这种情况下,对新冠肺炎的快速鉴别就显得尤为重要,对社会来说,如果无法快速地鉴别出新冠肺炎患者,就会导致病毒的二次传播,短期内出现大量的聚集性病例;对医疗机构来说,一套行之有效的快速检测方法能够极大地减缓医疗压力,快速的新冠肺炎检测方法使得医院能够早发现、早隔离、早治疗,降低医疗人员的感染风险;对有基础性疾病的患者来说,新冠肺炎病毒在短期内会使得患者快速地转化为重症,尽早发现和治疗能够抑制患者从轻症转化为重症。
胸部影像学检测是新冠肺炎的检测手段之一[3],影像学检测依赖于影像科医生的判断,但短时间内大量的患者涌入医院,会导致影像科医生出现人手短缺以及工作疲劳等问题,而自动化的新冠肺炎检测方法可以帮助医生解决上述问题。近年来,随着医疗影像数据的公开,深度学习在医学影像上的应用越来越广泛,尤其是卷积神经网络在医学图像处理上取得了非常优异的成果[4]。利用卷积神经网络可以提取到医学图像中的高维信息,提高诊断的准确率。卷积神经网络模型众多、结构复杂,梁蒙蒙等[5]分析了卷积神经网络的发展历程,并对卷积神经网络的结构与其在医学图像处理中的应用进行了系统性的总结。卷积神经网络在医学诊断中的应用相当广泛,韩坤等[6]使用多模态图像信息对阿尔兹海默症进行分类诊断,提出了一种基于卷积神经网络的模型,对模态特征信息进行融合,得到了 95% 的准确率。李端等[7]使用深度残差网络对心电信号进行识别,结合小波自适应阈值滤波和 DR-CNN 的算法识别心电信号,取得了较高的准确率。黄盛等[8]提出了一种改进的深度残差网络用来对肺部计算机断层扫描(computed tomography,CT)图像进行分类,通过迁移学习的方法减小神经网络对大数据量的要求。刘一鸣等[9]使用 LUNA16 数据集,提出了一种基于卷积神经网络的肺结节检测办法,采用了一套肺部 CT 图像的预处理方案,所提出的模型准确率达到了 92.3%。Narin 等[10]从 Joseph Cohen 等分享的新冠肺炎数据集获得 50 张新冠肺炎的 X 线影像,从 chest X-ray images 数据集中获得 50 张正常肺部 X 线影像,构建了一个 100 张 X 线影像的数据集,使用 ResNet50 模型进行分类,准确率达到 98%。Jin 等[11]基于一个包含了 723 张新冠肺炎检测阳性和 413 张新冠肺炎检测阴性的 CT 影像数据集,提出一种联合 UNet++与 ResNet50 的模型用于新冠肺炎的诊断,达到 97.4% 的准确率。Shi 等[12]对当前人工智能技术在诊断新冠肺炎中的应用进行了系统性的回顾,分析了 87 篇有关新冠肺炎研究的论文,涵盖了新冠肺炎涉及的医学影像分析技术的所有流程,包括图像采集、分割、诊断等内容。X 线平片是传统的影像学检查手段,可用于扫描骨折、肿瘤、肺部感染等症状,虽然 CT 检查是较为先进的医学影像检查技术,可以帮助影像科医生进行细致的分析[13],但 X 线平片费用低廉,相较于 CT 检查更加便捷,可帮助影像科医生快速判断患者是否为新冠肺炎患者,因此使用深度学习的方法对 X 线平片图像进行自动识别是非常有必要的。
在新冠肺炎的影像学诊断中,常常混杂着新冠肺炎影像、普通肺炎影像和正常肺部影像,因此本文采用了包含这三个类别的共 2 905 张胸部 X 线平片图像的数据集。深度学习模型往往参数量庞大,使用深度可分离卷积(depthwise separable convolution)可以有效地降低参数量。因此,本文提出了一种深度可分离稠密网络 DWSDenseNet,其中 DWS 表示深度可分离卷积,由于是在稠密连接网络(DenseNet)基础上改进,故命名为 DWSDenseNet,加入改进的深度可分离卷积层以减少参数量,使得卷积神经网络更加轻量化,以期为新冠肺炎的早期筛查提供较为准确的辅助诊断意见。
1 实验方法
本文提出了一种基于改进的卷积神经网络的新冠肺炎检测方法,该检测方法运用图像预处理技术联合深度学习中卷积神经网络的相关算法对新冠肺炎进行检测,方法的流程图如图 1 所示。

1.1 图像预处理
本实验所用的肺炎分类数据集包含了 2 905 张胸部 X 线图像,每张图像的大小为 1 024 × 1 024,由于 X 线图像的对比度差、亮度低等问题,本文使用限制对比度自适应直方图均衡化(contrast limited adaptive histogram equalization,CLAHE)算法对 X 线图像进行预处理。CLAHE 算法能够突出胸部 X 线图像的内部细节,抑制噪声,更好地保存 X 线图像中的病灶信息。CLAHE 算法的实现步骤如下所示[14]:
(1)将胸部 X 线图像分为 M × N 个不重叠的图像块。
(2)计算每个分割后的图像块的灰度直方图,将图像块的像素平均到各个灰度级,灰度级的平均像素数 可由下式求出。
![]() |
其中 Ng 是图像块中灰度级的数量,Nxp 是图像块 x 轴方向的像素数,Nyp 是图像块 y 轴方向的像素数。
(3)将灰度直方图中大于 NL 的值截掉,NL 可以由下式求出:
![]() |
其中 S 为截取系数。求出截取部分的像素数,再求出截取到的像素总数平均到每个灰度级的像素数。
(4)直方图均衡化。对每个图像块的直方图进行均衡化,利用变换函数得到变换后的灰度值。图 2 是 X 线图像经过 CLAHE 算法处理前和处理后的对比。

1.2 DWSDenseNet 网络
传统的图像处理是由手工提取图像特征结合机器学习完成[15],手工提取图像特征的能力有限,往往不能很好地表达图像的复杂特征。随着深度学习的发展,尤其是卷积神经网络的出现,打破了传统的手工提取图像特征的方式。卷积神经网络是一种前馈神经网络,在图像处理方面的表现尤为突出,能够将大数据量的图片降维到小数据量,并有效地保存图像的深层特征。卷积神经网络使用反向传播算法进行训练,极大地提高了图像分类的准确度。卷积神经网络一般由卷积层(convolutional layer)、池化层(pooling layer)、全连接层(fully connected layer)组成[16],如图 3 所示。

最经典的卷积神经网络 LeNet 出现在 1998 年,应用于手写数字识别[17]。在以往的神经网络中,往往使用多个全连接层作为分类器,但全连接层的参数量较大,且容易产生过拟合,在 NIN 网络中[18]使用全局平均池化层(global average pooling)来代替全连接层,有效地减少了网络的参数。随后出现的 DenseNet 采用了一种非常密集的连接方式[19]。传统的 DenseNet 网络层数较深,参数量庞大,Huang 等[20]提出了一种改进的 PCANet 联合简化的 DenseNet 的混合网络,在多种医学图像分类上取得了很好的效果,其中简化的 DenseNet 网络被命名为 SDenseNet 网络,本文模型即在此基础上进行改进。
深度可分离卷积将所处理图像的对应区域和通道拆分处理,首先处理区域特征然后考虑通道特征。深度可分离卷积最早由 Sifre 等[21]提出,刘媛媛等[22]将其用于复杂场景下秸秆检测中,极大地降低了训练参数量,且秸秆分割 mIoU 达到 94.3%。在常规的卷积运算中,需要同时考虑图像对应区域的所有通道,而深度可分离卷积提出将这个过程分开。深度可分离卷积由两个部分组成,第一部分是深层卷积(depthwise convolution),第二部分是逐点卷积(pointwise convolution),示意图见图 4。正是由于深度可分离卷积将传统的卷积操作拆分开来,使得网络参数量大大减少。

在临床一线的影像学诊断中,往往需要既准确又快速地给出检查结果,且由于功耗和相关硬件设备的限制,用于输出结果的卷积神经网络模型不能具有非常庞大的参数量,卷积神经网络模型轻量化成为当务之急,而在保证模型性能的前提下尽量地降低模型的复杂度和参数量正是本文希望解决的问题。
本文提出的 DWSDenseNet 网络采用深度可分离卷积来代替传统卷积,实验证明深度可分离卷积能够有效地降低模型的参数量。假设输入是一个通道数为 3、5 × 5 的图像,输出通道为 4,卷积核大小为 3 × 3,使用传统卷积时,需要 108 个参数,而使用深度可分离卷积仅需要 39 个参数。本文将稠密块中的部分卷积层更换,相比于改进前,改进后的网络参数量下降了 43.9%。另外,本文还对传统深度可分离卷积进行了改进。由于 Leaky ReLU 比 ReLU 能够更大程度地保留信息,本文将卷积结构中的 ReLU 更换为 Leaky ReLU。传统卷积过程和本文所改进的深度可分离卷积过程如图 5 所示。

本文以 SDenseNet 网络为基础,采用其对稠密块的改进,使用 BN-Conv-Leaky ReLU 作为基础结构,并将稠密块中第二个卷积层替换为本文所改进的深度可分离卷积层,以达到模型轻量化的目的。本文所提出的 DWSDenseNet 的网络结构如表 1 所示。本文所提出方法的详细步骤如下:

Step 1:将输入的数据集按照 80% 和 20% 的比例划分,train data,test data ←Dataset。
Step 2:使用预处理算法对数据进行处理。data←CLAHE(data)。
Step 3:输入学习率 lr、权重衰减 wd、迭代次数 epoch 等参数,并初始化网络,Init(DWSDenseNet(W,B)),其中 W 是权重,B 是偏差。
Step 4:将训练数据输入网络,计算预测类别,并根据真实类别计算误差 error(L(W,B))。
Step 5:根据上一步计算的误差,优化参数 W←update_weight(error(L(W,B)),lr),B←update_bias(error(L(W,B)))。
Step 6:重复 Step 3 和 Step 4,直至达到迭代次数 epoch。
Step 7:将测试数据输入训练好的 DWSDenseNet 中,DWSDenseNet(W,B)←test data,计算分类的准确度、灵敏度和特异性。
2 实验结果及分析
本文所用的实验环境主要在 CPU 下进行,CPU 为 Core-i7,使用基于 Windows 的 MXNet 深度学习框架,使用 Python 编程语言对卷积神经网络进行搭建。
2.1 实验数据
本文使用的实验数据来自于 COVID-19 Radiography Database 数据集(https://www.kaggle.com/tawsifurrahman/covid19-radiography-database)。该数据集由多个研究组织共同收集制作,主要是针对新冠肺炎病例、病毒性肺炎病例和正常图像的数据库。数据集分布情况如表 2 所示,包含了 1 341 张正常的 X 线图像、1 345 张病毒性肺炎的 X 线图像和 219 张新冠肺炎阳性的 X 线图像,图像格式为 PNG。

2.2 三分类实验结果
首先将数据集进行预处理,使用 CLAHE 算法对训练集中的胸部 X 线图像进行处理,使用 CLAHE 算法可以抑制噪声,增强对比度,更好地突出病灶信息。之后将胸部 X 线图像的大小设置为 224 × 224,再将处理好的图像输入 DWSDenseNet 网络中进行训练,最后将测试集的数据输入训练好的网络进行分类,并对分类结果进行统计分析。在训练过程中,初始学习率设置为 1 × 10−3,根据训练情况,采取了三次衰减策略,学习率每次缩小到之前的十分之一,初始的权重衰减值设置为 1 × 10−4,在学习率第三次衰减之后,将权重衰减的值设置为 0,分类函数设置为 softmax 函数,损失函数使用交叉熵损失函数,优化算法使用 Adam,Leaky ReLU 的参数设置为 0.3。图 6 表示使用 DWSDenseNet 的训练集和测试集准确率的变化图,可以看出在第 25 轮前后训练集准确率达到了 99% 左右,之后趋于收敛。测试集准确率在前期有比较明显的震荡,这是因为在前几轮模型训练中,模型还没有很好地学习出合适的参数,在第 10 轮之后测试集准确率逐渐升高,在 30 轮之后逐渐收敛。

为了评估模型的有效性,本文与另外的卷积神经网络进行比较,包括:VGG16[23]、ResNet18[24]、ResNet34[24]、DenseNet121[18]和 SDenseNet[19],使用同样的图像预处理算法,对预测结果进行评价。本文使用三个指标对模型进行评价,分别是准确率(accuracy,ACC)、灵敏度(sensitivity,SEN)和特异性(specificity,SPE),计算公式如下:
![]() |
![]() |
![]() |
其中 TP 代表真阳性(true positive),即正样本被分到正确分类中的数量;FP 代表假阳性(false positive),即负样本被分到正样本类中的数量;TN 代表真阴性(true negative),即负样本被分到负样本类中的数量;FN 代表假阴性(false negative),即正样本被分到负样本类中的数量。由于本实验是一个三分类实验,且样本分布不均匀,故采用加权平均准确率、加权平均敏感度、加权平均特异性来衡量模型,计算公式如下:
![]() |
![]() |
![]() |
![]() |
其中 Si 为第 i 个类别的样本数,N 为样本总数,wi 为第 i 个类别在总样本中的占比。本文模型与其他模型比较的结果如表 3 所示。

由表 3 可以看出在新冠肺炎数据集上,采用本文 DWSDenseNet 模型的方法在准确率、灵敏度以及特异性上分别为 98.1%、97.8%、98.2%,三项指标均比 VGG16、ResNet18、ResNet34、DenseNet121 和 SDenseNet 模型高,在所有模型中准确率和灵敏度排名第一。SDenseNet 模型的方法在准确率、敏感度以及特异性上分别为 97.9%、97.1%、98.1%,相比于本文所提网络,三个指标都略微低一些。与 SDenseNet 相比,DWSDenseNet 的参数量减少了 43.9%,但是分类效果并未下降。另外从 VGG16 的实验结果可以看出,VGG16 的三个指标均为最低,但参数量最大,说明 VGG16 在新冠肺炎数据集上并不具有非常好的分类效果。各个模型的混淆矩阵如图 7 所示。本文还另外引入了两篇论文的模型进行比较。Chowdhury 等[25]采用多个模型在不使用数据增广和使用数据增广两种条件下进行比较,由于本文未使用数据增广,故与其在未使用数据增广的准确率作比较,可以看出本文所提的模型在准确率和灵敏度上略微高于 Chowdhury 等使用的网络,仅在特异性上本文所提模型略低。Bassi 等[26]使用迁移学习的方法对新冠肺炎数据集中的图像进行分类,本文方法与其灵敏度相当。以上结果表明在新冠肺炎数据集上 DWSDenseNet 相比于其他卷积神经网络模型,参数量更少,具有更好的分类效果。

2.3 二分类实验结果
本节对模型在二分类任务中的分类效果进行评估。实验分为三组,分别是新冠肺炎和正常组、新冠肺炎和病毒性肺炎组、正常和病毒性肺炎组。每组中都包含六个模型的实验,以评估不同模型在不同分类任务中的效果。对模型使用准确率、灵敏度和特异性三个指标进行评估,计算公式见式(3)~(5)。不同组的二分类实验结果如表 4 所示。由表 4 可以看出,在新冠肺炎和正常组分类中,本文模型在灵敏度上表现最好,SDenseNet 在灵敏度和准确率上也达到了很高的指标,DWSDenseNet 在准确率和特异性上距最好结果相差不到一个百分点,但参数量上相差巨大,本文模型的网络参数量远远小于其他模型。在新冠肺炎和病毒性肺炎的分类中,SDenseNet 在准确率和灵敏性上达到 99.7% 和 100%,DenseNet121 在灵敏度方面也达到了 100%,相比于这两者,本文所提出的网络在准确率和特异性上达到最优,在灵敏度上还有待提高。在正常和病毒性肺炎的分类中,本文网络在三个指标中表现均为最优,另外 SDenseNet 在特异性上也达到了最好的指标。由以上分析可知,本文所提出的网络模型虽然参数量小,但在不同的二分类中,模型表现优异。本文模型与改进前的 SDenseNet 网络的混淆矩阵如图 8 所示。


3 结论
新冠肺炎治疗的第一步,是从众多病例中将新冠肺炎患者筛选出来,尽管最终确诊依然主要依靠病毒核酸检测,但影像学检查简单快捷,能够帮助医生更快地确定病灶信息,因此使用影像学筛选新冠肺炎患者已经广泛地应用于临床一线。新冠病毒传染率高,导致大量的患者短时间内涌入医院,对影像科医生产生了极大的负担,抗疫一线往往出现人员短缺的状况,使用深度学习的方法可以很好地解决这个问题。本文提出了 DWSDenseNet 模型对胸部 X 线图像进行分析,相比于 SDenseNet 网络,DWSDenseNet 拥有更少的参数量。通过对比实验可知,相较于传统的卷积神经网络模型,DWSDenseNet 网络具有更好的准确率。本文模型降低了传统 DenseNet 的网络深度,对原始的稠密块进行改进,加入了 Leaky ReLU 作为激活函数,使得训练时收敛速度更快,之后融合深度可分离卷积神经网络进一步降低模型的参数量。为了验证模型的有效性,再次进行二分类的实验,通过结果可知,DWSDenseNet 在三组实验中均具有很好的表现。综上可知,本文模型能够在保证准确率的情况下,降低模型的参数量,从而加快了检测速度。
利益冲突声明:本文全体作者均声明不存在利益冲突。