基于深度卷积神经网络自动识别甲状腺结节良恶性的方法

文档序号:10688028阅读:372来源:国知局
基于深度卷积神经网络自动识别甲状腺结节良恶性的方法
【专利摘要】本发明涉及辅助医学诊断,旨在提供基于深度卷积神经网络自动识别甲状腺结节良恶性的方法。该基于深度卷积神经网络自动识别甲状腺结节良恶性的方法包括:读取甲状腺结节的B超数据;对甲状腺结节图像进行预处理;选取图像分割出结节部分与非结节部分;将提取出来的ROI平均分成p组,利用CNN提取这些ROI的特征,并进行归一化;选出p-1组数据做训练集,剩余一组做测试,训练出识别模型进行测试;重复做p次交叉检验,得到识别模型的最佳参数。本发明不仅借助深度卷积神经网络可以自动的分割出甲状腺结节,弥补了基于活动轮廓等不能解决弱边界问题的不足,而且可以自动学习出提取出有价值的特征组合,避免了人工选取特征的复杂。
【专利说明】
基于深度卷积神经网络自动识别甲状腺结节良恶性的方法
技术领域
[0001] 本发明是关于辅助医学诊断领域,特别涉及基于深度卷积神经网络自动识别甲状 腺结节良恶性的方法。
【背景技术】
[0002] 近年来,随着计算机技术及数字图像处理技术的飞速发展,数字图像处理技术越 来越多的应用于辅助医学诊断领域,其原理就是对通过不同方式获取的医学图像进行分 害J,重构,配准,识别等图像处理技术,从而获得有价值的医学诊断信息,主要目的在于使医 生观察病变部位更加直接和清晰,为医生临床确诊提供辅助参考,具有非常重要的现实意 义。
[0003] 甲状腺结节是现在普遍存在的一种流行病,有调查指出在人群中甲状腺结节的发 生率将近50 %,但仅有4 % -8 %的甲状腺结节在临床触诊中可被触及。甲状腺结节有良、恶 性之分,其恶性发生率为5%_10%。早期发现病灶对鉴别其良恶性、临床治疗和手术选择有 重要意义。基于超声成像技术的甲状腺结节超声检查因可实时成像、检查费用相对较低、对 病患无创伤等。而且甲状腺位于表层,适合超声图像诊断。而医生诊断甲状腺的良恶性主要 靠穿刺活组织细胞检查,这样的工作量会就会很大,并且医生诊断超声甲状腺图像的结果 往往受到医学成像设备的成像机理、获取条件、显示设备等因素的影响而极易造成误诊或 漏诊。因此,利用计算机实现甲状腺图像辅助诊断十分必要。但是固有的成像机制使得临床 采集到的超声甲状腺肿瘤图像质量均较差,导致辅助诊断的准确性和自动化均受到影响, 所以目前的分割甲状腺结节最多的是基于活动轮廓的半自动分割,分类主要是人工选取出 特征,然后利用SVM,KNN,决策树等分类识别,这些分类器只能对小样本数据可以有较好的 效果,但是医学数据是海量的,而且大样本的分类识别对医学诊断才能有更好的辅助作用。

【发明内容】

[0004] 本发明的主要目的在于克服现有技术中的不足,提供一种基于深度卷积神经网络 自动识别甲状腺结节良恶性的方法。为解决上述技术问题,本发明的解决方案是:
[0005] 提供基于深度卷积神经网络自动识别甲状腺结节良恶性的方法,包括下述过程:
[0006] -、读取甲状腺结节的B超数据;
[0007] 二、对甲状腺结节图像进行预处理;
[0008] 三、选取图像利用卷积神经网络,即CNN(convolutional neural network),自动 学习分割出结节部分与非结节部分,结节部分就是感兴趣区域,即ROI (region of interest),并对结节形状进行细化;
[0009] 四、将步骤三提取出来的ROI,平均分成P组,利用CNN提取这些ROI的特征,并进行 归一化;
[0010] 五、选出步骤四中P-I组数据做训练集,剩余一组做测试,通过CNN训练出识别模 型进行测试;
[0011] 六、重复步骤五,做P次交叉检验,得到识别模型的最佳参数,最终确定基于深度卷 积神经网络自动识别甲状腺结节良恶性的辅助诊断系统;
[0012] 所述过程一具体为:读取甲状腺结节图像(可以是图片格式,也可以是标准的 dicom图片),包括至少5000张良性结节的图像和至少5000张恶性结节的图像;
[0013]所述过程二具体为:将过程一读取的甲状腺结节图像,先进行图像灰度化,并利用 周围像素点的灰度值去掉超声图像中医生为测量结节相关量做的标记,再利用高斯滤波去 噪,最后利用灰度直方图均衡化增强对比度,得到预处理后的增强图像;
[0014] 所述过程三具体为:
[0015] 第1步:选取经过程二预处理后的增强图像10000张,包括良恶性结节各5000张;
[0016] 第2步:对每一张图片,首先(由专家)手动截取出结节部分与非结节部分,然后通 过CNN训练出自动分割的模型;
[0017] 所述CNN是由13层卷积层、2层下采样层组成的网络结构;卷积层的卷积核的大小 分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;卷积层的步长分别是:前 两个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;
[0018] 通过CNN训练出自动分割的模型的具体方法为:
[0019] (1)通过CNN的卷积层与下采样层自动学习特征,并提取出特征,具体步骤为:
[0020] 步骤A:在一个卷积层,上一层的特征maps被一个能够学习的卷积核进行卷积,然 后通过一个激活函数,就能得到输出特征map;每一个输出是卷积核卷积一个输入或者组合 多个卷积输入的值(这里我们选择的是组合卷积多个出入maps的值):
[0021]
[0022] 其中,符号*表示卷积运算符;所述1表示层数;所述i表示1-1层的第i个神经元节 点;所述j表示1层的第j个神经元节点;所述Mj表示选择的输入map S的集合;所述_x"是指 1 一 1层的输出,作为1层的输入;所述f是激活函数,这里取sigmoid函数
'乍为激 活函数,e表示欧拉数2.718281828,#就是指数函数;所述1^是卷积算子;所述13是偏置;每一 个输出map会给一个额外的偏置b,但是对于一个特定的输出map,卷积每个输入maps的卷积 核都是不一样的;
[0023] 这一步还需要进行梯度计算,以更新灵敏度,灵敏度用于表示b变化多少,误差会 变化多少:
[0024]
[0025] 其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述〇表示每个元素相 乘;所述S表示输出神经元的灵敏度,即偏置b的变化率;所:
是指1 一 1层 的输出,W为权重,b为偏置;所述f是激活函数,这里取sigmoid函]
?乍为激活函 数,e表示欧拉数2.718281828,6"就是指数函数;产&)是以1)的导函数(即如果€取818111〇1(1 函·
听对
_示各层共享的权值;所述up(.)表 示一个上采样操作(如果下采样的采样因子是η的话,上采样操作就是将每个像素水平和垂 直方向上拷贝η次,这样就能恢复原来的大小了);
[0026] 然后对1层中的灵敏度maD中的所有节点进行求和,快速计算偏置b的梯度:
[0027]
[0028] 其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述b表示偏置;所述δ 表示输出神经元的灵敏度,即偏置b的变化率;所述u,V表示输出maps的(u,ν)位置;所述E是 误差函数,这里
;所述C表示标签的维数,如果是两分类的问题,则标签就 可以记为yhe {〇,1},此时C= 1,也可以记为yhe {(〇,I),( 1,〇)},此时C = 2;所述表示第η 个样本对应标签的第h维;所述表示第η个样本对应的网络输出的第h个输出;
[0029 ]最后利用BP算法,计算卷积核的权值:
[0030]
[0031] 其中,所述W是权重参数;所述E是误差函数,且
;所述C表示标签 的维数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时C = 1,也可以记为yh e {(0,I),( 1,0)},此时C = 2;所述t::表示第η个样本对应标签的第h维;所述表示第η个样本 对应的网络输出的第h个输出;所述τι是学习率,即步长;由于很多连接的权值是共享的,因 此对于一个给定的权值,需要对所有与该权值有联系的连接对该点求梯度,然后对这些梯 度进行求和:
[0032]
[0033] 其中,所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个 神经元节点;b表示偏置,所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示 输出maps的(u,v)位置;所述E是误差函数,这i
:所述C表示标签的维数, 如果是两分类的问题,则标签就可以记为yhe{〇,i},此时c=l,也可以记为yhe{(〇,i),(i, 〇)},此时C = 2;所述表示第η个样本对应标签的第h维;所述表示第η个样本对应的网络 输出的第h个输出;所述Μ是卷积核;所i
#的元素在卷积的时候与逐元素 相乘的patch,即所有与卷积核大小相同的图片中所有的区域块,输出卷积map的(u,v)位置 的值是由上一层的(u,v)位置的patch与卷积核14逐元素相乘的结果;
[0034] 步骤B:下采样层有N个输入maps,就有N个输出maps,只是每个输出map都变小了, 则有:
[0035]
[0036] 其中,所述f是激活函数,这里取sigmoid函1
Ξ为激活函数,e表示欧 拉数2.718281828,#就是指数函数;所述(^表示各层共享的权值;所述(1〇?11(.)表示一个下 采样函数;对输入图像的不同ηχη的块的所有像素进行求和,这样输出图像在两个维度上都 缩小了 η倍(这里就是将输入图像的每个元素取定一个3x3大小的块,然后将其中所有元素 求和作为该元素在输出图像中的值,从而使得输出图像在两个维度上都缩小了 3倍);每个 输出map都对应一个属于自己的权重参数β(乘性偏置)和一个加性偏置b;
[0037] 通过梯度下降方法来更新参数β和b:
[0038]
[0039]
[0040]
[0041 ]其中,所述conv2是二维卷积算子;所述rot 180是旋转180度;所述' fulΓ是指进行 完全卷积;所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个神经 元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示 输出maps的(u,v)位置;所述E是误差函数,表达式同上,即
!所述C表示标 签的维数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时C = 1,也可以记为yhe {(0,I),(1,0)},此时C = 2;所述表示第η个样本对应标签的第h维;所述表示第η个样本 对应的网络输出的第h个输出;所述β是权重参数(一般取值在[0,1 ]);所述down(.)表示一 个下采样函数;所述M,+1是第1 + 1层的卷积核;所述xf是的1-1层的输出的第j个神经元节 点;所述S1=W1x1Wb1,其中W是权重参数,b是偏置4是S 1的第j个分量;
[0042] 步碟C: CNN自动学习特彳fFman的组合,咖第j个特征map组合为:
[0043]
[0044] s · t · Σi〇ij = I ,and CXaijS 1 ·
[0045] 其中,符号*表示卷积运算符;所述1表示层数;所述i表示1层的第i个神经元节点; 所述j表示1层的第j个神经元节点;所述f是激活函数,这里取sigmoid函I
作为 激活函数,e表示欧拉数2.718281828,#就是指数函数;所述^^是第1-1层输出的第1个分 量;所述Nin表示输入的map数;所述k丨是卷积核;所述1^:是偏置;所述Qij表示1-1层的输出map 作为1层的的输入时,1-1层得到第j个输出map的其中第i个输入map的权值或者贡献;
[0046 ] (2)利用(I)中提取的特征结合So f tmax自动识别出结节,确定好自动分割的模型; 具体Sof tmax识别过程就是给定一个样本,就输出一个概率值,该概率值表示的是这个样本 属于类别几的概銮,损生函教为,
[0047]
[0048] 其中,所述m表示共有m个样本;所述c表示这些样本总共可分为c类;所述
是一个矩阵,每一行是一个类别所对应的参数,即权重与偏置;所述1{.}是一个指示性函 数,即当大括号中的值为真时,该函数的结果为1,否则其结果为〇;所述λ是平衡保真项(第 一项)与正则项(第二项)的参数,这里λ取正数(根据实验结果调节其大小);所述J(0)是指 系统的损失函数;所述e表示欧拉数2.718281828,e x就是指数函数;所述T是表示矩阵计算 中的转置运算符;log表示自然对数,即以欧拉数为底的对数;η表示权重与偏置参数的维 度;χ (1)是输入向量的第i维;y(1)是每个样本标签的第i维;然后利用梯度求解:
示性函数,即当大括号中的值为真时,该函数的结果为1,否则其结果为0;所述λ是平衡保真 项(第一项)与正则项(第二项)的参数,这里λ取正数(根据实验结果调节其大小);所述J(0) 是指系统的损失函数;'/(θ')是J(0)导函数;所述 e表示欧拉数2.718281828,ex就是指数 函数;所述T是表示矩阵计算中的转置运算符;log表示自然对数,即以欧拉数为底的对数;X (1)是输入向量的第i维;y(1)是每个样本标签的第i维;
[0051](这里使用的是一种新的Softmax分类器,即只有两分类的Softmax分类器,对于一 张甲状腺图片来说,根据softmax给出的概率可以得到将所有的结节区域与非结节区域区 分开的一个概率图,根据此图可以得到了对结节区域的粗分割;)
[0052] (3)利用CNN自动分割所有甲状腺的结节,即区分出结节区域与非结节区域,找到 结节区域的边界,并对分割出的结节形状进行细化,即通过腐蚀、膨胀形态学算子进行填洞 以及去掉与非结节区域的连接;
[0053]第3步:利用第2步得到的模型对所有的甲状腺结节图片(即10000张图片)进行自 动分割,得到ROI,即所有的良恶性结节;
[0054]所述过程四具体为:将过程三自动分割出的ROI平均分成p组,对数据进行归一化, 即自动分割出结节之后,提取出结节的特征,对这些特征进行线性变换,使结果值映射到 [0,1];
[0055] 所述过程五具体为:利用CNN训练识别模型,对所有ROI提取特征(具体过程与过程 三自动分割中提取特征过程的方法是一样的,只不过这里的对象只是针对结节区域,网络 结构比自动分割时少了三个卷积层,多了3层全连接层,神经元节点数分别为64,64,1;卷积 核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;步长分别是:前 三个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;而自动分割部分是针 对非结节区域与结节区域同时进行提取特征);
[0056] 然后利用一种新的Softmax分类,即只有两分类的Softmax分类器,求解一个损失 函数的最优值,即优化J(9) ,Softmax分类器的类别数c等于2(即良性结节与恶性结节);通 过梯度下降方法就能得到属于良性结节还是恶性结节的概率,具体过程与过程三中自动分 割过程的方法是一样(只不过这里就是根据这些概率预测出一个分类标签,也就对一个结 节进行了良恶性诊断);
[0057] 所述过程六具体为:重复过程五,即对于P组数据,每次选出P - 1组数据训练,余下 的做测试,最终得到识别模型的最佳参数,从而就得到基于深度卷积神经网络自动识别甲 状腺结节良恶性的辅助诊断系统;
[0058] 将需要识别的甲状腺结节图像输入到这个辅助诊断系统,即可获得该结节的良恶 性诊断。
[0059] 与现有技术相比,本发明的有益效果是:
[0060] 本发明不仅借助深度卷积神经网络可以自动的分割出甲状腺结节,弥补了基于活 动轮廓等不能解决弱边界问题的不足,而且可以自动学习出提取出有价值的特征组合,避 免了人工选取特征的复杂,这样提取出来的特征更有利于找到甲状腺结节良恶性的主要规 律信息,提高了识别系统的准确率,并获得了高度的适应性。
【附图说明】
[0061] 图1为基于深度卷积神经网络识别甲状腺结节良恶性的流程图。
[0062] 图2为自动分割与识别甲状腺结节的卷积神经网络结构图。
[0063]图3为实施例中所用甲状腺结节的原始图片。
[0064]图4为专家画出的图3中甲状腺结节区域的mask图片。
[0065] 图5为实施例中甲状腺结节的原始图片。
[0066] 图6为利用CNN自动分割出图5结节区域的效果图片。
【具体实施方式】
[0067]下面结合附图与【具体实施方式】对本发明作进一步详细描述:
[0068]下面的实施例可以使本专业的专业技术人员更全面地理解本发明,但不以任何方 式限制本发明。
[0069] -种基于深度卷积神经网络自动识别甲状腺结节良恶性的方法,如图1所示,包括 以下步骤:
[0070] 一、读取甲状腺结节的B超数据;
[0071]二、对甲状腺结节图像进行预处理;
[0072]三、选取图像(包括一样多的良恶性的结节图像)利用卷积神经网络 (convolutional neural network(CNN))自动学习分割出结节部分与非结节部分,结节部 分就是感兴趣区域(region of interest(ROI)),并对结节形状进行细化;
[0073]四、将步骤三提取出来的ROI,平均分成p组,利用CNN提取这些ROI的特征,并进行 归一化。
[0074] 五、选出步骤四中p-Ι组数据做训练集,剩余一组做测试,通过CNN训练出模型进行 测试;
[0075] 六、重复步骤五,做p次交叉检验,得到识别模型的最佳参数,最终确定基于深度卷 积神经网络自动识别甲状腺结节良恶性的辅助诊断系统;
[0076] 所述过程一具体为:读取甲状腺结节的B超数据,可以是图片格式,也可以是标准 的dicom图片。包括至少5000张良性结节的图像和至少5000张恶性结节的图像;在进行过程 五时,需要先读入训练集中的所有图片(即P-I组数据)训练出基于深度卷积神经网络自动 识别甲状腺结节良恶性的辅助诊断系统,然后读入剩余1组的数据测试该系。使用该系统进 行自动识别甲状腺结节良恶性的辅助诊断时,只需读入要诊断的结节的所有图片即可; [0077]所述过程二具体为:将过程一读取的甲状腺结节图像,先进行图像灰度化,并利用 周围像素点的灰度值去掉超声图像中医生为测量结节相关量做的标记,再利用高斯滤波去 噪,最后利用灰度直方图均衡化增强对比度,得到预处理后的增强图像;
[0078] 所述过程三具体为:
[0079] 第1步:选取经过程二预处理后的增强图像10000张,包括良恶性结节各5000张; [0080]第2步:由专家截取出结节部分与非结节部分,然后通过CNN训练出自动分割的模 型;这里所述的CNN就是由13层卷积层,2层下采样层组成的网络结构,卷积核的大小分别 为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3,步长分别是:前两个卷积层是 2,其余的都是1。下采样层的大小都是3x3,步长都是2;具体的卷积神经网络结构如图2所 示;
[0081 ]通过CNN训练出自动分割的模型的具体方法为:
[0082] (1)通过CNN的卷积层与下采样层自动学习特征,并提取出特征,具体步骤为:
[0083 ] 步骤A:在一个卷积层,上一层的特征ma P s被一个能够学习的卷积核进行卷积,然 后通过一个激活函数,就能得到输出特征map;每一个输出是卷积核卷积一个输入或者组合 多个卷积输入的值(这里我们选择的是组合卷积多个出入maps的值):
[0084]
[0085] 其中,符号*表示卷积运算符;所述1表示层数;所述i表示1-1层的第i个神经元节 点;所述j表示1层的第j个神经元节点;所述Mj表示选择的输入maps的集合;所述 < 是输出; 所述Xf1是指1 一 1层的输出,作为11层的输入;所述f是激活函数,这里取sigmoid函数
作为激活函数;所述e表示欧拉数2.718281828,ex就是指数函数;所述k是卷积 算子;所述b是偏置;每一个输出map会给一个额外的偏置b,但是对于一个特定的输出map, 卷积每个输入maps的卷积核都是不一样的;
[0086] 这一步还需要进行梯度计算,以更新灵敏度,灵敏度用于表示b变化多少,误差会 变化多少:
[0087]
[0088] 其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述〇表示每个元素相 乘;所述S表示输出神经元的灵敏度,即偏置b的变化率;所述S 1=W1xH+!^;所述W为权重;所 述b为偏置;所述f是激活函数,这里取sigmoid函数
作为激活函数;所述e表示 欧拉数2.718281828,ex就是指数函数,f〃(X)是f (X)的导函数,如果f取sigmoid函数
.则f '(x) = (l-f (x))f(x);所述W+1表示各层共享的权值;所述up(.)表示一个 上采样操作,如果下采样的采样因子是η的话,上采样操作就是将每个像素水平和垂直方向 上拷贝η次,这样就能恢复原来的大小了;
[0089] 然后对1层中的灵敏度map中的所有节点进行求和,快速计算偏置b的梯度:
[0090]
[0091] 其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述b表示偏置;所述δ 表示输出神经元的灵敏度,即偏置b的变化率;所述u,V表示输出maps的(u,ν)位置;所述E是 误差函数,这里
;所述C表示标签的维数,如果是两分类的问题,则标签就 可以记为yhe{〇,i},此时c=l,也可以记为5^^{(〇,1),(1,〇)},此时〇=2;所述$表示第1 1 个样本对应标签的第h维;所述y=表示第n个样本对应的网络输出的第h个输出;
[0092 ]最后利用BP算法,计算卷积核的权值:
[0093]
[0094] 其中,所述W是权重参数;所述E是误差函数,且:
;所述C表示标签 的维数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时C = 1,也可以记为yh e {(O,I),( I,O) },此时C = 2;所述thM表示第η个样本对应标签的第h维;所述y〖表示第η个样本 对应的网络输出的第h个输出;所述τι是学习率,即步长;由于很多连接的权值是共享的,因 此对于一个给定的权值,需要对所有与该权值有联系的连接对该点求梯度,然后对这些梯 度进行求未Π.
[0095]
[0096] 其中,所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个 神经元节点;b表示偏置,所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示 输出maps的(u,v)位置;所述E是误差函数,这里:
:所述C表示标签的维数, 如果是两分类的问题,则标签就可以记为yhe{〇,i},此时c=l,也可以记为yhe{(〇,i),(i, 〇)},此时C = 2;所述t;:表示第η个样本对应标签的第h维;所述y【表示第η个样本对应的网络 输出的第h个输出;所述Mj是卷积核;所述L是χ厂中的元素在卷积的时候与&逐元素 相乘的patch,即所有与卷积核大小相同的图片中所有的区域块,输出卷积map的(u,v)位置 的值是由上一层的(u,v)位置的patch与卷积核14逐元素相乘的结果;
[0097] 步骤B:下采样层有N个输入maps,就有N个输出maps,只是每个输出map都变小了, 则有:
[0098]
[0099] 其中,所述f是激活函数,这里取sigmoid函Ij
作为激活函数,e表示欧 拉数2.718281828,#就是指数函数;所述_表示各层共享的权值;所述(1〇?11(.)表示一个下 采样函数;对输入图像的不同ηχη的块的所有像素进行求和,这样输出图像在两个维度上都 缩小了 η倍(这里就是将输入图像的每个元素取定一个3x3大小的块,然后将其中所有元素 求和作为该元素在输出图像中的值,从而使得输出图像在两个维度上都缩小了 3倍);每个 输出map都对应一个属于自己的权重参数β(乘性偏置)和一个加性偏置b;
[0100]通过梯度下降方法来更新参数β和b:
[0101]
[0102]
[0103]
[0104]其中,所述conv2是二维卷积算子;所述1"〇1:180是旋转180度 ;所述'作11'是指进行 完全卷积;所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个神经 元节点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示 输出maps的(u,v)位置;所述E是误差函数,表达式同上,即E=
;所述C表示标 签的维数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时C = 1,也可以记为yhe {(0,1),(1,0)},此时0=2;所述6表示第11个样本对应标签的第11维;所述}<表示第1 1个样本 对应的网络输出的第h个输出;所述β是权重参数(一般取值在[0,1 ]);所述down(.)表示一 个下采样函数;所述是第1 + 1层的卷积核;所述:是的1-1层的输出的第j个神经元节 点;所対
其中W是权重参数,b是偏置,_是S1的第j个分量;
[0? 05] 步骤C: CNN自动学习特征map的组合,则第j个特征map组合为:
[0106]
[0107] s.t. EiCiij = I ,and O^iaij^l.
[0108] 其中,符号*表示卷积运算符;所述1表示层数;所述i表示1层的第i个神经元节点; 所述j表示1层的第j个神经元节点;所述f是激活函数,这里取S i gmo i d函数f(x) = -~T7作为 1+0 激活函数,e表示欧拉数2.718281828,#就是指数函数;所述乂4是第1-1层输出的第1个分 量;所述Nin表示输入的map数;所述Ic丨是卷积核;所述%是偏置;所述(?表示1-1层的输出map 作为1层的的输入时,1-1层得到第j个输出map的其中第i个输入map的权值或者贡献;
[01 09] (2)利用(1)中提取的特征结合Sof tmax自动识别出结节,确定好自动分割的模型; 具体Sof tmax识别过程就是给定一个样本,就输出一个概率值,该概率值表示的是这个样本 属于类别几的概率,损失函数为:
[0110:
[0111: 是一个矩阵,每一行是一个类别所对应的参数,即权重与偏置;所述1{.}是一个指示性函 数,即当大括号中的值为真时,该函数的结果为1,否则其结果为0;所述λ是平衡保真项(第 一项)与正则项(第二项)的参数,这里λ取正数(根据实验结果调节其大小);所述J(0)是指 系统的损失函数;所述e表示欧拉数2.718281828,e x就是指数函数;所述T是表示矩阵计算 中的转置运算符;log表示自然对数,即以欧拉数为底的对数;η表示权重与偏置参数的维 度;χ (1)是输入向量的第i维;y(1)是每个样本标签的第i维;然后利用梯度求解:
示性函数,即当大括号中的值为真时,该函数的结果为I,否则其结果为0;所述λ是平衡保真 项(第一项)与正则项(第二项)的参数,这里λ取正数(根据实验结果调节其大小);所述J(0) 是指系统的损失函数是J(0)导函数;所述e表示欧拉数2.718281828,ex就是指数 函数;所述T是表示矩阵计算中的转置运算符;log表示自然对数,即以欧拉数为底的对数;X (1)是输入向量的第i维;y(1)是每个样本标签的第i维;
[0114] (这里使用的是一种新的Softmax分类器,即只有两分类的Softmax分类器,对于一 张甲状腺图片来说,根据softmax给出的概率可以得到将所有的结节区域与非结节区域区 分开的一个概率图,根据此图可以得到了对结节区域的粗分割;)
[0115] (3)利用CNN自动分割所有甲状腺的结节,即区分出结节区域与非结节区域,找到 结节区域的边界,并对分割出的结节形状进行细化,即通过腐蚀、膨胀形态学算子进行填洞 以及去掉与非结节区域的连接;
[0116] 第3步:利用第2步得到的模型对所有的甲状腺结节图片(即10000张图片)进行自 动分割,得到ROI,即所有的良恶性结节;
[0117]所述过程四具体为:将过程三自动分割出的ROI平均分成p组,对数据进行归一化, 即自动分割出结节之后,提取出结节的特征,对这些特征进行线性变换,使结果值映射到 [0,1];
[0118] 所述过程五具体为:利用CNN训练识别模型,对所有ROI提取特征(具体过程与过程 三自动分割中提取特征过程的方法是一样的,只不过这里的对象只是针对结节区域,网络 结构比自动分割时少了三个卷积层,多了3层全连接层,神经元节点数分别为64,64,1;卷积 核的大小分别为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;步长分别是:前 三个卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2;而自动分割部分是针 对非结节区域与结节区域同时进行提取特征);具体的卷积神经网络结构如图2所示;
[0119]然后利用一种新的Softmax分类,即只有两分类的Softmax分类器,求解一个损失 函数的最优值,即优化J(9) ,Softmax分类器的类别数p等于2(即良性结节与恶性结节);通 过梯度下降方法就能得到属于良性结节还是恶性结节的概率,具体过程与过程三中自动分 割过程的方法是一样(只不过这里就是根据这些概率预测出一个分类标签,也就对一个结 节进行了良恶性诊断);
[0120]所述过程六具体为:重复过程五的实验,即对于p组数据,每次选出p-1组数据训 练,余下的做测试,最终得到识别模型的最佳参数,从而就得到基于深度卷积神经网络自动 识别甲状腺结节良恶性的辅助诊断系统。将需要识别的甲状腺结节图像输入到这个辅助诊 断系统,即可获得该结节的良恶性诊断。
[0121]图3、图4是展示了实验中所用甲状腺结节的原始图片与对应的结节区域的mask图 片;图5、图6展示了一张甲状腺结节的原始图片与利用CNN自动分割出结节区域mask的效果 图片。
[0122]最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于 以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导 出或联想到的所有变形,均应认为是本发明的保护范围。
【主权项】
1.基于深度卷积神经网络自动识别甲状腺结节良恶性的方法,其特征在于,包括下述 过程: 一、 读取甲状腺结节的B超数据; 二、 对甲状腺结节图像进行预处理; 三、 选取图像利用卷积神经网络,即CNN,自动学习分割出结节部分与非结节部分,结节 部分就是感兴趣区域,即ROI,并对结节形状进行细化; 四、 将步骤三提取出来的ROI,平均分成P组,利用CNN提取这些ROI的特征,并进行归一 化; 五、 选出步骤四中P-1组数据做训练集,剩余一组做测试,通过CNN训练出识别模型进行 测试; 六、 重复步骤五,做P次交叉检验,得到识别模型的最佳参数,最终确定基于深度卷积神 经网络自动识别甲状腺结节良恶性的辅助诊断系统; 所述过程一具体为:读取甲状腺结节图像,包括至少5000张良性结节的图像和至少 5000张恶性结节的图像; 所述过程二具体为:将过程一读取的甲状腺结节图像,先进行图像灰度化,并利用周围 像素点的灰度值去掉超声图像中医生为测量结节相关量做的标记,再利用高斯滤波去噪, 最后利用灰度直方图均衡化增强对比度,得到预处理后的增强图像; 所述过程三具体为: 第1步:选取经过程二预处理后的增强图像10000张,包括良恶性结节各5000张; 第2步:对每一张图片,首先手动截取出结节部分与非结节部分,然后通过CNN训练出自 动分割的模型; 所述CNN是由13层卷积层、2层下采样层组成的网络结构;卷积层的卷积核的大小分别 为:第一层为13x13,第二层与第三层为5x5,其余各层为3x3;卷积层的步长分别是:前两个 卷积层是2,其余的都是1;下采样层的大小都是3x3,步长都是2; 通过CNN训练出自动分割的模型的具体方法为: (1)通过CNN的卷积层与下采样层自动学习特征,并提取出特征,具体步骤为: 步骤A:在一个卷积层,上一层的特征maps被一个能够学习的卷积核进行卷积,然后通 过一个激活函数,就能得到输出特征map;每一个输出是卷积核卷积一个输入或者组合多个 卷积输入的值:其中,符号*表示卷积运算符;所述1表示层数;所述i表示1-1层的第i个神经元节点;所 述j表示1层的第j个神经元节点;所述Mj表示选择的输入maps的集合;所述(;是指1 -1层的 输出,作为1层的输入;所述f是激活函数,这里取sigmoid函数作为激活函数,e 表示欧拉数2.718281828,#就是指数函数;所述1^是卷积算子;所述13是偏置;每一个输出 map会给一个额外的偏置b,但是对于一个特定的输出map,卷积每个输入maps的卷积核都是 不一样的; 这一步还需要进行梯度计算,以更新灵敏度,灵敏度用于表示b变化多少,误差会变化 多少:其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述0表示每个元素相乘;所 述δ表示输出神经元的灵敏度,即偏置b的变化率;所述sbwkH+lAxH是指1-1层的输出, W为权重,b为偏置;所述f是激活函数,这里取sigmoid函数:作为激活函数,e表示 欧拉数2.718281828,#就是指数函数汀/(4是以4的导函数;所述/^;']表示各层共享的权 值;所述up (.)表示一个上采样操作; 然后对1层中的灵敏度map中的所有节点进行求和,快速计算偏置b的梯度:其中,所述1表示层数;所述j表示1层的第j个神经元节点;所述b表示偏置;所述δ表示 输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出maps的(u,v)位置;所述Ε是误差 函数,;所述C表示标签的维数,如果是两分类的问题,则标签就可以 记为yhG {〇, 1},此时C= 1,也可以记为yhG {(〇,1),(1,〇)},此时C = 2;所述t〖表示第η个样 本对应标签的第h维;所述表示第η个样本对应的网络输出的第h个输出; 最后利用BP算法,计算卷积核的权值:其中,所述W是权重参数;所述E是误差函数,;所述C表示标签的维 数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时c= 1,也可以记为yhe {(〇,1), (1,〇)},此时C= 2;所述t〖表示第η个样本对应标签的第h维;所述y〖表示第η个样本对应的 网络输出的第h个输出;所述η是学习率,即步长;由于很多连接的权值是共享的,因此对于 一个给定的权值,需要对所有与该权值有联系的连接对该点求梯度,然后对这些梯度进行 求和:其中,所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个神经 元节点;b表示偏置,所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出 maps的(u,v)位置;所述E是误差函数,%所述C表示标签的维数,如果 是两分类的问题,则标签就可以记为yh e {〇,1},此时c = 1,也可以记为yh e {(〇,1),( 1,〇)}, 此时C = 2;所述表示第η个样本对应标签的第h维;所述:^表示第η个样本对应的网络输出 的第h个输出;所述1?是卷积核;所述.是〇的元素在卷积的时候与k(,逐元素相乘 的patch,即所有与卷积核大小相同的图片中所有的区域块,输出卷积map的(u,v)位置的值 是由上一层的(u,v)位置的patch与卷积核逐元素相乘的结果; 步骤B:下采样层有N个输入maps,就有N个输出maps,只是每个输出map都变小了,则有:其中,所述f是激活函数,这里取sigmoid函数作为激活函数,e表示欧拉数 2.718281828,#就是指数函数;所述片表示各层共享的权值;所述(1〇?11(.)表示一个下采样 函数;对输入图像的不同ηχη的块的所有像素进行求和,这样输出图像在两个维度上都缩小 了η倍;每个输出map都对应一个属于自己的权重参数β和一个加性偏置b; 通过梯度下降方法来更新参数β和b:其中,所述conv2是二维卷积算子;所述rot 180是旋转180度;所述' fulΓ是指进行完全 卷积;所述1表示层数;所述i表示1层的第i个神经元节点;所述j表示1层的第j个神经元节 点;所述b表示偏置;所述δ表示输出神经元的灵敏度,即偏置b的变化率;所述u,v表示输出 maps的(u,v)位置;所述E是误差函数,表达式同上:;所述C表示标签的 维数,如果是两分类的问题,则标签就可以记为yhe {〇,1},此时C= 1,也可以记为yhe {(〇, 1),(1,〇)},此时C = 2;所述t::表示第η个样本对应标签的第h维;所述表示第η个样本对应 的网络输出的第h个输出;所述β是权重参数;所述down(.)表示一个下采样函数;所述1<;是 第1+1层的卷积核;所述<1是的1-1层的输出的第j个神经元节点;所述shW^H+b1,其中W 是权重参数,b是偏置,s;是s1的第j个分量; 步骤C: CNN自动学习特征map的组合,贝lj第j个特征map组合为: s. ?. Σ i^ij - 1,&nd (JCtij 丄·其中,符号*表示卷积运算符;所述1表示层数;所述i表示1层的第i个神经元节点;所述 j表示1层的第j个神经元节点;所述f是激活函数,这里取s i gmo i d函数·作为激活 函数,e表示欧拉数2.718281828,#就是指数函数;所述^_4是第1-1层输出的第1个分量;所 述Nin表示输入的map数;所述k丨是卷积核;所述13丨;是偏置;所述ay表示1-1层的输出map作为1 层的的输入时,1-1层得到第j个输出map的其中第i个输入map的权值或者贡献; (2) 利用(1)中提取的特征结合Softmax自动识别出结节,确定好自动分割的模型;具体 Softmax识别过程就是给定一个样本,就输出一个概率值,该概率值表示的是这个样本属于 类别几的概率,损失函数为:其中,所述m表示共有m个样本;所述c表示这些样本总共可分为c类 矩阵,每一行是一个类别所对应的参数,即权重与偏置;所述1{.}是一个指示性函数,即当 大括号中的值为真时,该函数的结果为1,否则其结果为〇;所述λ是平衡保真项与正则项的 参数,这里λ取正数;所述J(0)是指系统的损失函数;所述 e表示欧拉数2.718281828,ex就是 指数函数;所述T是表示矩阵计算中的转置运算符;log表示自然对数,即以欧拉数为底的对 数;η表示权重与偏置参数的维度;x (1)是输入向量的第i维;y(1)是每个样本标签的第i维;然 后利用梯度求解:是一个矩阵,每一行是一个类别所对应的参数,即权重与偏置;所述1{.}是一个指示性函 数,即当大括号中的值为真时,该函数的结果为1,否则其结果为〇;所述λ是平衡保真项与正 则项的参数,这里λ取正数;所述J(0)是指系统的损失函数;./((?)是J(0)导函数;所述e表 示欧拉数2.718281828,ex就是指数函数;所述T是表示矩阵计算中的转置运算符;log表示 自然对数,即以欧拉数为底的对数;χ(1)是输入向量的第i维;y(1)是每个样本标签的第i维; (3) 利用CNN自动分割所有甲状腺的结节,即区分出结节区域与非结节区域,找到结节 区域的边界,并对分割出的结节形状进行细化,即通过腐蚀、膨胀形态学算子进行填洞以及 去掉与非结节区域的连接; 第3步:利用第2步得到的模型对所有的甲状腺结节图片进行自动分割,得到ROI,即所 有的良恶性结节; 所述过程四具体为:将过程三自动分割出的ROI平均分成P组,对数据进行归一化,即自 动分割出结节之后,提取出结节的特征,对这些特征进行线性变换,使结果值映射到[〇,1]; 所述过程五具体为:利用CNN训练识别模型,对所有ROI提取特征; 然后利用一种新的Softmax分类,即只有两分类的Softmax分类器,求解一个损失函数 的最优值,即优化J(9),S〇ftmax分类器的类别数c等于2;通过梯度下降方法就能得到属于 良性结节还是恶性结节的概率,具体过程与过程三中自动分割过程的方法是一样; 所述过程六具体为:重复过程五,即对于P组数据,每次选出P-1组数据训练,余下的做 测试,最终得到识别模型的最佳参数,从而就得到基于深度卷积神经网络自动识别甲状腺 结节良恶性的辅助诊断系统; 将需要识别的甲状腺结节图像输入到这个辅助诊断系统,即可获得该结节的良恶性诊 断。
【文档编号】G06F19/00GK106056595SQ201610362069
【公开日】2016年10月26日
【申请日】2016年5月26日
【发明人】孔德兴, 吴法, 马金连
【申请人】浙江德尚韵兴图像科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1