一种基于深度学习的CT图肺结节检测方法与流程

文档序号:15449448发布日期:2018-09-14 23:47阅读:688来源:国知局

本发明涉及一种基于深度学习的ct图肺结节检测方法。



背景技术:

随着人口数量、肺部医疗需求的不断增加,迫切需要在肺部医疗方面加快结节检测速度与质量。传统的肺部结节检测主要靠的是进行ct扫描之后人工筛选,即使是具有丰富经验的医生在进行结节筛选的时候也需要大量的时间。绝大多数临床诊断肺癌病例已多为晚期,失去手术治疗机会,肺癌预后极差。

得益于人工智能技术的发展,各类行业中的原本需要大量人工的任务效率都得到的提升。其中人工智能技术中的深度卷积神经网络在物体检测与分割方面有着出色的表现。物体检测指的是应用特殊的深度神经网络模型得到物体在图片中的位置并得到一固定面积的框将物体包含于内。而物体分割指的是在一张图片中不仅仅找出物体的位置并且用紧贴物体的轮廓的图形将图体圈出来。

实施对肺结节的检测的目的是改善肺癌生存,提前进行治疗,降低肺癌死亡率,但是此项工作需要医生投入大量的精力,效率较低,若对每个病人都进行筛查则耗费大量的医疗资源,且依赖医生的主观判断,多个医生对同一个病人的ct图进行判定可能有不同的结果。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于深度学习的ct图肺结节检测方法,能自动根据肺部的ct图像进行检测,减少医生的负担。

本发明的目的是通过以下技术方案来实现的:一种基于深度学习的ct图肺结节检测方法,包括以下步骤:

s01:获得肺部ct图像,并转换为dicom格式的图像;

s02:获取转换为dicom格式的图像的格式数据中的病人信息及ct图的长和宽及图片像素之间的间隔;同时对图像的ct值进行归一化预处理,并对一定范围以外的图像ct值都统一为端点值;

s03:对步骤s02预处理完成的ct图像进行肺容积分割,只保留肺部的图像;

s04:对图像进行候选结节检测,使用u-net卷积神经网络,找到候选结节的位置,输出一张带有候选结节位置标记的二维图像;

s05:在获取到候选结节之后,将候选结节送入消除假阳性的分类器进行二次检测;

其中步骤s04包括以下子步骤:

s041:输入一组大小为128*128、有32层的肺容积分割完成的图像;

s042:进行卷积核为2*2的最大池化,将原始图像转换成特征图大小为64*64,数量为32层的图像;

s043:再进行2*2的最大池化,将64*64*32的图像转换成特征图大小为32*32、数量为32层的图像;同时又为了增加特征图的数量,此处使用了两种不同的卷积核,最终特征图的数量变为32*2=64,即得到了特征图大小为32*32,数量为64的图像;

s044:再进行2*2的最大池化,将32*32*64的图像转换成特征图大小为16*16,数量为64层的图像;

s045:再进行2*2的最大池化,将16*16*64的图像转换成特征图大小为8*8,数量为64层的图像;

s046:进行2*2的反卷积,将8*8*64的图像转换成特征图大小为16*16,数量为64层的图像;

s047:进行2*2的反卷积,将16*16*64的图像转换成特征图大小为32*32,数量为64的层;

s048:为了增加特征图的数量便于检测肺结节,将步骤s047与步骤s043中得到的层拼接起来,得到特征图大小为32*32,数量为64+64=128层的图像;最终输出四维数据(p,z,y,x),其中p为是肺结节的概率,zyx是结节中心的三维坐标;

s049:将坐标映射回原图,用肉眼查看是否正确;

步骤s05包括以下子步骤:

s051:输入多组大小为60*40、有7层的原始图像,并依次执行步骤s052~s058的步骤;

s052:每张图像提取rgb3个通道信息,其中三个通道的信息可以直接对每层分别操作获取,得到特征图的大小为60*40、数量为21的图像;

s053:对3个通道的图像分别使用大小为7*7*3的3d卷积核进行卷积操作,同时此处为了增加特征图的数量,采用了两种不同的3d卷积核,最终得到特征图的大小为54*34,数量为15*2的图像;7*7表示空间维度,3表示时间维度,也就是说每次操作3层图像;

其中,得到特征图的大小为54*34的原因是:60*40的原始图像经过7*7的卷积操作,((60-7)+1)*((40-7)+1)=54*34,得到了54*34的图像;而特征图的数量为15*2的原因是:原始数量为21,每次操作3帧图像,且为了增加特征图的数量用了两种不同的3d卷积核,(((7-3)+1)*3)*2=15*2,所以得到数量为15*2的图像;

s054:再对图像使用大小为2*2的降采样操作,降低空间分辨率,降采样之后的特征图数量不变为15*2,图像大小变为(54/2)*(34/2)=27*17;

s055:再对图像分别使用大小为7*6*3的3d卷积核进行卷积操作,得到特征图的大小为21*12、数量为9*6的图像;同样为了增加特征图的数量,采用了三种不同的卷积核分别对两组特征图进行卷积操作;

其中,得到特征图的大小为54*34的原因是:27*17的图像经过7*7的卷积操作,((27-7)+1)*((17-6)+1)=54*34;

而在步骤s053中可知,r通道特征图数量=g通道特征图数量=b通道特征图数量=(7-3)+1)=5;因此此时对一组图像进行7*6*3卷积操作,每次操作3层图像,(5-3)+1=3,则特征图数量为3*3=9,而一共有2*3=6组,则此时的特征图数量为9*6;

s056:再对图像使用大小为3*3的最大池化降采样操作,降采样之后得到特征图的大小为(21/3)*(12/3)=7*4,数量为9*6的图像;

s057:在此阶段,r、g、b通道数量为3,所以时间维度的尺寸已相对较小,仅在该层的空间维度上执行卷积操作,再对图像使用卷积核大小为7*4的卷积操作得到特征图的大小为1*1、数量为128的图像,其中128为经验值;

s058:最后进行全连接操作,得到3个通道所有的信息,组合起来得到最终的特征描述,将这些特征值拿去训练得到一个模型;

s059:将步骤s04中得到的候选结节输入该模型,进行二次检测,来输出判断识别的结果。

进一步地,步骤s01包括:获得肺部ct图像后,调用simpleitk库中的readimage函数对图像进行读取,并使用getarrayfromimage函数得到像素值图像,得到图像的像素值,保存在numpy数组中。

进一步地,所述的对图像的ct值进行归一化预处理,并对一定范围以外的图像ct值都统一为端点值包括:对图像进行归一化,将图像ct值的范围从[-1000,400]归一化为[0,1];同时400以上的ct值都统一成400,使每一个像素都可以平等权重。

进一步地,步骤s03中所述的肺容积分割包括:

(1)根据图形学对图像中的像素进行标注,使相邻的在同一区域的像素有相同的标记;在标注的过程中由于实际影像没有严格的区域划分,导致存在一些很小的区域,参考周围区域的标记将小区域融合进其他的面积较大的区域;

(2)保留左右肺叶,对外部的区域阈值填充:分别以阈值3和4产生两个掩膜,然后处理这两个掩膜,具体过程为:计算掩膜中的每个点的值的和,如果和大于零对掩膜进行形态学处理计算其凸包;接着如果凸包中的值之和大于1.5倍的原来掩膜中的值的和,就用形态学处理过后的掩膜替换掉原来的掩膜,否则认为这个掩膜刚好盖住肺部所述掩膜不变;对于掩膜之外的区域,即肺部外的区域用170的阈值进行填充,掩膜内不属于肺部的区域也使用170的阈值进行填充;

(3)进行数据重采样,先获得dicom格式数据的坐标中心、像素间距,再通过插值把图像的分辨率统一起来,即将原始图像转换为1mm*1mm*1mm的分辨率;在转换分辨率的时候使用最临近插值法;

(4)按uint8类型、灰度图重新保存图片;

(5)将ct图从世界坐标转换成体素坐标,保存原来的坐标信息。进行世界坐标转化的同时,还需要根据肺部区域,将用于训练神经网络的标注数据也转换成体素坐标;其中,转换坐标的时候使用了开始读取的间距和坐标原点的信息。

本发明的有益效果是:

(1)本发明通过实现肺部结节自动检测,减少了肺结节标注需要大量医疗资源的问题,为肺癌病人提前发现了治疗,降低死亡率的机会。

(2)在预处理过程中,采用掩膜值计算的方式,能更好得找到刚好覆盖住肺部的掩膜,这样在检测肺结节的时候图像中干扰的地方更少。

附图说明

图1为本发明方法流程图;

图2为步骤s04子流程示意图;

图3为步骤s05子流程示意图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案:

本实施例中的ct图为完整的人体胸部ct图像,首先将原始ct图转化为dicom格式的图像,肺部分割模块的输入是ct图像经过预处理之后的图像,在一张图中,肺部区域只占左右两部分。结节只可能在肺部,因此外部的图像是多余的,需要用肺容积分割,即输出只保留肺部部分的图。经过肺容积分割之后,将图输入进行候选结节区域分割和判定,经过处理之后输出候选结节。此时的候选结节具有较大的误差,需将候选结节送入分类器,最终输出得到结果。

具体如图1所示,一种基于深度学习的ct图肺结节检测方法,包括以下步骤:

s01:获得肺部ct图像,并转换为dicom格式的图像;具体地步骤如下:获得肺部ct图像后,调用simpleitk库中的readimage函数对图像进行读取,并使用getarrayfromimage函数得到像素值图像,得到图像的像素值,保存在numpy数组中。

由于肺结节图像在获取时,不可避免的会产生设备成像的误差和干扰,如图像灰度不均匀、个体差异明显等情况,所以要对图像进行预处理,使图像能够尽可能多的反映出医疗所需要的信息。

具体地,s02:获取转换为dicom格式的图像的格式数据中的病人信息及ct图的长和宽及图片像素之间的间隔;同时对图像的ct值进行归一化预处理,并对一定范围以外的图像ct值都统一为端点值。优选地,在本实施例中,对图像进行归一化,将图像ct值的范围从[-1000,400]归一化为[0,1];同时400以上的ct值都统一成400,使每一个像素都可以平等权重。

s03:对步骤s02预处理完成的ct图像进行肺容积分割,只保留肺部的图像,具体地,在本实施例中,包括以下子步骤:

(1)根据图形学对图像中的像素进行标注,使相邻的在同一区域的像素有相同的标记;在标注的过程中由于实际影像没有严格的区域划分,导致存在一些很小的区域,参考周围区域的标记将小区域融合进其他的面积较大的区域。

(2)保留左右肺叶,对外部的区域阈值填充:分别以阈值3和4产生两个掩膜,然后处理这两个掩膜,具体过程为:计算掩膜中的每个点的值的和,如果和大于零对掩膜进行形态学处理计算其凸包;接着如果凸包中的值之和大于1.5倍的原来掩膜中的值的和,就用形态学处理过后的掩膜替换掉原来的掩膜,否则认为这个掩膜刚好盖住肺部所述掩膜不变;对于掩膜之外的区域,即肺部外的区域用170的阈值进行填充,掩膜内不属于肺部的区域(比如属于骨头的区域)也使用170的阈值进行填充。本步骤的效果在于:能更好得找到刚好覆盖住肺部的掩膜,这样在检测肺结节的时候图像中干扰的地方更少。

(3)进行数据重采样,先获得dicom格式数据的坐标中心、像素间距,再通过插值把图像的分辨率统一起来,即将原始图像转换为1mm*1mm*1mm的分辨率;在转换分辨率的时候使用最临近插值法。

(4)按uint8类型、灰度图重新保存图片。

(5)将ct图从世界坐标转换成体素坐标,保存原来的坐标信息。进行世界坐标转化的同时,还需要根据肺部区域,将用于训练神经网络的标注数据也转换成体素坐标。由于在ct图扫描的时候是世界坐标,这个坐标是以ct机的扫描的中心作为图片的坐标中心,但是这样就不利于计算机处理(不利于转换成数组的格式进行各种形态学、分割肺部的处理),所以就需要转换成计算机中表示3d的体素坐标。转换坐标的时候使用了开始读取的间距和坐标原点的信息。

在步骤s03完成后,只保留了左右肺叶。

s04:对图像进行候选结节检测,使用u-net卷积神经网络,找到候选结节的位置,输出一张带有候选结节位置标记的二维图像;其中如图2所示,步骤s04包括以下子步骤:

s041:输入一组大小为128*128、有32层的肺容积分割完成的图像;

s042:进行卷积核为2*2的最大池化,将原始图像转换成特征图大小为64*64,数量为32层的图像;

s043:再进行2*2的最大池化,将64*64*32的图像转换成特征图大小为32*32、数量为32层的图像;同时又为了增加特征图的数量,此处使用了两种不同的卷积核,最终特征图的数量变为32*2=64,即得到了特征图大小为32*32,数量为64的图像;

s044:再进行2*2的最大池化,将32*32*64的图像转换成特征图大小为16*16,数量为64层的图像;

s045:再进行2*2的最大池化,将16*16*64的图像转换成特征图大小为8*8,数量为64层的图像;

s046:进行2*2的反卷积,将8*8*64的图像转换成特征图大小为16*16,数量为64层的图像;

s047:进行2*2的反卷积,将16*16*64的图像转换成特征图大小为32*32,数量为64的层;

s048:为了增加特征图的数量便于检测肺结节,将步骤s047与步骤s043中得到的层拼接起来,得到特征图大小为32*32,数量为64+64=128层的图像;最终输出四维数据(p,z,y,x),其中p为是肺结节的概率,zyx是结节中心的三维坐标;

s049:将坐标映射回原图,用肉眼查看是否正确。

其中,多次进行最大池化的原因:一般最大池化使用的都是2*2的窗口(窗口如果过大,会影响提取出来的特征值,误差较大),所以需要降低维度就需要多次进行2*2的最大池化。

s05:在获取到候选结节之后,将候选结节送入消除假阳性的分类器进行二次检测;其中,如图3所示,包括以下子步骤:

s051:输入多组大小为60*40、有7层的原始图像(一组图像有7层),并依次执行步骤s052~s058的步骤。

s052:每张图像提取rgb3个通道信息,其中三个通道的信息可以直接对每层分别操作获取,得到特征图的大小为60*40、数量为21的图像。

其中,特征图的数量为21是因为:三个通道的信息可以直接对每层分别操作获取,所以数量为7,同理横坐标梯度、纵坐标梯度的数量也为7。因此特征图的数量就为7+7+7=21。

s053:对3个通道的图像分别使用大小为7*7*3(7*7表示空间维度,3表示时间维度,也就是说每次操作3层图像)的3d卷积核进行卷积操作,同时此处为了增加特征图的数量,采用了两种不同的3d卷积核,最终得到特征图的大小为54*34,数量为15*2的图像。

其中,得到特征图的大小为54*34的原因是:60*40的原始图像经过7*7的卷积操作,((60-7)+1)*((40-7)+1)=54*34,得到了54*34的图像。

而特征图的数量为15*2的原因是:原始数量为21,每次操作3帧图像,且为了增加特征图的数量用了两种不同的3d卷积核,(((7-3)+1)*3)*2=15*2,所以得到数量为15*2的图像。

s054:再对图像使用大小为2*2的降采样操作,降低空间分辨率,降采样之后的特征图数量不变为15*2,图像大小变为(54/2)*(34/2)=27*17。

s055:再对图像分别使用大小为7*6*3的3d卷积核进行卷积操作,得到特征图的大小为21*12、数量为9*6的图像;同样为了增加特征图的数量,采用了三种不同的卷积核分别对两组特征图进行卷积操作;

其中,得到特征图的大小为54*34的原因是:27*17的图像经过7*7的卷积操作,((27-7)+1)*((17-6)+1)=54*34。

而在步骤s053中可知,r通道特征图数量=g通道特征图数量=b通道特征图数量=(7-3)+1)=5;因此此时对一组图像进行7*6*3卷积操作,每次操作3层图像,(5-3)+1=3,则特征图数量为3*3=9,而一共有2*3=6组,则此时的特征图数量为9*6。

s056:再对图像使用大小为3*3的最大池化降采样操作,降采样之后得到特征图的大小为(21/3)*(12/3)=7*4,数量为9*6的图像。

s057:在此阶段,r、g、b通道数量为3,所以时间维度的尺寸已相对较小,仅在该层的空间维度上执行卷积操作,再对图像使用卷积核大小为7*4的卷积操作得到特征图的大小为1*1、数量为128的图像,其中128为经验值。

s058:最后进行全连接操作,得到3个通道所有的信息,组合起来得到最终的特征描述,将这些特征值拿去训练得到一个模型;

s059:将步骤s04中得到的候选结节输入该模型,进行二次检测,来输出判断识别的结果。

其中,上述方法均可以在硬件终端中进行实现,所述的硬件终端包括图像输入模块、图像输出模块、存储器和与图像输入模块、图像输出模块、存储器连接的cpu,其中存储器中存储一组程序代码,所述cpu用于调用所述存储其中存储的程序代码,执行上述方法步骤操作。

本发明是通过实施例来描述的,但并不对本发明构成限制,参照本发明的描述,所公开的实施例的其他变化,如对于本领域的专业人士是容易想到的,这样的变化应该属于本发明权利要求限定的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1