顾军华,孙哲然,王 锋,戚永军,张亚娟
1)河北工业大学河北省大数据计算重点实验室, 天津 300401;2)河北工业大学人工智能与数据科学学院, 天津 300401;3) 河北工业大学电子信息工程学院, 天津 300401;4) 北华航天工业学院信息技术中心, 河北廊坊 065000
肺癌是当前人类疾病中最常见的恶性肿瘤之一[1],早发现、早确诊是降低死亡率的希望所在.医学上将胸部电子计算机断层扫描(computed tomography, CT)上的“肺部斑点”定义为肺部结节,肺结节是肺癌最重要的初期表征之一,如果能做到及早准确发现肺结节,会大幅降低漏诊率和误诊率.
计算机辅助诊断结果能够为医生提供第二意见.尽管已经有肺癌辅助诊断系统被用于协助放射科医生阅读胸部 CT,但一些容易发展成肺癌的结节常会因表现出类似良性病变而难以区分,如肺脏错构瘤、肺结核球和霉菌球赫尔炎性假瘤等,易出现假阴性导致漏诊;也可能将非病变解读为病变,或将良性病变误解读为恶性,导致假阳性结果.因此,判别肺结节恶性度的计算机辅助诊断技术仍需不断的发展和改进. 早期传统的医学图像分类方法依赖于手动提取特征和分类器分类两个步骤,特征提取是肺结节良恶性分类的关键.传统的肺结节良恶性特征提取方法主要从生长速度、纹理特性、形状特性和多特征融合来设计.ELBAZ 等[2]将两步标记方法用于精确地监测相应结节之间的体积变化,能够有效判断肺结节良恶性,缺点是需长时间跟踪结节变化.WAY等[3]先分割结节,再提取纹理特征来训练一个线性判别分类器.HAN等[4]对多个方向上的多个相邻体素之间的关系进行纹理特征分析.常用良恶性分类器包括支持向量机和k近邻等.SCHILHAM 等[5]提取的结节特征并输入到k近邻分类器中进行训练,但该方法发生假阳性的概率很高.
基于深度学习的肺癌辅助诊断日渐成为该领域最为活跃的研究方向之一,它可将特征表示和分类器分类结合到一个模型当中,进行一体化的学习,特别是深度卷积神经网络,能自动学习到图像不同层次的特征信息,实现端到端的分类. 卷积神经网络(convolutional neural networks, CNN)局部感知的特点决定了其在提取自然图像或者医学图像特征的过程是从局部到全局、从低级特征到高级语义特征,许多方法通过改进卷积层的数量和组合方式,来达到分类效果的提升.KUMAR等[6]应用自动编码器网络提取肺结节特征,采用二叉决策树对结节良恶性进行分类,并在肺图像联合数据库(lung image database consortium, LIDC-IDRI)[7]上获得了75.01%的准确率,该方法在敏感性方面有较大提升,但分类准确率相对较差.多视角方法在肺结节诊断中被广泛应用.SETIO等[8]基于肺结节的实性结节、亚实性结节和实性大结节3种形态,设计了对应的二维卷积检测模型,对于每个候选对象,从不同方向的平面提取一组二维切片,输入网络中,并使用特定融合方法将结果进行组合. XIE等[9]对每个三维结节提取了9种不同视角下的二维图像,除了在每个二维平面切片以外,在三维立方体的不同的对角方向也进行了切片,从不同视角表征结节质异性,并采用十折交叉进行了验证,在LIDC-IDRI数据库上最终达到了平均92.53%的准确率.以上的多视角结节良恶性诊断方法从不同角度提取结节特征,但仍不可避免的存在因结节信息丢失,难以对图像进行全面和深层次解析而导致结节诊断精度较低的问题.DEY等[10]设计了4个双通路3维卷积神经网络MoDenseNet(multi-output dense connection)用于肺结节的诊断,选取LIDC数据集中的686个结节进行训练,获得了 90.4%的准确率,分类准确率虽然获得了较大提升,但因模型中采用的密集网络易造成特征爆炸,不易于训练.ZUO等[11]利用卷积神经网络用作肺结节的边缘检测,并将模型改进为一个适合于图像分类任务的多分辨率模型,使用LUNA16数据集中3种不同大小的结节图片进行多分辨率测试,准确率均超过92.81%.
现有方法中,许多模型在效率和精度方面得到了有效提升,但相对复杂的模型往往容易过拟合,而简单模型则会出现提取的图像特征单一,对图像的表达会比较片面,难以充分表示医学图像信息的缺点.特别是针对肺结节这类微小目标识别分类问题时,更需要在多个条件下提取特征,做到特征的全面表达.
本研究针对由于肺结节结构复杂,其形态容易根据其位置、尺寸和类型的不同而动态变化,导致肺结节CT图像特征提取不全面的问题,提出一个新的多尺度特征融合网络(multi-scale feature fusion network, MSFFNet),用于肺结节良恶性自动分类,在公开数据集LIDC-IDRI上做了大量的实验,达到了97.2%的准确率.
本研究提出的肺结节分类模型MSFFNet旨在提取更高层次的语义信息和更全面的结节特征.首先,对输入的肺结节CT图像在单层卷积层中用多个不同大小的卷积核来卷积,在不同尺度提取不同范围的肺结节特征信息;之后,聚合多种不同感受野(receptive field)的特征获得性能增益,在通道维度中拼接这些特征,融合特征被输入到3个连续的SE-ResNeXt模块中,以提取更高层次的语义信息;最后,特征经过全局平均池化和全连接操作,经过softmax函数[12]输出良恶性分类结果.图1为本研究提出的肺结节良恶性分类模型.
图1 多尺度特征融合的肺结节良恶性分类模型Fig.1 Classification model of pulmonary nodules based on multi-scale feature fusion
卷积核尺寸决定了特征图感受野的大小.若感受野太大,可能会阻碍模型对微小目标的分类;反之,若感受野太小,会使网络忽略输入数据的全局信息.卷积操作通常是将卷积核作为窗口在输入图像上以一定的步长滑动,并在相应的位置作加权和.一张长宽都为m的肺CT图像,若步长为z,k(k≤m)个边长为n的卷积核卷积,会得到k个大小为(m-n)/z+1的特征图.考虑到肺结节的位置多是非固定状态,且不同肺结节的形态和大小也存在很大差异,因此,相应的结节特征也需从不同范围中提取.不同尺度的卷积核表示不同范围的感受野,可获取更全面的结节特征信息.图1中的(a)为多尺度特征提取与融合过程.其中,Ⅰ为网络的多尺度提取部分,conv表示卷积操作,具体方法是将输入的肺结节图像分别经过4个不同尺寸的卷积核(1×1、3×3、5×5和7×7),深度为64的卷积层,步长为2,使用填充(padding)操作保持输出特征图大小与输入保持一致.特征融合过程如图1中Ⅱ所示.卷积后获得的4种特征进行通道拼接(concatenate),网络在执行这一步骤的同时完成特征融合过程.多尺度特征融合过程即特征向量的拼接,表示为
Z=[Z1,Z2,Z3,Z4]
(1)
其中,Z1、Z2 、Z3和Z4分别为卷积获得的4种特征向量,对应的特征通道数分别为m,n,p和q.Z对应的通道数为C,C=m+n+p+q.
特征重调是通过对特征图进行两次维度的变换,捕捉通道之间的特征关系,将特征按照重要性程度排序,获得结节分类的判别特征,使特征具有高度的层次性.此过程主要依靠引入SE-ResNeXt网络模块来实现.
1.2.1 SE-ResNeXt基本理论
在MSFFNet模型中引入的SE-ResNeXt 模块是将缩聚-激发网络(squeeze-and-excitation networks, SENet[13])模块插入到ResNeXt[14]中得到的,它同时具备了两者的优点,即在网络层数递增的同时,减小网络退化,又能建立特征通道之间的关联,提升结节分类效果.
SENet可作为单独模块插入现有的多种分类网络中.其中,最关键的两个步骤是缩聚(squeeze)操作和激发(excitation)操作.前者利用全局平均池化在空间维度压缩特征,把每个通道的二维特征变成一个实数,该实数代表了特征通道上响应的全局分布;后者通过学习参数W为每个特征通道生成权重,此权重被用来显式地对特征通道之间的相关性进行建模.
SENet图像分类算法流程为:
1) 用3×3大小的卷积核,对有C′个通道,大小为H′×W′的输入图像X进行卷积(加权和计算),卷积后得到C个大小为H×W的特征图U,其第c个特征图uc的输出[13]为
(2)
其中,该卷积核的权重组合为V,V=[v1,v2, …,vC],vc是第c个卷积核;vlc为第c个卷积核作用于第l个输入;xl=(xij)l表示第l个输入的特征图,l=1, 2, …,C′.
2) 进行squeeze操作.将C个H×W大小的特征图U作为输入,经过全局平均池化,转换成C个大小为1×1的特征输出m.因此,第c个特征图uc的全局平均池化输出[13]为
(3)
3) 进行excitation操作.如式(4),将m先后和网络学习到的参数W1和W2相乘,即两个全连接操作.经过这两个全连接操作,实现了通道维度的变换,得到输出权重为
s=σ(g(m,W))=σ(W2δ(W1m))
(4)
其中,δ()为ReLU激活层;σ()为sigmoid激活函数.
ResNeXt网络模型是由残差网络为基础改进得到的,高度模块化且易于搭建,通过聚合相同的拓扑结构,增加了分支卷积策略,path为分支数,则可在不增加参数复杂度的前提下提高模型准确率.图2为path=32时的ResNeXt结构示意.
图2 path=32的ResNeXt结构[14]Fig.2 ResNeXt structure of path = 32[14]
1.2.2 特征重调过程
在MSFFNet模型中,肺CT图像经图1(a)过程后,将得到的特征图输入到SE-ResNeXt图像分类模块,经过一个3×3的卷积操作,再将3个连续的SE-ResNeXt模块嵌入网络,对应的输出通道数分别为64、128和256个,在充分增加网络深度的前提下提高了模型准确率,缓解了网络退化,同时能够捕捉通道间特征依赖关系.对融合后的特征进行扁平化处理,再把多维特征一维化,作为卷积层到全连接层的过渡,经过全连接层输出256维特征,利用softmax函数分别输出良性结节和恶性结节的分类概率.
图1(b)展示了本研究使用的SE-ResNeXt结构.其中,C为输入或输出特征的通道数;C/r表示将特征维度降低到输入的1/r, 以此来降低计算量,本研究设r=4, 经过一个全连接层并采用ReLU激活函数激活后,降维的特征升回到原来的维度,大幅减少了计算复杂度.经过sigmoid函数激活,获得归一化的权重,它将输出特征映射到(0, 1)的区间,在用于特征相差不大时展现出较好的分类问题效果,且单调递增又容易被优化.经过sigmoid函数激活后,归一化的权重被加权到每个通道的特征上,从而可获得通道特征的重要性排序.特征重排序操作过程为
xc=Fscale(uc,sc)=sc·uc
(7)
其中,X=(xc),c=1, 2, …,C;uc为第c个通道特征的二维矩阵;sc为对应的权重.当前特征通道二维矩阵的每个值都乘以该权重,这些权重代表了每个特征通道的重要程度.将它们加权到先前C个通道的特征上,得到X,完成对原特征的重新标定,增强重要的特征,削弱不重要的特征,进一步提升了模型的分类效果.
MSFFNet网络配置如表1.其中,multi_conv为多尺度卷积;conv为卷积操作;stride为步长,卷积步骤的分支数path=8;fc为全连接,其参数为C/r和C,C为特征通道数, 当r=4时,C/r为excitaiton操作中将特征维度降低到输入的1/4.
表1 网络配置
MSFFNet使用如式(8)的交叉熵损失函数H(p,q)来衡量真实概率分布与预测概率分布之间的差异,函数值越小,模型预测效果越好.交叉熵便于梯度下降反向传播,利于优化,常用于识别图像类别问题.
(8)
其中,p为类别标签;q为模型输出的实际值.交叉熵用来判定实际值和预测值的接近程度,因此,通常最后一个输出层的节点数量与最终分类的目标数量相等,在本研究的MSFFNet模型中,表示输出一个二维数组,其每个维度对应一个类别.
设学习率为0.01,对MSFFNet肺结节良恶性分类模型进行训练.设衰减率为5×10-4,加入L2正则化和dropout[15]防止过拟合,同时加入批量归一化[16],以解决梯度消失问题,并设输入数据的批量大小batch size为16,模型总迭代次数为1 744次,模型在160次遍历后收敛到最优值.
3.1.1 LIDC-IDRI数据集
LIDC-IDRI(https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI)数据集包括1 018个肺结节CT扫描实例,结节直径范围为3~30 mm,由4个放射科医生提供2个阶段的诊断标注,每个图像包含至少1个肺结节.所有结节的恶性程度,由放射科医生在等级1~5之间进行评判,评判等级越高表示恶性程度越高,患癌风险越大.图3展示了良性和恶性结节的形态.
图3 五种不同恶性度的肺结节Fig.3 Five lung nodules with different malignancies
3.1.2 数据增强
由于肺结节相对于整张CT图像来说,面积占比往往非常小,既使是恶性结节,也只占很小一部分,肺实质等构造对模型的训练会产生一定程度的影响;此外,良性结节的图像数量往往多于恶性结节的,这种类别不平衡也会影响分类性能.因此,本研究采用以下预处理方法:对原始图片进行像素提取,以去除原始结节中潜在的冗余信息,每张图片的大小最终为64×64像素. 随机选取部分图像并对每张图像都进行-10°、-5°、5°和10°的旋转操作,再采用增加高斯噪声和椒盐噪声的方法对图像进行变换,以增强模型的鲁棒性.预处理后每类结节图像数量相等,共包含16 385张肺结节图像,由于评分为3的未知等级的结节存在不确定性,影响模型的训练效果,因此,本研究仅从这些样本中取评分为1和2的结节将其划分为良性,评分4和5的结节划分为恶性,最终每个等级样本分布情况如表2.
表2 各等级样本数据量分布
在肺结节分类问题中,准确率(accurary)是判定模型分类性能的重要指标.本研究设准确率为分类正确的样本数与总体样本数之比,即
accurary=T/(T+N)
(9)
其中,T为正确分类的样本数;N为被错误分类的样本数;T+N为总样本数.
此外,低误诊率和低错诊率也是肺结节分类研究所追求的重要目标.本研究选用受试者工作特征(receiver operation characteristic, ROC)曲线、敏感性(sensitivity)和特异性(specificity)作为评定指标.敏感性指真正有病的患者中被确诊为患者的数量,也称真阳性率,如式(10).特异性表示真正无病的患者中被确诊为无病的数量,如式(11).
sensitivity=TP/(TP+FN)
(10)
specificity=TN/(FP+TN)
(11)
其中,TP为真阳性,即真实数据和预测数据都是阳性;FP为假阳性,表示真实数据为阴性,预测结果为阳性;TN为真阴性,表示真实数据为阴性,预测结果为阴性;FN为假阴性,表示真实数据为阳性,预测结果为阴性.
为找到可以使模型的分类表现达到最优的卷积核尺寸组合,本研究分别验证了单一尺寸、2种、3种、4种以及5种不同尺寸的卷积核对肺结节分类表现的影响,实验结果如图4.
图4 多尺度卷积核的种类对分类性能的影响Fig.4 (Color online) The influence of the types of multi-scale convolution kernels on classification performance
由图4可见,单一尺寸的卷积核分类效果最差;采用4种不同尺寸的卷积操作时,所得准确率最优;采用5种不同尺寸的卷积时,所得准确率和敏感性都出现了一定程度的下降,而特异性指标升高,这意味着模型的误诊率相对较低,但准确率不高.因此,综合准确率、特异性和敏感性指标后,本研究采用4种不同尺寸的卷积核进行多尺度卷积,以期使模型的分类效果达到最佳.
为验证SE-ResNeXt模块数量对肺结节诊断效果的影响,分别对比了不同数量SE-ResNeXt模块的诊断结果,如图5.
图5 SE-ResNeXt模块数量对分类准确率的影响Fig.5 The effect of the number of SE-ResNeXt blocks on the classification accuracy
由图5可见,前期肺结节良恶性分类准确率随着SE-ResNeXt模块数量的增加而逐渐提高,但后期随着模块数量的增加,参数增多,模型复杂度亦增大,当SE-ResNeXt模块数量增至4个时,分类准确率开始下降.因此可认为,SE-ResNeXt模块数量为3时,MSFFNet模型拥有最优的结节良恶性分类效果,此时模型的分类准确率为97.2%,敏感性为98.62%,特异性为96.14%.
分别将MSFFNet与卷积神经网络(convolution neural networks, CNNs)[17]和SE-ResNeXt[13]的实验结果进行比较,得到ROC曲线如图6.由图6可见,CNNs模型的分类效果相对较差,MSFFNet模型肺结节良恶性的分类效果最优.
图6 不同肺结节良恶性分类方法的ROC曲线Fig.6 ROC curve of different classification methods of pulmonary nodules
图7是采用MSFFNet模型和3种传统经典肺结节分类模型,包括CNNs[17]、堆栈自编码器(stacked autoencoder, SAE)[17]和VGG[18],在准确率、特异性和敏感性方面的分类结果.由图7可见,MSFFNet模型可将良恶性分类准确率提升到97.2%,性能最佳.
图7 MSFFNet与经典分类模型的分类性能比较Fig.7 Comparison between MSFFNet and classical classification models
为验证MSFFNet分类模型性能,本研究将改进前的SE-ResNeXt分类模型以及近两年提出的其他几种肺结节良恶性分类方法在LIDC-IDRI预处理数据集上进行比较,结果如表3. 由表3可见,MSFFNet模型不论是在准确率还是特异性和敏感性方面都具备更强的表现力,在模型的多卷积设计以及特征融合策略方面对比单独的SE-ResNeXt分类网络,MSFFNet模型的肺结节的良恶性分类结果优于其他分类模型.
表3 LIDC数据集上不同肺结节分类方法比较1)Table 3 Performance comparisons of different pulmonary nodule classification methods on the LIDC dataset %
1)灰底数值为该指标上取得的最优结果
本研究提出一种基于卷积神经网络的多尺度特征融合的肺结节恶性度分类方法,首次在肺结节分类问题中采用 SE-ResNeXt模块,在加深网络深度,提取更高级别语义信息的同时,减少了网络退化问题,表明多卷积的特征融合方法可改善网络模型的分类性能.对比实验结果证明,模型在肺结节良恶性分类方面能够表现出有效的分类结果.下一步我们将从超参数设计和损失函数等方面进行优化,结合现有计算机辅助诊断系统或网络端,在临床应用中进一步验证模型的可行性.