骨骼成熟度分析对于指导临床管理等具有重要作用,而目前评定骨骼成熟度还主要靠医师进行人工读片。本文根据骨骼成熟度评价指标与临床应用实际,提出一种基于卷积神经网络的骨龄阶段自动识别方法,实现从手部X光片中自动检测出尺骨、桡骨末端区域,并对其进行骨龄阶段分类的自动化识别过程。最终,通过卷积神经网络建模训练,参数优化、数据增强等技术的运用,尺骨与桡骨分别获得了90%与92%的识别精度。 Patients’ bone maturity analysis plays an important role in determining clinical management. At present, skeletal maturity assessment is still highly depended on physicians' evaluation. This process is time-consuming and often contains interrater variability. In this paper, based on the skeletal maturity evaluation criteria and the clinical applications, the authors propose an automatic bone age recognition scheme using convolutional neural network models. The scheme will first accurately extract distal radius and ulna regions from hand radiographs, then it will help us classify the bone age phases automatically. After parameters optimization and data augmentation, our deep learning model finally achieves 90% and 92% recognition accuracies on radius and ulna datasets respectively.
王永灿1,2,胡勇3,申妍燕1,王书强1*,王祖辉1
1中国科学院深圳先进技术研究院,深圳
2中国科学技术大学,安徽 合肥
3香港大学,香港
收稿日期:2017年12月20日;录用日期:2018年1月2日;发布日期:2018年1月9日
骨骼成熟度分析对于指导临床管理等具有重要作用,而目前评定骨骼成熟度还主要靠医师进行人工读片。本文根据骨骼成熟度评价指标与临床应用实际,提出一种基于卷积神经网络的骨龄阶段自动识别方法,实现从手部X光片中自动检测出尺骨、桡骨末端区域,并对其进行骨龄阶段分类的自动化识别过程。最终,通过卷积神经网络建模训练,参数优化、数据增强等技术的运用,尺骨与桡骨分别获得了90%与92%的识别精度。
关键词 :卷积神经网络,骨龄,X光图像,分类
Copyright © 2018 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
骨龄作为生长发育程度的一项重要指标,在医学、体育及司法鉴定等领域中发挥着重要作用,特别是在对青少年脊柱侧凸等病人的临床管理中,进行骨骼成熟度分析以理解其生长的高峰期与停止期对于决定临床观察间隔、定时开始和终止支撑治疗至关重要。而由于手腕部骨块数量较多、包含的信息量大,且采集更加方便,故通常用于评价骨骼成熟度(骨龄)。
目前国际上较为常用的骨骼发育成熟度评价方法有G-P图谱法和TW计分法 [
随着深度学习研究的火热发展,深度神经网络模型逐渐被引入各个领域,并取得了不错的效果。在医疗诊断过程中,精准地诊断通常要借助于高质量的医学影像检查。随着近年来医学成像技术的不断提升,医院具有众多高端的成像设备以更快地获取更高质量的医学图像。但对于图像的解释判断一般还是由医师完成,不但费时费力,而且存在较多主观因素。计算机辅助检测在临床实践与研究中是一个重要工具,可以利用机器学习与图像处理等技术进行自动化诊断。但传统方法效果还不够理想,近年来一些利用深度学习技术的研究取得了较好的效果 [
Luk等提出的一种使用桡骨和尺骨末端X光片进行骨骼成熟度评定的分类架构 [
该分类架构中给出的桡骨各阶段特征如下:R1阶段:桡骨末端有一个或多个点状骨骺;R2阶段:桡骨末端出现不规则椭圆形骨骺;R3阶段:骨骺最大直径超过桡骨末端宽度的一半;R4阶段:在骨骺的远端边缘出现双线,表示手掌和背面;R5阶段:在骨骺的近端边缘可见不规则的增厚的白线,在内侧更明显,呈现凹形,骨骺宽度小于干骨后端宽度;R6阶段:骨骺内外侧都超过了干骨后端,骨骺宽度大于干骨后端宽度,与尺骨交接处关节开始发育;R7阶段:骨骺在内侧覆盖桡骨末端,在外侧呈现出半球形;R8阶段:帽出现在近端外侧,生长板清晰可见,骨骺边缘比中间部分宽;R9阶段:骨骺几乎完全覆盖了干骨后端,并伴随着生长板空间的硬化,生长板可见但是模糊,骨骺内侧和外侧几乎与干骨后端相接;R10阶段:生长板完全消失,形成硬化线,有时出现虚线;在生长板的内侧和外侧端部可以看到凹口;R11阶段:(骨骺)与桡骨末端完全融合,生长板瘢痕可能仍然可见。
该分类架构中给出的尺骨各阶段特征如下:U1阶段:尺骨末端有一个或多个点状骨骺;U2阶段:尺骨末端出现不规则椭圆形骨骺;U3阶段:骨骺最大直径超过尺骨末端宽度的一半;U4阶段:在骨骺的内侧末端可见茎状突起;U5阶段:尺骨的头部完全显现,且密度比茎状突起部分大,毗邻端骨骺的边界是扁平状的;U6阶段:骨骺宽度等于干骨后端宽度,骨骺的末端边缘覆盖了干骨后端中间1/3;U7阶段:生长板变窄,骨骺的末端边缘与干骨后端形成平滑的曲线,曲线中间半部分可以看到有融合;U8阶段:茎状突起末端可见未融合的生长板,骨骺的末端边缘与干骨后端几乎融合,但茎状突起下方可看到生长板;U9阶段:完全融合。
图1. 各阶段桡骨与尺骨
该架构提供了青少年生长陡增和停止的紧密关系,对于改善临床决策有极大利用价值。该架构研究了这些骨骼每一阶段改变对应的骨龄和性征、站高、坐高、臂距、长骨长度的发展,发现站高、坐高、和臂距生长在R7 (平均,11.4岁)阶段和U5 (平均,11.0岁)阶段达到高峰,长骨生长高峰也是在R7和U5,高度和臂距生长停止是在R10 (平均,15.6岁)阶段和U9 (平均,17.3岁)阶段。表1为与桡骨及尺骨阶段联系的成长改变。
与桡骨阶段联系的成长改变:两阶段实际年龄平均间隔是1.1年,而骨龄平均间隔是1.5年。站高、坐高、臂距三者高峰期都在R7阶段,站高、坐高生长停止期在R9,臂距停止期在R11。长骨生长高峰期在R7,停止在R11。
与尺骨阶段联系的成长改变:两阶段间平均实际年龄间隔是1.1年,平均骨龄间隔是1.3年。站高和臂距生长高峰在U4,坐高在U5,生长停止都在U9。长骨生长高峰在U5,停止在U9。
在实际应用中往往只需要知道其骨骼生长发育所处阶段,特别是对于生长高峰期与生长停止期等关键阶段的判断。特别是在分析青少年脊柱侧凸等病人骨骼成熟度以用于指导临床管理中,理解其生长的高峰期与停止期,对于决定临床观察间隔、定时开始和终止支撑治疗至关重要。由表1可知,生长高峰期时,桡骨一般处在R7阶段,尺骨一般处在U4、U5阶段,而生长停止期时,桡骨一般在R9或R11阶段,尺骨处在U9阶段。以该分类架构用于青少年脊柱侧凸病人临床管理,最小化支柱支撑时间时,通常在R7/U5时开始使用支撑,R8或R9时结束支撑。R11和U9时骨骼成熟,可确定是否需要手术融合。
一般来讲,桡骨R7阶段各项生长发育速率达到最高峰,随后的桡骨R8、R9阶段生长速率逐渐下降,到R10、R11阶段,生长发育速率基本接近于0,进入成熟期,停止生长。相应的在尺骨U4、U5阶段生长速率达到最高峰,随后的U6、U7阶段速率逐渐下降,到U8、U9阶段时,生长速率接近于0,进入成熟期,停止生长。基于以上分析,本文将桡骨与尺骨对应生长发育阶段划分为4个阶段,即生长发育前期、高峰期、停滞期、成熟期。桡骨R7、尺骨U4、U5阶段对应高峰期、高峰期之前为前期,即桡骨R1~R6阶段、尺骨U1~U3阶段,桡骨R8、R9阶段、尺骨U6、U7阶段为发育停滞期,桡骨R10、R11阶段、尺骨U8、U9阶段为成熟期,如图2所示。
在本文中对桡骨与尺骨按上述生长发育阶段分别进行分类,由于前期中桡骨R1~R4阶段及尺骨U1~U3阶段数据缺乏,桡骨阶段分类中前期仅使用R5、R6数据、尺骨阶段分类仅做高峰期、停滞期、成熟期三分类,如图3所示。
成长改变 | 桡骨阶段 | 尺骨阶段 | |
---|---|---|---|
两阶段实际年龄间隔 | 1.1年(0.3~1.8) | 1.1年(0.2~1.6) | |
平均骨龄间隔 | 1.5年(1.2~1.8) | 1.3年(0.6~2.2) | |
生长高峰期 | 站高 | R7 | U4 |
坐高 | R7 | U5 | |
臂距 | R7 | U4 | |
长骨 | R7 | U5 | |
生长停止期 | 站高 | R9 | U9 |
坐高 | R9 | U9 | |
臂距 | R11 | U9 | |
长骨 | R11 | U9 |
表1. 成长改变与桡骨及尺骨阶段对应表
图2. 各生长发育阶段与桡骨与尺骨阶段对应关系
图3. 本文中各分类阶段桡骨与尺骨
用于青少年脊柱侧凸病人临床管理,最小化支柱支撑时间时,则当两者同时为发育高峰期时,开始支撑,当桡骨进入发育停滞期,结束支撑,两者都为成熟期时,确定是否需要手术融合。
通过影像医师人工分析耗时耗力,且存在一定主观性,所以研究骨龄阶段自动识别方法得到重视。
国外对骨龄自动识别方面的研究最早可追溯到1989年,Michael和Nelson设计并实现的计算机辅助的骨龄自动识别系统 [
国内对骨龄阶段自动识别的研究开始于20世纪末。1998年第四军医大学开发了可实现自动查表与计算的计算机辅助评价系统 [
卷积神经网络作为最重要的神经网络模型之一,一直以来在深度学习领域发挥着重要作用。其作为最早在深度模型中表现出优秀性能的神经网络模型,早在上世纪90年代就被运用于商业应用,解决支票中的手写体识别问题。而如今随着技术的不断改进,与应用领域的不断拓展,卷积神经网络更是被运用到了图像理解、文本处理、语音识别等众多领域。同时,卷积神经网络在各大比赛中被广泛应用,并取得优异成绩,特别是在2012年的ImageNet图像识别比赛中以显著优势领先其他方法赢得比赛 [
卷积神经网络也是一种前馈神经网络,与普通神经网络类似,都有输入层、隐藏层和输出层,由输入经逐层参数运算,最终得到输出,根据理想输出与实际输出间的误差,再反向传播调整网络参数,从而获取一个合适的模型。而卷积神经网络与普通神经网络不同之处在于,普通神经网络的隐层都是全连接层,而卷积神经网络隐层通常为卷积层与池化层交替,然后连接全连接层。卷积神经网络利用多个卷积核对原始数据进行卷积,每个卷积核提取图像的一类底层特征,对应的生成一张特征图,下一层各卷积核再对这些特征图进行卷积,然后经过逐层组合得到更高级的特征,实现特征自动提取。而池化操作可以降低数据的维度,同时使得对小范围的平移和形变保持一定的特征不变性。
卷积神经网络开始主要用于图像识别,用来处理图片这类由多维矩阵组成的数据,由于卷积层这种局部连接、权值共享的结构,极大地缩减了网络参数的同时,方便了对图像这类多维数据的处理,同时保留了图像的空间结构特征信息,使得不需要额外的网络参数学习网络的空间特征信息。
本实验所使用的桡骨和尺骨末端X光片图像数据来源于香港大学深圳医院,经多批次获取,单个样本原始图片如图4所示,各图片大小尺寸不一。同时提供有xls格式保存的标签文件,文件与标签经日期与序号匹配,后期处理中,可匹配到有效标签图片共1101张。标签为放射科医师按Luk等提出的DRU骨骼成熟度评定标准标注,桡骨分级为R1~R11共11类,尺骨分级为U1~U9,共9类。
取原数据样本中对应尺骨高峰期阶段数据200张,停滞期阶段图片250张图片,成熟期阶段样本150张。三阶段共计600张样本,随机从各阶段中取50张,共计150张作为测试集,剩余的450张作为训练集,如表2所示。
图4. 数据样本
高峰期 | 停滞期 | 成熟期 | 总计 | |
---|---|---|---|---|
训练集 | 150 | 200 | 100 | 450 |
测试集 | 50 | 50 | 50 | 150 |
表2. 尺骨三分类各阶段样本量
取原数据样本中R5、R6阶段的图片共75张,构成桡骨生长前期样本。从原R7阶段96张图片中选取75张图片,构成桡骨生长高峰期样本。从原R8、R9阶段图片中选取175张图片,构成桡骨生长停滞期样本。取原R10、R11阶段中75张图片构成桡骨生长成熟期样本。四阶段共计400张样本,随机从各阶段中取25张,共计100张作为测试集,剩余的300张作为训练集,如表3所示。
由于原始图像为拍摄的整个手部的X光片,如图4所示,整张图片尺寸较大,且大小不一,不利于作为卷积神经网络输入,如典型的两个尺寸为1400 × 900、989 × 1302。而对于我们此处分类识别的有用信息尺骨、桡骨末端区域仅为原始图片中位置相对固定的一小部分,且尺骨、桡骨末端区域尺寸变化不大,大小相对固定。为降低其他无关区域的影响,且降低需识别区域的大小,我们先使用目标检测方法,检测出尺骨、桡骨末端区域对应位置,再根据检测得到的位置坐标剪切出尺骨、桡骨图片,调整成统一大小。
通过目标检测算法从原始图片中检测并剪裁出尺骨与桡骨末端区域的图片后,再按照重划分方案,为图片匹配相应的标签。再训练相应的分类器,以运用于最终的骨骼发育阶段检测。从而达到输入一张图片,经训练好的卷积神经网络分类器自动判断其对应的骨骼发育阶段,并可视化输出,如图5所示。
所以整个骨骼发育阶段识别模型主要包括从原始的整个手部X光片中检测出所需要的尺骨与桡骨末端区域的目标检测模型和通过尺骨与桡骨末端区域识别骨骼发育阶段的分类器模型以及前期的预处理、中间的由检测结果进行自动剪裁与大小调整和最后的结果可视化输出。整体流程如图6所示。
为将尺骨、桡骨作为独立个体检测,并剪裁输出,分别进行阶段分类。为保持图像的原始分辨率,裁剪出的图片尺寸尽量保持与在原始图片中的尺寸相近,且为方便后续卷积神经网络的设计,尺骨、桡骨分别输出的图片统一调整大小为128 × 96。
前期 | 高峰期 | 停滞期 | 成熟期 | 总计 | |
---|---|---|---|---|---|
训练集 | 50 | 50 | 50 | 50 | 300 |
测试集 | 25 | 25 | 25 | 25 | 100 |
表3. 桡骨四分类各阶段样本量
图5. 整体架构
图6. 整体流程图
其中目标区域检测算法使用Faster R-CNN算法 [
训练过程中使用小批量数据梯度下降,初始学习率为0.01,权重初始化使用高斯分布。第一步RPN训练迭代8000次,第二步Fast R-CNN训练迭代4000次,第三步RPN训练迭代8000次,第四步Fast R-CNN训练迭代4000次。
卷积神经网络作为一种多层神经网络模型,一般包含输入层、隐藏层和输出层,而其中隐藏层通常由一个或多个的卷积层与池化层交替结构连接一个或多个全连接层构成。图片等数据源由输入层输入,
图7. 网络结构图
经卷积层提取特征,池化层降低数据维度并提高特征不变性,多层卷积池化组合特征后,由全连接层选取其中的有效特征构建与输出的映射关系。卷积神经网络基本结构示意图如图8所示。
网络架构为128 × 96的尺骨或桡骨图片输入,卷积层为4层或5层,卷积核大小选用ZFNet网络的7 × 7、5 × 5、3 × 3或VGGNet [
实验环境为Ubuntu16.04操作系统,CPU为Intel® Xeon(R) CPU E5-1620 v3,主频为3.50 GHz,GPU为NVIDIA Quadro M4000,CUDA8.0,cuDNN5.0。分类实验使用Theano、Lasagne深度学习框架。训练过程中,使用Adam优化算法 [
图8. 卷积神经网络基本结构示意图
根据研究表明,当数据样本不均衡时,若少数类不能充分学习到有效特征,则会根据样本分布,以大概率判别为多数类 [
使用4层卷积、2层全连接的基本网络结构,进行对比试验,结果见表4所示。具体网络结构为第一层卷积为32个7 × 7卷积核,第二层64个5 × 5卷积核,第三层64个3 × 3卷积核,第四层为32个3 × 3卷积核,全连接层节点分别为4096和1024个,再接输出层3个节点。卷积均为有效卷积,不改变大小,每层卷积后接一层2 × 2的最大池化。
由表4实验结果知,对不平衡样本进行简单过采样,使各类样本均衡后,分类精度略有提高,但由于原数据样本不均衡性并不严重,所以提升不明显。但训练过程中,均衡样本收敛速度明显快于不均衡样本。如图9(a)所示,在非均衡样本下网络在训练迭代至40代左右才收敛,而在均衡样本下,如图9(b)所示,网络在训练迭代至20代左右就已收敛。
在训练神经网络模型过程中,为了避免过拟合,通常根据不同任务针对性的选取位置平移变换、尺度变换、旋转、反射变换、颜色变换、对比度变换、遮挡、噪声扰动等变换方式中的几种进行数据增强从而间接获取更多数据 [
使用4层卷积、2层全连接的基本网络结构,进行对比试验,结果见表5所示。
由上述实验结果,可以看出数据增强对分类精度的提升效果明显。可见数据增强对于数据量不足的数据,提升效果显著。下面在数据增强的样本上,进行实验,调整网络结构。
对于不同的任务,不同的网络结构往往能够得到不同效果,正如“没有免费的午餐”理论指出的,不存在一个模型对于所有的任务都是最优的。所以针对特定的任务应尽量找出最适合该任务的网络模型。
以数据增强5倍后的数据集作为样本,修改全连接层结点数、调整卷积核大小、增加卷积层数、使用Dropout来调整网络结构,以表6中9种网络进行对比实验,通过实验结果确定其中最适合该任务的网络模型结构。
原始样本 | 均衡样本 | |
---|---|---|
尺骨分类精度 | 68.7% | 70.7% |
桡骨分类精度 | 83% | 84% |
表4. 基本网络各样本分布下分类精度
原始样本 | 数据增强 | |
---|---|---|
尺骨分类精度 | 68.7% | 78.7% |
桡骨分类精度 | 83% | 88% |
表5. 基本网络数据增强前后分类精度
网络结构 | 网络 | |
---|---|---|
卷积层 | 全连接层 | |
32c7-64c5-64c3-32c3 | 1024-256 | 1 |
1024-1024 | 2 | |
4096-1024 | 3 | |
32c3-64c3-64c3-32c3 | 1024-1024 | 4 |
4096-1024 | 5 | |
32c3-64c3-64c3-128c3-128c3 | 1024-1024 | 6 |
4096-1024 | 7 | |
32c7-64c5-64c3-128c3-128c3 | 1024-1024 | 8 |
4096-1024 | 9 |
表6. 不同网络结构
图9. 非均衡样本与均衡样本收敛速度比较
表6中网络结构分为卷积层与全连接层两列给出,卷积层以“32c7-64c5-64c3-32c3”格式给出,该例表示有4层卷积层,其中第一层卷积层“32c7”代表一个7 × 7的卷积层,卷积核数量为32,步长均为1,每个卷积层连接一个2 × 2的最大池化层。全连接层以“1024-1024”格式给出,该例表示两层全连接,每层结点数量为1024个。
在这9种网络结构下,分别训练尺骨骨龄阶段分类器与桡骨骨龄阶段分类器,训练过程中,统一使用Adam优化算法最小化多分类交叉熵损失函数,Adam是一种自适应参数更新方法,包括3个参数值,分别为学习率和两个衰减率参数,取0.0001与0.9、0.999。权重参数W使用Xavier均匀分布初始化,偏置b使用常数0初始化。分类效果如图10所示,(a)为尺骨分类情况,(b)为桡骨分类情况。
由图10可知,尺骨骨龄阶段分类在网络8上获得最好结果0.88,桡骨骨龄阶段分类在网络7上获得最好结果0.92。两者均在较深的网络下获得最优分类结果,但由于尺骨图片相对于原始尺寸有所放大,尺骨分类前两层使用了更大的卷积核,以获得更大的感受野下能获得更好的精度。在全连接层使用Dropout明显比未使用Dropout的网络获得更好的结果。
以数据增强5倍后的数据集作为样本,尺骨骨龄阶段分类器使用网络8结构,桡骨使用网络7结构分别使用Adam与SGD优化方法,及不同学习率参数,比较分类精度与网络收敛效果。图11(a)为尺骨分类结果,图11(b)为桡骨分类结果。从图11中可以看出使用Adam优化方法比SGD优化方法能获得更好的分类结果,使用Dropout比不使用Dropout能获得更好的分类结果,且Adam受学习率等参数影响更小,具有更强的适应性。
图12(a)为相同优化方式下,是否使用Dropout情况下损失函数随迭代次数的收敛情况,从图中可以看出两者具有相同的收敛速度,但使用Dropout时,损失值能降到更低。且随着迭代次数的上升,没有使用Dropout时损失值上升明显,过拟合情况明显,而使用了Dropout后则有效的抑制了过拟合,网络获得了更好的收敛效果。图12(b)为使用两种不同的优化方式下,测试精度随迭代次数变化情况,Adam方法通常能获得更快的收敛速度与收敛效果。
综合各种网络结构、优化方式、学习率参数等实验结果最终尺骨与桡骨骨龄阶段分类结果如表7所示。
图10. 不同网络结构下尺骨与桡骨分类精度
图11. 不同学习率与优化器下尺骨与桡骨分类精度
图12. 收敛效果比较
网络结构 | 优化方式 | 学习率 | Dropout | 分类精度 | |
---|---|---|---|---|---|
尺骨 | 网络8 | Adam | 0.001 | 使用 | 90% |
桡骨 | 网络7 | Adam | 0.0001 | 使用 | 92% |
表7. 尺骨与桡骨最优情况分类精度
由于骨骼成熟度分析对于指导临床管理至关重要,特别是理解其生长的高峰期与停止期。本文根据手部X光图片及对应尺骨与桡骨末端阶段标签构建了基于卷积神经网络的骨龄阶段自动识别模型,为医生提供参考,提高了识别效率,减少医生的工作量。本文主要工作总结有以下几个方面:
1) 在Luk等提出的骨骼成熟度分类架构基础上,结合临床应用实际,将骨骼成熟度重新进行阶段划分,数据预处理并构建相应的卷积神经网络模型,自动完成目标区域检测与分类即可视化输出结果的全过程。
2) 进行网络参数调优,并运用数据增强、Dropout、样本均衡等技术提升网络性能,优化网络模型。
最终,通过卷积神经网络建模训练、参数优化、数据增强等技术的运用,获得尺骨骨龄阶段识别90%的分类精度及桡骨骨龄阶段识别92%的分类精度。通过保存训练后的网络模型参数,构建了骨骼发育阶段自动识别模型,可实现输入一张手部X光片图片后,自动完成检测尺骨与桡骨末端区域,并进行发育阶段分类,并可视化输出结果的全过程。但由于时间、数据、能力所限,还存在诸多不足,需做进一步研究,如对骨龄阶段的划分不够精细,分类粒度较粗,缺乏尺骨发育前期样本,后续可考虑设计一个在阶段更精细划分下仍然能获得较好分类性能的分类器模型,同时由于区域检测后仍有部分噪声,可考虑精细分割出尺骨与桡骨末端后再进行分类。
王永灿,胡 勇,申妍燕,王书强,王祖辉. 基于卷积神经网络的骨龄阶段识别研究Bone Age Recognition Using Convolution Neural Network[J]. 图像与信号处理, 2018, 07(01): 1-15. http://dx.doi.org/10.12677/JISP.2018.71001