公开/公告号CN106056595A
专利类型发明专利
公开/公告日2016-10-26
原文格式PDF
申请/专利权人 浙江德尚韵兴图像科技有限公司;
申请/专利号CN201610362069.8
申请日2016-05-26
分类号G06T7/00(20060101);G06F19/00(20110101);
代理机构33212 杭州中成专利事务所有限公司;
代理人周世骏
地址 310012 浙江省杭州市文三路90号东部软件园6号楼科技大厦8层东801/802室
入库时间 2023-06-19 00:43:59
法律状态公告日
法律状态信息
法律状态
2019-09-17
授权
授权
2019-06-04
著录事项变更 IPC(主分类):G06T7/00 变更前: 变更后: 申请日:20160526
著录事项变更
2016-11-23
实质审查的生效 IPC(主分类):G06T7/00 申请日:20160526
实质审查的生效
2016-10-26
公开
公开
技术领域
本发明是关于辅助医学诊断领域,特别涉及基于深度卷积神经网络自动识别甲状腺结节良恶性的方法。
背景技术
近年来,随着计算机技术及数字图像处理技术的飞速发展,数字图像处理技术越来越多的应用于辅助医学诊断领域,其原理就是对通过不同方式获取的医学图像进行分割,重构,配准,识别等图像处理技术,从而获得有价值的医学诊断信息,主要目的在于使医生观察病变部位更加直接和清晰,为医生临床确诊提供辅助参考,具有非常重要的现实意义。
甲状腺结节是现在普遍存在的一种流行病,有调查指出在人群中甲状腺结节的发生率将近50%,但仅有4%-8%的甲状腺结节在临床触诊中可被触及。甲状腺结节有良、恶性之分,其恶性发生率为5%-10%。早期发现病灶对鉴别其良恶性、临床治疗和手术选择有重要意义。基于超声成像技术的甲状腺结节超声检查因可实时成像、检查费用相对较低、对病患无创伤等。而且甲状腺位于表层,适合超声图像诊断。而医生诊断甲状腺的良恶性主要靠穿刺活组织细胞检查,这样的工作量会就会很大,并且医生诊断超声甲状腺图像的结果往往受到医学成像设备的成像机理、获取条件、显示设备等因素的影响而极易造成误诊或漏诊。因此,利用计算机实现甲状腺图像辅助诊断十分必要。但是固有的成像机制使得临床采集到的超声甲状腺肿瘤图像质量均较差,导致辅助诊断的准确性和自动化均受到影响,所以目前的分割甲状腺结节最多的是基于活动轮廓的半自动分割,分类主要是人工选取出特征,然后利用SVM,KNN,决策树等分类识别,这些分类器只能对小样本数据可以有较好的效果,但是医学数据是海量的,而且大样本的分类识别对医学诊断才能有更好的辅助作用。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种基于深度卷积神经网络自动识别甲状腺结节良恶性的方法。为解决上述技术问题,本发明的解决方案是:
提供基于深度卷积神经网络自动识别甲状腺结节良恶性的方法,包括下述过程:
一、读取甲状腺结节的B超数据;
二、对甲状腺结节图像进行预处理;
三、选取图像利用卷积神经网络,即CNN(convolutional neural network),自动学习分割出结节部分与非结节部分,结节部分就是感兴趣区域,即ROI(region ofinterest),并对结节形状进行细化;
四、将步骤三提取出来的ROI,平均分成p组,利用CNN提取这些ROI的特征,并进行归一化;
五、选出步骤四中p-1组数据做训练集,剩余一组做测试,通过CNN训练出识别模型进行测试;
六、重复步骤五,做p次交叉检验,得到识别模型的最佳参数,最终确定基于深度卷积神经网络自动识别甲状腺结节良恶性的辅助诊断系统;
所述过程一具体为:读取甲状腺结节图像(可以是图片格式,也可以是标准的dicom图片),包括至少5000张良性结节的图像和至少5000张恶性结节的图像;
所述过程二具体为:将过程一读取的甲状腺结节图像,先进行图像灰度化,并利用周围像素点的灰度值去掉超声图像中医生为测量结节相关量做的标记,再利用高斯滤波去噪,最后利用灰度直方图均衡化增强对比度,得到预处理后的增强图像;
所述过程三具体为:
第1步:选取经过程二预处理后的增强图像10000张,包括良恶性结节各5000张;
第2步:对每一张图片,首先(由专家)手动截取出结节部分与非结节部分,然后通过CNN训练出自动分割的模型;
所述CNN是由13层卷积层、2层下采样层组成的网络结构;卷积层的卷积核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;卷积层的步长分别是:前两个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;
通过CNN训练出自动分割的模型的具体方法为:
(1)通过CNN的卷积层与下采样层自动学习特征,并提取出特征,具体步骤为:
步骤A:在一个卷积层,上一层的特征maps被一个能够学习的卷积核进行卷积,然后通过一个激活函数,就能得到输出特征map;每一个输出是卷积核卷积一个输入或者组合多个卷积输入的值(这里我们选择的是组合卷积多个出入maps的值):
>
其中,符号*表示卷积运算符;所述l表示层数;所述i表示l-1层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述Mj表示选择的输入maps的集合;所述
这一步还需要进行梯度计算,以更新灵敏度,灵敏度用于表示b变化多少,误差会变化多少:
其中,所述l表示层数;所述j表示l层的第j个神经元节点;所述o表示每个元素相乘;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述sl=Wlxl-1+bl,xl-1是指l-1层的输出,W为权重,b为偏置;所述f是激活函数,这里取sigmoid函数
然后对l层中的灵敏度map中的所有节点进行求和,快速计算偏置b的梯度:
>
其中,所述l表示层数;所述j表示l层的第j个神经元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,这里
最后利用BP算法,计算卷积核的权值:
>
其中,所述W是权重参数;所述E是误差函数,且
>
其中,所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;b表示偏置,所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,这里
步骤B:下采样层有N个输入maps,就有N个输出maps,只是每个输出map都变小了,则有:
>
其中,所述f是激活函数,这里取sigmoid函数
通过梯度下降方法来更新参数β和b:
>
其中,所述conv2是二维卷积算子;所述rot180是旋转180度;所述’full’是指进行完全卷积;所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,表达式同上,即
步骤C:CNN自动学习特征map的组合,则第j个特征map组合为:
>
s.t.∑iαij=1,and>ij≤1.
其中,符号*表示卷积运算符;所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述f是激活函数,这里取sigmoid函数
(2)利用(1)中提取的特征结合Softmax自动识别出结节,确定好自动分割的模型;具体Softmax识别过程就是给定一个样本,就输出一个概率值,该概率值表示的是这个样本属于类别几的概率,损失函数为:
>
其中,所述m表示共有m个样本;所述c表示这些样本总共可分为c类;所述
>
其中,
(这里使用的是一种新的Softmax分类器,即只有两分类的Softmax分类器,对于一张甲状腺图片来说,根据softmax给出的概率可以得到将所有的结节区域与非结节区域区分开的一个概率图,根据此图可以得到了对结节区域的粗分割;)
(3)利用CNN自动分割所有甲状腺的结节,即区分出结节区域与非结节区域,找到结节区域的边界,并对分割出的结节形状进行细化,即通过腐蚀、膨胀形态学算子进行填洞以及去掉与非结节区域的连接;
第3步:利用第2步得到的模型对所有的甲状腺结节图片(即10000张图片)进行自动分割,得到ROI,即所有的良恶性结节;
所述过程四具体为:将过程三自动分割出的ROI平均分成p组,对数据进行归一化,即自动分割出结节之后,提取出结节的特征,对这些特征进行线性变换,使结果值映射到[0,1];
所述过程五具体为:利用CNN训练识别模型,对所有ROI提取特征(具体过程与过程三自动分割中提取特征过程的方法是一样的,只不过这里的对象只是针对结节区域,网络结构比自动分割时少了三个卷积层,多了3层全连接层,神经元节点数分别为64,64,1;卷积核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;步长分别是:前三个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;而自动分割部分是针对非结节区域与结节区域同时进行提取特征);
然后利用一种新的Softmax分类,即只有两分类的Softmax分类器,求解一个损失函数的最优值,即优化J(θ),Softmax分类器的类别数c等于2(即良性结节与恶性结节);通过梯度下降方法就能得到属于良性结节还是恶性结节的概率,具体过程与过程三中自动分割过程的方法是一样(只不过这里就是根据这些概率预测出一个分类标签,也就对一个结节进行了良恶性诊断);
所述过程六具体为:重复过程五,即对于p组数据,每次选出p-1组数据训练,余下的做测试,最终得到识别模型的最佳参数,从而就得到基于深度卷积神经网络自动识别甲状腺结节良恶性的辅助诊断系统;
将需要识别的甲状腺结节图像输入到这个辅助诊断系统,即可获得该结节的良恶性诊断。
与现有技术相比,本发明的有益效果是:
本发明不仅借助深度卷积神经网络可以自动的分割出甲状腺结节,弥补了基于活动轮廓等不能解决弱边界问题的不足,而且可以自动学习出提取出有价值的特征组合,避免了人工选取特征的复杂,这样提取出来的特征更有利于找到甲状腺结节良恶性的主要规律信息,提高了识别系统的准确率,并获得了高度的适应性。
附图说明
图1为基于深度卷积神经网络识别甲状腺结节良恶性的流程图。
图2为自动分割与识别甲状腺结节的卷积神经网络结构图。
图3为实施例中所用甲状腺结节的原始图片。
图4为专家画出的图3中甲状腺结节区域的mask图片。
图5为实施例中甲状腺结节的原始图片。
图6为利用CNN自动分割出图5结节区域的效果图片。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
下面的实施例可以使本专业的专业技术人员更全面地理解本发明,但不以任何方式限制本发明。
一种基于深度卷积神经网络自动识别甲状腺结节良恶性的方法,如图1所示,包括以下步骤:
一、读取甲状腺结节的B超数据;
二、对甲状腺结节图像进行预处理;
三、选取图像(包括一样多的良恶性的结节图像)利用卷积神经网络(convolutional neural network(CNN))自动学习分割出结节部分与非结节部分,结节部分就是感兴趣区域(region of interest(ROI)),并对结节形状进行细化;
四、将步骤三提取出来的ROI,平均分成p组,利用CNN提取这些ROI的特征,并进行归一化。
五、选出步骤四中p-1组数据做训练集,剩余一组做测试,通过CNN训练出模型进行测试;
六、重复步骤五,做p次交叉检验,得到识别模型的最佳参数,最终确定基于深度卷积神经网络自动识别甲状腺结节良恶性的辅助诊断系统;
所述过程一具体为:读取甲状腺结节的B超数据,可以是图片格式,也可以是标准的dicom图片。包括至少5000张良性结节的图像和至少5000张恶性结节的图像;在进行过程五时,需要先读入训练集中的所有图片(即p-1组数据)训练出基于深度卷积神经网络自动识别甲状腺结节良恶性的辅助诊断系统,然后读入剩余1组的数据测试该系。使用该系统进行自动识别甲状腺结节良恶性的辅助诊断时,只需读入要诊断的结节的所有图片即可;
所述过程二具体为:将过程一读取的甲状腺结节图像,先进行图像灰度化,并利用周围像素点的灰度值去掉超声图像中医生为测量结节相关量做的标记,再利用高斯滤波去噪,最后利用灰度直方图均衡化增强对比度,得到预处理后的增强图像;
所述过程三具体为:
第1步:选取经过程二预处理后的增强图像10000张,包括良恶性结节各5000张;
第2步:由专家截取出结节部分与非结节部分,然后通过CNN训练出自动分割的模型;这里所述的CNN就是由13层卷积层,2层下采样层组成的网络结构,卷积核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3,步长分别是:前两个卷积层是2,其余的都是1。下采样层的大小都是3x3,步长都是2;具体的卷积神经网络结构如图2所示;
通过CNN训练出自动分割的模型的具体方法为:
(1)通过CNN的卷积层与下采样层自动学习特征,并提取出特征,具体步骤为:
步骤A:在一个卷积层,上一层的特征maps被一个能够学习的卷积核进行卷积,然后通过一个激活函数,就能得到输出特征map;每一个输出是卷积核卷积一个输入或者组合多个卷积输入的值(这里我们选择的是组合卷积多个出入maps的值):
>
其中,符号*表示卷积运算符;所述l表示层数;所述i表示l-1层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述Mj表示选择的输入maps的集合;所述
这一步还需要进行梯度计算,以更新灵敏度,灵敏度用于表示b变化多少,误差会变化多少:
其中,所述l表示层数;所述j表示l层的第j个神经元节点;所述o表示每个元素相乘;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述sl=Wlxl-1+bl;所述W为权重;所述b为偏置;所述f是激活函数,这里取sigmoid函数
然后对l层中的灵敏度map中的所有节点进行求和,快速计算偏置b的梯度:
>
其中,所述l表示层数;所述j表示l层的第j个神经元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,这里
最后利用BP算法,计算卷积核的权值:
>
其中,所述W是权重参数;所述E是误差函数,且
>
其中,所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;b表示偏置,所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,这里
步骤B:下采样层有N个输入maps,就有N个输出maps,只是每个输出map都变小了,则有:
>
其中,所述f是激活函数,这里取sigmoid函数
通过梯度下降方法来更新参数β和b:
>
其中,所述conv2是二维卷积算子;所述rot180是旋转180度;所述’full’是指进行完全卷积;所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述E是误差函数,表达式同上,即
步骤C:CNN自动学习特征map的组合,则第j个特征map组合为:
>
s.t.∑iαij=1,and>ij≤1.
其中,符号*表示卷积运算符;所述l表示层数;所述i表示l层的第i个神经元节点;所述j表示l层的第j个神经元节点;所述f是激活函数,这里取sigmoid函数
(2)利用(1)中提取的特征结合Softmax自动识别出结节,确定好自动分割的模型;具体Softmax识别过程就是给定一个样本,就输出一个概率值,该概率值表示的是这个样本属于类别几的概率,损失函数为:
>
其中,所述m表示共有m个样本;所述c表示这些样本总共可分为c类;所述
>
其中,
(这里使用的是一种新的Softmax分类器,即只有两分类的Softmax分类器,对于一张甲状腺图片来说,根据softmax给出的概率可以得到将所有的结节区域与非结节区域区分开的一个概率图,根据此图可以得到了对结节区域的粗分割;)
(3)利用CNN自动分割所有甲状腺的结节,即区分出结节区域与非结节区域,找到结节区域的边界,并对分割出的结节形状进行细化,即通过腐蚀、膨胀形态学算子进行填洞以及去掉与非结节区域的连接;
第3步:利用第2步得到的模型对所有的甲状腺结节图片(即10000张图片)进行自动分割,得到ROI,即所有的良恶性结节;
所述过程四具体为:将过程三自动分割出的ROI平均分成p组,对数据进行归一化,即自动分割出结节之后,提取出结节的特征,对这些特征进行线性变换,使结果值映射到[0,1];
所述过程五具体为:利用CNN训练识别模型,对所有ROI提取特征(具体过程与过程三自动分割中提取特征过程的方法是一样的,只不过这里的对象只是针对结节区域,网络结构比自动分割时少了三个卷积层,多了3层全连接层,神经元节点数分别为64,64,1;卷积核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;步长分别是:前三个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;而自动分割部分是针对非结节区域与结节区域同时进行提取特征);具体的卷积神经网络结构如图2所示;
然后利用一种新的Softmax分类,即只有两分类的Softmax分类器,求解一个损失函数的最优值,即优化J(θ),Softmax分类器的类别数p等于2(即良性结节与恶性结节);通过梯度下降方法就能得到属于良性结节还是恶性结节的概率,具体过程与过程三中自动分割过程的方法是一样(只不过这里就是根据这些概率预测出一个分类标签,也就对一个结节进行了良恶性诊断);
所述过程六具体为:重复过程五的实验,即对于p组数据,每次选出p-1组数据训练,余下的做测试,最终得到识别模型的最佳参数,从而就得到基于深度卷积神经网络自动识别甲状腺结节良恶性的辅助诊断系统。将需要识别的甲状腺结节图像输入到这个辅助诊断系统,即可获得该结节的良恶性诊断。
图3、图4是展示了实验中所用甲状腺结节的原始图片与对应的结节区域的mask图片;图5、图6展示了一张甲状腺结节的原始图片与利用CNN自动分割出结节区域mask的效果图片。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。
机译: 基于深度学习的深度卷积神经网络训练方法
机译: 基于卷积神经网络和特征图生成方法的深度学习中特征图计算的金字塔历史图生成方法
机译: 基于卷积神经网络的图像刻画深度学习系统及相同方法的图像学习方法