无人机航拍向日葵识别数据集|智慧农业作物检测|出苗率监测|YOLO目标检测数据集

传统农业靠人工巡检向日葵出苗、长势与分布,效率低、误差大、成本高;无人机航拍+AI视觉正重构田间监测范式,单类别精准数据集成为算法落地关键——本数据集专为向日葵视觉检测打造,助力出苗统计、长势评估、产量预估等智慧农业场景快速落地。
在这里插入图片描述


📖 项目简介

Sunflower-UAV-Detection 是面向智慧农业的无人机航拍单类别目标检测数据集,聚焦向日葵植株精准识别与出苗率量化分析,适配YOLO系列、Faster-RCNN、RetinaNet等主流检测框架,用于作物识别、生长监测、田间巡检、数字化管理等工程与科研场景。
在这里插入图片描述
在这里插入图片描述

🎯 核心亮点

  • 单类别精准标注:仅向日葵(Tournesol),无类别干扰,标注纯度高、训练收敛快
  • 航拍实景覆盖:农田复杂背景,光照/遮挡/密度差异大,泛化能力强
  • 规模适中:有效避免过拟合,兼顾训练效果与存储/算力成本
  • 开箱即用:兼容YOLO格式,直接对接训练脚本,快速启动模型迭代

📊 数据集详情

信息项 详细说明
任务类型 计算机视觉·目标检测
目标类别 向日葵(Tournesol),单类别
图像总量 1459张无人机航拍图
数据格式 JPG/PNG,支持YOLO标注
适用场景 出苗率统计、植株计数、长势监测、分布测绘、智慧巡检
配套能力 无预训练模型,可直接训练自定义权重

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

📁 目录结构

Sunflower-UAV-Detection/
├── images/          # 原始航拍图像
│   ├── train/       # 训练集
│   └── val/         # 验证集
├── labels/          # YOLO格式标注文件
│   ├── train/
│   └── val/
├── data.yaml        # 数据集配置文件
├── train.py         # 训练脚本
├── inference.py     # 推理脚本
└── README.md

🔧 快速开始(YOLOv8实战代码)

1. 环境安装

# 安装核心依赖
pip install ultralytics opencv-python torch

2. 数据集配置(data.yaml)

# 向日葵无人机检测配置 - 单类别精准训练
path: ./Sunflower-UAV-Detection  # 数据集根路径
train: images/train              # 训练图像路径
val: images/val                  # 验证图像路径
nc: 1                            # 类别数=向日葵
names: ['Tournesol']             # 类别名称

3. 模型训练脚本(train.py)

from ultralytics import YOLO
import torch

def train_sunflower_model():
    """
    【智慧农业-向日葵检测】训练注释
    场景:无人机航拍、田间复杂背景、单类别高召回
    策略:用YOLOv8s平衡速度与精度;imgsz=640适配航拍分辨率;
          单类别无需多分类Loss,聚焦定位与置信度
    """
    # 加载轻量预训练模型,适配农业边缘部署
    model = YOLO("yolov8s.pt")
    # 启动训练:100轮确保收敛,批次16,图像640,单类别加速收敛
    model.train(
        data="data.yaml",
        epochs=100,
        imgsz=640,
        batch=16,
        device=0 if torch.cuda.is_available() else "cpu",
        patience=10,  # 早停防止过拟合
        save=True     # 保存最优权重
    )

if __name__ == "__main__":
    train_sunflower_model()

4. 出苗率推理与计数(inference.py)

from ultralytics import YOLO
import cv2
import os

def calculate_emergence_rate(model_path, img_dir, area_per_img=1.0):
    """
    【出苗率计算核心函数】农业场景专用
    输入:模型路径、航拍图目录、单图覆盖面积(亩)
    输出:单图株数、全局平均密度、出苗率估算
    """
    model = YOLO(model_path)
    total_count = 0
    img_count = len([f for f in os.listdir(img_dir) if f.endswith(('jpg','png'))])

    for img_name in os.listdir(img_dir):
        img_path = os.path.join(img_dir, img_name)
        img = cv2.imread(img_path)
        # 置信度0.25,IOU0.45,农业遮挡场景保召回
        results = model(img, conf=0.25, iou=0.45)
        # 统计当前图向日葵数量
        count = len(results[0].boxes)
        total_count += count
        # 绘制检测框与计数
        for box in results[0].boxes:
            x1,y1,x2,y2 = map(int, box.xyxy[0])
            cv2.rectangle(img,(x1,y1),(x2,y2),(0,255,0),2)
        cv2.putText(img,f"Count:{count}",(20,50),cv2.FONT_HERSHEY_SIMPLEX,1.5,(0,0,255),3)
        cv2.imwrite(f"output/{img_name}", img)

    avg_density = total_count / (img_count * area_per_img)
    print(f"总株数:{total_count}")
    print(f"平均密度:{avg_density:.1f} 株/亩")
    return total_count, avg_density

if __name__ == "__main__":
    calculate_emergence_rate(
        model_path="runs/train/weights/best.pt",
        img_dir="images/val"
    )

🧪 深度思考与工程优化

  1. 单类别优势:类别干扰为0,小样本也能高mAP;适合出苗率、株距、长势等细任务
  2. 数据规模:1459张在农业检测属实用区间,过拟合风险低、训练快、部署友好
  3. 场景增强:建议加入遮挡/逆光/稀疏地块扩充,提升田间泛化
  4. 出苗率 pipeline:检测计数 → 面积归一化 → 亩均株数 → 出苗率/整齐度评估
  5. 部署方向:导出ONNX/TensorRT,适配无人机端侧/边缘盒子,实现实时巡检

📌 适用场景

  • 智慧农业:无人机自动巡检、出苗率快速统计、长势监测
  • 算法研发:单类别检测基线、小样本学习、轻量化模型蒸馏
  • 科研教学:作物识别数据集、目标检测实践、农业AI案例
  • 工程落地:农机导航、精准喷药、产量预估

📎 标签

#无人机航拍 #智慧农业 #农作物检测 #向日葵识别 #出苗率计算 #YOLO数据集 #目标检测 #农业数字化 #AI农业 #计算机视觉 #开源数据集 #UAV遥感


Logo

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

更多推荐