一种基于异构数据融合网络的手骨X光片骨龄评估方法
技术领域
本发明涉及医学图像分析领域及机器学习领域,特别涉及一种应用于手骨X光片骨龄评估方法,属于基于深度学习的医学影像分析领域。
背景技术
在儿童发育过程中,骨骼的大小和形状会发生改变。因此,儿童的骨骼年龄与实际年龄之间的差异能反映出发育问题。并且骨骼年龄作为生长发育程度的一项重要指标,在医学、体育等领域中发挥着重要作用,特别是在对青少年脊柱侧凸等病人的临床管理中,进行骨骼成熟度分析以理解其生长的高峰期与停止期对于决定临床观察间隔、定时开始和终止支撑治疗至关重要。而由于手腕部骨块数量较多、包含的信息量大,且采集更加方便,故通常用于评价骨骼成熟度,即骨龄。
目前对于手骨骨龄评定,国际上认可的评定方法包括图谱法和计分法。图谱法要求手骨X光片图像整体与图谱标准片对比,以最接近的图谱标准片所对应的骨龄值作为被检测手骨的骨龄。计分法是对手骨中若干块有代表性的骨骼,对每一块骨骼评定分值并计算总分,再从相应标准中换算为对应的骨龄。
无论是图谱法还是计分法都要求医生对手骨X光片评估拥有足够的领域知识,因为手骨X光片中用于评估骨龄的感兴趣区域(Region of Interest,RoI)在不同的等级中差异细微,在评估过程中为了得出精准的骨龄就要求医生集中注意力并耗费大量的时间去仔细审视手骨X光片中感兴趣区域。但是从事骨龄评估的医生的数量无法满足需要进行骨龄评估的患者的需求,这容易造成医生因每天审视大量的X光片而产生疲劳,从而在接下来的评估过程中无法做出精准的判断。并且富有经验的医生资源集中在城市,在乡镇级别的医院从事骨龄评估的医生资源匮乏。近年来,传统计算机辅助诊断(Computer AidedDiagnosis,CAD)方法辅助专家评估手骨X光片的骨龄,多采用X光片中的纹理、形状等特征进行模型的训练,但这些特征的提取对X光片质量要求较高,样本的好坏容易影响模型的训练结果。此外,手骨关节区域在接近年龄段内的差异较小,这些因素使得传统方法较难取得较高的性能。
发明内容
为了克服现有骨龄评估方法的难度大、效率低下、精度较低的不足,本发明提出了一种基于异构数据融合网络的手骨X光片骨龄评估方法,实现了对手骨X光片的自动分析,可有效得出精准的骨龄评估值。
本发明解决其技术问题所采用的技术方案是:
一种基于异构数据融合网络的手骨X光片骨龄评估方法,包括以下步骤:
步骤一,对X光片图像进行预处理,提取图像中手腕骨部位;
步骤二,构建卷积神经网络提取图像特征;
步骤三,构建文本特征提取模型;
步骤四,构建融合层,合并图像特征和文本特征;
步骤五,模型训练,充分收敛后,保存并导出模型结构及权重参数;
进一步,所述步骤一中,对手骨X光片预处理的过程为:
步骤1.1:图像二值化;
步骤1.2:腐蚀和膨胀,填补手骨区域的黑色区域;
步骤1.3:轮廓检测,提取手腕骨部位轮廓;
步骤1.4:自定义轮廓长度阈值,去除手腕骨腕部多余的信息。
再进一步,所述步骤二中,构建卷积神经网络的过程为:
步骤2.1:输入一组手骨X光片;
步骤2.2:先经过7*7大小的卷积操作,随后进行batch normalization,Relu激活函数操作;
步骤2.3:经过MaXPooling操作,提取主要特征;
步骤2.4:提取的特征经过残差卷积模块,该模块包括2组3*3的卷积操作和batchnormalization;
步骤2.5:重复步骤2.4三次,得到X光片粗糙的特征Fcoarse;
步骤2.6:将Fcoarse输入到注意力机制模块中,得到精细的特征Ffine;
步骤2.7:将Ffine输入到空间金字塔池化模块中,得到固定的512*21大小的一维向量Vimage。
再进一步,所述步骤三中,构建文本特征提取网络的过程为:
步骤3.1:输入步骤2.1手骨X光片所对应的文本信息;
步骤3.2:经过有N个隐藏神经单元的全连接层,N代表文本信息的个数,全连接层后接一层Batch Normalization和ReLU激活函数;
步骤3.3:重复两次步骤3.2,得到文本特征Vtext。
再进一步,所述步骤四中,构建特征融合层的过程为:
步骤4.1:步骤2.7所得的一维向量Vimage经过一层含有N个隐藏神经单元的全连接层,得到压缩后的一维特征V′image;
步骤4.2:将V′image和步骤3.3得到的文本特征VteXt拼接,得到2*N大小的Vfusion。
步骤4.3:经过有2*N个隐藏神经单元的全连接层,然后接一层BatchNormalization和ReLU激活函数,得到最后的骨龄评估值。
更进一步,所述步骤2.6,注意力机制模块构建的过程为:
步骤2.6.1:将粗糙的特征Fcoarse分别经maX-pooling和average-pooling操作生成FmaX和Favg;
步骤2.6.2:FmaX和Favg分别经过一个单层隐含层的多层感知器来减少参数;
步骤2.6.3:在多层感知器之后,合并FmaX和Favg,并通过sigmoid函数得到通道注意图FM,公式如下:
FM=(σ(W1(W0(Favg))+W1(W0(Fmax))))⊙Fcoarse,
其中σ代表sigmoid函数,W1和W0是多层感知器的参数,⊙代表逐元素相乘;
步骤2.6.4:FM通过maX-pooling层和average-pooling层,然后进行卷积核为7*7的卷积运算;
步骤2.6.5:通过sigmoid函数得到空间注意图Fs;
步骤2.6.6:然后利用空间注意图Fs逐元素相乘通道特征图FM,得到最后的Ffine,公式如下:
Ffine=σ(f7×7([AvgPool(F);MaxPool(F)]))⊙FM
=FS⊙FM
其中f7×7代表卷积核为7*7的卷积操作。
更进一步,所述步骤2.7,空间金字塔池化模块构建过程为:
步骤2.7.1:将得到的精细的特征图Ffine分别输入到有4*4,2*2,1*1个bins金字塔池化层;
步骤2.7.2:在每个有n*n个bins的金字塔池化层中,Ffine通过各自的池化作用分别得到512*n*n大小一维向量,其中池化窗口大小和步长公式如下:
其中,其中n代表bins的宽和高,n∈[1,2,4];H,W分别代表特征图的高和宽;sizew和sizeh分别代表池化窗口大小;Sw和Sh分别代表池化窗口在特征图的宽和高上移动的步长;和分表代表向下取整和向上取整;
步骤2.7.3:拼接输出的一维向量,得到512*21大小的一维向量Vimage。
本发明基于异构数据融合网络的手骨X光片评估,通过提取手骨X光片图像特征和其所对应的文本信息特征来实现对骨龄的评估。与现有方法相比,其有益效果在于:
1.通过卷积神经网络对X光片进行分析,自动辅助评估X光片骨龄的方法,相比传统方法效率高,速度快。
2.在X光片图像特征提取中采用了注意力机制模块,精细化了网络的特征,使重要的图像信息得到了有效利用。
3.使用X光片图像和文本信息两种多源异构数据,两者信息融合互补,提高了评估效果。
附图说明
图1是基于异构数据融合网络的手骨X光片评估的流程图。
图2用于手骨X光片的神经网络结构示意图。
图3神经网络中残差模块结构示意图。
图4空间金字图池化层结构示意图。
图5注意力机制模块结构示意图
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图5,一种基于异构数据融合网络的手骨X光片骨龄评估方法,包括以下步骤:
步骤一,对X光片图像进行预处理,提取图像中手腕骨部位;
步骤二,构建卷积神经网络提取图像特征;
步骤三,构建文本特征提取模型;
步骤四,构建融合层,合并图像特征和文本特征;
步骤五,模型训练,充分收敛后,保存并导出模型结构及权重参数;
进一步,所述步骤一中,对骨龄X光片预处理过程为:
步骤1.1:图像二值化;
步骤1.2:腐蚀和膨胀,填补手骨区域的黑色区域;
步骤1.3:轮廓检测,提取手腕骨部位轮廓;
步骤1.4:自定义轮廓长度阈值,去除手腕骨腕部多余的信息。
再进一步,所述步骤二中,构建卷积神经网络的过程为:
步骤2.1:输入一组手骨X光片;
步骤2.2:先经过7*7大小的卷积操作,随后进行batch normalization,Relu激活函数操作;
步骤2.3:经过MaXPooling操作,提取主要特征;
步骤2.4:提取的特征经过残差卷积模块,该模块包括2组3*3的卷积操作和batchnormalization;
步骤2.5:重复步骤2.4三次,得到X光片粗糙的特征Fcoarse;
步骤2.6:将Fcoarse输入到注意力机制模块中,得到精细的特征Ffine;
步骤2.7:将Ffine输入到空间金字塔池化模块中,得到固定的512*21大小的一维向量Vimage。
再进一步,所述步骤三中,构建文本特征提取网络的过程为:
步骤3.1:输入步骤2.1手骨X光片所对应的文本信息;
步骤3.2:经过有N个隐藏神经单元的全连接层,N代表文本信息的个数,全连接层后接一层Batch Normalization和ReLU激活函数;
步骤3.3:重复两次步骤3.2,得到文本特征Vtext。
再进一步,所述步骤四中,构建特征融合层:
步骤4.1:步骤2.7所得的一维向量Vimage经过一层含有N个隐藏神经单元的全连接层,得到压缩后的一维特征V′image;
步骤4.2:将V′image和步骤3.3得到的文本特征Vtext拼接,得到2*N大小的Vfusion。
步骤4.3:经过有2*N个隐藏神经单元的全连接层,然后接一层BatchNormalization和ReLU激活函数,得到最后的骨龄评估值。
更进一步,所述步骤2.6,注意力机制模块构建过程为:
步骤2.6.1:将粗糙的特征Fcoarse分别经max-pooling和average-pooling操作生成Fmax和Favg;
步骤2.6.2:Fmax和Favg分别经过一个单层隐含层的多层感知器来减少参数;
步骤2.6.3:在多层感知器之后,合并Fmax和Favg,并通过sigmoid函数得到通道注意图FM,公式如下:
FM=(σ(W1(W0(Favg))+W1(W0(Fmax))))⊙Fcoarse,
其中σ代表sigmoid函数,W1和W0是多层感知器的参数,⊙代表逐元素相乘;
步骤2.6.4:FM通过max-pooling层和average-pooling层,然后进行卷积核为7*7的卷积运算;
步骤2.6.5:通过sigmoid函数得到空间注意图FS;
步骤2.6.6:然后利用空间注意图FS逐元素相乘通道特征图FM,得到最后的Ffine,公式如下:
Ffine=σ(f7×7([AvgPool(F);MaxPool(F)]))⊙FM
=FS⊙FM
其中f7×7代表卷积核为7*7的卷积操作。
更进一步,所述步骤2.7,空间金字塔池化模块构建过程为:
步骤2.7.1:将得到的精细的特征图Ffine分别输入到有4*4,2*2,1*1个bins金字塔池化层;
步骤2.7.2:在每个有n*n个bins的金字塔池化层中,Ffine通过各自的池化作用分别得到512*n*n大小一维向量,其中池化窗口大小和步长公式如下:
其中,其中n代表bins的宽和高,n∈[1,2,4];H,W分别代表特征图的高和宽;sizew和sizeh分别代表池化窗口大小;Sw和Sh分别代表池化窗口在特征图的宽和高上移动的步长;和分表代表向下取整和向上取整;
步骤2.7.3:拼接输出的一维向量,得到512*21大小的一维向量Vimage。
所述步骤二中,图像卷积神经网络架构主要由三部分组成:1)提取图像粗特征部分。主要由1个卷积层,1个最大池化层,4个残差卷积模块(Block模块)。每个卷积层后都对特征进行标准化操作,提高训练速度,并经过ReLU激活函数,提高网络的非线性表达。如图3所示,每个残差卷积模块内包含两个卷积层,一个快捷支路。快捷支路起点为输入,终点为第二个卷积层后的加操作,使得输入特征可以直接和第二个卷积层提取的特征进行数值相加。这样网络只需要计算相比原输入的残差,降低了训练难度。2)注意力机制模块。其一,通道注意力机制主要由max-poling,avg-pooling和多层感知机组成,生成通道上的关键因子与粗特征图相乘,得到通道上得到更多关注的信息;其二,空间注意力机制主要由max-pooling,avg-pooling和卷积操作组成,生成空间上的关键因子与通道注意图相乘,得到精细化的特征图。3)空间金字塔池化模块。任意大小的特征图都使用3级金字塔池化层进行池化,其中分别各有1个4*4、2*2和1*1大小的bin。对于具有n*n大小bin的金字塔池化层,允许任意比例下的特征图,并且保留了图像中细微的特征。
所述步骤三中,由3层全连接层组成,每层全连接层后面接上batchnormalization,提高训练速度,并经过ReLU激活函数,提高网络的非线性表达,并且有dropout层,并且设置为0.5,防止模型过拟合。
所述步骤四中,图像特征经过一层全连接层,得到与文本信息特征相同大小的特征,防止图像特征过大,文本信息特征再评估过程中起到的作用过小。拼接后的特征经过2层全连接层组成,每层全连接层后面接上batch normalization,提高训练速度,并经过ReLU激活函数,提高网络的非线性表达,dropout层设置为0.5,防止模型过拟合。最后一个全连接层的输出尺寸为1,对应骨龄的评估结果。
实例:本案例中使用的手骨X光片。手骨X光片5286例样本,其中有2731例有文本信息的男性手骨X光片和2555例有文本信息的女性手骨X光片。从男女性样本中分别选出683例和639例样本作为测试集,剩下的2048例男性样本和1916例女性样本作为测试集。下面具体介绍手骨X光片模型的训练和测试过程。
步骤一,手骨X光片去除噪点。
步骤1.1:图像二值化;
步骤1.2:腐蚀和膨胀,填补手骨区域的黑色区域;
步骤1.3:轮廓检测,提取手腕骨部位轮廓;
步骤1.4:自定义轮廓长度阈值,去除手腕骨腕部处多余的信息。
步骤二,神经网络的构建和训练,具体结构如图2所示。
步骤2.1网络架构主要由三部分组成:1)图像特征提取。2)文本信息特征提取。3)图像特征和文本信息特征的融合。在图像特征提取中有1个卷积层,1个最大池化层,4个残差卷积模块(Block模块),1个注意力模块,1个空间金字塔池化模块。文本信息特征提取有3个全连接层。图像特征和文本信息特征融合部分有2个全连接层。
步骤2.2第一层卷积层的卷积核大小均为7*7,滑动步长为2,padding为3。残差模块中卷积核大小都为3*3,除了第一个残差模块的滑动步长为1,其他都为2,并且残差模块之间相连的卷积层卷积核大小为1*1。卷积核数随着进入残差模块而变多,分别为64,128,256,512。输出的每个卷积层后都对特征进行批标准化操作,提高训练速度,并经过ReLU激活函数,提升网络的非线性表达。注意力机制模块中的通道注意力结合max-pooling和avg-pooling操作最后得到大小为512的一维向量,而空间注意力结合max-pooling和avg-pooling操作最后得到channel为1的二维特征图。文本信息特征提取的全连接层都为N个隐藏神经单元,N等于文本信息的个数,而融合层有2*N个隐藏神经单元。每个全连接层后面都接上batchnormalization,ReLU激活函数,dropout层(0.5)。
步骤2.3卷积层中所有参数权重初始化为随机正交矩阵初始化,权重正则化方式为L2正则,偏置值初始化为0。全连接层中,权重初始化为随机正态分布,权重正则化方式为L2正则,偏置值初始化为0。
步骤2.4利用Pytorch框架搭建网络。模型采用batch训练的方式。训练集生成器和验证集生成器每个batch的样本数batch size均为1,一个轮次训练完成后,生成器会返回5次并计算验证集损失,损失函数为平均绝对误差损失函数。模型优化器为SGD,参数为lr=0.001,weight_decay=0.005,momentum=0.9,并且每经过5个轮次,lr缩小10倍。模型最大训练轮次为60,验证与训练损失收敛后停止训练,并保存模型。
步骤三,神经网络模型测试
载入模型,将预处理完毕的手骨X光片测试集样本输入模型分析。
经过上述步骤的操作,即可实现用于评估手骨X光片的融合网络的构建、训练与测试。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例,用于解释本发明,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。