Advertisement

基于YOLOv8深度学习的血细胞检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战、智慧医疗

阅读量:

《博主简介》

阿旭算法与机器学习

阿旭算法与机器学习

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称 项目名称
1.【人脸识别与管理系统开发 2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发 4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发 6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发 8.【基于YOLOv8深度学习的行人跌倒检测系统
9.【基于YOLOv8深度学习的PCB板缺陷检测系统 10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统
11.【基于YOLOv8深度学习的安全帽目标检测系统 12.【基于YOLOv8深度学习的120种犬类检测与识别系统
13.【基于YOLOv8深度学习的路面坑洞检测系统 14.【基于YOLOv8深度学习的火焰烟雾检测系统
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统 16.【基于YOLOv8深度学习的舰船目标分类检测系统
17.【基于YOLOv8深度学习的西红柿成熟度检测系统

链接

Pytorch

官方链接

《------正文------》

基本功能演示

在这里插入图片描述

摘要

文章目录

  • 基础功能展示

    • 引言
    • 第一章 软件核心功能概述及其效果展示
    • **软件主要功能
      • (1)图像识别效果展示
      • (2)视频识别效果展示
      • (3)摄像头识别效果展示
      • (4)图像与视频识别结果的存储
  • 二、模型的训练、评估与推理

      • 1.YOLOv8的核心原理
    • 2. 数据集准备阶段及训练过程

    • 3. 模型性能评估阶段

    • 4. 目标检测结果辨识

    • 【获取方式】

    • 结束语

点击跳转至文末**《完整相关文件及源码》** 获取


前言

血液样本检测与计数值自动化装置

首先,在血细胞检测与计数领域中为医疗工作者提供高效可靠的血液细胞计数服务。借助先进的自动化检测技术显著提升患者血液数据处理的速度与准确性,并为其健康评估提供精准依据。
其次,在疾病诊断方面具有重要价值。通过实时监测血小板、红细胞及白细胞等指标的变化情况,及时发现异常状态并为其病症的确诊及治疗方案制定提供科学依据。
此外,在科学研究领域同样发挥着不可替代的作用。系统能够自动完成血液样本中各项指标的测定工作,并将结果实时反馈给研究人员以辅助医学决策。
综上所述,在临床医学诊断、疾病监测以及药物研发等多个方面均展现出其重要性。这一系统的高度自动化水平以及极高的准确性特征使其成为现代医疗保健体系中的不可或缺的重要组成部分。

博主通过收集血细胞的相关资料图片,并基于YOLOv8的目标检测技术,在Python与PyQt5环境下开发出一款具有简洁界面设计的(血细胞检测与计数系统)应用软件,在该系统中可实现对图片、视频以及摄像头实时识别功能,并具备自动存储识别结果的功能

软件初始界面如下图所示:

在这里插入图片描述

检测结果界面如下:

在这里插入图片描述

一、软件核心功能介绍及效果演示

软件主要功能

1. 在血细胞中支持三种目标检测:血小板、红细胞和白细胞的识别,并对每个类别进行数量统计;
2. 该系统能够处理图片、视频以及摄像头捕捉到的内容,并且具备批量处理图片的能力;
3. 该界面实时呈现目标位置、总数、置信度及用时等关键数据;
4. 该系统能够实现图片或视频的检测结果存储功能。

(1)图片检测演示

点击图片图标,选择需要检测的图片,或者点击文件夹图标,选择需要批量检测图片所在的文件夹,操作演示如下:
点击目标下拉框后,可以选定指定目标的结果信息进行显示。 点击保存按钮,会对视频检测结果进行保存,存储路径为:save_data目录下。
注:1.右侧目标位置默认显示置信度最大一个目标位置。所有检测结果均在左下方表格中显示。
单个图片检测操作如下:

在这里插入图片描述

批量图片检测操作如下:

在这里插入图片描述

(2)视频检测演示

单击视频图标启动窗口并引导用户完成选择视频的任务。完成任务后系统会自动显示检测结果。单击保存按钮会将检测结果保存为"save_data"目录下的文件。

在这里插入图片描述

(3)摄像头检测演示

单击摄像头图标即可实现打开该设备的功能,并且能够进行实时检测。再次单击摄像头图标即可关闭此功能。

在这里插入图片描述

(4)保存图片与视频检测结果

含批量图片

含批量图片

含批量图片

单击"保存"按钮后, 系统将对当前所选的所有图像文件(包括批量图像)以及视频进行检测, 检测获得的数据会被存储到指定位置.

在这里插入图片描述
在这里插入图片描述

二、模型的训练、评估与推理

1.YOLOv8的基本原理

该技术在目标检测领域处于前沿地位,并基于先前版本在目标检测任务上的成功应用带来了显著的性能提升和灵活性增强。其核心创新包括引入一种新型骨干网络架构、设计了一种全新的Anchors-free检测架构以及采用了改进型损失函数计算方案;支持从CPU到GPU等多种硬件平台运行的各种场景下的高效部署。

在这里插入图片描述

2. 数据集准备与训练

在这里插入图片描述
在这里插入图片描述

图片数据的存储格式如下,在项目目录中新建datasets目录,并存放在同时将跌倒检测相关的图片划分为训练集和验证集,并存放在BloodCellData目录下。

在这里插入图片描述

我们需要创建一个新的data.yaml文件,并将其保存在项目根目录下。该文件将用于指定训练数据的完整路径以及模型需要识别的具体类别。在YOLOv8模型的训练过程中,系统会自动读取该文件中的相关信息,并以此为基础完成模型的训练与验证工作。具体来说, 该数据配置文件将包含如下关键信息:

复制代码
    train: E:\MyCVProgram\BloodCellDetection\datasets\BloodCellData\train
    val: E:\MyCVProgram\BloodCellDetection\datasets\BloodCellData\valid
    test: E:\MyCVProgram\BloodCellDetection\datasets\BloodCellData\test
    
    nc: 3
    names: ['Platelets', 'RBC', 'WBC']
    
    
      
      
      
      
      
      
    
    代码解读

根据内存大小调整

复制代码
    # 加载模型
    model = YOLO("yolov8n.pt")  # 加载预训练模型
    # Use the model
    if __name__ == '__main__':
    # Use the model
    results = model.train(data='datasets/BloodCellData/data.yaml', epochs=250, batch=4)  # 训练模型
    # 将模型转为onnx格式
    # success = model.export(format='onnx')
    
    
      
      
      
      
      
      
      
      
    
    代码解读

3. 训练结果评估

在深度学习领域中,通过损失函数下降曲线来观察模型训练进展是一个常见的做法。YOLOv8在训练过程中主要涉及三个关键方面的损失:定位相关的box_loss、分类相关的cls_loss以及动态特征相关的dfl_loss。完成训练后,在指定的runs/目录中可以找到完整的训练过程记录以及结果数据。如上所述:

在这里插入图片描述

各损失函数作用说明:
定位损失box_loss:预测框与标定框之间的误差(GIoU),越小定位得越准;
分类损失cls_loss:计算锚框与对应的标定分类是否正确,越小分类得越准;
动态特征损失(dfl_loss):DFLLoss是一种用于回归预测框与目标框之间距离的损失函数。在计算损失时,目标框需要缩放到特征图尺度,即除以相应的stride,并与预测的边界框计算Ciou Loss,同时与预测的anchors中心点到各边的距离计算回归DFLLoss。这个过程是YOLOv8训练流程中的一部分,通过计算DFLLoss可以更准确地调整预测框的位置,提高目标检测的准确性。
本文训练结果如下:

在这里插入图片描述

一般而言, 我们采用PR曲线这一工具来展示精确率与召回率之间的关系, 如下图所示即为本文训练所得之PR曲线。其中,mAP代表Precision与Recall作为坐标轴绘制后所形成的区域面积, 其中"m"表示求均值, 后面紧跟"@后面的数值"用于标识判定iou为正样本还是负样本的具体阈值范围。以"mAP@0.5"为例, 其中在iou阈值大于等于0.5时计算得到的平均mAP指标显示, 评估结果显示, 在三种目标检测类别中所取得的结果均为较高水平, 具体而言其均值达到0.934左右

在这里插入图片描述

4. 检测结果识别

完成模型训练后, 我们能够生成一个最佳的训练结果模型best.pt文件, 并将其放置于runs/trian/weights目录中. 接下来可以用该文件来进行后续的推理检测.

复制代码
    # 所需加载的模型目录
    path = 'models/best.pt'
    # 需要检测的图片地址
    img_path = "TestFiles/BloodImage_00015_jpg.rf.05a2f2e5db135888ca21be7cd067d951.jpeg"
    
    # 加载预训练模型
    # conf	0.25	object confidence threshold for detection
    # iou	0.7	intersection over union (IoU) threshold for NMS
    model = YOLO(path, task='detect')
    # model = YOLO(path, task='detect',conf=0.5)
    
    
    # 检测图片
    results = model(img_path)
    res = results[0].plot()
    cv2.imshow("YOLOv8 Detection", res)
    cv2.waitKey(0)
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

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

在这里插入图片描述

以下内容将围绕此款 血细胞检测与计数系统 的技术原理及其相关代码实现进行详细阐述。根据该模型框架,在编程语言 Python 和 PyQt5 开发环境中构建了具有交互界面的应用程序。即本文后续将展示的应用程序功能是基于该模型框架构建并实现的核心技术内容。能够有效地处理图片文件、视频文件以及摄像头捕捉的画面,并能存储相应的检测结果。

该系统所包含的所有源码资源(包括完整UI界面代码)、用户界面相关代码、数据资源库以及模型训练相关的代码等都已完成打包上传至服务器端。符合条件的用户可通过指定下载链接自行获取完整的资源包。


【获取方式】

关注下方名片G-Z-H:【阿旭算法与机器学习】,回复【软件】即可获取下载方式

本文涉及的完整全部程序文件:涵盖Python代码库、数据集、训练代码、界面代码(UI)、测试视频和图像 等(见下图)。获取途径及下载链接,请参考文章末尾

在这里插入图片描述

请注意:该代码采用Python3.9版本开发。

此主程序名为MainProgram.py

相关测试脚本可在图中找到。

请根据《程序运行说明文档》中的详细信息配置环境。

关注下方名片GZH:【阿旭算法与机器学习】,回复【软件】即可获取下载方式


结束语

以上便是博主完成的基于YOLOv8深度学习技术实现的血液细胞检测与计数系统的完整展示内容。鉴于博主的能力有限, 不可避免地存在一些不足之处, 诚挚地邀请各位读者提出宝贵的意见和建议, 感谢!

关于本文, 欢迎广大读者在评论区留言交流并提出您的专业见解或优化建议!

觉得不错的小伙伴,感谢点赞、关注加收藏哦!

全部评论 (0)

还没有任何评论哟~