shartoo +

CT图像中肺结节自动检测:使用CNN移除假阳性【论文笔记】

本文总阅读量
欢迎star我的博客

0 综述

本文做出以下共享:

  1. 我们提出了一种用于肺结节检测的多角度卷积网络ConvNet用以剔除假阳性的步骤。候选样本是由三种现存的检测算法结合计算出来的,这也可用于增强候选检测步骤的灵敏性。

  2. 评估不同的多角度卷积网络的架构以及它们对检测性能的影响。同时也评估了增加更多角度和应用一种确定的融合技术对于每种架构的性能

  3. 提出一种性能基准和在完全独立的筛选实验的数据集上的外部验证。

1 数据材料

1.1 LIDC-IDRI

使用大的公开数据集Lung Image Database Consortium(LIDC-IDRI)训练和验证了CAD系统。该数据集包含了来自7个机构的1018个异质病例。CT图像的切片(slices)厚度从0.6mm-5.0mm之间,中值为2.0mm。数据的引用标准由人工标注,来自四位放射医师,对每个scan进行两轮评审。第一轮的盲审阶段,可疑病变是独立标注的并且每个都被分类 为非结节,结节<3mm,结节>3mm。人工的3D切割只针对结节>3mm的。第二轮中,来自全部四位的放射医师的标注被评审(非盲审),同时每个放射医师决定接受或反对此标注。

我们抛弃了结节厚度大于2.5mm的样本(它们已经不被推荐使用),以及包含了不相连切片(slices)空间的scans,最后获得888个scans。最后挑选的scans列表我们公开在 公开的scans列表 。我们仅考虑标注中结节半径大于等于3mm的,小于3mm的被丢弃。最后选择了结节半径大于等于3mm的,并且被大部分放射医师 (4个中有3个)。最后选出了1186个结节。

1.2 ANODE09

为了进一步验证系统的性能,使用完全独立于训练集的数据集 ANODE09竞赛, 该数据集由55个CT scans组成。每个CT由2个观察者盲审标注。5个scans作为训练集,剩余的50个作为测试集。这些引用没法公开获取。

所有的样本由 University Medical Center Utrecht 收集。图像被重构为 1.0mm厚度。

1.3 DLCST

为了进一步验证系统的性能,使用了Danish Lung Cancer Screening Trial的数据集。该评测基于612个baseline的scans,这些scans是最近公开在临床研究上的。两个观测者的半径被平均,然后正样本被定义为结节半径大于等于3mm。这个结果产生了898个结节。

二 方法

我们提出的CAD系统架构图如下,由两个主要部分组成:(1)候选检测(2)假阳性剔除。

总流程

我们分别为solid,subsolid,large solid结节使用了三个定制候选检测器。这些检测器的结合用以增加结节灵敏度。注意到结节尺寸和形态特征变化很大,每个候选从固定平面抽取多个2-D视角。每个2-D视角被一个ConvNets流处理。ConvNets特征被用于计算最终分数。

2.1 候选检测

候选检测关系到后续阶段的最大检测灵敏度,候选检测算法应该完美的识别所有可疑的病变。

为了检测更广泛的结节,我们应用了多种候选检测算法的结合。结合已有的三种用以检测结节候选的CAD系统。每个算法关注于一种类别的结节,即solid,subsolid,large solid 结节。对于每一个候选,其位置 $p= (x,y,z)$ 和它为结节的概率被给出。三个集合的结节候选被计算,并合并以最大化检测器的灵敏度。候选位置密集度小于5mm的结节被合并,这些合并的结节的位置和为结节的概率以均值表示。

候选检测阶段的方法,获取每个VOI(volume of interest)的位置。

对于solid结节,实现了论文3中的方法。计算肺部的每个体素,shape index和轮廓,并在两种方法使用了阈值用以定义seedpoint。一种自动切割方法会在seedpoint执行,这可获得 cluster of interest。然后cluster位置相邻的被合并。最后丢弃体积小于 $40mm^3$ 的cluster。

对于subsolid结节,论文5(Automatic detection of subsolid pulmonary nodules in thoracic computed tomography images *)中的一种方法是。一种双阈值密度mask (-750,-350 HU)首次用来获得 voxel of interest的mask。形态open运算(一种图形学的操作)用来移除相连的cluster,紧接着做3D相连组件分析。最后精确的候选切割是通过一种先前提出的结节算法(论文Morphological segmentation and partial volume analysis for volumetry of solid pulmonary lesions in thoracic CT scans *)获得。

对于Large solid结节(大于等于10mm,它有着与小结节病变不同的surface/shape index值,并且有着不同的密度分布,solid和subsolid结节检测算法无法检测到。除此之外,粘附于胸膜壁的large solid结节可能被肺部切割算法排除在外,因为它与胸部的对比度很低。基于这些原因,论文27提出第三种检测器算法,并由以下三步组成:

  1. 肺部切割后处理:通过对切割mask应用一个滚球算法,这会在肺切割时包含粘附于胸腔的large solid结节。

  2. 密度阈值(-300HU),为了获取 voxels of interest的mask

  3. 多阶段获取候选cluster的形态开运算(opening)(论文29),我们以大的结构元素来抽取更大的结节,然后渐渐的继续使用小结构元素来抽取小的结节。

有个重要问题是,训练算法时使用高度不均衡的数据会导致学习到的参数会向最常见的候选的特征(比如 vessels(血管))倾斜,并忽略更稀有的结节的重要特征。为防止对最普遍的假阳性结节的过拟合,我们丢弃了概率较低的结节候选。这些概率都是由后续的分类阶段的算法给出,并且阈值都是基于经验值设定用以减少大量的假阳性,同时保留高检测灵敏性。

2.2 patches 抽取

对于每个候选,我们抽取了多个2-D patches,尺寸为$50\times 50mm$,中心坐标位置为 $p$ 。选择此大小的尺寸是为了让所有的结节($\le 30mm$)在2D视角的完全可见,并包含充分的上下文信息,这有助于在候选分类阶段。我们将尺寸为 $50\times 50 mm$的patches转换为 $64\times 64 px$(注意单位),分辨率为0.78mm,这对应于典型的CT数据切片分辨率。像素密度范围从(-1000,400HU)转换为(0,1),不在此范围的被切除。

为了抽取patches,我们首先考虑了立方块尺寸为 $50\times 50\times 50 mm$,完全包含候选。在立方块的9个对称轴面抽取9个patches。上图中的图a展示了9个对称轴面的pathes方法。

2.3 假阳性剔除:2-D ConvNets配置

假阳性剔除阶段结合了不同流式的ConvNets,可被看做一种多视角架构。每种流处理一个候选的特定种角度的patches。

2-D卷积网络的架构由一个小数据集决定的。这个数据集上,几个超参数(比如,层数,kernel size,学习速率,视角数目,融合方法)在此优化。这些超参数中,我们规定了两个最重要的参数需要微调,即(1)视角数目(2)融合方法。其他参数被设置为最佳配置(从那个小数据集上获得的最优值)。

2-D ConvNets由3个连续卷积层和一个最大池化层组成。网络的输入是 $64\times 64 $的patches。具体如下

网络层数 类型 kernel 数目 kernel size
1 conv 24 5x5x1
2 conv 32 3x3x24
3 conv 48 3x3x32
4 maxpool 1 2x2(stride 2) non-overlap

每个kernel产生一个2-D图像输出(比如第一层卷积之后,输出24个60x60的图像)。Kernel的值都是随机初始化的,并且在训练过程优化。最大池化层,使用非重叠窗口kernel size是2x2,步长为2,这会将patches suze减小为一半(例如,从24@60x60减小为24@30x30)。最后一层是全连接层,输出16个神经元。Relu激活函数用于卷积层和全连接层

2.4 假阳性剔除:ConvNets融合

有三种方式对多个2-D ConvNets网络的融合,做了如下调查:

(1)committee-fusion:最常见的融合方法,它对多个卷积网络的输出预测做一个基于委员会的融合。我们连接每个流的全连接层的输出到一个分类层,该分类层由一个使用softmax激活函数的全连接层组成。每个ConvNets流使用不同视角的patches独立训练,并且输出预测使用一种product-rule来组合输出概率,上图图c所示。

(2)late-fusion:该方法拼接第一个全连接层的输出,并直接将此拼接输出与分类层相连(上图图C)。此种方法,分类层可以通过对比多个ConvNets的输出学习3-D特征。这种配置中,不同流的卷积层参数是共享的。

(3)mixed-fusion:上面两种方法的结合。多个late-fusion ConvNets用固定数量的正交平面实现。利用更多的视角,系统的预测准确率可以通过在委员会中结合多个late-fusion ConvNets来提高。我们将9个patches分为3个独立的集合,每个集合包含了三个不同的pacthes。

2.5 训练

评估方法是在888个LIDC-IDRI使用的是5-折交叉验证。我们将888个样本切分为5个子集,并每个子集的候选数目相近。每一折中,使用3个子集作为训练,一个子集为验证,一个子集为测试。使用ConvNets的一大挑战是在给定的训练集有效的优化ConvNets的权重。损失函数使用交叉熵误差,权重更新使用128样本的mini-batches。

2.6 数据增强

ConvNets上使用不均衡的数据集会导致算法陷入局部最优,其预测结果会偏向出现频率最高的特征,并导致过拟合。

(1) 训练数据集增强:由于结节数远小于非结节数,因此数据增强仅用于结节。此步骤仅用于训练和验证。将候选坐标每个轴转换为1mm,并将patches的尺寸变换为40,45,50,和55mm。此类转换设置为1mm是为了保证结节(>3mm)可以被patches捕获到。可以通过在结节上随机上采样候选 来进一步均衡数据集。

(2)测试数据集增强:测试集数据增强可能有助于提高系统的鲁棒性,因为候选早在非常多的不同条件下评估,比如分析不同尺寸的输入图像。测试数据增强在每个候选(结节和非结节上都有),通过缩放patches尺寸为40,45,50,55mm,每个都是被ConvNets-CAD系统独立地处理。每个候选的预测是平均所有的增强的数据得来的。最终预测结果是预测的集合,它被用来作为补充信息,因此使得最终的预测结果更加准确和稳定。

2.7 评估

评测了两种性能指标。(1)ROC曲线下区域(2)竞赛性能指标CPM,即衡量FROC曲线7个操作点(1/8,1/4,1/2,1,2,4,8Fps/scan)的平均灵敏度。AUC显示ConvNets在是否为结节时分类候选的性能,CPM显示的CAD系统在操作点的性能。注意,系统有更好AUC分数并不一定会有更高的CPM。我们同时计算95%内部置信度和p值,使用1000个boostrapping。

三 实验结果

候选检测算法的检测灵敏度

Candidate detection Detected nodules Sensitivity(%) False Positives(FPs) FPs per scan
solid 1016 85.7 292413 329.3
subsolid 428 36.1 255027 287.2
Large solid 377 31.8 41816 47.1
combines set 1120 94.4 543160 611.7
Reduced set 1106 93.3 239041 269.2

训练集中结节和非结节数据统计。为了平衡数据集,数据增强(aug)和上采样(up)在结节上的表现

Training dataset Fold 0 Fold 1 Fold 2 Fold 3 Fold 4
scans 428 522 574 629 511
nodule 528 669 713 773 635
-aug 57552 72921 77717 84257 69215
-agu+up 143838 143796 143796 142823 142927
non-nodule 143838 143796 143739 142823 142927

Performance benchmark of ConvNets configurations on LIDC-IDRI dataset.

Configuration Number of views AUC CPM
combines algorithms - 0.969 0.573
single-view 1 0.969 0.481
committee-fusion 3 0.981 0.696
  9 0.987 0.780
late-fusion 3 0.987 0.742
  9 0.993 0.827
mixed-fusion 3*3 0.996 0.824

我的博客

观点

源码