带标注的番茄西红柿疾病(黑白图)识别数据集,识别率88.4%,可识别健康叶和7种常见病害,2982张图,支持yolo,coco json,voc xml,文末有模型训练代码
带标注的番茄西红柿疾病(黑白图)识别数据集,识别率88.4%,可识别健康叶和7种常见病害,2982张图,支持yolo,coco json,voc xml,文末有模型训练代码
模型训练指标参数:
数据集拆分
总图数:2982 张图数
训练集
2610 张图
验证集
248 张图
测试集
124 张图
预处理
自动定向:应用
调整大小:拉伸到640x640
增强
单个训练样本生成输出:3 份
翻转方式:水平翻转
旋转角度:-11° ~ +11°
错切变换:水平 ±10°、垂直 ±10°
噪声:最多对 0.1% 的像素添加噪声
数据集标签:
[‘disease’, ‘Healthy’, ‘Early_blight’, ‘Pottasium_deficiency’, ‘Leaf_miner’, ‘\’, ‘Late_blight’, ‘Nitrogen_deficiency’, ‘Spotted_Wilt virus’, ‘Magnesium_deficiency’]
标签解释
Early_blight:早疫病(真菌病害,多见于番茄、马铃薯)
Healthy:健康(植株 / 叶片)
Late_blight:晚疫病(高危真菌病害,马铃薯、番茄典型病害)
Leaf_miner:潜叶蝇(虫害,幼虫潜入叶内啃食叶肉)
Magnesium_deficiency:缺镁症(作物营养缺失)
Nitrogen_deficiency:缺氮症(作物营养缺失)
Pottasium_deficiency:拼写修正:Potassium_deficiency,缺钾症(作物营养缺失)
Spotted_Wilt virus:斑萎病毒(业内常称番茄斑萎病毒,缩写 TSWV,病毒性病害)
数据集图片和标注信息示例:
数据集下载:
yolo26:https://download.csdn.net/download/pbymw8iwm/92920672
yolo v12:https://download.csdn.net/download/pbymw8iwm/92920675
yolo v11:https://download.csdn.net/download/pbymw8iwm/92920673
yolo v9:https://download.csdn.net/download/pbymw8iwm/92920671
yolo v8:https://download.csdn.net/download/pbymw8iwm/92920669
yolo v7:https://download.csdn.net/download/pbymw8iwm/92920670
coco json:https://download.csdn.net/download/pbymw8iwm/92920674
pascal voc xml:https://download.csdn.net/download/pbymw8iwm/92920668
YOLO模型训练
下载数据集之后解压到当前文件夹,然后将 我的仓库 https://gitcode.com/pbymw8iwm/YOLOProject 里的训练模型脚本复制到文件夹下,假设你使用的是yolov8来训练你就用python train_yolov8.py
模糊图片在模型训练中的优势分析
该数据集中包含了如果包含了一些模糊图片,这并非数据缺陷,而是一种精心设计的数据增强策略,能为模型训练带来以下显著优势:
- 提升模型鲁棒性:现实场景中,可能发生在运动模糊,对焦不准或光线不足的情况下。在训练集中引入模糊样本,可以迫使模型学习更本质的特征,而不是过度依赖清晰的边缘或纹理细节,从而提升模型在复杂、非理想成像条件下的识别能力。
- 模拟真实世界噪声:监控摄像头、手机等设备在低光照或快速移动时极易产生模糊。包含此类图片的数据集能让模型提前“见识”并适应这种噪声,减少在实际部署时因图像质量下降而导致的性能骤降。
- 防止模型过拟合:如果训练集全是高清、摆拍的完美图片,模型容易记住这些特定场景下的“干净”特征,而对新的、稍有模糊的图片泛化能力差。模糊图片作为一种有效的正则化手段,可以增加数据分布的多样性,防止模型过拟合到有限的清晰样本上。
总结:因此,数据集中包含的模糊图片,与你看到的“水平翻转”、“剪切形变”、“随机遮挡”等增强操作一样,都是为了构建一个更接近真实世界复杂分布的数据环境,从而训练出更健壮、更泛化、更实用的模型。
模型验证测试情况:
验证测试代码:
#需要安装pip install ultralyticsfromultralyticsimportYOLOimportcv2# ===================== 1. 加载YOLO模型 =====================# 自动下载预训练模型(yolov8n最轻量快速),也可换 yolov8s/m/l/xmodel=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)# 遍历所有检测目标foridx,resultinenumerate(results):boxes=result.boxes# 所有检测框forboxinboxes:# ========== 提取目标区域(坐标) ==========# xyxy: 左上角x, 左上角y, 右下角x, 右下角yx1,y1,x2,y2=box.xyxy[0].cpu().numpy()# 宽高w=x2-x1 h=y2-y1# ========== 提取标注信息 ==========cls_id=int(box.cls[0])# 类别IDcls_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. 保存/显示结果 =====================ifsave_result:cv2.imwrite("yolo_result.jpg",img)print("✅ 标注图片已保存为:yolo_result.jpg")# 显示图片(可选)cv2.imshow("YOLO Result",img)#cv2.waitKey(0)#cv2.destroyAllWindows()推理结果:
{
“predictions”: [
{
“x”: 128,
“y”: 125,
“width”: 150,
“height”: 96,
“confidence”: 0.789,
“class”: “Spotted_Wilt virus”,
“class_id”: 7,
“detection_id”: “aa22993f-44aa-4982-884d-ffc11da2979a”
}
]
}
