1. 引言
手骨骨折是常见的临床问题,其准确诊断对于快速治疗和康复极为重要。随着人口老龄化和运动损伤的增加,手骨骨折的发生率不断上升,尤其在复杂的骨折场景中,准确检测手骨骨折更加困难。基于计算机视觉和深度学习的检测技术成为了有效的新选择,其应用潜力在近年来得到了广泛关注[1]。
骨折检测是深度学习在医学影像辅助诊断中的重要应用。越来越多的研究将深度学习技术应用于骨折检测,并作为临床医生诊断的辅助手段。骨折检测的载体主要是X光图像和CT图像,其中对X光图像的研究更为广泛。然而,基于X光图像的骨折检测面临的最大挑战是其成像特性导致的骨骼和肌肉混合、重叠影较多,容易对骨折的检测造成干扰。
相比其他部位,手部骨折检测的研究较少。在与急诊医学临床医生合作的对照实验中,Lindsey等人[2]评估了深度学习模型在检测腕部X光图像骨折中的应用效果。结果显示,在深度学习模型的辅助下,临床医生的平均误解率相对降低了47.0% (95% CI: 37.4%~53.9%),显著提升了诊断的准确性。在2022年,Hardalac等人[3]利用加齐大学医院的腕部X光图像数据集,对20种骨折检测算法进行了测试,并开发了五种不同的集成模型,以进一步优化检测性能。Joshi等人[4]以特征金字塔网络作为基础架构用于手部骨折检测。他们通过在最后一级用自适应平均池化和自适应最大池化的级联架构取代最大池化层,并在迁移学习中采用冻结和解冻网络的策略,提升了模型的收敛性能。
尽管现有方法在骨折检测领域取得了一定进展,但在手部小目标骨折检测中仍存在以下主要问题:
数据集不足:无论是X光图像增强还是骨折检测任务,都需要一定规模的数据对模型进行必要的训练。医学图像数据的采集需要专业设备和专业知识,且数据规模受到医院病人收诊数量的限制,只能通过长期积累来获取。此外,医学数据需要进行数据脱敏和专业医师标注,进一步限制了特定数据集的建立。
预处理方法不完善:在X光图像骨折检测任务中,通常采用手工或传统图像处理方法实现预处理。前者引入了较多人为因素,不能实现全自动化的手部骨折检测;后者则参数固定、不够灵活,难以充分发挥预处理的优势。
小目标骨折检测精度差:手部小目标骨折检测是一项具有挑战性的任务。X光图像中的手部骨骼细小且存在重叠,同时噪声较多、对比度低,这些因素都导致传统目标检测算法难以达到理想的检测效果。
为了解决上述问题,本文提出了一种改进的YOLOv8算法[5],通过集成CBAM注意力机制,增强了模型对不同特征的识别能力。CBAM (Convolutional Block Attention Module)通过通道注意力和空间注意力的结合,能够动态调整特征图的权重,从而突出关键特征并抑制背景噪声。实验结果表明,该模型在复杂图像背景下显著提高了手骨骨折检测的准确性,同时保持了YOLO系列算法的高效性。这一改进不仅弥补了现有单阶段检测模型在复杂骨折特征识别上的不足,还为多模态医学图像分析提供了一种新的技术路径,展现出广泛的应用潜力。
2. 现有方法综述
骨折检测是深度学习技术在医学影像辅助诊断领域的重要应用之一[6]。近年来,越来越多的研究将深度学习技术应用于骨折检测,旨在为临床医生提供辅助诊断工具。目前,骨折检测主要依赖于X光图像和CT图像,其中基于X光图像的研究更为普遍。然而,基于X光图像的骨折检测面临的主要挑战在于其成像特性:骨骼与肌肉的混合以及重叠影较多,这些因素可能增加骨折检测的难度,对诊断结果造成干扰。
在骨折检测算法领域,Guan等人[7]通过传统图像处理技术中运算和像素值转换增强原始X光图像的对比度,并提出了一种改进的目标检测算法,专门用于检测X光图像中的手臂骨折。该算法在平均准确率(Average Precision, AP)指标上达到了当前最优水平。与此同时,Qi等人[8]基于Faster R-CNN框架开发了一种目标检测模型,用于定位股骨骨折,并在实验中取得了显著效果。
在国内,何学才等人[9]开发了一种名为Rib-Net的肋骨骨折检测网络,该网络整合了目标检测集成网络、完全候选框融合算法及分割模型,显著提升了肋骨骨折的定位精度。此外,杨超朋等人[10]通过标注肋骨骨折特征点,借助多层网络的分层堆叠,主动学习原始数据的深层抽象特征,并将这些特征反馈至检测器中,实现骨折位置的精准检测及置信度输出。同时,罗鑫等人[11]提出了一种基于多重注意力机制的深度学习网络模型,用于肋骨骨折的高效自动定位与识别。
手部小目标骨折检测是一项极具挑战性的任务。X光图像中的手部骨骼不仅细小,还存在重叠现象,并且图像中噪声较多,这些因素共同作用,导致传统目标检测算法难以达到理想的检测效果。
一项针对计算机辅助诊断系统在阅片领域应用的研究显示,基于深度学习的系统可显著提升影像科医师诊断准确度,对实习医师的辅助效果尤为显著。该系统使两类医师的阅片时间大幅减少,其成熟的手部X光图像骨折检测算法能提供客观的诊断建议,增强医师的诊断信心,加快诊断速度,降低误诊和漏诊率,减少医患纠纷,减轻影像科医师工作量。在患者层面,该系统可降低健康风险,改善就医体验,提升民众幸福感,提高就医自动化水平。未来,手部骨折检测算法有望为患者提供自助诊断建议,成为便捷的常态化保健措施。
3. YOLOv8网络模型
YOLOv8 (You Only Look Once version 8)是一种轻量化且高效的目标检测模型[12],非常适合实时目标检测任务。在YOLO系列的基础上,该模型进行了诸多改进,致力于提升检测精度与推理速度,尤其在计算资源受限的设备上表现优异。YOLOv8的网络架构由输入端、Backbone、Neck和Head这四个主要部分构成[13],各部分协同工作,打造出一个高效且精准的目标检测系统。输入端:输入端的职责是处理输入的图像数据。YOLOv8通常以416 × 416或640 × 640像素尺寸的图像作为输入,并执行一系列预处理步骤,如图像归一化和数据增强。这些操作能够丰富训练数据的多样性,降低过拟合风险,进而增强模型在不同场景下的泛化性能。Backbone:Backbone是YOLOv8的核心特征提取模块,其任务是从输入图像中提取多尺度的特征信息。YOLOv8的Backbone采用了经过深度优化的高效卷积神经网络(CNN)架构。相较于以往的YOLO版本,YOLOv8在Backbone部分进行了优化,不仅提升了特征提取的准确性,还显著降低了计算量。Neck:Neck部分的作用是对Backbone提取的多尺度特征进行进一步融合,为Head提供精准的输入。YOLOv8的Neck设计融合了特征金字塔网络(FPN)和路径聚合网络(PAN)等先进结构。这些结构能够高效地整合不同尺度的特征信息,从而增强模型对多尺度目标的检测能力。借助FPN和PAN,YOLOv8能够更出色地应对小目标以及复杂背景下的检测任务,提高了对小目标的识别准确率。Head:Head部分的主要任务是从Neck传递过来的特征中生成最终的目标检测结果,具体涉及边界框回归、目标类别预测以及置信度评分。在YOLOv8中,Head部分采用了Anchor-Free的设计理念,摒弃了传统的Anchor框,转而通过自适应的方式进行目标定位。这一创新不仅简化了模型的整体架构,还显著提升了模型对不同形状和尺度目标的适应性。YOLOv8网络结构图如图1所示。
Figure 1. YOLOv8 network architecture diagram
图1. YOLOv8网络结构图
4. CBAM注意力机制
CBAM是由Channel Attention Moduel和Spatial Attention Module构成[14]。Channel Attention Moduel,对输入的特征图分别同时进行最大池化和平均池化,通过对输入形状为(B, C, H, W)的特征图进行最大池化或平均池化操作,将每个通道(C)在空间维度上的信息进行压缩,最终得到形状为(B, C, 1, 1)的输出,在这个过程中,对于每个通道而言,它的空间信息被最大池化或者平均池化操作压缩为一个单独的值,从而实现了对全局空间信息的压缩和提取。这一步旨在将特征图上的信息集中在通道上,从而更好地在通道上捕捉到输入的特征图的特征信息,利用这两个特征可以大大提高网络的表示能力。共享网络由两个卷积和一个Relu激活函数构成,先降维再升维,这一步旨在减少参数开销,其中MLP中的权重是共享的,所用的输入都用相同的W0和W1权重矩阵进行计算处理,将共享网络应用于每个特征描述子后,使用元素求和(+)来合并输出特征向量,再将输出的特征向量通过sigmoid函数生成权重向量,确保它们的总和为1。Spatial Attention Module,对输入的特征图沿通道轴应用平均池化和最大池化,通过平均池化和最大池化操作,可以将输入张量的通道维度(C)压缩为1,从而将全局通道信息整合为一个单一的通道特征图,形状为(B, 1, H, W)。在这个过程中,对于每个样本(B),模型会对该样本在通道上的特征进行平均池化,从而实现对全局通道信息的压缩合并。这种操作有助于减少参数数量、减小计算复杂度,同时保留重要的通道特征信息。将获得的两个矩阵在通道上拼接起来(torch.cat),并通过一个卷积层,将通道数再次变成1,使获得的特征信息全部分布在一个通道上,再将通过卷积层的输出通过sigmoid函数生成权重向量。CBAM则是将在Channel Attention Module得到的通道注意力权重乘以输入的原始特征图。这一步用于调整每个通道的特征值,强调重要通道的信息,抑制不重要通道的信息。再将之前在Spatial Attention Module得到的空间注意力权重乘以通过通道注意力机制得到的特征图,最终即得到最终输出结果。在YOLOv8中,CBAM的引入大大增强了网络在复杂场景中的表现,尤其是对于小目标检测任务。在实验中,CBAM增强了YOLOv8的多尺度特征提取能力,并有效提高了模型对手骨骨折等目标的检测精度,尤其是在低分辨率和复杂背景下。
5. 实验结果与分析
5.1. 实验环境
实验在安装Windows 11专业版64位操作系统的计算机上进行,配备NVIDIA GeForce RTX 4050Laptop GPU和12th Gen Intel(R) Core(TM) i5-12450H,以调用GPU提升模型训练效率。同时,使用CUDAPython和PyTorch深度学习框架。
该实验使用自制数据集,包含多种手骨骨折图像,经过实际拍摄和精细标注,数据集按7:2:1比例划分为训练集(4437张)、验证集(1217张)和测试集(1217张)。实验中,输入图像尺寸为640 × 640,训练轮次为200,批量大小为8,优化器采用AdamW,初始学习率为0.001,权重衰减系数为0.005,以提高收敛速度和泛化能力。
5.2. 结果分析
5.2.1. 消融实验
为了验证改进模块的贡献,进行了消融实验。实验结果显示,在引入CBAM注意力机制后,mAP50从81.5%提升至86.2%,增长了4.7个百分点。这充分表明,CBAM注意力机制的加入能够显著提升模型的整体性能,尤其在复杂场景下,目标检测的精度和鲁棒性得到了大幅提升。见表1。
Table 1. Ablation experiment
表1. 消融实验
模型 |
P |
R |
mAP |
YOLOv8 |
85.9% |
74.7% |
81.5% |
YOLOv8 + CBAM |
87.9% |
81.1% |
86.2% |
5.2.2. 实验结果
实验结果表明,改进后的YOLOv8模型在复杂场景下的手骨骨折检测性能显著提升,通过加入CBAM注意力机制,模型在mAP指标上相比原模型有了较大的提升,表明模型在多样性和复杂背景下有了更强的鲁棒性和精度,原YOLOv8结果图见图2,引入CBAM数据结果图见图3,实验结果数据见表2。
Table 2. Experimental results
表2. 实验结果
模型 |
P |
R |
mAP |
YOLOv8 |
85.9% |
74.7% |
81.5% |
YOLOv8 + CBAM |
87.9% |
81.1% |
86.2% |
Figure 2. YOLOv8 training result diagram
图2. YOLOv8训练结果图
Figure 3. Training result diagram with CBAM integrated
图3. 引入CBAM训练结果图
Figure 4. Visualization of hand X-ray image detection.
图4. 手部X光图像检测效果图
5.2.3. 实验可视化结果图
采集了部分正面手部X光图像骨折检测效果(见图4),图中蓝色方框是医生标记的真值框,红色方框为检测得到的检测框。可见,检测框与相应的真值框之间具有较高的重叠比例,表明提出的方法能够较为精准地定位手部X光图像中的小目标骨折,接近专业医生的诊断结果。
6. 结语
手部骨折常见且易被忽视,诊断难度高,不仅加重了影像科医师的阅片负担,还易导致漏诊或误诊,延误治疗。近年来,深度学习技术在医学图像分析领域发展迅速,为手部骨折诊断提供了高效辅助手段。
本文提出了一种基于改进YOLOv8算法的手骨骨折图像检测方法,通过引入CBAM注意力机制,在复杂场景下检测性能显著提升,mAP50从81.5%提升至86.2%。CBAM通过通道和空间双重注意力,精准捕捉骨折特征。YOLOv8在前代的基础上优化,结合FPN提升多尺度目标检测能力。自制数据集的高质量输入为模型训练提供保障。未来将优化模型结构,拓展至多模态数据和多任务学习,推动医学图像分析领域的发展。
本研究提出了一种高效且准确的手骨骨折检测算法,显著提升了复杂场景下的诊断效率和精度,为临床诊断提供了强有力的技术支持。未来工作将聚焦于模型结构的优化与训练策略的改进,进一步提高检测精度和效率。同时,计划将该算法应用于更多的医学图像数据集,包括多模态成像数据,以验证其在多样化成像条件下的泛化能力和鲁棒性。此外,本研究还将探索算法在跨领域医学影像分析中的潜力,为医疗影像分析领域的发展提供更全面的技术支持和理论参考。