航拍农田杂草检测数据集-1.2k张航拍图像
- 航拍农田杂草检测数据集介绍
- 航拍农田杂草检测数据集-1.2k张航拍图像
-
- [📦 1. 环境配置](#📦 1. 环境配置 "#_1__39")
- [安装 YOLOv8 官方库 ultralytics](#安装 YOLOv8 官方库 ultralytics "#_YOLOv8__ultralytics_48")
-
- [📁 2. 数据准备](#📁 2. 数据准备 "#_2__52")
-
- [2.1 数据标注格式(YOLO)](#2.1 数据标注格式(YOLO) "#21_YOLO_53")
- [2.2 文件结构示例](#2.2 文件结构示例 "#22__62")
- [2.3 创建 data.yaml 配置文件](#2.3 创建 data.yaml 配置文件 "#23__datayaml__72")
- [🚀 3. 模型训练](#🚀 3. 模型训练 "#_3__81")
- [📈 4. 模型验证与测试](#📈 4. 模型验证与测试 "#_4__120")
- [🧠 5. 自定义推理脚本(Python)](#🧠 5. 自定义推理脚本(Python) "#_5_Python_180")
- [🛠 6. 部署建议](#🛠 6. 部署建议 "#_6__195")

航拍农田杂草检测数据集介绍
数据集概述
是一个用于计算机视觉项目的航拍图像数据集,专注于农田中作物与杂草的检测。
核心特点
数据集基本信息
数据量:1.2k张航拍图像
标注类型:对象检测(Object Detection)
使用模型:YOLOv5
类别:2类(crop作物和weed杂草)
数据集特点
航拍视角:所有图像均为农田的航拍视角,提供了独特的观察角度
专业标注:杂草区域使用粉色标记点进行标注
数据集应用
该数据集非常适合用于:
农业自动化研究
杂草检测算法开发
计算机视觉模型泛化能力测试
精准农业技术开发
航拍农田杂草检测数据集-1.2k张航拍图像
本教程介绍如何使用 YOLOv8 对航拍农田杂草等目标进行识别与检测。涵盖环境配置、数据准备、训练模型、模型推理和部署等全过程。
📦 1. 环境配置
建议使用 Python 3.8+,并确保支持 CUDA 的 GPU 环境。
bash
# 创建并激活虚拟环境(可选)
python -m venv yolov8_env
source yolov8_env/bin/activate # Windows 用户使用 yolov8_env\Scripts\activate
AI写代码bash
123
安装 YOLOv8 官方库 ultralytics
pip install ultralytics
AI写代码bash
1
📁 2. 数据准备
2.1 数据标注格式(YOLO)
每张图像对应一个 .txt 文件,每行代表一个目标,格式如下:
xml
<class_id> <x_center> <y_center> <width> <height>
AI写代码plaintext
1
所有值为相对比例(0~1)。
类别编号从 0 开始。
2.2 文件结构示例
kotlin
datasets/
├── images/
│ ├── train/
│ └── val/
├── labels/
│ ├── train/
│ └── val/
AI写代码plaintext
1234567
2.3 创建 data.yaml 配置文件
bash
path: ./datasets
train: images/train
val: images/val
nc: 11
names: ['Bent_Insulator', 'Broken_Insulator_Cap', '', ...]
AI写代码yaml
123456
🚀 3. 模型训练
YOLOv8 提供多种模型:yolov8n, yolov8s, yolov8m, yolov8l, yolov8x。可根据设备性能选择。
ini
yolo detect train \
model=yolov8s.pt \
data=./data.yaml \
imgsz=640 \
epochs=50 \
batch=16 \
project=weed_detection \
name=yolov8s_crop_weed
AI写代码bash
12345678
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
model |
字符串 | - | 指定基础模型架构文件或预训练权重文件路径(.pt /.yaml ) |
data |
字符串 | - | 数据集配置文件路径(YAML 格式),包含训练/验证路径和类别定义 |
imgsz |
整数 | 640 | 输入图像的尺寸(像素),推荐正方形尺寸(如 640x640) |
epochs |
整数 | 100 | 训练总轮次,50 表示整个数据集会被迭代 50 次 |
batch |
整数 | 16 | 每个批次的样本数量,值越大需要越多显存 |
project |
字符串 | - | 项目根目录名称,所有输出文件(权重/日志等)将保存在此目录下 |
name |
字符串 | - | 实验名称,用于在项目目录下创建子文件夹存放本次训练结果 |
关键参数补充说明:
-
model=yolov8s.pt
- 使用预训练的 YOLOv8 small 版本(平衡速度与精度)
- 可用选项:
yolov8n.pt
(nano)/yolov8m.pt
(medium)/yolov8l.pt
(large)
-
data=./data.yaml
yaml# 典型 data.yaml 结构示例 path: ../datasets/weeds train: images/train val: images/val names: 0: Bent_Insulator 1: Broken_Insulator_Cap 2: ... 3: ... AI写代码yaml 123456789
📈 4. 模型验证与测试
4.1 验证模型性能
ini
yolo detect val \
model=runs/detect/yolov8s_crop_weed/weights/best.pt \
data=./data.yaml
AI写代码bash
123
参数 | 类型 | 必需 | 说明 |
---|---|---|---|
model |
字符串 | 是 | 要验证的模型权重路径(通常为训练生成的 best.pt 或 last.pt ) |
data |
字符串 | 是 | 与训练时相同的 YAML 配置文件路径,需包含验证集路径和类别定义 |
关键参数详解
-
model=runs/detect/yolov8s_crop_weed/weights/best.pt
-
使用训练过程中在验证集表现最好的模型权重(
best.pt
) -
替代选项:
last.pt
(最终epoch的权重) -
路径结构说明:
bashruns/detect/ └── [训练任务名称]/ └── weights/ ├── best.pt # 验证指标最优的模型 └── last.pt # 最后一个epoch的模型 AI写代码 12345
-
-
data=./data.yaml
-
必须与训练时使用的配置文件一致
-
确保验证集路径正确:
yamlval: images/val # 验证集图片路径 names: 0: crop 1: weed AI写代码yaml 1234
-
常用可选参数
参数 | 示例值 | 作用 |
---|---|---|
batch |
16 | 验证时的批次大小 |
imgsz |
640 | 输入图像尺寸(需与训练一致) |
conf |
0.25 | 置信度阈值(0-1) |
iou |
0.7 | NMS的IoU阈值 |
device |
0/cpu | 选择计算设备 |
save_json |
True | 保存结果为JSON文件 |
典型输出指标
css
Class Images Instances P R mAP50 mAP50-95
all 100 752 0.891 0.867 0.904 0.672
crop 100 412 0.912 0.901 0.927 0.701
weed 100 340 0.870 0.833 0.881 0.643
AI写代码text
1234
4.2 推理测试图像
ini
yolo detect predict \
model=runs/detect/yolov8s_crop_weed/weights/best.pt \
source=./datasets/images/val \
save=True
AI写代码bash
1234
🧠 5. 自定义推理脚本(Python)
ini
from ultralytics import YOLO
import cv2
# 加载模型
model = YOLO('runs/detect/yolov8s_crop_weed/weights/best.pt')
# 推理图像
results = model('test.jpg')
# 可视化并保存结果
results[0].show()
results[0].save(filename='result.jpg')
AI写代码python
运行
123456789101112
🛠 6. 部署建议
✅ 本地运行:通过 Python 脚本直接推理。
🌐 Web API:可用 Flask/FastAPI 搭建检测接口。
📦 边缘部署:YOLOv8 支持导出为 ONNX,便于在 Jetson、RKNN 等平台上部署。
导出示例:
ini
yolo export model=best.pt format=onnx
AI写代码bash
1
📌 总结流程
阶段 | 内容 |
---|---|
✅ 环境配置 | 安装 ultralytics, PyTorch 等依赖 |
✅ 数据准备 | 标注图片、组织数据集结构、配置 YAML |
✅ 模型训练 | 使用命令行开始训练 YOLOv8 模型 |
✅ 验证评估 | 检查模型准确率、mAP 等性能指标 |
✅ 推理测试 | 运行模型检测实际图像目标 |
✅ 高级部署 | 导出模型,部署到 Web 或边缘设备 |