Advertisement

基于YOLOv8深度学习的医学影像腹部阑尾病变自动检测与语音报警系统

阅读量:

在医学影像技术领域的发展趋势下,腹部疾病早期诊断作为现代医学研究的重要方向之一逐渐得到重视。其中,在临床上具有较高临床发病率的阑尾病变(包括急性阑尾炎、脓肿、结石以及正常的腹膜后 communicate.)等病症对其及时诊断与治疗具有重要意义。本研究致力于开发一种基于YOLOv8深度学习模型的腹部阑尾病变自动检测与语音报警系统,并旨在通过先进的医学影像手段实现对腹腔内阑尾病变部位的精准识别以及相关症状的及时报警功能。

该系统以YOLOv8算法为核心构建了目标检测模型,并具备高效的实时目标检测能力。该系统能够实现对CT或超声波影像中发现的阑尾病变的分类与定位。包含以下五种典型病例类型:阑尾脓肿、急性阑尾炎、阑尾结石、阑尾正常以及阑尾穿孔。通过收集相关病例的数据并对其进行标准化标注处理后,在此基础上基于深度学习算法完成了模型训练工作,并结合PyQt5框架构建了直观友好的操作界面。

研究结果表明,在阑尾病变的检测中使用YOLOv8算法表现出较高的准确性。系统能够在病变检测后通过语音告知医生来提高诊断效率。该研究为临床医生提供了便捷且高效的工具,并且具有广阔的潜在应用前景。

算法流程

Tipps:深入剖析项目的算法运行机制, 系统梳理技术实现的关键环节. 首先从数据加载和预处理阶段入手, 然后过渡到核心算法的设计阶段及优化调优过程, 最后转向结果可视化展示环节. 每个阶段的技术路径都将通过清晰明了的组织架构和简明扼要的语言进行阐述, 全面解析其背后的技术原理以及具体的实施思路.

硬件环境

我们采用了两类硬件平台配置以支持测试与训练过程:

(2)惠普 HP暗影精灵10 台式机:

该系统具备了充足的计算能力,并能有效支持复杂规模的图像数据集训练及高速计算任务。引入GPU后显著减少了模型训练所需时间。
通过两种不同的硬件平台进行测试与优化工作能够更加全面地评估系统的性能指标、适应性以及稳定性。这种方法不仅增强了系统在各种环境下的稳定性和推广能力,并且降低了开发成本同时提升了效率水平,在实际应用部署中具有良好的适用性。

模型训练

Tipps:模型的训练、评估与推理

1.YOLOv8的基本原理

YOLOv8是当前最先进的模型之一,在Yolo系列历史版本的基础上进行了多项优化与改进,并在此基础上新增了多项功能与改进措施。经过这些优化与创新设计后,在提升性能与灵活性方面表现出了显著的优势,并被广泛认为是实现目标检测、图像分割以及人体姿态估计等多种任务的理想方案。其核心创新主要包括以下几项:引入了一个全新的主干网络架构;设计了一种无锚框(Ancher-Free)的目标检测头部结构;开发了一种新型的损失函数以优化训练效果;并且支持从CPU到GPU等多种硬件平台的高效运行。

YOLOv8在YOLO系列中占据主导地位,在多个关键指标上全面超越当前的对象检测与实例分割技术。该系统通过汲取YOLOv5、YOLOv6以及YOLOX等模型的优点,在基于对YOLOv5架构的全面优化而实现的同时,继承了YOLOv5工程化设计中的简洁性和易用性。

Yolov8模型网络结构图如下图所示:

2.数据集准备与训练

本研究采用了包含腹腔内阑尾病变病例的数据集作为基础,并借助Labelimg标注工具为每张图像中的目标边界框及其分类信息进行了精确标注。随后基于该数据集我们对YOLOv8n模型进行了系统性训练并对模型在验证集上的性能表现进行了全面评估与详细对比分析整个实验流程涵盖以下几个关键环节:首先经过充分的数据准备阶段随后进入模型训练阶段完成参数优化工作最终进入评估鉴定环节以全面检验模型性能各阶段指标均按照既定标准进行严格把控确保实验结果的有效性和可靠性

训练数据集包含46569张图像,并参与模型训练与参数优化过程。验证数据集包含13306张图像以检验模型对新样本数据的学习效果,并防止过拟合现象的发生。测试数据集包含6653张图像通过评估模型在未知数据集上的表现来衡量其泛化性能

数据分布直方图

部分数据集图像如下图所示:

部分标注如下图所示:

这种数据分布方式确保了数据在模型训练、验证以及测试阶段的均衡性,并为其开发及性能评估提供了可靠的基础保障

图片数据需按照特定存储格式组织,在项目根目录下创建一个datasets子目录,并将所有检测到的图像按照训练集和验证集进行分类存放在该子目录内

随后需要创建一个新的data.yaml文件

这个文件说明了用于模型训练与验证的数据集路径,并指定了模型将要检测的目标类别设置。

在数据准备完成后,在启动之前随后启动并执行train.py文件以执行模型训练过程。其中epochs参数用于调节整个训练周期的数量,在此过程中会持续迭代优化模型参数直至满足收敛条件。其中batch参数用于调节每个批量处理的数据量,并且其中最低设置为1个样本以避免内存占用过高问题

CPU/GPU训练代码如下:

导入预训练的YOLOv8n.pt模型文件,并将其加载到当前环境中以供使用。
该文件包含了经过预先训练的YOLOv8n.pt模型参数配置信息。
在参数设置方面:

  • 定义用于训练的数据集配置路径
  • 设置总的训练迭代次数为150次
  • 确定每个批次包含4个样本数据
  • 使用SGD优化算法进行参数更新
  • 命名此次实验任务为train_v8

3.YOLOv8模型训练结果与性能评估

在深度学习的过程中,在进行模型训练时

损失函数作用说明:
(1)定位损失 (box_loss):表示预测框与标定框之间的差异(Generalized IoU),数值越小则定位精度越高。
(2)分类损失 (cls_loss):用于评估锚框与对应标定类别的匹配程度,在分类正确的前提下数值更低。
(3)动态特征损失 (dfl_loss):基于DFLLoss对预测框与目标框之间的距离进行回归预测,并结合多尺度特征图优化参数尺度以提升整体检测精度。

训练和验证结果文件存储:

训练完成后,相关的训练过程和结果文件会保存在 runs/ 目录下,包括:

(1) 损失变化趋势
(2) 多种性能指标的变化趋势分析(包括常见的评估指标如平均精度(mAP)、精确度和召回率)
(3) 混淆数据表
(4) Precision-Recall (P-R) 变化图形

损失曲线(Loss Curve)和性能指标分析:

训练指标体系:
train/box_loss:
含义:
用于衡量预测边界框与真实边界框之间差异的损失函数值
趋势:
随着训练过程进行,
损失值持续下降

train/cls_loss: 该变量用于衡量分类模型的性能。其作用是量化预测类别的偏差程度。当该值下降时, 模型的分类准确率随之提高。

train/dfl_loss:
作用:混合分布融合损失(Distribution Focal Loss),主要用于提升边界框位置和尺寸的预测效果。
趋势:损失持续下降表明模型在训练过程中增强了对标签信息的处理能力。

请分析以下内容并给出改写后的版本

请分析以下内容并给出改写后的版本

请分析以下内容并给出改写后的版本

其中 val/cls_loss 表示:在验证集上计算的分类损失指标与训练集的 cls_loss 指标具有相似性。

趋势分析显示,在训练过程中观察到以下几点:首先,在验证集上计算的分类损失指标呈现下降趋势;其次,在测试集上的分类性能持续提升。

该损失函数val/dfl_loss定义为验证集上衡量不同数据分布下目标标签的聚合程度。通过观察验证集上的损失变化可以看出,在训练过程中该模型表现出良好的收敛性特征。

性能指标:
metrics/precision(B):
定义:在机器学习中,precision(精确率)是指模型在被预测为正类的所有样本中实际确实是正类的比例。它反映了模型在减少假阳性方面的效果。
趋势:经过逐步优化后,在测试集上的准确率持续提高。

metrics/recall(B):
含义:在训练过程中定义了召回率指标(recall(B)),其表示所有真实的目标中被正确识别的比例。
趋势:该指标逐步提升(improve),这表明该模型在识别正样本方面的性能得到了显著增强。

metrics/mAP50(B):
说明:在验证集上计算得到的平均精度指标@0.5(mAP@0.5),该指标反映了目标检测模型在IoU阈值为0.5时的表现能力。
趋势:随着训练进程的推进,在验证集上计算得到的平均精度指标@0.5逐渐提升

metrics/mAP50-95(B):
含义:在验证集上计算的平均精度(mAP)在0.5至0.95之间,该指标反映了不同IoU阈值下的平均检测精度。
趋势:随着该指标数值的提升,mAP@0.5-0.95逐渐增加,预示着模型在严格评估标准下的性能持续增强。

总结:
(1)通过查看这些图表可以看出,在训练过程中该模型显著提升了边框回归、分类以及召回率等多个指标的性能,并且在验证集上表现出良好的一致性与泛化能力。
(2)训练损失和验证损失均呈下降趋势,并且精度、召回率以及mAP等指标持续提高表明该模型在持续优化其性能表现。

Precision-Recall(P-R)曲线分析:

本节曲线图示部分:
蓝色(Abcess 0.987):
展示了模型在脓肿(Abcess)类别上的性能评估结果,并且其精度值达到0.987。

Color Code (Acute Phase 0.993): 表示模型在急性阑尾炎 (Acute Phase) 类别上具有精度-召回率曲线,并表现出高度的精度。

绿色 (appendicolih 0.990): 该模型在阑尾结石 (appendicolih) 类别上展示了精确度与召回率曲线的关系,并显示出精确度水平为0.990。

该颜色标记为(normal 0.992),该图展示了模型在正常阑尾类别上的性能指标曲线图。其中模型的精度达到0.992

该颜色标记为(normal 0.992),该图展示了模型在正常阑尾类别上的性能指标曲线图。其中模型的精度达到0.992

红色 (perforated 0.995):用于计算模型在阑尾穿孔 (perforated) 类别中的精度-召回率变化趋势

蓝色(所有类别上达到平均精度Recall-AUC为0.991,在IoU阈值为0.5的情况下计算得到mAP值):该网络架构在所有分类任务中表现优异

该PR曲线反映了模型在多种阑尾病变类型(包括脓肿、急性阑尾炎、阑尾结石等)上的优异精确度和高的召回率水平,在这些指标中,以急性阑尾穿孔类别的检测效果最为突出。

对混淆矩阵 (Confusion Matrix) 进行研究

结论:针对阑尾病变检测任务而言,在整体性能上该模型表现优异,并能较为准确地区分大部分类别;然而,在背景类及相近类别之间仍存在一定程度的误分类现象。

4.检测结果识别

在模型训练完成后, 我们产出一个最优的训练结果模型best.pt文件, 位于runs/train/weights文件夹内. 可利用该文件来进行后续的推理检测. 在imgTest.py中, 我们提供了图片检测代码块, 请参考以下内容:

加载所需库:
(1)通过导入YOLO模型类来执行目标检测。
(2)使用OpenCV库来进行图像处理和显示。

模型与图像加载位置说明:
(1)其文件路径位于‘models/best.pt’:该模型文件将用于目标检测任务。
(2)用于目标检测任务的图像文件位置位于“TestFiles/imagetest.jpg”。

在预设路径上加载预训练模型:

  1. 使用调用YOLO函数,在指定路径上初始化模型,并设置任务参数为'task=’detect’'。
  2. 分别配置目标检测系统的置信度阈值并通过iou参数设定非极大值抑制(NMS)的交并比(IoU)阈值。

图像识别:
(1)results = model(img_path):进行目标检测任务,并将结果存储于 results 变量中。其中包含各物体的识别信息。

显示检测结果:
(1)res = results[0].plot():实现了将检测到的结果呈现于图像的功能。
(2)cv2.imshow(“YOLOv8 Detection”, res):通过OpenCV库展示了处理后的图像内容。
(3)cv2.waitKey(0):执行了等待用户按下任意键以退出该窗口的操作。

执行imgTest.py代码后,会将执行的结果直接标注在图片上,结果如下:

该段信息基于YOLOv8模型对图像imagetest.jpg进行检测所得的结果表明

图像信息:
(1)处理的图像路径为:TestFiles/imagetest.jpg。
(2)图像尺寸为640×640像素。

检测结果:检测到1个目标:acute (急性阑尾炎的病变)

处理速度:
(1)预处理时间: 4.0 毫秒
(2)推理时间: 5.2 毫秒
(3)后处理时间: 78.1 毫秒

总结:

运行效果

– 运行 MainProgram.py

主要功能:
(1)适用于实际场景中的腹部阑尾病变检测。
(2)能够通过摄像头、视频或图片进行检测,并且支持批量处理图片。
(3)界面能够实时显示目标位置信息以及目标数量等数据,并提供置信度评分和检测时间统计。
(4)能够保存来自图片或视频的检测结果数据

2.检测参数设置:

(1)置信度阈值:当前设置为0.25,表示检测系统只会考虑置信度高于25%的目标进行输出,置信度越高表示模型对检测结果的确信度越高。
(2)交并比阈值:当前设置为0.70,表示系统只会认为交并比(IoU)超过70%的检测框为有效结果。交并比是检测框与真实框重叠区域的比值,用于衡量两个框的相似程度,值越高表明重叠程度越高。

这两个参数主要用作目标检测系统中的重要指标,在更改后能够调节模型的性能水平以及误检率。

语音通知系统(Voice Reminder): (1)紧急提示音:(请注意大肠末端可能存在炎症,请立即就医!)

这张图表呈现了基于YOLOv8模型的目标检测系统界面的具体情况。具体说明如下:

(1)该模型进行检测所需时间为0.082秒。
(2)这一结果验证了该模型运行效率显著。

目标数目(Number of objects detected): (1)检测到的目标数目为1即表示这是当前检测到的第1个目标

从选项列表中选择:全部项

3.检测结果说明:

这张图表利用YOLOv8模型展示了目标识别系统的检测界面,并具体说明了各字段的作用

结果(Result):“急性阑尾炎”,表示系统正在高亮显示检测到的“acute”。

置信度(Confidence):
(1)该系统具体表明其对于检测到的目标属于"性阑尾炎"类型所具有的信心度达到了91.01%。
(2)反映的是模型对于这一检测结果所持有的信心程度越大,则其信心就越充足。

目标位置(Object location):
(1)起始点:(xmin, ymin),表示目标区域在图像中的起始坐标为(xmin, ymin)。
(2)边界:(xmax, ymax),表示目标区域的边界坐标为(xmax, ymax)。

这些坐标标识位于图像的目标区域范围内,并确定了检测到的'急性阑尾炎'的位置

这张图呈现了检测系统的具体结果(result)及其相关信息(如目标类型、可信度以及目标位置坐标)。此类界面常用于展示模型在图像中定位并识别出的目标(objects),并提供相关的位置数据(coordinates)及可信度评估(confidence scores)。

4.图片检测说明
(1)急性阑尾炎

鉴别:severe appendix refers to an acute inflammation of the appendix, commonly caused by bacterial infection, and is a common acute condition in the abdomen.

(2)阑尾穿孔

诊断:该病的主要表现为一种严重的并发症即急性阑尾穿孔。这种现象通常发生在急性阑尾炎未能及时处理的情况下。在疾病活动期会发生肛管组织层间的裂解。由于细菌和脓液侵入腹腔内可能会导致腹膜感染的发生

(3)阑尾结石

诊断结果表明,阑尾结石是指阑尾腔内形成的硬块物,在该部位积聚的粪便或其他物质会导致局部堵塞现象发生,并最终引发急性阑尾炎。

(4)阑尾脓肿

临床判断阑尾脓肿是一种由阑尾炎发展而来的次要并发症,在患者未能及时采取治疗措施或未能获得适当治疗的情况下发生。这种感染通常会发生在阑尾炎未能得到及时处理或未得到充分治疗的时候,并导致局部组织部位出现脓液积聚于周围组织间隙中。

(5)阑尾正常

诊断:阑尾未发生病变即被认为是正常的个体其组织学结构完整性良好且功能活动均处正常水平。健康的阑尾一般不会产生任何不适感或相关症状。

单击图片按钮以打开相关功能,并从待检图像中选择需进行检测的对象;或单击文件夹按钮以打开相关功能,并从包含待检图像的文件夹中选择需批量处理的对象。操作演示步骤如下:第一步:请单击目标下拉框以展开预设选项菜单,在此菜单中可设置所需的目标参数;第二步:请单击保存按钮以执行以下操作:首先将检测结果汇总并生成报告文档;其次将报告文档存储至save_data目录中的指定子文件夹内以便后续查阅

系统通过图像分析技术识别出图片中的腹部阑尾病变,并呈现相应的检测结果。具体包含总目标数量统计、完成时间记录、各类目标分类信息分析、检测置信度评估以及目标精确位置坐标数据。

5.视频检测说明

单击视频选项键,在线启动视频文件选择界面,在此界面中选定待检测视频文件后会立即呈现检测结果图形;回车键切换至关闭当前播放窗口的状态。
单击保存选项键将会将当前检测到的结果图像数据存储至指定位置:save_data文件夹内。

检测结果:该系统能够实时分析视频内容,并识别出腹股沟区域的异常结构并提供了相应的检测数据。实验表格详细列出了视频中多个检测点的置信度评分及其具体位置坐标信息

该界面不仅体现了系统在视频帧处理方面的强大能力,并且能够精确识别腹部阑尾病变及其相关特征,并提供了详尽的检测数据和置信度评分。

6.摄像头检测说明

按下启动摄像头按钮即可启动摄像头设备,并具备实时监控能力;再次按下启动关闭功能即可关闭摄像头。

检测结果:系统通过摄像头实现了腹腔内实时数据采集功能,在观察到腹股沟区域异常结构后立即生成检查报告。实验平台能够实时捕捉并反馈摄像头的画面信息,并在生成的图像中标注病灶部位的位置信息;同时对每帧图像中的检查结果进行了详细记录并保存于数据表格中

7.保存图片与视频检测说明

执行按钮操作后(即点击保存按钮),系统将对已选项目的图片(包括批量图片)以及视频进行相应的检测结果记录。这些检测到的结果会被存储至save_data目录中。

(1)图片保存

(2)视频保存

– 运行 train.py
1.训练参数设置

(1)由data.yaml文件定义的数据集构成:data=data_yaml_path
(2)设定训练循环总共进行150次:epochs=150
(3)每批处理4张图像作为数据批量输入:batch=4
(4)模型训练完成后生成的结果文件将被存储在命名为train_v8的目标文件夹内:name=’train_v8′
(5)选定随机梯度下降算法(SGD)作为优化模型参数的学习方法:optimizer=’SGD’

然而,在多数深度学习任务中 GPU 一般会带来更快的训练速度。有时候可能会因硬件性能限制或其他因素 导致必须在 CPU 上执行训练。

温馨提醒:在CPU环境下进行深度学习模型的训练通常会明显落后于使用GPU技术;尤其是像YOLOv8这样高度依赖计算能力的任务而言。只有当特别需求时才建议采用;否则,在保证效率的前提下优先选择GPU以获得更好的性能表现。

2.训练日志结果

这张图展示了使用YOLOv10进行模型训练的详细过程和结果。

(1)模型经过了150轮的深度学习训练后,在总用时上达22.31小时。
(2)在本次实验中采用了 NVIDIA GeForce RTX 4070 Ti SUPER显卡配置,并配备有充足的内存资源。
(3)该系统展现出令人满意的训练效能优势,则得益于YOLOv9模型优化方案的成功实施以及强劲硬件架构的有效支撑。

mAP指标方面:
(1)具体体现着当IoU设为0.5时的平均精度达到91%。
(2)表明模型在IoU介于0.5至0.95之间时的平均精度约为89%。

速度:
(1)0.1ms 预处理时间
(2)0.8ms 推理时间
(3)0.5ms 后处理时间

结果已被保存:(1)已将验证结果存储至runs\detect\train_v10文件夹中

完成情况:(1)流程结束并带有exit code 0表明整个验证流程顺利完成无错误发生

总结:
该模型在训练过程中表现优异,并具备较高的识别能力,并能准确区分各类阑尾病变且检测精度较高。
采用YOLOv8算法进行优化后,在腹部阑尾病变检测任务中的表现尤为出色。
实验数据显示该模型在训练数据集上的收敛速度较快。

全部评论 (0)

还没有任何评论哟~