农业数字化|玉米地田间作物识别数据集|幼苗出苗率|杂草识别|YOLO格式|AI智能农田应用

在智慧农业加速落地的今天,田间作物精准识别、出苗率智能统计、杂草自动化防控已成为提升种植效率与产量的核心环节。传统人工巡检效率低、误差大,而高质量标注数据集与轻量化深度学习模型,正成为破解农田视觉感知“最后一公里”的关键抓手。
在这里插入图片描述


📌 项目概述

本数据集为农业场景专用目标检测数据集,聚焦玉米田间真实环境,面向玉米幼苗识别、出苗率统计、杂草智能检测等核心任务,原生支持YOLO系列模型快速训练与部署,助力农业AI工程化落地。

🧾 数据集核心信息

信息项 详情
任务方向 目标检测(Object Detection)
目标类别 玉米(corn)、杂草(weeds)
数据规模 908张高分辨率田间实拍图像
数据集结构 11个细分子集,覆盖不同光照、长势、杂草类型
数据格式 标准YOLO标注格式,图像为JPG/PNG通用格式
核心价值 支撑出苗率统计、精准除草、智能巡检模型训练

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

✅ 数据集优势

  • 场景纯净:无冗余背景,全为玉米田间真实环境,降低模型干扰
  • 标注规范:严格遵循YOLO标注规范,开箱即用,减少数据预处理成本
  • 细分充分:11个子集覆盖苗期、成株期、稀疏/稠密杂草等多样工况
  • 工程友好:适配YOLOv5/v8/v10/v12等主流框架,支持端侧与云端部署

🧠 深度学习实战代码(玉米-杂草YOLO训练)

# -*- coding: utf-8 -*-
"""
玉米地杂草识别训练脚本 · 农业场景专用
适配本数据集:玉米(corn) + 杂草(weeds)二分类检测
场景经验:农田低对比度、叶片重叠、光照多变
训练策略:小批次、高增强、早停,适配农田小目标特性
"""
from ultralytics import YOLO
import torch

# ====================== 核心配置 ======================
# 数据集配置(对应本数据集目录结构)
DATA_YAML = "maize_weeds.yaml"
# 选用轻量模型,适配无人机/边缘设备部署
MODEL = "yolov8s.pt"
EPOCHS = 150
BATCH_SIZE = 16
IMAGE_SIZE = 640
# 农田场景建议:低置信度+适中IOU,减少漏检
CONF_THRESH = 0.25
IOU_THRESH = 0.45

# ====================== 训练启动 ======================
def train_maize_weeds():
    # 优先使用GPU
    device = 0 if torch.cuda.is_available() else "cpu"
    model = YOLO(MODEL)
    
    # 训练参数(农田数据增强经验值)
    model.train(
        data=DATA_YAML,
        epochs=EPOCHS,
        batch=BATCH_SIZE,
        imgsz=IMAGE_SIZE,
        device=device,
        patience=20,          # 早停,防止过拟合
        cache=True,           # 加速读取
        augment=True,         # 开启增强
        hsv_h=0.015,          # 色调(农田光照鲁棒)
        hsv_s=0.3,            # 饱和度
        hsv_v=0.4,            # 明度
        degrees=10,           # 旋转限制
        perspective=0.001,    # 轻微透视
        flipud=0.1,           # 上下翻转
        fliplr=0.5,           # 左右翻转
        conf=CONF_THRESH,
        iou=IOU_THRESH,
        project="runs/maize_weeds",
        name="yolov8s_maize",
        exist_ok=True
    )

# ====================== 推理验证 ======================
def detect_field_image(model_path, img_path):
    """
    单张田间图像推理:输出玉米/杂草位置与置信度
    """
    model = YOLO(model_path)
    results = model.predict(
        source=img_path,
        conf=CONF_THRESH,
        iou=IOU_THRESH,
        imgsz=IMAGE_SIZE,
        save=True,
        show=False
    )
    # 打印出苗/杂草统计信息
    for result in results:
        boxes = result.boxes
        corn_num = sum(1 for d in boxes.cls if int(d) == 0)
        weed_num = sum(1 for d in boxes.cls if int(d) == 1)
        print(f"🌽 玉米株数: {corn_num} | 🌿 杂草株数: {weed_num}")

if __name__ == "__main__":
    train_maize_weeds()
    # 训练完成后推理
    # detect_field_image("runs/maize_weeds/yolov8s_maize/weights/best.pt", "test.jpg")

📋 配套YAML配置(maize_weeds.yaml)

# 玉米-杂草检测数据集配置 · 对齐本数据集结构
path: ./datasets/adventices-mais  # 数据集根目录
train: images/train               # 训练集路径
val: images/val                   # 验证集路径
test: images/test                 # 测试集(可选)

# 类别定义(与数据集标注完全一致)
nc: 2
names:
  0: corn
  1: weeds

🎯 典型应用场景

  1. 出苗率智能统计:无人机巡田→图像识别→自动计算出苗率→生成田间报表
  2. 精准除草机器人:实时检测杂草→定位喷药/机械除草→省药减损、保护幼苗
  3. 农田监测系统:边缘端轻量化部署,7×24小时监测长势与杂草入侵
  4. 育种辅助评估:批量分析苗期长势,为品种筛选提供客观数据

🔧 环境依赖

# 一键安装依赖
pip install ultralytics opencv-python torch torchvision pillow

📌 使用流程

  1. 下载数据集并解压至datasets/adventices-mais
  2. 配置maize_weeds.yaml路径
  3. 运行训练脚本,自动完成训练与验证
  4. 导出best.pt用于推理、部署、二次开发

📌 标签

#农业数字化 #玉米出苗率 #杂草识别 #YOLO数据集 #目标检测 #智慧农业 #AI农田 #农业智能化 #计算机视觉 #深度学习数据集

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐