2 果实图像识别技术研究

在设计采摘机器人时,首先应该研究的就是图像识别技术,因为整个系统的关键就在于图像识别。整个系统由摄像头模块获取实际的空间图像,通过识别的技术的逻辑处理,将所识别的图像转换为电信号,并发送给CPU,在主控CPU中与已设定的参数进行对比,以此来确定目标是否符合采摘要求以及目标的位置信号。因此对果实的图像研究十分重要,需将采集的数据经离散采样后转化为数字图像供识别分析。
2.1 数字图像原理
系统由摄像头来获取待采摘目标的图像,并不能直接发送给单片机进行逻辑处理,需要对图像信号进行处理,将图像信号转化为数字信号,简单来说就是将图像由一个M行N列的矩阵fM×N来表示,如式2.1所示。只有将图像进行数字化处理之后,单片机才能够识别到图像信息,而这个矩阵中的每个点包含的值就是我们所说的图像在该位置的像素值。
在这里插入图片描述
(2.1)
现在用来表示空间颜色的模型有很多种,所谓颜色空间模块,也就是在一个指定的空间里,不同坐标处对应的颜色值是唯一的,目前这种模型在识别系统中应用非常广泛。主要由RGB、CMY、CMYK颜色模型,其中我们一般在数字电路中,采用最多的是RGB。但是并不是所有的都使用RGB,在一些彩色打印机中,使用最多的是CMYK颜色模型。但是上述的几种模型并不是最准确的符合人类识别的颜色模型,最符合的还是HIS模型,因为它在颜色的色调等参数,更加符合人类的识别颜色的标准,因此这种模型是实际应用最多的。
根据上文所述,RGB模型是硬件采集图像使用最多的,这个模型不同于其他模型,它的像素对应的坐标是在笛卡尔坐标来建立的,如图2.1所示。如果把这个模型中的三维坐标都单位化,那么三维坐标的所有值都集中在[0,1]这个区间范围内。RGB颜色模型成色的原理是,三维坐标每一维都是由256个基本灰度组成,一个颜色由坐标上的x、y、z三个灰度叠加而成的彩色图像,每一个像素的像素深度是24位,由此可以计算出整个模型可以表示的颜色有224=16777216种,其中在三维坐标中(0,0,0)表示最深的黑色,(1,1,1)表示最浅的白色。
在这里插入图片描述

图2.1 RGB颜色模型
2.3 果实识别过程
如图2.2为果实图像识别流程图。
在这里插入图片描述

图2.2 果实图像识别流程图
通过查阅相关的资料,对比两种算法的分割质量。资料中,使用matlab来判断两种算的分割质量,具体方法是在matlab设定两种算法的参数,其中统一设置两种算法所要识别的图像为640×520,分别利用两种算法对其进行分割,通过结果可知两种算法的计算结果相近,但是直方图信息快速FCM算法计算速度更加快,具体表现为分割时间很短且识别图像所需要迭代的次数更少,可以得出在相同条件下,直方图信息快速FCM算法更加有效率。

3 硬件电路设计

本设计是基于STM32单片机,如图3.1所示是本设计的方案框图。整个系统主要由识别模块、STM32主控CPU、果实抓取模块以及果实分类模块组成。首先通过摄像头智能识别成熟果实,将果实位置信息发送给单片机,由单片机矢量控制机械臂升降,精准的达到果实的位置,并进行采摘,此时摄像头再次识别果实表面损坏程度,由单片机矢量控制机械臂对果实进行品质分类。
在这里插入图片描述

图3.1 系统方案框图
3.1 主芯片选择
整个装置的主控芯片采用STM32F103VET6。STMicroelectronics公司一直致力于开发出高科技芯片,为用户提供高性能、低功耗的32位数字处理器。其开发了一系列基于ARMCortex-M处理器的32位闪存微控制器产品,其主流的MCU是STM32F103VET6,它是增强型的32位的控制器,这个控制器是以ARM为核心的。Cortex-M3有32位的处理器,不仅如此,其内部的存储器等一些设备都是32位的。这个处理器的内部是将数据和地址总线分开,每个都有自己独立的线路,因此不用担心地址和数据冲突,提高了处理器的效率。图3.2为STM32F103VET6单片机最小系统电路。
在这里插入图片描述

图3.2 STM32F103VET6单片机最小系统电路

4 系统软件设计

第三章介绍了整个系统的硬件电路部分,但要完成整个系统的设计还需要进行系统软件设计才能完成控制功能,因此要有软件程序进行支撑,从而与硬件部分形成相辅相成形态,因此设计整个系统的软件也是实现系统功能一个重要的环节。
4.1 软件开发环境及工具
MDK和IAR都能作为嵌入式编程开发工具,处于使用习惯方面考虑,语音和红外控制家用电器系统在软件代码编程时采用的是MDK,MDK主要适用于各种需要嵌入式开发的处理器。它具有强大的Simulation设备模拟等功能,此外它内部集成了Flash烧写模块,可以自动配置启动代码。使用MDK进行嵌入式开发时,其中左边是编程的目录,右边是编码区间。
RV MDK是MDK的全称,该软件是由KEIL公司研发出来的,该软件广泛应用于嵌入式的编程,也已作为现在学校学习单片机的指定软件,随着KEIL软件的不断使用与研究,软件版本也在不断地跟新,开发比较成熟且应用普遍的包括KEIL3.0、KEIL4.0、KEIL5.0,5.21是现在最新的版本,这些版本的跟新变化主要是在操作界面、兼容性、安装库上的变化,以往的芯片库中包含了STM32F1、STM32F2、STM32F3、STM32F4等芯片库函数,而最新的KEIL版本是要先选择添加芯片库然后在进行嵌入式编程,芯片库函数因此也大大减小,从而节省了软件容量,MDK采用最新的Cortex-M4核处理器,自带库函数省去了底层代码编写所需要的时间,编译的代码更小使得编译等待的时间缩短了,软件具有的调试仿真功能能观察每一步编译的结果。就总体编辑环境而言,不仅很容易上手也可以进行很复杂的代码集成。安装包可以进行新芯片支持,该支持是独立于工具链,也能升级中间库,MDK组成部分如图4.1所示。
从图中可以得知MDK的具有的功能有代码的编辑、代码的编译、库函数自带的底层驱动以及跟踪调试,包安装器包括能进行芯片支持的Device,软件接口标准用于微控制器CMSIS和升级中间库。
在这里插入图片描述

图4.1 MDK组成

5 系统制作与调试

5.1系统制作
实物焊接是否正确直接影响系统的的功能,同样的,元器件是否正确也决定系统功能是否正常,为此实物焊接的步骤如下:
(1)首先根据原理图以及PCB来核对所购买的元器件是否符合封装和参数要求,利用万用表测量电容、电阻等器件的精度是否符合要求,其次对比PCB中器件的封装尺寸,以确保实物能够焊接到PCB上。
(2)核实好器件无误后,按照PCB对应关系从左到右依次焊接元器件,确保无虚焊、焊锡过多、短路等情况出现。
(3)对一些有极性或者方向的芯片,按照PCB对应关系,放置好器件再进行焊接。一般先焊接小的、低的。
5.2 系统调试
本装置对成熟准确快速的识别定位并正确反馈目标坐标数据是实现机械臂采摘装置采摘作业的基础。在实地不同成熟程度的果实下进行目标识别定位实验时,为了体现本采摘装置控制系统对成熟果实识别的准确度,特意选取不同成熟度的果实较多的地方,达到要求的果实均被识别,此外还人工损坏果实表面,本装置均能对果实品质进行分类。
在采摘装置进行采摘时,整个系统的识别装置也在正常工作,如果发现采摘信号不准确,即并未采摘到对应果实时,系统会停止当前动作,并重新对目标果实进行识别定位。经过实验机械臂采摘装置对成熟果实的识别正确率较高,且采摘率也很高。这就表明本设计的机械结构、硬件设计、软件设计能实现对应功能,整个装置符合系统设计设计要求。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐