当前位置: 首页 > 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 的基本概念,如何创建和配…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...