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

news/2024/11/23 0:24:25/

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

文章目录

    • 概要
  • 一、课题内容
  • 二、总体方案确定
    • 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.ppmy.cn/news/1200872.html

相关文章

【NI-DAQmx入门】外部采样时钟相关

1.时钟的作用 时钟在几乎所有测量系统中都起着至关重要的作用。通过硬件定时测量,时钟控制采样或更新的发生时间。与依赖软件计时测量相比,您可以选择硬件定时测量来实现采样或更新之间更一致的时间间隔。以数模转换器特性分析为例。该应用由三个基本部分…

记录:Unity脚本的编写5.0

目录 前言创建动画Unity Animation、Animator常用类关于两者的区别Animator 编写脚本 大型连续剧之在untiy中(或者别的什么活动) 前言 之前在场景中添加了背景音乐,而在我们的日常的体验中,可以发现游戏或者场景中有很多有趣的动…

ACWing.第 128 场周赛 (B、C题解)

B、5286. 翻倍(思维推导) 一、题目要求 给定两个正整数,初始时两数均为 1。 你可以进行任意次(也可以不进行)翻倍操作,每次操作任选一个非负整数 k,令两数中的一个数乘以 k,另一个…

Linux 系统管理工具 supervisor 详解

目录 1. Linux 系统管理工具 supervisor 详解1.1. supervisor 进程管理服务组成1.2. 进程管理服务部署1.3. 进程管理服务配置信息1.4. 进程管理服务命令使用1.5. 进程管理服务启动应用1.6. 进程管理服务进程1.6.1. 进程管理应用实战-Nginx 1. Linux 系统管理工具 supervisor 详…

面试问题?

1.面向对象的特征? 2.开放闭合 3.java中的泛型可以用基本类型吗? 4.重载和重写的区别? 5.string、stringbuffer、stringbuilder? 6.单例模式的实现方式有哪几种? 7.volicate除了保证 8.sy是重量级锁还是轻量级锁&#xff…

self.register_buffer方法使用解析(pytorch)

self.register_buffer就是pytorch框架用来保存不更新参数的方法。 列子如下: self.register_buffer("position_emb", torch.randn((5, 3)))第一个参数position_emb传入一个字符串,表示这组参数的名字,第二个就是tensor形式的参数…

如何快速学会自动化测试?

前言 自动化测试是现代软件开发领域中越来越流行的一种测试方法。它使用软件工具和脚本来执行测试,以提高测试的效率和准确性,减少测试的成本和时间。下面是一些常见的自动化测试技术,以及它们的优缺点。 同时,在这我准备了一份…

德国爆发大规模勒索软件攻击,超70个城市市政服务瘫痪

根据11月3日消息称,德国西部本周发生大规模勒索软件攻击,多个城市和地区的地方政府服务陷入瘫痪。 上周一(10月30日)早上,德国地方市政服务提供商Sdwestfalen IT公司的服务器被未知的黑客团伙加密。为阻止恶意软件传播…