基于深度学习的菠萝与果叶视觉识别及切断机构设计

news2024/11/26 2:28:27

收藏和点赞,您的关注是我创作的动力

文章目录

    • 概要
  • 一、课题内容
  • 二、总体方案确定
    • 2.1 方案选择
    • 2.2 菠萝的视觉识别流程
    • 2.3 菠萝果叶切断机构设计流程
  • 三 基于深度学习的菠萝检测模型
    • 3.1 卷积神经网络简介
    • 3.2 YOLO卷积神经网络
    • 3.3 图像采集与数据制作
    • 3.4 数据训练与检测
    • 3.5 模型评价
  • 四 实验环境搭建
    • 4.1 KinectV2相机测量原理
    • 4.2 相机架搭建与相机安装
    • 4.3 图像处理
  • 五 结 论
    • 目录

概要

  目前,视觉识别的研发是菠萝采摘机器人研究的难点。其中,菠萝果叶对菠萝的遮挡是导致目前菠萝视觉识别和采摘效果不佳的一个因素。所以,研究一种高准确率的菠萝识别方法以及消除菠萝果叶对菠萝识别的影响,对提高菠萝采摘作业的自动化水平有促进作用。
  本文使用yolov4卷积神经网络对菠萝图像进行训练,得到菠萝识别模型,使用菠萝图像对该模型进行测试,测试图像的平均精准率可达92.65%。同在该菠萝识别模型基础上,本文对菠萝深度图像进行三维点云构造,获取菠萝点云的质心并对该方法获取质心的有效性进行验证。同时,本文提出了一种菠萝果叶切断机构的设计,可以切断菠萝果叶,有利于提高菠萝视觉识别的成功率。
本设计的主要内容如下:
(1)介绍菠萝产业发展现状、课题研究目的;
(2)介绍课题的研究方法;
(3)介绍卷积神经网络并进行菠萝识别模型的训练;
(4)阐述实验环境的搭建;
(5)阐述深度相机成像原理;
(6)阐述菠萝点云图像的获取及处理方法;
(7)菠萝果叶切断机构设计及零件校核;
(8)总结。
关键词:菠萝 机器视觉 深度学习 切断机构

一、课题内容

  本课题设计期望达到的技术要求是:算法的识别效率、识别准确率等要在现有标准上有一个提升。问答系统能基本做到进行日常问答,翻译系统能准确翻译识别到的文本信息。
  本课题设计使用 python3 语言构建算法,以 keras(开源人工神经网络库)和tensorflow(机器学习算法库)为依赖,搭建神经网络算法,使用 CTC 损失函数,LSTM 长短期记忆网络结构等技术构建模型文件。
  本课题设计的研究目标:如何让机器读取音频文件并将其转为音频信号用于识别,音频信号处理时对声学特征的提取的方法,不同特征对识别效果是否有影响。深层网络的搭建所用到的基本元件有哪些,通过训练规划设置超参数,如 learning rate学习率、iteration 迭代数、隐藏层数 L、隐藏神经元数目、使用的激活函数activation funtion。如何把隐马尔可夫模型应用到算法当中,如何基于马尔科夫链将拼音转换为中文文本输出。怎样把数据集分割成训练集和测试集,怎样分割数据比例能让算法效率最大化。应该选择什么优化算法加快训练模型速度。如何防止神经网络的过拟合问题,如何减少梯度消失或梯度爆炸问题的影响。怎么样使算法不陷入局部最优以解决准确率不足问题;声学模型和语言模型训练的选择,如何确保使用的模型性能稳定又优秀,模型文件的结构处理怎么样的;问答系统能不能做到同一个问题能有多种或无限种答案,回答的语句是否符合说话人问题的形式,如果答非所问的次数过多是否有哪些方法对其进行优化;翻译系统如果不使用基于网络上开源的翻译工具,通过构建机器翻译神经网络算法来得出翻译,翻译的完成率和准确率是
否能达标,如何结合实际改进算法等等。 诸如总总问题都是本次课题设计需要解决的问题。

二、总体方案确定

2.1 方案选择

本文的主要研究目的是研究一种快速、准确的菠萝视觉识别技术,考虑到菠萝果叶对菠萝识别的影响,本文还将研究一种菠萝果叶切断机构,用于切断菠萝果叶,可以提高菠萝识别的成功率,并且,菠萝果叶切断机构的研究对于菠萝采摘机器人的发展也具有重要帮助,主要体现在,可以减少目前菠萝采摘机器人的体积,使菠萝采摘机器人更适用于狭小工作环境的菠萝采摘作业情况。
  目前,菠萝采摘机器人中应用的菠萝识别技术主要有基于分割的方法、特征分析方法、图像识别决策分析方法、模型学习和形状匹配方法等。随着深度学习方法的快速发展,深度学习方法在菠萝识别技术上有巨大优势。为此,本文将研究基于深度学习的菠萝识别模型,并且进一步地研究菠萝图像的点云重构方法。

2.2 菠萝的视觉识别流程

本设计中菠萝的视觉识别流程图如图5所示。
在这里插入图片描述

图5 机器视觉工作流程图

2.3 菠萝果叶切断机构设计流程

本切断机构的设计流程图如图6所示。
在这里插入图片描述

图6 切断机构设计流程图

三 基于深度学习的菠萝检测模型

3.1 卷积神经网络简介

深度学习的概念起源于对于人工神经网络的研究(孙志军,2012)。人工神经网络是一种模仿生物的神经系统的结构及其运行模式而设计的信息处理算法模型。人工神经网络的基本单元为神经元,其结构如图7所示,输入信号乘上神经元中对应的权重并求和,经过激活函数激活并进行输出。
  受到视觉神经皮层的启发,卷积神经网络(Convolutional Neural Network,CNN)被提出。作为人工神经网络的一个重要的研究方向,卷积神经网络的特点在于,其每一层的特征都会由上一层的局部区域通过共享权值的卷积激励得到。因为这一特点,卷积神经网络会比其他的神经网络方法更加适合于应用在图像的图像特征的学习与表达,其典型结构如图7所示。(李彦冬,2016)。
  在这里插入图片描述

图7 神经元结构模型
在这里插入图片描述

图8 卷积神经网络典型结构(李彦冬,2016)

3.2 YOLO卷积神经网络

为了提升深度学习识别物体的成功率,以及缩短进行识别所需要的时间,深度学习的神经网络框架经过不断的发展和完善。从2014年开始,陆续的涌现出如YOLO(You Only Look Once), SSD(Single Shot MultiBox Detector),R-CNN(Region-CNN), Fast R-CNN, Faster R-CNN等一些比较知名的框架。YOLO网络是一种基于回归的用于目标检测的算法,其在拥有较高检测精度的同时,还具有较快的检测速度,在很多目标检测任务中都取得了很好的效果(管军霖等,2020)。
  为此,考虑到菠萝识别问题模型的复杂度相对较低,并且对于识别速度具有较高要求,本文采用yolov4算法进行菠萝的视觉识别,由于yolov4的检测速度快、检测精度高等特点,可用于菠萝的快速化、机械化、自动化采摘工作。

3.3 图像采集与数据制作

本文初步采集250个菠萝样本。其中,采样标准为:
(1)在田间进行菠萝采样,采样工具为手机,其中手机相机长宽比调为1:1,一张照片可以有1-4个菠萝;
  (2)对采摘后的菠萝进行采样,其中菠萝放置在平面。采样工具为手机,其中手机相机长宽比调为1:1,一张照片可以有1-4个菠萝,菠萝距离手机距离约为600mm。
  由于采样时间有限,本实验采集的样本数量过少,这就导致训练过程中容易产生过拟合现象。在机器学习中,过拟合模型对样本数据的解析能力很强,但是对非样本数据的解析能力很弱(懂波等,2021)。机器学习中数据迭代次数与精度的关系如图9所示。

在这里插入图片描述

图9 图像迭代次数的与精度的关系
  本实验中,由于采集的菠萝图像数量少并且比较单一。所谓采集的菠萝图像比较单一,指的是采集的菠萝图像均是菠萝果地里的菠萝图像。这就导致了使用本样本数据训练出来的模型,只能用于识别菠萝果地里面的菠萝,而在其他需要识别菠萝的工作场合中对菠萝的识别精度不高。比如,菠萝采摘完之后,放在传送带上传送至收集框中,有时候需要使用机器视觉识别传送带上的菠萝并计数,而本模型显然无法胜任这个工作情况。
  所以,为此防止训练出来的菠萝识别模型过拟合,提高菠萝识别模型的泛化能力,使得菠萝识别模型尽可能的胜任其他工作情况,增加菠萝识别模型的抗干扰能力,需要增加菠萝图像样本数据。
  本实验中,通过采取随机旋转菠萝图像、镜像翻转菠萝图像、对菠萝图像增加噪声、亮度增强、高斯模糊等方法扩充数据样本图像。效果如图10所示。

在这里插入图片描述图10 图像处理效果
  处理后的图像,与原来图像一起,做为本次实验的数据集。使用便签制作软件LabelImg对图片进行标记。具体为:框选出图片中菠萝的最小外接矩形,命名为pineapple,然后保存标记后的图片,会生成一个xml格式的文件。然后再利用python程序实现将xml文件中框的位置信息提取出来,并以yolov4要求的txt格式保存,文本转换代码见附录。
部分标记好的图片如图11所示。
图11 部分标记图片

3.4 数据训练与检测

本文菠萝识别模型采用Darknet神经网络框架,具体配置为:Windows10系统、Intel®Core™i5-7200U CPU、cmake3.17.2、VS2019等。采用作者提供的yolov4-custom.cfg配置文件进行训练,并根据要求进行修改相关参数。训练完成后对部分图片进行测试,结果如同12所示。
图12 部分测试结果图

3.5 模型评价

在训练得到菠萝识别神经网络模型之后,进一步地,需要对该模型进行评价。Precision(精准率)、Recall(召回率)和Average Precision(平均精准度)是评价模型的三个指标。其中,Precision表示神经网络模型检测出来的目标中,真正的目标物体所占的比例。Recall神经网络模型检测出来的真正目标,占所有真实的目标物体的比例。通过如图11的混淆矩阵,可以对Precision、Recall和Average Precision的概念有更直观的了解。
在这里插入图片描述

图13 混淆矩阵

四 实验环境搭建

4.1 KinectV2相机测量原理

本设计中需要实现对菠萝的点云重构,所以图像采集需要采用双目或者多目成像的方式。目前深度摄像头主要实现方式有结构光方式、Time of Flight(下文简称TOF)方式、双目方式等。
  本设计中选择的相机为KinectV2深度相机。KinectV2深度相机采用了TOF技术。TOF技术原理是:首先向被测的对象发送光脉冲,然后接受从被测对象中反射回来的光脉冲,再然后计算光脉冲从发射到接收这一过程的所需要的时间,根据光脉冲的速度,可以得到物体表面相对于光脉冲信号发射单元的深度信息,其示意图如15所示。由于TOF方式省略了图像处理和立体匹配等等环节,这使得TOF算法具有处理速度快,响应时间短的优势(王金志,2020)。
 在这里插入图片描述

图15 TOF测距示意图(郭宁博等,2017)

4.2 相机架搭建与相机安装

用铝型材以及3D打印零件搭建相机架,并将相机安装进去,搭建好的实验环境如图16所示。
图16 搭建的实验环境

4.3 图像处理

由于实验室中有粉尘、菠萝模型表面有杂质、摄像头有灰尘等影响,会导致图像产生噪声等,而噪声后续又会影响菠萝模型的点云重构。为此,需要适用滤波的方法对菠萝图像进行处理,去除噪声。常用的滤波方法有两种:(1)线性平滑滤波,包括高斯滤波、加权平均滤波、均值滤波等;(2)非线性平滑滤波,比如中值滤波。
  本文采用中值滤波方法对菠萝图像进行去噪,可以消除菠萝图像噪声,以及保持菠萝图像中的细节。其效果如图17所示,为了更直观的表示去噪效果,例子中对菠萝图像增加了噪声。
(a)原图 (b)添加噪声 ©中值滤波
图17 中值滤波效果图

五 结 论

  本文基于我国菠萝种植面积不断增加、菠萝种植业所需人力成本不断提高,菠萝机械化水平整体偏低的现状在了解菠萝采摘机械的发展历程之后,对目前菠萝采摘机械研究的重难点既菠萝的视觉识别进行了一些研究。本文提出了一种基于yolov4卷积神经网络算法的菠萝视觉识别方法,该方法具有识别成功率高的特点,进一步地,基于本识别方法对菠萝点云图像进行ROI提取以及点云质心计算。同时,本文根据菠萝的生长特点暨菠萝处于菠萝果叶丛中,设计了一种菠萝果叶切断机构,可以解决菠萝果叶干扰菠萝的视觉识别及机械采摘的问题。
  与传统的检测识别技术,如:特征分析方法、形状匹配方法等相比较,基于深度学习的识别方法识别成功率更高,利于基于yolov4的神经网络对菠萝图像进行识别,识别平均精准率可达92.65%。菠萝果叶会影响菠萝的视觉识别和采摘。目前菠萝采摘机器人多采用从上往下采摘菠萝的方法既采摘机构设置在菠萝果实的上方,这就不可避免的导致菠萝采摘机械的体积过大。本文提出一种菠萝果叶切断机构设计,可以切断菠萝果叶,有利于菠萝的视觉识别及采摘。切断果叶之后,菠萝采摘机构可以设计在菠萝果实同高的位置,有利于减少菠萝采摘机器人的体积。
  由于能力水平有限,在基于深度学习的菠萝识别方法上没有进行横向及纵向的比较,即仅采用了yolov4神经网络模型进行训练,缺乏与其他神经网络模型训练结果对比,也能对yolov4进行一些改进,进一步提高菠萝识别效率。对于切断机构,仅完成了建模与分析,也没有制作出实物考察其实际工作效果,这是本次研究的欠缺之处。

目录

目 录
1 前言1
1.1 研究的背景和意义1
1.2 国内外水果机器视觉识别技术的研究近况1
1.3 国内外菠萝采摘机械发展状况3
2 总体方案确定5
2.1 方案选择5
2.2 菠萝的视觉识别流程5
2.3 菠萝果叶切断机构设计流程5
3 基于深度学习的菠萝检测模型6
3.1 卷积神经网络简介6
3.2 YOLO卷积神经网络7
3.3 图像采集与数据制作7
3.4 数据训练与检测9
3.5 模型评价10
4 实验环境搭建11
4.1 KinectV2相机测量原理11
4.2 相机架搭建与相机安装12
4.3 图像处理12
5 点云获取与点云处理13
5.1 相机针孔模型13
5.2 点云的获取与处理15
5.3 点云质心求解与验证17
6 菠萝果叶切断机构设计18
6.1 切断机构设计目的及总体设计方案18
6.2 切断机构三维模型19
6.3 电机选取20
6.4 轴的设计与校核21
6.5 联轴器选取25
6.6 菠萝推板的设计27
7 总结28
参考文献30
附录33
附录1 文本转换程序主要代码33
附录2 菠萝彩色图像中值滤波主要代码33

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

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

相关文章

学习笔记三十一:k8s安全管理:认证、授权、准入控制概述SA介绍

K8S安全实战篇之RBAC认证授权-v1 k8s安全管理:认证、授权、准入控制概述认证k8s客户端访问apiserver的几种认证方式客户端认证:BearertokenServiceaccountkubeconfig文件 授权Kubernetes的授权是基于插件形成的,其常用的授权插件有以下几种&a…

垃圾分类箱通过工业4G路由器实现无人值守远程管理

据今年发布的相关数据统计,人们日常生活中每人每天至少能制造1.2kg垃圾,在环保事业中日常垃圾处理已经成为一项紧迫且不可忽视的任务。为了实现城市清洁和环境保护,越来越多的地区开始引入垃圾分类箱。传统的垃圾分类箱管理方式存在着一些不便…

第十五章 EM期望极大算法及其推广

文章目录 导读符号说明混合模型伯努利混合模型(三硬币模型)问题描述三硬币模型的EM算法1.初值2.E步3.M步初值影响p,q 含义 EM算法另外视角Q 函数BMM的EM算法目标函数LEM算法导出 高斯混合模型GMM的EM算法1. 明确隐变量, 初值2. E步,确定Q函数3. M步4. 停止条件 如何应用GMM在聚…

激光雷达的特性总结

激光能识别的上下高度范围是多少? 激光雷达是一种典型的束波型传感器,扫描的射线呈束波状,打到物体上是一个光斑,并且距离越远,光斑越大。激光光斑的大小和激光雷达的制造工艺相关,一般来说在10m处光斑的大小可以达到7cm半径的圆。此外还要考虑到同一个光斑打到不同物体…

掌握DateTimeFormatter,让你的时间格式化更简单

一、介绍 Java 8引入了新的时间日期API,其中DateTimeFormatter是对日期时间格式化的实用类。它提供了一种简便的方法来格式化日期和时间,同时还可以将日期和时间字符串解析为Java对象。 二、特性 DateTimeFormatter具有以下特性: 1. 线程…

vue-cli5.0.x优雅降级,配置项目兼容旧版浏览器

兼容低版本谷歌浏览器 vue-cli5.0.x脚手架下的,如何降低项目版本以适用于底版本的浏览器。 直接使用默认配置打包部署出来的项目再40,60、70版本的谷歌浏览器跑不起来,蓝屏或者浏览器白屏一般这种情况都需要通过Babel去做转换,我…

uniapp原生插件之安卓USB摄像头插件

插件介绍 安卓USB摄像头,支持拍照,录像,停止预览,开启预览,支持多摄像头切换 插件仅支持nvue页面 插件地址 安卓USB摄像头插件 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档地址 uniapp 安…

STM32H750之FreeRTOS学习--------(四)中断管理

四、FreeRTOS中断管理 中断的概念不再过多叙述,学习过逻辑的都知道 中断的执行过程 中断请求 外设产生中断请求(GPIO外部中断、定时器中断等)响应中断 CPU停止执行当前程序,转而去执行中断处理程序(ISR)…

SecureCRT 发送文件内容

当需要连接 Linux 服务器或设备的时候,SecureCRT 是一个利器。有一个工作场景是这样的,工程代码在服务器上编译完后运行,然后用 secureCRT 连接程序的指定端口(用 telnet ),连接上后就往端口里下发配置&…

在美团和阿里6年,很难却也真实...

先简单的说下,本人6年工作经验,曾就职于某大型国企,公司研究院成员,也就职过美团担任高级测试开发工程师,有丰富的高并发大型项目经验。 后端高并发、高性能、高可用性开发,自动化测试框架开发以及软件自动…

@机械装备企业,“专精特新”你需要这样做!

目录 生产过程有4个特点 三大管理难点 01 计划难管控 02 生产难协同 03 现场难管控 机械装备数字化建设怎么做? 01 计划管控 02 生产协同 03 现场数字化 从2021年7月至今,“专精特新”热度一直居高不下,但其实,这一词早在…

大数据可视化分析建模:每个人都是数据分析师

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 第一部分:介…

【嵌入式项目应用】__cJSON基础介绍与代码测试

目录 前言 一、JSON是什么? 1. JSON 基本语法 2. JSON值(value)的类型 3. 逻辑值(true 或 false) 4. null 5. NUMBER 数字(整数或浮点数) 6. STRING 字符串(在双引号""中) 7…

ChatGLM3-6B详细安装过程记录(Linux)

先附上GitHub官方地址: https://github.com/THUDM/ChatGLM3https://github.com/THUDM/ChatGLM3 一、预览 咱们可以先看看完成之后的界面: 1. 基于 Gradio 的网页版 demo 运行以下命令即可打开界面: python web_demo.py 运行界面如下: 2. 基于 Streamlit 的网页版 de…

【23真题】难!均79分!211题目强过985!

今天分享的是23年海南大学838的信号与系统试题及解析。 本套试卷难度分析:22年海南大学838考研真题,我也做过,若有需要戳这里自取!平均分为80-90左右,最高分为133分。本套试题难度中等偏上,题量不多&#…

Python画图之草莓熊

Python-turtle画出草莓熊(有趣小游戏) 一、效果图二、Python代码 一、效果图 二、Python代码 # -*- coding: UTF-8 -*- import turtle as t# 设置背景颜色,窗口位置以及大小 t.colormode(255) # 颜色模式 t.speed(0) t.screensize(850, 760…

通过Python脚本支持OC代码重构实践(二):数据项提供模块接入数据通路的代码生成

作者 | 刘俊启 导读 在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等。这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效率。这时通常通过重构的方式对已…