基于改进AlexNet的手腕骨图像成熟等级识别

2021-12-01 00:56丁维龙毛科技
浙江工业大学学报 2021年6期
关键词:骨龄网络结构骨骼

丁维龙,李 涛,丁 潇,余 鋆,毛科技

(浙江工业大学 计算机科学与技术学院,浙江 杭州 310023)

骨龄是研究儿童与青少年成长发育情况的一个重要指标,在一定程度上能够说明一个人实际发育的水平[1]。骨龄评估是对骨骼发育成长程度的评定,在社会生活中应用十分广泛,在预防医学、临床医学和体育科学等领域都有着重要意义和使用价值[2]。此外,骨龄评估还能帮助警方确定刑事责任年龄,反映出犯罪嫌疑人或死者的真实年龄,为断案判刑提供有力的证据参考[3]。传统的骨龄评估方法是医学专家人工观察并解读左手X光片来评定骨龄,其评定方法有简单计数法、图谱法和计分法等。目前,国际上主流的骨龄评估方法是G-P图谱法[4](Greulich and Pyle atlas method)和TW3(Tanner-Whitehouse 3)计分法[5]。前者是医生将X光片与X光片图谱中的不同年龄标准图像进行对比来评定骨龄;后者是先从患者左手X光片中选出多块骨头,并分别对每一块骨头的成熟度进行打分,然后计算所有骨头的分值,从而得到整个左手X光片的成熟度的总分,最后对比已制定的标准表来查阅该患者的骨龄。这两种方法使用的样本均是取自欧洲的儿童及青少年,因此张绍岩等采用中国青少年儿童样本,结合这两种方法制定出了适合中国青少年儿童的《中国人手腕骨发育标准CHN法》[6]。传统的评估骨龄方法,有以下缺陷[7-9]:1)骨龄评估的准确性受专家的主观因素影响;2)人工评定骨龄要求评定专家具有丰富的专业知识和经验,难以批量评定骨龄;3)医学专家评估骨龄,无论是查找图谱还是计分查表都需要耗费大量时间。针对这些缺陷,近年来出现了将人工智能与骨龄评估相结合的研究,以实现骨龄的自动化评估。

国际上早期的骨龄评估系统是BoneXpert[10],该系统是根据活动形状的主动外观模型来分割左手图像的15 块骨骼,选择其中13 块骨骼,结合它们形状、纹理和骨骼密度等特征,通过计分和对比图谱来评定骨龄[11],但该方法容易受到左手X光片图像质量和年龄因素的干扰和限制。为了提升骨龄的评估效率,国内外学者研究出了基于深度学习的骨龄评估方法。Hu等[12]结合迁移学习方法,使用新疆维吾尔自治区青少年的左手图片样本和AlexNet卷积神经网络训练出回归模型来自动评估骨龄,该研究的样本量少且年龄范围也有限制,训练的模型能力不是很稳定。Iglovikov等[13]对左手图像进行图像分割去除背景干扰,使用利用关键点确定特定部位的方式来评估骨龄,该方法是面向全手和特定部位的识别,评估骨龄的准确性一般。Larson等[14]采集14 036 张左手X光片作为样本并使用深度残差网络训练出网络模型来实现骨龄自动化评估,该模型效果与人工评估效果虽然相当,但是该研究中0~2 岁的样本较少,导致该年龄段的骨龄评估准确性不高[15]。Bui等[16]先使用Fast R-CNN检测兴趣区域ROI并提取出TW3法中的多块骨骼区域,再结合Inception-V4卷积神经网络训练分类模型实现骨龄自动评估。该研究使用的样本只有男性693 张、女性682 张,训练的模型不稳定。以上这些研究表明:目前研究骨龄的主要方法是通过识别左手全手和手腕骨的多个特征区域的方式来评估骨龄,骨龄评估模型的稳定性和准确率还有待进一步提高,因此如何提升评估骨龄准确率是一个重要的研究方向。CHN法中的等级评定是评估骨龄的关键步骤,故提升骨骼的等级识别准确率对评估骨龄的准确性有重要影响。为此,笔者提出一种基于改进AlexNet的手腕骨图像等级识别方法,该方法是将优化的空间变换网络加入到AlexNet网络结构中,对特征图进行旋转、平移和缩放等变换操作以获取更有辨识度的特征信息;采用Maxout激活函数作为网络中卷积层的激活函数,以避免网络模型训练过程中出现神经元坏死问题,提升对手腕骨图像成熟等级识别的准确性。实验结果表明:笔者改进的AlexNet网络模型可以比较明显地提升手腕骨图像成熟等级识别的性能,对实现骨龄自动化评估有一定的参考意义。

1 手腕骨图像成熟等级识别网络模型

卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,被有效地应用于多个领域的任务中[17-18]。AlexNet网络在2012年的ImageNet大赛上获得冠军,在图像分类领域体现出优越的性能[19]。AlexNet与GoogLeNet,ResNet等更先进的模型相比,具有更简单的网络结构和更少的网络参数。对于手腕骨图像数据集,AlexNet更便于作出改进并获得更好的训练效果。因此,笔者采用AlexNet作为基础网络用于手腕骨图像成熟等级的识别。为了提升AlexNet在实际应用手腕骨图像成熟等级识别中的准确度,笔者提出一种改进的AlexNet网络结构,进行手腕骨图像特征学习,并构建高效的手腕骨图像等级识别模型。

AlexNet是一种深度卷积神经网络模型,具有很强的图像分类能力且应用广泛,它继承了LeNet思想并进一步发展,首次将ReLU,Dropout和LRN等策略成功地加入到卷积神经网络中并使卷积神经网络的思想在很深很宽的网络中得到应用。

AlexNet网络含有8 层结构,包括5 个卷积层,3 个池化层和3 个全连接层。它采用ReLU函数为激活函数,添加了Dropout技术以防止出现过拟合。卷积层主要是提取图像的特征,池化层操作(Pooling)主要是进行特征融合和降维,最后的全连接层使特征图转换成特征向量。AlexNet网络输入的图像尺寸是227×227,第1层卷积层的卷积核大小为11×11,步长为4,卷积核数为96;第2层的卷积层的卷积核大小是5×5,步长为1,卷积核数为256;第3~5 层卷积层的卷积核大小都是 3×3,步长为1,卷积核数分别为384,384,256;该5 层卷积层每层后面都接着LRN层,第1,2,5 层的卷积层后接着核大小为3×3,步长为2的最大池化层;第6~8 层是使用了ReLU和Dropout的全连接层,每层具有4 096 个神经元,最终输出的Softmax为1 000。AlexNet网络结构如表1所示。

表1 AlexNet模型结构

2 改进的AlexNet

针对AlexNet存在收敛慢和其在网络模型训练时会出现神经元坏死等问题,笔者提出了一种改进的AlexNet网络结构,构建高效的手腕骨图像等级识别模型。该模型是从网络框架和网络内部两个方面进行改进和优化:1)将优化后的空间变换网络加入到AlexNet网络结构中以提升网络学习效率;2)AlexNet中5 层卷积层的激活函数全都采用Maxout函数替换原来的ReLU函数,避免网络模型出现神经元坏死问题。

2.1 优化的空间变换网络增加卷积神经网络空间不变性

2.1.1 空间变换网络

卷积神经网络中卷积层和池化层的操作虽然都具有平移不变性,但是这种不变性有一定的局限性,过分依赖先验知识,对输入的数据并不真正具有空间不变性的能力,因此引入了一个新的空间域注意力模块,即空间变换网络。空间变换网络是Jaderberg等[20]提出的一个局部网络层,是一个可训练的模块,能对输入到网络中的数据进行空间变换。空间变换网络具有动态机制,可以对输入的样本图像进行缩放、剪切、旋转和非刚性变形等变换操作,以实现整个特征映射。因此,空间变换网络类似于注意力机制,可以选择感兴趣的图像区域特征,读取特征的关键信息以助于后续网络的图像识别分类。

空间变换网络主要由定位网络(Localisation network)、网格生成器(Grid generator)和采样器(Sampler)3 个部分组成。空间变换网络结构如图1所示。

图1 空间变换网络结构图

2.1.2 优化的空间变换网络

空间变换网络的定位网络一般由2 层卷积层和2 层全连接层组成,第1层卷积层卷积核尺寸大小为7×7,步长为1,通道数为8;第1层最大池化层核为2×2,步长为2;第2层卷积层卷积核尺寸大小为5×5,步长为1,通道数为10;第2层最大池化层核为2×2,步长为2;第1层全连接层有32 个神经元;第2层全连接层有6 个神经元,如图2(a)所示。为了将空间变换网络加入到AlexNet网络结构中以对特征图进行空间变换,调整特征图帮助网络学习到关键的特征信息,引入NIN模块[21]对空间变换网络进行优化,从而设计出适合的空间变换机制。考虑到卷积层输出多通道的卷积特征,对添加到第3,4卷积层后的空间变换网络重新设计定位网络结构,结果如图2(b)所示。第1层为1×1的卷积层,将多通道之间的卷积特征转换成单通道特征图输入到下一层卷积层,并添加2 个NIN模块:1)由一个7×7的卷积层和2 个1×1的卷积层组成;2)由一个3×3的卷积层和2 个1×1的卷积层组成。添加到第5层卷积层后的最大池化层后的空间变换网络将最大池化层下采样后的特征图进行空间变换,突出更有辨识度信息的特征区域输入到全连接层,提升网络模型的分类效果。该部分设计的空间变换网络的定位网络结构如图2(c)所示,第1层为1×1的卷积层,添加了1 个3×3的卷积层和2 个1×1的卷积层组成的NIN模块,并在其后再加入1 个1×1的卷积层进行转换通道数。引入NIN模块优化空间变换网络的定位网络,可以减少网络的参数量、增强卷积特征图的局部感受野,提升网络结构的非线性表达能力。

图2 空间变换网络中的定位网络结构图

添加的空间变换网络通过旋转、平移、缩放和裁剪等方式调整特征图,获取感兴趣的关键特征区域,使用网格生成器进行仿射变换,其计算式为

(1)

式中Aθ为仿射变换,通过改变S,xt,yt的值来实现旋转、平移、缩放和裁剪等变换操作。

由于双线性插值是可微的,因此空间变换网络的采样器采用的是双线性采样核,其计算式为

(2)

将改进的空间变换网络命名为NSTN,并将其加入到AlexNet网络结构中构建成NSTN-AlexNet网络,网络结构与图3相同,其卷积层使用的激活函数是ReLU函数。NSTN-AlexNet网络不仅具有空间不变性,还能减小模型训练的损失函数,提升网络模型的识别准确性。

图3 基于改进的AlexNet网络结构图

2.2 Maxout在卷积神经网络中的表达

Maxout激活函数使用在卷积神经网络中相当于在网络结构中加入了1 层激活函数层[22],与ReLU,Sigmoid相比,具有1 个参数k,隐含层具有k个神经元。Maxout函数比较k个神经元的激活值,再将最大的激活值作为下一层的输入值。Maxout中隐含层神经元i节点输出的数学表达式为

(3)

式中:k为Maxout层的参数,k值越大,运算量越大;zij的数学计算公式为

zij=xTWij+bij

(4)

式中:W为一个三维矩阵W∈Rd×m×k;b为一个二维矩阵b∈Rm×k。W和b都是后向传播学习得到的参数。Maxout函数包含着任意的仿射变换,能够拟合任意的凸函数,表示成一个分段函数。它具有ReLU函数的全部优点,不仅能够防止出现梯度消失和梯度爆炸等问题,还能在输入值小于零时进行神经元传递,从而能解决ReLU出现神经元坏死的问题。

为了提升网络学习效率,避免网络模型训练过程中出现神经元坏死问题,将AlexNet网络的5 层卷积层的激活函数都采用Maxout替换原有的ReLU。Maxout层结构如图4所示。由图4可知:添加Maxout函数层增加了网络参数量,可以提取到更抽象、精确的图像特征,从而提升网络模型的识别准确性。

图4 Maxout激活函数层结构

2.3 基于改进的AlexNet手腕骨图像等级识别

将优化后的空间变换网络加入到AlexNet网络结构中,使用Maxout函数作为AlexNet网络中的激活函数,构建了改进的AlexNet网络结构(图3)。该网络模型的输入为图像及其相对应的标签,输出是图像标签分类的概率。

使用改进的AlexNet网络对CHN法中左手手腕骨部位的单类骨骼图像进行成熟等级识别:先将制作好的单块骨头训练集图像及其对应的标签输入到改进的AlexNet网络中训练,得到识别效果好的分类模型;再使用训练好的分类模型对单块骨骼图像等级进行预测,输出各等级预测的概率;最后选取预测概率最大的骨骼等级作为识别的最终等级输出。

3 实 验

3.1 实验方法

3.1.1 构建数据集和图像预处理

实验所用的数据是从杭州、诸暨等地区的小学采集的,范围为1~6 年级。拍摄采集的左手手腕部X光片图像是DICOM格式(将其转换成JPG格式)。考虑到采集的X光片图像中左手手腕部大小不同和图像噪声都会对实验造成干扰,因此需要对图像进行预处理。从左手X光片中分别切割出头状骨、钩骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ图像,在保证每块骨骼图像区域被全部切割的前提下,切割时尽量避免其他骨的干扰。选取这5 类骨头的主要原因是头状骨、钩骨旁边干扰多,识别难度大,掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ的相邻等级图像特征的区分度小导致识别难度高。选取的5 类骨头预处理后的图像如图5所示。

图5 选取的5类骨头图像

骨龄专家根据中国人手腕骨发育标准CHN法对这5 类骨骼图像进行人工标定,给出骨骼的成熟等级,将标定出的等级与单类骨骼图像相对应,制作头状骨、钩骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ等5 类骨骼数据集各10 341 张。每个数据集中都具有经过3 个骨龄专家共同评定出的骨骼等级的图像1 380 张(包含各个骨骼等级)。实验数据集样本中头状骨成熟等级分布为4~7 等级,钩骨成熟等级分布为3~8 等级,掌骨Ⅰ成熟等级分布为1~8 等级,远节指骨Ⅰ成熟等级分布为3~8 等级,中节指骨Ⅴ成熟等级分布为0~8 等级。选取由3 位专家共同评定的1 380 张图片样本作为测试集,其余的数据集图像作为训练集和验证集。

3.1.2 数据增强

实验使用的数据集来源于1~6 年级的小学生,骨骼成熟等级分布不均衡。卷积神经网络训练需要大量的带标签的图片样本才能训练出较好的分类模型,训练集样本有限且图像等级分布不均衡,会导致网络模型训练出现过拟合的现象。为提升模型的准确率和泛化能力,使用随机旋转、随机平移和随机中心裁剪技术对训练集图像进行增强,每个数据增强后产生的图像都被当作一个带标签的“新”图像,输入网络中进行训练,使得网络模型具有泛化性特征。对训练集样本图像使用随机旋转,旋转的角度范围在0°~30°,随机平移和随机中心裁剪的范围都在0~30 像素。以钩骨和头状骨训练集图像为例,经过这3 种数据增强技术处理后的图像如图6,7所示。

图6 钩骨的数据增强

图7 头状骨的数据增强

3.1.3 实验过程

采用的计算机硬件配置为i59 600 kF的CPU,Geforce RTX 2 060的GPU,16 G内存,使用python 3.6和pytorch 1.0的深度学习环境进行实验研究。本实验中采用先填充再中心剪裁的方法将训练集图像的尺寸调整为227×227 像素大小,输入到改进的AlexNet网络中进行训练,5 个骨骼训练集共训练出5 个网络模型,使用测试集测试出模型的识别效果,并与ResNet[23],SENet[24],ResNeXt[25],GoogLeNet[26]和CBAM[27]网络对5 个骨骼训练集训练出的分类模型识别效果进行对比。

准确率为图像识别效果评价指标,其计算式为

(5)

式中:P为准确率;TN为准确识别的图像个数;TP为错误识别的图像个数。

3.2 实验结果分析

为了验证笔者改进方法中隐含层神经元的个数对手腕骨图像分类精度的影响和改进的AlexNet模型对手腕骨图像等级的识别效果,笔者进行3 种对比试验:1)在钩骨、头状骨等数据集上测试不同隐含层神经元个数的手腕骨图像分类精度;2)改进网络之间的识别准确率的实验对比;3)改进的AlexNet网络与其他卷积神经网络的识别准确率的实验对比。

3.2.1 隐含层神经元个数对图像分类精度的影响

为了验证Maxout激活函数中的隐含层神经元的个数对手腕骨图像分类精度的影响,在钩骨、头状骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ数据集上,测试不同隐含层神经元个数的手腕骨图像分类精度。针对手腕骨单类骨骼成熟等级的分类任务,实验设置隐含层神经元个数n={2,4,8,16,32},在优化的AlexNet+Maxout网络模型上进行实验,设置batchsize=32,学习率LR=0.001,并采用随机梯度下降法(Stochastic gradient descent,SGD)训练数据,实验结果如表2所示。

表2 不同神经元个数的图像分类错误率

由表2实验结果可知:隐含层神经元的数量变化影响手腕骨图像的识别精度。对于钩骨、头状骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ数据集的识别训练,当隐含层神经元数量≤4时,随着隐含层神经元个数的增加,训练出的模型分类精度逐渐提升;当隐含层神经元数量在4~32时,随着隐含层神经元个数的增加,训练出的模型分类精度开始逐渐下降。当隐含层神经元数量增加到16时,网络训练会出现轻微的过拟合,降低网络模型的分类精度。综合考虑网络模型的分类精度和网络的运算时间及复杂度,改进的AlexNet网络中采用的隐含层神经元个数为4。

3.2.2 改进网络的准确率对比

为了验证对改进的AlexNet网络的模型识别准确率,选用了头状骨、钩骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ的训练集,对逐步改进的网络训练出的分类模型进行了对比实验,即使用AlexNet网络和将空间变换网络加入到AlexNet网络结构中构建成的STN-AlexNet网络、将优化的空间变换网络加入到AlexNet网络结构中构建成的NSTN-AlexNet网络、将Maxout函数替换AlexNet中卷积层ReLU激活函数的AlexNet+Maxout网络、改进的AlexNet网络对5 个骨骼训练集图像进行学习训练,设置batchsize=32,学习率LR=0.001,并采用SGD法训练数据,对训练出的分类模型使用相对应的测试集进行测试。其测试结果如表3所示。

表3 改进的网络模型识别5 类骨骼成熟等级的准确率

由表3中的实验结果可知:改进的AlexNet网络训练的网络模型识别头状骨的成熟等级准确率为88.39%,钩骨的成熟等级准确率为85.35%,掌骨Ⅰ的成熟等级准确率为79.69%,远节指骨Ⅰ的成熟等级准确率为79.41%,中节指骨Ⅴ的成熟等级准确率为81.29%。改进AlexNet网络模型比原始AlexNet网络模型的识别准确率提高了3%~4%。实验结果说明:改进的AlexNet网络具有空间不变性,在网络训练中能对特征图进行空间变换突出有辨别力的特征信息区域,获取到更抽象、精确的特征表达,并提升网络模型的学习效率,能较好的识别5 类骨骼图像的成熟等级。

3.2.3 改进的AlexNet与其他卷积神经网络模型对比

为了验证笔者改进的AlexNet网络模型识别性能,将改进的AlexNet模型与其他卷积神经网络模型进行实验对比,即使用头状骨、钩骨、掌骨Ⅰ、远节指骨Ⅰ和中节指骨Ⅴ这5 个骨骼训练集分别对笔者改进的AlexNet与ResNet,SENet,ResNeXt,GoogLeNet和CBAM这6 个网络进行训练,设置batchsize=32,学习率LR=0.001,并采用SGD法训练数据,并分别使用相对应的测试集对训练出的分类模型测试出识别的准确率。不同网络模型对5 类骨骼图像成熟等级识别测试结果如表4所示。

表4 不同的网络模型识别5 类骨骼成熟等级的准确率

由表4可以看出:6 种不同的卷积神经网络模型对5 类骨骼图像成熟等级的识别,都取得了较好的准确率。笔者改进的AlexNet网络模型,具有较好的泛化能力,其训练的分类模型与其他卷积神经网络的分类模型对5 类骨骼图像的等级识别准确率相比,提高了3%~4%。实验结果表明:与其他5 个卷积神经网络模型对5 类骨骼图像的成熟等级识别效果相比,笔者改进的AlexNet网络模型识别效果更好;改进的AlexNet网络对手腕骨图像的等级识别具有一定的优越性。

4 结 论

提出了一种基于改进AlexNet的手腕骨图像等级识别方法,该方法将优化后的空间变换网络加入AlexNet网络中对卷积后的特征图进行空间变换,突出具有辨识度的特征区域,并提取该区域特征信息用于网络模型识别;使用Maxout函数作为网络中5 层卷积层的激活函数,以避免网络训练中出现神经元坏死问题,提升网络学习效率,进而提升手腕骨图像等级识别的准确率。实验结果表明:笔者改进的AlexNet网络训练的识别模型对5 类骨骼图像的等级识别准确率与原始的AlexNet网络相比,提高了3%~4%,与其他卷积神经网络相比,也具有一定的优越性。该方法可给骨龄自动评估系统的开发提供一定的参考。本研究尚有一些不足:1)数据集样本等级分布不均衡,边缘等级图像样本少,这些问题影响总体识别准确率;2)实验没有训练CHN法中剩余的9 类特征骨的分类模型。未来,将进一步研究如何在样本等级分布不均衡的情况下提升单类骨骼的等级识别准确率。

猜你喜欢
骨龄网络结构骨骼
2387 例儿童青少年骨龄调查分析
评估身高需要定期测骨龄吗
做家务的女性骨骼更强壮
三减三健全民行动——健康骨骼
快递网络结构研究进展
骨龄预测身高靠谱吗
基于AutoML的保护区物种识别①
不同项目儿童少年运动员骨龄纵向分析与应用研究
基于互信息的贝叶斯网络结构学习
非常规突发事件跨组织合作网络结构演化机理研究