基于深度学习的多个异构模型相互组合的骨龄预测方法

文档序号:25025838发布日期:2021-05-11 16:52阅读:101来源:国知局
基于深度学习的多个异构模型相互组合的骨龄预测方法

本发明属于计算机视觉和图像处理技术领域,涉及计算机与医学的交叉领域,具体涉及多模型融合的方法。



背景技术:

骨龄通常用于预测和计算儿童的生长发育,也有助于检测某些儿科内分泌疾病。传统的骨龄估计是由经验丰富的放射科医生按照gp、tw2或者tw3方法从ct图像推断出骨龄。但是培养一名合格的医生需要很长的时间,而且这些方法也非常耗时。随着人工智能的发展和建立,特别是深度学习,医学和计算机的交叉领域变得越来越热门,自动骨龄预测系统也越来越多。他们大多数都是根据医生的先验知识,把医生估计骨龄的感兴趣区域截取出来,并将它们投入到骨龄估计的训练网络中。多个感兴趣区域对应多个回归网络,最终骨龄估计值通过算术平均值获得,这可以通过加权和自适应平均值来加强,但现在没有一项工作关注这些问题。

对于骨龄的多模型融合,pan等人通过对48份模型进行分析,发现了关于骨龄模型的组合技术,相关性较低但性能较高的模型相互组合,可以有效地提高骨龄预测地结果。参考文献:panian,thodberghanshenrik,halabisafwans,etal.improvingautomatedpediatricboneageestimationusingensemblesofmodelsfromthe2017rsnamachinelearningchallenge..2019,1(6):e190053.,但是它们也只是做了简单的算术平均,并且用到了测试集的真实骨龄值。



技术实现要素:

针对现有技术存在的问题,本发明提出了一种基于深度学习的多个异构模型相互组合的骨龄预测方法。

本发明的技术方案为:一种基于深度学习的多个异构模型相互组合的骨龄预测方法,包括以下步骤:

s1、将训练集的手骨的ct图像加上性别标签输入至inceptionresnetv2网络进行训练,得到第一模型;

s2、将训练集的手骨图像进行数据均衡化操作,然后将得到的手骨的ct图像加上性别标签输入inceptionresnetv2网络进行训练,得到第二模型;

s3、分别制作用于识别中指和手腕部分的数据集,然后分别将其输入yolov3网络,得到一个用于识别中指和一个用于识别手腕的yolov3模型,然后将训练集中的手骨ct图像通过这两个模型,得到中指和手腕数据集;

s4、将步骤s3中所获得的中指数据集和手腕数据集加上性别标签输入inceptionv3网络进行训练,得到第三模型和第四模型;

s5、将四个模型对训练集进行测试,并保存预测值;将四个模型的预测值和真实骨龄值保存为一个文档,然后分别根据各个模型预测值的大小进行分组,对每一组都训练一个权重矩阵;

s6、将手骨的ct图像通过四个模型得到的结果和数字1组成矩阵,然后分别根据每个模型的预测值所属的范围乘以其对应权重矩阵,将得到的四个值相加并求平均值得到最终的骨龄预测值。

进一步地,所述步骤s2数据均衡化操作的具体实现方法为:将骨龄数据集按照骨龄的大小分为若干组,然后每组有放回的随机抽取图像,在抽取时考虑到性别因素,使最终图像的男女比例和之前数据集的男女比例相同。

进一步地,所述步骤s5中得到权重矩阵的方法为:采用梯度下降来训练权重矩阵,

把假设函数定义为一次方程式,具体如下:

y=ax1+bx2+cx3+dx4+bias

其中,y表示手骨ct图像所对应的真实骨龄,x1,x2,x3,x4分别表示第一模型,第二模、第三模型、第四模型的预测值,a,b,c,d,bais分别代表每个预测值的权重以及偏置。

进一步地,步骤s5分步骤是:

s51、用得到的四个模型对训练集进行测试,结果分别保存为一列,最后一列存入训练集对应的真实骨龄,保存为txt文档;

s52、分别根据每个模型的预测值对txt文档进行分组,分组的标准为预测值的大小;

s53、对每一种不同的分组,都对其每一组通过梯度下降训练一个权重矩阵,具体为:

将根据第一模型预测值分组的每一组得到的权重矩阵组合起来成为一个权重矩阵,记作w1;

将根据第二模型预测值分组的每一组得到的权重矩阵组合起来成为一个权重矩阵,记作w2;

将根据第三模型预测值分组的每一组得到的权重矩阵组合起来成为一个权重矩阵,记作w3;

将根据第四模型预测值分组的每一组得到的权重矩阵组合起来成为一个权重矩阵,记作w4。

进一步地,步骤s6具体包括如下分步骤:通过选择对应的权重矩阵并与之相乘,以此来优化四个异构模型的预测值。

其中,y是指模型的预测值,m指的是异构模型的数量,xt指的是m个异构模型的预测值的向量,x具体为[预测值1,预测值2,预测值3,预测值4,1],dj指的是基于模型选择的n×n大小的单位矩阵中的一行,n代表所要划分组的数量。

本发明的有益效果:本发明的方法通过训练四个不同的异构模型,每个模型在不同的数据范围内都有自己的最佳结果,换句话说就是一个模型只有在特定的骨龄范围内才表现良好。为了最佳地整合四个模型,把数据根据每个模型的预测值进行划分,对每一份的数据利用回归网络来学习线性的加权矩阵。在预测过程,每一张骨龄ct图像通过四个模型会得到四个预测结果,每个预测结果会自动选择自己所属骨龄范围的类别,然后根据对应训练所得到的加权矩阵,得到修正后的预测值。上述融合和选择策略重复四次,使得数据的选择和分类过程经过每个模型,最终的骨龄预测值是通过对修正后的四个模型预测值进行平均而获得的,实现了在目前骨龄公开数据库的最佳结果,该方法具有良好的泛化性和稳定性。本发明可用于医院来进行骨龄的辅助诊疗,辅助医生进行骨龄预测,能高效并高精度地预测骨龄,可极大地提高效率让医生能够计算儿童地发育情况,也有助于诊断儿科内分泌疾病,且不要求经验丰富的放射科医生,也可以一定程度上解决医疗条件分布不平衡的状况,具有非常高的医学价值。

附图说明

图1为本发明用于骨龄预测的整个流程图。

图2用labelimg标记中指(左)和手腕(右)示意图。

图3通过yolov3检测中指(左)和手腕(右)的效果展示图。

图4从手骨ct图像中分割出的中指(左)和手腕(右)示意图。

图5本发明实施例的4个模型所用到的卷积网络的详细结构。

具体实施方式

下面结合附图对本发明的实施例作进一步的说明。

本实施例具体对手骨的ct图像(图像来自rsna骨龄数据库)进行处理,本发明方法的详细步骤流程图1所示,具体如下:

步骤s1、经过对比度受限的自适应直方图均衡化(clahe)进行预处理,然后按照比例缩小到500×500。然后将手骨图像和对应的性别标签输入inceptionresnetv2网络进行训练,得到模型1。

步骤s2、将数据集进行均衡化,然后将均衡化后的手骨图像按照比例缩小到500×500和对应的性别标签输入inceptionresnetv2网络进行训练,得到模型2。

步骤s3、用labelimg来制作用于训练目标检测网络yolov3的数据集,具体选取的区域如图2所示;训练中使用了yolov3在coco数据集的预训练权重,中指和手腕分开训练。具体为:分别制作240张用于识别中指和手腕的数据集,通过yolov3训练分别识别中指和手腕的模型。将训练集的手骨图像通过训练好的两个yolov3模型,把中指和手腕分别识别出来,识别的结果如图3所示。然后根据识别出的矩形框将中指和手腕分割出来作为两个新的数据集,并且按照比例扩大到224×224,得到的中指和手腕图像如图4所示。

s4、将s3得到的中指和手腕数据集,加上其对应的性别标签输入incepitonv3网络进行训练,得到模型3和模型4。将模型1,2,3,4的训练过程整合在一起如图5所示。

s5、将得到的四个模型对各自的数据集进行测试,将得到的结果和数据集的真实骨龄保存为txt文档。在骨龄预测中,骨龄的范围为(0,228],单位是月。

根据模型1的结果对txt文档进行分组,通过将骨龄的范围进行平均划分为4份,然后根据结果的值属于(0,57],(57,114](114,171],(171,+∞]中的哪个范围,对于每一份通过梯度下降进行训练,得到对应的权重矩阵,组合起来形成按照模型1进行分组的4×5的权重矩阵w1。

根据模型2的结果对txt文档进行分组,通过将骨龄的范围进行平均划分为4份,然后根据结果的值属于(0,57],(57,114](114,171],(171,+∞]中的哪个范围,对于每一份通过梯度下降进行训练,得到对应的权重矩阵,组合起来形成按照模型2进行分组的4×5的权重矩阵w2。

根据模型3的结果对txt文档进行分组,通过将骨龄的范围进行平均划分为4份,然后根据结果的值属于(0,57],(57,114](114,171],(171,+∞]中的哪个范围,对于每一份通过梯度下降进行训练,得到对应的权重矩阵,组合起来形成按照模型3进行分组的4×5的权重矩阵w3。

根据模型4的结果对txt文档进行分组,通过将骨龄的范围进行平均划分为4份,然后根据结果的值属于(0,57],(57,114](114,171],(171,+∞]中的哪个范围,对于每一份通过梯度下降进行训练,得到对应的权重矩阵,组合起来形成按照模型4进行分组的4×5的权重矩阵w4。

s6、将测试集中的手骨ct图片通过四个模型分别得到预测值1,预测值2,预测值3,预测值4,然后组成向量x,即[预测值1,预测值2,预测值3,预测值4,1]。其中,向量中的1代表着阿拉伯数字1,这是为了加上权重矩阵的偏置而设置的,然后x的转置与权重矩阵相乘。步骤s6分步骤是:

s61、选取由模型1分组训练得到的权重矩阵w1,如果预测值1的大小属于分组的第一组时,那么通过d1w1xt(d1是单位矩阵d中的第一行)三个矩阵的相乘得到修正后的预测值_1;如果预测值1的范围属于分组的第二组时,那么通过d2w1xt(d2是单位矩阵d中的第二行)三个矩阵的相乘得到修正后的预测值_1;如果预测值1的范围属于分组的第三组时,那么通过d3w1xt(d3是单位矩阵d中的第三行)三个矩阵的相乘得到修正后的预测值_1;如果预测值1的范围属于分组的第四组时,那么通过d4w1xt(d1是单位矩阵d中的第四行)三个矩阵的相乘得到修正后的预测值_1。

s62、选取由模型二分组训练得到的权重矩阵w2,如果预测2的大小属于分组的第一组时,那么通过d1w2xt(d1是单位矩阵d中的第一行)三个矩阵的相乘得到修正后的预测值_2;如果预测值2的范围属于分组的第二组时,那么通过d2w2xt(d2是单位矩阵d中的第二行)三个矩阵的相乘得到修正后的预测值_2;如果预测值2的范围属于分组的第三组时,那么通过d3w2xt(d3是单位矩阵d中的第三行)三个矩阵的相乘得到修正后的预测值_2;如果预测值2的范围属于分组的第四组时,那么通过d4w2xt(d1是单位矩阵d中的第四行)三个矩阵的相乘得到修正后的预测值_2。

s63、选取由模型三分组训练得到的权重矩阵w3,如果预测3的大小属于分组的第一组时,那么通过d1w3xt(d1是单位矩阵d中的第一行)三个矩阵的相乘得到修正后的预测值_3;如果预测值3的范围属于分组的第二组时,那么通过d2w3xt(d2是单位矩阵d中的第二行)三个矩阵的相乘得到修正后的预测值_3;如果预测3的范围属于分组的第三组时,那么通过d3w3xt(d3是单位矩阵d中的第三行)三个矩阵的相乘得到修正后的预测值_3;如果预测值3的范围属于分组的第四组时,那么通过d4w3xt(d1是单位矩阵d中的第四行)三个矩阵的相乘得到修正后的预测值_3。

s64、选取由模型四分组训练得到的权重矩阵w4,如果预测值4的大小属于分组的第一组时,那么通过d1w4xt(d1是单位矩阵d中的第一行)三个矩阵的相乘得到修正后的预测值_4;如果预测值4的范围属于分组的第二组时,那么通过d2w4xt(d2是单位矩阵d中的第二行)三个矩阵的相乘得到修正后的预测值_4;如果预测值4的范围属于分组的第三组时,那么通过d3w4xt(d3是单位矩阵d中的第三行)三个矩阵的相乘得到修正后的预测值_4;如果预测值4的范围属于分组的第四组时,那么通过d4w4xt(d1是单位矩阵d中的第四行)三个矩阵的相乘得到修正后的预测值_4。

s65、通过对修正后的四个预测值求算术平均数,得到最后的骨龄预测值。详情见下:

骨龄预测值=(预测值_1+预测值_2+预测值_3+预测值_4)/4(5)

以上的简单实例以医院对患者进行检测的流程进行阐述和展示,实际情况是医生通过机器拍摄手部的ct图像后,将原图的dicom格式经过处理后,转化为普通计算机能够处理的格式(例如png等)。然后计算机自动经过上述步骤,得到患者对应的骨龄预测值。通过这样一个简单实例,阐述一种基于深度学习的多个异构模型相互组合的骨龄预测方法的全过程。

这里分组的思想不限于按照每个模型进行分组,也可以按照四个模型预测值的平均值进行分组;而且也不限于分成4组,也可以3,5组等等,而且模型组合也不限于特定的模型,模型的个数也不做要求。

这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其他各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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