基于注意力机制的U-Net网络模型分割X线图像椎弓根影
2022-12-03顾霄莹张俊华王嘉庆
顾霄莹 张俊华 王嘉庆
(云南大学信息学院 云南 昆明 650500)
0 引 言
脊柱侧凸是一种常见的脊柱三维畸形,脊椎的轴向旋转是脊柱侧凸的基本畸形之一[1-2]。目前,X线是医学上诊断脊柱侧凸主要的成像方式[3],已有方法通过测量X线正位相中的椎弓根影相对于椎体中心产生的偏移量实现对椎体旋转度的测量,进而完成脊柱侧凸的系列评估工作[4-6]。椎弓根影在X线正位相和侧位相中均可见,因此也常作为脊柱X线图像三维重建的界标之一[7]。椎弓根作为椎弓的一部分,它起于椎体后上部,与椎体方向垂直向后方凸起,外形呈弧形。在X线图像中椎弓根影显示面积小且对比度不高,这给它的分割工作带来了难度。
现有的椎弓根影分割方法按自动化程度分为手工分割、半自动分割和自动分割三种。手工分割靠医师人工对脊柱X线图像进行标注,耗时费力且精确的结果受到人工的主观因素制约,操作者的误差会直接影响后期椎体旋转角测量结果的准确度。对此,一系列半自动分割方法被提出。Dore等[8]提出一种引入椎弓根图像统计形状作为先验信息的水平集X线图像椎弓根影分割方法,由于严重依赖于图像的质量,该方法不易推广。Zhang等[9]提出一种基于椭圆形状约束的梯度矢量流(GVF) Snake模型的X线图像椎弓根影分割方法,此方法需要由用户选择矩形感兴趣区域生成初始椭圆轮廓,过程烦琐。Kumar等[10]提出一种数学形态学增强的图像预处理结合GVF Snake模型的X线图像椎弓根影分割方法,该方法仍然需要用户标记初始化轮廓。半自动分割方法只能有限地降低人为干预,最终分割精度还是取决于分割者自身的技术和经验。鉴于人工方法和半自动方法的局限性,Cunha等[11]提出一种基于支持向量机的从平面X线图像中全自动分割椎弓根影的新方法,但此方法难以实现大规模样本的训练且最佳分类器的检测准确率仅为48%。Ebrahimi等[12]提出了一种基于随机森林分类器的自动检测X线图像椎弓根影的方法,检测精确度为84%,该方法效果虽不错但在检测一些不明显的椎弓根影时,仍然会产生较大的检测误差。
针对上述人工、半自动、全自动方法的局限性,本文采用深度学习的方法实现X线图像椎弓根影的全自动分割,提出一种端到端的基于注意力机制的U-Net神经网络模型。该方法不需要人工进行干预,对脊柱X线图像作简单预处理后输入到神经网络中,通过网络对标签特征的学习,从而实现对X线图像椎弓根影的高精度自动化分割。
1 方 法
1.1 U-Net神经网络
U-Net神经网络[13]是一种U型架构网络,是从全卷积网络[14](Full Convolution Network, FCN)演变而来。U-Net网络通过引入跳跃连接的方式将用于像素定位的高分辨率层与用于精确分割的低分辨率层结合起来,这种方式使分割结果更加准确,其结构如图1所示。
图1 U-Net网络架构
图1中,左半部分是特征提取过程,每经过一个池化层,图片大小就缩减一半;右半部分是上采样过程,每上采样一次,就将下采样中的高分辨率特征与上采样特征连接起来。下采样路径中每一层的宽度自上而下依次是(64,128,256,512,1 024),对应有自下而上的上采样路径,共18个卷积层。
1.2 改进的U-Net神经网络模型
考虑到X线图像中椎弓根影面积小且对比度不高,本文对原始U-Net网络进行优化,提出一种基于注意力机制的U-Net神经网络模型,其模型如图2所示。
图2 基于注意力机制的U-Net神经网络模型
由图2可知,改进的网络由9个Block组成,改进网络里的每个卷积层后都添加了规范层BN(Batch_Normalization),对前一层的激活值进行批标准化处理,避免网络过拟合,加速网络训练,之后使用ReLU(R-ectified Linear Units)激活。改进网络的每个Block后都加入通道注意力模块[15](Channel Attention module,CA)以及在每个跳跃连接之前都增加注意力门模块[16](Attention Gates module, AGs),既提高了网络对目标区域提取的准确性又解决了模型跳跃连接的冗余问题。在网络的最后,通过1×1的卷积和Sigmoid激活层将多通道特征图谱映射到目标的分割。
各模块内部结构如图3所示。图3(a)表示Block1—Block9内部结构,图3(b)表示Conv内部结构。
(a) Block1-Block9 (b) Conv图3 各模块内部结构
除最后一层是1×1的卷积层外,其他所有的卷积层都采用3×3的卷积核。神经网络的参数主要由卷积核大小和卷积核数量决定,5×5的卷积核有25个参数,而3×3的卷积核只有9个参数,能显著减少神经网络的计算量,同时分割效果也不会降低;网络下采样路径中每一层的卷积核数量自顶向下依次是(32,64,128,256,512),大大减少了网络的参数量。网络的参数及输出尺寸如表1所示。
表1 网络参数
1.2.1注意力门模块
图4 AGs模块
图4中注意力系数(α)通过元素乘积来缩放输入特征(xl)。AGs通过分析门控信号(g)和上下层信息来选择目标空间区域,α在目标区域取得大的值,在背景区域取得较小的值。g通过简单的1×1卷积层、BN层和ReLU激活层获得,xl经过步长为2的卷积下采样得到与g相同的特征尺度。采用双线性插值法对特征图进行重采样。
1.2.2通道注意力模块
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=
F1=Mc(F)⊗F
(4)
图5 AC模块
2 基于注意力机制的U-Net网络的椎弓根影分割
分割框架设计如图6所示,分为3个主要部分。
图6 X线图像椎弓根影分割框架
1) 图像预处理:将原始脊柱正位相X线图像裁剪为小的脊椎图像,之后使用labelme对脊椎图像打标签构建数据集:训练集和测试集。训练中使用图片生成器(翻转、平移等操作)实现数据实时扩充。
2) 神经网络训练:将训练集输入到神经网络中训练,通过不断迭代来优化网络参数,将最优的网络模型保存下来。
3) 测试阶段:将测试集输入到保存的最优网络模型中,得到目标分割结果,然后使用Photoshop将分割结果在脊椎X线图像上标注。
2.1 图像预处理
实验数据是由云南省昆华医院提供的195幅脊柱正位相X线图像。为了从脊椎X线图像中分割出椎弓根影,本文将原始195幅脊柱正位相X线图像裁剪成863幅脊椎图像(包括胸椎和腰椎),图7(a)所示是脊柱正位相X线图像,图7(b)为裁剪后的脊椎图像。由于U-Net网络要求输入图像尺寸一致,同时为了不使脊椎图像变形,本文用黑色背景色将裁剪后的图像填充成统一尺寸(128×128),如图7(c)所示。训练标签由人工完成且得到医生认可,标签图如图7(d)所示。
图7 图像预处理
2.2 神经网络训练
网络训练使用自适应Adam优化器,Adam优化器结合了AdaGrad和RMSProp两种优化算法的优点,使参数的更新不受梯度伸缩的变换影响,实现简单,计算高效。Adam优化器还可以解决其他优化器中存在的问题,如学习率消失、网络收敛速度慢或是SGD参数更新比较频繁导致损失函数震动过大等。
由于分割X线图像椎弓根影是二分类问题,网络选取二元交叉熵(binary_cross_entropy)作为损失函数,损失函数越小,则模型效果越好。样本的真实标签为yt,该样本的yt=1的概率为yp,则该样本的二进制交叉熵损失公式定义如下:
log(yt/yp)=-(yt×log(yp)+(1-yt)×log(1-yp))
(5)
2.3 评价指标
1) 采用精确度(Precision,P)、召回率(Recall,R)和准确率(Accuracy,Acc)对分割结果进行评价,定义为:
式中:Tp表示正确分割椎弓根影的部分;Fp表示将背景预测为椎弓根影的部分;FN表示将椎弓根影预测为背景的部分;TN表示算法分割和人工分割外部公共区域的部分。
2) 使用Dice相似性系数来对分割结果进行评价,定义为:
式中:A表示椎弓根影分割结果;B表示与其对应的真实标签,A∩B代表椎弓根影分割结果与真实标签像素点的交集,Dice值越接近1,表示X线图像椎弓根影分割结果越准确。
3) 采用Hausdorff距离对分割结果进行评价。由于Dice系数的关注点主要集中在分割结果的内部,对分割边界的刻画不敏感,而Hausdorff距离作为形状相似性的一种度量,能够为Dice系数做出较好的补充。Hausdorff距离定义如下:
式中:X表示椎弓根影分割结果;Y表示与其对应的真实标签;d表示欧氏距离。dH越高,表示样本的匹配度越低。
3 实 验
本文实验是在Windows10的计算平台上进行,In-tel(R) Core(TM) i7-8700K CPU,16 GB×2内存,NVID-IA GeForce GTX 1080Ti GPU;开发环境为Python3.6,神经网络的训练使用以TensorFlow为后端的Keras深度学习框架。实验从863幅脊椎X线图像中选取750幅作为训练集,剩下的113幅作为测试集。
3.1 模型训练过程中的参数设置
为了更好地验证本文网络在分割X线图像椎弓根影上的优势,将网络与传统的FCN-16s、FCN-8s、U-Net和Attn U-Net[14]进行对比。
参数设置:实验中基于注意力机制的U-Net和A-ttn U-Net采用的初始学习率为0.000 1,batch_size为8,epoch为200;原始U-Net采用初始学习率为0.000 1、batch_size为4,epoch为200;FCN-8s、FCN-16s在学习率为0.000 1时训练,网络损失下降很慢,难以收敛,因此考虑选取较大的学习率训练,采用lr=0.001,epoch为100就可达到较高的准确率。
3.2 实验结果分析
3.2.1不同分割算法的比较
本实验根据113幅测试图像的自动分割结果分别计算P、R和Acc的平均值来综合评价不同网络模型在X线图像椎弓根影上的分割性能,结果对比如表2所示。
表2 不同网络预测结果指标(ACC/P/R)对比
可以看出,U-Net网络和Attn U-Net网络的P值虽高,但R值相对较低;基于注意力机制的U-Net网络无论是Acc值还是P值、R值都高于其他分割方法。本文提出的基于注意力机制的U-Net网络较其他网络表现出更加优异的性能,且平均分割一幅图像仅需19 ms。
为更好地评价本文网络在分割X线图像椎弓根影上的优越性,使用Dice系数和Hausdorff距离作为评价指标,如表3所示。可以看出,U-Net网络和Attn U-Net网络的Dice系数比传统的FCN-8s网络、FCN-16s网络高,但是它们的Hausdorff距离却大于FCN网络,这表明无论是U-Net网络还是Attn U-Net网络,它们的图像分割结果与真实图像的匹配度并不是很高。本文提出的基于注意力机制的U-Net网络不仅在Dice系数上优于其他的分割网络,Hausdorff距离也明显小于其他4种方法。
表3 不同网络预测结果指标(Dicel Hausdorff)对比
3.2.2不同分割算法训练时间的比较
为进一步分析算法在运行效率方面的性能,本文将不同分割算法在每一轮次上的训练时间进行对比,如表4所示。可以看出,原始U-Net网络每一轮的训练时间平均为150 s,本文网络平均为每轮73 s,远远低于原始U-Net网络训练时间。本文算法在运行效率方面显著优于原始U-Net网络。由表4可知本文网络平均每轮训练时间比Attn U-Net网络的训练时间稍长,但考虑到在医学影像处理任务中精度比速度更为重要,因此本文网络是最优的选择。
表4 算法训练时间对比
3.2.3不同优化器对实验结果的影响
在神经网络中,优化器通过更新计算影响模型训练和模型输出的网络参数,使网络参数逼近或达到最优值,从而最小化损失函数。为了证明使用Adam优化器能够有效提高分割性能,本文在基于注意力机制的U-Net网络下,将Adam优化器与SGD优化器进行对比,如表5所示。
表5 本文网络下优化器对比
可以看出,虽然在召回率上Adam优化器略低于SGD,但在其他四种评价指标上,Adam优化器皆优于SGD,进一步验证了本文网络选取Adam优化器的正确性。
3.2.4算法分割结果的比较
为了更加直观地表达各网络模型的分割性能,本文将不同网络的预测结果进行对比,如图8所示。由图8可知本文网络与其他网络的预测值相比,不仅将脊椎X线图像中右侧的椎弓根影准确地分割出来,还将左侧不清晰且形状变异的椎弓根影较完整地预测出来,能够做到X线图像椎弓根影的完整分割。
图8 预测结果对比
接着将本文网络的预测值与标签的真实值在脊椎X线图像中标注,进一步观测本文网络的分割性能,如图9所示。可以看出本文网络在分割X线图像椎弓根影时有较高的分割准确率,能够实现椎弓根影的完整分割。
图9 X线椎弓根影分割结果(白色为标签的真实值,黑色为本文网络的预测值,灰色为重叠部分)
基于注意力机制的U-Net网络自动分割方法能够完整地将椎弓根影从脊椎X线图像中分割出来,无论是从定量还是定性角度来看,都证实了该方法在自动分割X线图像椎弓根影上的可行性与优越性。基于注意力机制的U-Net网络不仅提高了分割精度,还大大缩减了分割图像的速度。
4 结 语
脊柱X线图像中的椎弓根影分割对后期椎体旋转度测量以及脊柱三维重建都有重大意义。针对现有X线图像椎弓根影分割方法中的不足,本文提出一种基于注意力机制的U-Net网络。在原始U-Net基础上增加CA与AGs两种不同的注意力机制轻量模块,不仅提高了神经网络模型的特征提取能力,还在AGs模块作用下,消除了跳跃连接中不相关的信息和噪声信息,大大简化了模型的训练。实验结果表明,基于注意力机制的U-Net网络在分割X线图像椎弓根影时可以得到良好的分割效果,在脊柱畸形疾病诊断治疗中具有很好的应用前景。但本文方法在分割一些噪音较大、图像质量很差的脊椎X线图像时,依旧存在分割精度较低的问题,因此仍需进一步改进。