【果树农药喷洒机器人】Part4:果树冠层图像实例分割模型优化

文章目录

  • 一、引言
  • 二、数据集制作
    • 2.1图像采集
    • 2.2图像标注与增强
  • 三、构建柑橘树冠实例分割模型结构
    • 3.1优化特征提取网络
    • 3.2U-Net++替换FCN


一、引言

为准确获取柑橘树冠的生长信息,实现果树喷药机器人的精准喷施,对处于多种生长阶段的柑橘树冠进行图像分割为基础前提。而对树冠进行图像分割过程中面临的诸多问题。首先,难以从众多树冠候选个体中选择喷施对象。再者,树冠边缘的复杂性导致分割不够精细,从而影响对树冠特征参数的准确评估。
本章选取果园内的柑橘树为试验对象,基于深度相机搭建视觉感知系统,采集树冠的彩色和深度图像作为检测样本,用于训练实例分割模型,使用深度图像分割法剔除有效喷施范围外的冗余图像信息。为提高分割精度,提出一种在Mask R-CNN基础上改进的实例分割模型,称为MSEU R-CNN。将SE模块[68]与ResNet[69]相融合作为MSEU R-CNN的骨干网络,以提高对树冠特征的提取能力,抑制无关特征的提取;在掩膜分支中引入U-Net++语义分割网络,以进一步提高图像分割质量。算法具体实现流程如图3-1所示。
在这里插入图片描述

二、数据集制作

2.1图像采集

本试验数据采集于浙江省台州市椒江区的某个柑橘种植园,图像采集时间为2022年2月5日至8日,上午9:00至下午6:00。使用Intel公司生产的型号为RealSense D435i深度相机采集了766张自然环境下的柑橘树RGB图像和深度图像,分辨率分别为1280像素 × 720像素、848像素 × 480像素,并保存为PNG格式。为尽可能地模拟柑橘树喷药机器人的真实作业环境,拍摄了包括不同光照强度(清晨、中午、下午)、不同光照角度(逆光、顺光)、多种背景干扰、不同拍摄角度(正视、侧视)以及不同生长时期(幼苗期、茂盛期、结果期)的柑橘树图像,示例图像如图3-2所示。
在这里插入图片描述

2.2图像标注与增强

柑橘树冠形状大多是不规则的,其边缘极为复杂,若用传统的标注工具(Labelme、Labelimg)来精细化地标注树冠,必然耗费大量的时间。本文采用交互式标注工具EIseg[71]对彩色图像和RGB-D图像中的柑橘树冠进行自动标注。该标注软件具有智能交互式功能,通过多次点击图像中树冠区域,软件便能自动分割出整个树冠,大大节省了图像标注的时间成本。由图3-4的RGB-D和彩色树冠图像的标注结果可知,EIseg自动生成的轮廓紧贴树冠边缘,标注结果的精度较高,可作为掩膜标签。之后输出COCO格式的标注文件,标签类别共4种,包括幼苗期树冠、茂盛期树冠、结果期树冠以及背景。图像标注完成后,为提高实例分割模型检测树冠的泛化能力,通过随机亮度变化、增强对比度、随机旋转和添加高斯噪声对原始图像数据进行增强,以幼苗期的橘树为例,增强过程如图3-5所示。
在这里插入图片描述

在这里插入图片描述

三、构建柑橘树冠实例分割模型结构

Mask R-CNN作为经典的实例分割模型,通过在Faster R-CNN基础上引入全卷积神经网络(Fully Convolutional Networks,FCN),实现了像素级的多目标检测与分割。为进一步提高该模型的性能,以实现对多生长周期柑橘树冠的精确分割,本文通过改进Mask R-CNN,提出MSEU R-CNN实例分割模型,其整体结构如图3-6所示。
SE注意力机制模块与ResNet相融合,结合特征金字塔网络(Feature Pyramid Networks,FPN)组成主干网络(Backbone),对输入图像进行特征提取,并输出大量候选框(Anchors)。然后,使用区域建议网络(Region Proposal Network,RPN)筛选候选框,保留可能存在树冠的区域(Region of Interest,ROI),接着ROI被传输到感兴趣区域对齐层(Region of Interest Align,ROIAlign),通过双线性插值方式将其映射成固定维数的特征向量。最后将映射完成的特征输入到三条分支,其中全连接层负责树冠的分类和包围框回归;U-Net++掩膜分支对检测到的树冠进行语义分割,生成高精度的树冠掩膜。

在这里插入图片描述

3.1优化特征提取网络

ResNet残差模块结构如图3-7(a)所示,具备良好的特征提取能力,但只关注图像特征的空间信息,忽略了特征通道间的相关性,导致图像特征信息未被充分利用。SE模块是由Hu等提出的一种注意力机制结构,本文通过嵌入SE模块对ResNet进行优化,构造成新的特征提取网络SE-ResNet,其结构如图3-7(b)所示。SE模块通过对图像特征间的相关性进行建模,重新标定不同特征通道的权重,并根据之前的特征通道通过乘法对其进行加权,实现各通道上对原始特征的重校准,增强对关键通道域的注意力,抑制无效特征通道。如图3-7(b)虚线框所示,SE模块结构主要包括压缩、激励操作以及重校准操作。
在这里插入图片描述

由于幼苗期树冠相比茂盛期和结果期要小很多,为提高对幼苗树冠这类小目标的检测能力,经典方法是在训练或测试阶段,采用图像金字塔方式对图片进行多尺度变化增强,但会极大地增加图像金字塔计算量。本章采用特征金字塔网络,以避免上述问题的出现,同时也能较好地处理物体检测中多尺度变化问题,其网络结构如图3-8所示。SE-ResNet由5个阶段组成,因为conv1占用的很大一部分内存,所以没有被包含在金字塔中。对应于conv2,conv3,conv4与conv5,分别生成一个不同尺度的特征图,表示为[C2, C3, C4, C5]。使用上述由SE-ResNet输出的特征图映射作为FPN的输入,建立特征金字塔,并输出新特征[P2, P3, P4, P5]。
在这里插入图片描述

3.2U-Net++替换FCN

Mask R-CNN的掩膜分支采用FCN提取图像的语义信息,对局部语义信息有较好的敏感度,但忽略了上下文信息,导致图像特征传输过程中,浅层网络的像素位置特征会有一定程度的丢失。为更好地结合图像的浅层与深层特征,MSEU R-CNN模型引入了U-Net++,通过替换原始掩膜分支以提升模型的分割性能。
如图3-9所示,U-Net++由卷积单元、下采样和上采样模块以及卷积单元之间的跳过连接组成,每个节点代表一个卷积模块,将4个不同语义层级的特征图进行组合,充分利用不同层的图像特征,可以提升模型的泛化性与稳定性。通过在U-Net[76]模型基础上重新设计了跳过路径,U-Net++利用密集的跳层链接实现对各卷积层多尺度特征的融合,从而实现更加密集且灵活的特征传播;从垂直方向上看,各节点均融合来自前一节点不同分辨率的特征图像,最大程度地增加每个特征层间的相互联系,这种多尺度特征融合结构从而提高了模型的分割精度和收敛速度。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI和ChatGPT:人工智能的奇迹

AI和ChatGPT:人工智能的奇迹 引言什么是人工智能?ChatGPT:AI的语言之王ChatGPT的工作原理ChatGPT的优势和挑战AI和ChatGPT的未来展望结论 引言 人工智能(Artificial Intelligence,简称AI)是一项令人兴奋的…

IAR开发环境的安装、配置和新建STM32工程模板

IAR到环境配置到新建工程模板-以STM32为例 一、 简单介绍一下IAR软件1. IAR的安装(1) 下载IAR集成开发环境安装文件(2) 安装 2. 软件注册授权 二、IAR上手使用(基于STM32标准库新建工程)1、下载标准库文件2、在IAR新建工程&#x…

ImageNet Classification with Deep Convolutional Neural Networks

(一)Some Words: 这里主要是通过记录一些笔记来阅读这篇 Paper,它的产生跟 ImageNet LSVRC-2010 竞赛有关,通过训练一个大的、深的卷积网络来将 1.2 million 的 HR 图像分成 1000 类 ,这个网络实现了 top-1 37.5% 和 …

GPU显存泄露/显存溢出/显存爆炸 解决方案

问题描述 最近在跑一个基于pytorch的强化学习代码,在训练过程中显存增大非常明显,迭代不到200个iteration就可以占据70G的显存。由于博主是第一次在pytorch实现的强化学习算法上加入自己的实现,很没有应对经验,现将调试过程记录下…

计算机网络(5) --- http协议

计算机网络(4) --- 协议定制_哈里沃克的博客-CSDN博客协议定制https://blog.csdn.net/m0_63488627/article/details/132070683?spm1001.2014.3001.5501 目录 1.http协议介绍 1.协议的延申 2.http协议介绍 3.URL 4.urlencode和urldecode 2.HTTP协…

使用 RKE 方式搭建 K8s 集群并部署 NebulaGraph

本文由社区用户 Albert 贡献,首发于 NebulaGraph 论坛,旨在提供多一种的部署方式使用 NebulaGraph。 在本文,我将会详细地记录下我用 K8s 部署分布式图数据库 NebulaGraph 的过程。下面是本次实践的内容规划: 一到十章节为 K8s 集…

用html+javascript打造公文一键排版系统16:更新单个附件说明排版,实现多个附件说明排版

利用公休的时间继续完善。 一、更新单个附件说明排版 之前实现单个附件说明排版时,我们只考虑了“附件:”中冒号为半角的情况,而没有考虑存在多任余空格的情况,我们今天先针对存在多任余空格的情况进行完善,增加了温…

APP外包开发的开发语言对比

在开发iOS APP时有两种语言可以选择,Swift(Swift Programming Language)和 Objective-C(Objective-C Programming Language),它们是两种不同的编程语言,都被用于iOS和macOS等苹果平台的软件开发…

[国产MCU]-BL602开发实例-定时器

定时器 文章目录 定时器1、BL602定时器介绍2、定时器驱动API介绍3、定时器使用实例3.1 单次计时3.2 持续计时通用定时器,用于定时,当时间到达我们所设置的定时时间会产生定时中断,可以用来完成定时任务。本文将详细介绍如何使用BL602的定时器功能。 1、BL602定时器介绍 BL6…

如何搭建自动化测试框架?资深测试整理的PO模式,一套打通自动化...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Po模型介绍 1、简…

Redis 报错 RedisConnectionException: Unable to connect to x.x.x.x:6379

文章目录 Redis报错类型可能解决方案 Redis报错类型 org.springframework.data.redis.connection. spingboot调用redis出错 PoolException: Could not get a resource from the pool; 连接池异常:无法从池中获取资源; nested exception is io.lettuce.core. 嵌套异常 RedisConn…

聊聊JDK动态代理原理

1. 示例 首先,定义一个接口: public interface Staff {void work(); }然后,新增一个类并实现上面的接口: public class Coder implements Staff {Overridepublic void work() {System.out.println("认真写bug……");…

一起学数据结构(3)——万字解析:链表的概念及单链表的实现

上篇文章介绍了数据结构的一些基本概念,以及顺序表的概念和实现,本文来介绍链表的概念和单链表的实现,在此之前,首先来回顾以下顺序表的特点: 1.顺序表特点回顾: 1. 顺序表是一组地址连续的存储单元依次存…

图像提示词攻略--基于 stable diffusion v2

Stable Diffusion 是一种潜在的文本到图像扩散模型,能够在给定任何文本输入(称为提示)的情况下生成逼真的图像。 在本文中,我将讨论和探索一些提高提示有效性的方法。从在提示中添加某些关键字和组合词、从更改单词顺序及其标点符…

24v转3.3v输出3A用什么芯片

问:客户需要一个能够将24V输入电压转换为3.3V输出电压,并且能够提供1-3A的电流输出的芯片。还希望它能够内置MOS管。有什么推荐的型号吗?(vin24v、5v,vout3.3v,Io1-3A) 答:推荐使用…

【福建事业单位-推理判断】08逻辑论证-加强-原因解释-日常总结

福建事业单位-推理判断】08逻辑论证-加强 一、加强题1.1 建立联系——搭桥1.2 补充论据必要条件(没它不行)补充论据(解释原因和举例论证) 总结 二、原因解释题三、日常结论复习建议 一、加强题 加强的题型,一般只加强…

替换开源LDAP,某科技企业用宁盾目录统一身份,为业务敏捷提供支撑

客户介绍 某高科技企业成立于2015年,是一家深耕于大物流领域的人工智能公司,迄今为止已为全球16个国家和地区,120余家客户打造智能化升级体验,场景覆盖海陆空铁、工厂等货运物流领域。 该公司使用开源LDAP面临的挑战 挑战1 开源…

详解Kafka分区机制原理|Kafka 系列 二

Kafka 系列第二篇,详解分区机制原理。为了不错过更新,请大家将本号“设为星标”。 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达 上一篇文章介绍了 Kafka 的基本概念和术语,里面有个概念是 分区(Part…

高翔《自动驾驶中的SLAM技术》代码详解 — 第6章 2D SLAM

目录 6.2 扫描匹配算法 6.2.1 点到点的扫描匹配 6.2 扫描匹配算法 6.2.1 点到点的扫描匹配 // src/ch6/test_2dlidar_io.cc // Created by xiang on 2022/3/15. // #include <gflags/gflags.h> #include <glog/logging.h> #include <opencv2/highgui.hpp>…

解释器模式(Interpreter)

解释器模式是一种行为设计模式&#xff0c;可以解释语言的语法或表达式。给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;然后定义一个解释器&#xff0c;使用该文法来解释语言中的句子。解释器模式提供了评估语言的语法或表达式的方式。 Interpreter is a behav…