技术领域:
本发明属于医学图像分割技术领域,涉及一种基于深度神经网络的x光片脊椎自动分割及识别方法。
背景技术:
:
脊柱是人体是一个重要组成部分,其解剖结构复杂,主要包括椎体、椎间盘及脊髓三个重要部分,是众多脊柱疾病的结构基础,如青少年特发性脊柱侧凸、腰椎退变性脊柱侧凸、腰椎间盘突出症、腰椎管狭窄症、骨质疏松、骨质增生、脊柱结核、脊柱肿瘤等。脊柱疾病已成为影响公共健康的几大顽疾之一,给社会带来巨大的经济负担。在传统脊柱疾病诊断中,需要对患者症状及影像学检测综合考虑做出诊断,其中针对不同疾病,需结合不同的影像报告,如计算机断层扫描ct图,磁共振成像mr图,及x光穿透照射图片,由于便捷性及成像特点,x光片被广泛用于脊柱疾病,特别是脊柱畸形疾病的诊断中。
目前脊柱x光片主要包含24个椎体(颈椎1-7、胸椎1-12、腰椎1-5)、骶骨和髂骨部分,各部分医学参数仍然是手动测量并推导计算完成,然而手工测量存在以下问题:1)脊柱x光片诊断涉及大量医学参数测量及推导计算,过程复杂,阅片时间长;2)x光片相对ct及mr图而言,成像清晰度差,脊椎边缘易模糊,且存在较多的干扰成分,如肋骨及器官软组织等,手工测量存在难以避免的误差;3)专业性强,学习困难且周期长,能够掌握规范测量及诊断技术的脊柱外科大夫非常少,而脊柱畸形疾病通常发病广散,很难给予正确诊断指导,延误病情;4)重复性差,症状各异,手动测量及计算等重复性劳动量大,常因遗忘或疏忽造成测量失误,影响后续治疗。
随着人工智能(artificialintelligence,ai)技术特别是深度学习的发展,ai辅助脊柱x光片诊断得到越来越多的关注,只需把脊柱x光影像输入计算机,由计算机自动定位脊柱区域,测量并计算出所需的医学参数,进而完成智能诊断,其中自动精准定位分割脊椎是ai辅助诊断的首要核心步骤,只有实现了每个椎体的精准分割,才可在此基础上利用医学影像测量准则,测量出所需的医学指标,如cobb角、颈7铅垂线、骶骨中垂线、顶椎偏距、骶骨倾斜、冠状面平衡、躯干倾斜度等。目前针对脊柱x光片的椎体全自动精准分割技术鲜有相关报道。
技术实现要素:
:
本发明的目的在于克服现有技术存在的缺点,设计提供一种基于深度神经网络的x光片脊椎自动分割及标识方法,采用由粗到精的分割策略,构建轻型神经网络模型快速定位完整脊柱区域,在此基础上对椎体部分进行样本切割及模型重训练,并采用自适应连接核对椎体分割结果进行拼接优化,最终精准标识出18个独立且保持完整边缘的椎体(颈椎7至腰椎5),为后续医学参数自动测量奠定基础。
为了实现上述目标,本发明所述基于深度神经网络的x光片脊椎自动分割及标识方法包括脊柱分割、柱体提取、椎体分割和椎体标识四个过程,具体步骤如下:
s1脊柱分割:
s101、获取脊柱x光片数据集(spinexdataset),对数据集图片进行标注,得到脊柱区域的分割掩模图,此掩模包含18个椎体、骶骨及髂骨部分,其中为便捷准确标注,椎体和骶骨标注为一个连通区域,双侧髂骨标记为两个连通区域;
s102、综合考虑脊柱语义特性及边缘特征,构建深度神经网络(semanticandedgeawaredeepneuralnetwork,sednet),构建的深度神经网络采用编码-解码(encoder-decoder)架构,编码器在给定输入图像后,通过神经网络学习得到输入图像的特征图谱;解码器则根据得到的特征图谱,逐步实现每个像素的类别标注,即实现语义分割;
s103、基于脊柱x光片数据集(spinexdataset),训练s102中构建的深度神经网络(sednet),得到专用于脊柱粗分割的神经网络,命名为sednet-s;
s2柱体提取:通过sednet-s得到脊柱整体分割结果,然后提取出柱体及骶骨连通部分,对此部分进行边缘及中心线检测,利用边缘变化,去除骶骨区域,且采用最小外接矩形截取椎体区域;
s3椎体分割:
s301、对s1中所有脊柱x光片进行处理,通过s2分割出柱体部分,采用基于中心线的无重叠椎体切割方法,对椎体部分进行无重叠的切割,得到椎体块(vertebrapatch)图像集(vpdataset),并对此图像集进行标注,画出图像中的椎体边缘,得到所有椎体的分割掩模图;
s302、基于椎体块图像集(vpdataset)及所有椎体的分割掩模图,重新训练sednet,得到专用于椎体细分割的深度神经网络,命名为sednet-v;
s303、对任意输入柱体图像,按照s301中相同切割尺寸,对图像进行无重叠切割得到对应椎体块,利用sednet-v对每一锥体块进行语义分割,得到对应分割掩模图;
s4椎体标识:对s303得到的所有椎体掩模图,利用图像形态学操作及凹凸检测进行优化处理,对优化后的每个掩模进行拼接操作,得到18个独立且具有完整边缘的椎体,此18个椎体从上到下依次对应颈椎7到腰椎5,实现脊柱x光片中椎体的精准分割及识别。
本发明s102中所述编码器采用多尺度卷积提取特征及池化的方式,用于提取全面多尺度的特征图谱,设置5次连续卷积操作(conv),卷积特征图谱通道数分别设置为32、64、128、256、512,卷积核大小均为3×3,卷积结果均通过lrelu激活函数进行非线性变换后,采用2*2最大池化策略(maxpooling)对特征图谱进行聚合,提高模型鲁棒性。
本发明s102中所述解码器对特征图谱逐层上采样(4×4up-sampling)扩大图像尺寸,提取图像语义分割特征,共进行4层操作,图像通道数分别设置为256、128、64、32,同时采用跳跃连接(skipconnection)的方式获取编码器端的各尺度特征图谱,并采用边缘保持的特征融合机制(boundaryawarefeaturefusionmechanism,bfm),对上采样信号及跳跃信号进行多层加权融合,对融合结果进行上采样传送到下一尺度处理,最终得到和输入图像大小相同的分割掩模;同时,采用3个额外连接(extraconnection),即up×8,up×4,up×2,对编码器的三个不同尺度的语义特征采用较大卷积核(16×16、8×8、4×4)进行扩充,丰富各尺度图像边缘信息,得到三个额外分割掩模;最后对得到的四个分割掩模进行叠加求平均处理,得到最终的脊柱语义分割结果。
本发明s2中所述边缘及中心点检测的过程为:针对脊柱整体分割结果(脊柱区域值为1,否则为0),采用5×1双滑动窗口(slidingwindow,sw)检测脊柱边缘,从上到下对每一个纵坐标值进行遍历,左侧窗口自左向右进行滑动检测,右侧窗口在相同水平线上自右向左滑动检测,如果窗口像素值和为3,则判断当前像素点为边缘点,左右边缘点的中心点的连线即为脊柱中心线,左侧及右侧边缘点的突变处即为椎体与骶骨的连接区域,连接突变处,移除骶骨区域,且采用最小外接矩形截取椎体区域。
本发明s301所述基于中心线的无重叠椎体切割方法具体为:利用s2中边缘点间的最大距离估计椎体最大宽度wmax,切割窗口宽度ws设置为4的倍数,长度hs为宽度的一半,设置如下:
ws=λ*wmax-mod(λ*wmax,4)
此处λ为比例系数,为1.5,mod为取模运算符,从椎体区域最小外接矩形的上方开始,沿中心线无重叠移动切割窗口,完成椎体块切割。
本发明s4中利用图像形态学操作及凹凸检测进行优化处理的具体过程为:先采用图像形态学开运算对每个椎体掩模进行边缘平滑处理,再对椎体掩模运用凹凸检测,对具有较大凹陷的椎体(发生部分黏连的椎体)进行分割,凹凸检测首先检测每个连通区域的凸包(convexityhull),再检测所有缺陷包(convexitydefects),统计每个缺陷包距离凸包的最远点(farpoint)及其最远距离,如果此最远距离大于连通区域最小外接矩形宽度的
本发明与现有技术相比,具有以下优点:
1)针对脊柱x光片,提出了一种切实可行的脊椎自动分割及标识方法,可实现18个椎体(颈椎7至腰椎5)、骶骨及髂骨的精准语义分割及标识,无需任何人机交互操作,实现了真正意义上的脊椎自动分割;
2)计算复杂度低,实时性高,采用先粗后细的分割策略,利用构建的深度神经网络可以快速定位脊柱区域,再实现后续椎体精细分割;
3)分割精度高,构建的神经网络兼顾脊椎语义与边缘特性,在此基础上使用图像形态学操作优化处理,使得分割出的椎体独立且能够保持完整边缘,为后续脊柱x光片医学参数的智能测量奠定基础。
附图说明:
图1为本发明所述基于深度神经网络的x光片脊椎自动分割及标识的工作原理示意图。
图2为为本发明构建的深度神经网络sednet结构图。
图3为本发明所述边缘加强的特征融合机制bfm结构图。
图4为本发明实施例中脊柱边缘、中心线检测及骶骨切除后柱体区域图。
图5为本发明实施例基于中心线的椎体切割示例图。
图6为本发明实施例部分黏连椎体凸凹检测及分割结果图。
图7为本发明实施例部分脊椎体分割结果示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
本实施例所述的基于深度神经网络的脊椎全自动分割及识别过程如图1所示,包含4个过程:1)脊柱分割;2)柱体提取;3)椎体分割;4)椎体识别,具体包括以下步骤:
s1:脊柱分割:
s101、获取脊柱x光片数据集(spinexdataset),共包含60张脊柱x光片,每幅图片中脊柱弯曲姿态及清晰度各异,对数据集图片进行标注,得到脊柱区域的分割掩模图,如图1中脊柱分割模块中所示,此掩模包含柱体、骶骨及髂骨部分,其中为便捷准确标注,柱体和骶骨标注为一个连通区域,双侧髂骨标记为两个连通区域;
s102、综合考虑脊柱语义特性及边缘特征,构建深度神经网络(semanticandedgeawaredeepneuralnetwork,sednet),此网络采用编码-解码(encoder-decoder)架构,整体架构如图2所示。编码器在给定输入x光影像后,通过神经网络学习得到输入图像的特征图谱;而解码器则根据得到的特征图谱,逐步实现每个像素的类别标注,也就是分割,其中编码器采用多尺度卷积提取特征方式,设置5层连续卷积操作(conv),卷积模板大小均为3×3,卷积步长为1,卷积通道数分别为32,64,128,256,512,采用lrelu神经元激活函数对卷积特征进行非线性变换,深度挖掘全面多尺度的图像特征,在每层卷积操作后,采用2×2最大池化(maxpooling)对特征进行压缩映射,提高模型鲁棒性,减少过拟合;
解码器主通道对5层卷积后得到的特征图谱进行四次上采样(up-sampling)扩大图像尺寸,上采样信号逐步提取图像的语义信息,最终得到和输入图像大小相同的分割掩模,同时,解码器为利用更多的原始图像信息,采用跳跃连接的方式(skipconnection)获取解码器端的对应尺度特征图谱(跳跃信号),与上采样信号进行融合,跳跃信号通常保留更多的图像位置信息,而上采样信号则含有更多的语义信息,在sednet解码端采用边缘保持的特征融合机制(boundaryawarefeaturefusionmechanism,bfm),对上采样信号及尺度跳跃信号进行多层加权融合,bfm结构如图3所示,首先对上采样信号u′及跳跃信号p′进行卷积及非线性变换(1×1卷积 lrelu),得到变换后信号u及p,大小均为w×h×n,其中w×h为图像尺寸,n为信号通道数。对u及p进行通道间相减,再求通道全局平均,得到上采样信息及跳跃信号的残差信息x,x计算方式如下:
其中c表示第c个通道,c=1,…,n。,对x采用bottleneck两层全连接网络结构进行信号转换,得到信号差异的权重分配向量s,s计算方式如下:
其中,w1,w2分别为两个全连接层的权重,δ为lrelu激活函数,σ为sigmod激活函数;然后把s与上采样信号u相乘,再进行一次卷积conv及lrelu变换后,得到边缘增强的位置信息
其中v1代表3×3卷积操作中的连接权重,δ为lrelu激活函数;再把
其中,concat()为通道间聚合操作,v2代表此卷积操作中的连接权重,c=1,…,2n。
同时,解码器端采用3个额外连接(extraconnection)对编码器的三个不同尺度的特征图谱采用较大卷积核进行扩充,卷积核分别为16×16,8×8,4×4,步长分别为:8,4,2,得到3个不同尺度的分割掩模,此3个分割掩模与上采样通道的分割掩模进行平均处理,得到最终的脊柱分割掩模图;
s103、基于spinexdataset,训练s102构建的sednet,得到专用于脊柱粗分割的神经网络,命名为sednet-s,其中,训练使用nvidiageforcetrx2080显卡,学习率为0.001,共迭代200轮,训练采用的损失函数为交叉熵损失函数:
其中,n为每个特征图谱的通道数,k为特征图谱的个数,
s2:柱体提取:通过sednet-s得到脊柱整体分割结果,提取出椎体及骶骨连通部分,对此部分进行边缘及中心线检测,去除骶骨区域,如图4所示,针对整体脊柱分割掩模(脊柱区域值为1,其余为0),首先采用5×1双滑动窗口(slidingwindow,sw)检测脊柱边缘,从上到下对每一个纵坐标值进行遍历,左侧窗口自左向右进行滑动检测,右侧窗口在相同水平线上自右向左滑动检测,如果窗口像素值和为3,则判断当前像素点为边缘点,左右边缘点的中心点的连线即为脊柱中心线,左侧及右侧边缘点的突变处即为椎体与骶骨的连接区域,连接突变处,移除骶骨区域,且采用最小外接矩形截取椎体区域。
s3:椎体分割:
s301、采用基于中心线的无重叠椎体切割方法,利用s2中边缘点间的最大距离估计椎体最大宽度wmax,为方便后续处理,切割窗口宽度ws设置为4的倍数,长度hs为宽度的一半,设置如下:
ws=λ*wmax-mod(λ*wmax,4)
此处λ为比例系数,设置为1.5,mod为取模运算符,从椎体区域最小外接矩形的上方开始,沿中心线无重叠移动切割窗口,完成椎体块切割,结果如图5所示;
s302、对s101中所有脊柱x光片进行处理,通过s2、s301分割出所有椎体图像,得到椎体块(vertebrapatch)图像集(vpdataset),此vpdataset共包含360张椎体块,对此图像集进行人工标注,画出图像中的椎体边缘,得到所有椎体的分割掩模图,椎体块及其掩模图实例如图1椎体分割模块中所示;
s303、基于vpdataset及所有椎体的分割掩模图,重新训练sednet,训练设置同s103,得到专用于椎体细分割的深度神经网络,命名为sednet-v;
s304:对任意输入x光脊柱影像,利用脊柱分割网络sednet-s得到脊柱定位,再按照s4、s5中椎体切割方法,对图像进行无重叠切割得到对应椎体块。利用椎体分割网络sednet-v对每一锥体块进行语义分割,得到对应椎体分割掩模图;
s4:椎体识别:对s304得到的所有椎体掩模进行优化操作,首先采用图像形态学开运算对每个椎体掩模进行边缘平滑处理,再对椎体掩模运用凹凸检测,对具有较大凹陷的椎体(发生部分黏连的椎体)进行分割,如图6所示,此处采用的图像形态学操作为开运算,根据连通区域的最小外接矩形的长宽,设置自适应的连接内核,用于断开不同连通区域间的细小连接;如图6所示,凹凸检测首先检测每个连通区域的凸包(convexityhull),再检测所有缺陷包(convexitydefects),统计每个缺陷包距离凸包的最远点(farpoint)及其最远距离。如果此最远距离大于连通区域最小外接矩形宽度的
1.一种x光片脊椎自动分割及标识方法,其特征在于,包括脊柱分割、柱体提取、椎体分割和椎体标识四个过程,具体步骤如下:
s1脊柱分割:
s101、获取脊柱x光片数据集,对数据集图片进行标注,得到脊柱区域的分割掩模图,此掩模包含18个椎体、骶骨及髂骨部分,其中为便捷准确标注,椎体和骶骨标注为一个连通区域,双侧髂骨标记为两个连通区域;
s102、综合考虑脊柱语义特性及边缘特征,构建深度神经网络,构建的深度神经网络采用编码-解码架构,编码器在给定输入图像后,通过神经网络学习得到输入图像的特征图谱;解码器则根据得到的特征图谱,逐步实现每个像素的类别标注,即实现语义分割;
s103、基于脊柱x光片数据集,训练s102中构建的深度神经网络,得到专用于脊柱粗分割的神经网络,命名为sednet-s;
s2柱体提取:通过sednet-s得到脊柱整体分割结果,然后提取出柱体及骶骨连通部分,对此部分进行边缘及中心线检测,利用边缘变化,去除骶骨区域,且采用最小外接矩形截取椎体区域;
s3椎体分割:
s301、对s1中所有脊柱x光片进行处理,通过s2分割出柱体部分,采用基于中心线的无重叠椎体切割方法,对椎体部分进行无重叠的切割,得到椎体块图像集,并对此图像集进行标注,画出图像中的椎体边缘,得到所有椎体的分割掩模图;
s302、基于椎体块图像集及所有椎体的分割掩模图,重新训练深度神经网络,得到专用于椎体细分割的深度神经网络,命名为sednet-v;
s303、对任意输入柱体图像,按照s301中相同切割尺寸,对图像进行无重叠切割得到对应椎体块,利用sednet-v对每一锥体块进行语义分割,得到对应分割掩模图;
s4椎体标识:对s303得到的所有椎体掩模图,利用图像形态学操作及凹凸检测进行优化处理,对优化后的每个掩模进行拼接操作,得到18个独立且具有完整边缘的椎体,此18个椎体从上到下依次对应颈椎7到腰椎5,实现脊柱x光片中椎体的精准分割及识别。
2.根据权利要求1所述x光片脊椎自动分割及标识方法,其特征在于,s102中所述编码器采用多尺度卷积提取特征及池化的方式,用于提取全面多尺度的特征图谱,设置5次连续卷积操作,卷积特征图谱通道数分别设置为32、64、128、256、512,卷积核大小均为3×3,卷积结果均通过lrelu激活函数进行非线性变换后,采用2*2最大池化策略对特征图谱进行聚合,提高模型鲁棒性。
3.根据权利要求1所述x光片脊椎自动分割及标识方法,其特征在于,s102中所述解码器对特征图谱逐层上采样扩大图像尺寸,提取图像语义分割特征,共进行4层操作,图像通道数分别设置为256、128、64、32,同时采用跳跃连接的方式获取编码器端的各尺度特征图谱,并采用边缘保持的特征融合机制,对上采样信号及跳跃信号进行多层加权融合,对融合结果进行上采样传送到下一尺度处理,最终得到和输入图像大小相同的分割掩模;同时,采用3个额外连接,即up×8,up×4,up×2,对编码器的三个不同尺度的语义特征采用较大卷积核16×16、8×8、4×4进行扩充,丰富各尺度图像边缘信息,得到三个额外分割掩模;最后对得到的四个分割掩模进行叠加求平均处理,得到最终的脊柱语义分割结果。
4.根据权利要求1所述x光片脊椎自动分割及标识方法,其特征在于,s2中所述边缘及中心点检测的过程为:针对脊柱整体分割结果,其中脊柱区域值为1,否则为0,采用5×1双滑动窗口检测脊柱边缘,从上到下对每一个纵坐标值进行遍历,左侧窗口自左向右进行滑动检测,右侧窗口在相同水平线上自右向左滑动检测,如果窗口像素值和为3,则判断当前像素点为边缘点,左右边缘点的中心点的连线即为脊柱中心线,左侧及右侧边缘点的突变处即为椎体与骶骨的连接区域,连接突变处,移除骶骨区域,且采用最小外接矩形截取椎体区域。
5.根据权利要求4所述x光片脊椎自动分割及标识方法,其特征在于,s301所述基于中心线的无重叠椎体切割方法具体为:利用s2中边缘点间的最大距离估计椎体最大宽度wmax,切割窗口宽度ws设置为4的倍数,长度hs为宽度的一半,设置如下:
ws=λ*wmax-mod(λ*wmax,4)
此处λ为比例系数,为1.5,mod为取模运算符,从椎体区域最小外接矩形的上方开始,沿中心线无重叠移动切割窗口,完成椎体块切割。
6.根据权利要求1所述x光片脊椎自动分割及标识方法,其特征在于,s4中利用图像形态学操作及凹凸检测进行优化处理的具体过程为:先采用图像形态学开运算对每个椎体掩模进行边缘平滑处理,再对椎体掩模运用凹凸检测,对具有较大凹陷的椎体(发生部分黏连的椎体)进行分割,凹凸检测首先检测每个连通区域的凸包,再检测所有缺陷包、,统计每个缺陷包距离凸包的最远点及其最远距离,如果此最远距离大于连通区域最小外接矩形宽度的