基于深度学习的智能骨龄分类器①
2022-06-29郭子昇王吉芳
郭子昇, 王吉芳, 苏 鹏
(北京信息科技大学 机电工程学院, 北京 100192)
骨骼年龄作为生物学年龄, 骨龄的预测在众多领域具有重要意义. 在未成年生长发育诊断中, 骨龄预测是研究青少年女性初潮、儿童基因生长障碍的一种常用方法[1]; 在竞技赛事中, 骨龄作为最权威的评价指标,常用来甄别运动员年龄以辅助选拔[2]; 在刑侦案件中,骨龄预测是法医学年龄鉴定工作的主要方法[3]; 在考古领域中, 骨龄预测对种族、生活环境、面貌复原等的研究具有重要借鉴意义[4]; 目前国内医学影像专业医师缺口巨大, 医学影像误诊漏诊率偏高, 诊断速度有限,因此, 建立一个能够智能化精准预测骨龄的分类器具有十分重要的意义.
传统骨龄预测方式主要依赖于人工对手骨X 光片的解读, 专家通过人为观察非惯用手(常为左手)部位的X 光片得出个体骨龄, 由于已形成较为统一的标准,且非惯用手部的不同骨龄骨骼结构差别及生长规律差异较大, 便于观察区分, 因此在骨龄预测领域上常对人体手骨进行分析. 目前骨龄的人工预测方法有计数法、图谱法[5]和计分法[6]. 传统计数法误差大, 并易对人体产生损害; G-P (Greulich and Pyle)图谱法规范且精度高, 但需要复杂的专业知识及人力储备; TW (Tanner and Whitehouse)计分法具有明确的量化概念, 准确度高, 可重复性较强, 但缺点是需要掌握相关知识及进行繁琐的操作, 人工预测的方法耗时普遍较长.
近年来自动化骨龄检测也有较大发展. Seok 等人[7]于2016 年提出一种决策规划评估方法, 在135 张未公布年龄的手骨X 射线图像非公开数据集上评估得到骨龄均方差(mean square error, MSE)为0.19 岁; Spampinato等人[8]于2017 年提出的一种骨龄评估方法BoNet, 在0–18 岁涵盖所有种族和性别的手骨X 射线图像公共数据集上进行自动化骨龄评估, 得到骨龄MAE (平均绝对误差)为0.8 岁.
上述G-P 方法或TW 方法中的参考值皆对手骨射线图像进行分割提取并计算出图像特征来评估骨龄,然而将临床特征直接作为机器学习分析处理的对象大大限制了自动化骨龄预测的泛化能力. 传统的机器学习与深度学习的区别在于, 前者通过已有知识把原始数据预处理成各种特征, 然后对特征进行分类, 此分类效果依赖于特征的选取, 不能很好地表征样例本质, 导致训练效果欠佳; 后者通过多层网络结构进行表征学习(feature representation learning)和表征数据特征[9],其比传统机器学习对数据特征的提取更准确.
此外, 在进行模型的训练及预测中, 医学骨骼图像的单通道、小对比度、复杂纹理、细粒度图像识别等特征有别于自然图像特征; 骨龄数据集的不公开及规模小; 针对特定性别或种族的骨质差异等问题都会影响骨龄预测的泛化能力, 因此针对上述人工或自动化骨龄预测方法存在的种种问题, 本文提出一种基于深度学习的手骨X 射线骨龄分类器, 对骨龄预测精度提高的效果显著.
1 基于深度学习的骨龄预测方法
深度卷积神经网络对图像识别性能更加优异, 近年来相继出现了AlexNet、VGGNet、GoogleNet、ResNet、MobileNet 等深度网络结构, 其中轻量级网络MobileNet 系列更具代表性. 该系列网络利用深度卷积构造, 可以平衡延迟和准确性之间的关系, 又引入了倒残差结构, 可以适应不同尺寸的图像并在低精度计算下具有更强的鲁棒性, 该网络结构与其他常用分类模型相比, 拥有更优秀的计算性能. MobileNetV3 为该系列最新网络结构, 由Howard 等人[10]于2019 年提出,该网络增添了互补搜索技术组合, 通过硬件架构搜索(NAS)与NetAdapt 相结合的方式, 开展了网络设计和自动搜索算法在互补利用方面的研究以用来提高整体技术水平, 较前代相比拥有更强大的计算能力. 表1 列出了5 种较流行的深度学习网络模型, 可以看出MobileNet系列网络的准确率大都高于的其他网络, Top-1 错误率大都低于其他网络, 需求参数(parameters)和多层叠加(mult-adds) (除SqueezeNet)均小于其他网络, 同时轻量级的神经网络为可移动智能骨龄预测奠定基础, 因此本文将MobileNetV3 作为基础网络用于构建骨龄分类器.
表1 较流行的深度学习网络模型性能对比
1.1 旋转不变LBP 纹理增强处理层
对骨龄的预测应用上, 基于深度学习的自动骨龄预测仍面临很大的挑战, 手骨X 光图像与卷积神经网络通常处理的自然图像有着很大区别, 对手骨X 光片的纹理特征提取及增强有利于深度学习的网络模型使用更少的特征数据来更集中的表征全图特征, 剔除无效特征信息, 减少无关特征干扰, 从而提升训练、测试的准确率. 旋转不变LBP 纹理增强处理层的引入, 可以摆脱一些如平移不变性的假设在骨龄数据集中不再满足等难点; 同时还可解决手骨X光图像的辨识特征仅体现在局部的纹理差异、特征粒度较为细化, 导致模型获取这些细粒度特征并分类的难度较大等难点[11].
LBP (local binary pattern, 局部二值模式)是用于提取全局图像的局部纹理特征, 增强区域纹理特征以加深后期网络注意力机制的训练效果, 并缩减整个图片像素的值, 使训练、预测速度加快.
利用LBP 算子对手骨X 光片进行阈值处理, 以每3×3 网格的窗口中心像素为阈值, 把相邻网格的像素值与其对比, 若中心像素值较大, 则标记为0, 反之为1,得到的8 位二进制数即窗口中心像素点的LBP 值, 此为该区域的纹理特征信息, 如图1 所示.
图1 手骨X 光片纹理特征信息的提取
对手骨X 光片纹理特征信息进行直方图转化:
其中, (xc,yc)表示中心像素,ic表示中心像素灰度值,ip表示P点像素灰度值,s表示符号函数,p表示邻域P个采样点中第p个采样点.
通过上述变换, 将手骨X 光片图像可转换成具有相邻点之间差值关系的集合, 但原始LBP 算子只涵盖中心与相邻共9 个网格的像素值区域, 如果将上述涵盖区扩展到任意区域, 把正方形区域替换为半径为R的圆形区域, 就能满足在提取不同尺度纹理特征时拥有灰度不变性、旋转不变性的优势. 圆形LBP 算子如图2 所示, 其区域半径为R, 内含P个采样点.
图2 不同采样数与半径的LBP 算子
对比图2, 可以看出当P=8,R=1 时, 圆形LBP 与原始LBP 一致, 在P=16,R=2 时, 圆形边界上的点可能不是整数或正好落在某个像素格子内, 或位于交界处,因此使用双线性插值法来计算该点的像素值. 圆形LBP 算子的计算公式如下:
其中,R表示采样半径,P表示第P个采样点,p表示采样数目,
经过LBP 与圆形LBP 算子处理可以得到图片灰度不变性与多尺度纹理特征稳定性这些特点, 为了摆脱因图像旋转而得到的不同LBP 值影响纹理特征的读取要求, 还需要加入旋转不变性因子, 即不断旋转圆形邻域得到一系列初始定义的LBP 值, 取其最小值作为该邻域的LBP 值, 对LBP 的结果进行二进制编码,并做循环位移, 取所有结果中最小的值, 公式如下:
依据上述方法, 本文对原始数据集RSNA 进行纹理特征的提取并分别进行LBP (LBP-RSNA_bone)增强、圆形LBP (circular-_LBP-RSNA_bone)增强、旋转不变LBP (rotation_invariant_LBP-RSNA_bone)增强处理, 得到手骨X 光片纹理特征, 如图3 所示. 可以看出对手骨X 光片进行纹理增强处理后的纹理特征清晰可见, 以此使用更少的数据量来更好的表征图像的全局信息, 从而加快运算速度与更好的配合下文的深度学习注意力机制进行验证.
图3 手骨X 光片的LBP 处理
1.2 引入注意力机制的轻量级网络模型设计
为了实现全智能化识别手骨X 光片的信息, 本文根据TW 计分法在1972 年正式定制TW2 标准, 引入一种自动框选感兴趣区域的注意力机制, 该标准包含骨骺、骨骺端、骨干等20 个感兴趣区域[6], 引入该注意力机制的改进网络依据此标准, 根据其图像的特征,进行自动搜索特定区域, 将资源分配倾向于更为关键的特征. 在不同维度对图像及隐藏层中特征映射进行注意力聚焦, 首先对原始输入图像进行逐层的空间区域学习, 输出若干个具有辨识能力的子区域, 再将子区域反馈进多个辨识卷积网络中, 对子区域内的特征分配注意力取得更好的分类, 使区域选择得到优化.
引入注意力机制的卷积神经网络模型如图4 所示,其主要包含空间网络变压器[12]和多个识别网络.
图4 注意力模型网络架构图
1)空间网络变压器, 其作为一种空间注意力机制输出多个子区域, 其将特征映射作为输入, 输出更加具有辨识能力的特征映射. 空间网络变压器作用于输入图像, 在输入图像中学习到若干信息密集的子区域, 对于手骨X 光片, 该操作给输入高分辨率图像提供支持,在该类图像中截取出适中分辨率子图, 这相当于将原图像在骨龄评定关键部位放大, 局部信息可以更加清晰地展现, 从而提取表达能力更强的特征, 为后续识别网络的进一步处理提供基础.
2)识别网络, 其通过在特征映射后的隐藏层加入压缩激活块[13], 加入压缩激活块不改变网络输出的维度, 设网络架构中有N个识别网络, 每个网络输入一张手骨X 光片子图像, 输出一个D维向量, 将所有网络的输出连结成一个N×D维向量, 输入到一个全连接层中, 之后由Softmax 层输出最终骨龄值. 本实验中依据TW2 计分法等对手骨骨龄预测建议的感兴趣区域, 对N和D分别设置为9 和512. 识别网络对特征映射在通道维度进行特征再校准, 从而将模型注意力集中于信息密集的通道上, 压缩激活块使用了全局平均汇聚层和两层全连接层, 因此该结构中包含训练参数较少,可以方便、高效的加入MobileNet 系列网络架构中并引入较少的计算负担, 以满足轻量化的网络架构并提升网络的泛化效果.
1.3 骨龄预测分类器设计
基于MobileNetV3 Large 网络结构, 设计具有可引入注意力机制和旋转不变LBP 纹理增强处理层的模型RIL-MobileNetV3 Large, 在顶层引入纹理特征增强处理层, 即对原始数据集进行旋转不变LBP 处理, 并于底层加入测试集输入的X 光片旋转不变LBP 处理层, 以便于验证的统一, 在池化层后引入本文设计好的自动框选感兴趣区域的注意力机制, 设计的骨龄预测分类器如图5 所示.
图5 RIL-MobileNetV3 Large 骨龄预测分类器
为了避免过拟合, 将训练时间放大与缩小, 通过使平均绝对误差(MAE) 最小化对分类器寻优, 利用optimizers. Adam 优化器对网络进行训练; 构建分类器模型, 分配给每个骨龄不同类别, 在数据集中, 骨龄是以月份表示的, 因此本文截取1–228 月骨龄的数据集,以12 个月为一岁, 共取19 类, 即0–18 岁, 故倒数第二层变成具有19 个输出概率的Softmax 层, 该层输出概率的向量, 其中每一类的概率都在范围[0, 1]中取值,最后一层概率向量乘以不同骨龄的向量[1, 2, 3, …,19], 由此, 模型输出骨龄的单个预测值.
1.4 评价指标
对于骨龄数值回归预测结果, 本文采用MAE和accuracy (准确率)作为综合评价指标, 其中当预测值与真实值完全吻合, 即MAE为0 时为完美模型,MAE越小, 说明预测精度越高, 计算公式如下:
其中,N表示样本数,ytrue表示骨龄真实值,ypred表示骨龄预测值.
2 实验验证与结果分析
2.1 数据集
研究采用北美放射学会举办的骨龄挑战赛公开数据集RSNA, 其包含12611 个训练图像, 1425 个验证图像和200 个测试图像, 大多为1–228 月的骨龄X 光片数据集, 显而易见测试集过小, 且开发阶段验证集、测试集标签混乱, 为使其对骨龄预测的强针对性训练与扩大测试集, 本实验按照原始数据集csv 文件截取训练集前1376 张图片作为测试集, 其余图片为训练集;为了防止标签混乱导致的训练及测试精度降低, 以便于骨龄的预测标准化, 本文依据原始csv 文件骨龄编号按12 个月为一岁依次归为19 类csv 文件, 分别对测试集、训练集图像按新编csv 文件归为0–18 岁共计19 类, 并进行后续训练预测实验.
2.2 数据处理
为验证本文对手骨X 光片的骨龄预测可以使用更少的数据量来最好的表征图像特征, 以此加快运算速度与高效配合注意力机制, 对原始数据集进行纹理特征的提取并分别按顺序进行LBP、圆形LBP、旋转不变LBP 纹理增强处理, 得到包含清晰纹理信息的LRSNA、CL-RSNA、RIL-RSNA 数据集.
2.3 实验平台
本实验搭建于x64 处理器的Windows 10 操作系统, 实验仿真环境采用谷歌开发的TensorFlow 2.1.0 框架, 以Python 3.7 作为编程语言, PyCharm 2019.3.3 为编辑器, CPU 使用Intel(R)Core(TM)i7-9750H, GPU 使用Inter(R)UHD Graphics 630, 运行内存为8 GB, 所有程序通过以TensorFlow 为后端的开源框架Keras 及其Python 接口实现.
2.4 训练策略
实验采用改进模型RIL-MobileNetV3 Large 进行训练, 在增强后的RIL-RSNA 数据集上分别进行了20、30、40、50、80 和120 轮训练, 每次喂入分类器8 张图片, 类别数为19, 初始学习率为0.0001 并逐步调优, 训练图像采用三通道, 并调整图片的宽高皆为224. 设置缩放因子1/255 以增强模型泛化能力, 并配置optimizers.Adam 优化器, 结合fit_generator 训练方式进行训练以节约内存, 最后计算骨龄预测值和骨龄真实值Accuracy 作为模型输出, 并结合在测试集上计算的MAE 值, 综合判断分类器性能.
2.5 结果分析
将新编好的原图数据集RSNA、LBP 纹理增强处理数据集L-RSNA、圆形LBP 纹理增强处理数据集CL-RSNA、旋转不变LBP 纹理增强处理数据集RILRSNA 分别在引入自动框选感兴趣区域注意力机制的MobileNetV3 Large 网络中训练50 轮, 将训练结果进行对比, 实验结果如表2 所示.
由表2 可知, 用纹理增强处理后的数据集进行训练, 较原数据集的预测误差下降较多, 其中旋转不变LBP 处理对骨龄预测误差下降最大, 说明端对端逐层监督式学习方法受原始图片背景中无关信息影响较大,经手骨纹理增强处理后, 可以用更少的数据量来更精确的表征图像信息, 从而扩大训练准确率, 并缩小平均绝对误差MAE, 由此可知引入旋转不变LBP 纹理增强层具有提高训练准确率与缩小平均误差的显著作用.
表2 数据处理层对比实验结果
在采用引入自动框选感兴趣区域注意力机制和旋转不变LBP 纹理增强层的RIL-MobileNetV3 Large 网络进行骨龄预测过程中, 神经网络权值变化基于损失梯度的调整, 而学习率控制神经网络权值的变化速度,为取得最优学习率, 本文在不同学习率及多次训练轮数下进行实验, 所得结果如图6 所示, 当进行40 轮训练, 学习率设为0.0001 时, 梯度增幅变大, 收敛时间加快, 训练集准确率为91.80%, 损失率为23.41%; 当学习率设为0.0005 时, 梯度增幅较小, 将会延长收敛时间,故分别进行40、80 轮训练, 80 轮时训练集准确率较高为94.04%, 此时损失率为16.74%;
图6 骨龄评估模型多次训练结果对比可视化
由图7 可以看出, 当学习率设为0.00075 时, 梯度增幅继续变小, 收敛时间继续延长, 故进行120 轮训练,训练集准确率为93.32%, 损失率为20.46%, 此时的准确率低于学习率为0.0005 训练80 轮时的准确率94.02%, 继续取学习率0.0001 和0.00005 进行训练时,准确率曲线走势的收敛速度明显加快, 在训练80 轮时得到的训练集曲线和测试集曲线基本粘合成一条, 此时的准确率为94.20%, 损失率为16.74%. 因此, 采用改进的RIL-MobileNetV3 Large 网络在预测骨龄过程中, 学习率设为0.0001, 训练次数设为80, 此时可快速得到极佳的预测效果, 且使用测试集在该网络预测骨龄的MAE值为0.35 岁, 表明可以达到非常低的平均预测误差.
图7 骨龄评估模型最佳训练结果可视化
2.6 预测精度对比
为验证本文提出改进RIL-MobileNetV3 Large 网络的检测性能, 将其与基于深度学习的其他骨龄预测网络在同一数据集上进行对比, 对比试验结果如表3.
表3 骨龄分类器对比实验结果
可以看出, 本文改进网络的MAE值较其他网络更低, accuracy 值较其他网络更高, 由此可见, 在引入自动框选感兴趣区域注意力机制和旋转不变LBP 纹理增强处理层的骨龄分类器能提取不同骨龄更具区分性的特征, 对骨龄预测准确度更高, 具有非常好的鲁棒性与泛化能力.
3 结论与展望
针对手骨X 光片数据集图像的单通道、小对比度、复杂纹理、细粒度图像识别等特征提取难, 导致影响骨龄预测准确度等问题, 提出了一种同时引入注意力机制和旋转不变LBP 纹理增强处理层的改进模型, 作为骨龄预测分类器. 其基于轻量级神经网络MobileNet系列融合处理纹理特征的旋转不变LBP 算子处理层,通过处理层将手骨X 光片数据集的纹理特征进行提取并增强, 使更细致纹理特征的手骨信息作为网络输入端, 减少无关特征影响, 提高训练的准确率; 同时又对卷积网络引入一种注意力机制, 在不借助任何先验信息的情况下, 把引入纹理增强处理层处理后的图像作为网络的输入, 再通过引入注意力机制的轻量级神经网络, 进行自动定位、学习提取处理后的手骨X 光片图像中具有高识别能力的区域特征、深层特征并完成识别和分类. 最后通过在RSNA 数据集上进行训练及预测, 结果表明该分类器较传统方法具有更高的骨龄预测精度. 消除了在临床环境中人工进行繁琐的数据集查找需求, 智能化的骨龄分类器提高骨龄预测精确度并大大节省了时间, 对青少年生长发育、刑侦案件、体育赛事、考古等领域的骨龄评估具有重要协助意义,为建立标准化的可移动骨龄分类器, 推动实现便捷准确快速的智能化骨龄预测提供重要借鉴意义.