Advertisement

基于YOLOv8深度学习的乳腺癌智能检测分割与诊断系统

阅读量:

随着乳腺癌发病率不断攀升

本研究开发了一种基于YOLOv8框架的应用程序,旨在构建一个从乳腺影像数据中自动生成肿瘤标记并实现精准分界及分类的整体解决方案。该系统利用PyQt5技术打造了一个直观易用的人工智能图形界面,便于医生无需繁琐的手工操作就能完成tumor image processing and diagnostic analysis工作流程。系统的核心技术是经过大规模乳腺影像数据集训练与验证的YOLOv8优化深度学习模型,通过其强大的特征提取能力确保能够对不同类型的tumor图像做出准确识别,最终达成良好tumor classification效果。

在技术实现方面,则首先采用YOLOv8模型对乳腺影像中的病变区域进行高效定位,并利用精确分割算法提取肿瘤边界区域。随后基于深度学习技术实现对肿瘤边界区域的良恶性性质判别,在此基础上输出包括病灶定位信息及相应的诊断意见。实验研究显示所提出的系统在乳腺影像数据集上的多个性能指标均优于现有主流方案其中检测任务达到显著精度水平(mAP)指标表现优异且所得分割区域与病理学专家标注范围高度一致两种性质判别的准确率达到75%以上充分展现了临床应用潜力

此外,在功能模块中还加入了模型可解释性分析模块。利用可视化技术生成热力图,并重点显示了病变区域对分类结果的影响程度。这一改进不仅提升了系统的透明度,并且增强了用户对诊断结果的信心。通过收集医护人员的实际使用反馈数据,在界面设计上实现了简洁明了的同时确保操作简便性。经过多阶段的数据验证与优化迭代后,在乳腺癌筛查与诊断效率方面实现了显著提升

综合上述分析可知

算法流程

建议详细分析项目的算法流程,并系统地探讨技术实现的关键环节。具体包括数据获取及预处理阶段作为起点,在经过核心算法的设计阶段及其优化过程后,则最终将完成对项目成果的具体展示。每一阶段都将采用条理清晰、表达简洁的方式进行阐述,并深入揭示其中的技术原理及实现思路。

硬件环境

我们使用的是两种硬件平台配置进行系统调试和训练:
(1)外星人 Alienware M16笔记本电脑:

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

上文所配置的硬件环境拥有充足的计算能力,并可同时处理大规模图像数据以及实现高效的运算。借助GPU技术的应用,在模型训练所需的时间上实现了显著缩减。通过在不同硬件平台上进行调试与训练,并从多维度验证系统的性能、适应性和稳定性,在确保系统稳定运行的同时提升了其适用范围与可靠性,并且这种方法不仅增强了系统在不同场景下的稳定运行能力和广泛的适用性,并且降低了开发成本并提高了处理效率,在实际部署中为其奠定了良好的技术基础。

模型训练

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

1.YOLOv8的基本原理

YOLOv8属于SOTA级别的模型,并基于Yolov系列之前的版本进行了优化与改进。通过这些改进旨在通过这些优化来增强性能与适应性。该模型设计能够高效地执行目标检测、图像分割以及人体姿态估计等多种任务。其主要创新包括三个关键组件:第一部分是引入了一种新型主干网络;第二部分是开发了一种全新的 anchor-free 检测头部;第三部分是采用了一种新型的损失函数设计,并可在从 CPU 到 GPU 的多种硬件平台上运行。

在YOLO系列中占据领先地位的YOLOv8系统,在多个关键指标上全面超越现有的物体检测和实例分割技术。该系统汲取了YOLOv5、YOLOv6以及YOLOX等模型的优点,并在此基础上基于对YOLOv5架构的全面优化与改进实现了质的飞跃。同时继承并强化了YOLOv5工程化设计的简洁性和实用性。

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

2.数据集准备与训练

本研究采用了乳腺癌相关超声影像数据集作为研究基础,并通过Labelme工具对图像中的分割标记及其分类信息进行了精确标注。在此数据集基础上应用YOLOv8n模型进行训练操作,并从性能指标角度全面评估并对比分析了模型在验证集的表现情况。整个训练与评估流程主要包括以下几个步骤:首先是数据预处理阶段的数据准备工作;其次是基于所选模型架构展开的具体训练过程;最后是对训练完成后模型性能的关键指标进行系统性检验与结果对比分析。研究目标类别主要集中在乳腺癌肿瘤相关超声影像这一领域范畴内。所涉数据总量共计780张图像,在具体分布上可分为以下几类:乳腺癌肿瘤相关超声影像约占比65%,甲状腺功能亢进症相关超声影像占比约25%,其余类型仅占约10%的比例范围。

训练集:624张图片。
验证集:156张图片。

数据集分布直方图
以下柱状图展示了训练集、验证集的图像数量分布:

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

部分标注如下图所示:

该种数据分布策略通过确保在模型训练和验证环节实现了数据分布的均衡性,在提升算法效果方面发挥了关键作用。该方法不仅能够有效平衡各类样本的比例,在提升算法效果方面发挥了关键作用,并为其开发过程提供了理论支撑,并为其性能评估提供了可靠的基础。

在项目根目录下创建datasets文件夹以存储图片数据格式信息,并将收集到的图像按照训练集与验证集分类存入该文件夹内。

随后需要创建一个新的data.yaml文件,并将其用于存储训练数据路径以及模型需进行检测的类别。YOLOv8在执行模型训练过程中能够利用该文件的信息,并不仅用于模型的训练与验证过程

该文件说明了在模型训练与验证过程中所使用的数据集路径,并指明了模型需要识别的目标类别。

在数据准备完成之后,在线调用train.py文件以执行模型训练任务。其中:

  • epochs参数被用来调节模型的训练周期数量
  • batch参数被用来调节每次批量处理的数据量(其值取决于内存容量,默认值通常设置为1)

CPU/GPU训练代码如下:

导入名为 yolov8n-seg.pt 的预训练YOLOv8模型,并确保该文件路径指向预先训练好的分割相关模型。
采用YOLO系列模型进行图像识别任务设置,并对以下关键参数进行详细配置:

  1. data: 指定训练数据集的配置文件路径信息。
  2. epochs=150: 设置全局优化器运行循环总次数为150次。
  3. batch=4: 定义批量处理图片的数量为4批。

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

在深度学习的不同阶段中,在追踪模型参数更新轨迹的基础上分析其收敛规律是一种常见的做法。对于YOLOv8模型而言,在其训练过程中涵盖了三个关键方面的损失计算:首先是基于边界框定位的有效性进行计算的位置误差(即box_loss),其次是根据类别标签准确性评估分类效果(即cls_loss),最后则是针对各预测特征动态变化特性设计的一种特殊化误差度量方法(即dfl_loss)。这些不同类型的优化目标共同构成了提升该模型整体检测性能的基础。

本节主要阐述各损失函数的作用机制。具体而言:
(1)定位损失 (box_loss):该项损失度量了预测边界框与真实边界框之间的偏离程度(Generalized Intersection over Union, GIoU),其值越小表明定位精度越高。
(2)分类损失 (cls_loss):该项评估了锚框与其对应分类标签之间的匹配程度,在分类正确的前提下数值最小化以实现精准识别目标类别。
(3)动态特征损失 (dfl_loss):此项通过DFLLoss对预测边界框与目标边界框间的距离进行回归分析,并融合不同尺度的特征图信息以优化检测模型的空间分辨率和定位精度

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

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

(1)损失变化趋势图
(2)性能评估曲线图
(3)分类结果矩阵
(4)精确度-召回率曲线

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

训练集损失:
train/box\_loss
意义:边界框定位误差反映了模型在训练数据集上的目标边界框定位准确性。
趋势:随着训练迭代次数增加, 损失值持续降低并趋于稳定, 说明模型对目标边界的预测精度逐步提升。

train/seg_loss
作用:反映模型对目标区域划分的效果。
变化:损失值持续下降表明该模型在分割任务中的学习效率逐渐增强。

train/cls\_loss概念:该指标衡量模型在训练数据集中对目标类别识别的错误率;趋势:观察到该值持续下降,这表明模型的分类性能得到了提升。

train/dfl_loss
含义:该损失函数(Distribution Focal Loss)用于评估模型在边界框分布上的学习效果。
趋势:分析显示损失值呈现平稳下降趋势表明模型在边界框分布的预测上逐渐趋于稳定且准确。

验证集损失:
具体含义是模型在验证集上边界框预测的准确性。
趋势方面显示,在初始阶段该指标数值较高,
随后呈现出明显下降趋势,并逐渐趋于稳定状态,
这表明模型在边界框预测能力方面随着训练逐步提升。

定义:验证集上的分割损失val/seg\_loss用于衡量模型在验证集上的分割性能,并反映了其在该任务上的泛化能力。
变化趋势:随着训练的进行,val/seg\_loss持续减少并稳定收敛于一个较小的值。这表明模型的分割性能在验证集上表现出色。

  • 定义部分:
    • 基于验证集的目标分类损失
    • 表征模型在该数据集上对目标类别的识别精度
  • 趋势部分:
    • 初始阶段表现出较高的损失水平
    • 随后稳步下降直至趋于平稳状态
    • 这一变化趋势表明模型在该数据集上的泛化能力得到了显著提升

val/dfl_loss
含义:该损失函数用于衡量在验证集上各类别样本的聚焦程度。
趋势:随着训练的进行,该损失函数值迅速下降并趋于稳定。这表明模型在验证集上的边界框预测精度逐步提高。

评估指标:良性肿瘤
precision metrics(B)
含义:预测为良性的样本中真实为良性的比例
趋势:呈稳步上升趋势,并逐渐趋于稳定状态

metrics/recall(B)
定义:在良性肿瘤检测任务中使用的召回率指标(Recall),其数值代表系统在识别所有真实存在的恶性肿瘤案例时所达到的效果表现。
表现:该指标持续提升的趋势表明,在保持较高诊断标准的前提下,系统误诊情况得到了有效控制。

该指标代表的是良性的肿瘤细胞检测系统的平均精度(mAP),其评估基准为50%交并比阈值下的性能表现。
该系统通过持续优化提升了在该指标上的数值表现,并最终稳定在较高的水平上。

metrics/mAP₅₀-₉₅(B) 定义为恶性肿瘤的平均精度指标,在涵盖多个IoU阈值范围(从50%到95%)的情况下评估各阶段模型表现;趋势显示该指标持续增长并渐趋平稳, 说明模型检测能力在全面性上不断优化

评估标准·恶性肿瘤检测

metrics/recall(M)
含义:该指标用于衡量恶性肿瘤诊断的召回能力。
趋势:该数值持续提高,在恶性肿瘤诊断中表现出了越来越低的漏诊情况。

metrics/mAP50(M) represents the mean average precision for malignant tumor detection when the IoU threshold is set to 50%. The trend indicates that detection accuracy is continuously improving, as evidenced by a steady rise in performance metrics.

metrics/mAP50-95(M)含义:恶性肿瘤模型基于多个IoU阈值指标评估表现。趋势:该指标呈现稳步上升趋势表明恶性肿瘤的检测性能全面得到了提升

总结:
(1)损失函数(train/* 和 val/*):呈下降趋势,在逐步趋于稳定状态的过程中表现出良好的收敛特性。
(2)分类指标:通过持续提升并趋于平稳的过程实现了对两类肿瘤样本的精确识别。
(3)综合评估指标mAP:在图像分割与肿瘤分类相关的任务中展现了显著的提升效果。

Precision-Recall(P-R)曲线分析:
定位结果的PR曲线如下:

曲线说明:蓝色线条标记了良性肿瘤的检测情况。(1)显示了良性肿瘤检测的Precision-Recall (PR) 曲线。(2)旁边的数值 0.758 表示良性肿瘤的平均精度 (AP),即该曲线下所围区域的面积。

橙色线条(malignant – 恶性)
(1)代表恶性肿瘤检测任务中Precision-Recall(PR)曲线的表现。
(2)数值右侧标注的0.606即为对应于恶性肿瘤的平均精度AP (Average Precision)。

粗体蓝线(all classes – 所有类别)
(1) 代表所有类别的综合PR曲线(良性与恶性肿瘤)。(2)旁边的数值 0.682 是各类别对应的mAP值(mean Average Precision),表示整体检测性能。

总结:
图中以蓝色和橙色曲线分别表示模型在良性和恶性肿瘤检测中的性能表现。其中,在良性的肿瘤检测方面表现出色(AP值达到0.758)。整体而言,在所有癌症类型中的平均精度达到了0.682。对于恶性肿瘤的检测仍存在进一步优化的空间。

分割结果的PR曲线如下:

检测性能曲线说明:
浅蓝色曲线标记(Benign)
(1)标注的是良性肿瘤的Precision-Recall检测性能曲线。
(2)旁边的标注 0.797 是恶性肿瘤的 AP 值。
其中含义部分指出:该曲线反映了模型对恶性肿瘤的检测效果;AP值越大,则表示模型在恶性肿瘤检测方面的能力越强。

橙色曲线图(malignant)
(1)代表用于检测恶性肿瘤的Precision-Recall曲线图谱。
(2)旁边标注的具体数值为0.597,则为恶性肿瘤样本对应的平均精度AP值计算结果。
(3)其意义在于该曲线展示了模型在恶性肿瘤检测方面的性能表现,在与良性 tumor样本进行比较时能够反映出其相应的诊断能力差异。

深蓝色粗实线(all categories)。
(1)该曲线展示了所有类别(良性与恶性肿瘤)的综合Precision-Recall图。
(2)旁边的标注 0.697 mAP@0.5 是所有类别的 mAP (mean Average Precision),表示模型在所有类别上的平均检测水平。
(3)其意义在于整合了良性与恶性肿瘤的检测水平,并反映了模型整体的表现。

总结:图中蓝色曲线代表模型对良性肿瘤(平均精度AP=0.797)的检测性能,橙色曲线则代表模型对恶性肿瘤(平均精度AP=0.597)的表现。整体而言模型均值mAP达到0.697,在诊断良性的方面表现更为出色而在恶性肿瘤的检测方面仍有一定改进空间

混淆矩阵 (Confusion Matrix) 作为一种检验分类模型效果的关键指标,在机器学习领域具有重要地位

结论:模型对良性病例的分类性能较好(准确率达到65.43%,即约75.8%),但在癌性病例及背景组织分类方面仍存在优化潜力;建议进一步提高区分肿瘤区域与其他组织类型的能力

4.检测结果识别

完成模型训练后, 我们能够获得一个最优的结果模型best.pt文件, 该文件位于runs/train/weights目录中。此外, 该文件可用于后续步骤中的推理与检测。 imgTest.py 图片检测代码如下:

模型加载及配置流程
路径设置:
(1)path变量用于加载预训练的YOLOv8分割模型文件(filename: best.pt)。
(2)image_paths列表用于指定待检测图片文件夹及其具体图片名称(例如:TestFiles/benign (9).png)。

参数设置:
(1)conf=0.25: 该参数设定为检测的信心度阈值,默认值为0.25,在调整该参数时需注意其对检测结果的影响。
(2)iou=0.7: 该参数设定为非极大值抑制(NMS)中的交并比阈值,默认设置为0.7,在实际应用中需根据具体情况选择合适的数值。

图片检测
(1)执行模型调用 img_path 对待分析的图像实施分割。
(2)将检测结果存储于 results 数组中,并可通过 results[0].plot() 的方式呈现出来。

详细展示分割结果 (1)通过 OpenCV 库的 imshow 方法实现显示分割后的图片,并让用户等待窗口自行关闭

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

这段输出利用YOLOv8模型对图片"benign (9).png"进行检测的具体信息如下

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

检测结果:
(1)模型在图片中检测到:检测到 1个良性(benign)目标。

处理速度:
(1)预处理时间: 3.5 毫秒
(2)推理时间: 44.1 毫秒
(3)后处理时间: 60.0 毫秒

总结:
模型的分割推理速度较快,整体时间(约107ms)适合实时检测场景。

运行效果

– 运行 MainProgram.py

主要功能:
(1)该系统能在线处理目标图像中的乳腺癌分割任务;
(2)系统具备处理图像文件、视频流以及摄像头输入的能力,并支持批量处理图像数据;
(3)界面能动态呈现目标定位结果,并实时显示关键指标如数量统计、置信度评估及耗时记录;
(4)系统能够存储处理所得的图像或视频数据结果。

2.检测结果说明:

(1)信心水平界限:目前设定在IoU= 9 \times 9 网格划分下计算得到的平均精度AP上,并且根据经验设定合理的数值范围以确保模型既不会过拟合也不会欠拟合。
(2)预处理步骤包括图像归一化、尺寸调整以及目标框标注等关键环节。

改写说明

输出文本

此图呈现了基于YOLOv8模型的目标检测系统的结果界面。具体而言,各字段的具体意义说明如下

(1)该模型完成检测所需时间为0.021秒。
(2)该模型体现了实时性,其检测速率为极快。

目标数目:Number of objects detected

(1)请配置一个下拉菜单选项卡,请用户能够浏览目标类型。
(2)在当前设置下,默认选中的是‘全部’选项卡,请注意此状态下将展示所有检测到的目标信息。

(1)分割面积占比:23.70%
(2)类型:恶性肿瘤

结果(Result):“恶性肿瘤”,表示系统正在高亮显示检测到的“malignant”。

置信度(Confidence):
(1)该目标被归类为恶性肿瘤的概率是60.40%。
(2)这一指标体现了模型的信心水平,在预测结果上具有一定的可靠性。

目标位置(Object location):
(1)xmin :81,ymin :43:该坐标(xmin,ymin)代表目标区域在图像中的起始点位置。
(2)xmax :460,ymax :310:该坐标(xmax,ymax)标识了目标区域在图像中的边界范围。

这些位置表示在图像中的检测区域边界范围,框定了识别出的'恶性肿瘤'的空间定位.

该图呈现了乳腺癌分割图像的一次检测结果,并包含了以下关键信息:一是检测时间点;二是检测到的具体类型;三是各项行为对应的置信度评估;四是目标定位的相关数据等细节信息。研究人员可通过图形界面观察和分析测试结果,并由此提高乳腺癌分割图像处理的速度

3.图片检测说明
(1)恶性肿瘤

(2)良性肿瘤

单击图片按钮并选择要检测的图片文件;或者单击文件夹按钮以选择包含多个待检图片的文件夹存放位置。
操作步骤如下:

  1. 单击目标下拉框以进行选择。
  2. 选定并显示指定结果信息。
  3. 单击保存按钮以保存检测结果。

检测报告:系统识别出图片中的乳腺癌分割的图像信息,并输出相应的检测结果。该检测报告包含以下关键指标:总目标数量、耗时时间、目标类型划分及其对应的置信水平数据,并详细记录了所有目标的位置坐标数据。

4.视频检测说明

单击视频按钮后,在界面上打开待检测的短视频;系统会即时呈现检测结果;再次单击可关闭当前显示窗口。
单击保存按钮后,在 save\_data 目录下对获取的检测结果进行存储。

检测结果:该系统实现了对视频流的实时分析功能,并成功识别出乳腺癌分割图像,并呈现相应的检测报告。详细列举了各项检测指标及其对应的置信度评分与定位坐标。

该界面直观地呈现了系统在视频帧上的多目标检测性能。该系统能够准确识别乳腺癌分割图像,并详细地提供了相应的检测结果及其置信度评分。

5.摄像头检测说明

按下摄像头按钮以启动摄像头。
即可完成摄像头的开启。
即可执行实时检测。
再次按下以关闭摄像头。

检测结果:系统通过摄像头实时采集并分析图像数据。动态同步展示摄像头实时画面,并在识别区域标出具体位置坐标。生成详细的监测数据表,并在每帧图像中标注关键检测指标

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

保存

保存

在点击【保存

(1)图片保存

(2)视频保存

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

在YOLO框架下进行模型训练,在PyTorch环境下运行该算法以实现图像分割任务的具体操作步骤如下:
首先,在代码库中导入必要的模块并执行初始化操作。
随后,在工作目录下创建一个名为yolov8n-seg.pt的文件,并将其配置文件路径加入到项目根目录中。
通过Python脚本启动训练过程,在预设好超参数的情况下运行该脚本。
为了实现图像分割目标,请按照以下步骤进行设置:

  1. 配置数据集路径
  2. 设置预处理参数
  3. 定义损失函数
  4. 选择优化器
  5. 设置学习率策略
  6. 初始化网络架构
  7. 调整超参数设置
  8. 启动并跟踪训练过程

然而,在大多数深度学习任务中(尤其是在计算资源较为充足的场景下),GPU通常能显著提升训练效率。然而,在某些特定场景下(如硬件配置受限或特殊算法需求),为了实现精确计算目标(即确保计算结果的准确性),用户仍需依赖CPU进行运算。

温馨提⽰:在普通处理单元(CPU)上训练深度学习模型通常会比图形处理器(GPU)慢许多;尤其是像YOLOv8这样计算密集型的任务。除非有特殊需求,“一般推荐”在GPU上进行训练以提高效率。

2.训练日志结果

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

(1)在经过150轮的训练后,模型总共所需时间为0.682小时。(2)本次训练基于NVIDIA GeForce RTX 3070 Ti GPU运行。(3)YOLOv8模型经过优化设计带来了较高的效率,并且高性能硬件提供了必要的支持。

验证结果:
(1)mAP50: 验证集上该指标的表现达到了 0.759 分,在 50% 的 IoU 阈值下展现出显著的检测效果。
(2)mAP50-95: 最终计算得出该模型在这一指标上的得分为 0.419,在更高 IoU 值范围内仍存在一定的提升余地。

速度:
(1)完成预处理所需的时间为0.3毫秒;
(2)耗时为2.7毫秒;
(3)完成后续处理所需的时间为2.0毫秒;
(4)整体推理效率高,并且非常适合用于实时检测应用

结果已存储:验证结果存放在 runs\detect\train_v8 目录中。

整个验证过程以成功退出状态完成:表明系统验证工作顺利完成且无错误发生

总结:
该模型在经过150轮训练后,在验证集上的mAP@50指标达到了 0.759 ,其中良性样本的检测表现达到了 0.797 ,但在恶性样本上的检测水平还需进一步优化(达 0.597 ),整体性能表现良好。

全部评论 (0)

还没有任何评论哟~