APP下载

多任务自主学习的肺癌诊断方法

2020-02-19翔,陈

计算机工程 2020年2期
关键词:切片肿块卷积

张 翔,陈 欣

(浙江师范大学 数学与计算机科学学院,浙江 金华 321004)

0 概述

根据世界卫生组织2016年发布的报告,全球癌症患者数量急据增加,其中,肺癌的全球发病率和死亡率均居第一位[1],严重威胁人类健康。肺癌患者的5年存活率仅为17%,若及早发现和治疗,其5年存活率可提升至55%[2]。

肺癌早期通常表现为肺结节,在临床诊断中,肺结节是指直径小于4 cm的肺实质区域内的类圆形病灶,其中,直径大于1 cm小于3 cm的称为小结节,直径小于1 cm的称为微结节[3],而病灶直径大于4 cm的部分称为肺肿块。在临床上一般认为,体积较大,表面相对不光滑、有毛刺,且生长较快的结节,其为恶性的概率较大[4]。

随着影像技术的快速发展,肺部肿块的早期诊断率不断提高。研究发现,在438个肺肿块病例中,恶性率高达86.5%[5]。LIDC-IDRI数据集中的注释结节直径均小于3 cm,因此需结合肺肿块和肺结节两种病灶特征进行肺癌的辅助诊断。

近年来,以深度学习为代表的人工智能技术在计算机视觉[6-7]、自然语言处理和基因组学等领域不断突破,取得了一系列前所未有的成就。研究表明,深度卷积神经网络能够利用自身结构的特性有效地提取医学图像中的感兴趣区域,对病灶进行良恶性判断分类。

然而深度神经网络模型的训练往往需要大规模的标注数据,文献[8]采用6万张MNIST数据集的图像训练Capsules网络模型,文献[9]利用130万张ILSVRC数据集图像训练VGG网络,从而进行分类实验,文献[10]利用128万张ImageNet图像训练ResNet网络。在实际任务中,标注数据集,特别是医疗影像数据集的获取成本较高。针对该问题,文献[11]利用半监督阶梯网络分割肝脏CT图像,文献[12]通过半监督Co-Forest算法检测肺结节,文献[13]则将半监督Adapted Mean Teacher模型用于脑损伤分割。

针对医疗影像标注数据集稀少,而存在大量未标记数据集的实际问题,本文提出一种多任务自主学习的肺癌诊断方法。采用C3D网络模型以及多任务学习方式对肺结节进行检测和评估,通过半监督方法训练肺肿块检测模型,结合肺结节和肺肿块的检测结果预测患者是否患肺癌。

1 相关工作

1.1 多任务学习

目前,大多数机器学习任务为单任务学习,在处理复杂问题时,常将其分解为多个子问题进行处理,最后直接合并各个子问题的结果,而忽略了它们之间的相关性。文献[14]在结肠癌分类问题中提出利用多任务学习提取图像特征。多任务学习将多个相关的任务放在一起学习,并通过一个浅层的共享表示来相互分享、补充已学习到的相关信息,从而提升泛化能力。假设有N个监督任务,则每个监督任务的训练集为Dn=(xin,yin),其中,i=1,2,…,kn,kn表示第n个任务的训练样本数量[15]。在多任务学习中,xin∈X(n)和yin∈Y(n),因此需进行最小化,具体如下:

(1)

多任务学习也可与深度神经网络模型进行结合。文献[16]将深度关系网络用于机器视觉的多任务场景,以AlexNet为骨干网络的多线性网络在Office-Caltech数据集中的平均精度达到95.5%,文献[17]利用多任务神经网络模型进行人脸鉴别、认证鉴别及其属性分类,文献[18]在低层次监督中通过多任务学习使得不同任务在不同层次执行。

1.2 自主学习

在实际应用中,在医学影像数据集上标注大量的病灶信息较为困难,导致可用于训练学习的医学影像标注数据稀少,因此,需要充分利用其他的未标记样本。本文引入半监督的自主学习方法,利用较少的标注数据集以及大量的未标注数据训练改进的U-Net模型,从而构建肺肿块检测模型。

U-Net是一种用于图像分割的网络模型[19],其U形结构由收缩路径和扩张路径两部分组成,其中,收缩路径可以有效提取图像的上下文信息,而扩张路径可预测位置信息。

自主学习方法的训练思路如算法1所示。将少量标注数据集作为训练集训练检测模型,然后从未标注数据集中,随机选择少量数据作为预测数据集,利用已训练的检测模型对其进行检测,并将原数据与预测结果成对加入训练集中,重复上述过程,直至未标注数据集为空。

算法1自主学习算法

输入标注数据(XTure,YTure),未标注数据Xu,训练模型f

输出模型f

for x in Xudo

Predict on x ∈ Xu

Add(x,f(x))to labeled data

Retrain model f

end

2 数据集及预处理

2.1 数据集

本文使用LUNA16数据集和DSB数据集进行模型训练。LUNA16数据集由LIDC-IDRI数据集转化而来,其包含888个病例,并由3名经验丰富的放射科医师对数据集进行标注,共标注1 186个结节。DSB数据集的标签为一个二值标签,表示是否为肺癌,其中,训练集共有1 095个病例,测试集共有500个病例。由于两个数据集的标签差异过大,因此只对部分DSB数据集进行人工标注,共标注了769个病例。此外,LUNA16数据集和DSB数据集的病灶直径分布也存在较大的差异[20]。在LUNA16数据集中,其结节多为小结节(或微结节),直径的平均值为8.31 mm,而在DSB数据集中存在大量的肿块,平均直径为13.68 mm。针对该问题,本文对DSB数据集中的肺肿块病灶构建相应的肿块检测模型。

2.2 数据预处理及训练集构建

2.2.1 预处理

DSB数据集中不包含切片厚度信息,根据数据提供方Kaggle的介绍,该数据集的切片厚度均小于3 mm。为了对切片图像进行重采样操作,需利用数据集中的部分数据计算切片厚度,并将其添加至DSB数据集中。

将所有原始CT图像转换为CT值表示的图像,其中CT值也称为亨氏单位(Hounsfield Unit,HU),是各组织与X线衰减系数相当的对应值,其计算公式如下:

HHU=p×s+i

(2)

其中,p表示切片图像的像素值,s和i分别表示切片图像的斜率和截距。

本文的数据预处理主要分为以下3个部分:

1)重采样

为确保每一张CT图像中的体素相同,需对CT图像进行重采样,填充Z轴的数据信息。本文使用双线性插值算法,将CT图像的体素确定为1 mm3。同时在预处理过程中,需确保切片方向相同,如若不同,则对该切片进行相应的仿射变换。

2)肺部掩膜提取

对于掩膜的提取,首先需对切片进行边缘标注,然后通过腐蚀和膨胀得到肺部部分掩膜,并将其以灰度图的方式保存,便于后期构建相应的训练集。

3)二值化

对重采样后的切片进行二值化操作,阈值设定为-1 000和+400。其中,大于+400的部分置为1,小于-1 000的部分置为0。

2.2.2 训练集构建

本文训练集主要包括结节检测模型的训练集和肿块检测模型的训练集。

1)结节检测模型训练集

LUNA16数据集的注释文件由结节注释文件、无关注释文件和假阳性结节注释文件3个部分组成,而LIDC-IDRI数据集的注释文件主要为正例注释文件。其中,LUNA16中的无关注释文件中包含非结节、直径小于3 mm的结节和由1名或2名放射科医生注释的结节。

结节检测模型的训练集构建分为以下2个步骤:

步骤1利用LIDC-IDRI数据集和LUNA16数据集的注释文件,生成构建结节检测模型的训练集所需的注释文件,其主要包含结节直径大小和恶性程度信息。

步骤2根据上一步生成的注释文件以及DSB数据集的手注文件,分别将LUNA16数据集和DSB数据集中的CT图像切割为8×8×8大小的小三维图像,并将小三维图像组合成64×64×64大小的三维图像。为了将图像数据快速输入至结节检测模型,平铺重新组合成的三维图像并以PNG格式保存至本地。

2)肿块检测模型训练集

肿块检测模型的训练集来自DSB大赛中第二名获奖者所提供的肺肿块数据集。该数据共有1 264张切片图像,其中包含411张DSB数据集的切片图像、800张LUNA16数据集的切片图像和53张其他数据集的切片图像,每张图像都有对应的肺肿块掩膜图像。

在半监督训练策略中,剔除53张其他数据集的切片图像,从LUNA16数据集和DSB数据集的切片图像中分别随机挑选165张和161张作为初始训练数据集,数据集的标签即为肺肿块掩膜图像。

3 模型构建

本文模型主要包括结节检测模型和肿块检测模型2个部分。

3.1 结节检测模型

在结节检测模型的训练集构建过程中,三维图像的大小为64×64×64,为了网络能够学习到更为精确的特征,将三维图像缩小至32×32×32。然后,对训练数据进行图像增强处理以避免过拟合问题。

结节检测模型的网络结构如图1所示。输入数据首先经过平均池化层,池化大小为2×1×1,步长为2×1×1,对三维图像的Z轴进行下采样操作。由于Z轴数据较为粗糙,因此下采样操作并不会对网络模型提取图像特征造成影响,反而减少了网络的参数量,加快了网络训练速度。然后,数据传输至2个3D卷积层,卷积核大小均为3×3×3,padding大小为1,步长为1,滤波数分别为64和128。在2个3D卷积层后均跟随一个最大池化层,池化大小分别为1×2×2和2×2×2,步长分别为1×2×2和2×2×2。其后为2个3D卷积层,每个卷积层由2个3D卷积级联而成,卷积核大小均为3×3×3,padding大小为1,步长为1,但两者的滤波数分别为256和512。在每个3D卷积层之后均跟随一个最大池化层,池化大小均为2×2×2,步长为2×2×2。在这之后是一个卷积核大小为1×1×1的3D卷积层,其滤波数为64,padding大小为0。最后一层由2个卷积核大小为1×1×1的3D卷积层并行构成,其中,一个3D卷积层的输出作为结节评估预测值,其激活函数为Sigmoid函数,另一个3D卷积层的输出为疑似结节位置坐标及直径大小,其不使用任何激活函数。模型中其余3D卷积层的激活函数均为ReLU函数。

由于C3D网络模型为多任务学习模型,因此在结节检测学习任务中,其损失函数为二元分类交叉熵(C1),而在结节恶性评估学习任务中,其损失函数为平方绝对误差(C2)。网络的总损失函数如式(3)所示。

L=C1+C2

(3)

3.2 肿块检测模型

肿块检测模型的输入数据为320像素×320像素的2D切片图像,并对其进行数据增强的相关操作。该模型基于改进的U-Net网络模型构建而成,其网络结构如图2所示。

图2 肿块检测模型的网络结构

肿块检测模型的网络结构由收缩路径和扩张路径两部分组成。收缩路径上的网络模块均由2个卷积层、1个最大池化层(2×2)和1个BN层构成。扩张路径的网络模块由2个卷积层开始,然后进行一次上采样操作,并与收缩路径上相应的网络层融合,最后通过BN层和2个卷积层,所有卷积核大小均为3×3。其中,在图2扩张路径中的dropout设置为0.35,以避免因数据集过小造成的过拟合问题。网络模型的损失函数为Dice相似度系数(Dice Similarity Coefficient,DSC)。当DSC值取最大值时,表明该模型的分割准确率最高,其数学形式化定义如式(4)所示。

(4)

其中,yt表示真值,yp表示预测值,Ssmooth表示平滑参数。

4 模型训练

本文共训练了2个版本的结节检测模型,其中一个版本仅使用LUNA16数据集训练(v1),另一个版本则利用DSB数据集和LUNA16数据集进行训练(v2)。这2个版本的模型均用于肺癌诊断,其网络学习率为0.001,批次大小为8,优化器采用随机梯度下降算法(Stochastic Gradient Descent,SGD),动量设置为0.9,迭代次数为200次。

肺肿块检测模型的训练分为以下2个阶段:

1)初始阶段:将LUNA16数据集和DSB数据集分开训练,直至将各数据集中所有未标注数据扩充至训练集中。此阶段的网络学习率为1×10-5,优化器采用Adam,DSC的平滑参数设为1。

2)融合阶段:将2个数据集融合后对肺肿块检测模型进行训练。在训练过程中,不使用dropout,DSC的平滑参数为100,学习率为0.001,优化器为具有动量的SGD,其动量为0.9。

在半监督训练过程中,每次从未标注数据集中随机选取5张切片图像扩充样本,这是因为选取的切片图像数过大会导致学习曲线不收敛,且验证集上的DSC值方差较大。在模型训练过程中,迭代次数均为200次,批次大小均为8。

本文在肺癌预测阶段使用精度和交叉熵[21]2个评价指标。精度的计算公式如下:

(5)

其中,f(·)表示预测值,y表示真值,1(·)表示指示函数,m表示数据个数。

5 实验结果与分析

在本文自主学习训练方法的初始阶段,165张LUNA16数据集的切片图像的一次训练结果如图3(a)所示,经过十折交叉验证后,DSC平均值为75%。图3(b)表示直接将切片图像用于肺肿块网络模型训练的结果,可以看出,其最终无法收敛且DSC值方差较大。将161张DSB数据集的切片图像分别基于自主学习和通用深度学习训练模型,其训练结果如图4所示。经十折交叉验证后,初始模型训练的DSC平均值为87%,若直接将DSB数据集的切片图像用于最后的肺肿块网络模型进行训练,其无法收敛且DSC值方差较大。

图3 LUNA16数据集初始阶段的训练结果

Fig.3 Training results of the LUNA16 dataset at the initial stage

图4 DSB数据集的训练结果

800张LUNA16数据集的切片图像和400张DSB数据集的切片图像基于自主学习的训练结果如图5所示,其中,LUNA16数据集的DSC平均值为85.7%,DSB数据集的DSC平均值为89.6%。将这两个数据集进行融合训练,结果如图6所示。U-Net网络训练DSC值如表1所示。

图5 自主学习训练结果

图6 融合训练结果

表1 U-Net网络训练DSC值

肺结节检测模型的训练结果如表2所示,可以看出,仅使用LUNA16数据的二元分类精度为95.5%,使用LUNA16和DSB数据融合的二元分类精度为97.1%。

表2 不同版本模型的训练精度对比

Table 2 Comparison of training accuracy between different versions of models

模型版本训练精度/%v1(LUNA16)95.5v2(LUNA16数据集和DSB数据集)97.1

综合评估肺肿块检测与肺结节检测的结果,3种不同方法的检测精度和交叉熵分别如表3和表4所示。

表3 肺癌检测精度对比

表4 肺癌检测交叉熵对比

6 结束语

本文针对医学影像标注数据稀少的问题,提出一种基于半监督的自主学习方法。利用C3D多任务学习网络构建肺结节检测模型,基于改进的U-Net网络建立肺肿块检测模型,采用半监督方法进行训练,并结合上述2种模型的检测结果得到肺癌诊断结果。实验结果表明,采用自主学习的训练策略,其检测精度为85.3%±0.3%,与监督学习的预测精度相近。下一步将利用生成对抗网络生成图像,以扩大训练集,从而改善模型性能。

猜你喜欢

切片肿块卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
颈部肿块256例临床诊治分析
乳腺假血管瘤样间质增生1例并文献复习
新局势下5G网络切片技术的强化思考
卷积神经网络的分析与设计
从滤波器理解卷积
网络切片标准分析与发展现状
乳房有肿块、隐隐作痛,怎么办
基于傅里叶域卷积表示的目标跟踪算法
肾穿刺组织冷冻切片技术的改进方法