多尺度特征融合的脊柱X线图像分割方法

2021-04-23 04:32:42张俊华
计算机工程与应用 2021年8期
关键词:注意力脊柱卷积

赵 阳,张俊华

云南大学 信息学院,昆明650500

脊柱侧凸是一种脊柱三维结构的畸形疾病,全球有1%~4%的青少年受到此疾病的影响[1]。该疾病的诊断主要参考患者的脊柱侧凸角度,目前X线成像方式是诊断脊柱侧凸的首选,在X 线图像中分割脊柱是后续测量、配准以及三维重建的基础。

近期出现了不少脊柱X线图像分割方法。Anitha等人[2-3]提出了使用自定义的滤波器自动提取椎体终板以及自动获取轮廓的形态学算子的方法,但这些方法存在一定的观察者间的误差。Sardjono等人[4]提出基于带电粒子模型的物理方法来提取脊柱轮廓,实现过程复杂且实用性不高。叶伟等人[5]提出了一种基于模糊C均值聚类分割算法,该方法过程繁琐且实用性欠佳。以上方法都只对椎体进行了分割,却无法实现对脊柱的整体轮廓分割。

深度学习在图像分割的领域有很多应用。Long等人提出了全卷积网络[6](Full Convolutional Network,FCN),将卷积神经网络的最后一层全连接层替换为卷积层,得到特征图后再经过反卷积来获得像素级的分类结果。通过对FCN 结构改进,Ronneberger 等人提出了一种编码-解码的网络结构U-Net[7]解决图像分割问题。Wu 等人提出了BoostNet[8]来对脊柱X 线图像进行目标检测以及一个基于多视角的相关网络[9]来完成对脊柱框架的定位。上述方法并未直接对脊柱图像进行分割,仅提取了关键点的特征并由定位的特征来获取脊柱的整体轮廓。Fang 等人[10]采用FCN 对脊柱的CT 切片图像进行分割并进行三维重建,但分割精度相对较低。Horng等人[11]将脊柱X线图像进行切割后使用残差U-Net来对单个椎骨进行分割,再合成完整的脊柱图像,从而导致分割过程过于繁琐。Tan 等人[12]和Grigorieva 等人[13]采用U-Net 来对脊柱X 线图像进行分割并实现对Cobb 角的测量或三维重建,但存在分割精度不高的问题。以上研究方法虽然在一定程度上完成脊柱分割,但仍存在两个问题:(1)只涉及椎体的定位和计算脊柱侧凸角度,却没有对图像进行完整的脊柱分割。(2)分割精度不高。

针对上述问题,在U-Net 的基础上提出了一种将Inception[14]结构和残差网络(Residual Network,ResNet)[15]与U-Net相结合的方法,首先使用类Inception网络将其卷积层进行替换,增加网络的深度使其可以提取多尺度的信息,并在跳跃连接之前增加ResNet 使其可以更稳定地提取信息,最后在U-Net第一次上采样之前增加卷积块注意力模块(Convolutional Block Attention Module,CBAM)[16]对空间和通道的权重进行注意力监督。

1 基于多尺度融合的脊柱分割方法

1.1 U-Net结构

如图1 所示为U-Net 的结构,U-Net 主要由特征提取、上采样和跳跃连接三个部分组成。特征提取主要由3×3 的卷积核和2×2 的最大池化层构成,每一层都提取了不同尺度的特征。上采样可以恢复初始图像大小,并在每一层通过跳跃连接将提取的特征进行特征融合来恢复目标的空间特征和细节。

图1 原始U-Net结构图

1.2 Inceptionblock

在医学图像处理任务中,在不同尺度下网络能提取的特征是不一样的,从特征图中思考如何进行多尺度特征提取来增加网络提取到的信息对分割结果有积极影响。Inception网络就是一种提取多尺度特征的方法,基于该方法使用3×3、5×5、7×7 的卷积核来进行不同尺度下的特征提取。考虑到5×5、7×7的卷积核计算量过大,结合Szegedy等人[17]提出的方法,使用2个3×3的卷积核进行连接代替5×5 的卷积核,使用3 个3×3 的卷积核连接代替7×7 的卷积核可以减少模型计算量。与此同时使用1×1的短连接来获取一些图像的空域信息。

图2所示即为Inceptionblock的结构,通过串并连接可以充分利用三个3×3的卷积核,三个支路的输出分别为3×3、近似于5×5 以及近似于7×7 的卷积核。拼接之后的特征图经过Relu激活层并输入到最大池化层。

1.3 Resblock

图2 Inceptionblock结构

使用3×3的卷积核近似5×5和7×7的卷积核虽然减少了网络的计算量并提取了多尺度的特征,但与此同时增加了网络的宽度和深度,从而导致发生梯度爆炸或梯度消失。通过在Inceptionblock之后加入ResNet可以解决网络加宽和加深的问题。

如图3 所示,在Inception block 的后面添加3×3 和1×1的卷积核构成的ResNet,并通过一个Relu激活层和批标准化层。批标准化可以在一定程度上加快模型收敛速度并缓解梯度消失的问题,与ResNet 协同作用可以有效提高网络的稳定性。通过对加入的Resblock 层数调整来进行实验,确定需要的Resblock的层数。

图3 Resblock结构

1.4 CBAM

CBAM 是考虑了不同通道像素的重要性和同一通道不同位置像素的重要性提出的一种结合空间和通道的注意力模块。最早提出通道注意力机制模块的是SENet[18],SENet 通过学习自动获取到每个特征通道的重要程度,然后按照这个重要程度增强有用的特征并抑制对当前任务用处不大的特征。CBAM 在此基础上同时考虑了空间和通道的重要程度,由于卷积运算通过将跨通道和空间信息混合在一起来提取信息特征,因此该模块将沿通道和空间这两个主要维度来提取有意义的特征。

设F∈RC×H×W是特征图的输入,将其送入CBAM,则特征图会经过一个1 维的通道注意力模块Mc∈RC×1×1和2维的空间注意力模块Ms∈R1×H×W,其运算过程如下:其中F'是F经过通道注意力模块后输出的特征图,F″是F'经过空间注意力模块后输出的特征图,⊗表示逐元素相乘。

式(1)为通道注意力的运算过程,Mc表示在通道上进行注意力运算。通道注意力的工作和SENet 很类似,首先将输入的特征图压缩得到一个一维矢量,在对特征图进行压缩的过程中,不同点在于CBAM 使用了全局最大池化和全局平均池化,得到两个不同的一维矢量。全局平均池化对特征图的每一个像素点都有反馈,全局最大池化只对特征图中响应最大的地方有反馈,为全局平均池化的补充。

以F表示输入的特征图,则Fcavg与Fcmax分别为特征图经过全局平均池化AvgPool和全局最大池化MaxPool的特征向量,MLP为多层感知机运算,W0和W1为多层感知机的两层参数,σ为sigmod激活函数,则通道注意力的运算过程如下:

其中W0需要使用Relu函数进行激活。

式(2)为空间注意力的运算过程,Ms表示在空间上进行注意力运算。将通道注意力模块输出的特征向量放进空间注意力模块中,让最大池化Fcmax和平均池化Fcavg输出的特征进行一个拼接,并通过一个f7×7的卷积核进行降维,通过一个sigmod 激活层生成特征图其运算过程如下:

将通道注意力和空间注意力的输出进行相乘得到最后输出的特征。特征图通过CBAM后,网络在特征学习的基础上,在空间和通道上学习不同像素的重要程度。

图4即为本实验模型中CBAM的示意图,通道注意力模块和空间注意力模块顺序连接,嵌入网络之中。本实验将CBAM放置于Dropout层和上采样层的中间,对最深层的特征进行注意力监督,在空间和通道上学习不同像素的重要程度,从而更准确地提取特征。

图4 CBAM示意图

1.5 改进的U-Net模型

图5 改进的U-Net模型

如图5 所示为改进的U-Net 模型,结合Inception 网络和ResNet,用Inception block替换卷积层使得网络可以进行多尺度特征提取融合,在Inception block后面加入ResNet 保证训练过程的稳定和性能优化,在网络的第四层和第五层后面加入dropout层防止训练进入过拟合,在网络的第一次上采样层前加入CBAM 对空间和通道进行注意力监督,使得图像信息可以更完整地保留。输入的图片尺寸为256×256×1,经过Inception block的3×3、5×5、7×7 的卷积核可以得到尺寸分别为256×256×8、256×256×17、256×156×26的特征图,经过拼接后的特征图尺寸为256×256×51,在Resblock之后,特征图大小调整为256×256×32并在最大池化层被压缩为128×128×32,直到经过第五个Inception block,其尺寸为16×16×853。在特征图经过CBAM 时,其尺寸不会发生改变,仅通过学习通道和空间的特征权重让网络自行调整,并将通道和空间的特征权重与特征图进行融合后输入到上采样层。上采样后的特征图与通过跳跃连接的原始图像信息进行拼接融合,最终通过一个sigmod 激活层恢复原始图像大小,得到预测图。

和原有的U-Net 模型相比,改进的U-Net 模型的优势如下:(1)进行多尺度特征提取,学习不同尺度下分割目标的特征。(2)在Resblock 的作用下解决多尺度网络加宽带来的梯度消失或梯度爆炸的问题。(3)CBAM 用于在空间和通道上学习不同像素的重要程度,从而获得更加准确的分割结果。

2 实验内容

2.1 实验环境

本实验采用的硬件环境为CPU CoreTMi7-8700k 3.7 GHz,GPU NVIDIA RTX2080 显存8 GB。软件环境为python3.6、tensorflow1.12为支撑的keras。

2.2 数据集预处理

本实验数据集来源自SpineWeb[19]。Wu 等人[8]也使用了该数据集来实验。该数据集包括609张脊柱前后X线图片,包括脊柱正常的样本以及发生脊柱侧凸的样本,其格式为bmp。

本实验使用python的标注工具labelme对数据集进行标注,在标注前将脊柱X 线图像进行预处理,使其大小为256×256,位深为8位。在预处理后,对每一节椎骨进行标注后获得标签图片并进行二值化处理,本实验的标签为医生认可的真实值。

2.3 损失函数

本实验采用二元交叉熵来作为损失函数,表达式如式(5)所示:

二元交叉熵主要用于二分类任务,而本实验主要是对脊柱进行分割,标签只有背景和脊柱两类,所以采用二元交叉熵作为损失函数。

2.4 评价指标

本实验使用Dice系数作为评价指标,Dice系数主要用于计算两个不同集合的相似性。在本实验中使用预测图像与测试图像的标签来计算其Dice 系数,从而得到预测图像与测试图像的相似程度来评价模型的优劣程度。

2.5 实验细节

将130 张脊柱X 线图像分为110 张训练集和20 张测试集,并使用图像翻转、平移、裁剪、变焦的方法来进行图像增强。实验选用Adam作为优化器,并将学习率设为0.000 1。网络的batch_size 为11,训练轮次为150轮,每一轮输入的图片为256张。本实验采用了提前结束的回调机制,若超过10 个轮次模型的损失值没有降低,则提前终止模型训练。

3 实验结果及分析

3.1 模型Dice系数评估

为了体现出本实验模型的优势,本实验一共设计了四组对比实验,分别对改进的网络是否使用CBAM 模块、残差连接的不同层数来进行测试。实验1采用未添加CBAM的网络,并在Inception block的后面仅添加一层ResNet,最终的平均Dice系数为0.823 6。实验2采用未添加CBAM的网络,在Inception block的后面添加四层ResNet,最终的平均Dice系数为0.827 2。实验3采用添加了CBAM的网络,并在Inception block后面添加一层ResNet,最终的平均Dice系数为0.828 2。而实验4是采用添加了CBAM的网络,并在Inception block的后面添加四层ResNet,最终的平均Dice 系数为0.845 7。从实验结果来看增加残差连接的层数和采用CBAM模块都可以在不同程度上对网络的性能有一定提升。表1给出了不同模型下分割精度的对比。

表1 各模型Dice系数对比

从文献[13]当中采用的原始U-Net 网络所取得的0.710 6 的Dice 系数来看,本文最终取得的Dice 系数为0.845 7,比之前提高了0.135 1。从图6当中的红框处可以看出,使用了Inception block以及残差连接和添加了CBAM 的分割效果比原始的U-Net 网络和只使用了Inception block 以及残差连接的分割效果更好,且更接近于标签的真实值。

3.2 模型分割结果评估

从图6当中的红框处可以看出,本文最终的实验模型的分割结果相比原始的U-Net 网络分割结果有明显的提高,减少了椎体之间的粘连且与标签的真实值已非常接近,并减少了误分割出现的次数。

图6 测试结果(红框内为不同模型差异之处)

3.3 训练时间评估

从训练时间上来看,如表2所示,原始的U-Net网络每一个轮次上的训练时间平均为110 s,改进的U-Net模型平均为每轮84 s,远远低于原始的U-Net 网络训练时间,分割的效果和训练的效率上都已经超过U-Net原始网络。

表2 各模型训练时间对比

本实验通过对U-Net网络进行改进,提高了分割精度,但由于使用Inception block进行多尺度特征提取并在跳跃连接之前加入的Resblock 会增加模型的参数从而导致模型计算量和模型训练时间的增加,通过表2可以看出使用四层Resblock的模型比只使用一层Resblock的模型每一个轮次的训练时间多了30 s,从而在一定程度上增加了训练代价,但对于医学影像处理任务精度比速度更为重要,训练代价的增加在可以接受的范围之内。

3.4 不同模型Dice系数评估

为了验证本实验模型的有效性,将本实验的数据集用于FCN32s、FCN8s以及Mask-R-CNN进行分割,并用Dice 系数进行评估,表3 给出了不同算法分割精度的对比。

通过使用上述算法和本实验算法进行比较可以得出本文的算法模型的Dice系数相比于FCN32s、FCN8s、U-Net 和Mask-R-CNN 分别提高了23.98%、21.44%、19.01%和10.56%,充分表明本实验模型在分割精度上与其他算法相比有显著提高。

表3 不同算法Dice系数对比

4 结束语

本文提出了一种基于U-Net 改进的网络并对脊柱进行自动分割的方法,通过对U-Net 原有卷积核的改进,使用Inception block 进行多尺度特征提取,使用ResNet 解决梯度消失和梯度爆炸的问题,并使用了CBAM对空间和通道的学习权重进行调整,从而提升网络性能。实验结果表明该模型可以有效提高脊柱X 线图像的分割结果,但在一定程度上增加了训练代价。后续可对实验模型进一步探讨,在尽可能不增加训练代价的情况下得到更好的分割结果。本文在医学影像处理领域有一定的参考价值,并为后续深入研究打下坚实的基础。

猜你喜欢
注意力脊柱卷积
让注意力“飞”回来
长期久坐低头 你的脊柱还好吗
今日农业(2021年20期)2021-11-26 01:23:56
基于3D-Winograd的快速卷积算法设计及FPGA实现
18F-FDG PET/CT在脊柱感染诊治中的应用及与MRI的比较
如何保护宝宝的脊柱
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
传媒评论(2017年3期)2017-06-13 09:18:10
A Beautiful Way Of Looking At Things
一种基于卷积神经网络的性别识别方法
电视技术(2014年19期)2014-03-11 15:38:20