肺部CT 图像多病种自动检测及分类

2022-04-15 04:06吴优张睿张文强
应用科技 2022年2期
关键词:病种结节肺部

吴优,张睿,张文强

复旦大学 计算机科学技术学院,上海 200011

根据世界卫生组织发表的GLOBOCAN2018癌症报告显示[1],肺部癌症是全球性发病率最高且死亡人数最多的一种疾病,肺癌的发病率和死亡率分别为11.6%和18.4%,并且呈现出不断增长的趋势。研究表明,早期诊断肺部疾病并及时治疗能提高至少30% 的肺癌生存率。由于肺部疾病的初期症状并不明显,患者很容易错过最佳治疗时间,所以在CT 扫描影像中提取病灶特征并进行检测是一项重要任务。众多研究者在利用神经网络的学习能力在CT 图像领域帮助医生辅助诊断进行了大量研究,并且取得了一定成果。但由于肺部疾病常常伴随着多种并发症同时出现,如气管炎、淋巴系统疾病、心脏疾病等,目前在肺部单影像特征的临床实践中,计算机辅助系统已经取得了非常好的发展,但对肺部多病种的研究却鲜有涉及,下一步的重点是对肺部多种疾病进行智能综合诊治。

传统的肺部疾病检测需要有临床经验的医生采取人工特征识别的方式来鉴别,人工特征包含查看形状、纹理以及上下文空间信息等[2],医生需要反复翻看CT 图片来确定病人是否患有某种疾病,并且多个医生由于经验的不同可能会对相同CT 影像产生截然相反的检测结果。所以人工检测过程复杂、耗时耗力、还可能因为人工疲劳等因素造成误检漏检。

从20 世纪90 年代开始,计算机辅助诊断(computer aided diagnosis,CAD)在临床医疗研究中被广泛应用.众多国内外学者发现,卷积神经网络(convolutional neural network,CNN)能自主学习肺部CT 影像中的高级特征,无需经过人工检验的繁琐步骤,直接学习肺部疾病的特征来进行检测[3-4]。以肺结节检测为例,Chen 等[5]使用聚类分水岭算法来提取候选结节检测区域,并使用支持向量机来进行分类,结节检测准确率为79%。Setio 等[6]提出一种多视图2D CNN 方法,以2D 图像作为输入进行肺结节的检测,检测结果比传统人工识别方式精度高出15% 左右。Dou 等[7]提出3D 卷积神经网络能更好的学习到CT 影像中的空间信息,并提出以候选位置坐标为中心切割3 个不同大小的立方体并送入网络,分别训练3 个包含不同层次上下文信息的三维卷积网络,将这些网络的后验预测融合在一起,得到最终的分类结果,但该网络结构存在需要手动控制每个尺度权重的问题,所以如何选取网络能更快更准确的检测出肺部疾病是目前存在的问题。

一般来说,肺部病种检测分为2 个阶段[8-10]:找到候选患病区域,剔除假阳性病灶。本文提出的基于2D 网络分割和3D 网络假阳性判别及分类的肺部CT 图像多病种自动检测和分类方法不仅能检测出肺结节、索条、动脉硬化或钙化3 种疾病,还能达到速度快,准确率高的优点。

本文针对设备有限的现实场景下,对多病种检测任务使用融合2D 分割网络和3D 分类网络的自动检测方法进行快速且准确地检测。

1 肺部CT 图像多病种自动检测及分类

本文将重点从分割网络和检测网络等方面展开阐述。首先将数据集进行预处理,再使用2D U-Net 分割网络找到疑似病灶区域,并用优化后的3D MGI-CNN 网络对疑似病灶区域进行去除假阳性操作.

1.1 数据预处理

本文所使用的数据集为LUNA16 和天池数据集,其中LUNA16 数据集是从LIDC-IDRI[11]数据集中选取的一部分,LUNA16 全称为Lung Nodule Analysis 16,是2016 年推出的一个数据量大、质量高的肺结节CT 数据集,包含885 个患者的CT 图像,共计1 186 个结节,数据由4 位临床经验丰富的胸部放射科医师对患者CT 图像进行两次图像标注得到。天池数据集包含1 470 个患者的CT 图像,3 种病灶数量共计11 078 个,其中肺结节、索条、动脉硬化或钙化3种病灶的数量分别为3 264,3 613和4 201,数据预处理方法如下。

1)坐标转化。首先根据LUNA16 数据集标注文件和天池数据集标注文件读取病灶区域坐标以及半径,式(1)给出了世界坐标C1到体像素坐标C2之间的转换公式:

式中原点坐标O和像素间距信息S是使用Python 中的SimpleITK 库提取.raw 文件得到的内容,图像信息是提取.mhd 文件并可视化的内容。

2)图片标准化。根据得到的转换坐标读取MHD 文件中Z轴上的2D 图片,式(2) 进行标准化操作,将原图中每个像素值P1标准化为0~1 的数值并缩放到320×320 大小,转换后的CT 像素值P2标记为

式中Pmin和Pmax分别为像素点最小值和最大值。通过转换后的坐标及半径信息,就能确定一个病灶区域的中心点和长宽,我们以此来生成mask 图,病灶区域内像素值为1,病灶区域外像素值为0。图1 为3 种病灶数据集和对应mask 可视化图。

图1 3 种疾病可视化图

1.2 分割网络构建

本文采用U-Net 神经网络[12-13]作为分割模型来预测肺部多种疾病分割图像,具体包含如下步骤。

1)图像增强。使用的数据增强方法包括旋转、弹性变换、改变图片颜色和改变对比度等,数据集在送入网络之前要进行数据类型转换,即将图片像素值转换成float 类型并进行通道归一化。

2)网络构建。U-Net 由2 个部分组成:一个是收缩路径,一个是扩展路径。收缩路径主要是用来捕捉医学影像中的上下文方面的信息,扩展路径的目的是将图片中分割出来的部分进行精确定位。为了达到精确定位的作用,收缩路径提取出来的高像素特征会在上采样过程中与新的特征图进行结合,此操作可以最大程度地保留前面模型在下采样过程中的一些重要信息,图2 为分割网络的模型。

图2 分割模型

对于真值mask 图和得到的mask 图,我们将两者得到的图像矩阵展开为ytrue和ypred,Dice Loss 函数是一种集合相似度度量函数,通常用于计算2 个样本的相似度,构建损失函数为

式中:K为平滑数,实验中设置为1 来避免L分母为0 的情况。

1.3 假阳性检测和分类网络构建

本文采用三维多尺度融合神经网络MGICNN 来预测多种病灶的真假阳性概率[14],去除假阳性病灶并在网络结构中增加分类部分使得能对病灶区域区分病种,图3 为优化后的分类网络。

图3 分类模型

优化过程具体步骤如下。

1)数据准备。使用本文1.2 节分割模型得到候选病灶区域mask 图后,根据预测的mask 图找到中心坐标,将影像ID、病灶坐标x、病灶坐标y和病灶坐标z进行标记存储,并在原MHD 格式的CT 图中裁剪出3 个不同大小的三维图像块送入模型中。

2)网络构建。通过得到的病灶区域中心点位置得到40×40×26,30×30×10,20×20×6 这3 个不同大小的立方体如图4 所示,我们称之为S1,S2和S3。

图4 3D 立方体提取

调整三者的大小为20×20×6 的相同尺寸,将3 个不同尺度的信息进行融合,按照S1+S2+S3 的方法和S3+S2+S1 的拼接方法得到9×9×192 大小的Zoom-in 信息和Zoom-out 信息如图5 所示。

将Zoom-in 特征和Zoom-out 特征先通过卷积层调整到9×9×256 大小的特征并融合,训练结束能得到病种分类和假阳性检测信息2 种信息。

3)模型训练。将3 个病种得到的立方体及对应标签作为训练集,根据步骤2)构建的三维多尺度融合3D 神经网络来得到分类信息以及假阳性信息。网络训练基于随机梯度下降算法,并采用五折交叉验证方式,假阳性部分损失函数采用sigmoid 交叉熵损失函数:

式中:N为样本数,yi为第i个样本的标签,pi为第i个样本的预测值;w为待训练权重。

分类损失函数为多分类交叉熵损失函数,并且使用Adam 优化器:

式中:N为样本数;M为类别数,本文中的值M为4,包含健康、患肺结节、患肺部索条和患动脉硬化或钙化4 类;yi值若为1 表示该类别与样本的类别相同,否则就是0;pi即观测样本i属于类别j的概率。

最后假阳性检测及病灶分类部分网络的损失函数为上述两类损失函数之和,即

这部分指标使用曲线下面积(area under curve,AUC)曲线衡量。可以知道,AUC 曲线被定义为ROC 曲线下与坐标轴围成的面积,显然这个面积数值不会大于1,又由于y=x这条直线围成的AUC 面积为0.5,等于随机概率,没有应用价值,所以常见的ROC 曲线一般都处于y=x直线上方,取值范围在0.5~1.0,AUC 值越接近1.0 表明检测方法准确性越高。

2 实验

2.1 实验过程

本文实验基于keras 深度学习框架,所采用的LUNA16 数据集共计1 186 个结节,天池数据集中肺结节有3 264 个,索条数量有3 613 个,动脉硬化或钙化数量共计4 201 个。因为肺结节训练集数量明显多于其他病种数据集数量,故将LUNA16数据集得到的训练集用于预训练模型,预训练结束时U-Net 对肺结节的预测查全率为95.1%。将天池数据集3 种病灶区域及mask 图均以PNG 格式存储,训练集、验证集和测试集占比分别为70%、15%和15%,两阶段网络使用的训练集、验证集和测试集数量比例均对应。

2.2 实验结果

使用U-Net 网络作为分割模型得到候选病灶区域阶段,设置batch_size 为64,epoch 为150。实验表明每个epoch 平均运行时间为160 s,由于网络预先使用LUNA16 数据集进行预训练,在肺结节单病种上该预训练网络能到达95.1% 的查全率,加载权重开始训练多病种时,前5 次查全率达到76.08%;epoch为50后,查全率趋于平稳,为93.6%,实验结果如图6 所示。

图6 阶段-准确性曲线

查全率表明在实际患病的病人中,成功预测患病的病人百分比。U-Net 分割阶段目的是尽量找到所有患病区域,高查全率是这一阶段的目标。在93.6% 查全率的情况下,查准率却只有20.6%,所以在第二阶段剔除假阳性病灶并对患病区域进行分类阶段,要以高查准率为目标,即所有预测患病的病人中,实际患病的病人百分比。

使用分类网络剔除假阳性病灶并对真实患病区域进行分类时,因为数据量较大,该阶段的batch_size 设置为32,epoch 为100,使用AUC 作为衡量指标,AUC 越接近1.0 表明检测方法准确性越高。优化后的MGI-CNN 网络查准率为0.955,实验结果如图7 所示。

图7 第二阶段AUC 曲线

Ding 等[15]于2017 年提出的3D DCNN 网络其输入为患者的肺部CT 图像中相邻3 张,其基础架构为Faster R-CNN[4]。Liao 等[16]于2019 年提出的C-Net 网络准确率达91.23%,该网络是通过一个2 部分的检测网络来进行肺部检测。Zhu 等[17]于2018 年提出的DeepLung 结构准确率达90.05%,采用多路径网络来学习特征。Joseph Redmon 等[18]设计的YOLOv3 网络采用二维卷积神经网络和anchor box 进行病灶区域定位,表1 为本文实现的准确率、召回率和在单张CT 影像上运行的速度对比结果。

在多病种检测任务中,测试集选取切片张数(slice)在100~230 的CT 影像,可以发现,本文模型计算速度略小于二维模型YOLOv3[18],但是准确性比二维YOLOv3[18]高,计算速度远快于三维模型3D DCNN[15]、C-Net[16]和DeepLung[17],但是检测准确性略低于三维模型C-Net[16]、DeepLung[17],本文模型能在保证准确性的情况下满足医院等使用场景设备条件并快速进行诊断。

图8 为成功检测出肺结节和索条多病种的示例图,其中用红线框出病灶区域,如图中左肺成功检测出肺结节,右肺成功检测出索条。

图8 结果可视化图

在本文的应用背景下,先将不同的神经网络用于天池数据集,检测结果如表1 所示。

表1 不同模型性能对比

3 结论

中国肺部疾病患者较多,医生人工诊断费时费力,还可能导致错检、漏检,本文在对设备要求不高的情况下对肺部多病种检测方法展开研究。本文采用卷积神经网络的方法训练两阶段模型,工作总结如下:

1)针对复杂的医学影像预处理操作,本文设计的肺部影像数据预处理流程能让原始影像数据保留更多的特征供模型学习。

2)针对医学影像数据庞大且病灶位置分散,传统单病种研究使用的2D 模型无法学习空间信息、检测准确性低;3D 模型学习参数过多、检测速度慢且对设备性能要求高等问题,本文提出一种融合2D 和3D 神经网络的anchor-free 双阶段模型。用2D 模型初筛数据提取疑似病灶区域,用3D 模型精筛数据去除假阳性。实验结果表明,本文方法能成功检测出肺部多种疾病,并且检测速度较快,对设备性能要求低,适用于医院等设备性能无法满足要求的现实场景,相比于其他2D 和3D 检测方法,本文提出的模型具有节省资源且用时少的优点,具有更高的实用性和可拓展性。

猜你喜欢
病种结节肺部
星形诺卡菌肺部感染1例并文献复习
盐酸氨溴索在慢阻肺合并肺部感染的临床应用
体检发现的结节,离癌症有多远?
肺结节,不纠结
发现肺结节需要做PET/CT吗?
肺结节≠肺癌,发现肺结节如何复查?
湖南省:按病种收付费新增胃息肉等54个病种
“新病种”等十五则
看病花钱,心里“有数”
我国全面推进按病种收费改革