基于YOLOv5的血细胞识别和计数

VOC格式标注转为yolov5格式

  • 原数据格式是xml文件对目标细胞注释,现在需要将这种注释转换为yolov5所需的格式。即每个图像对应一个txt文件,文件中存储该图像中全部细胞的类别和坐标,一行存储一个细胞的信息,如下图
    在这里插入图片描述
  • 编写脚本进行注释格式转换
#获取在SSD项目中生成的csv格式的标注数据
with open("test_labels.csv", "r") as fp:
    data = []
    lines = fp.readlines()[1:]
    for line in lines:
        data.append(line.rstrip().split(","))

txt = ""
#遍历全部数据重新写入到txt文件
for line in data:
    title = line[0][:-3] + "txt"
    with open("./valid/labels/" + title, "a", encoding="utf-8") as f:
        map_cls_name = {"WBC":"2", "RBC":"1", "Platelets":"0"}
        cls = map_cls_name[line[3]]
        x_min = float(line[4])
        y_min = float(line[5])
        x_max = float(line[6])
        y_max = float(line[7])
        x = str((x_max+x_min)/2.0/640.0)
        y = str((y_max+y_min)/2.0/480.0)
        w = str((x_max-x_min)/640.0)
        h = str((y_max-y_min)/480.0)
        content_ = [cls, x, y, w, h]
        content = " ".join(content_)
        f.write(content+"\n")
        print(title + "  " + content)
  • 转换结果
    在这里插入图片描述

在数据集路径创建数据配置文件

  • 在项目平级路径下创建数据集存储路径,路径内创建训练集,验证集路径和配置文件data.yaml
    在这里插入图片描述
  • train和valid内分别创建图像数据路径和标注文件路径
    在这里插入图片描述
  • images内存储图像数据,labels存储标注数据,文件名称对应相同
  • 设置数据集配置文件如下图
  • train 指定训练集图像路径
  • val 指定验证集图像路径
  • nc 指定目标类别数量 这里为血小板,红细胞,白细胞共3种
  • 目标对应类别名称
    在这里插入图片描述

训练模型

  • 配置项目路径内的train.py的相关参数
  • 配置参数
  • 指定模型文件和数据配置文件
    在这里插入图片描述
  • 指定训练轮数,批量大小和输入图像分辨率
    在这里插入图片描述
    运行train.py
    在这里插入图片描述
  • 训练结束
    在这里插入图片描述
    结果显示,训练300轮此=次共耗时2.05h
    生成的参数大小为14.8MB
    总损失值降低到0.1314
    在46张验证图象上共689个细胞,检测准确率为0.751,召回率高达0.96,IOU阈值为0.5时mAP高达0.947, IOU在0.5-0.95时,平均mAP为0.636
  • 训练结果可视化
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

进行细胞检测

  • 指定训练好的权值文件,检测数据路径,检测结果输出路径
    在这里插入图片描述

  • 指定置信度阈值和IOU阈值
    在这里插入图片描述

  • 更改图形绘制方法
    将检测结果全部保存
    在这里插入图片描述

  • 计算全部检测图像种预测出的各种细胞数量(最后评估计数效果用)
    在这里插入图片描述

  • 计算全部检测图像的真实标注细胞数量(最后评估计数效果用)
    在这里插入图片描述

  • 根据检测结果在原图上绘制标注框且打印计数信息保存到输出路径
    在这里插入图片描述

  • 待检测图像
    在这里插入图片描述

  • 检测结果
    在这里插入图片描述
    在这里插入图片描述

  • 16
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值