基于改进的U-Net肺结节分割方法研究

2021-12-14 01:28丰振航杨华民蒋振刚师为礼
计算机应用与软件 2021年12期
关键词:结节准确率卷积

苗 语 丰振航 杨华民 蒋振刚 师为礼

(长春理工大学计算机科学技术学院 吉林 长春 130022)

0 引 言

目前,肺癌是发病率和死亡率最高的癌症之一[1]。由于环境的日益恶化和吸烟人数的逐年增加,肺癌患者的数量不断增长。文献[1]的研究表明,如果能及时发现和治疗肺癌,那么肺癌患者的5年存活率将提高50%左右。肺癌早期一般表现为结节,为了防止错过最佳治疗时间,需要提前进行肺结节检测,而肺结节分割是肺结节检测中最重要的步骤。

低剂量胸部电子计算机断层扫描(CT)是目前在肺癌检查中最常用的方法,但仅靠医生进行人工检测,不仅工作量很大,而且会因假阳性等问题而容易出错,因此对肺部CT等医学图片的检测和分割是非常热门的研究方向[2]。目前,对医学图片进行分割的传统方法很多,其中比较经典的有支持向量机[3]、阈值分割法[4]、区域增长法[5]、聚类问题[6]等。John等[7]使用多阈值法提取候选结节,但其他组织的灰度值与肺结节的灰度值范围重叠,提取的候选结节含有肺结节小区域,不利于假阳性的去除。Boroczky等[8]将提取了疑似肺结节的23个特征送入SVM分类器进行训练。但SVM需要人工提取结节特征,算法的准确率很大程度取决于提取方法的选择。

传统肺结节检测方法过程复杂,结果依赖于各个阶段的运行效果,并且不能实现端到端的检测。近年来,深度学习的迅猛发展给肺结节分割带来了新的可能。卷积神经网络是一种以端到端的形式识别特征的网络,与传统的机器学习方法相比,其优势在于特征提取不需要人工参与,各层的特征提取都是在通用的学习过程中进行。Ronneberger等[9]提出了U-Net网络结构,极大地促进了对医学图像分割的研究,并且有了一定应用。随后,利用深度网络分割肺结节成为当前医学图像处理领域的研究热点。Hwang等[10]提出了一种多阶段训练策略,以更少的模型参数实现了更先进的分割性能。但该模型在训练集和测试集的分布发生变化时,分割结果可能不稳定。Setio等[11]提出了一种基于多视角卷积网络的检测算法,它对不同类型的肺结节设计了不同的检测器,通过融合检测器生成的不同候选区域得到候选结节,提高了检测的灵敏度。但该模型需要区分不同类型的肺结节,对数据集要求较高,且模型所需参数较多,在实际应用中实时性较差。

本文提出了一种改进的U-Net网络,应用于肺结节检测的候选结节分割部分。首先在网络解码器部分加入了密度连接模块,增强了特征的复用率。然后,将U-Net网络与卷积条件随机场(ConvCRF)端到端结合,使分割结果更好地体现了肺结节的边缘特征。最后,为了缓解了正负样本的不平衡问题,进一步提高分割的准确度,改进了基于focal loss的损失函数。

1 改进的U-Net分割模型

肺结节分割是肺结节检测系统的重要步骤之一,目的是在CT图像的检测任务中提取肺结节,并保证高敏感度和准确度。本研究采用改进的U-Net分割模型作为结节的分割方法,此模型在基本框架U-Net网络的基础上,为防止出现过拟合的趋势,在网络的编码部分添加了Batch-Normalization模块,用Leaky-ReLU代替了ReLU激活函数,使用了dropout策略。其次,为提高结节的检出率和增强结节的边缘特征,对U-Net模型做了以下几点改进。

1.1 密集连接方法

DenseNet[12]的特点是可以将图像特征进行多次重复利用。它以前馈的方式将前面层所获得的特征图映射到其他传递的后续层,这种紧凑的结构可以在相同的网络深度下,保证了各层之间的信息流最大、较轻梯度消失的问题,并对过拟合现象有一定抑制作用。图1为DenseNet的示意图,主要由Dense Block和Transition layers组成。

图1 密集连接网络

由图可知,Dense Block的第l层是将前面所有层x0,…,xl-1的特征图作为输入,可由式(1)表示。

xl=Hl([x0,x1,…,xl-1])

(1)

式中:Hl(·)表示卷积等非线性转化操作。由此可知,拥有k层网络的Dense Block模块中有k×(k+1)/2个连接。

本文根据DenseNet结构特点,在传统U-Net网络解码一侧将浅层特征与深层特征互连。由于浅层特征图与深层特征图的面积各不相同,本文通过不同个数的转置卷积将浅层特征进行上采样以适应不同尺寸的深层特征图,结构见图2。

图2 密集连接与U-Net结合

1.2 卷积条件随机场

由于卷积神经网络没有充分考虑空间上下文信息,也没有考虑到因缺少平滑项而使图像边缘模糊的问题,所以分割的肺结节边缘比较粗糙,需要对结果进一步处理。全连接条件随机场把分割任务看作是已知观测值求取标记值的问题,通过求解最大后验概率来确定分割结果,它既考虑了空间信息,也能够一定程度上解决边缘模糊和噪声等问题,它的能量函数为:

(2)

式(2)包含一阶和二阶势函数两部分。一阶势函数用于衡量当像素点i的颜色值为yi时,该像素点属于类别标签xi的概率,本文将U-Net网络学习得到的肺结节概率图定义为随机场模型的一阶势函数。二阶势函数定义了一系列特征向量的高斯核函数,计算公式为:

(3)

式中:u(xi,xj)表示两个标签之间的一个兼容性度量。它考虑了相邻像素的相互作用。肺结节分割的目的就是求得最小化能量函数。

但由于全连接条件随机场训练速度慢、模型内的参数学习困难等问题,其已经不能满足研究的需求。而卷积条件随机场(ConvCRF)[13]以条件独立性的假设补充全连接条件随机场。假设两个像素i、j的曼哈顿距离为d(i,j)>k,则它们的标签分布是有条件独立的,从而可以进行高效的GPU计算和完整的特征学习,将信息传递步骤配置为带截断高斯核的卷积。

一个形状为[b,c,h,w]的输入图像P,其中b、c、h、w分别表示批大小、类别数量、输入高度和宽度。对于由特征向量f1,f2,…,fd定义的高斯核函数g,图像的核矩阵为:

(4)

式中:θi是可学习的参数。对于一组高斯核g1,g2,…,gs,我们定义经合并的核矩阵K为:

(5)

所有s个核的组合信息传递的结果Q如下:

P[b,c,x+dx,y+dy]

(6)

这种信息传递操作类似于卷积神经网络中标准的二维卷积,可以将大部分推断重新表达为可以在GPU上实现的卷积操作。通过反向传播训练卷积条件随机场的所有参数,与全连接随机场相比速度得到很大提升。

1.3 改进的loss函数

在肺结节分割中,CT图像中肺结节所占的比例会远远小于肺部其他区域。在传统的样本分类中,将肺结节和肺部其他区域分为正样本和负样本两类。由于负样本过多,会造成它的loss太大,容易把正样本的loss遮盖从而不利于整个目标函数的收敛。

图像分割的一种常见的评价指标是Dice系数,其物理含义为两个样本之间的重叠程度的度量。度量范围从0到1,Dice系数为1表示完全重叠。其计算公式为:

(7)

式中:|A∩B|表示集合A、B之间的共同元素;|A|、|B|表示A、B中的元素的个数。为了计算预测的分割图,Dice系数被改为soft dice loss,计算公式如下:

(8)

式中:pi为sigmoid激活后的输出值,取值介于0和1之间;gi为真实值,取值为0或1。

Dice损失对类不平衡问题会有比较好的效果,但是其在误差反向传播过程中梯度会产生大幅震荡,所以在训练过程中不稳定。而focal loss[14]是在交叉熵损失函数基础上进行的修改,不仅稳定性好,还加大了前景和背景的过渡区等hard negative的损失值,计算公式如下:

(9)

式中:r是为减少易分类样本的损失,使得更关注于困难的、错分的样本;α用来平衡正负样本本身的比例不均。

本文结合focal loss和Dice损失的特点,提出了一种改进的focal loss损失,计算公式如下所示:

Lens=-logLDice+αLfl

(10)

式中:对数函数和α的目的是平衡两种损失函数的结果大小。

2 实验设计和结果分析

2.1 实验数据集

LUNA16数据集来源于LIDC/IDRI数据集,它从LIDC/IDRI数据集中抽取层间度大于2.5 mm的CT图像,一共获得了888幅CT图片,共包含1 186个肺结节。每幅图像包含了4名有经验的放射科专家在LIDC/IDRI数据库上两阶段的标注注释[15]。图3所示为数据库中不同尺寸的肺结节图像。

图3 不同尺寸的肺结节图像

2.2 图像预处理

由于CT原始图片肺实质部分并不突出,为突出肺实质,需要对图像做直方图均衡化处理;随后因肺实质灰度值与周边组织差距较大,对图像进行二值化处理,初步分出肺实质;其次使用膨胀和腐蚀两种数学形态学方法消除肺实质内部噪声和平滑肺实质边缘;最后通过肺实质掩模提取ROI区域。图4为数据处理流程。图5为各个阶段处理后的图像。

图4 预处理流程

(a) 原始图片 (b) 直方图均衡化 (c) 二值化

(d) 膨胀腐蚀 (e) 生成掩模 (f) ROI区域图5 各阶段图像

2.3 模型训练

为了验证模型的准确性,将数据集分成10份,运用10折交叉验证法,轮流将其中9份作为训练数据,1份作为测试数据,进行实验。每次实验都会得出相应的准确率(或差错率)。10次结果的准确率(或差错率)的平均值作为对算法精度的估计。模型反向传播采用的方法是随机梯度下降法,学习率为0.000 1,每迭代一次衰减0.005,总共运行50个epoch,批量大小为2。图6所示为模型在训练过程中的测试准确率曲线,经过50个epoch后准确率总体趋于稳定。所用模型在GPU上使用Python的TensorFlow深度学习库实现。

图6 改进的U-Net网络的准确率曲线

2.4 实验结果与分析

为了求取式(9)改进的损失函数中参数α的最优取值,本文进行了4个模型的5组对比实验,α分别设置为0.1、025、0.4、0.6、0.75,这5组实验分别用Dice系数进行比较,得出结果如表1所示。通过评价指标可看出,参数α在0.25至0.4之间模型表现最佳。

表1 不同参数下模型的Dice系数测试结果

为了验证在最优取值下,改进的focal loss损失函数比传统的交叉熵损失函数更具有优势,本文分析了它们的Dice系数和敏感度,结果如表2所示。

表2 不同损失函数结果比较

图7展示了本文算法不同改进步骤的肺结节分割效果图,其中:(a)为肺部CT图片;(b)为提取的肺实质灰度图;(c)为数据集中医师标注的肺结节位置分布图;(d)为利用标准的U-Net模型进行的肺结节分割图;(e)为利用U-Net网络和密集连接网络相结合的算法进行的肺结节分割图;(f)算法是在E算法的基础上运用了改进的focal loss损失函数;(g)是利用本文算法进行的肺结节分割图。图7(d)与图7(g)在图上可知,(d)与本文算法相比,因为运用的特征相对较少,所以分割的肺结节相对较暗,干扰因素较为严重;而图7(e)因为正负样本比例不平衡,导致有较为严重的假阳性肺结节;图7(f)虽然比前两列效果好,但分割结果较粗,而本文算法分割出的肺结节含有较多的边缘信息,更贴近CT图像中的肺结节形状。综上所述,随着对传统算法的改进,得到的肺结节图像更明显、假阳性更少、边缘特征更显著等特点。进一步说明了本文算法在保持较高精度与灵敏度的情况下,能分割出较好的肺结节结果,具有一定的临床价值。

图7 本文算法逐步改进的分割对比图

为了系统的分析本文算法分割结果的性能,采用ROC曲线作为衡量标准。如图8所示,(a)为传统U-Net网络肺结节分割结果的ROC曲线,(b)为本文算法的ROC曲线。由ROC曲线可知,本文算法总体性能较高,假阳性低,真阳性高,可以更好地分割出肺结节。

(a) 传统U-Net的ROC曲线

(b) 本文算法的ROC曲线图8 不同算法的ROC曲线对比图

最后,为了评估肺结节分割的性能,将本文算法与肺结节分割阶段相同研究工作的其他算法在LUNA16数据集下进行评估对比。主要分为以下三个指标:(1) 准确性;(2) 敏感性;(3) 每个CT扫描件中检测出的候选结节个数。性能突出的模型应在较低的候选结节个数下有较高的敏感性。敏感性(S)和准确性(A)的计算公式如下:

(11)

(12)

式中:TP是真正类;TN是真负类;FN是假负类;FP是假正类。对比结果如表3所示。

表3 不同算法的分割性能对比

从表3可知,在使用相同数据集的情况下,本文算法在准确度的指标下优于其他算法。相比于文献[18]的算法,本文算法虽然速度较慢,但通过密集连接等方法的特征重利用,改善了特征漏检的缺陷,识别准确率提高了7%左右;而卷积神经网络+VGG模型虽然网络深度深于本算法,但缺少网络结构的trick,所以准确率也略微低于本算法。在敏感度方面,虽然本文算法的敏感度略低于Ding等的算法,但在每个CT扫描件检测的候选结节的数量低于该算法。在每个CT扫描件检测的候选结节的数量方面,U-Net虽然低于本文算法,但本文算法有较高的敏感度和准确度,对下一阶段结节分类和整个肺结节检测系统的性能提升都更有优势。

3 讨 论

使用本文提出的肺结节分割算法,其表现性能在LUNA16数据集上得到验证。本文算法是在U-Net网络的基础上做了改进和优化。首先,结合传统的U-Net和DenseNet的优点,获得了高敏感度的检测结果,原因是DenseNet结构本身的特征再利用的性质,使得它比传统的U-Net学习到更高效的特征;其次,相比于传统的全连接条件随机场,本文模型所用的卷积条件随机场不仅增强了肺结节的边缘特征,提高了肺结节特征的保留度,还更有利于与卷积神经网络的端到端的结合,极大地促进了模型的运行速度,保证了模型的实时性。最后,与传统的交叉熵损失函数比,本文改进的focal loss损失函数不仅保留了交叉熵函数的稳定性,还解决了类不平衡的问题,提高了肺结节识别的准确性。

实验中还对Dropout和batch size两个参数进行多次调整,对改进的模型进行优化。Dropout的作用是防止网络出现过拟合现象,它通过随机将网络隐含层某一部分节点重置为0,使每一批训练样本进入不同的网络结构的方法来增加网络的泛化能力。本文在改进的网络结构上,多次调整Dropout的比例,寻找最优Dropout值。表4为不同Dropout比例所求得的准确率趋势,可以看出,当Dropout取值为0.6时,准确率最高。

表4 Dropout对训练精度的影响

batch size的选择决定了训练过程中梯度下降的方向。取值过大不仅对GPU的显存是一个考验,还容易使梯度无法修正,而过小则使梯度难以收敛。因此选择合适的batch size值对训练的准确率至关重要。本文在同样的模型下,使Dropout的值固定为0.6,多次改变batch size的大小,由于GPU对2的幂次的batch size可以发挥更佳的性能,所以batch size分别取16、32、64、128来找出最优的值。表5是不同batch size值所求得的准确率趋势。由表5可知,最佳的batch size值为32。

表5 batch size对训练精度的影响

本研究虽然得到了较好的结果,但也有其局限性。首先,数据集中的肺结节标签是以中心坐标为圆心,一定大小为半径的类圆形,虽然能准确地定位肺结节的位置,但对于肺结节的边缘特征表现的比较粗糙,对深度学习造成一定影响。其次,在复杂情况下,直接通过卷积网络定位小结节效果不理想。最后,本文算法只用到了结节的二维信息,而三维的上下文信息能为网络的自主学习提供空间维度的信息,对肺结节的准确识别十分重要。在以后的研究中将通过与医院影像科洽谈合作,获得不同类型的肺结节数据集和更能精确体现边缘特征的肺结节标签;通过粗糙集设计出一种适应更小尺度输入的卷积网络结构来进一步识别小结节;最后在分割阶段加入三维的图像信息。通过这些方法,可能一定程度上对敏感度和准确度的提高具有积极意义。

4 结 语

肺结节分割对医生的辅助诊断意义重大。本文针对传统肺结节分割算法中分割敏感度和准确度低的问题提出了基于改进的U-Net网络的肺结节分割算法。实验结果表明,在相同的步长下,在肺结节分割上是有效的,并取得不错的分割效果。但本文算法也存在一定的局限性,需要在以后的研究中进行改进。由于肺结节种类较多和判断标准复杂多样,本文数据集并不能充分体现肺结节的多样性,因此还没有应用在临床上进行肺结节检测任务。随着技术的进步,计算机辅助诊断系统(CAD)将在肺结节检测中发挥重要作用。

猜你喜欢
结节准确率卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
体检发现的结节,离癌症有多远?
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
查出肺结节,先别慌
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察