基于SSD 的肺炎影像检测研究
2022-07-27路生亮布安旭金海滨
马 驰,胡 辉*,路生亮,布安旭,金海滨
(1.惠州学院 计算机科学与工程学院,广东 惠州 516007;2.辽宁科技大学 计算机与软件工程学院,辽宁 鞍山 114044)
肺炎是一种严重威胁人类健康的呼吸系统疾病,通常肺部检查是通过医生对肺部X 光片的观察,根据医生丰富的经验和专业知识对疾病进行诊断[1],这种方式在一定程度上存在着缺陷,X 光片本身颜色较为单一、纹理信息较少且成像结果也会受到各种外界干扰影响,同时医生诊断结果的准确性会受经验、专业程度和当时的工作状态等因素影响[2]。因此,有效的计算机辅助诊断模型,对提高医生的诊断准确性和诊断效率有很大帮助。
随着计算机技术在医学影像处理领域的应用不断加深,传统的计算机图像处理技术和深度学习等神经网络方法都在肺炎影像检测领域得到了广泛的应用。基于传统的图像处理算法,张利红等[3]将分水岭算法应用到医学影像分割领域,提出了一种对肺炎病变区域进行分割的算法,该方法存在对影像质量要求较高、受噪声影像较大的问题。吕鲤志等[4]针对CT 等医学影像颜色单一、纹理信息较少且由于拍摄过程中的噪声干扰等问题,提出了一种基于Laplacian 金字塔和小波变换的图像增强算法,解决了传统图像增强方法可能会导致医学影像细节丢失、边缘信息减弱和对比度降低的问题。与传统图像处理方法相比,深度学习可以通过网络自动学习影像特征,能够同时自动地完成特征提取及分类定位任务[5]。为了解决在小数据样本情况下网络训练容易过拟合的问题,刘长征等[6]将卷积神经网络模型应用到肺炎影像分类任务中并针对肺炎影像分类任务对卷积层结构进行改进,使用弹性梯度下降方法对网络进行优化同时加入了Dropout机制,该方法对肺炎影像的分类取得了较好效果,但不能确定病变位置且对病变区域较小的肺炎影像分类效果较差。张康[7]带领团队联合国内外多家医院及科研单位,开发了一套基于X 光医学影像的病变检测模型。同济大学和浙江大学共同针对深度学习医学影像处理方法在肺炎诊断中的应用进行了深入研究,对目前深度学习算法在计算机辅助肺癌检测取得的进展进行综述[8],黄亚平等[9]选用ResNet50作为特征提取网络,并在卷积神经网络中引入Attention 机制,通过使特征提取过程关注病变位置使得肺炎影像分类的准确率有了很大提高。虽然提高了肺炎影像分类的准确率,对于小病变区域的肺部疾病分类也有了显著提高,但该方法仍不能确定病变位置。
采用单激发多盒探测网络(Single Shot MultiBox Detector,SSD)[10-11]作为肺炎检测算法,并针对肺炎小发病区容易漏检,或检测准确度低的特点提出了相应的解决方案,创新点如下:
(1)通过改进SSD 网络结构,优化特征提取网络,解决肺炎影像中小病变区域容易漏检或检测精度较低的问题。
(2)针对肺炎影像,对SSD网络不同卷积层的输出进行特征融合,在尽可能不影响网络训练及检测效率的同时,提高网络准确性。
1 基于SSD的检测网络
SSD物体检测模型:是一种典型的单步检测网络,该模型将目标的检测识别功能整合在同一个网络中,仅需要1 次计算就可以得到最终目标的位置和种类。SSD网络的主要工作原理是在特征提取网络中选定几个卷积层的输出特征图用于目标的检测,由于选定的不同特征图具有不同的像素尺寸,故而保证了不同尺寸的目标都能很好地被检测出来。针对每一个选中的用于检测目标的特征图,相当于将原图片划分为与特征图分辨率相同的N×N个网格,以每个网格为中心检测是否有目标出现在该网格覆盖的区域内,通过将目标检测转换为分类和回归问题得到不同尺度特征图对应的目标框,最终通过后续网络对每个特征图得到的目标框进行统一整合输出,得到最终目标检测的结果。相比于基于区域建议网络(Region Proposal Network,RPN)的目标检测算法,SSD网络通常检测速度较快且对于不同尺寸的目标都有较好的检测效果,图1为SSD网络模型结构图[10]。
图1 SSD 网络模型结构图
从图1 可以看出,SSD 网络使用VGG16 作为特征提取网络,黄色框的部分是对VGG16网络最终输出的特征图进一步进行卷积,压缩输出特征图尺寸,在更大的感受野(Receptive field)中对输入图片中的目标进行检测。SSD 网络模型与单步检测网络(You only look once,YOLO)系列网络模型[12-14]最大的区别在于,YOLO 系列网络只在特征提取网络中使用提取到的最后一层特征图进行目标检测,而SSD 网络则在特征提取网络中选择了多层特征图进行目标检测。
图1描述了SSD网络如何利用多层卷积网络输出的特征图进行目标检测的过程,SSD 网络使用VGG16网络输出特征作为检测目标的特征图的同时,又增加了多层卷积结构,对VGG16网络输出的特征图进一步特征提取,得到分辨率更低,具有更多高级语义特征及感受野的特征图进行目标检测,SSD 网络后续添加的卷积网络整体结构与VGG16卷积层结构保值一致。
2 模型改进与分析
通常目标检测网络分为单步检测网络和两步检测网络,SSD为典型的单步检测网络,目标分类和目标定位功能在同一网络中实现。由于这一特性SSD网络训练过程较为简单,且网络的训练和检测过程耗时较少,但原始SSD 网络存在对小目标检测性能较差的问题。针对原始SSD网络存在的问题,以及肺炎影像的特点,对SSD网络进行优化。
由于部分肺部疾病发病初期病变区域通常较小,如能尽早发现对于后续治疗有很大帮助。但不论是医生还是目前常见的检测算法,对于小病变区域的检测效果都不够理想。同时对数据集中各类肺部病变的统计分析发现,小病变区域占比超过10%。所以对于小病变区域的检测是肺炎影像检测模型的一个重要挑战。通过对数据集中病变区域的尺寸统计,得到的数据见表1。
表1 数据集分析表
通过表1中的数据可知,在整个数据集中,最小的病变区域为宽10.20 像素,高12.14 像素。虽然也存在面积较大的病变区域,但在整个数据集中占比较小且对于检测模型来说也更容易准确识别。在SSD网络的特征提取过程中,通过卷积层的堆叠将输入的原始图片转化为不同深度的特征图,深层卷积网络提取到的特征图具有更多的高级语义特征和感受野,但对于小尺寸目标的关注度会急剧下降。因此,针对肺炎影像识别任务,对SSD 网络最好的改进方法是对不同层次的特征图进行特征融合,充分利用低层次特征图中对小尺寸目标的关注以及纹理、边缘等低级语义特征和高层次特征途中蕴含的高级语义特征。通过由反池化和反卷积层组成的解码器,将信息量较小的特征图进行扩充,保证其学习到的高级语义特征的同时,提高对小尺寸目标的关注度,然后将其与更深层次的特征图进行融合,充分利用不同卷积层提取到的特征信息,保证在不丢失高级语义特征的同时,将更多的底层语义特征传递到最终的检测网络当中。SSD网络特征提取网络中包含大量卷积层,但直接将其输出用于最终检测的特征只有:第4、7、8、9、10和11层。这几个卷积层输出的特征图尺寸分别为(38,38),(19,19),(10,10),(5,5),(3,3),(1,1)。
在这输出用于最终检测的卷积层中,第10层和第11层输出的特征图分辨率差距较小,提取到的特征信息也较为接近,所以将这2 层进行特征融合的意义不大。同时,由于SSD网络模型中卷积网络层数越深,其感受野也就越大,能够检测到的病变区域也就越大,但对小尺寸病变区域的特征会有所丢失。最亟需解决的问题是,提高网络对于肺部疾病小尺寸病变区域的检测,根据卷积网络对特征提取的特性可知,越低层次卷积网络提取到的特征图越能表示小尺寸的病变区域,因此,对SSD 网络的特征融合主要针对第8 层以前的网络。
通过对肺炎影像的分析以及对SSD网络模型的分析,将原SSD网络的第3层和第6层输出特征图进行特征融合;将第7 层和第9 层输出的特征图进行特征融合。并根据2 次特征融合的特点,选用不同的特征融合算法。对第3 层和第5 层输出的特征图进行池化融合;对第5 层和第7 层的特征融合,首先将第5 层特征图经过一个由反卷积和反池化构成的解码器进行特征增强后与第7 层输出的特征图通过element-sum 算法进行特征融合。由于第8 层和第9 层输出的特征图分辨率较小,具有较大的感受野,提取到的特征不能很好的表达小尺寸病变区域,因此,不需要融合第8层和第9层输出的特征图。经过对SSD网络模型分析,将第3层与第6层进行特征融合,同时将第5层与第7层进行特征融合,具体特征融合方法如下。
2.1 转置卷积融合
element-sum 融合方法[15]用于尺寸相同的,2 个特征图进行融合,通过对应元素相加的方法将2 个特征图融合为一个新的特征图,在融合过程中2 个特征图所占权重相同,具体的流程如图2。
图2 element-sum计算过程
将SSD 网络的第5 卷积层输出的特征图,经过一个由反池化层和反卷积层组成的解码器转化为19×19×512 大小的特征图。通过解码器,增大特征图分辨率,增强其表达小尺寸病变区域特征的能力。然后通过一个1×1的卷积层将其调整为与第7层输出特征图相同的分辨率和通道数,最后使用element-sum方法将2 个特征图进行特征融合,得到的特征图用于最终检测和进一步特征提取。图3是该部分特征融合的详细流程。
图3 通过反池化、反卷积对特征进行融合的流程
2.2 池化融合
通过对SSD网络结构分析,对SSD网络的第3卷积层和第6卷积层进行池化特征融合。首先,将第3卷积层的输出特征图经过一个池化层将其分辨率压缩为19×19。然后通过卷积核大小为1×1 的卷积层调整其通道数,使其转化为形状是19×19×1 024 的特征图;然后,通过element-sum 融合方法与第6 卷积层输出的特征图进行特征融合。最后,将得到的特征融合后的特征图经过LeakyRelu 激活函数激活后,作为第7层的输入送入到后续网络中进行进一步特征提取。图4是该部分特征融合的详细流程。
图4 通过池化对特征进行融合的流程
3 实验结果及分析数据集介绍
数据集由2 部分组成,一部分肺部影像图片取自Chest X-ray 数据集,另一部分通过整理目标检测竞赛平台提供的公共竞赛数据集得到,将2 部分数据存储及标注形式进行了统一,生成了一个综合数据集。
ChestX-ray数据集和整理的公共竞赛数据集都是包含14类肺部疾病的X射线影像,几乎涵盖了包括肺不张、变实、浸润、气胸、水肿、肺气肿等在内的常见肺部疾病(图5)。由于构成数据集的2 部分数据存在尺寸和标注方式不同的问题,通过几何变换,修改标准文件的方式,将2 个数据集的图片和标注统一成相同尺寸及存储格式。
图5 数据集部分影像
3.1 评价指标及结果
3.1.1 平均准确率(Average Precision,AP)与平均准确率均值(mean average precision,mAP)
在影像分类问题中,通常使用平均准确率作为衡量模型对于某一种类影像的分类能力。要想计算某一分类的AP,首先要根据实验结果计算出准确率(Precision Rate,P)和召回率(Recall Rate,R)并绘制PR曲线,PR曲线下方的面积就代表了该分类的AP值。具体计算过程如下:
其中,TP 表示真正例即判断正确的正样本数量;FP 表示假正例即判断错误的正样本数量;FN表示假反例即判断错误的负样本数量。计算出准确率、召回率值后,将其绘制成PR 曲线,并对R求积分,得到对应种类的AP值。由于实验过程中计算出的准确率、召回率值都是离散的,故时机计算中通过离散的点拟合AP值。
通常AP 用来衡量整个检测任务中某一类的准确度,平均准确率均值则是对所的AP 值求平均,用来表示模型在该图像检测任务中的整体准确度。
3.1.2 交并比(Intersection-over-Union,IoU)
IoU通常用来衡量目标检测任务中,确定目标的位置及大小是否准确。IoU的计算过程如图6所示,用检测结果区域和实际目标区域的交除检测结果区域和实际目标区域的并,得到的结果即为IoU。当IoU的值达到最大值1 时,表示检测区域与实际目标区域完全重合,IoU的值越接近1表示检测结果越准确。
图6 交并比图形表示
3.2 结果对比
现有的肺炎影像检测网络还包括基于Faster RCNN的两步检测网络和基于YOLO的单步检测网络等多种网络模型,基于Faster R-CNN 的检测网络具有更高的精度,基于YOLO 的网络具有更高的检测速度。为了证明肺炎影像检测网络的有效性,选择了几个典型的网络与网络模型进行对比实验。通过对比mAP和每秒钟检测影像张数(Frames Per Second,FPS)来比较模型的准确率和检测速度。表2为最终实验结果对比。
表2 4种肺部疾病检测模型效果对比
由表2 可知,改进后的网络模型在检测精度和检测速度上都优于Faster R-CNN 网络和YOLO 网络,相比于原始SSD 网络检测精度也有明显提升,但由于特征融合及对网络结构的修改增加了网络的复杂度,故检测速度有所下降。虽然检测速度由原SSD网络的每秒68张下降到每秒58张,仍然是一个可以接受的检测速度。
4 结论
结合肺炎影像检测过程中,小缺陷较多且较难检测的特点,对SSD网络模型进行了相应的改进,解决了对于小缺陷识别准确率低的问题。为了减小模型对小尺寸病变区域的漏检率,对SSD 网络模型的特征提取层进行了融合。首先,将SSD 网络第3 层的输出经过卷积、池化操作调整为与第6 层输入相同的尺寸;然后,将调整过尺寸的第3层网络输出特征图与第6层网络输入的特征图进行融合,该特征融合使用elementsum算法;最后,将特征提取层种第5层的输出,通过一个由反池化、反卷积等操作构成的解码器,调整到与第7层特征图相同尺寸进行特征融合。
为了检测提出网络的性能,通过实验对比了提出网络和基于原始SSD 网络对肺炎影像检测的准确性,同时与YOLO、Faster-RCNN等常见网络也进行了对比试验。从实验结果可以看出:提出网络在整体准确性上优于对比网络,同时在一定程度上解决了小病变区域漏检率较高的问题。