脊椎韧带骨化图像识别方法及系统
未命名
07-23
阅读:110
评论:0
1.本发明涉及图像处理技术领域,具体为脊椎韧带骨化图像识别方法及系统。
背景技术:
2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.人体脊椎体中有很长的韧带,用以加强固定每节脊椎的稳定性,韧带会因为过度疲劳或随着年龄而退化,发生骨化,从而压迫脊髓和神经。
4.韧带骨化通常需要医学影像并结合医学判断标准,现有技术虽然可以通过机器学习或是图像检测等方式,代替人工识别出图像中的脊椎韧带是否发生骨化形态,但由于人体脊椎的构造复杂,加之医学影像受环境、拍照角度以及个体差异等客观因素的影响,导致算法中用于识别骨化的基准线容易穿过脊椎骨,造成误判,从而干扰最终的识别结果,导致准确率不高。
技术实现要素:
5.为了解决上述背景技术中存在的技术问题,本发明提供脊椎韧带骨化图像识别方法及系统,通过关键点定位大致确定脊椎中韧带的区域,截取感兴趣区域后,通过二值化处理获取图像中的骨骼和骨化部分,利用基准线两侧像素值的分布情况剔除图像自身带来的误判影响,能够减少网络输入中的无关信息,更加专注于提取有关韧带骨化的特征,能够准确的识别出图像数据中存在韧带骨化形态的图像,从而使识别的准确率提升。
6.为了实现上述目的,本发明采用如下技术方案:
7.本发明的第一个方面提供脊椎韧带骨化图像识别方法,包括以下步骤:
8.获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;
9.根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;
10.基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。
11.获取脊椎设定区域的ct图像,基于训练完毕的关键点定位网络定位脊椎设定区域中的关键点,包括:
12.预先标注脊椎设定区域的ct图像中的关键骨点;
13.标注结果转换格式,输出带有标注结果的热力图,以热力图作为标签训练关键点定位网络;
14.以脊椎设定区域的ct图像作为输入,经关键点定位网络输出关键点,输出的所有关键点共同占有一个网络的维度,得到所需的关键点。
15.根据定位的关键点确定韧带所在区域中基准线的位置,包括:
16.在网络的输出上查找至少四个最大值区域,作为对应的四个关键点,并将得到的关键点按垂直轴坐标的大小排序,具体为:按y坐标值的大小排序,选取y值较小的两个点,两点中x值较小的点为1号点,较大的为2号点;再选取y值较大的剩余两点,两点中x值较小的为3号点,x值较大的为4号点;其中,y值为垂直轴坐标值,x值为水平轴坐标值。
17.取1号点和2号点作二者的中点,3号点和4号点的中点,选取两个中点作连线,即为基准线。
18.基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域;包括:
19.若基准线上存在白色像素区域,则疑似骨化,即基准线可能穿过脊椎的骨骼部分也可能穿过韧带的骨化区域;若不存在,则为不含有疑似骨化的图像;
20.疑似骨化时,判断基准线上的白色像素区域段落内,白色像素左右两侧n格内的其余像素,是否为连续的白色像素;
21.若左侧的白色像素不连续而右侧连续,则基准线穿过的是骨骼部分而非骨化部分,需剔除;否则,基准线穿过的区域为韧带的骨化区域,输出该图像为含有韧带骨化形态图像的识别结果。
22.本发明的第二个方面提供实现上述方法所需的系统,包括:
23.关键点检测模块,被配置为:获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;
24.图像预处理模块,被配置为:根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;
25.骨化区域识别模块,被配置为:基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。
26.本发明的第三个方面提供一种计算机可读存储介质。
27.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的脊椎韧带骨化图像识别方法中的步骤。
28.本发明的第四个方面提供一种计算机设备。
29.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的脊椎韧带骨化图像识别方法中的步骤。
30.与现有技术相比,以上一个或多个技术方案存在以下有益效果:
31.利用脊椎设定区域的ct图像,通过关键点定位确定图像中韧带的大致区域,截取感兴趣区域后,通过二值化处理获取图像中的骨骼部分和骨化部分,利用基准线两侧像素值的分布情况剔除图像自身带来的误判影响,从而区分出基准线穿过的骨骼部分和骨化部分,能够减少网络输入中的无关信息,更加专注于提取有关韧带骨化的特征,能够准确的识别出图像数据中存在韧带骨化形态的图像,从而使识别的准确率提升。
附图说明
32.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
33.图1是本发明一个或多个实施例提供的脊椎韧带骨化图像识别流程示意图;
34.图2是本发明一个或多个实施例提供的在颈椎ct图像中标注的关键点示意图;
35.图3是本发明一个或多个实施例提供的基于标注结果的高斯热图;
36.图4是本发明一个或多个实施例提供的关键点检测后的结果示意图;
37.图5是本发明一个或多个实施例提供的根据关键点确定的基准线(k线)示意图;
38.图6是本发明一个或多个实施例提供的roi区域二值化后的示意图;
39.图7是本发明一个或多个实施例提供的颈椎骨穿过基准线(k线)的示意图;
40.图8和图9均是本发明一个或多个实施例提供的判断骨化结果的示意图。
具体实施方式
41.下面结合附图与实施例对本发明作进一步说明。
42.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
43.roi区域,指感兴趣区域(region of interest)。机器视觉、图像处理中,从被处理的图像中以方框、圆、椭圆以及不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域。
44.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
45.成人的脊椎中具有7块颈椎(c1-c7),12块胸椎(t1-t12),5块腰椎(l1-l5),1块骶骨和1块尾骨,它们借韧带、关节及椎间盘连接而成。韧带会因为过度疲劳或随着年龄而退化,发生骨化,从而压迫脊髓和神经,现有技术识别韧带骨化形态的算法不理想,无法区分出基准线穿过的是韧带的骨化区域还是脊椎某部分的骨骼区域。
46.以下实施例给出脊椎韧带骨化图像识别方法及系统,以颈椎为例,输入的颈椎ct图像,使用神经网络模型定位颈椎骨c2、c7关键点并取c2、c7中点的连线为k线(基准线),将图像二值化处理后截取roi区域,得到颈椎和韧带中的骨化部分,剔除带有穿过k线的颈椎骨图像以避免误判,再判断骨化部分是否达到k线,若达到则为阴性(韧带中存在骨化部分),否则则为阳性(韧带中不存在骨化部分)。
47.实施例一:
48.如图1所示脊椎韧带骨化图像识别方法,包括以下步骤:
49.获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;
50.根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;
51.基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。
52.具体的:
53.第一部分:基于unet网络进行关键点定位,关键点定位是为了在输入的颈椎图像中找到颈椎韧带的大致位置,从而确定基准线(k线)的位置;本实施例通过训练完毕的分割网络(unet网络),配合预先标注过的图像实现。
54.预先对颈椎ct图像中的c2、c7关键骨点进行标注,共4个点位,如图2所示。
55.标注后,利用python脚本对标注的标签进行预处理,使标签转换为网络所能使用的格式。网络所需要的标签为热力图heatmap格式:本实施例中为一张1
×
512
×
512的图像。在热力图中,若坐标点位为关键点,则输出为1,否则输出0。
56.在定位任务中,目标点很难被准确的定位到某一个像素位置,也就是很难被准确的定位,如果直接将像素点周围的点定义为负样本,可能会对网络的训练带来干扰。而为了解决这一问题,本实施例对标签使用高斯热图的方法。假设标注的关键点坐标为p=(x0,y0),那么高斯热图上某一点(x,y)的值为:
[0057][0058]
其中,σ2为高斯分布的方差。使用高斯热图这样可以使网络更好的收敛。本实施例中高斯热图如图3所示。
[0059]
选取关键点定位网络。关键点定位网络使用在医疗行业表现较好的unet网络,并对unet网络的输出层进行修改。网络的输入大小保持原网络的n
×3×
512
×
512的大小,输出更改为为n
×1×
512
×
512,其中n为输入图像的数量。网络的输出的维度为1,相比于一个关键点占一维度的方法,本实施例采用了所有关键点共同占有一个维度的方法,经试验可以使模型更好的收敛,更准确的对关键点进行定位。网络模型的输出如图4所示,其中,白色点形成的区域为网络模型输出结果,黑色的点为标注结果。标注结果所在的区域围绕在输出结果周围。实际应用时,模型输出结果和标注结果均为彩色,本实施例为了解释说明使用黑白色为例。
[0060]
第二部分:使用图像处理技术处理关键点并输出识别结果。
[0061]
一、关键点查找。在unet网络的输出上查找4个最大值区域,得到4个关键点。具体算法公式如下:
[0062]
1设输出结果为heatmap(x,y)。
[0063]
2在输出的热力图上寻找最大值点p
max
=(x
max
,y
max
)。
[0064]
3定义输出结果:p(x,y)=min(heatmap);
[0065]
其中,x∈[x
max-σ,x
max
+σ],y∈[y
max-σ,y
max
+σ]。
[0066]
4回到第二步,依次循环4次,找到4个关键点。
[0067]
二、关键点排序。找到的4个颈椎骨关键点需要进一步进行排序工作。设从c2颈椎骨的左点开始,至c7颈椎骨的右点,标号依次为1至4。将四点按y坐标值的大小排序。先选取y值较小的两个点,两点中x值较小的点为1号点,较大的为2号点;再选取y值较大的剩余两点,两点中x值较小的为3号点,x值较大的为4号点。
[0068]
这里的左侧指人体前侧,右侧指人体背侧,本实施例选用的颈椎ct图像为人体颈椎部分的侧视视角下的断面。
[0069]
三、得到k线(基准线)。取1号点p1(x1,y1)和2号点p2(x2,y2),作二者的中点p
mid1
(x
mid1
,y
mid1
),公式如下:
[0070][0071]
同理,可以得到3号点和4号点的中点p
mid2
(x
mid2
,y
mid2
)。选取两个中点作连线,即为k线。如图5所示。
[0072]
四、图像二值化。需要判断颈椎骨化程度是否超过k线。先将四个关键点向四周延伸20个像素点,将此区域作为roi区域从原图中截取。再将roi区域进行otsu动态阈值二值化算法,得到roi区域二值化后的图像。如图6所示。
[0073]
其中,在二值化处理后再截取roi区域,是为了将机器学习中最感兴趣的颈椎韧带区域送入分类网络,从而更加专注于提取有关韧带骨化的特征,从而减少网络输入中的无关信息。
[0074]
在二值化的roi图像上,骨骼、骨化部分为白色,像素值为255,其余部分为黑色,像素值为0。判断k线所在的像素点是否存在像素值为255的点(白色),即可判断韧带是否含有骨化区域。
[0075]
五、排除骨骼误差。在某些图像中,由于受到环境、拍摄角度等因素影响,会出现k线穿过颈椎骨的情况,造成误判干扰算法结果。如图7所示。
[0076]
针对这一情况,需要剔除这部分被k线穿过的颈椎骨对最后结果的影响,再进行骨化判断。
[0077]
通过观察对比骨化部分和造成误判的颈椎骨图像,总结相关图像特征后发现,造成误判的颈椎骨右侧图像往往是连续的白色,左侧会停止延续为黑色。而骨化部分右侧往往是不连续的白色,即向右延伸一段距离,会遇到黑色的区域,左侧则为大面积白色。
[0078]
因此,根据以上图像特征及规律,本实施例通过检测基准线(k线)两侧像素的分布情况,若检测到k线上有白色像素区域,即疑似骨化,则判断该区域段落内像素左右两端n格内,是否为连续白色。如果左侧不连续而右侧连续,那么就是则认为此处为颈椎骨,为误判,要筛除掉这部分区域。其余情况,就认为找到了骨化区域。
[0079]
具体如下:
[0080]
1、设计两个数组,一个数组pointslist用于存放k线上点的坐标,另一个二维数组pointsvaluelist用于存放k线上及其左右n格的像素值。其中,n为参数,本实施例中,n取10。
[0081]
2、将pointsvaluelist数组进行运算,新建数组blocks,大小为2n+1,用于记录k线及其左右n格上,沿k线方向像素数值为255的点的区间。每条线blocks[i]上有m个小区间,用于记录该区间白色区域的起始点y
begin
和终止点y
end
。
[0082]
查询blocks数组。先查询blocks[k]即k线上的block是否为空,若为空,则说明不存在值为255的点的区间(不存在白色区域),k线没有穿过颈椎骨也没有穿过韧带的骨化区域,即图像正确。
[0083]
如果不为空,说明存在像素值为255的点的区间,k线可能穿过颈椎骨也可能穿过韧带的骨化区域,即存在疑似骨化区域,则需要进行进一步的误判查询。向左延伸,循环查询blocks[k-1]的mk-1个区间中,是否存在一个区间和上一个格blocks[k]的mk个区间中的任意一个区间接壤。
[0084]
这里的向左延伸,指在像素级别上,对这个存在疑似骨化区域的数组blocks[k],
依次查询数组blocks[k-1]、blocks[k-2]....blocks[k-n],即向左遍历。同理,向右延伸,则为blocks[k+1]、blocks[k+2]....blocks[k+n]。
[0085]
3、若存在,则继续循环,继续判断k-2和k-1区间是否存在接壤。直至k-n。若左侧n个区间都连续接壤,则说明k线左侧为连续,记flag
left
=1。若不存在,某两个相邻block不接壤,则说明k线左侧不连续,记flag
left
=0。
[0086]
4、按照同样的方法,判断k线的右侧是否连续接壤。若右侧连续接壤,则记flag
right
=1,否则记flag
right
=0。
[0087]
5、判断两个标志位,若flag
left
=0andflag
right
=1,即左不连续右连续,则认为此区域为颈椎骨区域,而非骨化区域,是误判,即,k线穿过了颈椎骨而没有穿过韧带的骨化区域。
[0088]
否则,则认为是骨化区域,并且韧带的骨化区域超过了k线。如图8和图9所示,图8中k线上被框出的区域是颈椎韧带的骨化区域,该区域的k线在实际应用中被标记为彩色(例如可以为红色),图9中k线上被框出的区域是颈椎骨区域,为需要剔除的误判图像,该区域的k线在实际应用中被标记为彩色(例如可以为蓝色)。
[0089]
实际应用时,k先穿过韧带骨化区域的部分和骨骼的部分分别用不同的颜色来区分,本实施例仅为解释说明以黑白两色为例。
[0090]
实施例二:
[0091]
实现上述方法的系统,包括:
[0092]
关键点检测模块,被配置为:获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;
[0093]
图像预处理模块,被配置为:根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;
[0094]
骨化区域识别模块,被配置为:基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。
[0095]
实施例三:
[0096]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的脊椎韧带骨化图像识别方法中的步骤。
[0097]
实施例四:
[0098]
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的脊椎韧带骨化图像识别方法中的步骤。
[0099]
以上实施例二至四中涉及的各步骤或模块与实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
[0100]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.脊椎韧带骨化图像识别方法,其特征在于,包括以下步骤:获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。2.如权利要求1所述的脊椎韧带骨化图像识别方法,其特征在于,获取脊椎设定区域的ct图像,基于训练完毕的关键点定位网络定位脊椎设定区域中的关键点,包括:预先标注脊椎设定区域的ct图像中的关键骨点;标注结果转换格式,输出带有标注结果的热力图,以热力图作为标签训练关键点定位网络;以脊椎设定区域的ct图像作为输入,经关键点定位网络输出关键点,输出的所有关键点共同占有一个网络的维度,得到所需的关键点。3.如权利要求1所述的脊椎韧带骨化图像识别方法,其特征在于,根据定位的关键点确定韧带所在区域中基准线的位置,包括:在网络的输出上查找至少四个最大值区域,作为对应的四个关键点,并将得到的关键点按垂直轴坐标的大小排序,根据排序结果确定基准线的位置。4.如权利要求3所述的脊椎韧带骨化图像识别方法,其特征在于,根据排序结果确定基准线的位置,包括:按y坐标值的大小排序,y值为垂直轴坐标值,x值为水平轴坐标值;选取y值较小的两个点,两点中x值较小的点为1号点,较大的为2号点;再选取y值较大的剩余两点,两点中x值较小的为3号点,x值较大的为4号点;确定1号点和2号点的中点,3号点和4号点的中点,选取两个中点作连线,即为基准线。5.如权利要求1所述的脊椎韧带骨化图像识别方法,其特征在于,基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域;包括:若基准线上存在白色像素区域,则疑似骨化,即基准线可能穿过脊椎的骨骼部分也可能穿过韧带的骨化区域;若不存在,则为不含有疑似骨化的图像。6.如权利要求1所述的脊椎韧带骨化图像识别方法,其特征在于,基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域;还包括:疑似骨化时,判断基准线上的白色像素区域段落内,白色像素左右两侧n格内的其余像素,是否为连续的白色像素;若左侧的白色像素不连续而右侧连续,则基准线穿过的是骨骼部分而非骨化部分,需剔除;否则,基准线穿过的区域为韧带的骨化区域。7.如权利要求6所述的脊椎韧带骨化图像识别方法,其特征在于,基准线穿过的区域为韧带的骨化区域时,输出该图像为含有韧带骨化形态图像的识别结果。8.脊椎韧带骨化图像识别系统,其特征在于,包括关键点检测模块,被配置为:获取脊椎设定区域的ct图像,定位脊椎设定区域中的关键
点,确定韧带所在的区域;图像预处理模块,被配置为:根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;骨化区域识别模块,被配置为:基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述权利要求1-7任一项所述的脊椎韧带骨化图像识别方法中的步骤。10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7任一项所述的脊椎韧带骨化图像识别方法中的步骤。
技术总结
本发明涉及脊椎韧带骨化图像识别方法及系统,包括以下步骤:获取脊椎设定区域的CT图像,定位脊椎设定区域中的关键点,确定韧带所在的区域;根据定位的关键点确定韧带所在区域中基准线的位置,并截取包含基准线的感兴趣区域,经预处理后得到二值化图像;基于得到的二值化图像,根据基准线及两侧的像素值分布情况,剔除基准线穿过脊椎骨骼部分的情况,识别图像中的韧带骨化区域。图像中的韧带骨化区域。图像中的韧带骨化区域。
技术研发人员:张伟 马端蔚 李晓磊 宋然 程吉禹 田天 冯世庆 周恒星
受保护的技术使用者:山东大学
技术研发日:2023.03.16
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
