当前位置: 首页 > news >正文

YOLOWeeds: 用于棉花生产系统中多类杂草检测的 YOLO 目标检测器的新基准

YOLOWeeds: A novel benchmark of YOLO object detectors for multi-class weed detection in cotton production systems

  • 摘要
  • 1、介绍
  • 2、总结

摘要

过度依赖除草剂控制杂草,加速了杂草的抗除草剂进化,引起了对环境、食品安全和人类健康的日益关注。自动化/机器人除草的机器视觉系统在实现综合的、可持续的除草管理方面得到了越来越多的关注。然而,在非结构化的田间环境和杂草生物多样性显著的情况下,开发可靠的杂草识别和检测系统仍然是一个严峻的挑战。解决这一挑战的一个很有前途的解决方案是,开发适合于种植系统的大规模、带有注释的杂草图像数据集,以及用于杂草检测的数据驱动AI(人工智能)模型。在各种深度学习架构中,各种各样的YOLO (You Only Look Once)检测器非常适合于实时应用,并且在通用目标检测方面非常流行。这项研究提供了一个新的数据集(CottoWeedDet12),其中包括对美国南部棉花生产至关重要的杂草。它包括12个杂草类的5648幅图像,共9370个边界框注释,收集了自然光条件下和棉花田不同杂草生长阶段的图像。所有的YOLO模型,特别是YOLOv5n和YOLOv5s,在杂草实时检测方面显示了巨大的潜力,数据增强可以提高杂草检测的准确性。

1、介绍

影响杂草识别性能的主要因素有两个,即用于模型训练的图像数据的大小和质量,以及杂草识别算法。
大规模标注图像数据是保证计算机视觉算法性能的关键。在精准农业中,缺乏大规模、高质量的标注数据集仍然是充分利用深度学习算法(Lu和Young, 2020)开发鲁棒机器视觉系统的关键瓶颈。对于杂草识别,良好的数据集应该提供有关杂草物种、环境条件(如光照条件、土壤类型)和与生长阶段相关的形态或生理变化的充分表征。除了需要杂草识别领域的专业知识外,准备这样的数据集是出了名的耗时和昂贵。
最近开展了一些研究,开发用于杂草控制的图像数据集(Lu和Young, 2020),如DeepWeeds (Olsen等人,2019)、早期作物杂草数据集(espejoo - garcia等人,2020)、Hedge bindweed (Gao等人,2020)、CottonWeedID15 (Chen等人,2022)、Eden图书馆(Mylonas等人,2019)、2022年)和杂草人工智能(https://weed-ai.sydney.edu.au/)。到目前为止,据我们所知,只有CottonWeedID15 (Chen et al., 2022)致力于识别棉花生产系统特有的杂草。
同时,在杂草检测的图像处理/分析技术上已经做了大量的研究(Wang等人,2019;Meyer和Neto, 2008年;Wu等人,2021)。人们提出了各种强调植物绿色的颜色指数,以增强对土壤背景杂草的描述和分割(Meyer和Neto, 2008;Woebbecke等人,1995)。其中大多数算法虽然易于计算,但对各种成像条件并不鲁棒,特别是在处理可变自然场光条件下获得的图像时(Hamuda等,2016;Bawden等人,2017;陆等,2022)。最近,基于深度学习(DL)算法的数据驱动方法,特别是卷积神经网络(CNNs),已被用于杂草检测(Hasan et al., 2021)。在大规模数据集的支持下,训练有素的DL模型可以对生物变异和成像条件具有鲁棒性,同时实现令人满意的分类或检测精度(Chen等人,2022;Olsen等人,2019年;Suh等人,2018)。经过训练的DL模型可以部署在专用的计算硬件上(如NVIDIA Jetson AGX Xavier模块),并与机器人平台相结合,实现实时杂草识别(Du等人,2021;奥尔森等人,2019)。
杂草识别的任务,分为三个基本类别:1)将图像归类为作物/杂草,2)在图像中检测或定位杂草,3)将图像分割成语义杂草特征图,分别对应计算机视觉中的三个基本问题,即图像分类、目标检测和语义分割。DL方法最常用于训练杂草分类模型(Olsen等,2019;埃斯佩霍-加西亚等人,2020年;Chen et al.,
2022;Dyr - mann等人,2016;Suh等人,2018),给定图像级别的标记数据集。然而,生成的模型没有提供关于图像中特定杂草位置的信息,因此对于提供精确的杂草控制来说是次优的。相比之下,目标检测需要在图像中定位感兴趣的对象(Girshick et al., 2015),可以预测图像中杂草的位置,更有利于高精度的杂草去除。
本研究是在前人杂草分类研究(Chen et al., 2022)的基础上,首次对美国棉花生产中最先进的多类杂草YOLO目标检测器进行综合性能评价。杂草数据集和本研究开发的软件程序均可公开访问。这项研究有望对未来开发基于机器视觉的棉花和其他作物除草系统产生积极影响。本文的主要贡献如下:
1、一个多样化的杂草数据集,包括12个杂草类别的5648张图像,以及9370个对美国南部棉花重要的杂草包围框;
2、对25台最先进的YOLO目标探测器进行了多类杂草检测的综合评价和基准测试;
3、研究了数据增加对YOLO模型性能的影响。

2、总结

杂草检测是利用机器视觉系统对杂草进行精确定位的重要环节。在有效杂草检测的核心是一个大规模的,精确标记的杂草数据集的管理,从而开发监督学习模型。
本文展示了迄今为止与美国棉花生产系统相关的最大的杂草检测数据集,包括12个杂草类别的5648张图像,共9370个边界框注释,收集于各种自然光照条件下。通过多类杂草检测的转移学习,建立了一套由25个选定的YOLO目标检测器组成的综合基准测试集,并从检测快速性、模型复杂度和推理时间三个方面进行了评估。
YOLO检测模型获得了mAP@0.5分数,从YOLOv3tiny的88.14%到YOLOv4的95.22%不等。总体而言,基于yolov4的模型比YOLOv3和YOLOv5的模型具有更高的准确率,而YOLOv5n和YOLOv5s在实现相似检测精度的同时,在快速推理时间上具有优势。数据增强对YOLO探测器尤其是YOLOv3tiny的性能有积极的影响。该性能基准有望为选择合适的YOLO目标检测器进行杂草检测提供参考,也可用于精准农业的目标检测任务。杂草检测数据集和用于模型开发和评估的源代码都对研究社区开放。

相关文章:

YOLOWeeds: 用于棉花生产系统中多类杂草检测的 YOLO 目标检测器的新基准

YOLOWeeds: A novel benchmark of YOLO object detectors for multi-class weed detection in cotton production systems 摘要1、介绍2、总结 摘要 过度依赖除草剂控制杂草,加速了杂草的抗除草剂进化,引起了对环境、食品安全和人类健康的日益关注。自动…...

Vue3:自定义图标选择器(包含 SVG 图标封装)

文章目录 一、准备工作(在 Vue3 中使用 SVG)二、封装 SVG三、封装图标选择器四、Demo 效果预览: 一、准备工作(在 Vue3 中使用 SVG) 本文参考:https://blog.csdn.net/houtengyang/article/details/1290431…...

NIO讲解

一:什么是NIO? 二:NIO三大组件 1. channel channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入…...

react中jest配置,解决node_modules报错esm无法解析的问题

重点关注: transformIgnorePatterns: [ "/node_modules/(?!(?:jmfe)/)", ], moduleNameMapper: { "\\.(css|less|scss|sss|styl)$": "jest-css-modules" } 并安装jest-css-modules(npm i --save-dev jest-css-mo…...

Qt6,使用 UI 界面完成命令执行自动化的设计

一、需要完成的功能 在子对话框(CmdChildQt)中,点击 “执行” 按钮,将多个命令行指令,依次输入到父对话框(CmdQt)的编辑框中并且执行,要求如下: 在前一个命令执行完成后&…...

Apache Maven;会话技术

Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。 Maven模型有: 项目对象模型、依赖管理模型、插件 会话技术: 会话&#xff1a…...

Azure - 机器学习:使用自动化机器学习训练计算机视觉模型的数据架构

目录 一、用于训练的数据架构图像分类(二进制/多类)多标签图像分类对象检测实例分段 二、用于推理的数据格式输入格式输出格式图像分类多标签图像分类对象检测实例分段 了解如何设置Azure中 JSONL 文件格式,以便在训练和推理期间在计算机视觉…...

【C++】stack | queue | priority_queue | deque

一、stack栈 介绍 1.栈是一种特殊的线性表,其元素遵循“后进先出”的原则,即仅允许在在表的一端进行插入、删除操作,这一模式被称为“后进先出”或LIFO(last in fisrt out)。 2.从底层实现来看,stack是作…...

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址,并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…...

Java算法(三): 判断两个数组是否为相等 → (要求:长度、顺序、元素)相等

Java算法(三) 需求: 1. 定义一个方法,用于比较两个数组是否相同2. 需求:长度,内容,顺序完全相同package com.liujintao.compare;public class SameArray {public static void main (String[] a…...

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)

一、前言 基于STM32+OneNet设计的智慧超市管理系统(2023升级版) 1.1 项目背景 随着IoT技术的不断发展,智能无人超市也越来越受到人们的关注。智能无人超市是指在无人值守的情况下,通过物联网、大数据等技术手段实现自助选购、结算和配送的新型商场。当前设计了一种基于STM32…...

深入浅出理解ResNet网络模型+PyTorch实现

温故而知新,可以为师矣! 一、参考资料 原始论文:Identity Mappings in Deep Residual Networks 原论文地址:Deep Residual Learning for Image Recognition ResNet详解PyTorch实现 PyTorch官方实现ResNet 【pytorch】ResNet18、…...

【C++】万字一文全解【继承】及其特性__[剖析底层化繁为简](20)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.继承&复用&组合的区别1&…...

微信小程序之自定义组件开发

1、前言 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦…...

MCU系统的调试技巧

MCU系统的调试技巧对于确保系统稳定性和性能至关重要。无论是在嵌入式系统开发的初期阶段还是在产品维护和优化的过程中,有效的调试技巧可以帮助开发人员快速发现和解决问题,本文将讨论一些MCU系统调试的技巧。 首先,使用调试工具是非常重要…...

【机器学习基础】机器学习概述

目录 前言 一、机器学习概念 二、机器学习分类 三、机器学习术语 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 &#x…...

Python Selenium 执行 JavaScript

简介 Selenium是一个用于自动化浏览器操作的工具,可以模拟人工操作,执行各种浏览器操作,包括点击、输入文字、提交表单等。而JavaScript是一种常用的脚本语言,用于在网页上添加交互性和动态性。在Python中使用Selenium执行JavaSc…...

HTML的表单标签和无语义标签的讲解

HTML的表单标签 表单是让用户输入信息的重要途径, 分成两个部分: 表单域: 包含表单元素的区域. 重点是 form 标签. 表单控件: 输入框, 提交按钮等. 重点是 input 标签 form 标签 使用form进行前后端交互.把页面上,用户进行的操作/输入提交到服务器上 input 标签 有很多形态,能…...

8.spark自适应查询-AQE之自适应调整Shuffle分区数量

目录 概述主要功能自适应调整Shuffle分区数量原理默认环境配置修改配置 结束 概述 自适应查询执行(AQE)是 Spark SQL中的一种优化技术,它利用运行时统计信息来选择最高效的查询执行计划,自Apache Spark 3.2.0以来默认启用该计划。…...

【Java 进阶篇】Java Filter 快速入门

欢迎来到这篇有关 Java Filter 的快速入门指南!如果你是一名 Java 开发者或者正在学习 Java Web 开发,Filter 是一个强大的工具,可以帮助你管理和控制 Web 应用程序中的请求和响应。本文将向你解释 Filter 的基本概念,如何创建和配…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

面试高频问题

文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...