肺结节目标检测_【肺结节识别】3D Deep Leaky Noisy-or Network论文

Pulmonary nodules' malignancy can be assessed using a 3D deep leaky noisy-or network.
github地址:3D Deep Leaky Noisy-or Network
1. 概述
肺癌自动诊断流程主要包括两阶段:首先通过影像学手段识别出肺部病变区域(即肺结节),随后结合临床数据综合判定其恶性程度。
2. 数据集
- 比赛包含DSB(Data Science Bowl 2017): 共计提供了1397例训练病例、198例验证病例及506例测试病例的数据信息。每个患者都附有二分类标记(患病与否),其中标记为"1"表示一年内出现过疾病。
- LUNA项目提供了大量公开的数据集(the Lung Nodule Analysis 2016),包含了888例患者案例以及详细记录了其中1186例肺结节的位置信息。
DSB和LUNA数据集之间的主要差异体现在以下几点:首先,在LUNA数据集中所包含的肺结节数量相对较少;其次,在DSB数据集中观察到较多的病理性肺结节位于主支气管中(而LUNA数据集中这类情况较为少见);最后需要指出的是,在DSB数据集中并未对肺结节进行标注
为了统一两个数据集, 去除LUNA中标记有临床经验支持的安全范围内的肺结节约束于直径小于6毫米的部分(此处提示, 直径小于6毫米的小型肺结节约常被认定具有较低的风险);此外, 人工注释DSB训练样本包含754例病灶, 验证样本则包含78例病灶
3. 数据预处理
数据预处理目的在于提取肺部区域 ,并去除肺部周边噪声。
- 掩膜推导(mask derivation):对2D图像进行二进制化处理以辨别肺部与非肺部区域
- 基于此,在检测到结节位于肺外围时,在左右两侧分别生成相应的凸壳并将其向外膨胀10个像素
3)灰度标准化:通过线性变换将HU值范围(-128到127)转换为适合图像显示的灰色层次,并令除mask之外的所有像素设置为统一的灰色背景;同时,在需增强区域中所有骨组织相关的像素也被设定为此灰色背景以防止对肺结节特征识别的影响。
注释:HU值也被称为CT指标,在医学成像领域有着重要的应用价值。其取值范围在-1 以上至+1 之间,并且反映了人体组织对X射线的能量吸收能力。具体而言,在相同条件下进行比照时,组织密度越高,则其对应的HU值也越高;而空气中各成分所占比例较低,则其相应的HUS数值也会相对较低。

4. 3D 肺结节检测网络(N-Net)
4.1 训练输入数据
受限于内存容量,网络输入采用的是每个样本由多个小立方体区域组成的4维张量数据结构。其中每个立方体区域尺寸设定为每个方向上的像素数均为128个单位,并且通过随机采样技术选取这些立方体区域进行处理。其中70%的比例包含至少一个病变结节样本,而剩余30%则不含任何病变结节样本。此外,在处理边界外延区域时,则会采用灰度值恒定在170的空间来填充这些超出范围的部分。
为防止过拟合,patch数据进行随机水平翻转,resize。
4.2 网络结构
N-Net网络的设计灵感源自于U-Net结构,并以三维卷积神经网络为基础架构。该系统通过对其所处理的数据进行细致分析与处理,在整个肺部区域展开扫描,并对每个立方体单元进行评估以识别并返回每个立方体单元中可能存在的结节标记。见下图
- 图中每个cube都是4维的 ,cube正面数字可表示长宽高,顶上数字为channel
- 数据输入维度:128x128x128x1
- 数据输出维度:32x32x32x(5*3),5代表sigmoid输出概率和4个坐标转换系数,3代表长分别是10,30,60mm的3个anchor
- kernel size:所有feed forward的卷积核维度为3x3x3xchannel,padding=1;所有反卷积kernel size=2,stride=2
- 深橙色cube:根据肺区域标准化后的patch坐标信息,维度是32x32x32x3,值域[-1,1]
- k卷积层:第一排的k的两个卷积层的卷积核都是3x3x3x24;第二排的k的两个卷积层的卷积核分别是1x1x1x64和1x1x1x15

4.3 损失函数
和faster rcnn rpn网络损失函数类似。

注:上图中的p为指示变量,anchor是正样本时p=1,是负样本时p=0
4.4 正负样本均衡
- 大肺结节会产生大量正anchor,并采用随机选取的方式从中选择一个 anchor 以减少训练样本间的相关性。
- 大肺结节数量较少,在进行数据增强时会遇到较大的问题。尤其是对于直径超过30毫米和40毫米的病变区域(lesions),为了提高检测效率与准确性,在这些较大病变区域中的采样密度将显著高于正常范围内的病变区域。
4.5 困难负样本挖掘
对容易误诊为结节的负anchor,进行困难负样本挖掘。具体地,
1、随机选择N个负anchor(减小负样本相关性)
2、根据网络输出的classification score排序这N个负anchor
3、选择排序top n的负anchor计算loss,反传更新参数
4.6 测试过程
- 受限于GPU资源的限制,在此研究中我们采用了输入Patch的方法。
- 该网络预测肺结节的中心位置及尺寸参数包括:中心X、Y、Z坐标值;半径;以及该区域为结节的概率值。
- 为了去除预测出的overlapping区域以提高检测结果的准确性,在最后一步我们采用了非最大抑制法。
5. 肺结节癌症分类网络(C-Net)
5.1 输入数据
基于N-Net生成的五个candidate cube中,每个candidate cube均具有96×96×96×1的空间维度(其中中心点位于中心肺结节区域附近)。在训练阶段,系统会根据各candidate cube的概率值随机选取前五位作为候选集(防止过拟合问题)。测试过程中,则依据各candidate cube的概率值选出排名前五的候选体素作为最终结果。
5.2 网络结构
选取N-Net输出中概率较高的5个candidate cube proposals,并通过卷积层结合使用Leaky Noisy-or 方法计算病患存在癌症的概率。
- 输入样本具有形状为[H\times W\times C\times D]的形式,在本例中H=W=C=D=3.
- 对于每一个proposals, 我们会将其嵌入到N-Net网络中, 并通过一系列的空间聚合操作最终获得对应的特征向量.

5.3 feature整合方法
本文探讨了四种特征组合方法。最后采用带有噪声OR门(Leaky Noisy-OR)的方法整合基于5个建议的特征,并计算了整个肺部患癌的概率。

- Pi:第i个结节癌变的概率
- Feature comb:存在不足之处
- MaxP:若所有P1=P2=…=P5=50%,则MaxP方法计算出的整体患癌概率为50%;但临床医生认为整体患癌率应超过50%
- Noisy-or:当N-Net未能检测出恶性病变时,整体患癌概率由良性病变导致;经过反向知识蒸馏后发现良性病变对患癌概率贡献显著增大;这与实际情况不符;MaxP方法同样存在这一问题
- Leaky noisy-or:为了避免Noisy-or方法存在的缺陷,在模型中引入了一个虚拟节点(dummy nodule)的癌变概率Pd;该参数由模型自动学习确定
Noisy-or门:在一个由五个结点组成的系统中(即五个独立的病变概率),只要有其中一个结点出现较高概率(例如P₁=80%,其余四个均为P₂=P₃=P₄=P₅=1%),则整个肺部病变的发生概率将显著提升(计算得P=80.49%)。Leaky noisy-or门:当检测结果y=1(表明病变存在)时,在N-Net系统中输出的五个病变候选区域(proposals)可能全部不为病变原因这一现象并不合理。因此我们引入了一个虚拟假结点,并假设其病变概率为Pd值(例如将该假节点设定为发生概率Pd=10%)。在这种情况下,则整体计算得出新的病变总概率仅为约14.41%,这表明该病变现象很有可能是由所引入的虚拟假节点引起的
5.4 训练过程
C-Net损失函数为交叉熵

, n是类别的个数,p(i)是真实标签概率分布,q(i)是预测标签概率分布。
为避免过拟合,操作如下:
- 数据增强
- 在垂直、水平以及斜向三个维度上实施随机翻转操作
- 按0.75至1.25倍的比例进行随机缩放
- 实施任意角度的旋转处理
- 在三个维度上施加偏移(shifting),偏移距离小于15%的半径长度
- 正则化
- 进行梯度截断处理(gradient clipping)
- 应用批量归一化处理(batch normalization)
训练流程:
- 依次进行检测器的训练及参数的转移后,则继续进行分类器的训练;
- 通过应用梯度剪切法对分类器进行训练之后,则会保存BN(批归一化)参数;
- 在交替使用上述两种技术的过程中,则分别对检测器与分类器进行梯度剪切法与保存BN参数的操作。
6. 疑问
- 检测网络为什么设计deconvolution层?
U-Net backbone equipped the network with the ability to extract multiscale data , whose importance lies in the fact that nodules exhibit significant size variations.
deconvolution层能够通过解码器级数放大feature map,并生成层次分明且更加详细的基础特征图,在语义分割任务中表现出显著的优势
- Leaky noisy-or 的Pd用处理解不了
在现实生活中,肺癌的一个潜在原因是恶性结节的可能性之一。然而,在某些情况下(如N-Net系统),可能存在漏检的现象。由此可见,在所有检测指标均为零的情况下(即P1=P2=P3=P4=P5=0),肺癌仍有可能发生。为此,在分析此类情况时,默认会引入一个假象结节作为导致肺癌的因素之一,并假设其发生概率为Pd。
7. 思考
医学领域的数据资源较为有限,在提升模型性能时可以通过实施数据增强技术和正则化措施来有效防止模型过拟合现象的发生。此外需要注意避免过于僵化的设计策略。例如,在困难负样本挖掘过程中应选择多样化的候选负样本,并在RPN中合理分配proposal得分较高的样本时加入随机采样机制。而不仅仅是选取得分最高的前n个样本。
8. Reference
http://bioinfo.au.tsinghua.edu.cn/personals/sjchen/reports/20170511/Identifying-Nodules.tsix
https://www.jianshu.com/p/50158f8daf0d
https://www.zybuluo.com/sixijinling/note/733931
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2656011/
http://159.226.64.23/Jwk_dgdn/CN/article/downloadArticleFile.do?attachType=PDF&id=1624
以上
------------------------------------------------
知乎专栏·Paper Reading | 汇聚自动驾驶领域顶尖专家的知识分享平台,诚邀各界同仁加入!
