【果树农药喷洒机器人】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++利用密集的跳层链接实现对各卷积层多尺度特征的融合,从而实现更加密集且灵活的特征传播;从垂直方向上看,各节点均融合来自前一节点不同分辨率的特征图像,最大程度地增加每个特征层间的相互联系,这种多尺度特征融合结构从而提高了模型的分割精度和收敛速度。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义

背景:本文是对上一个文章的补充,在源码编译之前,项目是有完整的ffmpeg编译脚本的,只不过新增了断点调试ffmpeg,所以产生的上面的文章,也就是说,我在用make编译成功后,再去做的源码编…

dfs之卒的遍历

题面 题目描述 在一张nm 的棋盘上(如 6 行 7 列)的最左上角(1,1) 的位置有一个卒。该卒只能向下或者向右走,且卒采取的策略是先向下,下边走到头就向右,请问从(1,1) 点走到 (n,m) 点可以怎样走,输出这些走法…

【软件工程】5 ATM系统测试

目录 5 ATM系统测试 5.1 单元测试 5.1.1 制定单元测试计划 5.1.2 设计单元测试用例 ​编辑 5.1.3 执行单元测试 5.1.4 单元测试报告 5.2 集成测试 5.2.1 制定集成测试计划 5.2.2 设计集成测试用例 5.2.3 执行集成测试 5.2.4 集成测试总结 5.3 系统测试 5.3.1 制定…

2023 年实验班选拔试题

比赛链接,邀请码:2023qsb A Zlz’s problem(Easy Version) 题目描述 This is the easy version of this problem. The only difference between the easy and hard versions is the constraints on n n n and m m m. So I won’t even take a glan…

Docker网络模式详解

目录 Docker网络模式 一、Host模式 二、container模式 三、none模式 四、bridge模式 五、Overlay模式 Docker网络模式 安装Docker时会自动创建3个网络,可以使用docker network ls命令列出这些网络。 [rootdocker ~]# docker network ls 我们在使用docker run…

摄像机终端IP地址白名单配置流程

海康摄像头配置白名单流程 1.登录海康摄像机前端 2.进入配置-系统-安全管理-IP地址过滤 3.IP地址过滤方式选择“允许” 4.点击添加按钮输入对应的IP地址或者IP网段 5.最后勾选启用IP地址过滤,然后保存 大华摄像头配置白名单流程 1.登录大华摄像机前端 2.进入设…

自动驾驶传感器选型

360的场景,避免有盲区,长距离 Lidar(激光雷达) 典型特点一圈一圈的,轮廓和很高的位置精度 禾赛的机械雷达 速腾的固态雷达 固态雷达是车规级的,车规级的意思是可以装到量产车上 Radar(毫米…

解决Vue+Element UI使用表单rules国际化时From表单验证信息不能实时更新

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 博主在工作之余开始进行自动化测试平台的开发,虽然已经996一个月了但是还是在使劲挤时间做这件事情,目前平台使用前端框架vu…

秋招打卡011(20230807)

文章目录 前言一、今天学习了什么?二、算法----》单调栈1、介绍2、题目 总结 前言 提示:这里为每天自己的学习内容心情总结; Learn By Doing,Now or Never,Writing is organized thinking. 今天拿到了上周面试的结果…

Docker实战-如何去访问Docker仓库?

导语   仓库在之前的分享中我们介绍过,它主要的作用就是用来存放镜像文件,又可以分为是公共的仓库和私有仓库。有点类似于Maven的中央仓库和公司内部私服。 下面我们就来介绍一下在Docker中如何去访问各种仓库。 Docker Hub 公共镜像仓库 Docker Hub 是Docker官方提供的最…

恺英网络宣布:与华为鸿蒙系统展开合作,将开发多款手游

8月5日消息,恺英网络宣布旗下子公司盛和网络参加了华为开发者大会(HDC.Together)游戏服务论坛,并在华为鸿蒙生态游戏先锋合作启动仪式上进行了亮相。恺英网络表示,将逐步在HarmonyOS上开发多款游戏,利用Har…

使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章

今天继续研究C#的WinForm的显示动画效果。 上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体的显示隐藏动画效果的实现代码。 1、 项目目录&#xff1b…

tomcat配置文件和web站点部署(zrlog)简介

一.tomcat/apache-tomcat-8.5.70/conf/server.xml组件类别介绍 1.类别 2.Connector参数 3.host参数 4.Context参数 二.web站点部署(以zrlog为例) 1.将zrlog的war包传到webapps下面 2.在mysql数据库中创建zrlog用户并赋予权限 3.完成安装向导,登录管理界面即可…

睡眠助手/白噪音/助眠夜曲微信小程序源码 附教程

简介: 睡眠助手/白噪音/助眠夜曲微信小程序源码 附教程 支持分享海报 支持暗黑模式 包含了音频数据 最近很火的助眠小程序,前端vue,可以打包H5,APP,小程序 后台可以设置流量主广告,非常不错的源码 代码完…

I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系

一.视频传输原理 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量…

一百四十八、Kettle——Linux上安装的kettle8.2连接Hive3.1.2

一、目标 kettle8.2在Linux安装好后,需要与Hive3.1.2数据库建立连接 二、前提 (一)在Linux已经安装好kettle并可以启动kettle (二)版本:kettle8.2.0 Hive3.1.2 Hadoop3.1.3 (三&#…

cpu的几核和几线程是什么意思

先说一下i7-12800H 14核 20线程是什么意思 答: 超线程功能先简单的解释下就是:能使一个大核拥有同时处理两个线程的能力. 14核是大小核技术,6个大核,8个小核,小核没有超线程功能 ,比大核的性能要弱些 也就是说6个大核,每个大核都同时处理2个线程, 每个小核只能同时处理…

【六袆 - 国际化】SpringBoot国际化Message

模拟场景校验请求参数 private void checkParam(List<ReqAppAdminDTO> req) {// 校验管理员如果已存在&#xff0c;则抛出已存在异常req.forEach(item -> {AppAdminDO appAdminDO appAdminMapper.selectByAppIdAndAdminNo(item.getAppId(), item.getAdminNo());if (O…

【云原生】深入掌握k8s中Pod和生命周期

个人主页&#xff1a;征服bug-CSDN博客 kubernetes专栏&#xff1a;kubernetes_征服bug的博客-CSDN博客 目录 1 什么是 Pod 2 Pod 基本操作 3 Pod 运行多个容器 4 Pod 的 Labels(标签) 5 Pod 的生命周期 1 什么是 Pod 摘取官网: Pod | Kubernetes 1.1 简介 Pod 是可以在 …

记录第一篇被”华为开发者联盟鸿蒙专区 “收录的文章

记录第一篇被”华为开发者联盟鸿蒙专区 “社区收录的文章。 坚持写作的动力是什么&#xff1f; 是记录、分享&#xff0c;以及更好的思考 。