刁 毅,张魁星,江 梅,徐云峰,魏本征
1.山东中医药大学智能与信息工程学院,济南250355
2.山东中医药大学青岛中医药科学院,山东青岛266112
脊椎是人体骨骼系统中重要的组成部分,对维持人类正常生命活动具有不可或缺的作用。随着现代社会人们生活和工作方式的改变,脊椎疾病发病率逐年递增,且逐渐呈现年轻化的趋势[1]。常见的脊椎疾病包括颈椎病[2]、椎间盘退化[3]、脊柱畸形[4]等,严重的脊椎疾病易引起大脑供血不足,危及患者的生命安全[5]。
脊椎的磁共振成像(magnetic resonance image,MRI)、计算机断层扫描(computer tomography,CT)和X 射线(X-ray)等医学影像是脊椎疾病临床诊断的重要依据[6]。脊椎解剖结构复杂,通过对脊椎影像的精确分割和识别能够直观地展现脊椎的详细信息,协助医生精准定位病灶,辅助临床诊疗[7]。近年来,随着人工智能技术的不断发展,利用深度学习对医学图像进行分析已经取得了显著的成效[8]。医学图像分割是计算机提供诊断辅助的关键步骤。将深度学习技术应用于脊椎图像分割能提高图像分割的精度及分割效率,充分挖掘脊椎的影像信息,量化评估治疗前后的效果,提升医生的工作效率。同时,在临床的智能决策和疾病预防中也起到良好的辅助作用。
深度学习是通过深度神经网络模仿人脑分析学习的一种机器学习技术[9]。深度学习的算法经过不断改进和发展,在计算机视觉领域已经逐渐超越了其他传统的机器学习方法[10],其中模型改进包括结构重组、正则化、参数优化、新模块开发等方向,提高了模型准确率和泛化性。
通过对文献的检索发现,CNN、FCN、U-Net、GAN等高效的改进模型在脊椎分割方向上取得了明显的优势,国内外研究学者针对上述模型进行了深入的改进研究,并取得了准确高效的脊椎分割结果。由于脊椎图像分割算法的应用、网络结构和评价标准的多样性,对全面系统地回顾深度学习在脊椎图像分割的研究进展具有很大的挑战性[11]。本文系统地综述了脊椎图像分割的深度学习算法,结合近年来先进的深度学习技术,讨论了深度学习网络模型用于脊椎分割的可行性,并对目前常用的深度学习框架进行了对比,帮助研究者全面了解深度学习在脊椎分割上的发展现状。表1 简要概述了几种常见的神经网络模型[12-24]。
表1 常见的深度神经网络模型Table 1 Common deep neural network models
在制定脊椎图像分割的策略时,数据集具有重要作用,但是由于隐私问题,使得脊椎图像数据的共享变得困难。此外用于训练模型的脊椎数据还需要专家标注,导致高质量的标注数据稀缺。目前常用的脊椎图像的公开数据集如表2所示。
表2 常用的脊椎图像数据集Table 2 Commonly used spine image datasets
深度学习在脊椎图像分割任务中常用的评价指标包括像素准确率(pixel accuracy,PA)、交并比(intersectionover-union,IOU)、Dice系数(Dice coeffcient)、豪斯多夫距离(Hausdorff distance,HD)等。PA 是用正确分类的像素除以所有像素,即图像中正确分类的像素百分比。IOU 是模型的分割结果与真实标签的交集和并集的比值。Dice 系数与IOU 类似,两者是正相关的关系,区别是Dice 系数是取两倍的交集除以像素总和。HD 也称最大表面距离,应用在衡量算法边界分割的准确程度,是两个点集之间距离的度量。表3 汇总了脊椎图像分割中常见的指标。
表3 脊椎图像分割模型的评价指标Table 3 Evaluation metrics for spine image segmentation models
卷积神经网络(CNN)是一种常用于图像处理的神经网络,能够通过层层的特征提取学习输入图像和分割标签之间复杂的、非线性的数据关联,有效利用图像的空间信息,形成对数据的高效特征表示,卷积过程如图1所示。CNN主要的模型结构有卷积层、池化层、全连接层等[25]。其中,卷积层由卷积滤波器组成,通过对图像数据进行卷积操作来检测特征图中不同位置的局部特征,学习特征图之间的连接权重。池化层是仿照人的视觉系统对视觉输入对象进行降维和抽象,减少下一层神经网络的输入数据的空间维度,这种操作也称为下采样,既保留了大部分的特征信息,还减少了模型参数和计算量。全连接层在神经网络中执行高级推理,集成了来自给定输入图像的各种特征响应,以提供最终结果。如表4总结了CNN在脊椎图像分割上的文献摘要[26-35]。
图1 卷积过程示意图Fig.1 Schematic diagram of convolution process
表4 基于CNN的脊椎分割论文摘要Table 4 Spine segmentation based on convolutional neural network
椎体是脊椎的主要部分,Rak等人[26]将CNN与基于编码交换的图形切割算法相结合,减少网络的复杂性,避免了邻接椎体之间模糊分割的问题,实现了在3D的脊椎图像中对椎体的快速分割。3D CNN 需要承担较大的处理成本和过拟合的风险,为了降低计算负荷Qadri等人[27]提出了OP-convNet模型来自动分割椎体,该模型从脊椎图像中提取重叠的图像块作为输入,有效地保留了图像中更多的局部信息。之后,Qadri 等人[28]又将CNN和堆叠稀疏自动编码器结合,提出了椎体的分割模型SVseg。SVseg 也以重叠的图像块作为训练数据,以无监督的方式从未标记的图像块中学习高级特征,然后采用监督学习来完善特征表示,提高所学特征的可辨别性,最后通过逻辑回归分类器微调模型。为了减轻对脊椎注释数据集的需求,Kervadec等人[29]对基于部分标记的脊椎图像进行了弱监督分割,引入基于惩罚的不等式约束,提出一种新的损失函数,减少了训练的计算需求,通过只对一小部分像素进行注释,达到与全监督相当的分割性能水平。
脊椎的多个结构是直接相互依赖和影响的,脊椎分割中CNN 框架下的多个任务也可以相互关联,Tam 等人[30]提出了一种多尺度融合图像特征的多任务回归网络(holistic multitask regression network,HMR-Net),HMR-Net 将多器官分割转成多任务学习问题,利用了任务间的关联性,具有良好的可移植性和通用性,通过在多个任务之间共享网络参数实现更低的内存消耗和更快的推理计算。Hong等人[31]结合残差模块和变分水平集提出了MMCL-Net模型,提高了模型对模糊边缘的感知和识别能力,可以同时检测、分割和分类椎间盘、椎体和神经孔。多任务分割工作复杂,每个脊柱至少有十几个目标结构,同时分割所有结构比单目标分割困难得多。Huang等人[32]引入了一种新型的半监督混合脊柱网络(semi-supervised hybrid spine network,SSHSNet)。首先采用2D半监督的DeepLabv3+网络,提取脊椎图像的全局信息,对脊椎进行粗分割。然后采用3D DeepLabv3+网络结合交叉注意力模块实现对椎体和椎间盘的精确分割,填补网络的信息损失,提高特征表示能力。
全卷积网络(FCN)是深度学习在语义分割上的开创性工作[36]。FCN将CNN最后的全连接层全部换成卷积层,利用反卷积层对最后一个卷积层的特征图进行上采样,将其恢复到输入图像相同的尺寸,对上采样的特征图进行像素分类,实现对图像的分割,其网络结构如图2所示。相较于传统的CNN,FCN提高了脊椎图像分割的精度和效率,表5简要总结了FCN在脊椎图像分割上的文献摘要[37-42]。
图2 全卷积分割网络Fig.2 Full convolutional segmentation network
表5 基于FCN的脊椎分割论文摘要Table 5 Spine segmentation based on full convolutional neural network
椎间盘是相邻椎骨之间的软骨组织,从脊椎图像中准确分割椎间盘对于确定椎间盘疾病和患病程度具有重要作用。Chen 等人[37]使用端到端的3D FCN 对椎间盘进行定位和分割,通过3D 卷积层对体素级别的特定区域进行概率分析,使用平滑和阈值等技术进行细化分割,同时还验证了空间信息在脊椎图像处理任务上的重要性。
Li 等人[38]提出了一个集成的多尺度FCN 用于椎间盘的定位和分割,并结合随机模态体素丢弃学习的方法,提高了椎间盘的分割精度。Das 等人[40]针对椎间盘分割任务提出了一个端到端的区域-图像匹配学习的深度网络(region-to-image matching network,RIMNet),对椎间盘进行区域分类,区分每个椎间盘,并采用退出策略,通过随机地禁用小批量的模式,实现了对MRI图像进行全自动的椎间盘识别和分割。
相邻脊椎的椎体具有很强的相似性,在对椎体进行分割时不容易区分,Sekuboyina 等人[41]提出了相互补充的FCN 模型,分为两个阶段。第一阶段使用多层感知器定位图像中感兴趣的腰椎区域,提供椎体的粗略定位;第二阶段使用深层FCN,利用局部区域的背景信息一次性分割和标记腰椎。两者结合减少了脊椎区域外的噪声,具有很强的鲁棒性。Xia 等人[42]也提出了一种两阶段的分割方法,先使用3D FCN 对CT 图像进行粗分割,然后通过级联细分割的CNN 来完成对多个椎体的分割和分类。
在对医学图像进行处理时经常会出现数据量少的问题,U-Net 是Ronneberger 等人[20]提出的一种编码器-解码器的改进模型,具有用于图像下采样的特征提取网络和用于图像上采样的特征融合网络,如图3收缩路径由卷积和池化两层组成,可以压缩图像的空间信息,提取深层特征。在扩展路径中,空间信息与来自收缩路径的特征相连接,可以使用有限数量的标记训练图像完成对图像的高效分割。并且U-Net 通过跳跃连接的架构将上采样和下采样图像特征融合起来,可以获得比较完整的椎骨上下文信息,普通的CNN 模型往往难以获得准确的脊椎分割结果,而U-Net创造性地设计了跳跃连接来结合低级和高级特征,即使在目标物体相对于背景较小,数据样本数量有限的情况下,也能取得很好的性能。因此,研究者针对脊椎图像的分割算法有很多采用U-Net作为基本的网络结构。
图3 U-Net网络Fig.3 U-Net
如表6总结了近几年U-Net在脊椎图像分割上的文献摘要[43-60]。
表6 基于U-Net的脊椎分割论文摘要Table 6 Spine segmentation based on U-Net
对于椎体分割任务,通过跳跃连接来获得多尺度特征,以增加对比度,减少了脊椎、静脉畸形等与背景之间的模糊边界,从而实现更准确的脊椎分割。Janssens 等人[43]基于3D 全卷积网络提出了一种由定位和分割网络组成的腰椎CT 图像的自动分割方法,先通过训练Localization Net来寻找腰部边界框,然后通过类似U-Net网络的Segmentation Net 进行多类分割。为了利用相邻椎骨的上下文信息,Al Arif等人[44]将FCN和2D U-Net相结合,通过一个全自动深度学习框架实现了椎体定位、椎体中心定位和椎骨分割。
脊椎CT 和MR 的扫描结果经常只覆盖部分椎体,Lessmann等人[45]提出了一种迭代的分割方法,并使用大尺寸(128×128×128)的3D图像块来覆盖整个椎体,避免了网络输入中出现某个椎体信息的缺失。该方法也有一定的局限性,找不到一个椎体可能会影响后续的椎体分割。Chuang等人[46]对该方法进行了改进,改变了网络中的跳跃连接,减少了内存的使用量,在输出结果中提供了椎骨的标记信息。将脊椎图像的每个切片输入到训练网络,不仅节省了计算成本,而且还增加了训练的样本数,通过2D网络训练解决了3D椎体的分割。
Rehman等人[47]将参数水平集方法与U-Net相结合,提出了FU-Net 框架,提高了网络在处理椎骨骨折时的收敛效果,成功解决了椎骨破裂的图像分割任务。Zhang 等人[48]对椎体间的空间关系进行建模,设计了一个序列条件强化学习网络(sequential conditional reinforcement learning network,SCRL)。SCRL 使用了注意力模块来考虑脊椎的全局信息,首次将深度强化学习应用到脊椎分割上,并获得了效果显著的分割精度。Cheng 等人[49]提出了一种二阶段的CT 脊椎图像自动定位与分割方法。第一阶段使用2D-Dense-U-Net,通过对带有密集的椎体质心标记的切片来定位椎体。第二阶段通过3D-Dense-U-Net实现对每个椎体的分割。然后,将分割的椎体合并成一个完整的脊柱,并重新采样到原始分辨率,实现了对脊椎的实例分割。
U-Net可以有效实现全局和局部的特征信息交互融合,普钟等人[50]针对脊椎的空间位置信息与通道信息的融合问题提出了融合多注意力的脊椎图像分割网络(multi-attention U-Net,MAU-Net)。使用了坐标注意力模块,还引入了双支路通道模块代替跳跃连接,通过位置信息对通道信息进行编码,增强网络的全局特征提取。Zhang 等人[51]在U-Net 的基础上扩大了网络结构的深度,并在特征提取的双卷积中加入了通道注意模块,改进后的网络称为SeUneter。它包含两个部分:SeDeepUnet模型和后处理。SeDeepUnet 实现对颈椎的分割,而后处理则是通过使用颈椎图像的先验知识来调整分割结果,以获得更精确的结果。
脊椎病变可能是脊椎的多个部位引起,多任务分割同时分割多类对象,并将分割与分类等其他任务相结合。为了解决不同目标之间的非线性关系,达到对多个脊椎部位进行准确分割的目的,Pang 等人[52]将用于3D 粗分割的3D图卷积分割网络(graph convolutional segmentation network,GCSN)和用于2D 细分割的2D 残差U-Net 组合,提出了一种二阶段框架SpinePareNet。SpinePareNet通过脊椎间的依赖关系与3D GCSN相结合来提取语义信息,随后通过2D 残差U-Net 网络对高分辨率脊椎图像切片进行细化分割。但是对图像边界模糊的骶骨周围分割效果不好,无法分割不完整的椎体。此后,为了解决脊椎分割中的类间相似性问题,Pang等人[53]又提出了一种检测引导的混合监督分割网络(detection-guided mixed-supervised segmentation network,DGMSNet),由检测路径和分割路径组成。通过检测路径来提取脊椎的语义特征,进而指导分割路径产生准确的分割结果,缓解了类间相似性,实现对椎体和椎间盘的准确分割。Li等人[54]在U-Net网络中嵌入了双分支多尺度注意力模块,将原始U-Net中两个下采样或上采样之间的两个卷积层替换为一个卷积层和一个双分支多尺度注意力模块。该模块的作用是在保留图像关键信息的同时,还能够适应不同尺度的目标,该方法可以提高分割效率,减少重复工作。
生成对抗网络(GAN)是区别于CNN的另一种神经网络,由生成器和判别器组成,如图4。生成器从指定训练集中获取的随机向量产生伪样本,而判别器对输入样本是真实数据还是伪样本进行分类输出。结合语义分割的要求和GAN的特点,Luc等人[61]训练了一个卷积语义分割网络和一个对抗网络,将GAN 的思想第一次应用于语义分割。其中卷积语义分割网络Segmentor是一个基于CNN 的传统分割网络,生成一个接近真实值的分割图,对抗网络是GAN中的判别器,利用博弈的思想对网络进行训练。
图4 GAN网络Fig.4 Generative adversarial network
Han 等人[62]为了在一个网络模型中完成椎间盘、椎体和椎间孔的语义分割,利用递归生成对抗网络Spine-GAN 对MRI 脊椎图像进行多任务自动分割和分类,并使用LSTM(long short-term memory)发现多个对象之间的空间关系。通过使用概率图对相邻椎骨和椎间盘之间的相关性进行建模,完成了对椎间盘、椎体和神经孔的语义分割,在253 例患者的脊柱图像上取得了96.2%的像素准确率。
Gong等人[63]为了在MRI图像上实现对椎间盘、神经孔、硬膜囊和后弓的同步分割和疾病诊断,提出了Axial-SpineGAN,包括生成器、判别器和诊断器。生成器采用增强特征融合模块和增强边界对齐模块,解决了脊椎结构多样性中正常与异常结构之间差异微小的问题,提升了对边界像素的精确分类。鉴别器采用对抗性学习模块,避免了因训练数据不足而导致的过拟合。诊断器采用了一个自动诊断模块来提供脊椎疾病的自动识别。Axial-SpineGAN 在分割精度方面Dice 系数为94.90%±1.80%,可以为MRI图像上的多个脊椎结构提供自动分割和疾病诊断。
常用的脊椎成像方式CT、MRI 和X 射线都可以提供高质量的影像输出。超声波成像安全和经济,但图像质量低,而图像的质量很大程度上会影响分割结果的准确。Huang等人[64]针对脊椎超声图像的噪声问题提出了一个具有选择性特征共享机制的多任务框架,框架包括两个部分:基于生成对抗网络的噪声去除,通过弱监督的方式实现对噪声的扫描去除;脊椎分割,预测准确的脊椎图像。同时提出了一个选择性的特征共享策略,两个任务之间有选择地传输特征,在处理噪声的同时完成脊椎分割。
GAN 在脊椎分割任务中将对抗损失融入分割损失,利用判别器对分割结果进行判断,提高了分割结果的完整性。并可以通过生成器改善数据集过小的问题,从而增加数据在总体的连续性,与直接使用真实特征图的其他模型相比,GAN提高了全局级别的精度,并避免了脊椎图像分割中的过拟合。但在实际训练GAN网络模型时,由于生成器和鉴别器的训练过程类似于博弈过程而非优化,会导致训练难度很大[65],在对文献的检索时发现将GAN 作为改进网络的脊椎分割文献很少,把GAN中的生成对抗机制应用到脊椎分割任务中还有很大的研究空间。表7总结了近年来GAN在脊椎图像分割上的文献摘要[62-63,66-68]。
表7 基于GAN的脊椎分割论文摘要Table 7 Spine segmentation based on GAN
深度学习作为一项新兴技术,其在脊椎图像分割领域的应用已经逐渐成熟,不断改进的新型网络架构提高了脊椎分割的准确度和鲁棒性。但目前仍有许多问题值得继续研究,深度学习要成为临床医生的有力工具仍存在许多改进的空间。
脊椎的临床病理情况复杂多样,脊椎图像之间存在明显差异性。这就需要有经验的专业医师对脊椎图像进行标记,但也增加了脊椎数据的获取难度[69]。此外,脊椎数据集经常存在类别不均衡的问题,体现为一些类别的样本分布稀疏,训练样本的数据分布与临床的常规脊椎数据分布差别很大,进而导致模型在学习这类数据时,由包含较多样本的类别主导了模型的收敛,影响网络的泛化性。
一些方法可以在一定程度上缓解这些问题,一种是通过迁移学习技术,将网络在大型数据集中学习到的权重转移到当前的任务中,减少对训练数据的需求[70]。另一种是数据增强技术,如图像的旋转、平移、缩放、裁剪等方式,或GAN图像生成技术,通过这类合成图像的方法,来满足数据多样性的需求,实现对数据集的扩充。
脊椎结构复杂,脊椎图像中不同类别之间的特征相似,且不同位置的椎骨形状大小各异,因此在提取脊椎图像特征时,类内差异通常会大于类间差异。并且脊椎图像由于图像噪声、病理变化等原因,容易存在边缘模糊、对比度不明显等问题,这对分割小而复杂的器官,如椎管和椎间孔的分割产生了很大的挑战。
此外,通过对大量网络改进工作的研究发现,大部分研究者在对脊椎图像处理时只关注了脊椎的结构特征,即只分析了分割结果,没有将预测结果与医学信息相结合。只有少数研究者实现了对脊椎的同步分割和诊断,通过神经网络直接生成放射科医生级别的分割结果和报告,这对脊椎的病理分析有很大帮助,进一步扩大了图像分析的功能范围。
深度神经网络通过复杂的层与层之间的交互获得最后的预测,研究者只能通过结果看到网络的预测准确与否,但是无法理解网络到底学到了什么样的特征,又是怎样学到的这些特征[71],这个过程类似于“黑匣子”[72]。深度学习的可解释性还需要研究人员和临床医生的共同努力,也需要患者的信任和支持。
本文主要从三个方向对深度学习在脊椎分割领域进行综述。首先,对深度学习的网络框架进行了介绍。其次,全面概述了脊椎分割中采用的深度学习方法,回顾了深度学习在脊椎分割方向的最新进展。最后,总结了当前脊椎分割所面临挑战和前景,并提出了相应的解决方案。
目前深度学习方面的改进创新大多属于开源状态,计算资源也不断改善,数据隐私等道德方面以及与预测风险相关的问责机制也正在受到关注,基于深度学习的脊椎图像分割已经成为研究趋势。因实际可用的脊椎图像数据较少,未来深度学习在脊椎图像分割的研究方向可以考虑结合半监督学习的方式从样本量比较少的脊椎图像中获取特征信息。其次,在计算成本过大的情况下,通过对深度学习模型进行轻量化设计,提高对三维脊椎图像的分割速度也是未来的发展方向之一。