基于深度学习的肺炎图像目标检测

2022-11-24 07:19刘立新刘玉杰齐美捷张周锋
中国生物医学工程学报 2022年4期
关键词:损失肺部病灶

何 迪 刘立新 刘玉杰 熊 丰 齐美捷 张周锋

1(西安电子科技大学光电工程学院,西安 710071)

2(中国科学院西安精密机械研究所中国科学院光谱成像重点实验室, 西安 710119)

引言

肺炎是一种可能由细菌、病毒或真菌等病原体引起的肺部炎症,在儿童与老人中的致死率极高,也是美国十大死亡原因之一[1]。2019年底新冠肺炎的出现以及随后的全球爆发更是给人民生命安全和身体健康带来了巨大威胁[2],因此肺炎的诊断和治疗也日益受到人们的关注与重视。

肺部X 光片是肺炎诊断的重要方法之一。肺炎在X 光图像上通常表现为肺部不透明度增加,然而肺部的其他疾病,如肺水肿、胸腔积液等,在X 光图像上同样呈现出不透明的区域,会对肺炎诊断造成干扰。所以,正确解释影像信息始终是医生面临的主要挑战,需要有经验的放射科医生才能进行诊断确认。对于缺乏经验的医生,其决定存在相当大的主观不一致,还需要通过血液检测、细菌分析等复杂检测流程才能够精确判定。在中国,每年病理医生人数的增长速率仅为4%,专业放射科医生增长率更低。但是随着近些年医疗数据的爆发式增长,专业放射科医生的数量供不应求,导致在诊断环节会造成病人诊断不及时,误诊、漏诊等问题,耽误患者治疗的最佳时间。因此迫切需要研究并开发新方法,帮助提供计算机辅助诊断,以提高肺炎诊断的准确率并降低肺炎相关的死亡率。

深度学习[3]能够模仿人脑的机制来解释数据,且在数据量庞大的情况下,可以有效解决传统机器学习中算法准确率低以及模型泛化能力差等问题,因此在医学图像处理中得到了广泛应用。卷积神经网络(convolutional neural networks, CNNs)是深度学习中最为重要的模型之一,在肺炎图像分类以及目标检测方面显现出优越的性能[4-8]。马书浩等[6]提出了一种基于YOLOv3 改进的多分枝YOLO 肺炎检测算法。该算法在实验数据集上的检测准确率高于单发多框探测器(single shot multibox detector,SSD)、YOLOv3 及更快速区域卷积神经网络(faster region-based convolutional neural network, faster-RCNN)等算法,但还存在误检、漏检、定位偏差大的问题。Nurmaini 等[7]提出了具有Faster-RCNN 结构的卷积神经网络来检测新冠病毒(SARS-CoV-2)感染病灶,解决逆转录聚合酶链反应检测结果假阴性率高的问题,提高了检测灵敏度。Dharani 等[8]利用faster-RCNN 模型来辅助临床医生诊断肺炎,将样本中不清楚或可能与其他疾病混淆的肺部X 光图像进行识别,以实现更好的诊断和降低错误率;结果表明,faster-RCNN_inception_coco 模型相较于其他模型具有更高的预测精度,有助于分析和诊断肺炎。

本研究首先将SSD 和faster-RCNN 这两种典型目标检测算法用于肺炎病灶区域检测;然后在原有faster-RCNN 的网络结构基础上引入特征金子塔网络(feature pyramid network, FPN),对faster-RCNN网络模型进行优化,来更好地解决不同类型病灶区域识别的问题。

1 材料与方法

1.1 实验环境与肺炎图像数据集

实验中所使用硬件设备与软件环境具体配置如表1 所示。硬件设备主要为Dell T3630 图形工作站,其中处理器型号为i7-8700,它包含6 个内核和12 个逻辑处理器,运行内存大小为32 GB;显卡型号为RTX 2080。软件环境主要为: 操作系统Windows10、 Anaconda 环境、谷歌开源的Tensorflow[9-10]、Python 版本、显卡驱动库CUDA 以及GPU 加速库Cudnn。

表1 实验环境配置Tab.1 Description of experimental environment

实验数据集由Kaggle 提供,来源于北美放射协会及医疗人工智能(artificial intelligence,AI)平台合作开发的26 684 张带标签肺部X 光图像,具体包括8 539 张患有肺炎的X 光图像、10 407 张患有其他病症的肺部X 光图像,7 738 张正常肺部X 光图像。图1 所示为从数据集中随机选取的肺部X 光图像的例子,图1(a)为没有肺部疾病的正常X 光图像,标记为Normal;图1(b)中的两张X 光图像患有肺部疾病,但是不属于肺炎,标记为No Lung;图1(c)中的两张X 光图像来自肺炎患者,左图具有单处病灶,右图具有两处病灶,标记为Lung。

图1 肺部X 光图像。(a)正常肺部图像;(b)肺部其他病症图像;(c)肺炎图像Fig.1 Lung X-ray images. (a) Normal lung images;(b) Other lung disease images; (c) Pneumonia images

1.2 数据预处理

图2 所示为基于深度学习的肺炎图像目标检测数据处理流程,其中图像预处理[[11]是图像输入模型训练前必不可少的一环。来自Kaggle 数据集的原始X 光图像首先经过图像预处理操作,包括图像缩放变换、线性变换以及对比度增强等步骤,转换为具有合适尺寸和高对比度的图像,然后输入深度学习模型进行分类及目标检测。图2 中展示了原始X 光图像依次经过各步预处理后所对应的输出效果。

图2 数据处理流程Fig.2 Flow chart of data processing

1)图像缩放变换

肺部X 光图像的分辨率在不同的数据集中大小并不统一。利用双线性插值算法[12],对原始X 光图像进行缩放变换,以满足深度学习模型中对于输入图像分辨率的要求。经过处理后的图像整体尺寸相对缩小,但保留了图像的主要特征,同时缩短了模型的训练时间。所要使用的VGG 和ResNet 网络要求的图片输入尺寸为224×224,因此原始X 光图像经过调整之后的尺寸均变成224×224。

2)图像线性变换

图像的线性变换操作通常包括平移和旋转。旋转是指将图像以原点为中心轴旋转若干角度。平移则是将图像的所有像素沿X、Y 方向移动若干距离。肺部X 光图像经过旋转和平移操作后,可以增强深度学习模型对肺部图像位置与方向的敏感程度。为了更好地实现数据增强效果,可通过设定随机种子的方式对输入的X 光图像进行旋转和平移操作。

3)图像对比度增强

图像对比度增强[13-14]可以实现对肺炎病灶区域的特征增强,提高模型对肺炎图像的识别能力和检测精度。采用限制对比度自适应直方图均衡(contrast limited adaptive histogram equalization,CLAHE)算法对经图像线性变换后的肺部X 光图像进行处理。CLAHE 算法通过限制局部直方图的高度来限制局部对比度的增强幅度,从而限制噪声的放大及局部对比度的过增强,因此它不仅能够更好地改善图像对比度,而且解决了局部特征不够清晰的问题。由图2 可见,经对比度增强处理后的肺部X 光图像特征更加突出。

1.3 肺炎检测卷积神经网络模型

1.3.1 目标检测模型

卷积神经网络广泛应用于医学图像中的分类或目标检测等问题,在大规模图像处理中具有出色的表现。目前目标检测算法模型主要分为两种,即one-stage 和two-stage。

如图3 所示,one-stage 目标检测算法流程较为简单,通过卷积神经网络对输入的图像直接进行特征提取,而后基于回归思想实现结果输出。图4 为two-stage 目标检测算法的工作原理流程。相对于图3 而言,在输入图像完成卷积神经网络网络特征提取后,又增加了一部分检测流程,并且增加的部分与one-stage 过程类似,生成感兴趣的区域(region of interest, ROI),其中包含预测的位置信息及前景的概率;然后对生成的感兴趣的区域进行进一步位置的修正和物体所属类别的概率值判定,完成最终的检测。

图3 One-stage 目标检测算法示意Fig.3 Schematic diagram of one-stage object detection algorithm

图4 Two-stage 目标检测算法Fig.4 Schematic diagram of two-stage object detection algorithm

采用SSD[15-16]、faster-RCNN[17]和faster-RCNN优化模型,对肺部X 光图像实现肺炎病灶区域检测。其中,SSD 为one-stage 算法,faster-RCNN 及其优化模型为two-stage 算法。

1.3.2 特征提取网络

VGG 和ResNet 是两种常用的特征提取网络,它们都包含卷积、池化、全连接和SoftMax 操作。相较于VGG 而言,ResNet 增加了JumpPoint 操作。ResNet 网络通过使用特殊的跳跃连接和大批量归一化处理操作,具有更强的图像特征抽象能力。SSD 模型和faster-RCNN 模型均采用VGG16 作为特征提取网络,而faster-RCNN 优化模型则采用ResNet 网络,对肺部X 光图像实现特征提取。

目标检测算法模型在对输入图像进行特征选取时主要有四种思路,如图5 所示。图5(a)首先将输入的肺部X 光图像进行不同尺度的缩放操作,然后分别进行特征图提取,最终对生成的特征图像完成结果预测任务。该方式增加了目标检测模型的计算量,不符合实际生产中的要求。图5(b)的特征提取思路与faster-RCNN 思路一致,整个特征提取网络仅采用最后一层的输出结果输入到后续目标检测模型。图5(c)与SSD 模型的设计一致,在特征提取网络内选取若干个不同大小的特征图输入到目标检测模型。

图5 目标检测算法特征提取示意。(a) 多尺度图像输入;(b) 单一图像特征输入;(c) 多图像特征输入;(d) 多图像特征融合输入Fig.5 Schematic diagram of feature extraction of object detection algorithm. (a) Multi-scale image input; (b)Single image feature input; (c) Multiple image feature input; (d) Multiple image feature fusion input

综合上述,3 种特征提取网络的设计思路,利用上采样操作,使相邻的特征图进行融合,将高层特征与低层特征融合处理后输入到后续模型,如图5(d)所示。采用这种方式对原图像进行处理时,更容易检测到较小的区域,而且不增加计算复杂度。这种特征设计称为特征金子塔网络(feature pyramid network, FPN)[18-19]。Faster-RCNN 优化模型即采用该设计,同时在应用FPN 网络的基础上,将faster-RCNN 中使用的VGG16 模型替换为ResNet 网络。

2 结果

2.1 SSD 模型

在SSD 模型训练过程中,模型整体的损失值变化曲线如图6 所示。曲线在绘制的过程中程序进行了平滑处理,平滑率设定为0.2。由图可见,损失值开始时骤然下降,而后缓慢下降。在迭代30 000 次后,损失值在4.5 上下波动,而后趋于平稳。在迭代50 000 次时,损失值接近4.0,损失函数曲线降到最低。该曲线表明,随着训练次数的增加损失值整体呈下降趋势。

图6 SSD 模型损失函数变化曲线Fig.6 Loss function change curve of SSD model

利用训练后的SSD 模型对抽取的肺炎X 光图像进行测试。由于样本数据集中每张肺部X 光图像可能存在的病灶区域不超过两处,因此将从单处病灶区域的样本数据和两处病灶区域的样本数据各抽取一张进行测试,目标检测结果分别如图7(a)和(b)所示。图中左侧为输入的样本图像,右侧为SSD模型输出的目标检测结果,包括对于病灶区域的框定位置,以及框定区域所患肺炎的概率大小;并且通过预测位置与真实标记位置,可以计算得到两者交并比,记为回归精度,如表2 所示。对于单处病灶检测,SSD 输出的目标检测结果为85%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比为60.0%。对于两处病灶检测,SSD 输出的目标检测结果分别为88%和86%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比分别为68.5%和66.8%。

表2 SSD 模型预测病灶区域结果Tab.2 Results of the prediction position of lesion areas of SSD model

图7 SSD 模型预测病灶区域结果(方框表示预测为病灶的区域)。(a)单处病灶;(b)两处病灶Fig.7 The prediction results of lesion areas of SSD model (Boxes indicate areas predicted to be lesions.).(a) Single lesion area; (b) Two lesion areas

为了对模型性能进行综合评估,选取500 张肺部X 光图像进行测试,其中包括无病灶区域的X 光图像50 张,单个病灶区域的X 光图像150 张,两处病灶区域的X 光图像300 张。目标检测结果列于表3,可知SSD 模型的最高和最低分类准确率分别为89.0%和79.0%,平均分类准确率为86.6%;最高和最低回归精度分别为70.4%和58.3%,平均回归精度为67.4%。从这两项指标可以看出,SSD 虽然基本能够完成对病灶区域进行检测的任务,但是效果不太理想,误检病灶区域个数达到11 个。通过对误检病灶区域所在的图像进行分析,发现该11 处误检病灶区域均是未患有肺炎,但存在其他肺部疾病的肺部X 光图像。该类图像会对目标检测模型的检测产生一定难度,因此可以把误检病灶区域数作为目标检测模型的一个评估指标,能够更全面地评测该目标检测模型的好坏。

表3 SSD 模型性能评测Tab.3 Performance evaluation of SSD model

2.2 Faster-RCNN 模型

在faster-RCNN 模型训练过程中,模型整体的损失值变化曲线如图8 所示。图中损失值在开始时波动幅度较大,而后缓慢下降。在迭代10 000次后,损失值在1.0 上下波动,趋于平稳。在迭代50 000次时,损失函数曲线降到最低。该曲线表明,相比于SSD 模型,faster-RCNN 模型迭代较少的次数损失值便可趋于稳定,且损失值较小。

图8 Faster-RCNN 模型损失函数变化曲线Fig.8 Loss function change curve of faster-RCNN model

利用训练后的faster-RCNN 模型对抽取的肺部X 光图像进行测试。单处病灶和两处病灶样本的目标检测结果分别如图9(a)和(b)所示。在这两种情况下,预测位置与真实标记位置如表4 所示。对于单处病灶检测,faster-RCNN 输出的目标检测结果为91%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比为72.9%。对于两处病灶检测,faster-RCNN 输出的目标检测结果分别为89%和92%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比分别为74.5%和74.3%。

图9 Faster-RCNN 模型预测病灶区域结果(方框表示预测为病灶的区域)。(a)单处病灶;(b)两处病灶Fig.9 The prediction results of lesion areas of faster-RCNN model ( Boxes indicate areas predicted to be lesions.). (a) Single lesion area;(b) Two lesion areas

表4 Faster-RCNN 预测病灶区域结果Tab.4 Results of the prediction position of lesion areas of faster-RCNN model

选取同样的500 张肺部X 光图像,利用faster-RCNN 模型进行测试。根据表5 所示结果可知,faster-RCNN 模型的最高和最低分类准确率分别为92.0%和88.0%,平均分类准确率为90.2%;最高和最低回归精度分别为75.9%和70.3%,平均回归精度为74.6%。从这两项指标可以看出,faster-RCNN能够完成对病灶区域进行检测的任务,各项指标相对于SSD 模型而言均有所提升。此外,faster-RCNN误检病灶区域个数为3 个,少于SSD 误检的数量。

表5 Faster-RCNN 模型性能评测Tab.5 Performance evaluation of faster-RCNN model

2.3 Faster-RCNN 优化模型

在faster-RCNN 优化模型训练过程中,模型整体的损失值变化曲线如图10 所示。由图可见,从开始到50 000 次的训练过程中,损失值一直在1.0 上下浮动,但是浮动范围上下没有超过0.5。当训练完毕时,损失值接近1.0。该曲线表明该模型损失值在训练过程中能快速达到一个稳定的状态。

图10 Faster-RCNN 优化模型损失函数变化曲线Fig.10 Loss function change curve of faster-RCNN optimization model

利用训练后的faster-RCNN 优化模型对抽取的肺炎X 光图像进行测试。单处病灶和两处病灶样本的目标检测结果分别如图11(a)和(b)所示。在这两种情况下,预测位置与真实标记位置如表6所示。

表6 Faster-RCNN 优化模型预测病灶区域结果Tab.6 Results of the prediction position of lesion areas of Faster-RCNN optimization model

图11 Faster-RCNN 优化模型预测病灶区域结果(方框表示预测为病灶的区域)。(a)单处病灶;(b)两处病灶Fig.11 The prediction results of lesion areas of faster-RCNN optimization model (Boxes indicate areas predicted to be lesions.). (a) Single lesion area; (b) Two lesion areas

对于单处病灶检测,faster-RCNN 优化模型输出的目标检测结果为93%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比为74.8%。对于两处病灶检测,faster-RCNN 优化模型输出的目标检测结果分别为90%和94%的概率判定该处为病灶区域,预测位置与真实标记位置的交并比分别为79.0%和78.1%。选取同样的500 张肺部X 光图像,利用faster-RCNN优化模型进行测试。根据表7 所示结果可知,faster-RCNN 优化模型的最高和最低分类准确率分别为96.0%和90.0%,平均分类准确率为93.7%;最高和最低回归精度分别为83.2%和74.5%,平均回归精度为79.8%。从这两项指标可以看出,相对于另外两个模型而言,faster-RCNN 优化模型的目标检测效果有着显著提升,并且误检病灶区域数为0,因此faster-RCNN 优化模型可选用为肺炎图像目标检测的应用模型。

表7 Faster-RCNN 优化模型性能评测Tab.7 Performance evaluation of faster-RCNN optimization model

此外,对该模型的运行速度进行了评测。通过对500 张测试图像进行检测,结果显示平均每张测试图像检测用时约216 ms,可满足实际应用需求。

3 讨论

SSD 和faster-RCNN 是近年来实现目标检测的常用CNN 模型[6-8,20-21]。SSD 基于MultiBox 的思想,在不同特征尺度上预测不同尺度的目标,可全面提升检测精度[15]。Faster-RCNN 采用区域候选网络(region proposal network, RPN)解决了目标的区域推荐问题,能极大提升检测框的生成速度[17]。本研究构建了3 种图像目标检测模型,SSD、faster-RCNN和faster-RCNN 优化模型,以实现对肺部X 光图像的病灶区域检测。其中faster-RCNN 优化模型是在faster-RCNN 的网络结构基础上引入FPN,并将特征提取网络VGG16 替换为ResNet 网络实现的。

肺炎的病灶大小、形状和位置变化很大[22],边界通常非常模糊,导致检测难度很大,因此提高检测精度是一个主要的研究问题,这取决于数据预处理、模型选用、训练和测试等各个环节,并通过多种性能指标,如损失函数、准确率、回归精度和误检病灶数等来综合表征评定。在数据集的处理过程中,采用多种方法对原始肺部X 光图像进行数据增强,主要包括图像缩放变换、线性变换以及对比度增强等步骤,从而调整图像尺寸,改善图像效果,突出图像特征,以增强深度学习模型的鲁棒性和泛化能力,提高检测精度。

损失函数有助于优化神经网络的参数。本研究分析了3 种模型的损失函数随模型训练次数的变化情况。由各模型的损失函数曲线可知,随着训练次数的增加损失值均下降;Faster-RCNN 模型相比于SSD 模型损失值下降更快,迭代较少的次数便可趋于稳定,且损失值较小;Faster-RCNN 优化模型从开始训练,损失值一直在1.0 上下浮动,可快速达到稳定状态。

为了评估深度学习模型的性能,首先分别利用训练后的3 种模型对抽取的肺炎X 光图像进行测试,得到了单处病灶和两处病灶的框定位置及框定区域所患肺炎的概率大小,根据预测位置与真实标记位置可以计算得到回归精度。通过比较可知,无论对于单处病灶还是两处病灶,faster-RCNN 优化模型的回归精度高于faster-RCNN 模型,且二者均高于SSD 模型。然后,分别利用3 种模型对选取的500张肺部X 光图像进行目标检测,由所获得的分类准确率、回归精度和误检病灶数结果可知,faster-RCNN 优化模型的综合性能均优于另外两种模型。此外,faster-RCNN 优化模型对X 光图像的测试速度很快,这表明了其在肺炎图像目标检测实际应用中的可行性和潜力。

本研究采取的深度学习方法框架并不仅限于肺部X 光图像,未来可在其他疾病的目标检测研究中进行尝试,以验证其普适性;并期望进一步提高模型的检测精度和速度,将其应用于临床疾病的实时检测和诊断。

4 结论

本研究使用SSD、faster-RCNN 和faster-RCNN优化模型3 种目标检测模型完成对肺部X 光图像的病灶区域检测任务,通过在损失函数、分类准确率、回归精度、误检病灶区域数等方面对模型性能进行分析可知,faster-RCNN 优化模型可快速达到稳定,平均分类准确率达到93.7%,平均回归精度为79.8%,且误检病灶数为0,性能指标均优于其他两种模型。因此faster-RCNN 优化模型可帮助医生进行准确高效的X 光图像肺炎病灶检测,并有可能应用于其他医学图像的目标检测,在实际的医疗领域中具有广泛的应用前景。

猜你喜欢
损失肺部病灶
胖胖损失了多少元
Optimal UAV deployment in downlink non-orthogonal multiple access system: a two-user case
PSMA-靶向18F-DCFPyL PET/CT在肾透明细胞癌术后复发或转移病灶诊断中的作用分析
《结缔组织疾病肺部表现》已出版
《结缔组织疾病肺部表现》已出版
《结缔组织疾病肺部表现》已出版
《结缔组织疾病肺部表现》已出版
玉米抽穗前倒伏怎么办?怎么减少损失?
术中超声在颅内占位病灶切除中的应用探讨
一般自由碰撞的最大动能损失