本发明属于人工智能辅助医疗技术领域,具体涉及一种基于深度学习的肾小管萎缩区域识别的方法与系统。
背景技术:
慢性肾脏疾病(ckd)目前被世界卫生组织(who)认为是主要的公共卫生挑战之一,肾活检在慢性肾脏疾病的诊断和治疗中起到了关键的作用。目前肾穿刺病理活检的病理诊断已经成为了肾脏疾病患者诊断、治疗和判断预后的重要参考依据。
病理在医疗领域有着至关重要的作用,其中在慢性肾病诊断中,肾脏组织经粗针穿刺、钳取、切取、切除后,制成病理切片后的诊断结果最为准确、可靠,是慢性肾病诊断的“金标准”。很多肾病必须通过病理和临床信息结合,甚至只能通过病理信息才能诊断。因此病理切片十分重要,并且对准确度要求很高。肾小管萎缩是慢性肾病的主要表现形式,在检查病人是否患有肾小管萎缩时,需要病理医生观察病人的肾脏病理切片,并且需要权威的病理医生判断萎缩区域的面积比,但是医疗需求与资源之间的矛盾使得传统的医疗手段不能满足病患的需要。一些三甲医院病理科每天会产生上千张肾脏病理切片,虽然大部分可能没有阳性结果,但仍需医生在显微镜下严格审查每张病理切片,判断肾小管是否有萎缩区域,耗费大量精力。
随着近年来人工智能和深度学习的不断发展,深度学习越来越多的应用于医疗领域。为了辅助病理医生筛查病理切片,提高工作效率,需要提出一种新的识别方法,以实现肾小管萎缩区域的自动识别。
技术实现要素:
本发明克服现有技术存在的不足,所要解决的技术问题为:提供一种基于深度学习的肾小管萎缩区域识别的方法与系统,以实现肾小管萎缩区域的自动识别,提高病理医生筛查病理切片的效率。
为了解决上述技术问题,本发明采用的技术方案为:一种基于深度学习的肾小管萎缩区域识别方法,包括以下步骤:
s1、获取已进行肾小管萎缩区域标注的肾脏病理切片的图像;
s2、基于所述图像以及对应的肾小管萎缩区域标注,对实例分割网络进行训练;所述训练过程包括:
s201、将所述图像输入resnet101-fpn骨干网络进行特征提取得到特征图;
s202、然后将特征图输入rpn网络,得到roi区域;
s203、将roi区域通过roialign层进行尺寸处理,得到roi区域尺寸固定的特征图,通过网络输出模块进行边框回归计算;
s204、设定iou阈值,将iou值大于iou阈值的边框回归后的特征图再次输入roialign层进行尺寸处理,得到roi尺寸固定的特征图,通过网络输出模块进行边框回归计算;
s205、不断增加iou阈值,重复步骤s204,直至网络输出模块输出的所有特征图的iou值小于iou阈值,训练完成;
s3、获取待检测图像,将待检测图像输入训练好的实例分割网络中,得到待检测图像中各个肾小管萎缩区域的目标框位置;
s4、计算各个肾小管萎缩区域的面积以及比例。
rpn网络得到roi区域的具体步骤为:
将特征图输入rpn网络,得到候选框,将候选框映射到对应的特征图上得到多个候选roi区域,将所述候选roi区域送入rpn网络进行二值分类和边框回归,过滤掉一部分候选的roi区域,得到最终的roi区域。
网络输出模块包括fcn网络以及反卷积网络,所述网络输出模块还用于进行掩模计算和分类。
所述步骤s4具体包括以下步骤:
通过opencv-python接口中的cv2.cvtcolor函数将图像转换为灰度图;
使用cv2.threshold函数对图像做二值化转变;
使用cv2.findcontours函数查找识别出的肾小管萎缩区域的轮廓;
使用cv2.contourarea函数计算轮廓面积,得到肾小管萎缩区域的面积,计算图像中肾脏组织的总面积;
用肾小管萎缩区域的面积除以肾脏组织的总面积,得到肾小管萎缩区域的比例。
所述roialign层用于对roi区域进行进行尺寸处理,使其尺寸固定为7*7。
本发明还提供了一种基于深度学习的肾小管萎缩区域识别系统,包括:
获取单元:用于获取已进行肾小管萎缩区域标注的肾脏病理切片的图像;
训练单元:用于基于所述图像以及对应的肾小管萎缩区域标注,对实例分割网络进行训练;所述训练过程包括:
将所述图像输入resnet101-fpn骨干网络进行特征提取得到特征图;
然后将特征图输入rpn网络,得到roi区域;
设定iou阈值,将roi区域通过roialign层进行尺寸处理,得到roi区域尺寸固定的特征图,通过网络输出模块进行边框回归计算;
将iou值大于iou阈值的边框回归后的特征图再次输入roialign层进行尺寸处理,得到roi尺寸固定的特征图,通过网络输出模块进行边框回归计算;
不断增加iou阈值,重复进行roi区域尺寸处理以及边框回归计算,直至网络输出模块输出的所有特征图的iou值小于iou阈值,训练完成;
检测单元:用于获取待检测图像,将待检测图像输入训练好的实例分割网络中,得到待检测图像中各个肾小管萎缩区域的目标框位置;
计算单元:用于计算各个肾小管萎缩区域的面积以及比例。
所述网络输出模块包括fcn网络以及反卷积网络,所述网络输出模块还用于进行掩模计算和分类。
所述的一种基于深度学习的肾小管萎缩区域识别系统,还包括:
输出显示模块:用于显示检测单元的检测结果,以及计算得到的各个肾小管萎缩区域的面积以及比例。
所述的一种基于深度学习的肾小管萎缩区域识别系统,计算单元计算各个肾小管萎缩区域的面积以及比例的具体方法为:
通过opencv-python接口中的cv2.cvtcolor函数将图像转换为灰度图;
使用cv2.threshold函数对图像做二值化转变;
使用cv2.findcontours函数查找识别出的肾小管萎缩区域的轮廓;
使用cv2.contourarea函数计算轮廓面积,得到肾小管萎缩区域的面积,计算图像中肾脏组织的总面积;
用肾小管萎缩区域的面积除以肾脏组织的总面积,得到肾小管萎缩区域的比例。
本发明与现有技术相比具有以下有益效果:
1、本发明提供一种基于深度学习的肾小管萎缩区域识别的方法与系统,使用mask-rcnn网络进行训练,为了克服漏检情况,在网络中加入了级联网络,级联各个检测模型,设置依次增加的iou阈值界定样本训练模型,将前一个检测模型的作为后一个检测模型的输入,对网络进行不断训练,检测精度高,可以有效避免网络漏检。
2、本发明中,待检测图片经网络训练好的模型识别后,首先使用opencv-python接口中的cv2.cvtcolor()函数将图片转换为灰度图,然后使用cv2.threshold()函数将图片做二值化转变,接着使用cv2.findcontours()函数查找识别出的肾小管萎缩区域的轮廓,最后使用cv2.contourarea()函数计算轮廓面积,由此就得到了肾小管萎缩区域的面积。同理,可以得到图片中肾脏组织的总面积,然后用肾小管萎缩区域的面积除以肾脏组织的总面积就可得到肾小管萎缩区域的比例。显示结果直观,方便,使医生可以直接观察肾小管萎缩区域的病变情况,为医疗工作者节省了大量时间和精力,有助于提高病理医生工作效率,在医学领域具有重要意义。
附图说明
图1为本发明实施例提供的一种基于深度学习的肾小管萎缩区域识别方法的流程示意图;
图2为本发明实施例中的实例分割网络的结构简图;
图3为本发明实施例中的实例分割网络的结构示意图;
图4为将扫描的图片切割并命名示意图;
图5为本发明实施例中使用labelme人工标注肾小管萎缩示意图;
图6为本发明实施例中使用测试集测试结果示意图;
图7为本发明实施例提供的一种基于深度学习的肾小管萎缩区域识别系统的结构示意图;
图8为本发明实施例中输出显示模块显示的结果示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1~3所示,本发明实施例一提供了一种基于深度学习的肾小管萎缩区域识别方法,包括以下步骤:
s1、获取已进行肾小管萎缩区域标注的肾脏病理切片的图像。
具体地,首先由操作员将肾脏病理切片载玻片固定在全自动数字病理切片扫描仪上,随后扫描仪将病理切片数字化,由于数字化后的图片内存过大,代码运行时读取数据过慢,所以将每张图片依次切割成大小一致的数张小图,并将切割好的图片按照“病人编号_序号”的规则命名,如图4所示。然后将数字化后的图片输入到图像清晰度评价算法进行筛选。将筛选后的图片用labelme标注软件人工把肾小管萎缩区域标注出来,并设置标签为“rta”,如图5所示。
s2、基于所述图像以及对应的肾小管萎缩区域标注,对实例分割网络进行训练。
具体地,所述训练过程包括:
s201、将所述图像输入resnet101-fpn骨干网络进行特征提取得到特征图;
s202、然后将特征图输入rpn网络,得到roi区域;
s203、设定iou阈值,将roi区域通过roialign层进行尺寸处理,得到roi区域尺寸固定的特征图,通过网络输出模块进行边框回归计算;
s204、将iou值大于iou阈值的边框回归后的特征图再次输入roialign层进行尺寸处理,得到roi尺寸固定的特征图,通过网络输出模块进行边框回归计算;
s205、不断增加iou阈值,重复步骤s204,直至网络输出模块输出的所有特征图的iou值小于iou阈值,训练完成。
如图2~3所示,为本发明实施例中的实例分割网络的结构示意图。本实施例中,通过加入了级联网络,级联各个检测模型,通过设置iou阈值,将iou值高于iou阈值的边框回归结果对应的特征图重新输入检测模型中对检测模型不断训练,并且每个级联网络的iou阈值不断的提升,可以提高训练的效果,避免肾小管萎缩区域的漏检或错检。
具体地,本实施例中,使用resnet101-fpn为骨干网络(backbone)进行提取特征,resnet使用了跨层连接,使得训练更加容易;然后将特征图(featuremap)输入rpn网络得到候选框(proposals);候选框映射到对应的特征图上得到不同尺寸的多个候选roi区域(regionofinterest);将这些候选的roi区域送入rpn网络进行二值分类(前景或背景)和boundingbox回归,过滤掉一部分候选的roi区域;将剩下的roi区域通过roialign层的作用,使每个roi区域的尺寸固定为7*7;最后,通过网络输出模块对每个roi区域进行分类,边框回归,以及掩模计算(mask)。然后将得到的边框回归再次输入到roialign层中进行尺寸处理,以及网络输出模块进行分类,边框回归,以及掩模计算(mask),可以提高网络训练的效果,有效减少漏检,提高准确率。
具体地,如图3所示,本实施例中,网络输出模块包括fcn网络以及反卷积网络,所述网络输出模块还用于进行掩模计算和分类。
具体地,本实施例中,还将标注好的数据集分为训练集和测试集,将训练集输入到改进后的实例分割网络中进行训练,得到一个训练好的模型,再将测试集数据输入在训练好的模型上进行测试。测试结果显示,本实施例的准确率在85%左右。
s3、获取待检测图像,将待检测图像输入训练好的实例分割网络中,得到待检测图像中各个肾小管萎缩区域的目标框位置。如图6所示,为训练好的实例分割网络对测试集图像进行检测得到的目标框示意图。
s4、计算各个肾小管萎缩区域的面积以及比例。
具体地,所述步骤s4具体包括以下步骤:
通过opencv-python接口中的cv2.cvtcolor函数将图像转换为灰度图;
使用cv2.threshold函数对图像做二值化转变;
使用cv2.findcontours函数查找识别出的肾小管萎缩区域的轮廓;
使用cv2.contourarea函数计算轮廓面积,得到肾小管萎缩区域的面积,计算图像中肾脏组织的总面积;
用肾小管萎缩区域的面积除以肾脏组织的总面积,得到肾小管萎缩区域的比例。
实施例二
如图7所示,本发明实施例二提供了一种基于深度学习的肾小管萎缩区域识别系统,包括:获取单元、训练单元、检测单元和计算单元。
其中,获取单元用于获取已进行肾小管萎缩区域标注的肾脏病理切片的图像;训练单元用于基于所述图像以及对应的肾小管萎缩区域标注,对实例分割网络进行训练。检测单元用于获取待检测图像,将待检测图像输入训练好的实例分割网络中,得到待检测图像中各个肾小管萎缩区域的目标框位置;计算单元用于计算各个肾小管萎缩区域的面积以及比例。
具体地,所述训练过程包括:
将所述图像输入resnet101-fpn骨干网络进行特征提取得到特征图;
然后将特征图输入rpn网络,得到roi区域;
设定iou阈值,将roi区域通过roialign层进行尺寸处理,得到roi区域尺寸固定的特征图,通过网络输出模块进行边框回归计算;
将iou值大于iou阈值的边框回归后的特征图再次输入roialign层进行尺寸处理,得到roi尺寸固定的特征图,通过网络输出模块进行边框回归计算;
不断增加iou阈值,重复进行roi区域尺寸处理以及边框回归计算,直至网络输出模块输出的所有特征图的iou值小于iou阈值,训练完成。
具体地,所述网络输出模块包括fcn网络以及反卷积网络,所述网络输出模块还用于进行掩模计算和分类。
进一步地,本实施例中,计算单元计算各个肾小管萎缩区域的面积以及比例的具体方法为:
通过opencv-python接口中的cv2.cvtcolor函数将图像转换为灰度图;
使用cv2.threshold函数对图像做二值化转变;
使用cv2.findcontours函数查找识别出的肾小管萎缩区域的轮廓;
使用cv2.contourarea函数计算轮廓面积,得到肾小管萎缩区域的面积,计算图像中肾脏组织的总面积;
用肾小管萎缩区域的面积除以肾脏组织的总面积,得到肾小管萎缩区域的比例。
进一步地,所述的一种基于深度学习的肾小管萎缩区域识别系统,还包括:输出显示模块:用于显示检测单元的检测结果,以及计算得到的各个肾小管萎缩区域的面积以及比例。如图8所示,为输出显示模块显示的检测结果,图像中圈出了各个肾小管萎缩区域,并且显示了其面积以及比例。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。