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模型有: 项目对象模型、依赖管理模型、插件 会话技术: 会话:…...
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 的基本概念,如何创建和配…...
别再死记硬背公式了!手把手带你画图推导‘放苹果’问题的状态转移方程
可视化拆解动态规划:从画图到推导‘放苹果’问题的本质 在算法学习的道路上,动态规划(DP)常常是让初学者望而生畏的难关。那些看似神奇的递推公式,往往被当作黑盒魔法般死记硬背。今天,我们要彻底改变这种学…...
别再只看单个差异基因了!用R语言clusterProfiler包做ORA富集分析,给你的RNA-seq结果找个靠谱的‘解释’
从基因列表到生物学故事:用R语言解锁RNA-seq数据的通路级解读 第一次拿到RNA-seq差异分析结果时,看着Excel里那几百个"显著差异基因",我盯着屏幕发呆了半小时——这些基因到底说明了什么生物学问题?如果你也经历过这种&…...
DLSS Swapper完整指南:智能管理游戏DLSS文件的终极解决方案
DLSS Swapper完整指南:智能管理游戏DLSS文件的终极解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾在游戏中为了追求更好的性能而手动替换DLSS文件,却陷入版本混乱、兼容性问题…...
Phi-3.5-mini-instruct算法解析实战:图解经典网络与PID控制原理
Phi-3.5-mini-instruct算法解析实战:图解经典网络与PID控制原理 1. 模型能力概览 Phi-3.5-mini-instruct作为一款专注于技术解析的轻量级模型,其核心优势在于将复杂的算法原理转化为工程师能快速理解的直观解释。不同于传统教材的数学推导,…...
注册表惹的祸?深度解析Windows 11软件打开方式失效的底层逻辑与一劳永逸的预防方案
Windows 11打开方式失效的底层机制分析与系统级预防策略 每次双击文档却弹出一堆重复选项,或是根本打不开关联程序——这种困扰在Windows 11用户中相当普遍。表面看是简单的文件关联问题,实则暴露了Windows注册表管理的深层机制缺陷。本文将带您穿透现象…...
B站会员购抢票助手:如何通过五大智能通知系统让你不再错过心仪门票?
B站会员购抢票助手:如何通过五大智能通知系统让你不再错过心仪门票? 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 你是否曾在B站会员购抢票时,因为错过开售…...
【flutter for open harmony】第三方库Flutter 鸿蒙版 音量调节器 实战指南(适配 1.0.0)✨
Flutter实战:开源鸿蒙音量调节器组件 Flutter 三方库 cached_network_image 的鸿蒙化适配与实战指南 欢迎加入开源鸿蒙跨平台社区: https://openharmonycrossplatform.csdn.net 本文详细介绍如何在Flutter鸿蒙应用中实现一个音量调节器组件,…...
AI时代结构化数据全面普及:谷歌SEO新机遇
在人工智能飞速发展的今天,谷歌搜索正在经历前所未有的变革。2024年推出的AI Overview(AI概览)功能标志着搜索引擎从传统的链接列表向智能问答系统的重大转型。在这一背景下,结构化数据(Schema Markup)的重…...
Alpine-Chrome安全防护:深入理解seccomp配置与沙箱机制
Alpine-Chrome安全防护:深入理解seccomp配置与沙箱机制 【免费下载链接】alpine-chrome Chrome Headless docker images built upon alpine official image 项目地址: https://gitcode.com/gh_mirrors/al/alpine-chrome Alpine-Chrome是基于Alpine官方镜像构…...
RimWorld模组管理终极指南:用RimSort快速整理300+模组
RimWorld模组管理终极指南:用RimSort快速整理300模组 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-manag…...
