做企业网站通常哪找素材/百度快速排名用什
基于多任务融合的圣女果采摘识别算法研究
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、简介 本文主要解决圣女果生产销售环节中,现有的流程是采摘成熟的圣女果,再对采摘下的果实进行单独的品质分级,不仅费时费力,而且多增加一个环节,也增加了对果实的二次伤害…...

又一个开源第一!飞桨联合百舸,Stable Diffusion推理速度遥遥领先
AIGC(AI Generated Content),即通过人工智能方法生成内容,是当前深度学习最热门的方向之一。其在绘画、写作等场景的应用也一直层出不穷,其中,AI绘画是大家关注和体验较多的方向。 Diffusion系列文生图模型可以实现AI绘画应用&…...

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

VSCode 开发配置,一文搞定(持续更新中...)
一、快速生成页面骨架 文件 > 首选项 > 配置用户代码片段 选择需要的代码片段或者创建一个新的,这里以 vue.json 举例: 下面为我配置的代码片段,仅供参考: {"Print to console": {"prefix": "…...

全网最详细的(CentOS7)MySQL安装
一、环境介绍 操作系统:CentOS 7 MySQL: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 软件,有的话继续删除。 软件卸…...

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

2023年全国最新机动车签字授权人精选真题及答案17
百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 三、多选题 1.注册登记安全检验时,送检乘用…...

PowerShell远程代码执行漏洞(CVE-2022-41076)分析与复现
漏洞概述PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理程序,最初只是一个 Windows 组件,由命令行 shell 和相关的脚本语言组成。后于2016年8月18日开源并提供跨平台支持。PowerShell…...

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

【Java】SpringBoot中实现异步编程
前言 首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题? 什么是异步? 首先我们先来看看一个同步的用户注册例子,流程如下: 异步的方式如下: 在用户注册后将成功结果返回,…...

ASCII 文件与 TIFF 文件互转(Python 实现)(2023/03/09)
ASCII 文件与 TIFF 文件互转(Python 实现) 文章目录ASCII 文件与 TIFF 文件互转(Python 实现)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 运行环境要求为满足大部分应用环境,软件开发时综合考虑各种各种不同因素影星,包括:操作系统、硬件、辅助软件、安装、运行、补丁、数据库、网络、人员等因素。目前台账软件需求为:操作系统:目前能运行的任意版本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年,聊聊我对工业互联网和消费物联网的看法 工业互联网和消费物联网,有何异常点?本文,博主将结合自己的亲身经历,现身说法,聊聊博主对工业互联网和消费物联网的看法。 文章目录1 写在前面2 我眼…...

python的django框架从入门到熟练【保姆式教学】第一篇
当今,Python已成为最受欢迎的编程语言之一。而Django是一个基于Python的Web框架,它能够帮助你快速、高效地开发Web应用程序。如果你是一名初学者,学习Django框架可能会让你感到有些困惑。不过,不用担心,我们将为你提供…...

浏览记录或者购物车的去重处理
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构建镜像四、总个结吧这里的话,就详细说说小唐对于容器的配置,对了!小唐参考的书籍是Linux容器云实战!…...

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

前端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函数…...

“华为杯”研究生数学建模竞赛2007年-【华为杯】A题:食品卫生安全保障体系数学模型及改进模型(附获奖论文)
赛题描述 我国是一个拥有13亿人口的发展中国家,每天都在消费大量的各种食品,这批食品是由成千上万的食品加工厂、不可计数的小作坊、几亿农民生产出来的,并且经过较多的中间环节和长途运输后才为广大群众所消费,加之近年来我国经济发展迅速而环境治理没有能够完全跟上,以至…...

转战C#---day2
定义数组: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Relay_Sin_Com {class Program{static void Main(string[] args){int[] ages1 {3240,242,34};Console.WriteLine(age…...

【vue2源码学习】— diff
vue更新还是调用了 vm._update 会进入下面这一步 vm.$el vm.__patch__(prevVnode, vnode) 又回到了patch方法 会通过sameVnode 判断是不是相同的vnode// patch代码片段 const isRealElement isDef(oldVnode.nodeType) if (!isRealElement && sameVnode(oldVnode, vno…...

更换 Linux 自带的 jdk 环境
如下,我要把 Linux 默认的 jdk 版本换成我自己的 jdk 版本。 Linux 自带的 jdk 环境: 要更换的 jdk 环境: 1、切换到 root 用户进行操作; 2、在根目录下创建一个 /export/server/ 目录; [rootcentos /]# mkdir -p /e…...

MySQL8读写分离集群
文章目录前言MySQL读写分离原理搭建MySQL读写分离集群MySQL8.0之前MySQL8.0之后后记前言 上一期介绍并实现了MySQL的主从复制,由于主从复制架构仅仅能解决数据冗余备份的问题,从节点不对外提供服务,依然存在单节点的高并发问题 所以在主从复…...

蓝桥冲刺31天之第七天
目录 A:三角回文数 B:数数 C:数组切分 D:倍数问题 一星陨落,黯淡不了星空灿烂; 一花凋零,荒芜不了整个春天。 如果命运是世界上最烂的编剧, 你就要争取做人生最好的演员。 即使生…...

【Python百日进阶-Web开发-Vue3】Day550 - Vue3 商城后台 10:Veux4-02基本使用
文章目录 二、Vuex的基本使用2.4 Mutations 应用 :同步更新state2.4.1 `src/store/index.js`2.4.2 `src/views/index.vue`2.5 Module的应用:分模块2.5.1 `src/store/modules/product.js`2.5.2 `src/store/modules/cart.js`2.5.3 `src/store/index.js`2.5.4 `src/views/index.…...

ESP32驱动-红外寻迹传感器驱动
红外寻迹传感器驱动 1、红外寻迹传感器介绍 红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路…...

【TS】TypeScript泛型 T 的用法详解
一、什么是泛型? 泛型,从字面上理解,泛型就是一般的,广泛的的意思。 TypeScript中泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体类型,而是在使用的时候再指定类型…...

Vue 3.0 单文件组件 【Vue3 从零开始】
#介绍 在很多 Vue 项目中,我们使用 app.component 来定义全局组件,紧接着用 app.mount(#app) 在每个页面内指定一个容器元素。 这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的…...