花椒采摘方法、装置、系统及存储介质转让专利

申请号 : CN202210919966.X

文献号 : CN114973006B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘雪垠曾梦玮宋冬梅肖夏张志会戴莉斯郭恒陈鹏傅瑶

申请人 : 四川省机械研究设计院(集团)有限公司西南交通大学

摘要 :

本发明公开了一种花椒采摘方法、装置、系统及存储介质,该方法包括获取三维激光扫描仪采集的目标花椒树的花椒点云数据;对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。本发明通过在花椒近景识别之前增加花椒远景识别的处理步骤,利用花椒簇识别与分割获得的若干个花椒簇点云,驱动花椒采摘设备依次对每个花椒簇执行采摘,提高了花椒自动化采摘的整体效率。

权利要求 :

1.一种花椒采摘方法,其特征在于,所述方法包括以下步骤:获取三维激光扫描仪采集的目标花椒树的花椒点云数据;

对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;

基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;

将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作;

其中,所述执行采摘动作包括:

当花椒采摘部移动至目标花椒簇的采摘位置时,获取花椒簇深度图像;

基于所述花椒簇深度图像,确定目标花椒簇的精确位置坐标;

将所述精确位置坐标发送至花椒采摘设备,以使所述花椒采摘设备生成采摘指令集,并根据所述采摘指令集驱动花椒采摘部对目标花椒簇执行采摘动作。

2.如权利要求1所述的花椒采摘方法,其特征在于,所述获取三维激光扫描仪采集的目标花椒树的花椒点云数据步骤之前,所述方法还包括:构建三维激光扫描仪对应的第一坐标系和花椒采摘部对应的第二坐标系;

获取标定板在所述第一坐标系下的第一标定板角点点云和在所述第二坐标系下的第二标定板角点点云;

基于所述第一标定板角点点云和所述第二标定板角点点云,确定手眼关系矩阵,并基于所述手眼关系矩阵执行手眼标定。

3.如权利要求1所述的花椒采摘方法,其特征在于,所述获取三维激光扫描仪采集的目标花椒树的花椒点云数据步骤之后,还包括:对所述花椒点云数据执行数据预处理;

其中,所述预处理包括数据裁剪、数据降噪或数据降采样中的一种或多种。

4.如权利要求1所述的花椒采摘方法,其特征在于,所述对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云步骤,具体包括:利用花椒簇识别模型对所述花椒点云数据执行花椒簇识别,获得花椒簇点云团;

利用花椒簇分割算法对所述花椒簇点云团执行花椒簇分割,获得若干个花椒簇点云。

5.如权利要求1所述的花椒采摘方法,其特征在于,所述基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标步骤,具体包括:基于若干个所述花椒簇点云,确定每个花椒簇表面顶点对应的特征向量;

利用所述特征向量,构建包围盒坐标系;

根据每个花椒簇在所述包围盒坐标系中的三维坐标信息,确定每个花椒簇的点云中心坐标。

6.如权利要求1所述的花椒采摘方法,其特征在于,所述确定每个花椒簇的点云中心坐标步骤之后,所述方法还包括:根据每个花椒簇的点云中心坐标和当前花椒采摘部的位置坐标,生成所述目标花椒树对应的花椒簇采摘次序。

7.一种花椒采摘装置,其特征在于,所述装置包括:点云数据获取模块,用于获取三维激光扫描仪采集的目标花椒树的花椒点云数据;

识别与分割模块,用于对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;

确定模块,用于基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;

采摘模块,用于将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作;其中,所述执行采摘动作包括:当花椒采摘部移动至目标花椒簇的采摘位置时,获取花椒簇深度图像;基于所述花椒簇深度图像,确定目标花椒簇的精确位置坐标;将所述精确位置坐标发送至花椒采摘设备,以使所述花椒采摘设备生成采摘指令集,并根据所述采摘指令集驱动花椒采摘部对目标花椒簇执行采摘动作。

8.一种花椒采摘系统,其特征在于,所述系统包括:三维激光扫描仪;

花椒采摘设备;以及

与所述三维激光扫描仪和所述花椒采摘设备通信连接的控制端,所述控制端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的花椒采摘方法程序,所述花椒采摘方法程序被所述处理器执行时实现如权利要求1至7中任一项所述的花椒采摘方法的步骤。

9.一种存储介质,其特征在于,所述存储介质上存储有花椒采摘方法程序,所述花椒采摘方法程序被处理器执行时实现如权利要求1至7中任一项所述的花椒采摘方法的步骤。

说明书 :

花椒采摘方法、装置、系统及存储介质

技术领域

[0001] 本发明涉及自动控制技术领域,尤其涉及到一种花椒采摘方法、装置、系统及存储介质。

背景技术

[0002] 花椒作为一种经济作物在我国广泛种植,具有代表性的种植地有陕西韩城、合阳,甘肃陇南、临夏,四川汉源,河南伏牛山、太行山等。通常种植在山坡、丘陵及房前屋后,因树枝伸展长,具有皮刺,果实小,因而采摘困难,目前基本靠人工进行采摘,严重制约花椒产业发展。
[0003] 随着计算机和自动化技术的快速发展、农业高新技术的应用和普及,机器人技术日渐逐步进入农业生产领域中,促使现代农业走向装备机械化、生产智能化道路。农业机器人的出现和应用,改变了传统的农业劳动方式,大大改善了现代农业运行环境,促进了现代农业的发展的同时降低了农民的劳动强度。
[0004] 采摘机器人是一类针对水果或蔬菜收获作业,具有感知系统的自动化机械收获装备,是集机械、电子信息、计算机科学、人工智能、农业及生命科学等多学科于一体的交叉性边缘科学,其涉及机械结构、传感技术、视觉图像处理、机器人正逆运动学与动力学、控制驱动技术以及信息处理等多学科领域知识。相对于在结构性环境下工作的工业机器人,采摘机器人的开发需充分考虑机器人作业对象的自身特征和外界的生长环境等诸多因素。
[0005] 目前,花椒采摘机器人的视觉识别技术主要以近景花椒果实识别为主,通过阈值分割法、模糊C均值算法、K‑means聚类算法等识别算法,对近景花椒果实目标进行提取和定位。然而,单一的近景识别方案让花椒采摘设备执行完当前采摘区域采摘动作后,无法快速获知下一采摘区域位置,降低了花椒自动化采摘的效率。

发明内容

[0006] 本发明的主要目的在于提供一种花椒采摘方法、装置、系统及存储介质,旨在解决目前单一的近景识别方案在整体区域内的花椒自动化采摘效率不高的技术问题。
[0007] 为实现上述目的,本发明提供一种花椒采摘方法,所述方法包括以下步骤:
[0008] 获取三维激光扫描仪采集的目标花椒树的花椒点云数据;
[0009] 对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;
[0010] 基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;
[0011] 将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。
[0012] 可选的,所述获取三维激光扫描仪采集的目标花椒树的花椒点云数据步骤之前,所述方法还包括:
[0013] 构建三维激光扫描仪对应的第一坐标系和花椒采摘部对应的第二坐标系;
[0014] 获取标定板在所述第一坐标系下的第一标定板角点点云和在所述第二坐标系下的第二标定板角点点云;
[0015] 基于所述第一标定板角点点云和所述第二标定板角点点云,确定手眼关系矩阵,并基于所述手眼关系矩阵执行手眼标定。
[0016] 可选的,所述获取三维激光扫描仪采集的目标花椒树的花椒点云数据步骤之后,还包括:
[0017] 对所述花椒点云数据执行数据预处理;
[0018] 其中,所述预处理包括数据裁剪、数据降噪或数据降采样中的一种或多种。
[0019] 可选的,所述对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云步骤,具体包括:
[0020] 利用花椒簇识别模型对所述花椒点云数据执行花椒簇识别,获得花椒簇点云团;
[0021] 利用花椒簇分割算法对所述花椒簇点云团执行花椒簇分割,获得若干个花椒簇点云。
[0022] 可选的,所述基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标步骤,具体包括:
[0023] 基于若干个所述花椒簇点云,确定每个花椒簇表面顶点对应的特征向量;
[0024] 利用所述特征向量,构建包围盒坐标系;
[0025] 根据每个花椒簇在所述包围盒坐标系中的三维坐标信息,确定每个花椒簇的点云中心坐标。
[0026] 可选的,所述确定每个花椒簇的点云中心坐标步骤之后,所述方法还包括:根据每个花椒簇的点云中心坐标和当前花椒采摘部的位置坐标,生成所述目标花椒树对应的花椒簇采摘次序。
[0027] 可选的,所述执行采摘动作步骤,具体包括:
[0028] 当花椒采摘部移动至目标花椒簇的采摘位置时,获取花椒簇深度图像;
[0029] 基于所述花椒簇深度图像,确定目标花椒簇的精确位置坐标;
[0030] 将所述精确位置坐标发送至花椒采摘设备,以使所述花椒采摘设备生成采摘指令集,并根据所述采摘指令集驱动花椒采摘部对目标花椒簇执行采摘动作。
[0031] 此外,为了实现上述目的,本发明还提供了一种花椒采摘装置,所述装置包括:
[0032] 点云数据获取模块,用于获取三维激光扫描仪采集的目标花椒树的花椒点云数据;
[0033] 识别与分割模块,用于对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;
[0034] 确定模块,用于基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;
[0035] 采摘模块,用于将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。
[0036] 此外,为了实现上述目的,本发明还提供了一种花椒采摘系统,所述系统包括:
[0037] 三维激光扫描仪;
[0038] 花椒采摘设备;以及
[0039] 与所述三维激光扫描仪和所述花椒采摘设备通信连接的控制端,所述控制端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的花椒采摘方法程序,所述花椒采摘方法程序被所述处理器执行时实现如上所述的花椒采摘方法的步骤。
[0040] 此外,为了实现上述目的,本发明还提供了一种存储介质,所述存储介质上存储有花椒采摘方法程序,所述花椒采摘方法程序被处理器执行时实现如上所述的花椒采摘方法的步骤。
[0041] 本发明实施例提出的一种花椒采摘方法、装置、系统及存储介质,该方法包括获取三维激光扫描仪采集的目标花椒树的花椒点云数据;对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。本发明通过在花椒近景识别之前增加花椒远景识别的处理步骤,利用花椒簇识别与分割获得的若干个花椒簇点云,驱动花椒采摘设备依次对每个花椒簇执行采摘,提高了花椒自动化采摘的整体效率。

附图说明

[0042] 图1为本发明实施例中一种花椒采摘系统的结构示意图。
[0043] 图2为本发明实施例中一种控制端的结构示意图。
[0044] 图3为本发明实施例中一种花椒采摘方法的流程示意图。
[0045] 图4为本发明实施例中手眼关系矩阵计算结果示意图。
[0046] 图5为本发明实施例中欧式聚类分割及定位的结果示意图。
[0047] 图6为本发明实施例中一种花椒采摘装置的结构框图。
[0048] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0049] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0050] 目前,在相关技术领域,现有单一的近景识别方案在整体区域内的花椒自动化采摘效率不高。
[0051] 为了解决这一问题,提出本发明的花椒采摘方法的各个实施例。本发明提供的花椒采摘方法通过在花椒近景识别之前增加花椒远景识别的处理步骤,利用花椒簇识别与分割获得的若干个花椒簇点云,驱动花椒采摘设备依次对每个花椒簇执行采摘,提高了花椒自动化采摘的整体效率。
[0052] 参照图1,图1为本发明实施例方案涉及的花椒采摘系统的结构示意图。
[0053] 在本实施例中,花椒采摘系统包括三维激光扫描仪100、花椒采摘设备200以及与所述三维激光扫描仪100和所述花椒采摘设备200通信连接的控制端300。
[0054] 具体而言,三维激光扫描仪100用于采集目标花椒树的花椒点云数据,花椒采摘设备200用于根据控制端的指令执行位置移动、花椒簇深度图像获取和花椒采摘等动作,控制端300用于根据该花椒点云数据生成花椒簇的粗定位(即点云中心坐标)以及根据花椒采摘设备200获取的花椒簇深度图像生成精确位置坐标,进而向花椒采摘设备200发送对应的驱动指令,以完成整个花椒采摘过程的控制。
[0055] 容易理解的,花椒采摘设备采用可自动执行花椒采摘的机器人,该机器人可移动至目标花椒树,以对目标花椒树上的花椒簇进行采摘。
[0056] 在优选的实施例中,花椒采摘设备上设有采摘花椒簇的花椒采摘部,花椒采摘部可以为机械臂、机械爪及对应的驱动控制组件,该花椒采摘部可多自由度旋转以及多个方向伸缩,以对目标花椒树上的不同位置的花椒簇进行采摘。
[0057] 本领域技术人员可以理解,图1中示出的结构并不构成对花椒采摘系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0058] 参照图2,图2为本发明实施例方案涉及的控制端的结构示意图。
[0059] 控制端可以是移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA)、平板电脑(PAD)等用户设备(User Equipment,UE)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等。设备可能被称为用户终端、便携式终端、台式终端等。
[0060] 优选的,控制端还可配置于花椒采摘设备上,通过控制端生成的粗定位和精确位置坐标可直接传输至花椒采摘设备,进而执行花椒采摘步骤。
[0061] 通常,控制端包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的花椒采摘方法程序,所述花椒采摘方法程序配置为实现如前所述的花椒采摘方法的步骤。
[0062] 处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关花椒采摘方法操作,使得花椒采摘方法模型可以自主训练学习,提高效率和准确度。
[0063] 存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的花椒采摘方法。
[0064] 在一些实施例中,控制端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。
[0065] 通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。通信接口303通过外围设备用于接收用户上传的多个移动终端的移动轨迹以及其他数据。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0066] 射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信,从而可获取多个移动终端的移动轨迹以及其他数据。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
[0067] 显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light‑Emitting Diode,有机发光二极管)等材质制备。
[0068] 电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
[0069] 本领域技术人员可以理解,图2中示出的结构并不构成对控制端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0070] 本发明实施例提供了一种花椒采摘方法,参照图3,图3为本发明花椒采摘方法实施例的流程示意图。
[0071] 本实施例中,所述花椒采摘方法包括以下步骤:
[0072] 步骤S100,获取三维激光扫描仪采集的目标花椒树的花椒点云数据。
[0073] 具体而言,控制端获取目标花椒树的花椒点云数据,可通过连接三维激光扫描仪,在三维激光扫描仪预先采集花椒点云数据并依此构建的点云数据库中下载目标花椒树对应的花椒点云数据。
[0074] 需要说明的是,在三维激光扫描仪采集到花椒簇位置信息后,由于点云数据的坐标系与花椒采摘部坐标系不是同一个坐标系,为了让花椒采摘部获知花椒簇的位置信息,精准的执行花椒采摘任务,不能直接利用该花椒簇位置信息,而需要在获取三维激光扫描仪采集的目标花椒树的花椒点云数据之前,执行三维激光扫描仪与花椒采摘部的手眼标定。
[0075] 具体的,首先构建三维激光扫描仪对应的第一坐标系和花椒采摘部对应的第二坐标系,然后获取标定板在所述第一坐标系下的第一标定板角点点云和在所述第二坐标系下的第二标定板角点点云,最后基于所述第一标定板角点点云和所述第二标定板角点点云,确定手眼关系矩阵,并基于所述手眼关系矩阵执行手眼标定。
[0076] 在具体应用中,本实施例可利用PCL(Point Cloud Library,点云库)调用TransformationEstimationSVD类来实现手眼关系矩阵的计算。首先,创建一个刚体变换对象及变换关系矩阵,然后根据TransformationEstimationSVD类中的成员函数estimateRigidTransformation()获取扫描仪与花椒采摘部坐标系下的标定板角点点云,并通过该函数计算出手眼关系矩阵。
[0077] 执行手眼标定的伪代码具体为:
[0078] 输入:三维激光扫描仪与花椒采摘部坐标系下的点云数据。
[0079] 输出:手眼关系矩阵。
[0080] 1.创建花椒采摘部坐标系下角点坐标点云指针 CA;
[0081] 2.创建三维激光扫描仪坐标系下角点坐标点云指针 CB;
[0082] 3.创建 SVD 变换矩阵对象 TESVD;
[0083] 4.创建手眼关系矩阵 transformation;
[0084] 5.计算手眼关系矩阵 TESVD.estimateRigidTransformation(*CA, *CB, transformation)。
[0085] 执行手眼标定获得的手眼关系矩阵计算结果如图4所示。
[0086] 在优选的实施例中,在获取三维激光扫描仪采集的目标花椒树的花椒点云数据步骤之后,还需要对花椒点云数据执行数据预处理。
[0087] 具体的,数据预处理包括数据裁剪、数据降噪或数据降采样中的一种或多种,通过对获取的花椒点云数据执行数据预处理,提高花椒点云数据处理的精准度。
[0088] 步骤S200,对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云。
[0089] 在数据预处理后,即可对所述花椒点云数据执行花椒簇识别与分割处理,最终获得若干个花椒簇点云。
[0090] 具体而言,利用花椒簇识别模型对所述花椒点云数据执行花椒簇识别,获得花椒簇点云团,利用花椒簇分割算法对所述花椒簇点云团执行花椒簇分割,获得若干个花椒簇点云。
[0091] 需要说明的是,执行花椒簇识别与分割步骤可基于PointNet++网络对花椒簇语义分割结果实现。其中,基于深度学习语义分割实现了花椒簇的识别与分割,识别到的花椒簇为花椒树上的所有花椒簇点云团;在此之后,由于识别到的花椒簇点云团中花椒簇与花椒簇之间有一定的距离,因此需要考虑对点云团进行分割得到单个的花椒簇点云。
[0092] 在本实施例中,采用欧式聚类法对花椒簇点云团进行分割。通过设置调试之后最优的参数,不仅可以得到单个花椒簇点云团,还可以得到距离较近的花椒簇点云团组成的单个采摘区域,通过设置合理的欧式聚类参数实现采摘区域的划分。
[0093] 步骤S300,基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标。
[0094] 在获得若干个花椒簇点云之后,即可基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标,以实现对花椒簇的粗定位。
[0095] 具体而言,首先基于若干个所述花椒簇点云,确定每个花椒簇表面顶点对应的特征向量,然后利用所述特征向量,构建包围盒坐标系,最后根据每个花椒簇在所述包围盒坐标系中的三维坐标信息,确定每个花椒簇的点云中心坐标。
[0096] 需要说明的是,执行每个花椒簇的点云中心坐标确定可通过包围盒算法。其中,有向包围盒(Oriented Bounding Box, OBB)相对于坐标轴方向具有任意性,相较于轴对齐包围盒 (Axis Aligned Bounding Box, AABB)的紧密性更高。因此,本实施例中,包围盒算法采用有向包围盒,假设OBB的有向包围盒中心点为 ,半边长为 ,方向矢量为 ,因此OBB包围盒区域定义为:
[0097]
[0098] 在实际应用中,PCL中OBB包围盒实现的原理为:根据物体表面的顶点,通过 PCA(主成分分析)获得特征向量,特征向量组成的坐标系即为OBB包围盒的坐标系。
[0099] 具体而言,在利用PCL执行每个花椒簇的点云中心坐标确定时,可通过 EuclideanClusterExtraction类创建欧式聚类对象,然后通过该类成员函数 setClusterTolerance()、setMinclusterSize()、setMaxClusterSize()分别设置搜索半径、最小聚类点数及最大聚类点数,最后利用 extract()函数进行欧式分割,通过for循环的 方 式 将分 割结 果 进行 保存 。分 割 得到 单 个的 花椒 簇 点云 后 ,通 过 MomentOfInertiaEstimation  类创建转动惯量估计对象,然后通过成员函数 setInputCloud()获取分割出来的花椒簇点云,最后通过成员函数 getMassCenter()即可得到花椒簇点云中心坐标。
[0100] 执行欧式聚类分割及定位的伪代码具体为:
[0101] 输入:深度学习语义分割的花椒簇点云团。
[0102] 输出:单个花椒簇的中心坐标。
[0103] 1.创建欧式聚类对象seg;
[0104] 2.设置搜索半径setClusterTolerance();
[0105] 3.设置最小聚类点数setMinclusterSize();
[0106] 4.设置最大聚类点数setMaxClusterSize();
[0107] 5.欧式分割extract();
[0108] 6.保存每个分割结果
[0109] for (it = cluster_indices.begin(); it != cluster _indices  .end(); ++it)
[0110] {
[0111] for (pit = cluster_indices.begin(); pit != cluster _indices .end(); ++pit)
[0112] cloud_cluster‑>push_back();
[0113] } ;
[0114] 7.设置单个花椒簇点云指针redpepper;
[0115] 8.创建转动惯量估计对象moment_of_inertia;
[0116] 9.获取花椒簇点云setInputCloud(redpepper);
[0117] 10.计算花椒簇点云中心坐标 getMassCenter();
[0118] 11.输出中心坐标outfile << mass_center(0) <<""<< mass_center(1) <<""<< mass _ center(2) <<"\n"。
[0119] 执行欧式聚类分割及定位的结果如图5所示。
[0120] 在优选的实施例中,确定每个花椒簇的点云中心坐标步骤之后,还可根据每个花椒簇的点云中心坐标和当前花椒采摘部的位置坐标,生成所述目标花椒树对应的花椒簇采摘次序。
[0121] 在本实施例中,在对目标花椒树上的花椒簇采摘顺序进行排序时,可基于耗时最短、移动路程最短或仅采摘满足预设要求的花椒等不同原则,在获取的若干个花椒簇的点云中心中选取需求的位置坐标,按需求的原则生成花椒簇采摘次序。
[0122] 在此基础上,还可在排序之前,对每个花椒簇的生长状态(例如成熟情况、虫害情况)进行采集(例如图像采集并识别的方式),以此可根据获得的花椒簇的生长状态,设置选采花椒时的预设要求。
[0123] 步骤S400,将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。
[0124] 在获得每个花椒簇的点云中心坐标之后,即可将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,完成花椒簇的粗定位和花椒采摘部的粗定位移动。
[0125] 在此之后,执行采摘动作为花椒采摘部移动至目标花椒簇的采摘位置后,执行精确的花椒簇采摘动作。
[0126] 具体而言,当花椒采摘部移动至目标花椒簇的采摘位置时,首先获取花椒簇深度图像,然后基于所述花椒簇深度图像,确定目标花椒簇的精确位置坐标,最后将所述精确位置坐标发送至花椒采摘设备,以使所述花椒采摘设备生成采摘指令集,并根据所述采摘指令集驱动花椒采摘部对目标花椒簇执行采摘动作。
[0127] 需要说明的是,本实施例中,控制端与三维激光扫描仪之间的通讯主要是为了控制其工作状态及下载其内部储存卡中的点云数据。控制端与花椒采摘设备之间的通讯则是为了将识别到的花椒簇位置信息发送到花椒采摘设备, 使其移动到花椒簇近景端,便于近景识别视觉系统工作。
[0128] 因此,控制端与三维激光扫描仪之间的通讯可采用徕卡SDK工具包实现的,SDK工具包内打包有同扫描仪之间的连接、控制设备启停及数据下载功能,即可实现控制端与三维激光扫描仪之间的通讯需求。控制端与花椒采摘设备之间的通讯可采用更能满足本申请应用场景所需的距离和传输效率要求的TCP/IP协议。
[0129] 本实施例提供一种花椒采摘方法,通过在花椒近景识别之前增加花椒远景识别的处理步骤,利用花椒簇识别与分割获得的若干个花椒簇点云,驱动花椒采摘设备依次对每个花椒簇执行采摘,提高了花椒自动化采摘的整体效率。
[0130] 参照图6,图6为本发明花椒采摘装置实施例的结构框图。
[0131] 如图6所示,本发明实施例提出的花椒采摘装置包括:
[0132] 点云数据获取模块10,用于获取三维激光扫描仪采集的目标花椒树的花椒点云数据;
[0133] 识别与分割模块20,用于对所述花椒点云数据执行花椒簇识别与分割,获得若干个花椒簇点云;
[0134] 确定模块30,用于基于若干个所述花椒簇点云,确定每个花椒簇的点云中心坐标;
[0135] 采摘模块40,用于将所述点云中心坐标发送至花椒采摘设备,以使所述花椒采摘设备驱动花椒采摘部依次移动至若干个花椒簇的采摘位置,并执行采摘动作。
[0136] 本发明花椒采摘装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
[0137] 此外,本发明实施例还提出一种存储介质,所述存储介质上存储有花椒采摘方法程序,所述花椒采摘方法程序被处理器执行时实现如上文所述的花椒采摘方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0138] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0139] 另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0140] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。