李 策, 许大有, 靳山岗, 高伟哲, 陈晓雷
(兰州理工大学 电气工程与信息工程学院, 甘肃 兰州 730050)
受吸烟人数上升及空气质量较差等问题的影响,肺气肿的发病率逐年增加,且逐渐呈现低龄化趋势,肺气肿已成为医护工作者临床诊断的重点疾病之一.肺气肿患者如不能及时诊断并采取相应治疗措施,容易导致肺功能急剧下降,甚至在病变不断积累后引起自发性气胸、慢性肺源性心脏病、呼吸衰竭等并发症,严重影响个人正常的工作和生活.由于我国医疗资源严重不足,计算机辅助诊断技术[1](computer aided diagnosis,CAD)在临床医疗诊断过程中具有巨大的实际应用价值,使用肺气肿检测算法不仅可以帮助医生对就诊者是否患有肺气肿及其发病位置做出更准确判断,还能够极大程度上减轻医生重复性工作的负担,使其能够投入到需要专业技能排查的病患问题当中,从而提高有限医疗资源的利用率,使更多的患者享受到更优质的医疗资源.
传统的肺气肿等病灶检测算法主要通过提取图像的梯度方向直方图(histogram of oriented gradient,HOG)、尺度不变特征变换(scale-invariant feature transform,SIFT)等特征,实现对部分肺部病灶的检测.2011年,Cao等[2]利用支持向量机(support vector machine,SVM)实现对肺气肿图像的分类.2012年,Ren等[3]通过提取肺结节的三维特征,实现了对肺结节的二分类诊断.传统的机器学习算法虽然实现简单,计算量较少,且在部分数据集中具有良好的检测效果,但其提取的特征对目标的表征缺乏完备性,因而普遍存在检测精度不高、模型泛化能力差等缺点.
随着深度学习的发展,利用卷积神经网络可以提取出医学图像中更具有表征性的病灶特征,从而实现更高精度、泛化性更强的肺气肿等病灶的检测模型.2017年,Wang等[4]利用深度学习网络对肺气肿患者的胸片图像进行分类诊断,并利用阈值法确定了胸片图像中病灶位置边界框的大致范围.Yao等[5]在2018年利用深度学习网络,对肺气肿与正常胸片图像进行分类,并探索了肺气肿与其他病灶出现的潜在联系.
胸片图像是X射线途经胸部所有组织的投影总和,与自然场景中图像不同,胸片图像属于重叠图像.图像中不同的灰度反映了不同的组织密度,纵向组织中的投影会对肺气肿特征造成较大干扰.在基于深度学习的检测算法中,VGG[6](visual geometry group)、ResNet[7](residual neural network)等传统的特征提取网络,最初是针对图像分类任务而设计的.将上述特征提取网络应用在如病灶检测、病灶分割等计算机视觉任务中时,主要存在三个方面的问题:第一,网络缺乏对不同特征通道中特征信息的筛选能力,不能有效突出含病灶信息较多的特征通道,抑制含大量无用信息的特征通道;第二,胸片图像中重叠的组织结构带来的局部噪声信息较多,而传统卷积核采样范围较小,所提取的特征图感受野不足,易受噪声信息影响;第三,训练样本中存在大量简单负样本,这些样本会主导梯度的更新方向,使网络无法学习到有效信息,进而影响目标的分类准确度.
此外,胸片图像中的肺气肿有别于普通自然场景图像中目标,前者需要保持在一定对比度范围内才能有效突出病灶特征,因此,传统图像训练时所采用的色域扭曲、直方图均衡化等预处理方式并不适用于胸片图像数据的训练,在进行肺气肿检测时需根据其特点采取相应的图像预处理策略.其次,胸片中肺气肿的尺度与自然场景中目标尺度差异较大,需根据病灶尺寸设计符合肺气肿尺度的先验框.最后,胸片图像是使用正反机位拍摄的正视图且病灶位置相对固定,在数据扩充时不宜采用传统算法中大幅度旋转图像的扩充策略.
为此,本文结合ResNet特征提取网络,提出了一种基于通道注意力与空洞卷积的胸片图像肺气肿检测算法EDACD(chest X-ray emphysema detection algorithm based on channel attention and dilated convolution).针对传统检测算法缺乏特征通道筛选能力的问题,分别在主干特征提取网络及特征金字塔网络中加入通道注意力模块[8],构建了SE-ResNet(squeeze and excitation residual neural network)及SE-FPN(squeeze and excitation feature pyramid network).通道注意力模块通过增强含关键病灶特征的特征通道中信息,抑制冗余通道中信息,使网络具有对不同特征通道中特征信息进行加权的能力.此外,为了在不损失特征图空间分辨率的基础上扩大特征图的感受野,进一步将特征提取网络残差块中3×3的普通卷积替换为空洞卷积,在SE-ResNet的基础上构建了SED-ResNet(squeeze and excitation and dilated convolution residual neural network)以增大卷积核的采样范围,减少来自其他组织结构的局部的噪声信息干扰.最后,为减轻检测网络在训练过程中的样本不平衡问题,分别采用Focal Loss[9]、Balanced L1 Loss[10]作为网络的分类损失函数和回归损失函数.
在训练过程中,为有效突出肺气肿特征,本文采用CLAHE (contrast limited adaptive histogram equalization)[11]对图像进行预处理.针对高质量带标注的医学图像数据较少的问题,分别对图像进行水平翻转、对角翻转、垂直翻转、正旋转10°和负旋转10°五项操作,对原始数据进行数据扩充.最后,利用聚类算法对肺气肿标签进行聚类[12],确定适合胸片中肺气肿尺寸及比例的先验框参数,加速网络训练的同时提高模型检测精度.
Faster-RCNN[13]、SSD[14]、M2Det[15]等检测算法存在三个问题:1) 网络缺乏特征通道筛选能力;2) 卷积核采样空间较小,特征图感受野不足,易受局部噪声信息干扰;3) 训练样本不平衡,简单负样本对损失起主要贡献作用,降低了网络学习有效信息的能力.针对这三个问题,本文提出了一种基于通道注意力与空洞卷积的胸片肺气肿检测算法EDACD.下面将对EDACD算法从网络结构、损失函数、训练策略三个方面展开详细介绍.
本文所提的基于通道注意力与空洞卷积的胸片肺气肿检测网络结构如图1所示.网络主要由三部分组成,分别是:1) 基于通道注意力及空洞卷积增强的主干特征提取网络SED-ResNet101,用以提取多尺度肺气肿特征;2) 基于通道注意力增强的特征金字塔网络SE-FPN,对包含不同语义信息与位置信息的多尺度特征进行融合;3) 三个独立全卷积分类回归网络,用以解码特征形成最终的预测结果.
图1 基于通道注意力与空洞卷积的胸片肺气肿检测网络结构图
在通道注意力模块中,特征图首先沿特征通道方向进行全局平均池化,实现对特征的压缩处理.生成具有全局上下文信息的通道特征描述.压缩操作的具体表达式为
(1)
式中:uc为特征图中第c通道的特征向量;W、H分别为特征图的宽和高;Ζc代表具有全局上下文信息的通道特征描述.
随后,为构建通道特征描述之间的非线性关系,并且避免深层网络的梯度消失及梯度爆炸问题,将压缩所得的特征进行全连接操作后通过ReLU激活函数对特征向量进行非线性激活.之后,使用Sigmoid激活函数将通道特征进行归一化处理后生成通道注意力权重,表达式为
s=σ[W2δ(W1z)]
(2)
式中:s为输出通道注意力权重;z为全局平均池化后得到的一维向量;W1、W2分别为两个全连接层的权值矩阵;δ为ReLU激活函数;σ为Sigmoid激活函数.
最后,利用上述所得通道注意力权重与对应通道的另一组保持不变的特征图相乘,即可实现通道注意力操作,使网络具有通道筛选能力,表达式为
(3)
其中,主干特征提取网络SED-ResNet101通过在ResNet101特征提取网络的基本残差块中加入通道注意力模块和空洞卷积构建而成.SED-ResNet101中使用的基本残差块结构如图2所示.
图2 SED-ReNet101中基本残差块结构Fig.2 Architecture of basic block in SED-ResNet101
输入特征在残差块中首先依次经过卷积核大小分别为1×1、3×3、1×1的卷积操作.在卷积过程中,为了在不损失特征分辨率的条件下增大所得特征图的感受野,残差块中3×3的卷积核使用空洞率为3的空洞卷积,通过增大卷积核的空间采样范围,抑制周围组织产生的噪声信息干扰,从而提高所提取特征的表征能力.
特征图经过上述三个卷积操作后的结果被复制为两组.其中,一组进入通道注意力模块,生成通道注意力权重.另一组特征利用通道注意力模块产生的注意力权重对各个特征通道进行加权后作为每个残差块的最终输出.
经过上述SED-ResNet101特征提取网络后,以1 024×1 024分辨率的输入图像为例,分别得到三组大小为256×256、128×128、64×64的有效特征层.网络中深层特征具有较强的语义信息,浅层特征具有较强的空间位置信息.为加强病灶特征的表征能力,本文利用通道注意力改进特征金字塔网络,构建SE-FPN对三组特征进行多尺度特征融合操作,如图3所示.图中深蓝色特征通道表示获得通道注意力权重较大的网络通道,浅蓝色特征通道表示获得通道注意力权重较小的网络通道.
图3 SE-FPN结构Fig.3 Architecture of SE-FPN
在SE-FPN中,相邻尺度的特征图经过上采样操作转化为同一尺度后进行特征图逐像素相加操作,进行特征融合.融合后的特征经过一个卷积层卷积后,进一步通过通道注意力模块,获得具有不同通道注意力权重的多尺度强表征特征.
经过SE-FPN后,网络生成三个具有不同通道权重的多尺度的有效特征层.网络利用三个独立的分类回归网络对多尺度有效特征层进行解码,其中,每个尺度的分类回归网络均各由4层全卷积网络构成.随后,将解码得到的特征向量级联后进行预测,分别得到生成预选框中的病灶位置信息与类别概率,经过软非极大值抑制后生成网络最终的预测结果.
为克服病灶检测算法中正负样本不平衡的问题,使网络专注于难负样本的训练,本文采用Focal Loss作为病灶分类检测网络的损失函数.同时,为平衡分类任务和回归任务的损失,本文使用Balanced L1 Loss作为病灶回归网络中的损失函数.
所提算法总损失函数如下式所示:
Lp,u,tu,v=Lcls(p,u)+λ[u≥1]Lloc(tu,v)
(4)
式中:Lcls为分类损失;Lloc为回归损失;λ为平衡权重;p为预测概率;tu对应边界框回归网络预测的对应类别u的回归参数;v对应真实目标的边界框回归参数,本文取值为2.
分类网络中所用的Focal Loss如下式所示:
Lcls(pt)=-αt(1-pt)γlogpt
(5)
式中:pt为其中某一类别的分类概率值;αt为可调节参数,用以平衡正负样本,本文取值为0.25;γ为缩放因子,用于放大困难样本对损失的权重,本文取值为2.
回归网络中所用的Balanced L1 Loss如下式所示:
(6)
(7)
式中:α、γ为比例控制系数,本算法中分别设置为0.5、1.5.
胸片图像属于X射线途经胸部组织后产生的投影重叠图像,且拍摄角度固定,与自然场景中拍摄的图像存在差异,需要进行针对性的预处理与扩充操作.此外,胸片图像中的肺气肿与自然场景中的目标在尺度上差异较大,需要对先验框参数进行合理调整,以进一步提高网络的检测性能以及训练收敛速度.
1.3.1CLAHE
图像预处理是目标检测任务中的一个重要环节,通过合理的预处理操作可以有效限制图像中噪声,增强目标特征,进而提高检测精度.自然场景下的图像由于色彩跨度大,常采用直方图均衡化算法进行预处理,但在医学图像中,直方图均衡化算法在灰度较为集中的区域中,直方图被均衡至非常稀疏,从而导致对比度增强过大,成为噪声,一些区域因为直方图均衡化调整后还会丢失一部分细节.针对上述问题,本文采用CLAHE对胸片图像进行预处理,通过限制直方图分布的阈值,可以将超过该阈值的分布均匀分散至概率密度分布上,由此来限制转换函数的增幅,从而增强胸片图像中的病灶特征.
原始胸片图像、经过AHE (adaptive histogram equalization)处理后的图像以及使用CLAHE处理后的图像如图4所示.可以看出,利用CLAHE预处理过后的胸片图像中骨骼、组织脉络更为清晰.此外,图像灰度分布均匀,去除强噪声的同时对局部细节信息进行了增强,有助于帮助网络学习到更具表征能力的病灶特征.
图4 不同预处理方式结果对比Fig.4 Results of different preprocess methods
1.3.2数据扩充
高质量标注数据较少一直是医学图像处理与检测算法中的主要问题之一.由于胸片图像拍摄时通常采用正机位拍摄,且肺气肿位置相对固定.因此,本文分别对原始图像进行水平翻转、垂直翻转、对角翻转、旋转正10°和旋转负10°五项操作,部分数据扩充后示例如图5所示.
图5 数据扩充示例Fig.5 Data expansion example
通过数据增强可提升模型的训练效果,同时,多角度的胸片训练图像可以一定程度防止模型训练过程中的过拟合现象.
1.3.3先验框优化
符合目标尺寸的先验框不仅可以有效提升网络回归任务的精度,并且能够加快模型的收敛速度.自然场景图像中目标尺度不一,长宽比例跨度较大,且出现在图像中的任意位置.而胸片图像中的肺气肿病灶常出现于腺泡中央或左右肺隔旁,且病灶区域通常为竖直矩形框.因此,需要设计更加符合肺气肿特征的先验框.
本文通过K-means聚类算法对数据集中标签信息进行聚类,将有效特征层进行回归时先验框的anchor size分别设置为81、127、189,将先验框的anchor ratio分别设置为1.17、1.92、2.87.聚类后的先验框如图6所示.
图6 先验框优化示意图Fig.6 Diagram of prior frame optimization
胸片图像中的肺气肿标注多为竖直方向的矩形框,由对比图可知,肺气肿根据聚类算法结果优化后的先验框,更符合肺气肿尺度及宽高比例,故而可有效提升网络的训练效果及检测精度.
为验证所提算法的有效性,本文在公开数据集ChestX-Det10[16]、ChestX-Det8[4]中进行了各项实验.其中,ChestX-Det10是NIH ChestX-14数据集中的一个子集,由三位放射科专家从NIH-ChestX-14数据集中挑选出3 543张正面视图的胸部X-ray图像并对其进行类别及位置的标注,图像分辨率为1 024×1 024.所提算法在此数据集中与目前部分主流检测模型进行了对比.ChestX-Det14数据集由NIH临床中心发布,包含了30 805名患者的112 120张正面视图的X射线图像,其中肺气肿标签为分类标签.本文在此数据集上通过将网络尾部微调后仅输出分类结果,与基线模型及前人工作[4-5]进行了对比.本文在训练及测试过程中,为加快训练速度,所有实验均采用224×224分辨率的图像进行.
为确保对比实验的可靠性,本文所有对比实验均在同一工作站进行.实验所用工作站配置为:Ubuntu 16.04操作系统,Intel i7-9700K,3.60GHz CPU,GeForce GTX 1070,8G显存.所有网络均使用Keras深度学习框架.卷积网络的初始化权重为ImageNet中预训练后的Resnet101+FPN模型权重.在训练过程中,使用随机梯度下降优化算法对损失函数进行优化,动量设置为0.9,正则化系数设置为0.000 5.在训练过程的前50个批次中,首先将特征提取网络冻结,设置初始学习率为e-4.学习率的调整采用学习率自动下降策略,使网络训练过程中的学习率根据验证集损失在初始学习率的基础上按衰减因子下降,batch_size设置为4,对分类回归网络进行重点训练.随后,将学习率调整为e-5,batch_size设置为2,解冻所有网络层细化训练100个批次.最后,取验证集上损失函数最小的一次作为最优模型用于测试.
AP(average precision)指标被广泛应用于目标检测领域评估中.本文选用IoU(Intersection over Union)为0.75及0.5时的AP值作为ChestX-Det10数据集中肺气肿检测精度的评价指标.AP值为P-R(precision-recall)曲线下的面积,P-R曲线以召回率作为横坐标,精确率作为纵坐标,反映了随着召回率的增加,模型精确率的变化情况.AP值越接近于1代表模型检测性能越好.其中,准确率和召回率的定义为
(8)
(9)
式中:TP为真正例;FP为假正例;FN为假负例.
准确率表示正确预测正样本占所有预测正样本的比例,召回率表示正确预测正样本占所有实际正样本的比例.AP值根据预测标注框与真实标注框面积之间的IoU阈值进行评估.
本文选用AUROC(area under the receiver operating characteristic curve)作为ChestX-Det8数据集中肺气肿图像分类精度评价指标.AUROC是以FPR(false positive rate)值为横轴,TRP(ture positive rate)值为纵轴,基于0到1之间不同的阈值所绘制的曲线下的面积,用以检测模型的分类能力.其中,FPR为模型将正样本错分为负样本的概率,TRP为模型将正样本正确分类的概率.
为验证算法所改进的各网络结构及所采用的训练策略的有效性,在ChestX-Det10数据集中分别进行了两组消融实验.第一组消融实验通过依次组合空洞卷积、SE-FPN、SE-ResNet101三种网络改进,对所改进的各模块的有效性进行了验证.第二组消融实验依次采用不同训练策略的组合,以验证算法所采用训练策略的有效性.
首先,对网络中所加各模块进行消融实验,验证所加模块的有效性.类激活映射图可以通过反向梯度计算反映图像中哪些部位对最终的类别预测具有较大的贡献作用.不同网络结构对应的SE-FPN输出有效特征层中类激活映射结果如图7所示.
图7中Baseline对应使用未对网络进行改进的基线模型所得结果,Baseline+SE-ResNet对应特征提取网络中加入通道注意力模块后的结果,Baseline+Di对应在特征提取网络中使用空洞卷积后的结果,Baseline+SEDI-ResNet对应使用SEDI-ResNet101后的结果,EDACD为本文所提模型结果,GT为原始标注.由类激活映射图结果可知,部分GT图标注所对应区域中,在使用原始网络时未出现映射结果的位置,通过加入通道注意力模块及空洞卷积,增强特征表征能力后,在标注对应位置处出现了能够使网络做出正确类别预测的类激活映射.
图7 消融实验类激活映射结果对比Fig.7 Comparison of activation mapping results in ablation experiments
表1中的实验数据均为采用本文所提三个训练策略的基础上所训练模型的检测精度.其中,AP@0.75IOU为交并比为75%时模型的检测精度,mAP@0.50IOU为交并比为50%时模型的检测精度.由实验结果可知,本文所加入的各个模块均对检测效果有所提升.其中,在主干特征提取网络中加入通道注意力模块并使用空洞卷积后,模型在交并比阈值为0.50时的检测精度达到了54.59%.在使用本文所提的SEDI-Resnet以及SE-FPN后,模型在交并比阈值为0.50时的检测精度达到了79.77%.
表1 所加模块消融实验
为验证本文所采用训练策略的有效性,进一步在ChestX-Det10数据集中对训练策略进行消融实验.消融实验结果见表2.
表2 训练策略消融实验
表2的实验数据均为采用本文EDACD模型的情况下,使用不同训练策略的组合训练模型所得精度.其中策略A表示使用CLAHE进行预处理,策略B表示对原始数据进行数据扩充,策略C表示根据肺气肿标注数据优化先验框参数.实验结果表明,三种训练策略均可一定程度提升网络检测精度.同时使用三种训练策略进行训练时,EDACD模型肺气肿检测精度最高,分别在交并比为75%与交并比为50%时mAP指标达到了53.20%及79.77%.
近年来,基于深度学习的检测算法按照模型结构分为两种模式:基于回归的一阶段检测算法(one-stage detection)和基于候选框的两阶段检测算法(two-stage detection).前者有较强的实时性,代表算法有M2Det[15]等算法;后者有较高的检测精度,代表算法有Faster-RCNN[13]等算法.为说明所提算法在胸片病灶检测任务中的有效性,在公开数据集ChestX-Det10中将EDACD算法与三种主流检测模型Faster-RCNN[13]、M2Det[15]、Retinanet[9]进行对比实验,所有对比网络均为原始网络,且未采用任何训练策略.客观实验结果见表3.
表3 ChestX-Det10数据集中对比实验
表3实验结果表明,采用本文中网络结构及训练策略后,EDACD算法在ChestX-Det10数据集中针对肺气肿检测任务相比主流检测模型有更高的检测精度.在交并比为0.75时,AP值为53.20%,在交并比为0.50时,AP值达到79.77%.EDACD算法与主流检测算法在ChestX-Det10数据集中的主观实验结果如图8所示.
图8 ChestX-Det10数据集中主观结果Fig.8 Subjective results on ChestX-Det10 dataset
为进一步说明EDACD算法的有效性,将该算法同Wang和Yao等[4-5]的工作以及基线模型Retinanet[9]在ChestX-Det8数据集中进行了对比实验.因ChestX-Det8数据集中肺气肿图像标签为One-hot形式且数据量较大,在实验过程中,选择了数据集中前7个子集的共15 387张有肺气肿One-hot标注的图像按训练集测试集8∶2的比例进行训练与测试.为了在分类标准下与前人研究工作进行对比,EDACD算法及基线模型若检测到肺气肿目标,则标注对应胸片图像的One-hot检测结果为1,若未检测到肺气肿目标,则标注对应胸片图像的One-hot检测结果为0.客观实验结果对比见表4.其中,EDACD算法精度为使用所提模型及训练策略后得到的精度,基线模型精度为使用原始网络且未使用任何训练策略时的检测精度.
对比实验结果表明,EDACD算法在ChestX-Det8数据集中依然能够取得更好的肺气肿检测精度,说明该算法具有较好的鲁棒性.此外,本文还将不同算法的检测时间进行了对比(见表4),实验结果表明EDACD算法在同精度范围内的检测速度上也具有一定优势.
表4 ChestX-Det8数据集中对比实验
本文针对肺气肿检测问题提出了基于通道注意力与空洞卷积的肺气肿检测算法EDACD.利用通道注意力机制增强特征提取网络及特征融合网络,可使其具备通道筛选能力,有效突出肺气肿病灶信息较多的特征通道.空洞卷积能够在不增加模型复杂度的情况下,使网络生成感受野更大的特征图,有助于降低提取肺气肿特征时局部组织噪声的干扰.有效预处理方式可以降低图像中噪声,增强目标特征.符合肺气肿尺寸的先验框能够提高检测精度并加快模型训练收敛速度.适当的数据增强可以提升模型的泛化能力并有效防止网络过拟合现象.主观和客观实验结果表明,本文的EDACD算法取得了较好的肺气肿检测效果.今后将进一步提升网络结构,实现多种病灶遮挡且病灶特征不显著的胸片图像中弱特征多病灶检测网络.