新闻资讯
一、简介
“骨龄”是骨骼年龄的缩写。是将青少年和儿童的骨骼发育水平与骨骼发育标准进行比较得出的发育年龄[ 1 ][ 2 ][ 3 ]。它比仅仅根据年龄、身高、体重更能准确地反映身体的成熟度,更能准确地反映个体的生长情况,包括发育水平和成熟度,可以用来预测未来成年身高。
近年来,Google 开发了一种名为 Xception 模型的深度学习模型,最初是为了解决图像分类问题而设计的 [ 3 ]。它于 2017 年发布,是计算机视觉领域最早引起轰动的模型之一。它广泛应用于计算机视觉、自然语言处理、医学图像分析等众多领域。Xception模型的演化过程可以分为以下几个步骤:
1)ImageNet竞赛促进深度学习的发展:ImageNet竞赛是由Google、微软、雅虎等公司发起的图像识别竞赛。本次比赛产生了大量的训练数据和模型,其中一些为Xception的发展提供了有益的启发。
2)ResNet的由来:ResNet是一种非常深的卷积神经网络,可以解决训练深度神经网络时梯度消失的问题。它的出现促进了深度学习的发展,为Xception的设计提供了灵魂。
3)Bottleneck模块的介绍:Bottleneck模块是一种将大规模神经网络模型压缩为更高性能模型的技术。通过引入Bottleneck模块,X接收器模型可以在保持高性能的同时减少参数数量。
4)采用多尺度金字塔池化:多尺度金字塔池化是一种图像分割技术,可以自适应调整网络的大小和复杂度,从而保持高性能并支持更多的数据类型。
这里的Xception模型使用深度可分离卷积来代替传统的卷积结构,极大地提高了模型的性能和效率。其主要架构包括:
输入层:接收输入图像;
初始卷积层:从输入图像中提取特征;
13个深度可分离卷积块:每个块包括深度可分离卷积层和残差连接;
全局平均池化层:对最后一个卷积块的输出进行平均池化;
全连接层:将池化层的输出映射到分类输出。
本文使用最初由RSNA(北美放射学会)发布的骨龄模型Xception模型(https://www.kaggle.com/datasets/kmader/rsna-bone-age)。对于同一模型,我们根据原始图像和添加噪声(高斯噪声和椒盐噪声)图像训练的模型的输出性能进行对比实验测试,研究Xception模型的抗干扰能力,通过噪声增强训练进行改进,泛化模型的应用能力。本研究的组织如下:在第 2 节中,提出了一种基于 Xception 模型的方法。在第 3 节中,通过添加高斯噪声和椒盐图像噪声来研究模型的抗干扰特性,已知这些噪声是破坏图像的不需要的信号。
2. 方法
2.1. 神经网络建模
Xception模型的主要结构包括:输入层、初始卷积层、13个深度可分离卷积块、全局平均池化层和全连接层。
该模型的原理是通过分析X射线图像中的骨骼发育情况来预测孩子的年龄,从而评估孩子的生长发育情况,帮助医生诊断和治疗儿童的健康问题。该模型使用一种称为“图像对齐”的技术来对齐不同的 X 射线图像,以便于比较和评估。该模型的准确性在RSNA的骨龄评估挑战赛中得到了测试,并取得了非常好的结果。具体来说,该模型的MAE(平均绝对误差)为 6.09 个月,MSE测试数据集的(平均标准误差)为 9.27 个月。这些结果表明,该模型对于骨龄评估具有较高的准确性和精密度,可广泛应用于医疗实践。为了降低模型的硬件要求,我们对模型进行了简化,包括将特征层数减少到512,丢弃性别参数,将输入通道数改为1,如图2所示。
2.2. 添加图像噪声
众所周知,噪声是一种不需要的信号,很容易破坏图像质量[ 4 ]。图像中的这种不需要的信号可以以存储像素值的形式出现,这可以将图像显示为不均匀的线条和模糊的物体,也可以在胶片颗粒和光子探测器的散粒噪声中看到[ 5 ][ 6 ] [ 7 ]。噪声可以是加性、乘性或脉冲噪声的形式[ 8 ][ 9 ]。这里在原始测试图像中加入高斯噪声、椒盐噪声来比较模型输出结果的差异,并通过用这些噪声训练图像数据来研究模型的抗干扰能力,以获得泛化应用能力。
这里高斯噪声也称为放大器噪声。这种噪声被称为图像传感器中“真实噪声”的主要部分。高斯噪声的主要来源是在图像采集过程中产生的,例如照明不良或高温引起的传感器噪声。它被称为统计噪声,其PDF(概率密度函数)可与高斯分布相媲美。
这里add_gaussian_noise ( image , mean , std ) 用于向图像添加高斯噪声。它有三个参数,“ image ”是输入图像的名称,“ mean ”是高斯分布的均值,默认为0,“ std ”是高斯分布的标准差。该函数首先生成与输入图像大小相同的高斯随机噪声,然后将噪声添加到输入图像中,最后通过“np”和“clip”将图像像素值限制在0到255范围内。
椒盐噪声也称为脉冲噪声,是一种倾向于随机修改像素值的噪声。此类噪声是由于设备故障导致图像信号突然剧烈变化而引起的。其特点是偶尔出现黑白像素,暗处有亮像素,亮处有暗像素[ 5 ]。函数add_salt_pepper_noise ( image , probability ) 用于向图像添加椒盐噪声。它有两个参数,“ image ”是输入图像的名称,“ probability”是输入图像的名称。”是每个像素成为椒盐噪声的概率。首先,该函数计算图像的尺寸,然后根据概率随机选择一些像素。然后,将这些随机选择的像素设置为白色(255)或黑色(0)作为我们的 8 位图像,最后返回添加了椒盐噪声的图像。图 4显示了典型的原始图像和添加了椒盐噪声的图像。
3. 结果
在我们的研究中,我们从 12668 张儿童手掌正面 X 射线图像的数据集中以 3:1 的比例分割训练集和验证集。这意味着使用了 9501 张图像来训练神经网络模型,并使用 3167 张图像来验证模型。然后将200张儿童手掌正面X光图像(图片为png格式,文件夹名称boneage -test-dataset)组成的独立数据集作为测试数据集。使用上述训练集对神经网络模型进行训练,得到MAE函数,可以定量地用来研究模型的性能,并由模型预测结果与实际观测值之间的差异给出。
其中N是样本总数,Σ表示求和运算,| | 表示绝对值运算。它衡量的是预测值与真实值之间的平均误差,该值越小,预测结果越接近真实值。首先使用9501张原始儿童手掌正面X射线图像来训练神经网络模型,然后使用3167张原始图像来验证模型。MAE的验证结果随迭代次数的变化如图5(a)所示。为了更普遍地使用添加噪声的图像进行训练,首先生成一个值在 0 到 10 之间的均匀分布的随机数α,用作盖斯噪声的标准差。然后,noise_image = add_gaussian_noise ( image , Mean , α ) 用于生成添加高斯噪声的图像。这里的图像是原始图像。最后,使用image_mix = add_salt_pepper_noise ( noise_image , probability ) 创建同时具有高斯噪声和椒盐噪声的图像。类似地,使用 9501 张添加噪声的图像来训练神经网络模型。添加噪声的3167幅图像分别用于验证模型。MAE的结果作为迭代次数的函数如图5 (b)所示。这里是MAE第3167章 验证图像数据 两个结果均表明,原始验证图像经过 20 次迭代后,添加噪声的验证图像经过 30 次迭代后,MAE接近稳定值。
左侧显示原始图像,右侧显示添加高斯噪声的图像。使用原始图像和添加椒盐噪声的图像训练的模型的测试结果如图7所示。使用原始图像训练的模型结果显示在左侧,添加椒盐噪声的图像显示在右侧。表1和表2都显示年龄预测误差(定义为MAE)作为图像噪声的强度。结果清楚地表明,与使用原始图像训练的模型相比,使用添加噪声的图像训练的模型可以使预测更加稳健,并且受图像噪声的影响较小。
4. 讨论
目前的神经网络模型的原理是通过分析X射线图像中的骨骼发育情况来预测孩子的年龄,从而评估孩子的生长发育情况,帮助医生诊断和治疗孩子的健康问题。预测年龄的准确性取决于X射线图像的质量,尤其是图像噪声。在本文中,我们使用原始图像以及添加噪声的图像来训练模型。这里的图像噪声包括高斯噪声和椒盐噪声。然后利用这些训练好的模型来研究模型的抗干扰能力。实验结果表明,使用添加噪声的图像训练的模型与使用原始图像训练的模型相比,可以使预测更加鲁棒,并且受图像噪声的影响较小。虽然当前的神经网络模型可以准确预测骨龄,但使用添加噪声的图像进行训练比使用原始图像进行训练更耗时。实用的方法,例如简化模型以关注一些敏感的骨骼,而不是平等地对待所有手部骨骼,仍然需要研究。
5. 结论
结果表明,与使用原始图像训练的模型相比,使用添加噪声的图像训练的模型可以使预测更加稳健,并且受图像噪声的影响较小。