具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
参见图1,图1显示了本发明基于深度学习的肺结节识别与分割方法的实施例流程图,其包括:
S101,对DICOM文件进行预处理以生成胸部CT图像,从胸部CT图像中分割出肺部掩膜,并修补肺部掩膜的轮廓。
DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。
需要说明的是,通过对DICOM文件进行预处理,可有效还原DICOM文件中CT图片的真实CT值,并选取肺部感兴趣区域的CT值;而从胸部CT图像中分割出肺部掩膜,可将肺区从胸部CT图像中分割出来,避免其它胸部部位对肺结节的预测造成干扰;同时,修补肺部掩膜的轮廓,可避免由于粘连胸壁结节造成的肺部掩膜缺损而造成的肺区分割不全。
S102,根据胸部CT图像及修补后的肺部掩膜生成三通道肺部图像,并将三通道肺部图像输入二维YOLO v3神经网络以检测肺结节的可疑区域。
需要说明的是,通过步骤S102有实现肺结节可疑区域的有效检测。其中,所述二维YOLO v3神经网络的特征提取部分基于DarkNet-53结构,检测部分基于FPN架构。
S103,根据可疑区域对胸部CT图像进行标准化处理以生成标准化矩阵,将标准化矩阵分别输入3D Dense Net神经网络及C3D神经网络以预测出肺结节的置信度及良恶性程度,并根据肺结节的置信度及良恶性度生成目标预测框。
需要说明的是,根据肺结节的置信度及良恶性度生成目标预测框可有效减少冗余的指向同一肺结节的目标预测框。
S104,根据目标预测框对胸部CT图像进行归一化处理以生成归一化矩阵,将归一化矩阵输入3D U-Net神经网络进行分割,并优化分割结果。
需要说明的是,在优化分割结果时,可对3D U-Net神经网络输出的分割结果进行形态学的后处理,从而获得更切合肺结节病灶的勾画。
因此,本发明基于深度学习的肺结节识别与分割方法利用二维YOLO v3神经网络对肺结节可疑病灶进行提取,与现有的OTSU分割、分水岭分割等提取方法相比,提升了结节检测的敏感度,尤其在磨玻璃结节上,且减少了出现预测框包含的病灶黏连了血管的情况;同时,本发明构建三通道肺部图像,并将其输入二维YOLO v3神经网络,与现有的三维的结节检测网络相比,在检测结节的速度上更快,性能也不亚于三维的结节检测网络;另外,本发明还利用多个小型3D Dense Net神经网络进一步减少假阳性,相比使用单个目标识别网络,泛化性能更高;相应地,本发明还利用3D U-Net神经网络以及形态学上的后处理,将病灶区域勾勒出来,增加肺结节病灶输出结果的解释性,使预测出的目标区域更加准确。
参见图2,图2显示了本发明中对DICOM文件进行预处理以生成胸部CT图像的实施例流程图,其包括:
S201,根据DICOM文件中的缩放截距及缩放斜率,还原DICOM文件中CT图像的CT值。
读取DICOM文件的像素矩阵值,并根据DICOM文件中的缩放截距及缩放斜率两个属性还原真实CT值。
S202,将DICOM文件中位于数轴上且小于预设值的像素点间隔值进行归一化处理,截取目标区间内的CT值,将CT值标准化至标准区间。
读取DICOM文件中的像素点间隔值,若数轴上的像素点间隔值小于1mm,则将其归一化至1mm;同时,截取在目标区间[-1000,400]内的CT值,并将CT值标准化至标准区间[0,255],逐层保存为PNG格式图片输出。
S203,将DICOM文件中位于横轴、纵轴及数轴上的像素点间隔值进行归一化处理,截取目标区间内的CT值,将CT值标准化至标准区间,以生成胸部CT图像。
读取DICOM文件中的像素点间隔值,将在横轴、纵轴与数轴上的所有像素点间隔值均归一化至1mm,截取在目标区间[-1000,400]内的CT值,并将CT值标准化至标准区间[0,255],并以三维NPY的格式保存。
因此,对DICOM文件进行预处理,可有效还原DICOM文件中CT图像的真实CT值,并选取肺部感兴趣区域的CT值。
参见图3,图3显示了本发明中从胸部CT图像中分割出肺部掩膜的实施例流程图,其包括:
S301,对胸部CT图像的CT值矩阵进行分割,生成二值矩阵,其中,将胸部CT图像中小于预设像素的像素值置为第一基准值,大于预设像素的像素值置为第二基准值。
用-320作为阈值,对CT值矩阵进行分割,生成二值矩阵。具体地,将小于-320的像素值置为1(即第一基准值),将大于-320的像素值置为2(即第二基准值)。
S302,对二值矩阵进行三维连通域标记,生成标签矩阵,并在标签矩阵上设置背景标签。
对所述二值矩阵进行三维连通域标记,生成标签矩阵,并分别在标签矩阵的左上角和右下角采点作为背景标签。
S303,在二值矩阵中把标签等于背景标签的像素值置为第二基准值。
具体地,在二值矩阵中把标签等于背景标签的像素值置为2(即第二基准值)。
S304,对二值矩阵中的像素值作减一处理,并填充最大三维连通域内的像素值。
将二值矩阵中的每个像素值-1,并填充最大三维连通域内的像素值。
例如,值为2的像素值,经减一处理后,置为1;值为2的像素值,经减一处理后,置为0。
S305,反转二值矩阵,并保留最大三维连通域,其中,像素值为第一基准值的区域为肺部区域。
具体地,把二值矩阵反转,并保留最大三维连通域,此时像素值为1((即第一基准值))的区域为肺部区域。
S306,计算反转后的二值矩阵的三维连通域,将三维连通域中心点坐标高度小于预设高度的区域及三维连通域容积小于预设容积的区域置为背景。
对步骤S305生成的二值矩阵计算三维连通域,将三维连通域中心点坐标高度小于25%的图像高度(即预设高度)的区域置为背景,并将三维连通域容积小于最大三维连通域容积30%(即预设容积)的区域置为背景。
S307,把二值矩阵与预设值进行乘积运算,以生成肺部掩膜。
所述预设值优选为255,因此,把二值矩阵乘以255,以生成肺部掩膜。
因此,从胸部CT图像中分割出肺部掩膜,可将肺区从胸部CT图像中分割出来,从而有效避免其它胸部部位对肺结节的预测造成干扰。
参见图4,图4显示了本发明中修补肺部掩膜的轮廓的实施例流程图,其包括:
S401,逐层计算肺部掩膜的掩膜区域的像素点个数。
S402,提取像素点个数不少于预设个数的胸部CT图像。
优选地,所述预设个数为2000个,但不以此为限制,可根据实际情况进行调整。
需要说明的是,通过步骤S401后,需对像素点个数不少于2000的胸部CT图像(即肺部掩膜切片)进行步骤S403-406的处理。
S403,判断掩膜区域是否贴近胸部CT图像的边缘,判断为否时,则对胸部CT图像进行二值腐蚀操作。
具体地,可查看掩膜区域是否贴近胸部CT图像的边缘,若掩膜区域在距离胸部CT图像边界上下左右各10个像素点以外的区域,则对胸部CT图像进行基于2个像素值为半径的核的二值腐蚀操作。
S404,判断掩膜区域是否贴近腐蚀后胸部CT图像的边缘,判断为否时,则对胸部CT图像进行基于第一半径的二值闭操作,否则对胸部CT图像进行基于第二半径的二值闭操作。
具体地,经步骤S403处理后,查看掩膜区域是否贴近胸部CT图像的边缘,若掩膜区域在距离胸部CT图像边界上下左右各10个像素点以外的区域,则对胸部CT图像进行基于10个像素值为半径的核的二值闭操作,否则对图像进行基于5个像素值为半径的核的二值闭操作。
S405,将距离胸部CT图像边缘预设像素值的区域标为第三基准值,计算掩膜区域的轮廓信息,对掩膜区域内部的空洞进行填充。
具体地,将距离胸部CT图像边界2个像素值的区域标为0(即第三基准值),对掩膜区域用Robert算子计算其轮廓信息,并对掩膜内部的空洞进行填充。
S406,计算掩膜区域的连通区域的数量;若连通区域的数量为预设数量,则采用滚球法修复掩膜区域;若连通区域的数量大于预设数量,则分别获取两个最大的连通区域的凸包区域,当凸包区域的凸包面积不大于预设面积时,将凸包区域作为新的肺部掩膜,否则采用滚球法修复连通区域。
优选地,所述预设数量为1,所述预设面积为原连通区域面积2倍。工作时,计算掩膜区域的连通区域;如果连通区域个数为1,则对该掩膜区域的轮廓采用滚球法进行修复,使其变得平滑;如果连通区域的个数不少于2(即大于1),则针对最大的两个连通区域,分别获取其凸包区域,当凸包面积不大于原连通区域面积2倍时,采取其作为新的肺部掩膜,否则对该连通区域的边缘采用滚球法进行修复;并将修补后的肺部掩膜存为PNG格式。
由上可知,本发明采用对肺部掩膜二维切片进行分析的方法进行修补,基于肺部掩膜是否贴近图像边界10个像素点来设定以2个像素值为半径的核的二值腐蚀操作,以及设定以5或10个像素点为半径的核的二值闭操作,并对2个像素点宽的图像边界区域用0值填充。以上步骤与现有的形态学处理相比,考虑到二值形态学操作可能会使掩膜超出图像边界的情况,从而避免填充空洞、分割肺区等后续处理上表现不佳的情况。
进一步,所述滚球法的步骤如下:
步骤1:在当前点的法线方向,向肺外延申30个像素值作为滚球球心位置,以30个像素值为半径作当前点的相切球;
步骤2:如果相切球与后续肺部轮廓点存在多于一个的交点,则选取交点中与当前点距离最近的点,并删除当前点与最近点之前的轮廓点;否则转入步骤1处理下一个轮廓点。
针对现有技术滚球法用于修补肺部掩膜轮廓对不同的球半径适应不同的凹损程度的情况,本发明采用先考虑采用凸包方法,若凸包面积高于原掩膜面积两倍时再考虑滚球法用于修补的做法,以降低滚球法半径对修补肺部掩膜的影响。
参见图5,图5显示了本发明中根据胸部CT图像及肺部掩膜生成三通道肺部图像,并将三通道肺部图像输入二维YOLO v3神经网络以检测肺结节的可疑区域的实施例流程图,其包括:
S501,对胸部CT图像及修补后的肺部掩膜进行逻辑与运算,生成肺分割图像。
S502,逐层计算肺部掩膜的和,并根据和从肺分割图像中提取目标肺分割图像。
具体地,依据逐层计算的肺部掩膜的和,排除和小于255000的肺分割图像,从而提取出目标肺分割图像。
S503,将连续三片目标肺分割图像的灰度图像合成为三通道肺部图像。
具体地,以2个切片为间隔,获取目标肺分割图像的上下层,并将连续的三片目标肺分割图像的灰度图像合成为一片3×512×512的彩色三通道RGB肺部图像(即三通道肺部图像)。
S504,将三通道肺部图像输入预先训练好的二维YOLO v3神经网络,输出可疑区域预测框的坐标、可疑区域预测框包含目标的置信度及目标属于肺结节的分类概率。
需要说明的是,所述二维YOLO v3神经网络的特征提取部分基于DarkNet-53结构,检测部分基于FPN架构。
训练与预测二维YOLO v3神经网络时,输入为步骤S503处理后的单个病人的每一张三通道肺部图像,输出为每张三通道肺部图像上可疑区域预测框的坐标、可疑区域预测框包含目标的置信度及目标属于肺结节的分类概率。
S505,根据置信度对可疑区域预测框进行过滤处理。
具体地,过滤置信度低于0.7的可疑区域预测框。
S506,通过非极大值抑制法,对过滤后的可疑区域预测框进行融合处理。
具体地,采取非极大值抑制法,对交叠率不低于0.3的可疑区域预测框进行融合。
最后,将单个病人的多张三通道肺部图像预测,并通过融合处理后,输出整理归纳到CSV格式保存。
需要说明的是,由于肺部切片上下层信息在肺部数轴上的像素间隔比较小的时候是很相近的,使用二维YOLO v3神经网络预测的现有处理方法是将原有的肺部CT图像切片均进行预测,这样会产生许多上下层均指向同一感兴趣区域的冗余的预测数据,且延长检测时间,降低效率。与现有技术不同的是,本发明将从DICOM文件读取的像素矩阵在数轴上标准化至间隔1mm,依据计算肺部掩膜去除不包含肺部的切片,将三片连续的肺部切片合成一片三通道肺部图像,与现有技术相比,既减少了后面网络需要处理的图片数量,又较完整地保留了图像信息。
参见图6,图6显示了本发明中根据可疑区域对胸部CT图像进行标准化处理以生成标准化矩阵,将标准化矩阵分别输入3D Dense Net神经网络及C3D神经网络以预测出肺结节的置信度及良恶性程度,并根据肺结节的置信度及良恶性度生成目标预测框的实施例流程图,其包括:
S601,根据可疑区域预测框的坐标,计算可疑区域预测框在三通道肺部图像上的中心点坐标、长度及宽度。
从预先保存的三维NPY文件(参见图2中的步骤S203)中读取像素点间隔均标准化至1mm的胸部CT图像。
读取可疑区域预测框的坐标,计算可疑区域预测框的中心点坐标、长度及宽度,此时的可疑区域预测框的坐标是基于每一张512×512三通道肺部图像。
S602,在胸部CT图像上截取第一预测立方框,并对第一预测立方框进行归一化处理,以生成标准化矩阵。
具体地,获取可疑区域预测框在三通道肺部图像上的中心点坐标、长度及宽度,并在胸部CT图像上截取32×32×32的立方体(即第一预测立方框),并将其值归一化。
S603,将标准化矩阵输入3D Dense Net神经网络以预测出肺结节的置信度。
需要说明的是,3D Dense Net神经网络在搭建、训练与预测时,输入为单通道的32×32×32标准化矩阵,输出为立方体(即第一预测立方框)包含肺结节的概率(即置信度)。
S604,将标准化矩阵输入C3D神经网络以预测出肺结节的良恶性程度。
需要说明的是,C3D神经网络的搭建、训练与预测时,输入为单通道的32×32×32标准化矩阵,输出为肺结节的良恶性程度。
S605,从3D Dense Net神经网络预测出的肺结节的置信度中,提取置信度大于预设值的可疑区域,将可疑区域按置信度由高到低排序,并以可疑区域的长度及宽度中的最小值作为可疑区域的数轴上的高。
具体地,获取3D Dense Net神经网络输出的置信度大于0.75(预设值)的可疑区域,将其按置信度由高到低排序,并以可疑区域的长度及宽度中的最小值作为可疑区域数轴上的高,以此计算第一预测立方框之间的重叠度。
S606,根据公式
计算数轴上重叠的第一预测立方框的集合。
获取步骤S605中的可疑区域,计算第一预测立方框中在数轴上存在重叠的集合。
具体地,计算数轴上存在重叠与否的公式如下:
其中:
z1、z2分别为两第一预测立方框在数轴上中心点坐标;
w1、w2分别为两第一预测立方框在俯视图上的宽;
h1、h2分别为两第一预测立方框在俯视图上的高。
需要说明的是,第一预测立方框在数轴上的中心点距离小于第一预测立方框的最短半径之和,则代表两第一预测立方框在数轴上存在重叠。
S607,计算集合中第一预测立方框在俯视图上的平面框的重叠度。
对数轴上重叠的第一预测立方框,计算其在俯视图上的平面框的重叠度。
S608,将重叠度不低于预测重叠度的第一预测立方框进行融合以生成目标预测框。
具体地,将重叠度不低于30%(预测重叠度)的第一预测立方框进行融合,融合后的目标预测框的坐标按照融合的第一预测立方框的置信度的比例计算。
相应地,目标预测框的计算公式如下:
其中:
xnew为目标预测框的顶点坐标,目标预测框的每一个顶点坐标等于可进行融合的每一个第一预测立方框的相应顶点坐标与其对应的权值的乘积的总和;
i是可进行融合的其中一个预测框;
xi为第一预测立方框的其中一个顶点坐标;
confi为第i个预测框对应的置信度;
为每个第一预测立方框的权值,每个第一预测立方框对应的权值的总和等于1,任意两个可融合的第一预测立方框对应的权值之比等于其置信度之比;
目标预测框的置信度为第一预测立方框集合中置信度的最大值;
目标预测框的良恶性度为第一预测立方框集合中良恶性度的最大值。
最后,输出融合后的目标预测框,并以CSV格式保存。
需要说明的是,传统的相邻预测框融合方法多见于二维预测框,主要有用于如FPN、YOLO等检测网络后处理的非极大值抑制法,基于两中心点距离与两半径之和的比例及两预测框间面积比例的融合法等。与现有技术不同的是,本发明可对3D Dense Net神经网络输出的相邻预测框进行融合处理。具体地,本发明将非极大值抑制法拓展至三维预测框的改良版,考虑到三维空间中两预测框的重叠度阈值相对二维的重叠度更难设定,重叠的情况类型更多,因而采用俯瞰图重叠度的思想,将数轴上相邻或相近的预测框映射到同一层,再对比其映射面积的重叠度,依据此重叠度进行融合更易于识别冗余的三维预测框。
参见图7,图7显示了本发明中根据目标预测框对胸部CT图像进行归一化处理以生成归一化矩阵,将归一化矩阵输入3D U-Net神经网络进行分割,并优化分割结果的实施例流程图,其包括:
S701,根据目标预测框的坐标,计算目标预测框在三通道肺部图像上的中心点坐标、长度及宽度。
具体地,读取目标预测框的坐标,计算目标预测框的中心点坐标、长度及宽度。
S702,在胸部CT图像上截取第二预测立方框,并对第二预测立方框进行归一化处理,以生成归一化矩阵。
具体地,在胸部CT图像上截取48×48×48的立方体(即第二预测立方框),并将其值归一化。
S703,将归一化矩阵输入3D U-Net神经网络进行分割,输出肺结节分割区域中每个像素点是结节体素的置信度。
需要说明的是,3D U-Net神经网络的搭建、训练与预测时,输入为单通道的48×48×48归一化矩阵,输出为同等大小矩阵中每个像素点是结节体素的概率(即置信度)。
S704,从3D U-Net神经网络预测出的结节体素的置信度中,提取置信度大于预设值的肺结节分割区域,对肺结节分割区域进行连通域标记,并提取与目标预测框重合度最大的连通域。
具体地,获取3D U-Net神经网络输出的置信度大于0.5(预设值)的肺结节分割区域,对肺结节分割区域进行连通域标记,选取其与目标预测框重合度最大的一个连通域作为输出,避免48×48×48归一化矩阵中存在另一个结节对当前肺结节分割区域的计算造成影响。
S705,计算连通域与目标预测框的连通重叠度。
具体地,计算步骤S704选中的连通域在目标预测框内区域与目标预测框本身的连通重叠度IOUU-Net。
S706,若连通重叠度低于预设重叠度,对目标预测框内图像进行OTSU分割,并获取肺结节分割区域与目标预测框的分割重叠度;若连通重叠度大于分割重叠度,则以3D U-Net神经网络输出的肺结节分割区域作为目标分割结果,否则以OTSU分割的结果作为目标分割结果。
若连通重叠度IOUU-Net低于30%(预设重叠度),对目标预测框内图像进行OTSU分割;然后,再次获取肺结节分割区域与目标预测框的分割重叠度IOUOtsu,若此时,IOUU-Net≥IOUOtsu,则以3D U-Net神经网络输出的肺结节分割区域作为目标分割结果输出,否则以OTSU分割的结果作为目标分割结果输出;最后,将目标分割结果的坐标信息存为CSV,并保存一份以红色线条作为勾勒颜色的病灶勾画图片。
因此,本发明将3D U-Net神经网络输出与形态学后处理相结合。具体地,本发明选取了与预测框重叠度最大的连通区域,并基于预测框内区域在预测框中的占比,考虑是否采用基于OTSU的病灶分割,并基于两种分割与原预测框的重叠程度决定分割的输出;同时,本发明结合形态学的分割,对比直接采用3D U-Net神经网络输出,补充了一些可解释性,提高分割区域更贴合病灶本身的可能性。
如图8所示,本发明还提供了一种基于深度学习的肺结节识别与分割系统,其包括:
预处理模块1,用于对DICOM文件进行预处理以生成胸部CT图像,从所述胸部CT图像中分割出肺部掩膜,并修补所述肺部掩膜的轮廓。DICOM(Digital Imaging andCommunications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。需要说明的是,通过对DICOM文件进行预处理,可有效还原DICOM文件中CT图片的真实CT值,并选取肺部感兴趣区域的CT值;而从胸部CT图像中分割出肺部掩膜,可将肺区从胸部CT图像中分割出来,避免其它胸部部位对肺结节的预测造成干扰;同时,修补肺部掩膜的轮廓,可避免由于粘连胸壁结节造成的肺部掩膜缺损而造成的肺区分割不全。
检测模块2,用于根据所述胸部CT图像及修补后的肺部掩膜生成三通道肺部图像,并将所述三通道肺部图像输入二维YOLO v3神经网络以检测肺结节的可疑区域。其中,所述二维YOLO v3神经网络的特征提取部分基于DarkNet-53结构,检测部分基于FPN架构。
识别模块3,用于根据所述可疑区域对所述胸部CT图像进行标准化处理以生成标准化矩阵,将所述标准化矩阵分别输入3D Dense Net神经网络及C3D神经网络以预测出肺结节的置信度及良恶性程度,并根据所述肺结节的置信度及良恶性度生成目标预测框。需要说明的是,根据肺结节的置信度及良恶性度生成目标预测框可有效减少冗余的指向同一肺结节的目标预测框。
分割模块4,用于根据所述目标预测框对所述胸部CT图像进行归一化处理以生成归一化矩阵,将所述归一化矩阵输入3D U-Net神经网络进行分割,并优化分割结果。需要说明的是,在优化分割结果时,可对3D U-Net神经网络输出的分割结果进行形态学的后处理,从而获得更切合肺结节病灶的勾画。
因此,本发明利用二维YOLO v3神经网络对肺结节可疑病灶进行提取,与现有的OTSU分割、分水岭分割等提取方法相比,提升了结节检测的敏感度,尤其在磨玻璃结节上,且减少了出现预测框包含的病灶黏连了血管的情况;同时,本发明构建三通道肺部图像,并将其输入二维YOLO v3神经网络,与现有的三维的结节检测网络相比,在检测结节的速度上更快,性能也不亚于三维的结节检测网络;另外,本发明还利用多个小型3D Dense Net神经网络进一步减少假阳性,相比使用单个目标识别网络,泛化性能更高;相应地,本发明还利用3D U-Net神经网络以及形态学上的后处理,将病灶区域勾勒出来,增加肺结节病灶输出结果的解释性,使预测出的目标区域更加准确。
如图9所示,所述预处理模块1包括预处理单元11、分割单元12及修补单元13。具体地:
所述预处理单元11包括:
还原子单元111,用于根据所述DICOM文件中的缩放截距及缩放斜率,还原所述DICOM文件中CT图像的CT值。读取DICOM文件的像素矩阵值,并根据DICOM文件中的缩放截距及缩放斜率两个属性还原真实CT值。
第一归一化子单元112,用于将所述DICOM文件中位于数轴上且小于预设值的像素点间隔值进行归一化处理,截取目标区间内的CT值,将所述CT值标准化至标准区间。读取DICOM文件中的像素点间隔值,若数轴上的像素点间隔值小于1mm,则将其归一化至1mm;同时,截取在目标区间[-1000,400]内的CT值,并将CT值标准化至标准区间[0,255],逐层保存为PNG格式图片输出。
第二归一化子单元113,用于将所述DICOM文件中位于横轴、纵轴及数轴上的像素点间隔值进行归一化处理,截取目标区间内的CT值,将所述CT值标准化至标准区间,以生成胸部CT图像。读取DICOM文件中的像素点间隔值,将在横轴、纵轴与数轴上的所有像素点间隔值均归一化至1mm,截取在目标区间[-1000,400]内的CT值,并将CT值标准化至标准区间[0,255],并以三维NPY的格式保存。
因此,预处理单元11对DICOM文件进行预处理,可有效还原DICOM文件中CT图像的真实CT值,并选取肺部感兴趣区域的CT值。
所述分割单元12包括:
分割子单元121,用于对所述胸部CT图像的CT值矩阵进行分割,生成二值矩阵,其中,将所述胸部CT图像中小于预设像素的像素值置为第一基准值,大于预设像素的像素值置为第二基准值。用-320作为阈值,对CT值矩阵进行分割,生成二值矩阵。具体地,将小于-320的像素值置为1(即第一基准值),将大于-320的像素值置为2(即第二基准值)。
标记子单元122,用于对所述二值矩阵进行三维连通域标记,生成标签矩阵,并在所述标签矩阵上设置背景标签。对所述二值矩阵进行三维连通域标记,生成标签矩阵,并分别在标签矩阵的左上角和右下角采点作为背景标签。
标签子单元123,用于在所述二值矩阵中把标签等于背景标签的像素值置为第二基准值。具体地,在二值矩阵中把标签等于背景标签的像素值置为2(即第二基准值)。
填充子单元124,用于对所述二值矩阵中的像素值作减一处理,并填充最大三维连通域内的像素值。将二值矩阵中的每个像素值-1,并填充最大三维连通域内的像素值。例如,值为2的像素值,经减一处理后,置为1;值为2的像素值,经减一处理后,置为0。
反转子单元125,用于反转所述二值矩阵,并保留所述最大三维连通域,其中,像素值为第一基准值的区域为肺部区域。具体地,把二值矩阵反转,并保留最大三维连通域,此时像素值为1((即第一基准值))的区域为肺部区域。
连通域计算子单元126,用于计算反转后的二值矩阵的三维连通域,将所述三维连通域中心点坐标高度小于预设高度的区域及三维连通域容积小于预设容积的区域置为背景。对二值矩阵计算三维连通域,将三维连通域中心点坐标高度小于25%的图像高度(即预设高度)的区域置为背景,并将三维连通域容积小于最大三维连通域容积30%(即预设容积)的区域置为背景。
乘积子单元127,用于把所述二值矩阵与预设值进行乘积运算,以生成肺部掩膜。所述预设值优选为255,因此,把二值矩阵乘以255,以生成肺部掩膜。
因此,分割单元12从胸部CT图像中分割出肺部掩膜,可将肺区从胸部CT图像中分割出来,从而有效避免其它胸部部位对肺结节的预测造成干扰。
所述修补单元13包括:
像素计算子单元131,用于逐层计算所述肺部掩膜的掩膜区域的像素点个数。
图像提取子单元132,用于提取所述像素点个数不少于预设个数的胸部CT图像。优选地,所述预设个数为2000个,但不以此为限制,可根据实际情况进行调整。
腐蚀子单元133,用于判断所述掩膜区域是否贴近所述胸部CT图像的边缘,判断为否时,则对所述胸部CT图像进行二值腐蚀操作。具体地,可查看掩膜区域是否贴近胸部CT图像的边缘,若掩膜区域在距离胸部CT图像边界上下左右各10个像素点以外的区域,则对胸部CT图像进行基于2个像素值为半径的核的二值腐蚀操作。
闭操作子单元134,用于判断所述掩膜区域是否贴近腐蚀后胸部CT图像的边缘,判断为否时,则对所述胸部CT图像进行基于第一半径的二值闭操作,否则对所述胸部CT图像进行基于第二半径的二值闭操作。具体地,查看掩膜区域是否贴近胸部CT图像的边缘,若掩膜区域在距离胸部CT图像边界上下左右各10个像素点以外的区域,则对胸部CT图像进行基于10个像素值为半径的核的二值闭操作,否则对图像进行基于5个像素值为半径的核的二值闭操作。
轮廓计算子单元135,用于将距离所述胸部CT图像边缘预设像素值的区域标为第三基准值,计算所述掩膜区域的轮廓信息,对所述掩膜区域内部的空洞进行填充。具体地,将距离胸部CT图像边界2个像素值的区域标为0(即第三基准值),对掩膜区域用Robert算子计算其轮廓信息,并对掩膜内部的空洞进行填充。
修复子单元136,用于计算所述掩膜区域的连通区域的数量,若所述连通区域的数量为预设数量,则采用滚球法修复所述掩膜区域,若所述连通区域的数量大于预设数量,则分别获取两个最大的连通区域的凸包区域,当所述凸包区域的凸包面积不大于预设面积时,将所述凸包区域作为新的肺部掩膜,否则采用滚球法修复所述连通区域。优选地,所述预设数量为1,所述预设面积为原连通区域面积2倍。工作时,计算掩膜区域的连通区域;如果连通区域个数为1,则对该掩膜区域的轮廓采用滚球法进行修复,使其变得平滑;如果连通区域的个数不少于2(即大于1),则针对最大的两个连通区域,分别获取其凸包区域,当凸包面积不大于原连通区域面积2倍时,采取其作为新的肺部掩膜,否则对该连通区域的边缘采用滚球法进行修复;并将修补后的肺部掩膜存为PNG格式。
由上可知,本发明采用对肺部掩膜二维切片进行分析的方法进行修补,基于肺部掩膜是否贴近图像边界10个像素点来设定以2个像素值为半径的核的二值腐蚀操作,以及设定以5或10个像素点为半径的核的二值闭操作,并对2个像素点宽的图像边界区域用0值填充。以上方法与现有的形态学处理相比,考虑到二值形态学操作可能会使掩膜超出图像边界的情况,从而避免填充空洞、分割肺区等后续处理上表现不佳的情况。
进一步,所述滚球法的步骤如下:步骤1:在当前点的法线方向,向肺外延申30个像素值作为滚球球心位置,以30个像素值为半径作当前点的相切球;步骤2:如果相切球与后续肺部轮廓点存在多于一个的交点,则选取交点中与当前点距离最近的点,并删除当前点与最近点之前的轮廓点;否则转入步骤1处理下一个轮廓点。针对现有技术滚球法用于修补肺部掩膜轮廓对不同的球半径适应不同的凹损程度的情况,本发明采用先考虑采用凸包方法,若凸包面积高于原掩膜面积两倍时再考虑滚球法用于修补的做法,以降低滚球法半径对修补肺部掩膜的影响。
如图10所示,所述检测模块2包括:
逻辑运算单元21,用于对所述胸部CT图像及修补后的肺部掩膜进行逻辑与运算,生成肺分割图像。
提取单元22,用于逐层计算所述肺部掩膜的和,并根据所述和从所述肺分割图像中提取目标肺分割图像。具体地,依据逐层计算的肺部掩膜的和,排除和小于255000的肺分割图像,从而提取出目标肺分割图像。
合成单元23,用于将连续三片目标肺分割图像的灰度图像合成为三通道肺部图像。具体地,以2个切片为间隔,获取目标肺分割图像的上下层,并将连续的三片目标肺分割图像的灰度图像合成为一片3×512×512的彩色三通道RGB肺部图像(即三通道肺部图像)。
YOLO v3单元24,用于将所述三通道肺部图像输入预先训练好的二维YOLO v3神经网络,输出可疑区域预测框的坐标、可疑区域预测框包含目标的置信度及目标属于肺结节的分类概率。需要说明的是,所述二维YOLO v3神经网络的特征提取部分基于DarkNet-53结构,检测部分基于FPN架构。训练与预测二维YOLO v3神经网络时,输入为单个病人的每一张三通道肺部图像,输出为每张三通道肺部图像上可疑区域预测框的坐标、可疑区域预测框包含目标的置信度及目标属于肺结节的分类概率。
过滤单元25,用于根据所述置信度对所述可疑区域预测框进行过滤处理。具体地,过滤置信度低于0.7的可疑区域预测框。
融合单元26,用于通过非极大值抑制法,对过滤后的可疑区域预测框进行融合处理。具体地,采取非极大值抑制法,对交叠率不低于0.3的可疑区域预测框进行融合。最后,将单个病人的多张三通道肺部图像预测,并通过融合处理后,输出整理归纳到CSV格式保存。
需要说明的是,由于肺部切片上下层信息在肺部数轴上的像素间隔比较小的时候是很相近的,使用二维YOLO v3神经网络预测的现有处理方法是将原有的肺部CT图像切片均进行预测,这样会产生许多上下层均指向同一感兴趣区域的冗余的预测数据,且延长检测时间,降低效率。与现有技术不同的是,本发明将从DICOM文件读取的像素矩阵在数轴上标准化至间隔1mm,依据计算肺部掩膜去除不包含肺部的切片,将三片连续的肺部切片合成一片三通道肺部图像,与现有技术相比,既减少了后面网络需要处理的图片数量,又较完整地保留了图像信息。
如图11所示,所述识别模块3包括标准化单元31、3D Dense Net单元32、C3D单元33及预测单元34。具体地:
所述标准化单元31包括:
预测框计算子单元311,用于根据所述可疑区域预测框的坐标,计算所述可疑区域预测框在三通道肺部图像上的中心点坐标、长度及宽度。从预先保存的三维NPY文件中读取像素点间隔均标准化至1mm的胸部CT图像。读取可疑区域预测框的坐标,计算可疑区域预测框的中心点坐标、长度及宽度,此时的可疑区域预测框的坐标是基于每一张512×512三通道肺部图像。
归一化子单元312,用于在所述胸部CT图像上截取第一预测立方框,并对所述第一预测立方框进行归一化处理,以生成标准化矩阵。具体地,获取可疑区域预测框在三通道肺部图像上的中心点坐标、长度及宽度,并在胸部CT图像上截取32×32×32的立方体(即第一预测立方框),并将其值归一化。
3D Dense Net单元32将标准化矩阵输入3D Dense Net神经网络以预测出肺结节的置信度。需要说明的是,3D Dense Net神经网络在搭建、训练与预测时,输入为单通道的32×32×32标准化矩阵,输出为立方体(即第一预测立方框)包含肺结节的概率(即置信度)。
C3D单元33将标准化矩阵输入C3D神经网络以预测出肺结节的良恶性程度。需要说明的是,C3D神经网络的搭建、训练与预测时,输入为单通道的32×32×32标准化矩阵,输出为肺结节的良恶性程度。
所述预测单元34包括:
数轴子单元341,用于从所述3D Dense Net神经网络预测出的肺结节的置信度中,提取置信度大于预设值的可疑区域,将所述可疑区域按置信度由高到低排序,并以所述可疑区域的长度及宽度中的最小值作为可疑区域的数轴上的高。具体地,获取3D Dense Net神经网络输出的置信度大于0.75(预设值)的可疑区域,将其按置信度由高到低排序,并以可疑区域的长度及宽度中的最小值作为可疑区域数轴上的高,以此计算第一预测立方框之间的重叠度。
集合子单元342,用于根据公式
计算所述数轴上重叠的第一预测立方框的集合。
具体地,计算数轴上存在重叠与否的公式如下:
其中:
z1、z2分别为两第一预测立方框在数轴上中心点坐标;
w1、w2分别为两第一预测立方框在俯视图上的宽;
h1、h2分别为两第一预测立方框在俯视图上的高。
需要说明的是,第一预测立方框在数轴上的中心点距离小于第一预测立方框的最短半径之和,则代表两第一预测立方框在数轴上存在重叠。
重叠度子单元343,用于计算所述集合中第一预测立方框在俯视图上的平面框的重叠度。对数轴上重叠的第一预测立方框,计算其在俯视图上的平面框的重叠度。
融合子单元344,用于将所述重叠度不低于预测重叠度的第一预测立方框进行融合以生成目标预测框,其中,
所述目标预测框的置信度为第一预测立方框集合中置信度的最大值,
所述目标预测框的良恶性度为第一预测立方框集合中良恶性度的最大值,
所述目标预测框的顶点坐标
x
i为第一预测立方框的顶点坐标,conf
i为第i个预测框对应的置信度,
为每个第一预测立方框的权值,每个第一预测立方框对应的权值的总和等于1,任意两个可融合的第一预测立方框对应的权值之比等于其置信度之比。
最后,输出融合后的目标预测框,并以CSV格式保存。
需要说明的是,传统的相邻预测框融合方法多见于二维预测框,主要有用于如FPN、YOLO等检测网络后处理的非极大值抑制法,基于两中心点距离与两半径之和的比例及两预测框间面积比例的融合法等。与现有技术不同的是,本发明可对3D Dense Net神经网络输出的相邻预测框进行融合处理。具体地,本发明将非极大值抑制法拓展至三维预测框的改良版,考虑到三维空间中两预测框的重叠度阈值相对二维的重叠度更难设定,重叠的情况类型更多,因而采用俯瞰图重叠度的思想,将数轴上相邻或相近的预测框映射到同一层,再对比其映射面积的重叠度,依据此重叠度进行融合更易于识别冗余的三维预测框。
如图12所示,所述分割模块4包括归一化单元41及优化单元42。具体地:
所述归一化单元41包括:
目标计算子单元411,用于根据所述目标预测框的坐标,计算目标预测框在三通道肺部图像上的中心点坐标、长度及宽度。具体地,读取目标预测框的坐标,计算目标预测框的中心点坐标、长度及宽度。
截取子单元412,用于在所述胸部CT图像上截取第二预测立方框,并对所述第二预测立方框进行归一化处理,以生成归一化矩阵。具体地,在胸部CT图像上截取48×48×48的立方体(即第二预测立方框),并将其值归一化。
3D U-Net子单元413,用于将所述归一化矩阵输入3D U-Net神经网络进行分割,输出肺结节分割区域中每个像素点是结节体素的置信度。需要说明的是,3D U-Net神经网络的搭建、训练与预测时,输入为单通道的48×48×48归一化矩阵,输出为同等大小矩阵中每个像素点是结节体素的概率(即置信度)。
所述优化单元42包括:
连通域提取子单元421,用于从所述3D U-Net神经网络预测出的结节体素的置信度中,提取置信度大于预设值的肺结节分割区域,对所述肺结节分割区域进行连通域标记,并提取与所述目标预测框重合度最大的连通域。具体地,获取3D U-Net神经网络输出的置信度大于0.5(预设值)的肺结节分割区域,对肺结节分割区域进行连通域标记,选取其与目标预测框重合度最大的一个连通域作为输出,避免48×48×48归一化矩阵中存在另一个结节对当前肺结节分割区域的计算造成影响。
重叠度计算子单元422,用于计算所述连通域与所述目标预测框的连通重叠度。
第一OTSU子单元423,用于若所述连通重叠度低于预设重叠度,对所述目标预测框内图像进行OTSU分割,并获取肺结节分割区域与目标预测框的分割重叠度;
第二OTSU子单元424,用于若所述连通重叠度大于所述分割重叠度,则以所述3DU-Net神经网络输出的肺结节分割区域作为目标分割结果,否则以OTSU分割的结果作为目标分割结果。
若连通重叠度IOUU-Net低于30%(预设重叠度),对目标预测框内图像进行OTSU分割;然后,再次获取肺结节分割区域与目标预测框的分割重叠度IOUOtsu,若此时,IOUU-Net≥IOUOtsu,则以3D U-Net神经网络输出的肺结节分割区域作为目标分割结果输出,否则以OTSU分割的结果作为目标分割结果输出;最后,将目标分割结果的坐标信息存为CSV,并保存一份以红色线条作为勾勒颜色的病灶勾画图片。
因此,本发明将3D U-Net神经网络输出与形态学后处理相结合。具体地,本发明选取了与预测框重叠度最大的连通区域,并基于预测框内区域在预测框中的占比,考虑是否采用基于OTSU的病灶分割,并基于两种分割与原预测框的重叠程度决定分割的输出;同时,本发明结合形态学的分割,对比直接采用3D U-Net神经网络输出,补充了一些可解释性,提高分割区域更贴合病灶本身的可能性。
由上可知,本发明具有以下有益效果:
本发明利用三通道肺部图像的方法,使得二维YOLO v3神经网络可以充分利用上下层信息,在保留二维YOLO v3神经网络参数少、预测速度快的优势的同时,排除二维YOLOv3神经网络采用平面输入难以排除的血管干扰,并减少由于上下层数据高度相似导致的冗余输入输出;
本发明利用多个3D Dense Net神经网络,提升识别网络的泛化性能;并利用立方体重叠度与俯瞰图重叠度相结合判断的方式,将二维的非极大值抑制法拓展至三维;
本发明利用形态学分割与深度学习分割互补的方法,避免由于单一分割方法导致的假阳性、假阴性、黏连血管导致的偏移等问题,进一步使分割区域与病灶更加贴合。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。