王统,徐胜舟,,卢浩然,吴福彬,裴承丹
(1 中南民族大学 计算机科学学院,武汉 430074;2 湖北省制造企业智能管理工程技术研究中心,武汉 430074;3 武汉工程大学 网络信息中心,武汉 430205)
肺癌是死亡率最高的癌症之一,早发现早治疗可以提高患者的生存率[1].肺结节是肺癌的早期表现形式,肺结节边缘模糊,和肺部相比体积较小,其亮度和肺实质中的血管等组织极其相似,会降低医生的诊断速度以及准确率,进而耽误病情的发现与治疗.电子计算机断层扫描(Computed Tomography,CT)[2]技术是当今肺癌检测的常规手段之一,对肺癌的早期诊断具有重要的研究价值和现实意义[3].
传统的分割算法如自适应阈值分割[4]、边缘检测分割[5]、区域生长[6]等,这些方法虽然能取得较好的分割效果,但是依赖于人的先验知识.目前,深度学习已经广泛应用于计算机视觉领域[7].LONG等[8]提出了一种全卷积神经网络(Fully Convolutional Network,FCN),用卷积层替换卷积神经网络(Convolution Neural Network,CNN)[9]中的全连接层以获得图像中每个像素的分类结果,最终实现图像分割.Ronneberger等[10]提出了U-Net 网络,该网络具有对称的U 型结构,通过对图像特征进行编码和解码,并通过跳跃连接融合来自编码器的浅层低级特征和解码器的深层高级特征,可以实现较好的分割效果[11-12].医学图像数据集通常较小,而U-Net 能在少量样本的情况下完成模型训练并实现较好的图像分割效果,所以近些年来此方法被广泛应用于医学图像分割领域.
徐峰等[13]将U-Net 网络应用于肺结节分割,但是肺结节目标区域小,而且边缘模糊,使用原始UNet 进行训练,没有对数据进行批量归一化会造成网络训练过程中出现梯度消失、分割准确率不高等问题[14].钟思华[15]等提出了一种用于肺结节分割的Dense-UNet 网络,通过引入密集连接模块,加强网络对特征的传递和利用,但密集连接模块增加了额外的计算量,在训练时容易造成过拟合,分割精度提高较为有限.ZHOU 等[16]提出了一种U-Net++网络,将不同层次的特征通过各自的解码路径还原,然后结合浅层和深层的特征,在肺结节分割上效果较好.黄鸿等[17]基于融合自适应特征加权聚合策略提出了一种改进的U-Net++网络,用于肺结节分割也取得了不错的效果.但这两个网络嵌套了多个UNet 结构,增加了模型复杂度,也增加了额外的计算量.
针对上述问题,本文提出了一种基于CAM U-Net的肺结节分割方法.通道注意力模块[18](Channel Attention Module,CAM)结构简单,参数量很少,而且能够加强网络对有用特征的利用,本文将CAM 融入U-Net 网络结构中,可以有效提升网络的分割性能.本文在LIDC-IDRI肺结节公开数据集对改进的网络进行训练和测试.
图1 是本文的算法流程图,首先对训练集进行数据预处理并进行数据增强,随后送入搭建好的网络中进行训练,并调整网络参数设置,训练网络模型至收敛并保存;然后对测试集进行数据预处理,并使用训练好的网络模型进行测试,得出分割结果.
图1 算法流程图Fig.1 Algorithm flow chart
本文所使用的数据集来源于LIDC-IDRI肺结节公开数据集[7],LIDC-IDR中包含了1018个病例,对于每个病例中的CT图像,都由4位经验丰富的专业放射科医师对其进行标注,并将标注信息存放在XML 文件中,里面详细记录了CT图像中肺结节的轮廓以及CT特征等信息.
原始肺部CT 图像大小为512 × 512 像素,肺结节在原始CT图像中所占比例很小,输入图片尺寸太大会影响网络训练速度,而且多余的部分会对网络训练产生很大的干扰,因此本文通过对原始CT图像进行裁剪来避免这一问题.根据金标准将原始CT图像裁剪为包含肺结节的64 × 64 像素大小的感兴趣区域.CT图像预处理过程如图2所示,左边为原始肺部CT图像,右边为裁剪后的图像.
图2 CT图像预处理Fig.2 CT Image pre-processing
为了增强模型的泛化能力,本文对训练集进行了数据增强.首先根据肺结节的轮廓坐标信息再次对原始图像进行裁剪,使肺结节位于64×64 大小感兴趣区域的不同位置,如图3 中右边第一行分别对应左边原始CT 图像中的红(实线)、蓝(点划线)、黄(破折线)三个区域,其中点划线和破折线表示的区域为再次裁剪的区域,使训练集变为原来的3倍.然后又对裁剪后的图像进行了水平翻转和垂直翻转,如图3中右边第二行为第一行图像分别进行水平翻转后的图像,第三行则对应为垂直翻转后的图像.最终数据增强后的训练集是原来的9倍.
图3 数据增强Fig.3 Data augmentation
WOO 等[18]提出了一个有效的注意力模块CBAM,给定一个中间特征图,可以沿着空间和通道两个维度依次推断出注意力权重,然后与原特征图相乘来对特征进行自适应调整.受到CBAM[18]的启发,本文将通道注意力模块融入U-Net 网络中进行肺结节分割.对于通道注意力模块,网络中的每个通道对分割结果的影响应该是不同的,有些通道存在关键信息,而通道注意力模块能加强这些通道的表现力,这将会使网络聚焦于关键的通道,进而提升网络的分割效果.
通道注意力模块如图4 所示,设通道注意力模块的输入特征图为F,高度为H,宽度为W,通道数为C.首先对输入特征图F的空间维度进行压缩,分别采用全局平均池化操作和全局最大池化操作,进而得到1 × 1 ×C的AvgPool 和MaxPool.然后再将AvgPool 和MaxPool 依次送入一个两层共享参数的全连接层.其中第一个全连接层的神经元个数为输入特征图通道数与ratio(本文设置ratio=8)的商,第二个全连接层的神经元个数为输入特征图通道数.AvgPool 和MaxPool 经过全连接层后变为图4 中的AvgPool′和MaxPool′,接着将AvgPool′和MaxPool′相加求和并使用Sigmoid 激活函数得到权重系数Mc.最后将输入特征图F与Mc进行相乘得到输出特征图Fc.
图4 通道注意力模块Fig.4 Channel attention module
为了整合通道上的空间信息,通道注意力模块采用了全局平均池化和全局最大池化得到对应通道的信息,全局最大池化可以收集到难区分物体之间更重要的线索,来获得更详细的通道注意力.然后依次通过两层的全连接层,求和并使用Sigmoid激活得到各个通道之间的内在关系,最后与输入特征图相乘.训练过程中,通过反向传播,会根据金标准来修正网络中的参数,最终得到最优的通道权重,进而使网络关注更有用的通道.
本文提出的CAM U-Net 网络模型,是在U-Net网络的基础上添加通道注意力模块,整体网络结构如图5 所示,灰色填充向右宽箭头1,2,3,4 代表添加的通道注意力模块.本文网络主要由编码器,解码器,分类器和跳跃连接组成.
图5 CAM U-Net网络结构图Fig.5 The network structure of CAM U-Net
编码器部分通过卷积操作对输入图片进行特征提取,如图5中黑色向右细箭头所示,代表的操作为3 × 3 卷积层,BN(Batch Normalization,BN)层和ReLU 激活.BN 层可以减少网络对初始值尺度的依赖,可以加速网络的收敛,提升网络的泛化能力.ReLU 激活函数可以提高网络的非线性表达能力.然后通过最大池化操作,如图5 中横线填充向下宽箭头所示,用于特征图的下采样,可以显著减少参数量.
解码器部分首先通过上采样操作,将特征图尺寸增大一倍,如图5 中对角线填充向上宽箭头所示.然后与相对应位置的编码器部分的特征图通过跳跃连接进行拼接,结合浅层低级特征和深层高级特征,随后经过两个卷积操作,再经过通道注意力模块CAM,如图5中的灰色填充向右宽箭头所示,CAM加强对有用通道的关注.经过四次上采样最终恢复到输入图像原来的尺度.
分类器由1 × 1 卷积层和Sigmoid 激活层组成,其中1 × 1 卷积层用于减少特征图的数量,Sigmoid激活层用于计算最终的特征图中每个像素的类别,从而输出网络的分割概率图.
本文从交并比、Dice 相似系数、准确率和召回率四个度量标准对分割结果进行评估.
交并比(Intersection over Union,IoU)为金标准和预测结果的交集与并集的比.交并比越高,图像分割的结果越好.设肺结节金标准区域为M,方法分割结果区域为P,∩表示取交集,∪表示取并集,计算公式为:
Dice 相似系数表示模型的预测结果与金标准的相似程度,为两个区域的交集部分的两倍与两区域的和的比值.Dice 越高,图像分割结果越好.|·|表示取绝对值,计算公式为:
准确率(Precision)为肺结节中正确分割的像素点所占预测结果中为肺结节像素点的比例.真阳性(True Positives,TP),假阳性(False Positives,FP),真阴性(True Negative,TN),假阴性(False Negative,FN).计算公式为:
召回率(Recall)为肺结节中正确分割的像素点所占金标准中肺结节像素点的比例.计算公式为:
本文的实验环境是基于深度学习框架Keras 和Python语言进行搭建的.操作系统为Windows10.
网络在训练过程中,使用Dice系数损失函数,采用Adam 优化器进行优化,batch-size 设为32,epoch为60.学习率设置采用分阶段的方式,初始学习率设置为0.001,经过30 轮后变为0.0005,50 轮后设置为0.0001.
为了验证改进后的模型的分割性能,本文选取了徐的方法[13],钟的方法[15],ZHOU 的方法[16],黄的方法[17]与本文方法进行对比,分别在数据增强后的数据集上进行了训练和测试,得到不同方法的肺结节分割结果如表1所示.其中Parameters指网络需要训练的参数量,time指每轮训练所需的时间.
表1 不同方法的肺结节分割结果Tab.1 Segmentation results of pulmonary nodules by different methods
从表1 的分割结果中我们可以看出,本文方法的交并比、Dice 相似系数和召回率均比其他方法有了明显提升.黄的方法使用了一种多层次特征融合结构,即嵌入不同深度的U-Net,加强了浅层特征的学习,准确率比本文方法略高,但本文方法的交并比、Dice 相似系数和召回率与黄的方法相比提升较明显.因此从总体来说本文方法和其他方法相比具有较好的分割性能.徐的方法是采用传统的U-Net网络,本文方法在其中添加BN层和CAM 模块,通过对比可以看出参数量和训练时间虽然有所增加,但分割性能有显著提升.本文方法和钟的方法、ZHOU的方法、黄的方法在参数量和每轮训练时间上相比,参数量更少,训练时间更短,同时拥有更好的分割性能.
图6 展示了与表1 对应的不同方法的部分肺结节分割结果图,其中(a),(b),(c),(d),(e),(f),(g)分别为测试集中的肺结节图像、对应的金标准、徐的方法[13]的分割结果、钟的方法[15]的分割结果、Zhou的方法[16]的分割结果、黄的方法[17]的分割结果与本文方法的分割结果,图像下的数值代表相对应的Dice相似系数.
图6 不同方法的肺结节分割结果图Fig.6 Results of segmentation of pulmonary nodules by different methods
从图6 中我们可以看出,徐的方法(c)存在未能分割出肺结节的情况,如图6 中第2、5 行,主要是徐的方法中没有使用批量归一化,会造成梯度消失,网络训练慢以及分割准确率不高等情况.徐的方法(c)和钟的方法(d)都存在将血管等组织分割为肺结节的情况,如图6 中第2、4 行,钟的方法通过引入密集连接模块,会造成网络参数变多,容易造成过拟合.而本文方法在U-Net 网络中添加通道注意力模块,该模块结构简单,和其他方法相比参数量较少.对于血管粘连型结节和小结节,如图6中第1、2行,本文方法的Dice 相似系数相比其他方法有了较好的提升.以上可以看出本文方法与其他方法相比有更好的分割性能.
本文采用了如1.1 小节所述的数据增强方式来增加训练样本的多样性,提高模型的泛化能力,表2展示了在数据增强前后,改进后的模型在IoU、Dice、Precision 和Recall 上的评测结果对比.数据都是经过5次重复实验后取平均值的结果.
表2 数据增强前后CAM U-Net模型结果对比Tab.2 Comparison of CAM U-Net model results before and after data augmentation
通过表2我们可以看出,在数据增强后,各个评测指标均有明显提升,其中IoU 提升了2.05%,Dice提升了2.01%,Precision 提升了1.6%,Recall 提升了2.22%.通过以上对比,我们可以看出数据增强可以提升网络分割性能.
假定图5中水平向右的CAM箭头处标记的1,2,3,4 的位置对应Location1,Location2,Location3,Location4,即代表在相应的位置添加通道注意力模块.为了研究CAM 对分割性能的影响,本文采用了Location1、2、3,Location1、2、4,Location2、3、4,Location1、3、4 和Location1、2、3、4 这五种方式将CAM模块融入解码器中.
实验结果如表3所示,我们可以看出,通道注意力模块在Location1,2,3,4 这四个位置都起到了一定的作用,都比改进前U-Net+BN 的网络结构有了一定的提升.其中最好的是在这四个位置都加入通道注意力模块,如表3的最后一行的数据,各个评估指标均有明显提升,其中IoU 提升了1.15%,Dice 提升了1.03%,Precision 提升了0.4%,Recall 提升了1.44%.
表3 改进前后分割结果对比Tab.3 Comparison of segmentation results before and after model improvement
图7为测试集中的一张图片对应的模型改进前后的解码器部分最后输出的部分特征图对比.图7中第一行是U-Net+BN 网络中的解码器部分最后输出的部分特征图,第2 行是CAM U-Net 网络中的解码器部分最后输出的部分特征图.在第一行特征图中我们可以看出改进前的网络关注点有两个位置,如特征图中中间和右下角的位置.在第二行特征图中可以看到改进后的网络关注的位置变为了一个,如特征图中的中间位置,排除了其它组织的干扰,从而达到准确分割的目的.最终分割结果如图8所示.
图7 部分特征图Fig.7 Partial feature map
图8 模型改进前后分割结果图Fig.8 Segmentation results before and after model improvement
图8 中(a)、(b)、(c)、(d)依次为原始图像、金标准、U-Net+BN 网络训练的结果和改进后的网络训练的结果.我们可以看出(c)中存在错误分割的情况,将右下角的血管等组织分割为肺结节,与图7 中第一行特征图中关注的两个位置相对应.改进后的网络通过添加通道注意力模块,并经过不断学习,使得网络更加关注有用的信息,如(d)中改进后的网络可以更好的分割出肺结节,避免了无关信息的干扰.通过以上对比,我们可以看出CAM 可以有效提升网络分割性能.
训练迭代次数对网络的分割性能有很重要的影响,迭代次数过多会造成过拟合,过少会造成欠拟合.图9展示了CAM U-Net网络在训练轮数为200时,训练集和验证集的损失值和迭代次数的关系,我们可以看出在60 轮左右时,验证集的损失值趋于稳定,所以本文的迭代次数设置为60.
图9 CAM U-Net 损失值和迭代次数的关系Fig.9 The relationship between the loss value of CAM U-Net and the number of iterations
在迭代优化的前期中,学习率较大,则前进的步长就会较长,这时便能以较快的速度进行梯度下降,而在迭代优化的后期,逐步减小学习率的值,减小步长,这样将有助于算法的收敛,更容易接近最优解.因此本文采用多阶段学习率设置方式,初始学习率设置为0.001,30 轮后变为0.0005,50 轮后变为0.0001.batch-size 太大会使模型收敛在局部最优点,太小会花费时间多,同时梯度震荡严重,不利于收敛,本文基于实验实际情况选择32.
肺结节分割是肺癌早期诊断的重要基础.本文在U-Net 网络的基础上,提出了一种CAM U-Net 网络结构,通过在解码器中添加通道注意力模块,加强网络对有用特征的利用,进而有效提升了网络分割性能.在LIDC-IDRI 肺结节公开数据集上的实验结果表明,本文方法的交并比为82.04%,Dice 相似系数为89.24%,准确率为88.61%,召回率为91.28%.与其他方法的分割结果进行对比,结果表明改进后的网络具有更好的分割性能.