基于卷积神经网络的肺结节分类方法研究

2021-01-13 08:41胡永祥
湖南工业大学学报 2021年1期
关键词:残差分类器结节

彭 超,胡永祥

(湖南工业大学 计算机学院,湖南 株洲 412007)

1 研究背景

目前,全球范围内,肺癌是发病率和死亡率最高的癌症[1]。肺癌早期表现形式之一是直径小于30 mm的肺结节。因此,肺结节良恶性分类对于肺癌患者的治疗影响较大[2]。肺结节主要通过计算机断层扫描的方式进行诊断。现阶段,肺部CT(computed tomography)主要由放射科医生逐层阅读,这种方法较依赖医生的经验,因此准确率不稳定。肺癌计算机辅助诊断系统能够减少放射科医生的阅片工作量,并提供精确的定量分析,降低阅片主观性,减少人工阅片过程中的失误,从而提高工作效率和对肺病诊断的正确率。

针对肺结节诊断的计算机辅助诊断系统主要包括两大类:一类基于传统图像处理方法;另一类基于深度学习。随着CT 数据种类的大量增加,传统基于人工选取特征的分类方法难以适应大量而且复杂的样本。同时,基于人工选取的特征提取往往只能提取初级特征,不能挖掘数据中有效的深层次信息,从而导致分类的准确率不高。深度学习作为机器学习的新领域,具有强大的自动提取特征能力,在肺结节分类问题上得到了广泛的应用。H.C.Shin 等[3]通过训练多尺度卷积神经网络提高了肺结节分类的准确率。杨佳玲等[4]将VGG-16 与支持向量机(support vector machines,SVM)分类器结合,其分类准确率达到87.2%。A.Nibali 等[5]利用结节3D CT 图像与残差网络模型构建3D-Resnet-18,此模型在融合3D 数据信息的同时,利用残差网络特有的特征生成方式解决结节分类问题,实验结果表明3D-Resnet-18 算法优于同类型其他算法。Ding J.等[6]采用二维Faster R-CNN结合三维CNN 方法检测肺结节,FROC 平均得分为0.893,超过了LUNA16 挑战赛排行榜上的最佳成绩(平均FROC 得分为0.864)。H.C.Shin 等[7]将迁移学习用于医学图像处理,解决了医学数据标签不足的问题。Yan X.J.等[8]通过比较2D 模型和3D 模型,得出3D 模型更适合处理肺结节分类问题。

以ResNet[9]为代表的卷积神经网络可以自动提取更适合的图像特征,减少模型的计算复杂度;ResNet 的变种DenseNet[10]所需参数量不到ResNet的一半,实现了资源的最大化利用和计算量的压缩;双路径网络[11](dual path networks,DPN),是颜水成团队于2017 年提出的,融合了残差网络和密集连接网络的一种新型卷积神经网络结构,它在当年ImageNet(ILSVRC2017)比赛中取得图像定位任务的冠军,在图像分类上得到了广泛的应用。寇国雨[12]将双路径网络用于遥感影像分类中,基于Inria Aerial Image Dataset 数据集进行了DP-CNN 模型的探究实验,通过与常见语义分割模型的指标对比,验证了DP-CNN 模型的简易性、快速性和稳定性,尤其在训练轮数达到40 后,DPC-NN 模型的正确识别率便稳定在98%左右。Zhu W.T.等[13]利用DPN 设计了一种肺结节自动检测分类系统。Jiang H.L.等[14]通过DPN 网络构建空间注意力机制,并在LIDC-IDRI 数据集中进行肺结节分类测试。贾锋等[15]在分类器部分采用3D 双路径网络,用于特征的汇总和收缩。

尽管上述经典深度学习网络分类的精确度有所提高,但算法本身的计算复杂度较大,训练时间较长,对硬件的依赖性较大。在图像分类模型中,VGG16模型结构简单,较容易实现且分类性能较好,但是VGG16 对图片尺寸要求固定。DPN 双路连接结合了残差学习和密集连接的优势,既能从高纬度特征提取底层信息,提高模型的拟合能力,又能减少模型的参数数量,缩短模型的训练时间。

基于以上分析,为了开发一种容易实现且肺结节分类准确率较高的深度学习算法,本文将VGG16 与DPN 结合,提出一种新算法多尺度3D DPU-VGG16(3D dual path blocks and u-shaped structure based on VGG16,3D DPU-VGG16)用于肺结节良恶性分类。实验结果表明,3D DPU-VGG16 分类准确率高于同类型算法的,为肺结节良恶性分类提供了新思路。

2 算法设计

课题组提出的肺结节良恶性分类算法流程如图1所示,主要包含3 个部分:数据预处理、网络设计、模型训练。首先,将Luna16 数据集中的数据转化为图像数据,经过预处理后形成3D 图像数据;接着,将数据集送入模型中提取特征,利用PCA(principal component analysis)对特征进行降维;最后,利用SVM 进行良恶性分类。

图1 肺结节良恶性分类流程Fig.1 Classification process of benign and malignant lung nodules

2.1 双路径连接

双路径网络是通过堆叠多个模块化的微模块创建的,在此网络结构中,每一个微模块的结构都是以瓶颈(bottleneck)的方式来设计,首先是1 个1×1的卷积层,然后连接1 个3×3 的卷积层,并且以1个1×1 的卷积层来结束。前一个1×1 卷积层的输出被分成两个部分:第一部分是以元素方式添加到残差路径,第二部分与密集型连接通路相连接。为了提高每一个微模块的倾斜容量(leaning capacity),像ResNeXt 一样,在第二层使用了组合卷积层(grouped convolution layer)。这样的设计有助于减缓密集型连接通路的宽度增量和GPU 的内存消耗。

双路连接结合了残差学习和密集连接的优势。残差学习中的快捷连接是消除深度网络中梯度消失现象的有效方法。从学习的特征共享角度来看,残差学习可以实现特征重用,而密集连接则具有利用新功能的优势。此外,因为不需要重新学习冗余特征图,密集连接的网络比残差学习具有更少的参数。如图2所示。

图2 3D DPN 网络框架Fig.2 Framework of 3D DPN network

在实现过程中,DPN 网络中特征分为两个部分:一部分特征用于残差结构,采用xk表示;一部分用于Dense 连接,采用yk表示。对于每个步骤,x 表示输入;是指以隐藏状态为输入并输出提取信息的特征提取函数;(x)为误差;ht表示递归神经网络在第t 步的隐藏状态,并使用k 作为当前步骤的索引。双路径连接特征变化可以用公式(1)表示:

式中:xk为残差网络的数学表达式;

yk为密集连接网络的数学表达式;d(k)为DPN 网络的数学表达式;

gk为转换函数,将收集到的信息恢复到当前隐藏状态;

v(x)为特征学习函数。

2.2 模型设计

双路径连接将残差学习的特征重用和密集连接的新特征利用集成到一个统一的结构中,该结构在ImageNet 数据集上取得了成功。受双路径网络在ImageNet 上成功的启发,课题组设计了一个用于肺部CT 结节分类的深度网络。

如图3 所示,本研究将双路径连接块与VGG16结合,形成一个U 形结构的深度网络。首先,将尺寸为48×48×32 的肺结节图片,通过双线性插值法将图片大小变为224×224×32。使用2 层卷积层,卷积核的数量为64,大小为3×3×3 提取特征。接着,在第二个卷积层到最后一个卷积层之间加入DPN 网络,在DPN 特征分配时,选择残差网络作为主干,分给密集连接网络较少数据,因为残差网络比密集连接网络更有用,并且减少密集连接网络的输入可以减缓密集连接网络的参数成倍增长而占用大量显存。为了进一步提高模型的拟合能力,减少模型参数的复杂度,在VGG16 的第3 个卷积层后又接了一个DPN网络,并利用MaxPooling 减少特征图的尺寸。

图3 3D DPU-VGG16 网络设计图Fig.3 3D DPU-VGG16 network

原始VGG16 网络由于全连接层的存在导致模型的输入尺寸固定,对图片进行缩放会影响模型对图像特征的提取,为此本文利用卷积层代替VGG16 中的全连接层,如图4 所示,建立4 个卷积通道,大小为1×1 的卷积核用于减少模型的复杂度,大小为3×3、5×5 的卷积核用于提取不同尺度的特征。第1 个卷积通道由大小为1×1 和3×3 两种卷积核组成;第2 个卷积通道由大小为1×1 和5×5 两种卷积核组成;第3 个卷积通道由大小为1×1 的卷积核组成;第4 个卷积通道由MaxPooling 和1×1 的卷积核组成。利用PCA 对融合后的4 个通道的特征进行降维。最后把得到的128 维特征送入SVM 分类器中进行分类。

图4 卷积通道图Fig.4 Convolution channel diagram

3 实验与分析

本文使用的服务器操作系统为CentOS 7.3,GPU显卡为NVIDIA GeForce GTX 1080,使用的深度学习框架为Keras 和Tensorflow。为了有效提取CT 数据中的3D 特征,提高分类的准确性,在预处理阶段将Luna16 数据集中的CT 数据转化为CT 图片,经去噪、增强、分割、肺结节提取等步骤后,得到肺部CT 图像。从三通道CT 图像裁剪的每个64×64 结节块,以水平和竖直方向都为16 的步幅,采样为4 个48×48 的块。通过这种裁剪策略可以增加训练集的数量以防止过拟合,更加有效地学习结节的周围特征,同时对于每个结节块不会增加过多的噪声信息。课题组利用迁移学习的思想,把VGGNet 预训练模型的参数迁移到肺结节良恶性分类的新模型中。对增强之后的数据进行5 倍交叉验证来评估模型。数据被随机分为5 个相同数量的子集,每个子集包含整个数据集的20%。在训练过程中4 个子集作为训练集,另外一个子集作为验证。原始学习率为0.001,每次更新后学习率衰减为0.000 1。还设置了dropout 层(rate=0.2),以防止模型过拟合。当验证数据集上的损失在10 个epoch 之后没有减少时,训练停止。

3.1 实验数据集处理

课题组采用的是Luna16 数据集,从官网下载全部Luna16 数据后,文件subset0.zip-subset9.zip 包含所有888 例CT 数据,annotations.csv 包含所有1 186个结节标注信息(坐标和直径),candidates.csv 包含551 065 个候选结节信息(坐标和类别标签)。CT 数据以.mhd、.raw 格式存储,因此要先转化为图像格式,本文使用png 格式。CT 图像利用断层扫描技术成像获取的是患者肺部3 维数据,为了获取更多的原始图像信息,课题组利用3D CT 数据作为模型的输入。

3.1.1 预处理

肺结节数据预处理步骤如下。

1)图像去噪。设置窗宽窗位(-1 000,600)去除CT 图像中的噪声,例如骨头的亮点、CT 床的金属线等。生成肺结节图像,读取annotations.csv 文件中的坐标和直径,以坐标为中心,直径为长,生成正方体区域,最后输出为图像文件。

2)对图像进行图像增强和图像分割操作后得到肺部图像。

3)准备肺结节良恶性分类数据。以该坐标为中心取(32,32,32)大小区域图像做为候选肺结节图像,并根据标签值(0 或1)将图像分为两类。

3.1.2 数据扩充

通过对Luna16 数据集的初步处理后,得到的肺结节图像有1 350 个,非肺结节图像有549 714 个,正负样本数量差别较大,为了平衡正负样本,首先将1 351 例肺结节数据分成训练数据(80%)和测试数据(20%),然后对肺结节训练数据和测试数据进行数据扩充(肺结节训练数据有2 162 例,肺结节测试数据有540 例),对549 714 例非肺结节数据随机采样得到5 400 例后,再将其分成非肺结节训练数据(80%)和测试数据(20%)(非肺结节训练数据有4 320 例,非肺结节测试数据有1 080 例),最后将两类训练数据和测试数据分别进行合并,得到最终的训练集和测试集。

3.2 评估标准

课题组用准确率、敏感性、特异性、敏感性和特异性与坐标轴围成的封闭图形的面积作为评估模型分类性能好坏的指标。TP、FP 定义为真阳性和假阳性,FN、TN 分别表示假阴性和真阴性。

准确率(accuracy)Acc:模型对结节正确分类的能力,

敏感性(sensitivity)SE:模型正确识别恶性结节的识别能力,

敏感性(specificity)SP:模型正确识别良性结节的识别能力,

AUC(area under the curve):ROC(receiver operating characteristic curve)曲线面积,AUC 越大模型的分类效果越好。

3.3 数据集大小对模型的影响

在深度学习任务中,训练样本大小对模型至关重要。首先在不同大小的样本数据上评估模型性能。将数据集进行了不同倍数的扩充:一倍数据集、两倍数据集和3 倍数据集。原始数据集中恶性结节的数量为1 350。使用数据扩充方法将恶性结节的数量分别扩充到2 700 和4 050。

表1 数据集大小对模型性能的影响Table 1 Effects of the size of the data set on the performance of the model

从表1 可以看出,随着正样本数量的增加,模型的综合性能提高。但是正样本数量为2 700 个时,模型的性能几乎和正样本数量为4 050 的模型性能一样好,造成这种现象的原因可能是训练数据的增加使得噪声对模型的影响增加,同时数据量过大容易造成模型的过拟合。因此,提高模型性能不能单单增加数据量,还要考虑其他因素,比如模型的深度卷积层数量的选择。由于计算机计算性能的限制,在这个本文中,使用2 700 个正样本、5 400 个负样本作为实验数据。

3.4 DPN 数量对模型的影响

图像分类的相关研究表明,网络的深度越大,模型获得的性能越强。基于深度对模型的重要性,进行相应的实验,探索DPN 与模型结节分类表现之间的关系。在本文中,通过添加更多的DPN 来增加网络深度。课题组设置3 组实验,使用2 700 个正样本,5 400 个负样本作为实验数据,卷积核全部采用3×3,在VGG16 网络的基础上分别增加1 个、2 个、3 个DPN,实验结果如表2 所示。表2 可以说明,对于特定的图像分类任务,直接增加网络深度只能在特定点获得更好的性能,而不能一直改善。导致这一现象的原因是随着DPN 数量的增多,ResNet 部分难以从高层信息挖掘底层特征,DenNet 提取更多的新特征,使得特征冗余,导致模型过拟合。

表2 DPN 数量对模型性能的影响Table 2 Effects of DPN quantity on model performance

3.5 多通道处理对模型的影响

传统VGG16 只能输入固定尺寸的图片。图像的扩大或者缩小会造成原始像素信息的丢失,为了让VGG16 能够适应不同尺寸的图像,设置了4 通道卷积网路。为了验证本文提出的4 通道网络的有效性。在LIDC- IDRI 数据集中随机选取176 个病人的CT图像中提取200 直径在10 mm 以上的肺结节作为实验数据,并设置了一组对比实验,实验结果图5 所示。

图5 肺结节位置对诊断结果的影响Fig.5 Effects of the location of lung nodules on the diagnosis

通过图5 所示实验结果可以看出,本文提出的3D DPU-VGG16 模型对于与肺部轮廓相邻或者不相邻的结节的诊断能力都高于ResNet 和DenseNet。同时还可以发现3D DPU-VGG16 对与肺部轮廓没有连接关系的肺结节的诊断准确率为0.90,对于与肺部轮廓相邻的结节诊断能力只有0.80。从而说明 3D DPU-VGG16 对相对独立的结节诊断能力较好。

3.6 不同分类器和输出特征尺寸对模型的影响

大多数基于卷积神经网络的算法使用softmax 或Sigmoid 输出分类概率。在本节中,进行相关实验以研究各种分类器对最终分类准确性的影响。本文采用另外两个分类器支持向量机(SVM)和随机森林(random forest,RF)进行实验。对于SVM 分类器,使用rbf 作为核函数。本文还评估了输出特征尺寸对最终分类性能的影响。最终的特征维数设置为32,64, 128, 256。详细结果如表3 所示。使用SVM 分类器的128 个输出功能以89.2%的精度达到了最佳性能。这可能是因为SVM 分类器可以有效地对输出特征进行类,并将特征隐式映射到高维特征空间。另外值得注意的是,不同输出特征的尺寸可能对模型性能产生较大的影响。最终选择SVM 作为分类器,选择输出特征的维数为128 维。

表3 不同分类器和特征输出尺寸对模型的影响Table 3 Effects of different classifiers and feature output sizes on the model

3.7 肺结节大小对诊断结果的影响

为了研究本文提出的模型的鲁棒性,课题组从LIDC-IDRI 数据集中随机选取150 个病人的CT 图像提取200 个肺结节作为独立测试集,将这200 个肺结节数据根据直径的大小分为如下5 类:0~5 mm、>5~8 mm、>8~10 mm、>10~20 mm、>20~30 mm,并且将每个范围内的结节数据分别在本文提出的算法3D DPU-VGG16、ResNet18 和DenseNet 进行测试。从图6 可以看出,与ResNet18、DenseNet 相比,本文提出的3D DPU-VGG16 结节分类能力有所提升,可以发现本算法对直径为10 mm 以上的肺结节诊断效果好,体现了算法的有效性。模型对小结节的诊断AUC 只有0.79,表明本算法对小结节具有一定的诊断能力。

图6 肺结节大小对模型诊断结果的影响Fig.6 Effects of the lung nodule size on model diagnosis results

3.8 与其他模型的比较

课题组在原有VGG16 基础上增加了两个DPN结构,增加了模型的深度,有利于提高模型的拟合能力。另外,DPN 结构结合了ResNet 和DenseNet 的优点,ResNet 可以实现特征重用,能在一定程度上消除梯度弥散,提高模型的拟合能力。DenseNet 能够从高层特征中提取底层特征,从而能够提高模型的准确度。

为了证明本文提出的算法的有效性,将本文提出的模型和一些经典的卷积神经网络模型进行了对比。首先,利用3D 数据分别对VGG16 以及本文提出的DPU-VGG16 模型进行训练,然后将3D 数据改为2D 数据,并对DPU-VGG16 模型进行训练,选择SVM 作为3 种模型的分类器。最终得到3D DPUVGG16、DPU-VGG16、3D VGG16 的 ROC 曲线图,如图7 所示。

图7 ROC 对比图Fig.7 ROC comparison

表4 对这3 种模型的Acc, SE, SP, AUC 进行了对比。从图7 中可以看出,3D DPU-VGG16 的AUC 达到了90%,3D VGG16 的AUC 为0.80,DPU-VGG16的AUC 为0.68。这些数据表明本文提出的算法是有效的。DPU-VGG16 和3D DPU-VGG16 模型性能参数对比结果表明:相对于二维CT 数据,三维CT 数据包含更多的特征,更加适用于肺结节良恶性分类的问题。

表4 模型性能参数对比Table 4 Comparison of model performance parameters

4 结语

肺结节良恶性分类由于其形状,大小和位置的不同而具有挑战性,课题组提出了一种基于卷积神经网络的结节良恶性分类模型3D DPU-VGG16。实验结果证明了模型的有效性。在LUNA16 数据集上的对比实验表明,本文提出的模型可以获得比同类型算法更好的性能,证明了3D DPU-VGG16 的有效性。LIDC-IDRI 数据集中肺结节的直径对诊断结果的影响表明,本文提出的算法对直径较大的结节诊断效果更好,对较小的结节有一定的检测能力,体现了3D DPU-VGG16 的有效性和普适性。因此如何提高小结节诊断的敏感性将是未来研究的重点方向。

猜你喜欢
残差分类器结节
结节是怎么长出来的
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
基于残差-注意力和LSTM的心律失常心拍分类方法研究
学贯中西(6):阐述ML分类器的工作流程
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
融合上下文的残差门卷积实体抽取
体检发现的结节,离癌症有多远?
查出肺结节,先别慌
基于朴素Bayes组合的简易集成分类器①
基于深度残差网络图像分类算法研究综述①