戚永军,顾军华,张亚娟,王 锋,田泽培
(1.省部共建电工装备可靠性与智能化国家重点实验室(河北工业大学),天津 300132;2.河北省电磁场与电器可靠性重点实验室(河北工业大学),天津 300132;3.北华航天工业学院信息技术中心,河北廊坊 065000;4.河北工业大学人工智能与数据科学学院,天津 300401;5.河北省大数据计算重点实验室(河北工业大学),天津 300401)
(*通信作者电子邮箱jhgu_hebut@163.com)
肺结节是肺癌早期最常见的症状,准确检测肺结节是诊断肺癌的关键步骤,国内外相关研究表明,如果能实现早发现、早治疗,肺癌患者5年生存率可由14%提高至49%[1-2]。然而,肺结节检测面临诸多挑战:肺部计算机断层扫描(Computed Tomography,CT)图像具有较高的维度,肺结节外形与周围组织(如血管)很相似,此外,肺结节尺寸很小,但其变化尺度大,例如,在LUNA16[3]数据集中,肺结节直径的变化在3 mm~40 mm,而且肺结节类型多样,类间差别小。
传统的检测方法常常将检测过程分成若干个阶段,每个阶段使用不同的算法。这种分治法虽然可以使每个阶段达到最优,但整个过程不一定能达到最优。此外,传统检测方法通常采用人工设计特征的方法,需要相应领域的算法知识,通用性不强,限制了特征表达能力。
随着深度学习在计算机视觉领域取得成功和多个公开肺部影像数据集的出现,基于二维(Two Dimensional,2D)图像的深度卷积神经网络(Convolutional Neural Network,CNN)肺结节检测方法开始广泛应用,特别是在图片分辨率较高、对比度较明显的CT 图像上,取得了较高的检测精度。由于2D 图像仅仅是CT 序列的横断面图像,不可避免会丢失信息,影响检测精度,为了充分利用CT图像的信息,一些工作[4-6]利用CT图像的冠状位、矢状位等多个视角的2D 图像分别提取特征,然后进行特征融合。由于肺结节是三维(Three Dimensional,3D)的病灶,无论哪个视角的2D 截面都有可能破坏其空间延续性并损失3D 空间信息。例如,在3D 层面上血管和肺结节一目了然,而在2D 层面上两者的横截面却非常相似,直觉上3D 模型更适合肺结节检测。因此一些工作[7-10]尝试使用3D CNN 模型,并在检测精度上取得了不错的效果,但3D CNN 模型参数量大、计算复杂度高、存储空间消耗大、过拟合风险的高[11],很难训练出泛化效果良好的模型。此外,3D 数据标注比2D 数据标注成本更高,且很难找到具有3D 标签的肺CT 图像数据集。
因此,本文提出了一种深度混合卷积模型,目的是在不损失检测精度前提下,使模型具有更高的检测效率和更强的泛化能力。主要工作概括如下:
1)提出一种用于肺结节检测的混合卷积模型,制定了混合卷积规则,实现了在不损失检测精度的前提下减少参数量,并提高了模型的泛化能力和检测效率;
2)通过构建3D 残差模块和3D 反卷积模块,实现多层级特征融合,进一步提升检测精度;
3)在广泛认可的公共数据集上验证和评估了所提出的模型,与基线方法相比,该模型在检测精度和效率方面具有良好的性能。
传统的肺结节检测方法将检测过程划分成若干个阶段,每个阶段使用不同的算法,一般分为图像预处理、生成候选结节、假阳性减少三个阶段。生成候选结节是主要阶段,主要采用分割或过滤两种方法产生候选肺结节图像,该阶段会产生大量的假阳性结节图像,然后在假阳性减少阶段对候选结节进行特征抽取,使用分类器排除假阳性结节。Javaid 等[12]使用直方图阈值法和形态学运算进行结节检测与分割,之后使用支持向量机(Support Vector Machine,SVM)进行结节分类。Li 等[13]提出基于Hessian 矩阵的选择增强滤波器用来增强CT图像中的圆、直线区域,对疑似结节进行检测。Metin 等[14]提出一种基于聚类的肺结节检测算法,利用K 均值聚类实现肺实质分割,然后利用基于规则的方法区分肺结节与其他内部结果,最后使用线性判别分析(Linear Discriminant Analysis,LDA)算法降低假阳性。
随着深度学习的发展,深度CNN 在肺结节检测领域得到广泛的应用。Yaniv 等[15]首次将基于ImageNet 数据集预训练的模型应用到了医学图像识别领域,在433 个医学图像的数据集上进行测试,取得很好的性能。Ypsilantis 等[16]提出了ReCTnet 网络模型,使用卷积神经网络和残差网络提取切片图像特征,并利用长短期记忆(Long Short-Term Memory,LSTM)网络模块学习切片之间的依赖性,证明利用这种依赖性能显著提高了检测肺结节的敏感度。
数据集中的2D 图像是由CT 扫描的横断面图像构成的图像序列,会不可避免地丢失一些信息。因此,为了获得更好的检测性能,一些工作尝试从CT 切片的多个视图中提取特征。Roth 等[17]对候选结节图像进行二维正交采样,生成多角度切片的二维图像,然后训练一个深CNN 分类器,提高肺结节检测精度。Setio 等[5]设计了三种不同的检测模型,同时检测实性结节、亚实性结节、实性大结节等三种类型的肺结节,并利用全连接融合的方法提高检测结果的准确性。
基于多视图的网络模型虽然能进一步丰富2D 图像的信息,但仍不能很好地利用图像上下文之间的信息,因此一些工作提出了3D CNN 模型。Zhu 等[7]提出将3D CNN 和期望最大化(Expectation Maximization,EM)思想相结合,将弱监督学习方法应用到肺结节检测任务中。Dou 等[8]基于肺结节的尺寸不同特点,将数据按照三种尺寸进行分类,选用三种3D CNN模型,最后将输出结果按照比例融合。吕晓琪等[18]设计了3D CNN 模型,输入尺寸是以结节为中心的32×32×32的肺结节图像块,Zhu 等[19]设计了两个3D CNN 模型分别用于结节的检测和分类。这些方法都验证了3D CNN 能够更加充分地利用肺结节的三维空间信息,有效地降低假阳性率。
综上所述,深度CNN 模型与传统检测方法相比不受领域知识限制,能自动提取图像特征,更合适在大规模数据集中使用,适用性更广,检测精度更高;2D CNN模型更容易找到预训练网络模型和标注数据集,模型参数相对不大,泛化能力强,效率更高,但不能充分利用CT 图像上下文信息,检测精度受限;3D CNN 模型能充分利用上下文信息,更容易得到好的检测效果,但需要付出更多的计算能力和存储空间,承受更高的过拟合风险。因此,本文通过构造一个深度混合卷积神经网络模型来寻求检测效率和精度之间的平衡。
网络模型如图1 所示。模型由4 部分组成:特征提取模块、特征融合模块、混合卷积模块和肺结节检测模块。
输入图像首先进入由1 个3D 卷积层和2 个3D 残差块组成的特征提取模块,然后抽取的特征图进入特征融合模块,先在3D残差块中进行卷积操作,接着进行反卷积操作将其尺寸升至相邻特征图的大小后再进行特征融合。融合后的特征图进入混合卷积模块进行深度特征提取,最后进入肺结节检测模块进行肺结节检测。
图1 深度混合卷积神经网络模型Fig.1 Deep mixed convolutional neural network model
CNN 模型的深度是非常重要的,深度网络可以提取到丰富的图像特征,但网络层级达到一定数量之后,会引发梯度消失或者弥散问题,导致深度网络无法训练[20]。为了解决这个问题,He 等[21]提出了由多个残差块组成的深度残差网络,每个残差块由一个简单的网络块和跳跃连接组成,详细结构如图2(a)所示。假设F(x)是原始网络输出,增加跳跃连接后的实际输出为H(x)=F(x)+x,网络对F(x)的拟合转换为对H(x)的拟合。如果F(x)=0,则H(x)=x,这种结构保证了恒等变换,让网络朝着恒等映射的方向收敛,能有效解决网络过深带来的梯度消失问题。为此,把2D 残差模块改为3D 残差模块,同时,在3D 卷积层之后增加3D 批归一化(Batch Normalization,BN)层,BN 有利于加快网络收敛。为了获得更好的特征,在跳跃连接中添加了3D 卷积和3D 批归一化操作,如图2(b)所示。
图2 2D和3D残差块Fig.2 2D residual block and 3D residual block
与2D 卷积不同,3D 卷积需要在三维窗口上进行卷积操作,以便得到相应的输出值。卷积核大小为3×3×3,步长为1,填充为1。卷积过程如图3 所示,卷积核依次按步长大小在X、Y、Z三个方向上滑动。
图3 3D卷积过程Fig.3 3D convolution process
深度CNN 中浅层主要抽取图像的中、低级特征,如肺结节图像的边缘信息、形状、灰度值等,深层主要抽取图像的高级特征,如类别信息等。特征融合模块将得到的深层特征图经过卷积核为2×2×2、步长为2 的反卷积操作,使其与相邻特征图尺寸相同后再进行特征融合。本文使用的特征融合方法是向量拼接,假设有两个特征向量v1和v2,两向量融合可以表示为v=[v1,v2],如图4 所示。反卷积本质是一种特殊的正向卷积,先对特征图补充0 扩大其尺寸后再进行正向卷积。卷积核的参数与正向卷积核一样通过训练得到。
图4 特征融合模块Fig.4 Feature fusion module
肺结节的本质是3D 图像,直观上,3D CNN 对肺结节的中、低级特征表示能力更强,而高层语义特征2D CNN 就可以很好地表达。基于这样的想法,先在模型浅层使用3D CNN精确提取特征,然后在深层使用2D CNN 进行语义识别,达到在不损失检测精度的前提下减少模型参数量的目的。
3D CT 图像是由多张相邻CT 切片堆叠而成。如图5 所示,左图为多张相邻2D CT 切片堆叠的3D 图像,右图为一张2D CT切片。令X轴与Y轴构成的平面表示2D切平面,Z轴是同一序列的连续切片图像的堆叠方向。
图5 三维CT图像Fig.5 3D CT images
基于这一点,假设3D 特征图可表示为B×C×D×W×H的5维张量,B是批处理数量,C是通道数,D是深度(相当于图像的Z轴方向),W是宽度(相当于图像的X轴方向),H是高度(相当于图像的Y轴方向)。由于Z轴代表了2D 切片图像的堆叠方向,结合3D 图像的组成方式,不破坏图像的原始信息以及符合卷积的过程,对3D 特征图的D维进行拆分。通过矩阵变换将3D 特征图的5 维张量变为4 维张量B′×D×W×H,其中B′=B×C,使其符合2D CNN 的维度要求,然后按照维度D进行分解,分别进行2D卷积,之后将得到的特征图按通道拼接。经过矩阵变换得到的维度与输入张量的维度相同,以便进行最后的肺结节检测。图6 给出了这个过程的混合卷积规则,其中2D 卷积层由2个Convolution-BN-ReLU 单元组合形成,卷积核均为3×3,步长为1。Convolution-BN-ReLU 的组合有利于在混合卷积的情况下加快网络收敛,还能有效解决梯度消失问题,促进梯度在反向传播中的传递。
图6 混合卷积模块Fig.6 Mixed convolution module
本文参照Ren 等[22]的工作实现肺结节检测,共设计了3种不同比例的锚框(Anchor Box),用于检测不同尺寸的肺结节。锚框的损失函数由分类损失和回归损失两部分组成。用(gx,gy,gz,gr)表示真值框(Ground Truth),用(ax,ay,az,ar)表示锚框。前三个元素表示矩形框中心点的坐标,最后一个元素表示结节的直径。令模型分类预测的概率为,真实标签为p(p∈{0,1},0 表示负样本,1 表示正样本),则分类损失函数可由等式(1)表示:
真值框的位置定义为:
其中:
锚框总的损失函数如等式(8)所示:
其中:λ是权重,用于平衡分类损失和回归损失,此处设置为1。
本次实验使用的数据来自ISBI(International Symposium on Biomedical Imaging)2016 中的肺结节大赛LUNA16。该数据集包含了888 个病例的CT 扫描,肺结节直径范围为3 mm~40 mm。本文参考Liao 等[23]的工作,对输入CT 图像进行预处理。首先,根据HU(Hounsfield Unit)的阈值进行肺实质分割,对掩码进行膨胀操作,去除肺部的空洞。然后,根据数据标签获得肺结节的质心位置,以肺结节的质心为中心,向X、Y、Z三个方向进行延伸,切割出96×96×96 的小块图像,作为网络训练数据集。训练集划分为10 份,每份所含有的CT 图像数量相同,训练阶段其中8 份作为训练数据,1 份作为验证集,1 份作为测试集,实验采用10 折交叉验证的方式,即每次实验都会得到相应的正确率,10 次结果的平均值作为算法精度的估计。
本文共设计了三类实验:一是混合卷积模块相关的实验,主要验证混合卷积模块在模型中部署位置和3D 特征图的分组卷积等因素对模型的影响;二是和3D模型的参数量和检测性能的比较;三是和肺结节检测基线方法的比较。
本文采用无限制受试者操作特征(Free-response Receiver Operating Characteristic,FROC)曲线验证检测模型的性能,自变量是每次扫描CT 切片中平均假阳性的数量(False Positives Per Scan,FPPS),RFPPS∈{0.125,0.25,0.5,1,2,4,8},因变量是检出率或称作敏感度Sen(Sensitivity),其与真阳性TP(True Positive)和假阴性FN(False Negative)之间的关系如式(9)所示:
FROC 曲线不仅反映了每次扫描假阳性结节数与敏感度的关系,还反映了模型的综合搜索能力。
3.2.1 与混合卷积模块相关的实验
在混合卷积模块中(见图6),依次将D拆分为2、4、6、8、12和24组,实验结果如表1所示。
表1 分组卷积的敏感度Tab.1 Sensitivities of block convolutions
表1 中的结果表明,检测精度随着组数的增加而提高,但当组数大于8 时,检测精度不但没有提高,模型也出现了不能收敛的现象。主要原因是组数的增加导致特征通道数的减少,从而增强了相邻CT 切片之间特征的相关性,同时也容易产生特征冗余。经过多次实验,发现当组数为4 时,模型的性能最好。
为了验证混合卷积模块最优的部署位置,建立了三种网络结构:2MC3、3MC2 和M2C。其中:混合卷积模块部署在网络浅层时定义为2MC3;混合卷积模块部署在深层时定义为3MC2;以特征融合为界限,将混合卷积模块放在特征融合之前,先将深层特征进行2D CNN 语义特征提取,再进行特征融合操作,部署位置定义为M2C。实验结果如表2 所示,可以看到3MC2模型的敏感度最高。
表2 不同网络结构的敏感度Tab.2 Sensitivities of different network structures
3.2.2 与3D模型的比较
在本节中,将本文模型与DeepLung[19]中提到的Res18FasterR-CNN 模型进行比较。该模型是多个3D 残差块堆叠而成的类似U 型网络的模型,本文模型对其主要的改进是将网络深层的3D 残差模块替换成混合卷积模块。这样改进的优点是:3D CNN 从3D 视角提取肺结节特征,2D CNN 从2D 视角(即CT 图像切片)提取肺结节特征,两者结合得到图像特征更加丰富,从而能提高模型的精度。
图7是两种模型比较的FROC曲线,有效说明了混合卷积模型的有效性。表3是两模型参数量的比较。
图7 可以看出本文模型的综合性能比Res18FasterR-CNN要高,但在假阳性小于0.5 时两者敏感度相差不多,甚至Res18FasterR-CNN 要好一些,原因可能是3D 模型对肺结节图像的局部细节具有更强的特征表示能力,对检测精度要求特别高的情况下,3D模型表现得更好。
图7 本文模型与Res18FasterR-CNN模型的FROC曲线Fig.7 FROC curves of proposed model and Res18FasterR-CNN model
由表3 可以看到,本文模型的参数数量约为Res18 FasterR-CNN 的1/2,并且模型的训练时间和测试时间均比Res18FasterR-CNN 模型短,因此本文提出的混合模型在不损失检测精度的前提下,具有较高的检测效率和较强的泛化能力。
表3 模型参数的比较Tab.3 Comparison of model parameters
3.2.3 与基线方法的比较
为了进一步验证提出模型的有效性,分别与包括2D 和3D 模型的来自文献[6]、文献[5]、文献[8]和文献[19]共四种肺结节检测模型进行比较。为保持公平性,所有模型都在相同数据集上进行了实验。实验结果如表4所示。
表4 各模型在不同假阳性数量下的敏感度Tab.4 Sensitivities under different false positives of different models
从表4 中可以看到,本文模型在不同假阳性数量上都比参与对比的模型获得更好性能,与3D 模型相比,能获得较高灵敏度的同时,具有更少的参数,节省了计算和存储空间。
本文通过在深度神经网络的浅层和深层分别部署3D CNN 模块和2D CNN 模块来构建混合卷积肺结节检测模型。由于浅层特征主要是图像局部细节特征,3D CNN提取特征的能力更强,而深层特征主要是图像语义特征2D CNN 就可以很好地工作,并且通过反卷积模块融合不同层级的特征,通过混合卷积模块融合2D 和3D 的图像特征,使该模型在肺结节检测任务中同时具备2D 模型的检测效率和3D 模型的检测精度。在LUNA16 数据集上的大量实验结果表明,与参与对比的模型相比,本文模型在检测精度和效率方面取得了更好的表现。