欢迎光临
我们一直在努力

带标注的药片缺陷瑕疵数据集,可识别4种缺陷,识别率99.3%,2375张图,支持yolo,coco json,voc xml,文末有模型训练代码

​ 带标注的药片缺陷瑕疵数据集,可识别4种缺陷,识别率99.3%,2375张图,支持yolo,coco json,voc xml,文末有模型训练代码

模型训练指标参数:

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

模型训练图:

在这里插入图片描述

数据集拆分

总图数:2375 张图数 训练集

2355 张图

验证集

11 张图

测试集

9 张图

预处理

自动定向:应用

调整大小:拉伸到720×720

增强

每个训练样本输出图像数量:3 张 90 度旋转:顺时针、逆时针、上下倒置(180° 翻转) 灰度化处理:随机对 15% 的图像生效 饱和度调节:浮动范围 -26% ~ +26% 曝光度调节:浮动范围 -8% ~ +8% 模糊处理:最大模糊半径 1.5 像素

数据集标签:

[‘broken’, ‘cracked’, ‘strip’, ‘missing’]

标签解释 broken:破损、碎裂(整体发生断裂损毁) cracked:开裂、存在裂纹(细微裂缝类瑕疵) strip:条状瑕疵、条痕(长条状缺陷 / 缺损) missing:缺失、缺件、缺料(部件 / 材质缺损)

数据集图片和标注信息示例:

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据集下载:

yolo26,yolo v12,yolo v11,yolo v9,yolo v8,yolo v7,coco json,pascal voc xml: https://download.csdn.net/download/pbymw8iwm/93022407

YOLO模型训练

下载数据集之后解压到当前文件夹,然后将 我的仓库 https://gitcode.com/pbymw8iwm/YOLOProject 里的训练模型脚本复制到文件夹下,假设你使用的是yolov8来训练你就用python train_yolov8.py ​​在这里插入图片描述

模糊图片在模型训练中的优势分析

该数据集中包含了如果包含了一些模糊图片,这并非数据缺陷,而是一种精心设计的数据增强策略,能为模型训练带来以下显著优势:

  • 提升模型鲁棒性:现实场景中,可能发生在运动模糊,对焦不准或光线不足的情况下。在训练集中引入模糊样本,可以迫使模型学习更本质的特征,而不是过度依赖清晰的边缘或纹理细节,从而提升模型在复杂、非理想成像条件下的识别能力。
  • 模拟真实世界噪声:监控摄像头、手机等设备在低光照或快速移动时极易产生模糊。包含此类图片的数据集能让模型提前“见识”并适应这种噪声,减少在实际部署时因图像质量下降而导致的性能骤降。
  • 防止模型过拟合:如果训练集全是高清、摆拍的完美图片,模型容易记住这些特定场景下的“干净”特征,而对新的、稍有模糊的图片泛化能力差。模糊图片作为一种有效的正则化手段,可以增加数据分布的多样性,防止模型过拟合到有限的清晰样本上。 总结:因此,数据集中包含的模糊图片,与你看到的“水平翻转”、“剪切形变”、“随机遮挡”等增强操作一样,都是为了构建一个更接近真实世界复杂分布的数据环境,从而训练出更健壮、更泛化、更实用的模型。
  • 模型验证测试情况:

    验证测试代码:

    #需要安装pip install ultralytics
    from ultralytics import YOLO
    import cv2

    # ===================== 1. 加载YOLO模型 =====================
    # 自动下载预训练模型(yolov8n最轻量快速),也可换 yolov8s/m/l/x
    model = YOLO("best.pt")
    # ===================== 2. 推理配置 =====================
    image_path = "326_jpg.rf.8ad64cc0668df32c4e5f59b50e899e9c.jpg" # 你的图片路径
    save_result = True # 是否保存标注后的图
    # ===================== 3. 执行推理 =====================
    results = model.predict(
    source=image_path,
    conf=0.01, # 置信度阈值(低于该值忽略)
    save=False, # 关闭默认保存,自定义保存
    verbose=False # 关闭冗余日志
    )

    # ===================== 4. 解析结果:目标区域 + 标注信息 =====================
    print("="*50)
    print("YOLO 推理结果(目标区域 + 标注信息)")
    print("="*50)

    # 获取图片(用于绘制框)
    img = cv2.imread(image_path)

    # 遍历所有检测目标
    for idx, result in enumerate(results):
    boxes = result.boxes # 所有检测框

    for box in boxes:
    # ========== 提取目标区域(坐标) ==========
    # xyxy: 左上角x, 左上角y, 右下角x, 右下角y
    x1, y1, x2, y2 = box.xyxy[0].cpu().numpy()
    # 宽高
    w = x2 x1
    h = y2 y1

    # ========== 提取标注信息 ==========
    cls_id = int(box.cls[0]) # 类别ID
    cls_name = model.names[cls_id] # 类别名称
    conf = float(box.conf[0]) # 置信度

    # ========== 打印信息 ==========
    print(f"目标 {idx+1}:")
    print(f" 标注类别:{cls_name}")
    print(f" 置信度:{conf:.2f}")
    print(f" 目标区域坐标:")
    print(f" 左上角 ({x1:.1f}, {y1:.1f})")
    print(f" 右下角 ({x2:.1f}, {y2:.1f})")
    print(f" 宽×高:{w:.1f} × {h:.1f}")
    print("-"*30)

    # ========== 在图片上绘制检测框 ==========
    cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
    cv2.putText(img, f"{cls_name} {conf:.2f}",
    (int(x1), int(y1)10),
    cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

    # ===================== 5. 保存/显示结果 =====================
    if save_result:
    cv2.imwrite("yolo_result.jpg", img)
    print("✅ 标注图片已保存为:yolo_result.jpg")

    # 显示图片(可选)
    cv2.imshow("YOLO Result", img)
    #cv2.waitKey(0)
    #cv2.destroyAllWindows()

    赞(0)
    未经允许不得转载:171主机测评 » 带标注的药片缺陷瑕疵数据集,可识别4种缺陷,识别率99.3%,2375张图,支持yolo,coco json,voc xml,文末有模型训练代码
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址