基于 YOLOv8 深度学习的农作物检测系统一、项目概述本项目是一个基于YOLOv8深度学习框架的农作物与杂草目标检测系统采用PyQt5构建图形化交互界面能够对图片、视频流以及摄像头实时画面中的农作物和杂草进行快速、精准的识别与定位。系统支持单张检测、批量检测、视频检测、摄像头实时检测以及检测结果保存等多种功能适用于智慧农业场景下的作物识别与杂草监测需求。二、数据集介绍2.1 数据来源与规模本项目使用的数据集为CWCCommon Weed and Crop数据集共包含2750 张高质量农作物与杂草图像图像分辨率约为800×600像素。数据集按照8:2:0.5的比例划分为训练集、验证集和测试集数据集数量路径训练集Train2200 张CWC dataset/YOLO_txt/train/images验证集Val440 张CWC dataset/YOLO_txt/val/images测试集Test110 张CWC dataset/YOLO_txt/test/images数据集同时提供了VOC XML和YOLO TXT两种标注格式方便适配不同的检测框架。2.2 识别类别数据集涵盖11 种农作物与杂草类别兼顾常见经济作物与田间杂草具体类别如下编号英文名称中文名称类别类型0bluegrass蓝草杂草1chenopodium_album藜麦藜杂草2cirsium_setosum菊苣刺儿菜杂草3corn玉米农作物4sedge莎草杂草5cotton棉花农作物6nightshade茄龙葵杂草7tomato番茄农作物8velvet天鹅绒苘麻杂草9lettuce生菜农作物10radish萝卜农作物其中农作物5 类玉米、棉花、番茄、生菜、萝卜杂草6 类蓝草、藜、菊苣、莎草、茄、天鹅绒覆盖了农业生产中常见的作物与杂草种类。三、模型训练配置系统基于YOLOv8nNano 版本预训练模型进行迁移学习训练参数配置如下参数配置值模型架构YOLOv8n训练轮数Epochs200批次大小Batch Size8输入图像尺寸640×640优化器SGD初始学习率0.01最终学习率因子0.01动量Momentum0.937权重衰减0.0005IOU 阈值0.7数据增强Mosaic、FlipLR、Random Scale、HSV 变换等早停策略Patience 100训练过程中采用了丰富的数据增强策略包括 Mosaic 数据增强概率 1.0、水平翻转概率 0.5、随机缩放0.5、HSV 颜色空间变换等有效提升了模型的泛化能力。四、系统技术架构4.1 技术栈组件技术版本编程语言Python3.8深度学习框架PyTorch1.9.0目标检测框架Ultralytics YOLO8.0.199图像处理OpenCV4.8.1.78GUI 框架PyQt55.15.2科学计算NumPy / SciPy1.26.1 / 1.11.3可视化Matplotlib / Seaborn3.8.0 / 0.13.04.2 核心模块MainProgram.py主程序入口基于 PyQt5 构建 GUI 界面集成模型加载、推理、结果展示等核心逻辑。Config.py全局配置文件定义模型路径、类别名称中英文、保存路径等参数。detect_tools.py检测工具模块封装图像读取、坐标转换、绘制标注框、颜色管理等通用功能。UIProgram/界面设计模块包含 Qt Designer 设计的 UI 文件、QSS 样式表、进度条组件等。五、系统功能与界面展示5.1 系统主界面系统启动后呈现绿色主题风格的主界面布局清晰、功能分区明确顶部标题栏显示基于 YOLOv8 深度学习的农作物检测系统。左侧显示区域用于展示检测图像及标注结果下方为检测结果与位置信息表格。右侧控制面板包含文件导入、检测结果、目标位置、操作等四个功能区。图1系统初始界面左侧显示 AI 芯片图标右侧为文件导入与参数调节面板下方为检测结果表格。5.2 功能模块1文件导入图片检测支持.jpg、.jpeg、.png格式图片的单张检测。视频检测支持.avi、.mp4格式视频的逐帧检测与结果保存。摄像头实时检测支持调用本地摄像头进行实时目标检测。批量检测支持选择文件夹对其中所有图片进行批量检测。2参数调节置信度阈值Confidence滑动条调节默认 0.25范围 0~1。IOU 阈值滑动条调节默认 0.45范围 0~1。3检测结果展示实时显示检测用时和目标数目。支持通过下拉框选择单个目标查看其详细信息。显示每个目标的置信度和边界框坐标xmin、ymin、xmax、ymax。检测结果表格包含序号、文件路径、类别中文、置信度、坐标位置。4结果保存图片检测结果可保存为带标注的图片文件。视频检测结果可保存为.avi格式视频带进度条显示处理进度。批量检测结果自动保存到save_data目录。5.3 检测效果展示以棉花cotton图片检测为例系统成功识别出图像中的棉花植株检测结果如下识别类别棉花cotton置信度94.30%检测用时0.043 秒目标数目1边界框坐标[0, 162, 599, 505]图2棉花检测效果系统以粉色标注框精准定位棉花植株置信度高达 94.30%检测用时仅 0.043 秒体现了 YOLOv8 模型的高效推理能力。六、项目结构CWCDetection/ ├── CWC dataset/ # 数据集目录 │ ── CWC dataset/ │ ├── VOC_xml/ # VOC 格式标注XML │ │ ├── Annotations/ # 标注文件2750个 │ │ ├── ImageSets/Main/ # 数据集划分 │ │ └── JPEGImages/ # 原始图像2750张 │ ── YOLO_txt/ # YOLO 格式标注TXT │ ├── train/ # 训练集 │ ├── val/ # 验证集 │ ├── test/ # 测试集 │ └── data.yaml # 数据配置文件 ├── models/ # 训练好的模型权重 │ └── Common-Weed-and-Crop.pt ├── 农作物模型/ # 训练过程输出曲线、混淆矩阵等 ├── UIProgram/ # GUI 界面模块 │ ├── UiMain.py / UiMain.ui # 主界面 │ ├── QssLoader.py # QSS 样式加载器 │ ├── precess_bar.py # 进度条组件 │ ── style.css # 界面样式表 ── Font/ # 中文字体文件 ├── MainProgram.py # 主程序入口 ├── Config.py # 全局配置 ├── detect_tools.py # 检测工具函数 ├── train.py # 训练脚本 ├── requirements.txt # 依赖清单 └── setup.py # 安装配置七、总结与展望本项目基于 YOLOv8 深度学习框架构建了一套功能完善的农作物与杂草检测系统。系统具备以下特点高精度检测基于 2750 张图像、11 个类别的数据集训练模型对各类农作物和杂草均具有良好的识别能力。实时推理YOLOv8n 轻量级模型在单张图片上的推理时间仅为0.043 秒满足实时检测需求。友好交互PyQt5 图形界面设计简洁直观支持图片、视频、摄像头、批量等多种检测模式。灵活配置置信度和 IOU 阈值可通过滑动条实时调节方便用户根据场景需求优化检测效果。未来可进一步扩展的方向包括引入更多农作物与杂草类别扩大数据集规模。部署到边缘设备如 Jetson Nano实现田间实时检测。结合 GIS 系统实现作物分布的可视化地图展示。增加模型对比实验YOLOv5/v7/v8分析不同架构的检测性能差异。八、代码下载路径有训练代码和训练好的模型以及训练过程提供数据提供GUI界面代码项目完整文件下载请见演示与介绍视频的简介处给出➷➷➷https://www.bilibili.com/video/BV16JaS6sEGj/