一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于肝脏血管分割的损失函数的建立方法及系统与流程

2022-04-02 02:00:33 来源:中国专利 TAG:


1.本发明涉及医学图像处理和人工智能技术领域,特别涉及一种用于肝脏血管分割的损失函数的建立方法及系统。


背景技术:

2.人体肝脏内的重要血管变异率高达65%,充分了解术前肝脏内血管系统的解剖结构及变异,这对肝脏手术方案的制定、手术预后及并发症的早期发现和治疗非常重要。现有肝脏血管三维重建主要包括基于深度学习和基于阈值、灰度梯度等传统方法两大类。由于受ct扫描时间和血管呼吸等因素的影响,造影剂在血液中分布不均匀,这会导致在cta图像中血管区域的显影不一致,造成显影质量参差不齐。基于传统方法的血管分割往往过度依赖人工参与和阈值选取,鲁棒性较差,并且不易扩展。
3.近年来,与传统方法的血管分割相比,基于深度学习的血管分割对肝脏血管的分割结果具有更好的精度和鲁棒性。在基于深度学习的方法中,深度学习模型的训练收敛和最终的精度准确性,非常依赖于损失函数的设计。损失函数是度量神经网络输出的预测值与实际值之间差距的一种表现方式,准确的损失函数可以有效指导神经网络学习更加鲁棒且有效的特征。经典的交叉熵损失函数是最常见的用于分割的损失函数。以二分类为例,深度学习分割模型需要预测的结果只有两种情况,对于每个类别预测得到的概率为p和1-p,此时损失函数l表达式为:
4.l=-[y
·
log(p) (1-y)
·
log(1-p)]
ꢀꢀꢀꢀ
(1)
[0005]
其中,y表示像素样本的label,正类为1、负类为0;p表示样本预测为正的概率。何凯明在2017年提出的focal loss,对交叉熵loss进行了改进:
[0006]
fl(p
t
)=-α
t
(1-p
t
)
γ
log(p
t
)
ꢀꢀꢀꢀꢀ
(2)
[0007]
其中,(1-p
t
)
γ
称为调制系数,目的是减少易分类样本的权重,从而使得模型在训练时更专注于难分样本。α
t
用于控制不同类别像素数量的权重,避免类别多的像素在训练中占据主导地位,使得网络训练关注不到少数类别的分类精度。
[0008]
现有各种损失函数在直接用于肝脏血管分割时,都没有很好地针对血管的细小分支、末尾等位置的像素做更多的关注,使得分割模型在细小血管及血管末尾处的分割结果漏检较多,分割精度远低于血管的主干部分。因此,需要提出一种新型的损失函数,以提高分割模型对细小分支血管和血管末尾处的分割精度。


技术实现要素:

[0009]
为了解决使用现有损失函数的分割模型对肝脏血管的细小分支血管和血管尾处的分割精度低的问题,本发明提供了一种用于肝脏血管分割的损失函数的建立方法,包括如下步骤:
[0010]
对原始肝脏血管二值化掩模进行形态学腐蚀,得到第一掩模;
[0011]
去除所述第一掩模中的游离杂点,得到第二掩模;
[0012]
对所述第二掩模进行形态学膨胀,得到第三掩模;
[0013]
计算所述原始肝脏血管二值化掩模与所述第三掩模中同时为1的像素位置的交集,得到第四掩模;
[0014]
计算所述原始肝脏血管二值化掩模与所述第四掩模中同时为1的像素位置的差集,得到第五掩模;
[0015]
根据所述第四掩模和第五掩模,将所述原始肝脏血管二值化掩模像素位置集合划分为三部分,并建立肝脏血管分割的损失函数。
[0016]
所述损失函数的计算公式为:
[0017]
l=-wilog(pi)-wjlog(pj)-wk(1-pk)
γ
log(pk)|{i∈si,j∈sj,k∈sk}
[0018]
其中:l为损失函数;wi为分支血管的loss权重;wj为主干血管的loss权重;wk为背景像素的loss权重;si为分支像素位置集合;sj为主干像素位置集合;sk为背景像素位置集合;pi为分支血管像素点的预测概率;pj为主干血管像素点的预测概率;pk为背景像素点的预测概率;γ为调制系数。
[0019]
所述将所述原始肝脏血管二值化掩模像素位置集合划分为三部分具体包括主干像素位置集合、分支像素位置集合和背景像素位置集合。
[0020]
所述对原始肝脏血管二值化掩模进行形态学腐蚀的步骤具体为:使用预设的腐蚀模板遍历原始肝脏血管二值化掩模中的所有像素位置,遍历过程中,将所述腐蚀模板所覆盖的所述原始肝脏血管二值化掩模部分中的最小像素值作为所述腐蚀模板中心锚点的新的像素值。
[0021]
所述腐蚀模板设置为5*5*5的全1矩阵。
[0022]
所述对所述第二掩模进行形态学膨胀的步骤具体为:使用预设的膨胀模板遍历所述第二掩模中的所有像素位置,遍历过程中,将所述膨胀模板所覆盖的所述第二掩模部分中的最大像素值作为所述膨胀模板中心锚点的新的像素值。
[0023]
所述膨胀模板设置为7*7*7的全1矩阵。
[0024]
本发明还提供了一种用于肝脏血管分割的损失函数的建立系统,包括:
[0025]
腐蚀模块,用于对原始肝脏血管二值化掩模进行形态学腐蚀,得到第一掩模;
[0026]
去除模块,用于去除所述第一腐蚀模块得到的第一掩模中的游离杂点,得到第二掩模;
[0027]
膨胀模块,用于对所述去除模块得到的第二掩模进行形态学膨胀,得到第三掩模;
[0028]
第一计算模块,用于计算所述原始肝脏血管二值化掩模与所述膨胀模块得到的第三掩模中同时为1的像素位置的交集,得到第四掩模;
[0029]
第二计算模块,用于计算所述原始肝脏血管二值化掩模与所述第一计算模块得到的第四掩模中同时为1的像素位置的差集,得到第五掩模;
[0030]
建立模块,用于根据所述第一计算模块得到的第四掩模和所述第二计算模块得到的第五掩模,将所述原始肝脏血管二值化掩模像素位置集合划分为三部分,并建立肝脏血管分割的损失函数。
[0031]
所述腐蚀模块包括:
[0032]
第一设置单元,用于预设腐蚀模板;
[0033]
第一遍历单元,用于使用所述第一设置单元设置的腐蚀模板遍历原始肝脏血管二
值化掩模中的所有像素位置;
[0034]
第一像素值设置单元,用于在所述第一遍历单元进行的遍历过程中,将所述腐蚀模板所覆盖的所述原始肝脏血管二值化掩模部分中的最小像素值作为所述腐蚀模板中心锚点的新的像素值。
[0035]
所述膨胀模块包括:
[0036]
第二设置单元,用于预设膨胀模板;
[0037]
第二遍历单元,用于使用所述第二设置单元设置的膨胀模板遍历所述第二掩模中的所有像素位置;
[0038]
第二像素值设置单元,用于在所述第二遍历单元进行的遍历过程中,将所述膨胀模板所覆盖的所述第二掩模部分中的最大像素值作为所述膨胀模板中心锚点的新的像素值。
[0039]
本发明提供的用于肝脏血管分割的损失函数的建立方法及系统,通过分别计算不同像素位置的损失,并可以灵活调整各部分的损失权重,进而指导神经网络训练过程中对不同像素位置的关注程度。本发明提供的损失函数可以对分支血管、主干血管和背景像素进行不同加权,进而有效地提升分支血管的分割精度,从而更加灵活和准确地控制网络的优化方向。
附图说明
[0040]
图1是本实施例用于肝脏血管分割的损失函数的建立方法流程图;
[0041]
图2是现有技术形态学腐蚀操作的原理示意图;
[0042]
图3是本实施例对原始掩模m进行形态学腐蚀得到掩模m1的示意图;
[0043]
图4是本实施例去除掩模m1中游离杂点后得到掩摸m2的示意图;
[0044]
图5是现有技术形态学膨胀操作的原理示意图;
[0045]
图6是本实施例对掩摸m2进行形态学膨胀操作得到掩模m3的示意图;
[0046]
图7是本实施例对原始掩模m与掩模m3取交集得到掩模m4的示意图;
[0047]
图8是本实施例对原始掩模m与掩模m4取差集得到掩模m5的示意图;
[0048]
图9是使用本实施例损失函数、交叉熵和focal loss建立的网络模型分割肝脏动脉的三维可视化预测结果示意图;
[0049]
图10是本实施例用于肝脏血管分割的损失函数的建立系统结构示意图。
具体实施方式
[0050]
下面结合附图和实施例,对本发明技术方案作进一步描述。
[0051]
参见图1,本发明实施例提供的用于肝脏血管分割的损失函数的建立方法,具体包括如下步骤:
[0052]
步骤s101、根据预设的腐蚀模板,对原始肝脏血管二值化掩模进行形态学腐蚀,得到掩模m1。
[0053]
在原始肝脏血管0/1二值化掩模中,掩模值为1表示肝脏血管,掩模值为0表示背景。假设原始肝脏血管二值化掩模为m,选取5*5*5的全1矩阵作为腐蚀模板(即核kernel),对原始肝脏血管掩模m执行形态学腐蚀操作:使用kernel遍历掩模m中的所有像素位置,遍
历过程中,将kernel所覆盖的掩模m部分中的最小像素值作为kernel中心锚点的新的像素值。以二维腐蚀操作为例,图2中a为待腐蚀二值化掩模,b为3*3腐蚀模板(kernel),通过形态学腐蚀操作后缩小了原始掩模的边界(见图2右侧黑实线围成的区域)。如图3所示,图左边为原始肝脏血管掩模m,图右边为通过5*5*5腐蚀模板腐蚀后得到的掩模m1。由图3可以看出,形态学腐蚀操作将原始掩模m中的分支血管腐蚀掉了,仅剩缩小后的主干血管和部分游离的杂点。
[0054]
步骤s102、去除掩模m1中的游离杂点,得到掩模m2。
[0055]
掩模m1中有肝脏血管的主干血管和游离的杂点,而为了保证后续建立的损失函数的准确性,需要去除游离的杂点。由于肝脏血管的主干血管是连通的,因此可以通过从掩模m1中提取最大连通区域,去除游离的杂点,从而得到肝脏血管的主干血管,记为掩模m2,如图4所示。
[0056]
步骤s103、根据预设的膨胀模板,对掩模m2进行形态学膨胀,得到边界扩大的掩模m3。
[0057]
选取7*7*7的全1矩阵作为膨胀模板(kernel),对掩模m2进行形态学膨胀操作:使用kernel遍历掩模m2中的所有像素位置,遍历过程中,将kernel所覆盖的掩模m2部分中的最大像素值作为kernel中心锚点的新的像素值。以二维膨胀操作为例,图5中a为待膨胀二值化掩模,b为3*3膨胀模板,通过形态学膨胀操作后扩大了原始掩模的边界。如图6所示,图左边为主干血管掩模m2,图右边为通过7*7*7膨胀模板膨胀后得到的结果,记为掩模m3。由图6可以看出,使用更大的形态学膨胀模板进行膨胀操作将掩模m2进行了边界扩张,使得主干血管恢复到大于原始掩模m中主干血管的结果,进而保证这一步得到的结果完全不会遗漏主干像素。
[0058]
步骤s104、计算原始肝脏血管二值化掩模m与边界扩大的掩模m3中同时为1的像素位置的交集,得到掩模m4。
[0059]
如图7所示,掩模m4为取原始肝脏血管二值化掩模m与边界扩大的主干血管掩模m3中同时为1的像素位置的交集,即m4=m∩m3。掩模m4代表原始肝脏血管中的主干血管。
[0060]
步骤s105、计算原始肝脏血管二值化掩模m与掩模m4中同时为1的像素位置的差集,得到掩模m5。
[0061]
如图8所示,掩模m5为取原始肝脏血管二值化掩模m与掩模m4中同时为1的像素位置的差集,即m5=m-m4。掩模m5代表原始肝脏血管中的分支血管。
[0062]
步骤s106、根据掩模m4和掩模m5,将原始肝脏血管掩模像素位置集合划分为三部分,并据此建立肝脏血管分割的损失函数。
[0063]
由于得到了原始肝脏血管中的主干血管掩模m4和分支血管掩模m5,因此可以据此将原始肝脏血管掩模像素位置集合划分为三部分,包括主干像素位置集合s1、分支像素位置集合s2和背景像素位置集合s3。进一步地,根据这三个像素位置集合,建立肝脏血管分割的损失函数的计算公式:
[0064]
l=-wilog(pi)-wjlog(pj)-wk(1-pk)
γ
log(pk)|{i∈si,j∈sj,k∈sk}
ꢀꢀꢀꢀ
(3)
[0065]
其中:l为损失函数;wi为分支血管的loss权重;wj为主干血管的loss权重;wk为背景像素的loss权重;si为分支像素位置集合;sj为主干像素位置集合;sk为背景像素位置集合;pi为分支血管像素点的预测概率;pj为主干血管像素点的预测概率;pk为背景像素点的
预测概率;γ为调制系数,用于调节不同背景像素的损失权重,当设置γ=2时,若背景像素的预测概率pk为0.9,那么(1-0.9)2=0.01,若背景像素的预测概率pk为0.5,那么(1-0.5)2=0.25,可见对于预测比较准确的背景像素其损失的系数是小于预测相对不准确的背景像素的,因此γ可以动态控制背景像素中不同分割难度的像素所占据损失函数的比重。
[0066]
需要说明的是:本实施例建立的损失函数的计算公式是基于传统交叉熵损失函数和focal loss的改进。本实施例在分离出了主干血管和分支血管后,就有了先验知识。由于血管越细越难分割,因此可以利用得到的分支血管、主干血管的像素位置信息,对这些像素进行特定的加权,使得网络在收敛过程中更注重在损失函数中所加权的位置像素。利用本实施例损失函数的计算公式结合分支血管的提取方法,可有效解决交叉熵和focal loss两种损失函数在血管分割任务中无法对指定像素进行优化的问题。
[0067]
为了证明使用本实施例损失函数建立的神经网络模型预测的准确性,下面以肝脏动脉分割为例来加以说明:
[0068]
a.选取通用的神经网络3d-unet,损失函数分别选择交叉熵、focal loss和本实施例的损失函数,进行神经网络的训练和测试。选用的数据总量为831套,训练数据与测试数据按照5:1的比例进行分配。
[0069]
b.在训练阶段,通过不同的损失函数分别计算3d-unet网络输出和真实掩模的差异,并通过梯度反向传播的方法,采用sgd(stochastic gradient descent,随机梯度下降)优化算法对网络的参数进行更新,最终得到收敛的网络模型。
[0070]
c.在测试阶段,利用训练好的网络模型对输入的ct图像数据进行肝脏动脉的分割预测,基于dice系数的计算公式,计算网络输出结果和真实掩模的dice分数,分数越高表示预测的结果越接近真实结果,如下表1所示。
[0071]
表1
[0072]
损失函数交叉熵focal loss本发明实施例损失函数测试dice系数0.7520.7930.811
[0073]
表1为本发明实施例损失函数与交叉熵、focal loss损失函数的测试dice系数对比;由表1可以看出,使用本实施例损失函数得到的网络模型进行的肝脏动脉分割预测的结果最接近真实结果。
[0074]
此外,通过三维可视化的预测结果,也可以证明使用本实施例损失函数建立的神经网络模型预测的准确性,如图9所示。由图9可以看出,使用本实施例损失函数训练得到的网络模型的预测结果整体优于交叉熵、focal loss损失函数,并且分支血管的丰富度和准确度最接近真实掩模,这样也证明了本实施例损失函数对肝脏分支血管分割精度提升的有效性。
[0075]
本实施例提供的用于肝脏血管分割的损失函数的建立方法,通过分别计算不同像素位置的损失,并可以灵活调整各部分的损失权重,进而指导神经网络训练过程中对不同像素位置的关注程度。对于背景像素,本实施例结合了focal loss的思想,对背景中的难分像素更加关注,使得在加大分支血管关注度的同时,不失难分背景的关注,从而达到整体精度的提升。与不加区分的对所有位置像素进行求损失相比,本实施例的损失函数可以通过灵活调整对分支血管的损失权重,进而有效地提升分支血管的分割精度。本实施例的损失函数,可以对分支血管、主干血管和背景像素进行不同加权,从而更加灵活和准确地控制网
络的优化方向。
[0076]
参见图10,本发明实施例还提供了用于肝脏血管分割的损失函数的建立系统,该系统包括:
[0077]
腐蚀模块,用于对原始肝脏血管二值化掩模进行形态学腐蚀,得到第一掩模;
[0078]
去除模块,用于去除第一腐蚀模块得到的第一掩模中的游离杂点,得到第二掩模;
[0079]
膨胀模块,用于对去除模块得到的第二掩模进行形态学膨胀,得到第三掩模;
[0080]
第一计算模块,用于计算原始肝脏血管二值化掩模与膨胀模块得到的第三掩模中同时为1的像素位置的交集,得到第四掩模;
[0081]
第二计算模块,用于计算原始肝脏血管二值化掩模与第一计算模块得到的第四掩模中同时为1的像素位置的差集,得到第五掩模;
[0082]
建立模块,用于根据第一计算模块得到的第四掩模和第二计算模块得到的第五掩模,将原始肝脏血管二值化掩模像素位置集合划分为三部分,并建立肝脏血管分割的损失函数。
[0083]
其中,腐蚀模块进一步包括:
[0084]
第一设置单元,用于预设腐蚀模板;
[0085]
第一遍历单元,用于使用第一设置单元设置的腐蚀模板遍历原始肝脏血管二值化掩模中的所有像素位置;
[0086]
第一像素值设置单元,用于在第一遍历单元进行的遍历过程中,将腐蚀模板所覆盖的原始肝脏血管二值化掩模部分中的最小像素值作为腐蚀模板中心锚点的新的像素值。
[0087]
其中,膨胀模块进一步包括:
[0088]
第二设置单元,用于预设膨胀模板;
[0089]
第二遍历单元,用于使用第二设置单元设置的膨胀模板遍历第二掩模中的所有像素位置;
[0090]
第二像素值设置单元,用于在第二遍历单元进行的遍历过程中,将膨胀模板所覆盖的第二掩模部分中的最大像素值作为膨胀模板中心锚点的新的像素值。
[0091]
本实施例提供的用于肝脏血管分割的损失函数的建立系统,通过分别计算不同像素位置的损失,并可以灵活调整各部分的损失权重,进而指导神经网络训练过程中对不同像素位置的关注程度。
[0092]
本发明实施例提供的用于肝脏血管分割的损失函数的建立方法及系统,通过分别计算不同像素位置的损失,并可以灵活调整各部分的损失权重,进而指导神经网络训练过程中对不同像素位置的关注程度。本发明实施例的损失函数可以对分支血管、主干血管和背景像素进行不同加权,进而有效地提升分支血管的分割精度,从而更加灵活和准确地控制网络的优化方向。
[0093]
在实际应用中,本实施例中所涉及的各个功能模块及单元,均可以由运行在计算机硬件上的计算机程序实现,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的硬件指的是包含一个或者多个处理器和存储介质的服务器或者台式计算机、笔记本电脑等;所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等;所述计算机程序由不限于c、c 等计算机语言实现。
[0094]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献