智慧农业-棉田昆虫检测数据集】YOLO格式|13类农业检测|3225张高清图片
数据集亮点:
① 3225张棉田昆虫高清图片
② TXT/XML双格式标注,兼容YOLO等主流框架
③ 13类昆虫检测,涵盖害虫与益虫
应用场景
- 虫害监测:实时识别棉铃虫、盲蝽等害虫,及时预警
- 生物防治:统计益虫(瓢虫、草蛉等),优化生态防控策略
- 精准施药:基于虫害分布图,减少农药滥用
数据集规格:
①标注格式:TXT(YOLO格式) + XML(Pascal VOC格式)
②类别标签及中文意思:
0: bee —— 蜂
1: bollworm —— 棉铃虫
2: lacewing —— 草蛉
3: dy —— 多异瓢虫
4: hb —— 横斑瓢虫
5: lbq —— 菱斑巧瓢虫
6: ccc —— 茶翅蝽
7: hsy —— 黑食蚜盲蝽
8: lv —— 绿盲蝽
9: mc —— 牧草盲蝽
10: mx —— 苜蓿盲蝽
11: zh —— 中黑盲蝽
12: syrphid —— 食蚜蝇
③数据划分:
训练集:2257张(70%)
验证集:645张(20%)
测试集:323张(10%)
数据来源:新疆主要棉产区实地拍摄
YOLOv8 训练代码。
📊 棉田昆虫检测数据集规格表
| 属性 | 详细说明 |
|---|---|
| 数据集名称 | 棉田昆虫检测数据集 |
| 图片总数 | 3225 张(高清实拍) |
| 数据来源 | 新疆主要棉产区实地拍摄 |
| 标注格式 | TXT (YOLO) + XML (Pascal VOC) |
| 检测类别 | 13 类(涵盖害虫与益虫) |
| 数据划分 | 训练集 (2257张, 70%)验证集 (645张, 20%)测试集 (323张, 10%) |
🏷️ 类别标签映射表
在模型训练时,请确保class_id与以下中文含义对应:
| ID | 英文标签 | 中文含义 | 生态角色 |
|---|---|---|---|
| 0 | bee | 蜂 | 授粉/益虫 |
| 1 | bollworm | 棉铃虫 | 主要害虫 |
| 2 | lacewing | 草蛉 | 捕食性益虫 |
| 3 | dy | 多异瓢虫 | 捕食性益虫 |
| 4 | hb | 横斑瓢虫 | 捕食性益虫 |
| 5 | lbq | 菱斑巧瓢虫 | 捕食性益虫 |
| 6 | ccc | 茶翅蝽 | 害虫 |
| 7 | hsy | 黑食蚜盲蝽 | 害虫 |
| 8 | lv | 绿盲蝽 | 害虫 |
| 9 | mc | 牧草盲蝽 | 害虫 |
| 10 | mx | 苜蓿盲蝽 | 害虫 |
| 11 | zh | 中黑盲蝽 | 害虫 |
| 12 | syrphid | 食蚜蝇 | 益虫 |
💻 YOLOv8 详细训练代码
为了保证训练的顺利进行,建议先将你的数据集整理成标准的 YOLO 目录结构:
cotton_insect_dataset/ ├── images/ │ ├── train/ (放入2257张训练图) │ ├── val/ (放入645张验证图) │ └── test/ (放入323张测试图) ├── labels/ │ ├── train/ (放入对应的txt标签) │ ├── val/ │ └── test/ └── cotton.yaml <-- 配置文件第一步:创建配置文件cotton.yaml
在代码同级目录下新建此文件,填入以下内容:
path:./cotton_insect_dataset# 数据集根目录路径train:images/trainval:images/valtest:images/testnc:13# 类别数量# 13类昆虫名称,顺序必须与ID严格对应names:['bee','bollworm','lacewing','dy','hb','lbq','ccc','hsy','lv','mc','mx','zh','syrphid']第二步:编写 Python 训练脚本train.py
fromultralyticsimportYOLOdeftrain_cotton_insect_model():# 1. 加载预训练模型# 推荐使用 yolov8n.pt (nano版),速度极快,适合部署在无人机或田间巡检设备上model=YOLO('yolov8n.pt')# 2. 开始训练results=model.train(data='cotton.yaml',# 指定数据配置文件epochs=150,# 训练轮数(棉田背景复杂,建议适当增加轮数)imgsz=640,# 输入图像尺寸batch=16,# 批次大小(根据你的显卡显存调整,如显存不足可改为8)device=0,# 使用GPU设备 (若有多个GPU可写为)workers=4,# 数据加载线程数project='Cotton_Insect_Detect',# 项目保存根目录name='exp_yolov8n_v1',# 实验名称patience=20,# 早停机制:若20轮指标无提升则自动停止optimizer='SGD',# 优化器(SGD在小数据集上通常收敛更稳)# --- 针对棉田场景的数据增强策略 ---hsv_h=0.015,# 色调增强(模拟不同光照下的棉田环境)hsv_s=0.7,# 饱和度增强hsv_v=0.4,# 明度增强degrees=10.0,# 随机旋转角度translate=0.1,# 平移变换scale=0.5,# 缩放增益(应对昆虫远近大小不一的情况)flipud=0.5,# 上下翻转概率(昆虫在叶片正反面均可能出现)fliplr=0.5,# 左右翻转概率mosaic=1.0,# Mosaic数据增强(极大提升小目标检测能力))[[source_group_web_1]]# 3. 验证模型性能 (在验证集上评估)metrics=model.val()print(f"各类别平均精度 mAP50-95:{metrics.box.map}")# 4. 导出模型 (可选,方便后续部署到移动端或边缘设备)# model.export(format='onnx', simplify=True)if__name__=='__main__':train_cotton_insect_model()💡 核心亮点与建议
- 益虫与害虫兼顾:由于数据集中包含了大量瓢虫、草蛉等益虫,训练出的模型可以直接用于生物防治决策。例如,当系统检测到益虫密度较高时,可以推迟或减少农药喷洒,保护田间生态平衡。
- 应对复杂背景:棉田环境通常包含复杂的枝叶遮挡和多变的光照。代码中开启了
mosaic=1.0和较强的色彩空间增强(HSV),这能有效帮助模型识别隐藏在叶片背面或阴影中的微小昆虫(如幼虫期的棉铃虫)。 - 双格式优势:你拥有 TXT 和 XML 双格式,如果后续想尝试 Faster R-CNN 或 SSD 等其他框架,可以直接调用 XML 标注,无需重新转换。
需要我帮你写一份基于训练好的模型进行推理的Python脚本吗?比如输入一张棉田图片,输出检测到的昆虫类别、坐标和置信度。