掌桥专利:专业的专利平台
掌桥专利
首页

平粮高度计算方法、控制装置、存储介质及平粮系统

文献发布时间:2023-06-19 18:37:28


平粮高度计算方法、控制装置、存储介质及平粮系统

技术领域

本发明涉及粮仓平粮技术领域,具体涉及一种平粮高度计算方法、控制装置、存储介质及平粮系统。

背景技术

粮食存储是粮食流通的一个重要组成部分,粮食存储技术对食物的质量和数量影响巨大。目前,粮食仓库管理面对的是粗放式管理,如条件差,低质量的人员,科学和技术内容缺乏等等。进一步改善粮食储备条件,确保绿色科学的粮食储备体系建设,确保食品的安全存储和安全的质量是非常重要的。近年来粮食储存仓的规模越来越大,仓内粮食堆积层也越来越厚,而目前粮食储存业的平粮工作,大部分还保留着人工作业,不仅平粮速度慢、劳动强度高,并且多为重复性工作,仓库内粉尘多,当粮仓内局部粮食发热或异常时,需要做深挖处理,然后平整如果也依靠人工的话,工作既不安全强度又大,效率极低。

目前国内外的用于粮食平整的机器人比较少,大致分为三类:固定式、移动式以及复合式。固定式一般是在粮仓的顶部作业,如桁架式平粮装置效率高,工作质量也高,但有部分角落是死角;移动式的体积小,相对比较灵活,但工作效率不高;复合式是将其两种进行组合,实现优势互补,但移动式的有一个缺点就是容易倾倒。目前无论采用哪一种平粮装置都存在一个问题亟需解决:对粮仓谷堆进行平整作业时,基于整个粮仓谷堆情况的平整目标高度问题没有提出和解决。以桁架式平粮装置为例,在进行粮面平整作业时机器人在Z轴方向应该下降多少可以实现粮面的整体平整,目前采用是人工目测,通过遥控机器人进行作业,由于人的主观影响无法考虑整体的平整情况,容易导致粮面呈现小角度的倾斜,这使得在大型粮仓工作时,在长度方向左右两端存在巨大误差。

发明内容

本发明的主要目的是提出一种平粮高度计算方法、控制装置、存储介质及平粮系统,旨在解决现有大型粮仓内的平粮高度难以确定,导致平粮后粮面倾斜的问题。

为实现上述目的,本发明提出的一种平粮高度计算方法,用于计算当粮仓内的粮食顶面不规则时的平粮高度,以指导平粮装置对粮仓内的粮食顶面进行平粮,所述平粮高度计算方法包括以下步骤:

获取多个标定区的单元图像,其中,多个所述标定区为粮食顶面沿着横向和纵向划分形成的多个区域;

将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像,其中,各所述长条状图像在形成过程中依次形成有多个组合图像,各所述组合图像由所述单元图像与相邻的所述单元图像或者相邻的所述组合图像拼接而成;

根据各所述组合图像依次获得多个样板深度矩阵,根据各所述样板深度矩阵获得对应所述组合图像的组合深度矩阵,最终获取多个长条状图像的横向深度矩阵;

获取相邻两个所述横向深度矩阵的重合边界,根据重合边界的位置将多个所述横向深度矩阵沿纵向依次拼接获取整体深度矩阵;

根据所述整体深度矩阵获取平粮装置所在平面与粮仓内的粮食顶面之间的空间体积;

根据所述空间体积和粮仓的平面面积计算获得平粮高度。

可选地,所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤之前,还包括:

对多个所述单元图像灰度化处理,获取多个所述单元图像的灰度图;

对多个所述灰度图进行二值化处理,获取多个所述单元图像的二值化图;

获得各所述二值化图中白色像素点的数量在纵向或者横向上的分布曲线;

对比相邻的两个所述二值化图的所述分布曲线,以对相邻两个所述单元图像进行第一次匹配,其中,第一次匹配的结果包括相邻两个所述单元图像的相似区域;

所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤包括:

根据第一次匹配的结果,对相邻的两个所述单元图像第二次匹配,其中,第二次匹配的结果包括相邻的两个所述单元图像的相似区域内的特征点;

根据相似区域中获取的特征点,将多个所述单元图像沿横向依次拼接形成所述长条状图像;

在纵向重复上述步骤,以获得多个所述长条状图像。

可选地,所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤,包括:

通过SURF算法计算获得每两个相邻的所述单元图像中的多个特征点,根据多个所述特征点获得多个初始变换矩阵,其中,多个所述特征点为两个相邻的所述单元图像中相互匹配的像素点;

通过RANSAC算法对多个所述初始变换矩阵计算,以筛选多个所述初始变换矩阵中对应点数目最多的确定为变换矩阵H,计算公式如下:

其中,x、y为两个相邻的所述单元图像中其中之一的像素的行列坐标,x’和y’为两个相邻的所述单元图像其中另一的像素的行列坐标,h

根据所述图像变换矩阵H将相邻两个所述单元图像拼接形成组合图像;

重复上述步骤,将横向的下一个所述单元图像与所述组合图像拼接,以将多个所述单元图像沿横向依次拼接,以形成所述长条状图像。

可选地,所述单元图像包括单元像素信息和单元深度矩阵,通过所述单元像素信息的像素数量和所述单元深度矩阵的元素数量确定比例系数k;

所述“建立样板深度矩阵,根据多个所述长条状图像获取多个横向深度矩阵”的步骤包括:

获取各所述组合图像的尺寸;

根据所述比例系数k计算各所述组合图像对应的所述样板深度矩阵的尺寸,以建立对应的所述样板深度矩阵;

根据两个相邻的所述单元图像拼接时的重合部分和所述比例系数k计算两个所述单元深度矩阵的重合部分;

对两个所述单元深度矩阵的重合部分的元素点取平均值并拼接,以形成与所述组合图像对应的组合深度矩阵;

重复上述步骤,将横向的下一个所述单元深度矩阵与所述组合深度矩阵拼接,以将多个所述单元深度矩阵沿横向依次拼接,以形成所述横向深度矩阵。

可选地,以纵向为所述横向深度矩阵的列方向,以横向为所述横向深度矩阵的行方向;

所述“获取相邻两个所述横向深度矩阵在纵向上的重合边界,根据重合边界的位置将多个所述横向深度矩阵沿纵向依次拼接获取整体深度矩阵”的步骤包括:

获取当前所述横向深度矩阵位于相邻的所述横向深度矩阵一侧的边界行;

以相邻的所述横向深度矩阵减去当前所述横向深度矩阵的边界行,并将结果取绝对值;

将结果行求和,获取行求和中的最小值所在行,并确定为所述重合边界;

根据所述重合边界将两个所述横向深度矩阵拼接;

重复上述步骤,将多个所述横向深度矩阵依次拼接形成所述整体深度矩阵。

可选地,所述“根据所述整体深度矩阵获取平粮装置所在平面与粮仓内的粮食顶面之间的空间体积”的步骤包括:

获取所述整体深度矩阵中每个元素的面积dρ,使用微元法计算机器人所在平面与粮仓内的粮食顶面之间的体积,计算公式如下:

V=∫∫

其中,D表示机器人所在平面;V表示机器人所在平面与粮仓内的粮食顶面之间的体积;x、y分别代表整体深度矩阵中的行和列。

可选地,所述粮仓的边缘设有进出口,所述“机器人在粮仓的上方沿平面运动,并依次获取多个粮仓内的粮食顶面的单元图像”步骤之前,还包括:

判断是否需要全局更新;

若是,执行所述“将粮仓沿纵向和横向划分为多个标定区,并依次获取多个所述标定区的单元图像”步骤;

若否,获取与所述进出口相邻的一排多个所述标定区,以排为单位向所述粮仓的内侧依次获取每一排的多个所述标定区的所述单元图像,将每一排的各所述单元图像与前次获取的所述单元图像做对比,判断是否发生变化,若发生变化则更新对应所述标定区的所述单元图像,直至判断某一排多个所述单元图像均没有发生变化为止;

根据更新后的多个所述单元图像和没有发生变化的多个所述单元图像,执行所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤。

本发明还提供一种平粮高度控制装置,所述平粮高度控制装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的粮仓的平粮高度计算程序,所述粮仓的平粮高度计算程序配置为实现如上述任一项所述的平粮高度计算方法的步骤。

本发明还提供一种存储介质,所述存储介质上存储有粮仓的平粮高度计算程序,所述粮仓的平粮高度计算程序被处理器执行时实现如上述任一项任一项所述的平粮高度计算方法的步骤。

本发明还提供一种平粮系统,用以设置在粮仓内,所述平粮系统包括:

平粮装置,可活动设置在粮仓内,用以进行平粮作业;

深度相机,设于所述平粮装置的下端,所述深度相机用以拍摄粮仓的粮面,以获得单元图像信息;

驱动装置,设于粮仓内,所述驱动装置驱动连接所述平粮装置,用以驱动所述平粮装置沿纵向、横向和上下方向可活动设置;以及,

平粮高度控制装置,安装于所述平粮装置,与所述平粮装置、所述深度相机和所述驱动装置之间电连接,所述平粮高度控制装置为如上所述的平粮高度控制装置。

本发明的技术方案中,获取多个标定区的单元图像,其中,多个所述标定区为粮食顶面沿着横向和纵向划分形成的多个区域;将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像,其中,各所述长条状图像在形成过程中依次形成有多个组合图像,各所述组合图像由所述单元图像与相邻的所述单元图像或者相邻的所述组合图像拼接而成;根据各所述组合图像依次获得多个样板深度矩阵,根据各所述样板深度矩阵获得对应所述组合图像的组合深度矩阵,最终获取多个长条状图像的横向深度矩阵;获取相邻两个所述横向深度矩阵的重合边界,根据重合边界的位置将多个所述横向深度矩阵沿纵向依次拼接获取整体深度矩阵;根据所述整体深度矩阵获取平粮装置所在平面与粮仓内的粮食顶面之间的空间体积;根据所述空间体积和粮仓的平面面积计算获得平粮高度。将多个所述单元图像拼接,根据所述单元图像的拼接位置进而将多个所述单元深度矩阵拼接,最终建立整体深度矩阵,通过所述整体深度矩阵来计算平粮装置所在平面和粮食顶面之间的空间体积,用空间体积除以面积获得平粮装置与目标平粮高度之间的距离,也即获得目标平粮高度,解决现有平粮高度难以确定的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1是本发明提供的平粮系统的一实施例的结构示意图;

图2本发明实施例方案涉及的硬件运行环境的平粮高度控制装置的结构示意图;

图3为本发明提供的平粮高度计算方法的第一实施例的结构示意图;

图4为本发明提供的平粮高度计算方法的第二实施例的结构示意图;

图5为图4实施例中待拼接的两张二值化图的简单示意图;

图6为图5中两张二值化图中白色像素点的分布曲线;

图7为本发明提供的平粮高度计算方法的第三实施例的结构示意图。

附图标号说明:

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,全文中出现的“和/或”的含义,包括三个并行的方案,以“A和/或B”为例,包括A方案、或B方案、或A和B同时满足的方案。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

目前国内外的用于粮食平整的机器人比较少,大致分为三类:固定式、移动式以及复合式。固定式一般是在粮仓的顶部作业,如桁架式平粮装置效率高,工作质量也高,但有部分角落是死角;移动式的体积小,相对比较灵活,但工作效率不高;复合式是将其两种进行组合,实现优势互补,但移动式的有一个缺点就是容易倾倒。目前无论采用哪一种平粮装置都存在一个问题亟需解决:对粮仓谷堆进行平整作业时,基于整个粮仓谷堆情况的平整目标高度问题没有提出和解决。以桁架式平粮装置为例,在进行粮面平整作业时机器人在Z轴方向应该下降多少可以实现粮面的整体平整,目前采用是人工目测,通过遥控机器人进行作业,由于人的主观影响无法考虑整体的平整情况,容易导致粮面呈现小角度的倾斜,这使得在大型粮仓工作时,在长度方向左右两端存在巨大误差。

请参阅图1,本发明提出一种平粮系统,用以设置在粮仓内,所述平粮系统包括平粮装置1、深度相机2、驱动装置3和平粮高度控制装置,所述平粮装置1可活动设置在粮仓内,用以进行平粮作业;所述深度相机2设于所述平粮装置1的下端,所述深度相机2用以拍摄粮仓的粮面,以获得单元图像信息;所述驱动装置3设于粮仓内,所述驱动装置3驱动连接所述平粮装置1,用以驱动所述平粮装置1沿纵向、横向和上下方向可活动设置;所述平粮高度控制装置安装于所述平粮装置1,与所述平粮装置1、所述深度相机2和所述驱动装置3之间电连接。本发明通过所述深度相机2拍照获取粮仓的粮面,以获得多个所述单元图像信息,并将多个所述单元图像信息传输给所述平粮高度控制装置,所述平粮高度控制装置经计算获得平粮高度数据,用以指导所述驱动装置3驱动所述平粮装置1活动至对应平粮高度的平面,并在对应平粮高度沿平面运动进行平粮。

在本发明一实施例中,所述平粮装置1为桁架式平粮机器人11,所述桁架式平粮机器人11包括两个纵梁13、横梁12和平粮机器人11,两个所述纵梁13沿横向延伸,并沿纵向间隔设置于粮仓纵向的两侧;所述横梁12沿纵向延伸,所述横梁12纵向的两端分别活动安装在两个所述纵梁13上,并沿两个所述纵梁13延伸方向可滑动设置;所述平粮机器人11沿纵向可活动安装在所述横梁12上。所述驱动装置3包括伸缩杆33、两个横向驱动机构32和纵向驱动机构31,所述伸缩杆33设有多个,多个所述伸缩杆33沿上下方向延伸并分别设置在两个所述纵梁13的下端,用以驱动两个所述纵梁13沿上下方向可活动设置,以带动所述平粮机器人11在上下方向活动,两个所述横向驱动机构32分别安装在所述纵梁13上,用以驱动所述横梁12沿横向运动,所述纵向驱动机构31安装在所述横梁12上,用以驱动所述平粮机器人11沿纵向运动,以实现所述平粮机器人11在纵向、横向和上下方向可活动设置。

在本发明又一实施例中,所述驱动装置3包括伸缩杆、两个横向驱动机构32和纵向驱动机构31,所述伸缩杆设有一个,所述伸缩杆对应设置在所述平粮机器人11和所述横梁12之间,两个所述横向驱动机构32分别安装在所述纵梁13上,所述纵向驱动机构31与所述伸缩杆的上端驱动连接,以驱动所述伸缩杆沿纵向运动,所述伸缩杆的下端与所述平粮机器人11固定连接,以带动所述平粮机器人11沿纵向和上下方向运动,以实现所述平粮机器人11在纵向、横向和上下方向可活动设置。可以理解的是,两个所述纵梁13的下侧分别设有多个支撑柱,用以使所述纵梁13保持在一定的高度。

需要说明的是,所述横向驱动机构32和所述纵向驱动机构31的具体形式在此不做限制,在本实施例中,所述横向驱动机构32和所述纵向驱动机构31为伺服电机,在其他实施例中,所述横向驱动机构32和所述纵向驱动机构31还可以是液压组件,其具体连接方式是本领域技术人员所公知的,在此不做描述。

需要进一步说明的是,所述伸缩杆33具体为液压伸缩杆33,液压伸缩杆33可载重量大,动力足且运动稳定。在其他实施例中,所述伸缩杆33还可以是齿轮齿条机构或者螺纹螺杆机构配合大功率电机,实现所述伸缩杆33的伸缩运动,具体设置方式同样是本领域技术人员所公知的,在此不做描述。

进一步地,所述深度相机2固定安装在所述平粮机器人11的下端,改造简单便捷,且易于获取所述平粮机器人11所在平面高度。

在本发明实施例中,所述平粮机器人11为市场上流通的常规装置,其具体形式在此不做限制,在本实施例中,所述平粮机器人11具体包括沿侧向延伸的多个平粮杆,多个所述平粮杆沿所述平粮机器人11的周向均匀分布,所述平粮机器人11还包括转动构件,用以驱动多个所述平粮杆沿上下方向轴线转动。通过所述驱动装置3带动多个所述平粮杆活动至使多个所述平粮杆的下断面处于对应平粮高度时,通过多个所述平粮杆拨动粮食实现平粮。

参照图2,图2为本发明实施例方案涉及的硬件运行环境的平粮高度控制装置结构示意图。

如图2所示,该平粮高度控制装置可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对平粮高度控制装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图2所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及平粮高度计算程序。

在图2所示的平粮高度控制装置中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明平粮高度控制装置中的处理器1001、存储器1005可以设置在平粮高度控制装置中,所述平粮高度控制装置通过处理器1001调用存储器1005中存储的平粮高度计算程序,并执行本发明实施例提供的平粮高度计算方法。

本发明实施例提供了一种平粮高度计算方法,用于计算当粮仓内的粮食顶面不规则时的平粮高度,以指导平粮装置对粮仓内的粮食顶面进行平粮,参照图3,图3为本发明平粮高度计算方法第一实施例的流程示意图。

本实施例中,所述平粮高度计算方法包括以下步骤:

S20、获取多个标定区的单元图像,其中,多个所述标定区为粮食顶面沿着横向和纵向划分形成的多个区域;

在本步骤中,由于本计算方法可以适用大面积粮仓,因此单次拍摄很难获取整体图像,而且会降低精度。因此将整个粮食顶面沿纵向和横向划分为多个所述标定区,获取每个所述标定区的所述单元图像。

具体地,通过所述驱动装置驱动所述平粮装置移动,以带动所述深度相机沿纵向和横向在平面移动,通过所述深度相机获取多个所述标定区的所述单元图像。

可以理解的是,为保证图像拼接的完整性,所述深度相机获取的各所述单元图像与相邻的所述单元图像会有部分重合。

S30、将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像,其中,各所述长条状图像在形成过程中依次形成有多个组合图像,各所述组合图像由所述单元图像与相邻的所述单元图像或者相邻的所述组合图像拼接而成;

在本步骤中,将多个所述单元图像进一步处理,多个所述单元图像沿纵向和横向呈阵列排布有多列和多行,沿横向分别将位于同一行的多个所述单元图像依次拼接形成多个所述长条状图像。

具体地,每个所述长条状图像的形成过程中,先将每行的第一个所述单元图像和与之相邻的第二个所述单元图像拼接形成第一个所述组合图像,将第一个所述组合图像和与之相邻的第三个所述单元图像拼接形成第二所述组合图像,以此类推直至拼接至每行的最后一个所述单元图像,形成最后一个所述组合图像,最后一个所述组合图像也即所述长条状图像。

需要说明的是,粮仓一般呈矩形设置,可以为正方形也可以是长方形,在本实施例中,如果粮仓是正方形则纵向和横向无具体限制,如果粮仓是长方形,因为图像拼接的速度较快,则以粮仓的长度方向为横向,以粮仓的宽度方向为纵向,以增加所述长条状图像的长度,以提高拼接速度,减少运算量。

进一步地,步骤S30包括以下步骤:

S31、通过SURF(Speeded Up Robust Features,快速鲁棒特征点法)算法计算获得每两个相邻的所述单元图像中的多个特征点,根据多个所述特征点获得多个初始变换矩阵,其中,多个所述特征点为两个相邻的所述单元图像中相互匹配的像素点;

在本步骤中,通过SURF算法可以对两个相邻的所述单元图像中重合部分的特征点进行提取和匹配,并根据提取的多个特征点获得所述初始变换矩阵,由于特征点较多,因此一般会获得多个所述初始变换矩阵。

S32、通过RANSAC(Random Sample Consensus)算法对多个所述初始变换矩阵计算,以筛选多个所述初始变换矩阵中对应点数目最多的确定为变换矩阵H,计算公式如下:

其中,x、y为两个相邻的所述单元图像中其中之一的像素的行列坐标,x’和y’为两个相邻的所述单元图像其中另一的像素的行列坐标,h

由于在步骤S31中,获取了多个所述初始变换矩阵,因此需要对多个所述初始变换矩阵进行筛选。在本步骤中,通过RANSAC算法对多个所述初始变换矩阵进行筛选。具体地,通过对各所述初始变换矩阵进行验算,计算在应用各所述初始变换矩阵的情况下,相邻两个所述单元图像中对应像素点数目,以对应像素点数目最多的作为变换矩阵H。

需要说明的是,RANSAC算法同样是机器视觉领域的常用技术手段,其具体计算方法可以参考现有技术,在此不做过多描述。

S33、根据所述图像变换矩阵H将相邻两个所述单元图像拼接形成组合图像;

在本步骤中,继续利用SURF算法,根据求得的变换矩阵H,将相邻两个所述单元图像拼接合成一个组合图像。

需要说明的是,SURF算法为图像拼接领域的常用技术手段,其具体计算方法可参考现有技术,在此不做过多描述。

S34、重复上述步骤,将横向的下一个所述单元图像与所述组合图像拼接,以将多个所述单元图像沿横向依次拼接,以形成所述长条状图像。

S40、根据各所述组合图像依次获得多个样板深度矩阵,,根据各所述样板深度矩阵获得对应所述组合图像的组合深度矩阵,最终获取多个长条状图像的横向深度矩阵;

在本步骤中,随着多个所述单元图像依次拼接形成各所述组合图像,对应各所述组合图像建立对应多个所述样板深度矩阵,所述样板深度矩阵仅包含矩阵的尺寸,不包含深度数据,根据所述深度相机获取的各所述单元图像内的深度信息对应填充到所述样板深度矩阵中,以形成所述组合深度矩阵,当最后一个所述组合图像拼接完成时,对应形成最后一个所述组合深度矩阵,最后一个所述组合深度矩阵也即所述横向深度矩阵。

进一步地,所述单元图像包括单元像素信息和单元深度矩阵,通过所述单元像素信息的像素数量和所述单元深度矩阵的元素数量确定比例系数k;

步骤S40包括以下步骤:

S41、获取各所述组合图像的尺寸;

需要说明的是,所述深度相机的拍摄像素和深度矩阵的元素数量为已知数值,但各所述单元图像与相邻所述单元图像的重合部分的尺寸不清楚,通过上述步骤获得的各所述组合图像可以得知重合部分的尺寸,将重合部分减去即可获得各所述组合图像的尺寸,所述组合图像的尺寸包括图像大小以及像素数量。

S42、根据所述比例系数k计算各所述组合图像对应的所述样板深度矩阵的尺寸,以建立对应的所述样板深度矩阵;

需要说明的是,所述样板深度矩阵的尺寸包括样板矩阵的尺寸以及元素数量。

S43、根据两个相邻的所述单元图像拼接时的重合部分和所述比例系数k计算两个所述单元深度矩阵的重合部分;

S44、对两个所述单元深度矩阵的重合部分的元素点取平均值并拼接,以形成与所述组合图像对应的组合深度矩阵;

在本步骤中,为提高拼接后的所述组合深度矩阵的精度,对两个所述单元深度矩阵的重合部分的元素店相加取平均值,以形成拼接后的深度矩阵,具体的运算过程使用MATLAB软件计算,在MATLAB中的运算式如下:depth(:,A-i)=(data_depth(:,A-i)+data_depth2(:,bianyuan+1-i))/2

其中,depth代表所述组合深度矩阵;data_depth和data_depth2表示待拼接的两个所述单元深度矩阵;bianyuan是所述组合图像中两个所述单元图像的拼接边界所在列;A表示对应矩阵的总列数;i为列数,具体地,i从1依次取到bianyuan所在的列数。

具体地,depth(:,A-i)表达的是所述组合矩阵depth中所有行,第(A-i)列;data_depth(:,A-i)表达的是所述单元矩阵data_depth中所有行,第(A-i)列;data_depth2(:,bianyuan+1-i)表达的是所述单元矩阵data_depth2中所有行,第(bianyuan+1-i)列。

S45、重复上述步骤,将横向的下一个所述单元深度矩阵与所述组合深度矩阵拼接,以将多个所述单元深度矩阵沿横向依次拼接,以形成所述横向深度矩阵。

S50、获取相邻两个所述横向深度矩阵的重合边界,根据重合边界的位置将多个所述横向深度矩阵沿纵向依次拼接获取整体深度矩阵;

在本步骤中,将相邻的两个所述横向深度矩阵拼接时,由于重合边界的长度较长,仅此使用上述方法拼接会导致运算量过大,因此通过获取两个所述横向深度矩阵的重合边界,根据重合边界的位置直接拼接,进而获得所述整体深度矩阵。

进一步地,步骤S50包括以下步骤:

S51、获取当前所述横向深度矩阵位于相邻的所述横向深度矩阵一侧的边界行;

S52、以相邻的所述横向深度矩阵减去当前所述横向深度矩阵的边界行,并将结果取绝对值;

S53、将结果行求和,获取行求和中的最小值所在行,并确定为所述重合边界;

S54、根据所述重合边界将两个所述横向深度矩阵拼接;

S55、重复上述步骤,将多个所述横向深度矩阵依次拼接形成所述整体深度矩阵。

需要说明的是,在拼接时,从位于纵向的一端作为第一个所述横向深度矩阵,与之相邻的所述横向深度矩阵作为第二个所述横向深度矩阵,通过用第二个所述横向深度矩阵减去第一个所述横向深度矩阵的边界行,即可得到一个差异度矩阵,将所述差异度矩阵取绝对值然后行求和,其中,行求和的结果中最小值所在行,即表明最小值所在行对应到第二个所述横向深度矩阵中的行与第一个所述横向深度矩阵的边界行差异度最小,即可确定为第二个所述横向深度矩阵与第一个所述横向深度矩阵的所述重合边界,即可以所述重合边界为标准进行拼接。以此类推沿纵向将后续多个所述横向深度矩阵拼接即可获得所述整体深度矩阵。此方法大大缩小图片拼接式的运算量。

具体地,上述步骤的运算过程使用MATLAB软件计算,在MATLAB中的运算式如下:

difference(i,:)=data_depth2(i,:)-data_depth(B,:)

c=sum(abs(difference),2)

bianyuan=find(c=min(c))

其中,difference是存储两个所述横向深度矩阵差异度的所述差异度矩阵;data_depth和data_depth2表示待拼接的两个所述横向深度矩阵,B为所述横向深度矩阵的总行数;i为行数,具体地,i从1依次取到B。

第一列公式表示将第二个所述横向深度矩阵中的第i行与第一个所述横向深度矩阵中的边界列相减,得到difference矩阵的第i行,i从1依次取到B。

第二列公式表示将整个difference矩阵所有元素先取绝对值,然后再将每行相加求和得到矩阵c。

第三列公式表示寻找矩阵c中的最小值,并返回其所在位置赋值给变量bianyuan,bianyuan即第二个所述横向深度矩阵的所述重合边界。

S60、根据所述整体深度矩阵获取平粮装置所在平面与粮仓内的粮食顶面之间的空间体积;

进一步地,步骤S60包括以下步骤:

S61、获取所述整体深度矩阵中每个元素的面积dρ,使用微元法计算机器人所在平面与粮仓内的粮食顶面之间的体积,计算公式如下:

V=∫∫

其中,D表示机器人所在平面;V表示平粮机器人所在平面与粮仓内的粮食顶面之间的体积;x、y分别代表整体深度矩阵中的行和列。

在本实施例中,采用微元法来计算二重积分,将所述深度相机所在平面D划分为n个小长方形,以元素值代表小长方形的深度f(x,y)通过计算粮面与所述深度相机所在平面之间的积分,以获得所述平粮机器人与粮面之间的空间的总体积V。

在本发明另一实施例中,为了提高计算精度,可以对所述整体深度矩阵绘制出来的曲面进行插值处理,并返回插入的值,曲面始终穿过插值前的数据点,形成插值后新的深度矩阵,并创建出可视化的三维曲面粮面图形。通过插值处理,扩大所述整体深度矩阵的行和列,即缩小了每个深度数据对应的长方形区域面积dρ,使得到的总体积V更接近实际,再进行上述步骤中的积分求体积。

S70、根据所述空间体积和粮仓的平面面积计算获得平粮高度。

在本步骤中,取所述深度相机所在平面的面积为底面积,也就是粮仓的地面面积,二者相除得到粮面与所述深度相机所在平面之间的平均高度即平粮高度。这个距离就是粮面平整的目标距离,即所述平粮机器人的工作目标。具体计算公式如下:

其中,

请参阅图4,基于上述第一实施例,提出本发明平粮高度计算方法的第二实施例。

所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤S30之前,还包括:

S201、对多个所述单元图像灰度化处理,获取多个所述单元图像的灰度图;

S202、对多个所述灰度图进行二值化处理,获取多个所述单元图像的二值化图;

S203、获得各所述二值化图中白色像素点的数量在纵向或者横向上的分布曲线;

S204、对比相邻的两个所述二值化图的所述分布曲线,,以对相邻两个所述单元图像进行第一次匹配,其中,第一次匹配的结果包括相邻两个所述单元图像的相似区域;

请参阅图5和图6,在本实施例中,通过对多个所述单元图像灰度化处理和二值化处理,以获取多个所述单元图像的二值化图,各所述二值化图仅包括黑色像素点和白色像素点,可以通过将各所述二值化图中的白色像素点在纵向或者横向上累加,以获得各所述二值化图中,白色像素点的数量在纵向上的所述分布曲线、以及白色像素点的数量在横向上的所述分布曲线。在沿横向拼接时,可以对比相邻的两个所述二值化图在横向上的所述分布曲线,以实现第一次匹配,通过对比所述分布曲线可以获得两个所述单元图像在横向上的相似区域;同理,在沿纵向拼接式,也可以额对比相邻的两个所述二值化图在纵向上的所述分布曲线,以获得两个所述单元图像在纵向上的相似区域。

所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤S30包括:

S35、根据第一次匹配的结果,对相邻的两个所述单元图像第二次匹配,其中,第二次匹配的结果包括相邻的两个所述单元图像的相似区域内的特征点;

S36、根据相似区域中获取的特征点,将多个所述单元图像沿横向依次拼接形成所述长条状图像;

S37、在纵向重复上述步骤,以获得多个所述长条状图像。

通过第一次匹配获得相似区域后,相当于进行了粗略的匹配,在后续拼接过程中可以直接在两个带拼接的所述单元图像的相似区域内进行识别和运算,进行第二次匹配,第二次匹配的后续具体运算过程可以参考上述第一实施例。本实施例通过第一次匹配大大降低了拼接时的数据计算数量,提高拼接效率。

请参阅图7,基于上述第一实施例或者第二实施例,提出本发明平粮高度计算方法的第三实施例。

在本实施例中,所述粮仓的边缘设有进出口,所述“机器人在粮仓的上方沿平面运动,并依次获取多个粮仓内的粮食顶面的单元图像”的步骤S20之前,还包括:

S10、判断是否需要全局更新;

需要说明的是,粮仓一般会设置有粮食进口和出口,用以储存和取用,在大型粮仓中,可能出现取用或者补充粮食之后,仅在进出口位置发生了变化,其他区域没有改变。如果每次粮面变动都全部检测会造成大量无效计算,因此可以在检测之前先判断是否需要全局更新。

S11、若是,执行所述“将粮仓沿纵向和横向划分为多个标定区,并依次获取多个所述标定区的单元图像”的步骤S20;

如果需要全局更新,则说明粮仓内的粮面整体变化较大,需要整体重新统计,则需要采取全部区域的数据。

S12、若否,获取与所述进出口相邻的一排多个所述标定区,以排为单位向所述粮仓的内侧依次获取每一排的多个所述标定区的所述单元图像,将每一排的各所述单元图像与前次获取的所述单元图像做对比,判断是否发生变化,若发生变化则更新对应所述标定区的所述单元图像,直至判断某一排多个所述单元图像均没有发生变化为止;

如果不需要全局更新,一般发生变化的区域一定会靠近所述进出口,因此获取与所述进出口相邻的一排的多个所述标定区,以排为单位依次获取每一排的多个所述单元图像,当检测到某一排的多个所述图像完全没有发生变化,则可以判断从此排向后的每一排均没有发生变化,则检测停止。通过对发生变化的区域局部检测方法,对于没有发生变化的区域不需要进行检测,提高数据采集效率。获取发生变化的区域的所述单元图像,以对上一次平粮时储存的所述单元图像的数据进行更新,对于没有发生变化的区域直接调取上一次平粮时储存的所述单元图像的数据。

可以理解的是,本实施例中所说的排,可以是纵向也可以是横向。

S13、根据更新后的多个所述单元图像和没有发生变化的多个所述单元图像,执行所述“将多个所述单元图像沿横向依次拼接形成多个沿横向延伸并在纵向分布的长条状图像”的步骤S30。

在本发明一实施例中,为提高检测效率,无需对一排的每一个所述标定区进行检测。为便于描述,以所述进出口位于所述粮仓横向的一端为例,则与所述进出口相邻的一排为第一列,在第一列的多个所述标定区中以与所述进出口距离较近的一端为第一行。

在检测时,以第一列第一行为起点,沿列方向依次检测,并判断每一个所述标定区与之前储存的数据是否一致,并输出两种检测结果,一致或者不一致,不一致时需对之前储存的数据进行更新。判断每个所述标定区与上一个所述标定区的检测结果是否有变化,如果发生变化则记录为一次突变,说明检测到了发生变化区域的边界所在的所述标定区。可以理解的是,当发生第一次突变时,说明发生突变的所述标定区为发生变化的区域在第一列的第一边界;当发生第二次突变时,则说明发生突变的所述标定区的上一个所述标定区,为发生变化的区域在第一列的第二边界。

当检测到第二次突变发生时,则可以判断第一列检测完毕,可以检测第二列,也即减少了检测数量。第二列的检测方法与第一列相同,按行依次检测直至发生第二次突变,沿横向对每一列依次进行检测。在对每一列进行检测时,需统计发生第二次突变时的所在行,并以行数最多确定为发生变化的区域在纵向上的最远边界。随着对每一列的检测,当在某一列一直检测到最远边界所在行也没有发生突变,则说明在此列为发生变化的区域在横向上的最远边界,此时即可停止检测。

在本实施例中,在检测时只需对一定区域进行检测,相较于每次都进行全局检测大大减小了检测量和运算数量,提高了更新效率。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

技术分类

06120115629335