孙浩天,袁 刚,杨 杨,刘含秋,郑 健,杨晓冬,张 寅
1.中国科学技术大学,合肥230026
2.中国科学院 苏州生物医学工程技术研究所 医学影像实验室,江苏 苏州215163
3.复旦大学附属华山医院 放射科,上海200041
肺癌在我国和世界范围内都是发病率和死亡率最高的癌症之一。2019 年国家癌症中心统计数据显示,2015 年我国肺癌发病率和死亡率分别达到每10 万人57.26 人、每10 万人45.87 人,在全部癌症中均高居榜首[1]。肺结节是肺癌的早期症状之一,通常是存在于肺实质区域内直径在3~30 mm 左右的近似球型病灶[2]。肺结节的早期发现及治疗是提升肺癌患者生存率的关键,而肺结节的良恶性诊断对治疗方案的选取起着至关重要的作用[3-5]。计算机断层成像(Computed Tomography,CT)是临床上主要的肺结节筛查手段之一。由于肺结节体积较小,医生在阅片时注意力需高度集中,长时间阅片容易疲劳,从而造成误诊或漏诊的现象发生。计算机辅助诊断系统(Computer Aided Diagnosis systems,CADs)可以辅助医生进行筛查及诊断,减轻医生的负担。完整的肺结节CADs包括肺结节检测、假阳性降低及肺结节良恶性分类三部分。由于肺结节尺寸、形状、纹理多样(图1),CADs 在肺结节良恶性分类问题上还存在挑战。
图1 良性肺结节与恶性肺结节示意图
CT 图像由于采集设备及参数设置的不同,病例之间普遍存在层间分辨率不同的现象。例如公开数据集Lung Image Database Consortium and Image Database Resource Initiative(LIDC-IDRI)[6-8]的数据来自7 家不同的医院或研究机构,CT 层间分辨率范围在0.6~6.0 mm而层内分辨率普遍在0.5 mm 左右。对此,大多数文献的做法是采用插值的方法使所有数据的层内层间分辨率统一[9-13],例如采用双线性插值将分辨率统一为1.0 mm 或者0.5 mm。但是如果插值为较大的分辨率(如1.0 mm),则层内分辨率降低,丢失部分信息(如图2所示,结节内部纹理信息及边缘信息都有不同程度上的丢失),插值为较小的分辨率(如0.5 mm),则会大幅增加CT 图像矩阵的存储空间及后续算法处理的计算量,并且插值操作本身也增加了数据预处理的复杂度。
图2 插值前后图像分辨率对比
卷积是一种局部性的特征提取操作,为了获取全局信息,需要将网络层数加深,使卷积拥有更大的感受野。但是三维卷积神经网络的参数量较多,受显卡的显存限制,三维卷积神经网络深度有限,使浅层三维卷积获取全局信息是提升网络性能的关键。
针对以上情况,本文提出了一种基于三维各向异性卷积的神经网络,通过将标准的三维卷积拆分为k×k×1和1×1×k 两种各向异性卷积,分别进行层内特征提取和层间特征融合。此外还提出了裁剪-非局部池化模块,使浅层网络也可以提取全局特征,提升了网络的分类性能。将标准三维卷积拆分为两种各向异性卷积的策略避免了CT图像层间分辨率不同的影响。相较于标准三维卷积,本文网络在充分利用CT 图像的三维信息的同时减少了网络参数及计算量,并且不需要插值等额外操作,减少了预处理的复杂度。
近年来有许多肺结节良恶性分类算法的研究工作,根据算法特点大致可分为两类:基于影像组学的方法和基于深度学习的方法。传统影像组学的方法是通过提取人工设计的特征,利用传统的机器学习分类器进行训练,获得分类性能较好的模型。例如Jacobs等人[14]提取了肺结节的灰度、形状、纹理等特征用于分类;Han 等人[15]提取了Haarlick 纹理特征和Gabor 特征,利用支持向量机(Support Vector Μachine,SVΜ)进行分类。近几年深度学习在自然图像领域取得了巨大的成功[16-18],越来越多的研究者采用深度学习的方法处理医学图像。Shen等人[19]设计了一个多尺度裁剪网络,利用多尺度池化操作,实现了对不同尺寸结节的准确分类。Xie等人[10]通过在网络中额外引入肺结节纹理和边缘信息,提升了结节良恶性分类的准确度。Li 等人[20]设计了一个多任务神经网络,通过引入对肺结节形态学特征(如分叶、毛刺等)的分类任务,辅助肺结节良恶性分类,提升网络性能。
采用二维卷积神经网络只能提取单一切片的特征,不能充分利用CT图像的三维信息,而文献[9-12]采用在包围结节的立方体中截取横断面、冠状面、矢状面及6个体对角线切面的策略,可以为二维网络引入伪三维信息,但会增加较多的预处理步骤。三维卷积神经网络参数量较大,会增加较多的计算量与训练时间,并且需要额外的统一分辨率操作。本文提出的模型预处理阶段不需要进行插值,在减少网络参数量的同时兼顾了CT图像的三维信息。
本文提出的三维各向异性卷积神经网络结构如图3所示。网络首先使用一个卷积核为7×7×1 的三维卷积提取输入图像块的二维层内特征,避免了层间信息交流;之后使用1×1×7 的卷积对得到的特征图进行层间特征融合,层间信息交流只在特征图层面上进行,避免了输入图像块的层间分辨率不同的影响。然后使用三组尺寸为3×3×1 和1×1×3 的各向异性卷积组提取深层特征。之后裁剪-非局部池化模块与三维各向异性卷积组交替使用,提升网络对结节位置特征及全局特征的感知能力。最后使用全连接层分类,获得预测结果。具体的网络参数设置参见表1。
表1 三维各向异性卷积网络结构
三维各向异性卷积是标准三维卷积的变体,本文分别采用了卷积核为k×k×1 和1×1×k 的两种三维各向异性卷积。这两种卷积结合使用即可代替标准的三维卷积。本文将一个标准的三维卷积用如下公式表示:
其中,Fin和Fout分别表示输入和输出的特征图;W、H、D 分别为三维特征图的宽、高、深度三个维度的尺寸;C为通道数,代表特征图的个数;K 代表卷积核,K 的下标代表卷积核的尺寸为k×k×k×Cin,Cin是输入特征图的通道数,K 的上标Cout是输出特征图的个数。可以将标准的三维卷积拆成如下两个步骤:
式(2)表示k×k×1 的三维各向异性卷积,本文称之为层内卷积;式(3)表示1×1×k 的三维各向异性卷积,本文称之为层间卷积。三维特征图Fin通过一个层内卷积操作得到中间特征图Ftemp,由于卷积核的第三个维度为1,因此Ftemp中的每个切片的特征间是没有交互的,相当于只提取了各切片的二维特征,相对应的Ftemp中的深度维度仍为Din;之后利用1×1×k 的层间卷积进行层间特征融合,获得三维特征图。这样,层间信息交流只发生在特征图的层面,避免了输入图像块层间分辨率不同的影响。
此外,标准三维卷积拆分为层内卷积和层间卷积也减少了卷积核的参数及卷积操作的计算量。为了计算简便,令Ctemp=Cout=Cin=C,Win=Wout=W,Hin=Hout=H,Din=Dout=D,并且忽略偏置项,标准三维卷积的参数量和计算量分别为:
两次各向异性卷积的参数量和计算量分别为:
图3 本文提出的网络结构(C表示按通道维度拼接)
由上可知,用两种各向异性卷积来代替标准的三维卷积参数量减少(k×k×k-(k×k+k))×C2,计算量减少(k×k×k-(k×k+k))×C2×W×H×D ,当k>1 时,参数量及计算量都显著减少。此外,Ctemp属于可以手动调节的超参数,也可以将Ctemp设置为一个小于初始特征通道的值,这样形成类似文献[16]中的瓶颈层操作,可以进一步减少参数量及计算量。
裁剪-非局部池化模块是将输入的特征图分别进行中心裁剪及非局部池化操作,最后将得到的两组特征图按通道维度并联,得到输出的特征图。
由于结节多出现于三维图像块的中心位置,裁剪操作是将特征图的中心区域裁剪,每个维度的裁剪尺寸为输入特征图尺寸的一半,可以使网络更关注于中心区域的特征。中心裁剪操作如图4所示,具体可由如下公式表示:
图4 中心裁剪操作
由于卷积操作是局部性的,浅层网络感受野较小,无法捕获全局特征,本文提出了非局部池化操作。非局部池化是对输入特征图全部空间位置的信息加权,输出的特征包含图像全局特征。本文首先利用空间位置加权函数得到尺寸与输入大小相同的权重图,权重图中每个位置的特征向量由输入特征图全部位置的特征向量加权得到,将原始特征图与权重图点乘得到加权特征图,最后利用三维最大池化操作获得与中心裁剪分支相同尺寸的特征图并将其按通道维度拼接。记输入非局部池化层的特征图为F( )W,H,D,C ,空间位置加权函数可用以下公式表示:
其中,yi代表输出权重图位置i 处的特征向量,xj代表输入特征图位置j 处的特征向量。r( )xj是映射函数,可以将特征向量xj映射到不同维度的空间,本文用1×1×1 的三维卷积实现此函数,将输入特征向量映射到C/2 维空间,以减少计算量及内存占用。ηi,j是计算输入特征图中i 和j 两点特征向量相关性的函数,具体为:
式中,exp表示自然对数,p( xi)和q( xj)与r( xj)含义相同,上标T 表示矩阵转置,ηi,j是通过将特征图与自身的转置相乘实现全局相关性计算的。ηi,j同样也是一种自注意力函数[21],因此非局部池化也是一种注意力机制。将权重图与输入特征图点乘可得到与输入同尺寸的输出,再经过一个2×2×2 的三维最大池化操作即可得到非局部池化的输出。非局部池化操作的具体结构如图5所示。
图5 非局部池化操作(T表示转置操作,⊗表示矩阵乘法)
本文进行了一系列实验来验证本文提出的网络性能。实验基于Python 环境的Κeras 深度学习工具包,TensorFlow 为后端,在配有64 GB 内存,两块TITAN V显卡的工作站上运行。
本实验数据集采用公开的肺结节数据集LIDCIDRI数据集[6-8],数据集中的肺结节由4名医生分别标定恶性程度,等级从1 到5,其中1 和2 代表良性,4 和5 代表恶性,3代表恶性程度不确定。由于医生的主观性影响,会存在同一结节良恶性标注不同的现象,因此对同一结节的恶性等级取平均,若均值大于3则认为是恶性结节,均值小于2则认为是良性结节,均值等于3则认为良恶性不确定,舍弃此类样本。最终从数据集中选出了1 185例肺结节,其中良性718例,恶性467例。
对CT图像进行了常见的预处理操作后[22]提取了包含肺结节区域的32×32×32 的图像块作为网络的输入。采用五折交叉验证进行实验,将数据平均分成5 份,分别用其中的4份作训练集,1份作测试集进行5次实验,最终的性能是5次实验的均值。对于训练集数据,进行了常见的数据增强手段,例如随机旋转、平移、翻转等。
为了评估网络性能,通过对比真实值与预测值之间的差异,计算以下4个参数:
真阳性数(True-Positive,TP):真实值为恶性并且预测值也为恶性的样本个数;
假阳性数(False-Positive,TP):真实值为良性但预测值为恶性的样本个数;
真阴性数(True-Negative,TN):真实值为良性并且预测值也为良性的样本个数;
假阴性数(False-Negative,FN):真实值为恶性但预测值为良性的样本个数。
可以通过以上4 个参数计算如下几个常用的分类性能评价指标:
本文还引入了受试者工作特征曲线(Receiver Operating Characteristic,ROC)来对模型进行更直观的评估,ROC 曲线线下面积(Area Under Curve,AUC)越大,证明模型的综合性能越好。
3.3.1 三维各向异性卷积分类实验结果
在训练阶段采用Adam 优化函数[23],学习率设置为0.000 2,激活函数为Leaky ReLU,并且在每个卷积层后都接有批均一化层(Batch Normalization,BN),损失函数为二进制交叉熵函数(Binary Cross Entropy,BCE)。表2展示了本文模型和一些国内外相关研究工作的对比。
表2 实验结果对比
文献[15]采用基于传统影像组学的方法,只提取了肺结节基于灰度共生矩阵的纹理特征并分类,因此性能较差。文献[19]和文献[24]均使用了三维卷积神经网络。文献[19]利用多尺度中心裁剪操作,提升网络对结节中心区域的特征提取能力,但是忽视了周围环境信息对肺结节良恶性的影响;文献[24]同样使用了中心裁剪操作,并且使用多尺度空洞卷积(Dilated Convolution)提升感受野,一定程度上提高了网络对环境信息的感知能力,因此性能优于文献[19],但是空洞卷积仍无法提取图像的全局信息。本文算法可以同时提取结节中心区域和全局信息,因而性能全面优于文献[19]和文献[24]。
文献[12]额外引入了1 893 例无标签的天池肺结节数据,通过半监督学习的方式辅助LIDC-IDRI数据集的良恶性分类训练,并且使用了集成学习及自然图像预处理等操作。本文实验设计旨在验证提出的三维各向异性卷积组及裁剪-非局部池化操作的有效性,因此并没有引入额外的数据集,也没有使用集成学习等训练策略,从而算法总体性能略差于文献[12]。但是本文算法在敏感性指标上优于文献[12],更高的敏感性在临床上会减少恶性病例误判为良性的概率,从而减少恶性病例漏诊的风险。
3.3.2 消融实验
本文分别对比了标准三维卷积(模型A)、不加入裁剪-非局部池化操作的三维各向异性卷积(模型B)以及三维各向异性卷积结合裁剪-非局部池化操作(模型C)的性能,考虑到训练时间的因素,只用五折数据中的4份进行训练,剩余1份进行测试,实验结果如表3所示。
表3 消融实验结果对比
标准三维卷积整体网络结构与本文提出的网络结构相同,只是用标准的k×k×k 三维卷积核代替k×k×1和1×1×k 的卷积核,用最大池化层代替裁剪-非局部池化操作,并且利用双线性插值将分辨率统一为0.5 mm,保证不损失分辨率;三维各向异性卷积是使用最大池化层代替裁剪-非局部池化操作,其余部分与本文提出的网络结构相同。实验结果显示,本文提出的方法取得了最优的性能。模型A 与模型B 的结果对比证明了本文提出的采用三维各向异性卷积组代替标准三维卷积方法的有效性。三维各向异性卷积获得了与标准三维卷积近似的性能,同时显著减少了网络参数量,并且不需要插值等额外的预处理操作,提高了模型的训练效率,减少了模型的内存占用。模型B 与模型C 的结果对比证明了裁剪-非局部池化模块可以提升网络分类性能。裁剪-非局部池化模型加强了对图像块中心部分的特征提取,同时也兼顾了全局特征感知能力。虽然增加了部分参数量,但是获得的性能提升是显著的,并且参数量仍远小于标准三维卷积。为了更直观地对比,绘制了三种模型的ROC曲线(图6),可以看到三维各向异性卷积结合裁剪-非局部池化网络的ROC曲线线下面积最大,可以进一步证明本文提出网络的有效性。
图6 三种网络结构的ROC曲线
本文提出了一种三维各向异性卷积神经网络用于肺结节良恶性分类任务。网络不需要对分辨率不同的CT 图像进行额外的插值操作。在充分利用CT 图像三维信息的同时,减少了网络参数量及计算量,引入的裁剪-非局部池化操作可以使浅层网络获取全局信息,实现了较好的分类性能。层间分辨率不同的现象在多种三维医学图像中广泛存在,例如磁共振图像、数字乳腺X线断层合成图像等,本文的网络结构也可以移植到以上的医学图像分类任务。在后期的工作中,将探索网络对其他三维医学图像分类任务的有效性。