无人机航拍向日葵识别数据集|智慧农业作物检测|出苗率监测|YOLO目标检测数据集
·
无人机航拍向日葵识别数据集|智慧农业作物检测|出苗率监测|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"
)
🧪 深度思考与工程优化
- 单类别优势:类别干扰为0,小样本也能高mAP;适合出苗率、株距、长势等细任务
- 数据规模:1459张在农业检测属实用区间,过拟合风险低、训练快、部署友好
- 场景增强:建议加入遮挡/逆光/稀疏地块扩充,提升田间泛化
- 出苗率 pipeline:检测计数 → 面积归一化 → 亩均株数 → 出苗率/整齐度评估
- 部署方向:导出ONNX/TensorRT,适配无人机端侧/边缘盒子,实现实时巡检
📌 适用场景
- 智慧农业:无人机自动巡检、出苗率快速统计、长势监测
- 算法研发:单类别检测基线、小样本学习、轻量化模型蒸馏
- 科研教学:作物识别数据集、目标检测实践、农业AI案例
- 工程落地:农机导航、精准喷药、产量预估
📎 标签
#无人机航拍 #智慧农业 #农作物检测 #向日葵识别 #出苗率计算 #YOLO数据集 #目标检测 #农业数字化 #AI农业 #计算机视觉 #开源数据集 #UAV遥感
更多推荐




所有评论(0)