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

基于多任务融合的圣女果采摘识别算法研究

基于多任务融合的圣女果采摘识别算法研究

1、简介

本文主要解决圣女果生产销售环节中,现有的流程是采摘成熟的圣女果,再对采摘下的果实进行单独的品质分级,不仅费时费力,而且多增加一个环节,也增加了对果实的二次伤害。如何在采摘环节中就对圣女果果实进行品质分级是本文研究的核心内容。

在这里插入图片描述

1.1 国内外研究现状

国内外目前对“采摘果实的同时对品质进行分级”这一课题研究的并不多。主要集中在采摘识别算法上,大致分为两类:传统算法与人工智能算法。

1.1.1 传统算法采摘识别

传统的采摘识别算法有1⃣️基于HIS颜色特征的识别;2⃣️红外成像识别;3⃣️光谱成像识别等方法;如下图所示,但是可以发现对果实的边缘信息检测误差较大,并且对于重叠的果实并不能有效区分开来,而圣女果/番茄的果实往往是成簇/串生长,因此传统算法的检测效果并不佳。

在这里插入图片描述

1.1.2 人工智能算法采摘识别

目前采用的人工智能算法主要以1⃣️目标检测识别;2⃣️语义分割识别为主.
较少采用实例分割实现,分析主要原因有:实例分割算法的研究还有许多难题需要解决,如推理速度较低,不如目标检测的迅速,可以达到实时性的任务要求。

  • 目标检测算法:目标检测虽然检测速度很快,检测精度也很高,但是目标检测只能识别出果实的边界框,而无法识别出果实的精准边界信息,对于采摘任务而言并不友好;
  • 语义分割算法:语义可以精准的实现果实的边界信息,但是对于同一类别的交集果实无法区分,对于采摘而言,无法精确计算实例的采摘点;

在这里插入图片描述

1.2 研究目的与意义

通过将品质分级、实例分割任务融合在一个模型中,从而实现对圣女果的采摘识别与品质分级同时进行。即可以精准识别到果实的边缘信息又可以区分不同实例,并同时进行果实的品质分级任务。将实现采摘的同时进行品质分级,极大的缩短的加工时间,提高了生产效率,同时降低了对果实的损伤。

在这里插入图片描述


2、自建多品质圣女果数据集

前往山东省寿光县进行数据采集,拍摄了5k+原图数据,通过1->2/1->3数据增广扩增至14K张数据,人工标注图像3K,共13K个样本实例;

数据标注过程中,采用的更加精细的实例分割标注,可以衍生出单圣女果的采摘识别数据集、单成熟度的圣女果采摘识别数据集、多品质的圣女果采摘数据集等不同任务需求的下游数据集;
标注过程中,我们将圣女果按照成熟度、是否遮挡、品质进行品质划分,共划为为13个品级,其中包含开裂状态的损伤果。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过对13K+个实例的分布情况统计,发现不同品类的数据分布是极度不均衡的,为了缓解此情况对模型训练的影响,我们尝试了对样本数据少的类别进行数据增强,但是发现此方法行不通,因为圣女果果实高度重叠同生,单纯增强数据量少的类别难度极大;

出了进行数据增强方法,采用Focal Loss的损失函数可以缓解对模型的影响,本文采用采用Focal Loss的方法进行调节不同类别的在损失中的权重。
在这里插入图片描述

2.1 数据增强

数据增强主要采用原图的像素维度的数据增强和空间维度的数据增强。

像素维度的数据增强包含:像素化处理、运动模糊、高斯模糊、油画处理、磨砂玻璃处理、超像素化处理、缩放模糊处理、灰度处理、添加噪点、随机阴影处理;

在这里插入图片描述

空间维度的数据增强包含:随机裁剪、中心裁剪、水平翻转、垂直翻转、平移、随机旋转;其中数据增强方法采用基于Albumentations库进行,但是在进行空间维度的数据增强时发现,BBox的数据增强与Mask的数据增强无法做到一一匹配的问题,为了解决此问题,本文通过只进行mask进行空间维度的数据增强,通过计算每个通道mask的边界信息从而获得对应的BBox,实现BBox与Mask的同步数据增强。

3、SOLO Evolution 模型设计与优化

3.1 算法架构设计

SOLO-E基于SOLOv2模型改进而来,我们删减了SOLOv2模型中的低效cate层与mask层。将SOLO有限的注意力集中于各分支的核心。

深层次的特征图更加有利于cate分支提取信息,因此保留2-4层多尺度特征图;
受限于mask复原影响,舍弃3、4层多尺度特征图;

从而将5层特征图精简至3层特征图,即保留了SOLOv2的核心部分,又在一定程度上提升了模型运算速度;
在这里插入图片描述

在这里插入图片描述

3.2 Matrix NMS算法优化

在使用Matrix NMS算法的时候,发现其对cate阈值依赖较大,阈值设置较大导致部分实例无法检测出,阈值较小导致部分实例存在冗余预测情况发生;(图左上角数字表示检测实例个数)
在这里插入图片描述

为了降低对阈值的依赖性,我们提出了圆函数替换原有的高斯函数作为递减函数。在IoU>0.8时,圆函数对置信度低的预测结果抑制更加强烈;对于0.1<IoU<0.4的时候,圆函数依旧有将近0.6的抑制,此情况可以抑制如下图2情况。对于同一目标,可能存在缩小型的目标预测,此时与最佳目标的IoU是较低的,此种情况依旧需要对其进行抑制,高斯函数在此情景下的抑制情况较差。

在这里插入图片描述

优化前后的对比效果图(每个小图的左上角数字表示为此图中检测到的实例数量)
在这里插入图片描述

4、各模型检测结果对比

改进后的SOLO-E在mAP指标相当的情况下,在FPS方面较SOLOv2提升了39.8%,训练时间较SOLOv2降低了33%,且模型参数量略有降低。
在这里插入图片描述

5、圣女果采摘识别系统设计

为了更加直观的展示,我们基于PyQt5设计了一套系统,如下所示。
在这里插入图片描述

《基于实例分割实现圣女果采摘识别算法研究》系统演示

相关文章:

基于多任务融合的圣女果采摘识别算法研究

基于多任务融合的圣女果采摘识别算法研究 1、简介 本文主要解决圣女果生产销售环节中&#xff0c;现有的流程是采摘成熟的圣女果&#xff0c;再对采摘下的果实进行单独的品质分级&#xff0c;不仅费时费力&#xff0c;而且多增加一个环节&#xff0c;也增加了对果实的二次伤害…...

又一个开源第一!飞桨联合百舸,Stable Diffusion推理速度遥遥领先

AIGC(AI Generated Content)&#xff0c;即通过人工智能方法生成内容&#xff0c;是当前深度学习最热门的方向之一。其在绘画、写作等场景的应用也一直层出不穷&#xff0c;其中&#xff0c;AI绘画是大家关注和体验较多的方向。 Diffusion系列文生图模型可以实现AI绘画应用&…...

数据链路层及交换机工作原理

目录 一&#xff0c;帧格式 1.1 帧头类型字段的作用 1.2 MAC地址 1.3 MTU值 二&#xff0c;交换机工作原理 2.1 交换机的端口 2.2 端口状态 三&#xff0c;交换机基本工作模式及命令 3.1 交换机的工作模式&#xff1a; 3.2 命令 一&#xff0c;帧格式 其中类型是指&am…...

VSCode 开发配置,一文搞定(持续更新中...)

一、快速生成页面骨架 文件 > 首选项 > 配置用户代码片段 选择需要的代码片段或者创建一个新的&#xff0c;这里以 vue.json 举例&#xff1a; 下面为我配置的代码片段&#xff0c;仅供参考&#xff1a; {"Print to console": {"prefix": "…...

全网最详细的(CentOS7)MySQL安装

一、环境介绍 操作系统&#xff1a;CentOS 7 MySQL&#xff1a;5.7 二、MySQL卸载 查看软件 rpm -qa|grep mysql 卸载MySQL yum remove -y mysql mysql-libs mysql-common rm -rf /var/lib/mysql rm /etc/my.cnf 查看是否还有 MySQL 软件&#xff0c;有的话继续删除。 软件卸…...

基于LSTM的文本情感分析(Keras版)

一、前言 文本情感分析是自然语言处理中非常基本的任务&#xff0c;我们生活中有很多都是属于这一任务。比如购物网站的好评、差评&#xff0c;垃圾邮件过滤、垃圾短信过滤等。文本情感分析的实现方法也是多种多样的&#xff0c;可以使用传统的朴素贝叶斯、决策树&#xff0c;…...

2023年全国最新机动车签字授权人精选真题及答案17

百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 三、多选题 1.注册登记安全检验时&#xff0c;送检乘用…...

PowerShell远程代码执行漏洞(CVE-2022-41076)分析与复现

漏洞概述PowerShell&#xff08;包括Windows PowerShell和PowerShell Core&#xff09;是微软公司开发的任务自动化和配置管理程序&#xff0c;最初只是一个 Windows 组件&#xff0c;由命令行 shell 和相关的脚本语言组成。后于2016年8月18日开源并提供跨平台支持。PowerShell…...

Mybatis中的一级缓存和二级缓存

Mybatis作为一款强大的ORM框架&#xff0c;其中也用到了缓存来加速查询&#xff0c;今天我们一起来探讨下。 Mybatis可以使用懒加载来提高查询的效率&#xff0c;并且可以通过缓存来提高查询的效率。其中包括有一级缓存和二级缓存。 一级缓存是sqlSession级别的缓存&#xff0c…...

【Java】SpringBoot中实现异步编程

前言 首先我们来看看在Spring中为什么要使用异步编程&#xff0c;它能解决什么问题&#xff1f; 什么是异步&#xff1f; 首先我们先来看看一个同步的用户注册例子&#xff0c;流程如下&#xff1a; 异步的方式如下&#xff1a; 在用户注册后将成功结果返回&#xff0c;…...

ASCII 文件与 TIFF 文件互转(Python 实现)(2023/03/09)

ASCII 文件与 TIFF 文件互转&#xff08;Python 实现&#xff09; 文章目录ASCII 文件与 TIFF 文件互转&#xff08;Python 实现&#xff09;1. 环境1.1 Linux1.2 Windows2. 代码1. 环境 1.1 Linux $ pip3 install --index-url https://mirrors.aliyun.com/pypi/simple --tru…...

思科模拟器 | 交换机与路由器的配置汇总【收藏备用】

文章目录一、vlan配置【实现同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、测试连接二、truck配置【实现连接在不同交换机上的同一vlan的主机通信】1、基本配置和接线2、vlan配置与端口连接3、打truck做连接3、测试连接三、静态路由配置1、自定义IP地址2、基本…...

电子台账:软件运行环境要求与功能特点

1 运行环境要求为满足大部分应用环境&#xff0c;软件开发时综合考虑各种各种不同因素影星&#xff0c;包括&#xff1a;操作系统、硬件、辅助软件、安装、运行、补丁、数据库、网络、人员等因素。目前台账软件需求为&#xff1a;操作系统&#xff1a;目前能运行的任意版本wind…...

计算机科学导论笔记(六)

目录 八、算法 8.1 概念 8.1.1 非正式定义 8.1.2 示例 8.1.3 定义动作 8.1.4 细化 8.1.5 泛化 8.2 三种结构 8.2.1 顺序 8.2.2 判断 8.2.3 循环 8.3 算法的表示 8.3.1 UML 8.3.2 伪代码 8.4 更正式的定义 8.5 基本算法 8.5.1 求和 8.5.2 求积 8.5.3 最大和最…...

嵌入式从业10年,聊聊我对工业互联网和消费物联网的看法 | 文末赠书4本

嵌入式从业10年&#xff0c;聊聊我对工业互联网和消费物联网的看法 工业互联网和消费物联网&#xff0c;有何异常点&#xff1f;本文&#xff0c;博主将结合自己的亲身经历&#xff0c;现身说法&#xff0c;聊聊博主对工业互联网和消费物联网的看法。 文章目录1 写在前面2 我眼…...

python的django框架从入门到熟练【保姆式教学】第一篇

当今&#xff0c;Python已成为最受欢迎的编程语言之一。而Django是一个基于Python的Web框架&#xff0c;它能够帮助你快速、高效地开发Web应用程序。如果你是一名初学者&#xff0c;学习Django框架可能会让你感到有些困惑。不过&#xff0c;不用担心&#xff0c;我们将为你提供…...

浏览记录或者购物车的去重处理

saveHistory(){// 获取缓存数据let historyArr uni.getStorageSync(historyArr) || []//需要添加的数据let item{id:this.detail.id,classid:this.detail.classid,title:this.detail.title,picurl:this.detail.picurl,looktime:parseTime(Date.now())};// forEach和findIndex的…...

Ubantu docker学习笔记(二)拉取构建,属于你的容器

文章目录一、拉取启动容器二、本地镜像初解三、构建镜像3.1使用docker commit构建镜像切换阿里镜像3.2使用dockerfile构建镜像四、总个结吧这里的话&#xff0c;就详细说说小唐对于容器的配置&#xff0c;对了&#xff01;小唐参考的书籍是Linux容器云实战&#xff01;&#xf…...

指针数组 数组指针 常量指针 指针常量 函数指针 指针函数

一、指针常量与常量指针 1、指针常量 本质上是一个常量&#xff0c;常量的类型是指针&#xff0c;表示该常量是一个指针类型的常量。在指针常量中&#xff0c;指针本身的值是一个常量&#xff0c;不可以改变&#xff0c;始终指向同一个地址。在定义的时候&#xff0c;必须要初…...

前端js学习

1. js入门 1.1 js是弱类型语言 1.2 js使用方式 1.2.1 在script中写 1.2.2 引入js文件 1.2.3 优先级 1.3 js查错方式 1.4 js变量定义 1.4 js数据类型 数据类型英文表示示例数值类型number1.1 1字符串类型string‘a’ ‘abc’ “abc”对象类型object布尔类型booleannumber函数…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...