发明内容
本发明的目的在于提供一种基于心脏冠脉血管中心线数据的心脏冠脉血管自动分段命名方法。
为实现上述目的,本发明采用以下技术方案:
心脏冠脉血管自动分段命名方法,包括:
S1、提取心脏冠脉3D图像的血管中心线,定义血管中心线中各点的三维坐标;
定义沿着人的两肩方向为X轴,人左手所在方向为X轴正方向;
定义沿着人的胸口方向,垂直于X轴为Y轴正方向;
定义沿着人体向下方向为Z轴正方向;
S2、基于血管中心线从心脏冠脉血管中识别左冠脉及右冠脉;
S21、从呈两棵树状结构的心脏冠脉血管中分别寻找最长的血管;
S22、从获得的两根最长的血管的起始点开始往其延伸方向寻找第M个像素点,将第M个像素点处的X坐标值较大的血管标记为左冠脉,将第M个像素点处的X坐标值较小的血管标记为右冠脉;M∈[30,80]。
进一步地,M=50。
进一步地,还包括步骤S3:从识别的右冠脉中识别RCA;
步骤S3具体执行以下步骤:
S31、在右冠脉中寻找在Y轴方向走向最大的血管,标记为RCA_possible;
S32、比较RCA_possible的终点的Y轴坐标和右冠脉起点的Y轴坐标,若RCA_possible的终点的Y轴坐标大于右冠脉起点的Y轴坐标,则将RCA_possible认定为RCA,否则进入步骤S33;
S33、在右冠脉血管中寻找在Z轴走向最大的血管,标记为RCA。
进一步地,所述步骤S3还包括识别R-PLB以及R-PDA的步骤,其具体执行以下步骤:
S34、确定左冠脉的起始点leftRoot和右冠脉的起始点rightRoot,计算他们的中点坐标midRoot[x,y,z];
S35、在所识别的RCA的底部平缓部分寻找所有在RCA的X轴正方向或者Y轴负方向的分叉,将这些血管按照在RCA上分叉点出现的顺序保存进PDA_PLB_possible_list,并进入步骤S36;若找不到任何一条符合条件的血管组成PDA_PLB_possible_list,则R-PDA和R-PLB不存在,步骤S3终止;
S36、计算PDA_PLB_possible_list中所有血管在XY平面上和midRoot点的距离,将距离最小的血管识别为R-PDA;
S37、在PDA_PLB_possible_list中排在R-PDA之后的血管中,寻找一根最长的血管,识别为R-PLB;若PDA_PLB_possible_list在R-PDA之后没有血管,则R-PLB不存在,步骤S3终止。
进一步地,还包括步骤S4:从识别的左冠脉中识别LM、LAD及LCX;
S41、定义LAD与LCX重叠的部分为LM,限定LM的总长度值的最大值为LMMax;
S42、采用循环策略,从左冠脉中识别LAD及LCX:
S421、定义最短分支血管长度值阈值区间[N1,N2];以阈值N1开始循环,删除左冠脉中长度小于N1的分支血管;则对于后续循环有N'=(N+n),式中,N'为当前阈值,N为上次循环阈值,n为循环增量,删除左冠脉中长度小于N'的分支血管;
S422、在每次循环中寻找可能的LAD与LCX组合,将整个循环结果中识别的组合可能记录为LCX_LAD_List;
可能的LCX为:在LM后的分支中寻找走向为Y轴正方向或者X轴负方向,且在Z轴上取得最大值的血管;可能的LAD为:在LM后的分支中寻找走向为Y轴负方向或者X轴正方向,且在Z轴上取得最大值的血管;
S423、访问LCX_LAD_List中的每一组LAD和LCX组合,获取每组LAD和LCX组合的len(LM)和abs(len(LAD)–len(LCX)),寻找其中abs(len(LAD)–len(LCX))值最小且满足len(LM)<LMMax的那组LAD与LCX组合作为识别结果;式中,len(LM)为LM血管的长度,abs(len(LAD)–len(LCX))为LAD和LCX长度差的绝对值;
S43:在步骤S42所识别的LCX上查找沿着Z轴向下且相对于LCX沿X轴负方向并且沿Z轴正方向延伸的血管,将寻找到的血管定义为新的LCX;若寻找不到符合条件的血管,保留步骤S42所识别的LCX结果。
进一步地,LMMax=120个像素点,N1=30个像素点,N1=80个像素点。
进一步地,还包括从识别的LCX中识别OM1、OM2及OM3的步骤S5,步骤S5具体执行以下步骤:
S51、识别LCX上的所有分支血管,组成OM1OM2List;
S52、定义距离比例DRxy=Dx/Dy,式中,Dx为LAD与LCX在XZ平面上投影在X轴方向上的平均距离,Dy为LAD与LCX在YZ平面上投影在Y轴方向上的平均距离;
S53、给定距离比例阈值DRC,进行OM1、OM2及OM3的识别:
当DRxy<DRC时,在OM1OM2List中按照各分支血管在LCX上的出现顺序寻找3根相对于LCX沿y轴负方向走向的分支血管,获得OM1、OM2及OM3的识别结果;
当DRxy>DRC时,在OM1OM2List中按照各分支血管在LCX上的出现顺序寻找3根相对于LCX沿x轴正方向走向的分支血管,获得OM1、OM2及OM3的识别结果。
进一步地,所述距离比例阈值DRc=0.13。
进一步地,还包括从识别的LAD中识别D1及D2的步骤S6,步骤S6具体执行以下步骤:
S61、按照在LAD上出现的顺序保存在LAD上所有分支血管进Dlist;
S62、在Dlist上依次找出三根相对LAD沿着Y轴正方向走向的血管,获得D1、D2及D3的识别结果。
进一步地,还包括从识别的LCX及LAD中识别RI的步骤S7;
S7:计算OM1或者D1距离LM的距离,若OM1距离LM的距离不超过6个点,则将步骤S53识别的OM1、OM2、OM3分别修改为RI、OM1及OM2;若D1距离LM的距离不超过6个点,则将步骤S62识别的D1、D2及D3分别修改为RI、D1及D2。
采用上述技术方案后,本发明与背景技术相比,具有如下优点:
本发明基于心脏冠脉血管的中心线数据,能够适应各类变异状况,可以准确的从几十到上百根血管中自动识别出需要的的十几根目标血管并准确命名,实现了心脏冠脉血管的自动分段命名。
实施例
如图1所示,心脏冠脉自动分段命名方法,其包括:
S1、提取心脏冠脉3D图像的血管中心线,定义血管中心线中各点的三维坐标;
S2、从心脏冠脉血管中识别左冠脉及右冠脉;
S3、从识别的右冠脉中识别RCA、R-PDA以及R-PLB;
S4、从识别的左冠脉中识别LM、LAD及LCX;
S5、从识别的LCX中识别OM1、OM2及OM3;
S6、从识别的LAD中识别D1、D2及D3;
S7、从识别的LAD及LCX中识别RI。
如图2所示,心脏冠脉3D图像的血管中心线通过如下方式生成:
S11、获取患者心脏冠脉血管的原始CT图像;
S12、分析所述原始CT图像,三维重构出心脏的冠脉3D图像;
S13、提取心脏冠脉3D图像的血管中心线,定义并保存血管中心线中各点的三维坐标。
三维坐标定义如下:定义沿着人的两肩方向为X轴,人左手所在方向为X轴正方向;定义沿着人的胸口方向,垂直于X轴为Y轴正方向;定义沿着人体向下方向为Z轴正方向。
如此,最终生成的血管中心线被保存在vtk格式的文件中,这些vtk文件可以保存心脏冠脉中每根血管从起点到终点每个点的三维坐标,因而,最终得到的中心线信息是每条血管的点的信息,这里的每个点就是对应的CT图象上的一个截面。后续步骤S2-S7实质上是根据血管中心线而进行的分段及命名。
在对步骤S2-S7进行论述之前,首先对人体心脏冠脉的大体概况进行介绍。如图3所示的是人体心脏冠脉的中心线示意图,图中,水平面为XY平面,竖直且平行于纸面的平面为XZ平面,竖直且垂直于纸面的面为YZ平面,从左往右是X轴正方向,从上往下是Z轴正方向,从里往外时Y轴正方向。图中RCA为右冠脉、R-PLB为右冠起源后侧支、R-PDA为右后降支、LM为左主干、D1为第一对角支、D2为第二对角支、LAD为左前降支、OM1为第一钝缘支、OM2为第二钝缘支、LCX为左回旋支。
可以看出,左右冠脉实际上是两颗树状结构,其中左冠脉所有血管的起点都是从左心房主动脉发出,右冠脉所有血管都从右心房主动脉发出。因此,对于这两颗冠脉树如何区分那一颗树是左冠脉那一颗是右冠脉是划分工作的第一步。由于左冠脉在心脏左侧,右冠脉在心脏右侧,理论上我们只需要比较两个root点的x轴大小就可以判断,可是由于某些变异情况,有些人的左右冠脉血管会发生交叉。因此步骤S2具体执行以下步骤来判断左冠脉和右冠脉:
S21、从呈两棵树状结构的心脏冠脉血管中分别寻找最长的血管,分别记为tree1Vessel及tree2Vessel;
S22、从tree1Vessel及tree2Vessel的起始点(root)开始往其延伸方向寻找第M个像素点,记录为tree1Point和tree2Point,比较tree1Point和tree2Point的X坐标值,将其X轴坐标值较大的血管标记为左冠脉,将其坐标值较小的血管标记为右冠脉,M∈[30,80]。由于任何冠脉的最长血管都不可能少于50个像素点,因此,本实施例中优选M=50。
区别完左右冠脉,既可以针对左右冠脉划分其内部的血管。对于右冠脉,所需识别的血管主要有RCA,R-PDA,R-PLB。其中RCA是一定存在的,而R-PDA和R-PLB则不一定存在。如图4所示的是一个心脏有冠脉RCA,R-PDA和R-PLB的示意图。
对于RCA,申请人通过分析大量冠脉血管中心线数据得出结论,从大概率上(90%)以上,RCA是右冠脉中沿着患者胸口正面延伸最远(Y轴方向取得最大值)的那根血管。但是由于存在一些变异,因此,不能单纯地依靠这一结论进行RCA的判断。
因此,步骤S3具体执行以下步骤:
S31、在右冠脉中寻找在Y轴方向走向最大的血管,标记为RCA_possible;
S32、比较RCA_possible的终点的Y轴坐标和右冠脉起点的Y轴坐标,若RCA_possible的终点的Y轴坐标大于右冠脉起点的Y轴坐标,则将RCA_possible认定为RCA,否则进入步骤S33;
S33、在右冠脉血管中寻找在Z轴走向最大的血管,标记为RCA。
RCA从外观上看很像一个反写的字母C,在RCA的开始部分,血管的走向通常是沿着X轴负方向平缓的下降(C字母的上端);然后开始迅速的接近垂直的沿着Z轴正方向快速下降(字母C的中段);当下降到心脏底部以后,又会沿着Y轴正方向平缓的前行(字母C的下端)。
在识别了RCA以后,下一步就是识别R-PLB和R-PDA,应当注意,这两根血管有可能不存在,因此,步骤S3还执行以下步骤:
S34、确定左冠脉的起始点leftRoot和右冠脉的起始点rightRoot,计算他们的中点坐标midRoot[x,y,z];
S35、在所识别的RCA底部平缓部分(具体为Z轴最大的部分,该部分Z轴坐标变化相对平缓)寻找所有在RCA的X轴正方向或者Y轴负方向的分叉,将这些血管按照在RCA上分叉点出现的顺序保存进PDA_PLB_possible_list,并进入步骤S36;若找不到任何一条符合条件的血管组成PDA_PLB_possible_list,则R-PDA和R-PLB不存在,步骤S3终止;
S36、计算PDA_PLB_possible_list中所有血管在XY平面上和midRoot点的距离,将距离最小的血管识别为R-PDA;
S37、在PDA_PLB_possible_list中排在R-PDA之后的血管中,寻找一根最长的血管,识别为R-PLB;若PDA_PLB_possible_list在R-PDA之后没有血管,则R-PLB不存在,步骤S3终止。
对于左冠脉,所需识别的血管有:LAD,LCX,RI,D1,D2,OM1,OM2。
首先,进行LM、LAD和LCX的识别。理论上,左冠脉所有血管从左心房出发然后分成两个血管,其中向Y轴正方向或则X轴负方向延伸的是LCX,向Y轴负方向或者X轴正方向延伸的是LAD。因此,LAD和LCX重叠的部分定义为LM,在从LM的终点之后分叉的血管中寻找LCX和LAD。
理想状态下,找到左冠脉所有血管重合的部分,就是LM;在LM之后分叉的血管中找一根沿着Y轴正方向,或者x轴方向延伸,并且在Z轴能够取得最大值的血管,定义为LCX;在LM之后分叉的血管中找一根沿着x轴正方向,或者Y轴负方向延伸,并且在z轴取得最大值的血管,定义为LAD。
该方法可以实现60%左右的LM、LAD和LCX的快速识别,可是由于冠脉血管中的变异,如图5所示,往往在LM上会有长短不一的干扰血管,很容易被误认为LAD和LCX。如图5中出现的血管就很容易被算法误判为LAD,导致划分失败。
为了避免被这类干扰血管所误导,最有效的做法就是在寻找LAD和LCX前把他们删除。然而有时候这些看起来比较短的干扰血管就是真实的LAD或者LCX,直接进行删除极易导致误删,同时,如何定义干扰血管的长度,也是所需解决的问题。
因此,本实施例中步骤S4具体执行以下分步骤:
S41、明确LM即是LAD与LCX重叠的部分,同时LM的长度有限,限定LM的总长度值的最大值LMMax不超过120个像素点。
S42、采用循环策略,从左冠脉中识别LAD及LCX。
S421、定义最短分支血管长度值阈值区间[N1,N2];以阈值N1开始循环,删除左冠脉中长度小于N1的分支血管;则对于后续循环有N'=(N+n),式中,N'为当前阈值,N为上次循环阈值,n为循环增量,删除左冠脉中长度小于N'的分支血管。本实施例中,N1=30,N2=80,n=10。
S422、在每次循环中寻找可能的LAD与LCX组合,将整个循环结果中识别的组合可能记录为LCX_LAD_List;
可能的LCX为:在LM后的分支中寻找走向为Y轴正方向或者X轴负方向,且在Z轴上取得最大值的血管;可能的LAD为:在LM后的分支中寻找走向为Y轴负方向或者X轴正方向,且在Z轴上取得最大值的血管;
S423、访问LCX_LAD_List中的每一组LAD和LCX组合,获取每组LAD和LCX组合的len(LM)和abs(len(LAD)–len(LCX)),寻找其中abs(len(LAD)–len(LCX))值最小且满足len(LM)<LMMax的那组LAD与LCX组合作为识别结果;式中,len(LM)为LM血管的长度,abs(len(LAD)–len(LCX))为LAD和LCX长度差的绝对值。
如图6所示,有三对疑似LCX和LAD,分别是(LCX,LAD1),(LCX,LAD2),(LCX,LAD3)。其中(LCX,LAD3)这个组合的LM长度超过了LMMax,所以排除;对于(LCX,LAD1)和(LCX,LAD2),我们可以得出abs(len(LAD)–len(LAD2))<abs(len(LAD)–len(LAD1))。所以,LCX和LAD2可以作为最终确定的LCX和LAD。
然而,步骤S42识别的LCX并不一定总是准确的,有时候识别出来的LCX有可能是OM1或者OM2,因此还需要执行步骤S43。
S43:在步骤S42所识别的LCX上查找沿着Z轴向下且相对于LCX沿X轴负方向并且沿Z轴正方向延伸的血管,将寻找到的血管定义为新的LCX;若寻找不到符合条件的血管,保留步骤S42所识别的LCX结果。
识别出LM、LAD及LCX后,在LCX上指向LCX和LAD夹角内侧的血管叫做OM1和OM2。在LAD上指向LCX和LAD夹角内侧的血管叫做D1和D2。
常规情况下,LAD和LCX这两根血管在x轴方向上的距离比较远,y轴方向距离比较近(如果按YZ平面投影,这两根血管比较接近;按XZ平面投影,这两根血管比较远)。但是在变异情况下,LAD和LCX在x轴方向上距离很近,在Y轴方向上比较远(如果按YZ平面投影,这两根血管比较接远;按XZ平面投影,这两根血管比较近)。
针对这两种情况,需要定义变量DRxy(DR为Distance Ratio的缩写)来判断这两根血管在x,y轴方向上的相对位置,这个变量返回的是LAD和LCX在x轴和y轴方向上距离的比例。
因此,步骤S5具体执行以下步骤:
S51、识别LCX上的所有分支血管,组成OM1OM2List。
S52、定义距离比例DRxy=Dx/Dy,式中,Dx为LAD与LCX在XZ平面上投影在X轴方向上的平均距离,Dy为LAD与LCX在YZ平面上投影在Y轴方向上的平均距离。
所述Dx及Dy通过以下方式计算:
首先,获得LAD及LCX分别在XZ平面与YZ平面上的投影;
其次,在XZ平面上,对于LAD和LCX分别取Z轴相同的点,计算其在X轴上的坐标差值,该坐标差值的平均值即为Dx;在YZ平面上,对于LAD和LCX分别取Z轴相同的点,计算其在Y轴的坐标差值,该坐标差值的平均值即为Dy。
S53、给定距离比例阈值DRC(Distance Ratio criterion的缩写),进行OM1、OM2及OM3的识别,本实施例中,DRc=0.13。
则,当DRxy≤0.13时(这意味着LAD和LCX在x轴上距离很近),则OM的定义就是:相对LCX,沿着Y轴负方向走向的血管。因此在OM1OM2List中按照各分支血管在LCX上的出现顺序寻找3根相对于LCX沿y轴负方向走向的分支血管,即可获得OM1、OM2及OM3的识别结果。
当DRxy>DRC时(这意味着LAD和LCX在x轴方向上距离比较远),这个时候OM血管的定义就是:相对LCX,沿着X轴的正方向走的血管。因此,在OM1OM2List中按照各分支血管在LCX上的出现顺序寻找3根相对于LCX沿x轴正方向走向的分支血管,即可获得OM1、OM2及OM3的识别结果。
D1,D2及D3是LAD上三根分支血管,他们对应着LCX上OM1,OM2,及OM3。特征是:这三根分支血管都应该是走向都是指向LAD和LCX夹角内侧的。因此,步骤S6执行以下步骤:
S61、按照在LAD上出现的顺序保存在LAD上所有分支血管进Dlist;
S62、在Dlist上依次找出三根相对LAD沿着Y轴正方向走向的血管,获得D1、D2及D3的识别结果。
前述步骤在LCX上找了OM1、OM2及OM3;在LAD上找了D1、D2及D3,但实际上所需的只有OM1、OM2和D1、D2。寻找OM3和D3只是为了寻找RI。RI的定义是夹在LAD和LCX正中间的一根血管,但实际上由于从CT图像中提取血管中心线中产生的误差,这个RI通常并不是正好夹在LAD和LCX正中间,而是移动到了LAD或者LCX上。
因此,步骤S7执行以下步骤:计算OM1或者D1距离LM的距离,若OM1距离LM的距离不超过6个点,则将步骤S53识别的OM1、OM2、OM3分别修改为RI、OM1及OM2;若D1距离LM的距离不超过6个点,则将步骤S62识别的D1、D2及D3分别修改为RI、D1及D2。
本发明在江苏省自然科学基金(项目编号:BK20160971)和中国国家自然科学基金(项目编号:61703212)资助下完成。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。