许正玺,张少敏,2,3*,支力佳,2,3,周涛,3
1.北方民族大学计算机科学与工程学院,银川 750021; 2.宁夏回族自治区人民医院医学影像中心,银川 750000;3.北方民族大学图像图形智能处理国家民委重点实验室,银川 750021
早期发现肺结节对肺癌的早期诊断具有重要意义(Bray等,2018)。2020年全球癌症死亡病例996万例,其中肺癌死亡180万例,远超其他癌症类型,位居癌症死亡人数第一。早期发现肺结节,及时治疗,5年生存率可提高到55%。因此,早期发现潜在癌性肺结节对降低肺癌死亡率具有重要意义。胸部计算机断层扫描(computed tomography, CT)图像是检测肺结节最常用的成像方式之一。但是CT对于单个患者产生的医疗切片数量通常很多,范围从230~360。由放射科医生对每个切片进行分析将增加工作量并且费时,且易造成直径小于10 mm结节的缺失或误诊。而深度模型在图像领域的进展,有效推动了医学图像处理领域内的很多研究(黄凯奇 等,2014;Russakovsky等,2015)。因此在海量医学数据的背景下,如何利用深度学习技术实现一个更高效的计算机辅助系统成为医学领域面临的新挑战。
利用人工智能医学成像技术诊断肺结节是医学领域的重要组成部分,计算机辅助检测(computer-aided diagnosis, CAD)系统的实现是常规临床实践中优化效率和成本的标志性努力。当前肺结节检测算法主要分为基于手动提取特征算法和基于深度神经网络算法。传统的计算机辅助设计系统,首先提取肺结节的灰度和纹理特征,然后利用支持向量机等分类器对提取的特征进行分类和训练,检测出肺结节。Lin等人(2005)根据肺结节和血管的像素值较高且呈圆形的先验知识,通过对图像直方图的分析,找出灰度较高的像素值作为可疑结节的候选点。随着技术的进步,Firmino等人(2016)采用分水岭和直方图技术,结合支持向量机算法对420例肺癌患者进行肺结节检测训练,获得了94.3%的准确率。然而,这些方法都有其固有的缺点,传统的支持向量机算法假设所有特征对目标分类的影响是相同的,因此上述算法适用于小规模数据集,而不适用大规模医学数据集。此外,传统方法提取的特征在表示大量不同的结节特征方面缺乏一致性,而基于深度神经网络可以从训练数据中自动学习出更高效、更有鉴别性的特征。因此,许多学者将深度学习方法应用于图像识别领域,取得了较好的效果。学者们开发了基于卷积神经网络(convolutional neural network, CNN)的两阶段CAD系统用于肺结节检测。一般来说,这些方法包括两步(Polat等,2018),首先,从输入的CT影像中分割出肺部区域,目的是提取病变可能性高的结节。然后降低假阳性,从大量疑似结节中鉴别真结节。Setio等人(2017)提出利用二阶段2D多视图卷积网络来学习肺结节检测的代表性特征。定义了3个探测器来探测实体结节、亚实体结节和大结节,可以结合相对较宽的空间信息进行检测。该方法在LIDC-IDRI(The Lung Image Database Consortium)(Armato等,2011)数据集的基准上,对每一个被试的1.0个假阳性检测灵敏度达到了85.4%,证明了卷积网络在这项任务中的有效性。Cao等人(2020)提出了面向低剂量CT影像的二阶段恶性肺结节检测方法,使用DeepLab-V3 plus模型进行语义分割,证明了在对结节进行分类之前添加语义分割阶段可以显著提高准确性,与标准U-Net及其最新版本相比,在LUNA16(lung nodule analysis 16)测试集上,平均交并比(mean intersection over union, MIoU)提高了60%。基于2D卷积的方法尽管取得较大进步,但效果仍然不令人满意,究其原因在于CNNs的解决方案仍然不能充分利用肺部结节的3维空间背景信息,将其从复杂的硬模拟环境中分离出来。毕竟,从容积CT扫描中检测肺结节本质上是一个3D物体检测问题。Zhang等人(2021)提出基于3维密集网络的肺结节检测方法,基于3D U-Net使用密集链接块替代普通卷积层,构建适用于肺结节检测的 3D Dense U-Net 网络,最大化地保证层与层之间的信息流通对于小结节的检测更加灵敏,而且计算效率也有所提高。基于结节与其邻近体素高度相关的特性,Sori等人(2021)提出了一种具有高效特征融合的双程卷积神经网络(two-path convolutional neural network,DFD-Net)。为解决3维卷积神经网络在训练过程中耗费大量时间和内存的问题,采用了双向前进的2维卷积网络,这两条路径侧重于局部和全局特征的联合集成。每条路径采用不同大小的感受野,建立局部和全局依赖性模型。使用判别相关分析来拼接更具代表性的特征,平衡感受野大小效应,提供更具代表性的特征,适应结节形状和大小之间的不一致性。
尽管二阶段方法有着较高的灵敏度,但伴随而来的是较高的成本和时间等问题,因此提出了越来越多的单阶段CAD系统。Faster R-CNN(王厚华,2018)作为基于深度学习的目标检测算法,是目前在通用物体检测中精度最高的算法之一,这一算法为一阶段肺结节检测提供了思路而且能真正实现端到端检测。即同时预测边界框和类概率,或者在不生成建议的情况下预测默认框的类概率。Zhu等人(2018)提出了一阶段基于深度学习的全自动肺癌CT诊断系统,3D Faster R-CNN生成候选结节,然后将其送入3维双路径网络(dual path network,DPN)进行深层特征提取,获得了较好的分类效果,在LUNA16数据集上获得灵敏度为 95.8%,竞争性能指标(competition performance metric, CPM)为 0.842。Li和Fan(2020)又在3D 区域建议网络(region proposal network, RPN)的基础上与具有挤压和激发结构的SEnet相结合,提出了一种新型网络,有效地利用多尺度上下文图像信息,使用动态缩放的交叉熵损失,解决LUNA16数据集中正样本和负样本的不平衡问题,获得了不错的结果,证明了RPN结构在肺结节检测上的优越性。结节可以出现在肺内或肺壁上,导致3维肺结节的特征提取过于复杂。因此如何处理全局和局部特征成为提升肺结节检测灵敏度的关键,Shi等人(2021)提出了一种基于3维改进残余结构的肺结节检测模型。扩展感受野的同时降低模型计算量。使用矩形卷积核来扩展卷积运算的接受域,采用分组卷积来降低模型的计算量。同时,采用预激活的方法来提高正则化程度,骨干网络采用改进的U-Net网络(U-Net-Like),不仅扩展卷积运算的感受野而且降低模型的计算量,在LUNA16数据集上灵敏度为96.37%,CPM值为83.75%。针对当前医学影像分析领域普遍存在的训练样本不足的问题,陈道争和江倩(2021)提出了一种基于卷积神经网络和迁移学习的肺结节检测算法。在JSRT(Japanese Society of Radiological Technology)数据集上进行验证,得到了较高的灵敏度和较少的假阳性数,证明微调部分网络层有助于提升模型分类性能的结论,验证了迁移学习的有效性。从以上方法可以看出,U-Net网络在当前肺结节检测网络中的优越性以及一阶段的肺结节检测方法在较低模型参数量和推理时间的情况下,仍有较好的效果(周涛 等,2021)。然而,多数一阶段方法依然难以解决假阳性过高的问题,其中最主要的问题集中在难以准确检测直径3~10 mm的小结节,当前主流网络均是充分利用现有主干网提取的深度特征,例如AlexNet(Krizhevsky等,2012),VGG(Visual Geometry Group) (Simonyan和Zisserman,2014),ResNet(He等,2016),ResNeXt(Xie等,2017),DenseNet(Huang等,2017)等方法。它们提取具有语义含义的特征,却不能同时获取局部信息和全局信息,但这对肺结节检测却十分重要(周涛 等,2021),原因有两点:1)肺结节在大小、形状和位置上有很大的变化。2)由于肺结节的不同类型,其周围的环境往往是多样化的,如孤立性结节、磨玻璃样阴影结节、空洞结节和胸膜结节。这些硬模拟物的存在将严重阻碍检测过程。并且现有主干网络通常通过牺牲高分辨率的特征映射来实现更深层次的体系结构,导致运行这些网络模型往往付出较高负担的内存和计算成本。尽管最新的网络结构在CT影像中准确地发现肺结节方面取得了良好的进展,但假阳性率仍然很高,这限制了模型在临床上的应用。
针对以上问题从肺结节大小、特征的多样性、算法复杂度、处理速度和临床应用上考虑,提出了一种3维一阶段融合3D ReSidual U(3D RSU)块的嵌套U结构的肺结节检测模型。通过3D RSU块的嵌套U结构可以有效地提取阶段内多尺度特征以及聚合阶段间多尺度特征,能够较好地解决结节检测中3~10 mm小结节漏检等非显著性目标的检测问题,并有效提高每扫描0.25~1个假阳性上结节检测灵敏度,可以更有效地支撑临床诊断。
本文提出的肺结节检测方法主要包括以下步骤:
1)图像预处理采用阈值化加形态学操作进行肺实质的分割,将结果作为神经网络的输入图像。
2)设计了3D ReSidual U(3D RSU)块结构,扩展卷积运算的接受域,可以捕捉更多的上下文信息,融合不同尺度的感受野特征。
3)网络模型使用嵌套的网络结构,将3D RSU结构嵌入网络中,允许网络达到更高的图像分辨率,而不会显著增加内存和计算成本。
4)在解码阶段构建基于特征金字塔的多尺度联结预测。联结预测可以更有效地发挥区域建议网络RPN的优势,使多尺度特征图提供更加准确的肺结节位置信息和更为广泛的语义信息进而提高检测效果。
CT 影像进行预处理的步骤如下:
1)进行原始CT影像的重采样,解决原始CT影像数据来自不同的医疗设备,并且每组CT影像数据的像素间距不同的问题。
2)根据肺部的Hounsfield unit(HU)值约为-500这一点,将体素值裁剪为[-1 200,600],然后归一化为[0,255]。
3)将左右肺部即掩码进行膨胀操作,去除肺部黑洞。
4)原始CT数据是世界坐标,将步骤1)处理后获得的新分辨率的数据转换为体素坐标。
5)提取肺实质,采用阈值化加形态学操作进行肺实质的提取,减少搜索空间。
LUNA16数据集中大约有1/5的结节直径在3~5 mm,而结节本身可以存在于肺内或肺壁上,且很难与阴影、血管和肋骨区分开来。这些都导致了结节检测灵敏度低且假阳性高等问题。当前主流深度神经网络方法和模型普遍以U-Net为网络结构,并添加更复杂的模块和策略来提升骨干网络提取特征的能力,使得神经网络结构愈发复杂。针对以上问题,本文设计了一个两层嵌套的U型结构。结节检测网络结构如图1所示,主要由数据预处理模块、4级编码器、3级解码器和肺结节检测模块4部分组成。编码器和解码器构成肺结节特征提取网络,近年来嵌套U结构无论是在自然图像(Qin等,2020)上,还是医学影像(Zhou等,2018)上均表现出了良好性能。因此本文使用一个两层嵌套的U型结构作为肺结节特征提取网络的网络结构。允许网络更深入地获得高分辨率,而不会显著增加内存和计算成本。在内层设计了3D RSU结构,它不仅能在不降低特征图分辨率的情况下提取级内多尺度特征,还可以捕获肺结节的3维上下文信息;在外层,设计了改进的U-Net结构,整个U-Net由3D RSU块填充。因此,嵌套的U结构使得模块内多尺度特征的提取和模块间多层特征的聚合更有效。肺结节检测模块由RPN网络构成,实现了一阶段端到端的检测,即同时预测边界框位置以及是否为肺结节的概率,相比于常用的二阶段算法,过程更加简洁,更符合临床上的应用需求。
编码器模块如图1所示,在编码器C1,C2,C3和C4中,分别设计了3D RSU5,3D RSU4,3D RSU4F。其中,“5”和“4”表示3D RSU块的高度。参数的依据来源于肺结节图像的空间分辨率。对于C1和C2,3D RSU块的输入图的分辨率分别为48×48×48和24×24×24,同时两个模块最底层特征图最低分辨率均为6×6×6。5层3D RSU块和4层3D RSU块的设计可以帮助网络捕获更多大规模信息。而对于C3和C4来说,模块的输入图中特征图的分辨率是12×12×12和6×6×6相对较低,由于肺结节具有形状小、语义特征少的特点,对于这些特征图使用下采样操作有可能导致有用上下文的丢失。因此,在C3和C4中,使用扩张卷积用于代替合并和上采样运算,并对低层特征进行重用,为检测任务提供像素级特征,这意味着在整个模块中的所有中间特征图都具有与其输入特征图相同的分辨率,命名为3D RSU4F。
解码器模块如图1所示,解码器由D1,D2,D3组成,整体解码器阶段与编码器模块是对称的结构,分别设计了3D RSU5, 3D RSU4, 3D RSU4F,其中3D RSU4F的使用情况与在编码阶段C3,C4类似。不同的是每个解码器阶段将来自前一级的上采样特征映射和来自其对称编码器阶段的特征映射的级联作为输入。级联层通过高层次特征和低层次特征的结合,可以获得更多的目标区域特征信息,从而实现对目标区域的检测目的,更好地修复目标细节,最终得到一个语义层次高、位置信息丰富的特征图。由于在LUNA16数据集中,结节的直径为3~30 mm不等,造成了大量的假阳性。因此,设计从大体积CT扫描中检测小体积结节的方法,并将结节与CT影像中表现相似的组织区分开来,显得尤为重要。为更加充分利用解码器模块得到的特征图,本文将C1、D1、D2的特征图与D3相联结构成特征金字塔,将低层次的高分辨率特征添加到高层次的强语义特征中,丰富了结节检测的位置细节和强语义,实现了小结节的检测,而多尺度特征预测则保证了大范围的结节检测,全方面减少了假阳性的比例。
肺结节检测模块的输出层是1×1×1×64和1×1×1×15的卷积层,结构如图1所示,将解码模块获得的48×48×48×60的特征图通道转为48×48×48×15。之后将4D输出张量调整为48×48×48×3×5,其中3表示锚框的个数,5表示回归框的参数个数。根据LUNA16数据集中肺结节的直径分布,网络设置了5 mm,10 mm和20 mm等3个不同比例的锚,分别对应于3个边界框。模型的输出包括5个回归值,分别是结节预测概率(o)、结节的3维空间位置(dx,dy,dz)、结节的直径(dr),即为(o,dx,dy, dz,dr)。
图1 肺结节检测网络结构Fig.1 Network structure of pulmonary nodule detection
对于直径小于5 mm的微小结节,由于其与周围的噪声具有相似的灰度,导致在检测时容易发生结节漏检和产生大量假阳性结节,因此,较好地划分前景和背景信息、增强图像非显著性目标检测的能力是非常重要的。由于LUNA16数据集较为庞大,导致使用LUNA16数据集进行实验的骨干网络例如3D ResNet-18往往倾向于1×1或者3×3的卷积核来提取特征信息,因为这样所需要消耗的内存小而且效率高。但由于块内无法获得多尺度特征,导致浅层的输出特征图仅包含局部特征。而使用扩大的卷积来扩大接收场以提取局部和非局部特征,以原始分辨率在输入特征图上(尤其是在早期阶段)进行多次卷积需要太多的计算和内存资源。为了解决以上问题设计了3D ReSidualU(3D RSU)块以捕获阶段内多尺度特征。
3D RSU-L(Ci,M,Co)中的Ci、M和Co分别代表输入层,中间层和输出层的通道数,L是编码器中的层数。模块的算法流程可以分为3个部分:
1)将特征图(L×H×W×Ci)通过卷积核大小为3×3×3的输入卷积层,得到通道为Co的中间图f1(x)。作用是提取当前特征图的局部特征。
2)高度为L的类似U-Net的对称编解码器结构,将中间特征映射f1(x)作为输入,并学习提取和编码多尺度上下文信息U(f1(x))。3D RSU5的结构如图2(b)所示,其中5表示3D RSU块的层数。在网络中使用池化操作作为特征降维的手段,多个池化操作可以缓解LUNA16数据集正负样本比例失衡造成的过拟合问题。值得说明的是,对于本网络使用的3D RSU5和3D RSU4,模块最底层特征图的分辨率均为6×6×6,与整个网络最底层特征图分辨率保持一致。这样的设置,解决了检测区域定位不清、偏差大的问题,提高了对于直径较小的肺结节的检测精度。针对传统3D U-Net从低层次的角度分析目标信息的多尺度性,不能充分利用低层次的网络信息,同时,很少考虑特征的连续性,忽略了图像本身与目标的关系,造成大量结节漏检的情况。模块通过上采样、级联和卷积将多尺度特征编码成高分辨率的特征图。减少特征丢失,以此提高肺结节的检出准确性。
3)通过残差连接将其与之前的特征图相加,从而融合局部与多尺度信息。
为了说明3D RSU块的设计理念,在图2中将3D RSU块与3D ResNet-18块(Zhu等,2018)的性能进行了比较。3D ResNet-18模块中的运算表达式为
H(x)=f2(f1(x))+x
(1)
式中,H(x)表示输入特征x的期望映射;f2、f1表示权重层,是指在网络中的卷积操作。3D RSU和3D ResNet-18之间的设计差异在于,3D RSU块中使用MaxPooling作为下采样的手段,而多个下采样操作使得3D RSU块具有更大的接受场范围和更丰富的局部细节以及全局信息。在肺内任何地方都有结节,它们附近的像素高度相关,一些正常组织在CT影像中具有与结节相似的形态学表现。因此丰富的局部和全局特征不仅可以降低假阳性,还能提高网络对于这些难检结节的检测效果。其次3D RSU用类似U-Net的结构替换了普通的单流卷积,原始3D ResNet-18的输出是输入的原始特征加上局部特征,而3D RSU模块是权重层变换的局部特征替换了原始特征,3D RSU模块的运算表达式为
HR(x)=U(f1(x))+f1(x)
(2)
式中,U表示图2(b)中所示的多层U结构,通过编码解码的结构以及级联的操作,大大减轻了由大尺度直接上采样造成的精细细节的损失。最大限度地利用肺结节的语义特征,获取肺结节的低层特征,使网络能够直接从每个残差块提取多个比例的特征。因此3D RSU块相比于3D ResNet-18块可以得到语义更加丰富、位置信息更加清晰的特征图,进而网络可以检索到更多的结节。更值得注意的是,由于大多数操作应用于下采样的特征图,3D RSU结构并没有明显增加计算开销,这一点将在后续的实验中加以证明。
本文的损失函数由分类损失Lce和回归损失Lsl两部分组成。为了计算损失,本文设定交并比(intersection over union,IoU)作为计算候选区域是否有结节的标准,当候选区域与标签所设定区域的IoU值大于0.5时,将此区域判定为正样本,当候选区域与标签所设定区域的IoU值小于0.2时,将此区域判定为负样本。候选区域的分类误差的损失函数采用交叉熵(cross entropy)损失函数。
交叉熵的定义为
Lce=l(x,y)∈{l1,l2,…,ln}
(3)
(4)
回归损失smooth L1-norm的定义为
(5)
(6)
L=Lce+Lsl
(7)
功能齐全的计算机断层CT扫描库可以用于肺结节检测,分类和定量评估计算机辅助诊断CAD方法的开发。本文实验数据集使用从公开的肺图像数据库联盟(LIDC)数据集中筛选出888幅CT影像组成LUNA16数据集(Setio等,2017)。
LUNA16数据集包括888名患者的1 186个结节标签。丢弃掉切片厚度大于2.5 mm的扫描,以Hounsfield单位(HU)为单位的12 bit灰度分辨率。由4位经验丰富的胸科放射科医生采用两阶段手工标记法收集肺结节的注释。
本实验将Ubuntu18.04作为操作系统,使用3 GHz的Intel(R) Xeon(R) Gold 6154 CPU,内存为256 GB,使用Python3.6搭建深度学习神经网络,通过Pytorch在显存为32 GB的Tesla V100-SXM2显卡上展开实验。网络训练采用了随机梯度下降优化器,初始学习率为0.01,在达到总迭代次数的1/3和2/3后,学习率分别调整为0.001、0.000 1,权重衰减为1×10-4,batchsize大小为8,模型迭代次数为120,训练一轮需要约620 s,训练一个模型需要约 20 h。
模型的训练和测试采用10折交叉验证(10-fold cross validation)的方法,将数据集分成10份,轮流将其中9份做训练剩余1份做验证,每次试验都会得出相应的正确率。10次结果的均值作为最终的算法精度。此外,针对LUNA16数据集中数据不平衡的问题,本文采用多种数据增强手段,例如左右翻转变换、旋转变换、图像尺度的变换和难例挖掘机制等方法对数据集进行了增强。提高了模型的泛化能力和鲁棒性。
在测试部分,首先因原始图像的尺寸(512×512×141)过大,使用滑动窗口的方式在预处理好的 CT影像的肺实质区域截取 208×208×208 的图像块进行测试。因为标签锚框具有不同的大小[5、10、20],为尽可能保证测试图像的完整性,在截取图像之间设置32个像素的重叠,来消除卷积计算时的不期望的边界影响,再将所有图块组合成完整的CT概率图,概率图中每个体素的值代表该点是肺结节的概率。对于每例图像,将所有 patch 的预测结果合并,通过非极大值抑制方法将重叠度高的预测边界框移除,输出每个结节最优的预测边界框。
本文基准算法为 3D Faster R-CNN(Zhu等,2018),3D Faster R-CNN 为只采用3D ResNet-18模块、U-Net结构的结节检测网络。本文在此基础上进行了改进,初次改进为在 3D Faster R-CNN 算法基础上将3D ResNet-18模块更换为效果更好的3D RSU模块,其次为了更好地发挥3D RSU模块的优势将网络架构更改为嵌套结构并在解码阶段增加特征金字塔结构,在减轻网络负担的同时在各个不同尺寸的特征图上进行联结预测,记为3D RSU_FPN_RPN,也就是本文提出的融合3D RSU模块的嵌套U结构的结节检测算法。
本文采用无限制受试者操作特征(free-response receiver operating characteristic,FROC)来衡量算法的性能。对于肺结节检测任务,通过在预测概率上设置不同的阈值,计算了每扫描[1/8,8]假阳性范围内的FROC曲线。FROC曲线的横轴表示每次扫描中的平均假阳性个数(false positives per scan),记为FPs/scan。纵轴代表正确肺结节与所有肺结节的比率,即召回率。FROC曲线得分越高,系统性能越好。此外,灵敏度在临床医学中广泛应用于衡量肺结节检测算法性能的研究(张福玲和张少敏,2020)。灵敏度计算为
(8)
式中,TP为其阳性,是检测有结节且实际有结节;FN为假阴性,是检测无结节,但实际上有结节。
模型的总体性能由竞争性能指标(CPM)进行评估,该指标测量FROC曲线7个工作点的平均灵敏度:1/8、1/4、1/2、1、2、4和8个假阳性。CPM值一般作为评价肺结节检测网络的一个指标,CPM值越高,肺结节检测性能越好。
目前临床使用的大多数CAD系统的内部阈值设置在平均每次扫描1个假阳性和4个假阳性(大多数系统不允许用户改变阈值)。在低假阳性下即在平均每次扫描0.125、0.25、0.5、1个假阳性这4种条件下,较低的假阳性率对深度学习模型提出更高的挑战,这就决定了一个系统是否可以在很少错误的情况下识别更多正确的结节,也会为医生提供更加直接的帮助,是提高现有计算机辅助诊断系统的自动化水平的关键。
为了验证本文提出的3D RSU_FPN_RPN的有效性,在块相融实验里将3D RSU_FPN_RPN中除了编解码体系结构外的3D RSU模块用3D ResNet-18模块代替,记为Res18_FPN_RPN。将3D RSU_FPN_RPN与Res18_FPN_RPN从肺结节检测效果以及肺结节检测时间两方面进行对比分析。
2.4.1 模型性能对比
表1、表2和表3是3D RSU_FPN_RPN与Res18_FPN_RPN在肺结节检测性能上的比较,验证了本文提出的3D RSU块在即使极低的假阳性率下也能保持令人满意的灵敏度。
表1、表2和表3中的结果是两个模型在平均假阳性在0.125,0.25,0.5,1,2,4,8时的检测灵敏度以及在这7个点的灵敏度的平均值,即CPM。由于时间关系,本文只在fold0,fold1和fold2上将不同设计方法进行了实验验证。尽管Zhu等人(2018)方法获得了不错的敏感性分数,但模型将承受大约8个假阳性,这妨碍了它们在常规临床实践中的应用。而一些极低的假阳性率,对于系统是否能够识别出假阳性极少的可接受模块具有重要意义,在这种情况下,本文提出的3D RSU模块相比于3D ResNet-18模块,在3个数据集的平均假阳性为0.125,0.25,0.5,1上的灵敏度分别平均提高了1.5%,2.7%,2%,0.6%。在保持令人满意的灵敏度的同时,在减少误报方面表现出很强的能力。值得注意的是,尽管在fold 1中3D RSU块在CPM值上略低于3D ResNet-18块,但在平均假阳性为0.125和0.25上的灵敏度仍高于3D ResNet-18块,证明了3D RSU模块在低假阳性下的性能是高于3D ResNet-18的。
表1 本文方法与RES模块在fold0中的性能比较Table 1 This method is compared with RES module in fold0
表2 本文方法与RES模块在fold1中的性能比较Table 2 This method is compared with RES module in fold1
表3 本文方法与RES模块在fold2中的性能比较Table 3 This method is compared with RES module in fold2
2.4.2 嵌套U结构实验验证
为了验证本文采用的嵌套体系结构性能,在表4给出了采用堆叠结构的Res18_FPN_RPN网络和本文算法在参数量和消耗时间上的对比。图3给出了两个模型的训练loss曲线。
表4中的时间是模型测试一幅图像所需要的时间。由表4中的结果可知,本文算法的参数量略高于Res18_FPN_RPN网络,而测试时间上的差距几乎可以忽略不记。因为网络在LUNA16数据集的10个子数据集上的收敛趋势基本相同,图3只给出了两个网络在fold2上的损失曲线作为代表。从图3中可知本文算法与Res18_FPN_RPN算法在模型收敛速度上几乎相同。因此本文算法在不显著增加计算代价的情况下,有效提高了检测精度,具有较高的检测效率和能力。
表4 模型参数量和单幅图像测试时间比较Table 4 Comparison of model parameters and training time of single picture
图3 本文算法与3D Res18的收敛曲线Fig.3 The algorithm is similar to Res18_ FPN_RPN convergence curve
图4将本文提出的结节检测算法与Zhu等人(2018)提出的Res18_Faster_R-CNN模型进行了性能比较。
由图4(a)可以看出,在10折交叉验证的总体结果下,3D RSU算法的在每一折上的灵敏度都高于所比较的基准实验数据。值得注意的是在fold6、fold7和fold8共3个数据集子集上,灵敏度达到了100%。3D Faster R-CNN 算法的灵敏度平均值为 95.54%,3D RSU算法的灵敏度平均值为97.2%,相比于3D Faster R-CNN 提高了1.66%。
图4(b)为3D RSU与基准算法3D Faster R-CNN在10折交叉验证下竞争性能指标(CPM)上的比较,可以看出本文算法3D RSU算法在每一折上的CPM得分都高于基准算法,尤其是在fold6和fold7上的CPM得分达到了0.90。3D Faster R-CNN算法的 CPM平均值为0.833。3D RSU算法的CPM平均值为0.864,相比较3D Faster R-CNN提高了3.1%。证明了相比于3D ResNet-18模块,3D RSU模块可以在不同的假阳性下具有更高的灵敏度。
图4 本文算法与基准算法在评价指标上的比较Fig.4 Comparison of the evaluation index between the proposed algorithm and benchmark algorithm((a)sensitivity;(b)CPM)
本文算法主要针对一阶段算法假阳性高的问题,解决问题的关键在于提高小结节(3~10 mm)的检测效果,表5比较了本文算法与基准算法对于不同大小结节的检测效果。在LUNA16数据集中,总计1 186个结节,其中3~5 mm 结节有272个,5~10 mm结节有633个,10 mm及以上结节有281个。3D Faster R-CNN(Zhu等,2018)方法在3~5 mm检测到了251个,3D RSU方法检测到了263个,相比较于3D Faster R-CNN增加了12个结节,本文方法在3个尺寸上的肺结节检出率相比于3D Faster R-CNN分别提高了4.4%、1.9%和2.8%,在LUNA16数据集中,对小结节的检测准确率在90%以上,表明本文算法可以有效提高小结节的检测效果。表5中的灵敏度指标是算法在10折交叉验证后所得到的最高灵敏度值。表5的结果表明,相比传统的3D ResNet-18,本文所提出的3D RSU模块通过类U-Net结构可以提取更加丰富的全局和局部特征,从而更加全面地检测到直径较小的结节,在灵敏度上提高了2.6%。
表5 肺结节检测系统对不同大小结节的检测效果Table 5 Detection effect of pulmonary nodule detection system on nodules of different sizes
为了进一步评估该方案的性能,将本文算法与现有的基于LUNA16数据集的方法在不同假阳性率下不同大小肺结节下检测准确率进行比较。
2.7.1 与其他方法比较
表6总结了所比较的不同方法的性能。结果表明,本文方法得到了最高的CPM值。假阳性率达到4后,检测率趋于稳定。尤其是本文采用一阶段肺结节检测算法的情况下每次扫描假阳性个数为0.125~1个假阳性上的灵敏度高于其他的肺结节检测算法。说明模型可以在较低假阳性实现高灵敏度,为医生提供更有效的帮助。
表6 肺结节检测性能比较Table 6 Comparison of detection performance of pulmonary nodules
2.7.2 与组合方法比较
随着对网络结构理解的不断深入,越来越多的网络模型从特征融合的角度提升肺结节检测效果,表7比较了本文算法与DeepSEED(Li和Fan,2020)和Bottle2Seneck(Sun等,2021)在不同假阳性率下的检测准确率。DeepSEED是将SE-net(squeeze-and-excitation networks)插入到3D ResNet-18模块上,并针对样本不平衡问题使用Focal loss作为分类损失函数。Bottle2Seneck(Sun等,2021)在肺结节检测模块,与DeepSEED同样在网络中组合了SE-net模块,并且在区域建议网络中,引入上下文增强模块(context enhancement module,CEM) 和空间注意力模块(spatial attention module,SAM)。上述两种方法均是组合方法,都是从加强特征通道之间的相互依赖关系以及对特征信息进行补充的角度去提高检测效果。本文算法提出的3D RSU模块的优势在于,仅仅依靠高效简洁的网络结构,便获得了语义层次高、位置信息丰富的特征图,从而获得了较好的结果,并不是组合方法。本文模型并没有使用任何的注意力机制便获得了近似甚至更高的CPM值,足以证明本算法的潜力和价值。
表7 与当前性能较好的组合方法比较Table 7 Compared with the current combination methods with better performance
为了进一步证明该模型的有效性,将检测结果可视化。首先读取原始CT影像的信息,其中包含了CT影像的全部信息。根据原始图像的标记信息,对肺结节在CT影像切片中的位置进行标记,即所谓的金标准。其次,根据模型生成的预测结果圈出各个结节的位置。
可视化结果如图5所示,肺结节的大小、形态有明显差异。前3行是根据结节的密度,分为固体、磨玻璃和部分固体结节。后两行根据肺结节的位置分为近血管结节和近肺壁结节。在图5中,第1列是金标准图中不同表征的肺结节。第2列是3D Faster R-CNN预测的各肺结节位置。第3列是本文方法中对于不同表征的肺结节的检测结果。在这3列的可视化结果中,尽管3D Faster R-CNN模型和本文模型都能检测出肺结节。但在检测近肺壁结节中,3D Faster R-CNN模型的假阳性率高于本文方法。由此可见,本文模型减少了肺结节检测中假阳性的数量。在检测磨玻璃的肺结节中,由于不能与周围组织区分,磨玻璃结节很难检出。3D Faster R-CNN 算法的结节检测精度只有 0.90。而本文方法检测精度为0.99,证明本文方法对于较难检验出的肺结节仍有较好的检测结果,且具有较高的置信度。
图5 肺结节检测结果Fig.5 Pulmonary nodule detection results((a) gold standard;(b) 3D Faster R-CNN;(c) ours)
由于肺部结节在直径大小、形状和密度的变化十分复杂,导致现有的深度学习模型难以在低假阳性率下保证高的灵敏度,这限制了深度学习算法在常规临床实践中的肺结节自动诊断。针对此问题,本文提出了基于3D RSU块的嵌套U结构的深度网络肺结节检测算法。在LUNA16数据集中进行10折交叉验证的结果表明,本文所提出的深度网络在灵敏度、CPM、平均假阳性等多项评价指标上均优于对比的结节检测算法及主流检测框架,尤其是在极低的假阳性率(每次扫描1、0.5、0.25、0.125个假阳性),保持令人满意的灵敏度的同时,在减少误报方面表现出很强的能力,提高了现有计算机辅助诊断系统的自动化水平,为放射科医生在临床实践中提供了更加有效的帮助。
本文算法仍有改进的空间,因为受限于资源和时间,本文仅使用LUNA16数据集作为本实验的数据源,所有的肺部CT影像均在相同的扫描参数下获得,且均是低剂量CT影像。但是,在实际的临床应用中,各个医院可能会使用不同层数的螺旋扫描仪,采集参数并不相同,导致需要不同的核函数和分辨率重建图像,使得最终获得的CT影像不尽相同。为了使网络更符合临床上的需求,在之后的研究中,会采用更加多样化的数据集,增强深度学习网络的泛化能力,获得更准确、有效的模型。
当前有关医学影像的人工智能领域,在医院的电子病历、影像归档和通信系统(picture archiving and communication systems,PACS)中存在大量未标记的医学影像,因此缺乏大型注释数据集是医学影像研究中的一个共同挑战。在最近的研究中,小样本学习方法在医学图像领域展现出了较大的潜力。在后续工作中将探究如何利用小样本学习去减轻网络对于大量数据集的依赖,设计假阳性低、鲁棒性强以及准确率更高等性能的网络。在临床应用方面,提出了放射组学研究用于各种临床应用,它提取大量定量的图像特征,然后进行数据挖掘,预测肿瘤反应,从而更可靠、准确地预测局部控制和总体生存期。例如利用保角球参数化的面积失真度量来量化结节上的刺状,手工制作结节轮廓,实现了高精度的肿瘤半自动分割。在之后的工作中也会探究放射组学在肺结节检测中的作用以提高检测精度。