APP下载

改进双向LSTM的肺结节分割方法

2021-08-06徐麒皓

计算机工程与应用 2021年15期
关键词:双向卷积损失

徐麒皓,李 波

武汉科技大学 计算机科学与技术学院,武汉 430081

肺癌是世界上死因最高的癌症,肺结节作为肺癌的早期表现形式,可在CT 图像上观察为直径不超过3 cm的类圆形的肺部阴影,对其轮廓进行准确地分割能够帮助医生实现肺结节良恶性的诊断[1]。由于肺结节体积微小,其形态、亮度等特征与肺实质中的血管等组织相似,仅通过肉眼观察难以将其两者分开,容易对医生的判断产生严重的干扰。

深度学习目前在计算机视觉取得出色的应用效果。神经网络能够自动地完成对特定物体的学习,如Kumar 等[2]利用卷积神经网络(Convolutional Neural Network,CNN)对肺结节进行良恶性分类,Wang 等[3]利用多尺度CNN对肺结节进行有效检测与分割。在图像分割方面,Long 等[4]提出了全卷积神经网络(Fully Convolutional Network,FCN)。该模型通过将CNN 的全连接层替换成卷积得到每个图像中像素的分类结果以实现图像分割。Ronneberger 等[5]在FCN 的基础上提出了U-Net 网络,该网络具有U 型对称结构,通过对图像特征进行编码与解码,同时融合网络全局和局部语义特征得到了较好的分割效果[6-10]。在医学图像处理中,一般很难取得大量的高素质批注医学图像,然而U-Net能够在较少样本量的情况下完成模型训练并实现图像分割。因此该网络经常应用于医学图像分割处理任务,然而医学图像中的肺结节具有边缘模糊和目标区域小等特点,仅使用原始U-Net 对其进行训练存在梯度消失、特征利用率低等问题[11],最终导致模型的分割准确率难以提高。

为了解决这些问题,本文提出改进双向LSTM密集卷积网络[12],创新地将双向LSTM 包含在跳跃连接中,并重用具有密集卷积的特征图。对应编码层的特征图包含更高的分辨率,而上一卷积层提取的特征图包含更多的语义信息[12]。将这两种特征图与非线性函数相结合得到更精确的分割结果。利用多视图密集卷积的特性缓解网络特征冗余问题并增强了通过网络的信息流[13]。该网络利用结节的三维特征可以检测到孤立、血管或与肺壁相连的结节。在收缩路径的最后一层中,卷积通过信道级联连接到该层中的所有后续块,在每个块中重新学习的特征被传递到下一个块。此策略有助于该方法在前一层获得的集合特征来学习一组不同的特征,从而避免学习冗余特征。在此基础上利用上卷积滤波后的BN来加速网络的收敛速度。

1 方法

受U-Net、BConvLSTM[14]和密集卷积[15]的启发,提出了如图1所示的改进双向LSTM网络,该网络利用了双向LSTM和密集卷积的优点。

图1 改进双向LSTM网络在跳跃连接和密集卷积中的应用Fig.1 Application of improved bidirectional LSTM network in skip connection and dense convolution

网络输入是大小为512×512的CT图像,使用3×3卷积核将原图转成32个大小为512×512的特征图,后通过池化操作后得到128 个大小为256×256 的特征图,再经过3×3 卷积得到64 个特征图的大小为128×128 的特征层。最后得到480个大小8×8的特征图。在上采样过程中,特征图通过2×2卷积核、步长为2的反卷积操作,得到512 个大小为8×8 的特征图,通过特征融合将特征通过大小为3×3、步长为1 的卷积操作,得到1 600 个大小为32×32 的特征图。因为网络在跳跃连接中加入密集块,为解决特征图尺度不一样的问题,在上采样阶段特征增大太多,通过尽量减少特征丢失保留更多上采样中依赖的低级特征。经过上采样最终得到32 个大小为512×512 的特征图,输出与原图像尺度、通道数一样的图像。

1.1 视图数量

LIDC MATLAB 工具箱将CT 数据的XML 注释信息作为输入的起始真值数据。工具箱的输出为每个切片创建一个单独文件夹,其中包含四个放射科医生提供的掩膜。将各个掩膜组合在一起对像素求和并归一化生成最终的结节掩膜也称为概率图(pmap),以根据放射科医生的意见显示该像素对结节真值的贡献概率。当像素概率大于0.76 时特征图标记为结节掩膜。在创建3D PMAP 之后,从轴向、冠状和矢状视图的结节中提取三个不同的视图以及三维长方体边之间不同平面的六个基本视图[16]如图2 所示,并保存在不同的文件夹中。不同切片中包含的肺结节区域不一样,因此选择一个准确且通用的卷积核是很困难的,故采用3×3来提取多个尺度的信息,从而捕捉更多的特征。由于卷积核大小不变,在每层卷积中时间复杂度与输出特征图边长平方和卷积核个数的乘积成正相关,空间复杂度与特征图的大小平方成正相关,故编码路径逐层增加维数使网络复杂度增加,复杂度的变化由输入视图设置的数量和大小决定。实验中采用三维分割获得具有三维特性的结节,通过输入多个视图的结节同时代替整体结节来降低网络复杂度,同时采集到多视图的尺度信息数量能够提升对小尺度物体的分割精度。

图2 三维结节的不同视图Fig.2 Different views of three-dimensional nodules

1.2 编码路径

网络的收缩路径包括四个步骤。每个步骤由两个3×3 卷积滤波器、一个最大池化函数和ReLU 组成,每一步过后的特征图数量翻倍。编码路径的最后一层产生具有高级语义信息的高维图像。在编码路径的最后一步,原始U-Net包含一系列可以学习不同类型特征的卷积层,然而网络可能在连续卷积中学习冗余特征。为了缓解这一问题,提出的密集连接卷积有助于通过网络重用进行特征图的学习提高其网络性能。每个密集块中每一层和所有后续层直接连接,每个3×3卷积前面都包含一个1×1 卷积操作,目的是减少输入的特征图数量,使用ReLU 激活函数以及BN 操作进行归一化。在每个密集块之间加入1×1 卷积来帮助网络学习一组不同的特征图而不是冗余特征来实现降维,此外该方法通过允许信息在网络中流动并重用特征来提高网络的性能。然而密集连接卷积可以从之前产生的所有特征中获益从而促使网络避免梯度爆炸或消失的风险,另外梯度在反向路径中可以被更快地发送到网络中各自的位置,为此在网络中引入一个包含两个密集卷积的块。在编码路径的最后一个卷积层中有N个紧密相连的序列块如图3 所示。将视为第i卷积块的输出。将之前所有卷积特征图的级联作为第i(i∈{1,2,…,N})卷积块的输入,即,输出为

图3 双向LSTM中的密集卷积层Fig.3 Dense convolutional layer in bidirectional LSTM

1.3 解码路径

解码路径中每个步骤的开始是对前一层的输出执行上采样功能。一般U-Net 使用对收缩路径的对应特征图进行剪裁并复制到解码路径,然后将这些特征图与上采样函数的输出连接起来。在改进双向LSTM 网络中,使用双向LSTM 以更复杂的方式处理这两种特征图。设Xe∈RFl×Wl×Hl为编码路径中复制的特征图集,为前一层卷积的特征图集,其中Fl为第l层的特征图数,Wl×Hl为第l层每个特征图的大小,其中首先将Xd传到上一层卷积后进行上采样如图4 所示,通过2×2卷积将每个特征图的大小翻倍,同时将特征信道的数量减半,即产生同样在扩展路径中逐层增加特征图的大小,为了在最终层达到输入图像的原始大小。

图4 双向LSTM网络Fig.4 Bidirectional LSTM network

经过上采样后在插入BN得到,在训练步骤中的每一层都要适应并学会新的激活函数分布,会导致中间层在训练过程中出现训练速度变慢的问题。该网络的标准化通过减去批处理均值并除以批处理标准偏差使网络中某一层的输入可以提高神经网络的训练速率和稳定性能,同时适当的正则化能改变提升网络的性能。

负担过重会导致网络不收敛,故应选择较小的初始权值和阈值,同时隐藏层节点数减少可以使网络结构和运算量减少。由于训练时间的限制,学习率过大或学习速率加快会引起网络出现波动现象,导致不收敛的危险。通过实验发现隐藏层的数量选择也会对网络收敛速度产生影响,因此选择一个合适的学习率是算法提升性能的关键问题。为了使学习速率足够大,又不会产生震荡,故在权值调整公式中加入动量项,可以对网络起到一定的稳定作用。若步长过小,收敛速度太慢,然而当步长过大时,会引起误差函数不下降导致最后网络不收敛。为了加速网络的收敛,同时考虑到数据集中图像的体素值不一致,本文采用均值和标准差的方法对图像进行了归一化。考虑数据集中样本数量较少,对CT 图像采用剪裁、翻转和复制的方法进行了数据增强。该网络用Overlap-tile 策略补全输入图像的上下文信息并对数据进行增强,既可以解决训练数据不足的问题,也可以提高算法的鲁棒性。

1.4 双向LSTM网络

上式中,*和∘分别表示卷积函数和Hadamard 函数。Xt是输入张量,H是隐性状态张量,Ct是存储单元张量,Wx*和Wh*分别对应输入和隐性状态的二维卷积核,其中bi、bf、bo和bc是偏差项。

该网络使用双向LSTM 卷积对Xe和进行编码,双向LSTM使用两个LSTM将输入数据处理成前后两个方向的路径,然后通过处理两个方向的数据依赖关系来决定当前的输入。通常LSTM 只处理前向的依赖项,但是应该充分考虑序列中的所有信息,因此考虑后向依赖项可能是有效的。事实证明分析前向和后向的视角都能提高预测性能,每一个前向和后向的卷积LSTM 都可以看作是一个标准LSTM,双向LSTM 的输出计算为:

上式中Hα和Hβ分别表示前向和后向的隐性状态张量,b为偏置项,表示双向信息的最终输出。该方法利用双曲正切tanh 通过非线性方式将前向和后向的输出结合起来,使用原始U-Net网络的能量函数来训练网络。

标准的LSTM以时序顺序处理只考虑了历史信息,忽略了预测信息,然而同时考虑特征的历史信息和预测信息有助于特征建模任务。因此,本文使用双向LSTM网络得到前向和后向路径的特征表示,分别从前后两个方向处理特征路径,由下采样产生的卷积特征仅在初始时刻被输入到双向LSTM单元中,双向LSTM单元的内部参数在每个时刻动态更新。这些参数刻画了双向LSTM单元对视觉信息长期与短期的记忆,是视觉信息的另一种表征。双向LSTM 在参数更新完毕后将被输入到上采样中进行特征融合。

双向LSTM 能够学习利用输入的空间语义信息动态地改变图像不同区域的权重。随后前向路径通过LSTM 的输出与提取感兴趣区域来计算所有区域上图像特征的加权平均值,并将这个值作为特征向量输入后向路径。其中遗忘门学习的是从输入信息中保留多少信息,输入门则控制着输入信息中的哪些部分会被模型选择,输出门控制着哪些信息被作为长期记忆更新到双向LSTM 单元的参数中。这些门使LSTM 能够通过选择性地阅读、记忆、遗忘一部分信息学习到复杂的空间上下文信息从而提高网络的检测性能。

1.5 损失函数

在二分类的语义分割任务中,常用的损失函数是二值交叉熵损失函数,使用二值交叉熵损失函数进行优化,可以稳定传回每个类别相对应的梯度,有效解决了在反向传播过程中梯度消失的问题。由于损失函数在梯度回传的过程中对每个类别均等地进行评估,对于存在不平衡类别问题的图像来说,其中最常见的类别更容易改变网络的优化方向,进而影响最终的分割结果。其公式如下:

式中,gi为像素点i的真实类型,pi为网络对像素点i的预测类型结果。

另一种可以通过学习使网络预测结果逐渐逼近真实结果的分割任务损失函数为Dice 相似系数损失函数。一旦预测结果中有部分像素预测错误,会导致预测目标的梯度剧烈变化,从而增加了网络的训练困难,公式如下:

本文根据二值交叉熵和Dice 相似系数损失函数的特点提出了一种混合损失函数。在反向传播中混合损失函数避免了均方误差损失函数学习速率降低的问题,同时通过学习速率控制输出的误差;既能够解决正负样本数据分布不平衡的问题,也可以缓解训练时交叉熵与测试时F1 的失配问题;重点通过计算预测肺结节前景和真实标签中肺结节前景的交集和并集,来解决因背景像素过多而导致损失函数太小的问题,公式如下:

式中,α为权重因子,用于调节两种损失函数所占权重。

2 实验结果及分析

2.1 实验细节

该神经网络通过Lung Nodule Analysis 2016(LUNA16)和阿里巴巴天池竞赛数据集进行训练。LUNA16 数据来自肺部图像数据库协会,它包含888 个CT和1 186个阳性结节。

本实验将所有数据分成10个子集,利用9个子集进行训练,1个子集进行测试。本文提取左右肺叶区域掩膜并忽略胸腔以及其他噪声作为网络的输入,提取步骤如图5 所示:(1)对CT 扫描图像做二值化处理,经过聚类分析得出可以区分肺区和非肺区的阈值;(2)采用K-means 聚类来区分肺区作为一类,非肺区及周围为另一类[17];(3)通过对图像内部存在的高亮区域使用腐蚀操作来去除局部细微颗粒噪声[18];(4)采用图像膨胀处理将血管包含为肺部组织,目的是移除由于不透明射线引起的肺部黑色噪声和覆盖区域[19];(5)将第(4)步的结果与原图做与操作后剪裁到同样大小得到肺实质区域[20]。

图5 提取肺部掩膜流程图Fig.5 Flow chart of lung mask extraction

2.2 数据增强

首先将CT 标准化扫描的平均值设为−600,标准差设为300,再进行数据增强的方法如下:

(1)剪裁,对每个512×512的CT图像,每隔2个像素对其进行裁剪,裁剪成500×500 的小切片,最后每个候选区域的数据量增加了36倍。

(2)翻转,对每一幅CT图像从三个维度(轴向、冠状面和矢状面视图)采用翻转,最终得到每幅CT图像的数据量增加了288倍。

(3)复制,为了训练数据集中正样本特征和负样本特征的数量达到平衡,故将正样本特征复制8 次后使用。

2.3 评价标准

该实验采用平均像素精度(MPA)[21]、像素精度(PA)、平均交并比(MIoU)[22],衡量分割效果采用三种常用语义分割标准公式如下所示:

设k=1 时肺结节分割的过程只需要语义分割结果。pij表示预测为j类却属于i类的像素数量,pii和pji分别表示预测为i类却属于i类的像素数量以及预测为j类却属于i类的像素数量。

2.4 参数设置

在训练中经过预处理后的10 张CT 图像作为一组输入数据,选择混合损失函数作为目标函数,利用Adam优化器优化网络,将初始学习率设定为10−5,批量大小设置为32,动量设置为0.9。动量参数设置为在训练和测试数据集中保留相似的数据分布,以避免由于数据不均衡而导致过分割和欠分割。

本文对损失函数中的权重因子α值选择和有效性进行了研究,由于不同损失函数对应的量级和收敛速度不同,在训练过程中先使用超参数调整损失到同一量级后,再在这一范围内寻找能平衡收敛速度的参数。实验先对交叉熵损失函数和Dice相似系数损失函数单独训练,在接近收敛时将损失函数的权重数量级设为基准权重,得到交叉熵损失函数的权重为0.25,Dice 相似系数损失函数的权重为0.16,此时通过调整超参数把混合损失函数基准权重设成1∶5。如果想要强调其中一个损失函数就在此基础上增加对应权重数值,将α分别设置为0、0.2、0.4、0.6、0.8和1,表1说明混合损失函数在不同权重因子下对网络性能的影响,最终通过五组对比实验得到效果最优的权重因子。从表1 中可以看出当α取值为0.6时,网络的性能表现最佳。然而当α取值为0时,损失函数为二值交叉熵损失函数;当α取值为1 时,此时损失函数为相似系数损失函数。因此本实验将权重因子α的值设为0.6。

表1 不同权重因子对改进双向LSTM性能的影响Table 1 Influence of different weight factors on improved bidirectional LSTM performance

LSTM 网络层总参数为(隐藏层神经元数×输入的维度+隐藏层神经元数×隐藏层神经元数(上一层的隐藏层输入)+偏置(隐藏层神经元数))×4,乘以4 是因为LSTM 有三种不同的门:输入门、遗忘门、输出门、再加上一个输入,尽管LSTM 每个时刻都是参数共享,但还是要计算参数的。卷积层的总参数为卷积核的宽×卷积核的长×输入的通道数×卷积核的个数+卷积核个数,因为对每个卷积核都要去卷积输入的每个通道,故这里卷积核的个数就是卷积通道数。在下采样中第一层卷积图像输入为512×512×32,池化后输出128×128×64,卷积核大小3×3,因此参数量为3×3×32×64+64。最后一个卷积层为8×8×480,卷积核大小3×3,因此参数量为3×3×512×512+512。

2.5 实验结果

表2 是各种实验方法在97 例测试数据上的实验对比结果[23-27]。表3是各种实验方法对97例测试数据集抽取39例小结节(直径在3.1 mm~7.5 mm)的实验对比结果[23-27]。图6 为神经网络模型训练过程曲线图(对比文献[24]和[27]的方法均不涉及神经网络,故无训练曲线)从图中可以看出改进双向LSTM网络在Epoch为124附近时损失值就已经达到比较低的水平并且保持小幅度的浮动,验证集的损失值趋于稳定。其余方法的损失值均高于本文方法,本文实验中的训练迭代次数设置为124。

表2 实验结果对比Table 2 Comparison of experimental results

表3 小结节分割结果对比Table 3 Comparison of segmentation results of small nodules

图6 训练过程曲线图Fig.6 Curve of training process

表2和表3展示了不同网络在像素正确分类概率和频率的多重评价指标中,改进双向LSTM均比其他方法得到更高的分数,同时也体现了该方法在不同尺寸结节的图像分割中保持了高效的分割精度和稳定性。这是由于其他模型没有充分利用网络中所提取的图像特征。模型对于编码器提取的所有特征只进行上采样操作,将其恢复到输入图像的大小,从而忽略了多尺度特征空间的像素定位与分类之间的关系,因此这类模型的分割结果较差。改进双向LSTM 模型通过利用局部特征和全局特征进行像素精确定位和分类,使网络的分割性能更加高效。模型不仅采用跳跃连接方式,而且还通过密集连接模块将相邻跳跃连接中双向LSTM 网络层中提取的特征融合起来,有效避免特征冗余的同时能够进一步加强网络对特征的传递与利用,同时也能够缓解网络中梯度消失的问题,因此改进双向LSTM网络对图像中的微小或边界模糊的肺结节区域具有更强的学习能力。

图7 为多类型肺结节的分割效果,其中(1)、(2)为常见孤立型肺结节,(3)、(4)为血管粘连型肺结节,(5)、(6)为胸膜牵拉型肺结节,(7)为不易识别的磨玻璃型肺结节。(2)、(3)、(6)的结节直径都小于7.4 mm。结果表明该网络能够对大结节(1)、(5)、(7)有完整的分割效果,对小结节(2)、(3)、(6)有较为精准的分割效果,实验中其他方法对比本文方法存在欠分割和过分割的情况。由于文献[23]和[24]的方法忽略了多尺度特征融合的重要性,只能实现对肺结节的大致定位。肺结节在图像中所占比例较大,且其像素值与背景区域中的血管等组织相近,将背景区域预测为肺结节区域,容易受到与病灶相似的干扰区域的影响分割结果误差较大。相比之下,本网络与其他分割网络相比,分割效果得到显著提升,在针对微小或边界模糊的肺结节的分割过程中鲁棒性高,具有良好的分割性能。综合实验结果表明本文提出的改进双向LSTM 分割网络在LUNA16 和阿里巴巴天池竞赛数据集的肺结节分割MIoU 值达到了90.1%,在对大结节和小结节的完整度和分割精确程度都有良好效果。

图7 不同类型肺结节分割结果Fig.7 Segmentation results of different types of lung nodules

3 讨论

U-Net网络通过在跳跃连接中插入双向LSTM网络改进后具有更准确、更精细的分割输出。来自前一解码层和相应编码层的两种特征在跳跃连接之后组合,通常在U-Net 中使用连接函数来组合编码和解码两种特征。本网络利用双向LSTM 对特征进行组合编码和解码,编码后的特征拥有更高的分辨率并包括更多输入图像的局部信息,而解码后的特征具有更多关于输入图像的语义信息,这两个特征之间相互影响会生成一组包括丰富的局部特征和语义信息特征图。本文提出的方法不是简单的特征级联,而是在双向LSTM中都使用一组卷积滤波器,通过卷积滤波器来组合编码和解码特征,因此每个双向LSTM对应一种特征,也能够编码另一种特征的相关信息。

网络在每个卷积层后加入BN 来加快学习过程,通过对有无BN的双向LSTM网络采用数据集进行训练来评估该方法的效果。图8(a)为无BN 网络的训练和测试精度,图8(b)为有BN 网络的比较结果。没有BN 的双向LSTM 网络在200 个Epochs 之后收敛,同样在有BN 是30 个Epochs 收敛,结果表明BN 使网络收敛速度加快了6.6 倍,同时也提升了双向LSTM 网络的精度。BN通过控制输入分布的均值和方差来对数据进行标准化,同时对这些变化进行控制从而实现正则化并减少泛化误差,综合来看BN有助于提高网络性能。

图8 改进双向LSTM训练和测试准确性Fig.8 Improved bidirectional LSTM training and testing accuracy

密集卷积的核心思想是通过卷积块之间的直接连接从而在块之间共享特征图。因此每个密集块接收所有前面的层作为输入来产生更加多样化和丰富的特征,有助于网络增加更深层次的模型表达能力。由于密集卷积通过较短连接接受损失函数的附加监督,因此网络对后向路径进行深度监督,该方法在前向和后向路径通过密集卷积得到更多的特征传播。由于误差信号可以直接地传播到较早的层,导致这些层可以直接受到最后一层的监督从而减少梯度消失的问题。与其他深度学习架构(如残差连接)相比,密集卷积在提高网络精度的同时仅需要较少的参数。

4 结论

本文提出用于医学图像分割的改进双向LSTM 网络,通过在跳跃连接中加入双向LSTM并加入密集连接卷积块的实验结果表明网络能够捕获更多的特征判定信息,从而得到更精确的分割结果。此外在卷积层之后利用BN可以将网络速度提高6倍左右。在LUNA16和阿里巴巴天池竞赛数据集上的实验数据说明该网络与其他出色的方法相比语义分割的效果更好。

猜你喜欢

双向卷积损失
双向度的成长与自我实现
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
一种软开关的交错并联Buck/Boost双向DC/DC变换器
一般自由碰撞的最大动能损失
一种工作频率可变的双向DC-DC变换器
损失