技术领域
[0001] 本申请涉及转运站料位测量技术领域,具体地涉及一种用于测量卸料坑垃圾堆料位的方法、装置及处理器。
相关背景技术
[0002] 目前我国垃圾收运领域市场规模较大,而国家城镇化进程的推进,使得垃圾收运的需求处理越来越大,这对现有垃圾转运站的作业效率提出了新的需求。在这样的社会大环境背景下,转运站作业调度智能化替代人工成为了趋势,目前转运站卸料压缩作业仍然以人工调度为主,为实现转运站运营无人化,转运站料位测量技术已成为其中关键。
[0003] 现有技术中并未提出对垃圾堆料位进行测量的技术方案,而在对其它仓储物品进行料位高度检测的方法中,通常采用3D雷达扫描仪对仓储物品的料位高度进行检测。垃圾转运站内的垃圾堆通常是不均匀地分布于卸料坑中,且垃圾之间存在相互遮挡的情况,若直接采用对仓储物品料位的测量方法对转运站料位进行测量,则可能会导致测量结果的准确性较低。
具体实施方式
[0032] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0033] 需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
[0034] 另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
[0035] 图1为本申请实施例提供的一种用于测量卸料坑垃圾堆料位的方法的流程示意图。如图1所示,本申请实施例提供一种用于测量卸料坑垃圾堆料位的方法,以该方法应用于处理器为例进行说明,该方法可以包括下列步骤。
[0036] 步骤S101、获取卸料坑的垃圾堆点云。
[0037] 步骤S102、对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云。
[0038] 步骤S103、对被遮挡点云进行点云补全处理,以得到补全后的点云。
[0039] 步骤S104、基于无缺陷点云和补全后的点云,通过曲面拟合得到卸料坑的垃圾堆拟合曲面。
[0040] 步骤S105、根据垃圾堆拟合曲面确定卸料坑的垃圾堆料位信息。
[0041] 在本申请实施例中,垃圾堆点云是指经初步处理后仅包含卸料坑中所堆放的垃圾堆的表面所有点的数据的集合。为了能够更为全面地采集卸料坑中垃圾堆的点云数据,以提高后续计算的准确性,本申请实施例采用激光雷达对垃圾堆点云数据进行采集,激光雷达可以安装与卸料坑上方的固定位置,通过人为调整以确保视场角覆盖卸料坑内的所有区域。其中,激光雷达可以为机械式激光雷达或半固态式激光雷达,相较于传统的测量方法,采用激雷达的测量方法具有更强的鲁棒性且测量准确度更高。在一个示例中,处理器可以先通过激光雷达获取当前卸料坑的卸料坑点云;卸料坑点云中包括卸料坑中所有区域的点云,例如墙壁和垃圾堆等,并且,在实际作业场景中卸料坑中扬尘较多。因此,需要使用滤波算法对垃圾堆点云数据进行滤波剔除扬尘点云,从而滤除点云离群点,以得到垃圾堆点云。
[0042] 可以理解,由于垃圾通常以不均匀的状态分布在卸料坑中,垃圾与垃圾之间也存在遮挡情况,从而形成视野盲区,导致激光雷达对垃圾堆进行扫描时存在遗漏,使得采集到的垃圾堆点云不完整。为了提高后续计算的准确性,处理器可以对垃圾堆点云进行补全处理,以得到完整的垃圾堆点云。具体地,由于获取的垃圾堆点云中因被遮挡导致的数据空缺所占比例较小,为了提高运算效率,可以先对垃圾堆点云进行点云分割处理,以得到无缺陷点云和被遮挡点云。如此,对于无缺陷点云可以不进行补全处理,仅对被遮挡点云进行补全,有利于提高运算效率。
[0043] 在一个示例中,在采集到的垃圾堆点云中,被遮挡区域的点的数量会少于无缺陷区域的点的数量,因此,可以以点云密度为标准对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云。
[0044] 进一步地,处理器可以对被遮挡点云进行点云补全处理,将被遮挡区域未采集到的点云数据进行补全,以得到补全后的点云。其中,点云补全的方法可以有多种,例如集合对称法、表面重建法和模版匹配法等。优选地,针对卸料坑中由于垃圾堆之间的互相遮盖所形成的多个空洞,本申请实施例可以通过开发插值算法对被遮挡点云中空缺的部分进行数据插值处理,进而得到补全后的点云。将补全后的点云与无缺陷点云合并以得合并后的点云,即当前卸料坑中垃圾堆的完整点云。合并后的点云依旧是垃圾堆表面点的数据集合,为了能够得到更准确的垃圾堆料位信息,处理器可以对垃圾堆的完整点云进行曲面拟合,以得到当前卸料坑中垃圾堆的垃圾堆拟合曲面。在一个示例中,可以采用贪婪投影三角化算法等曲面拟合的算法将合并后的点云拟合成曲面。最后,基于垃圾堆拟合曲面,通过积分处理即可得到当前卸料坑中垃圾堆的垃圾堆料位信息。其中,垃圾堆料位信息可以包括垃圾堆的体积和料位高度。在一个示例中,处理器可以通过TCP/IP通讯协议与上位机进行通讯,将垃圾堆料位信息发送至上位机端,以便进行后续的卸料与压缩的控制以及规划。
[0045] 上述技术方案,通过获取卸料坑的垃圾堆点云,并对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云,进而对被遮挡点云进行点云补全处理,以得到补全后的点云,基于无缺陷点云和补全后的点云,通过曲面拟合得到卸料坑的垃圾堆拟合曲面,从而根据垃圾堆拟合曲面确定卸料坑的垃圾堆料位信息。本申请能够对垃圾堆点云中缺失的部分进行空洞补全,从而根据完整的垃圾堆点云通过曲面拟合得到垃圾堆料位信息,有利于提高测量结果的准确性。
[0046] 在本申请实施例中,对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云,可以包括:按照设定邻域半径,在设定方向上将垃圾堆点云划分成多个邻域;计算各个邻域的点云密度;根据各个邻域的点云密度,将多个邻域划分为无缺陷点云和被遮挡点云。
[0047] 可以理解,在采集到的垃圾堆点云中,被遮挡区域的点的数量会少于无缺陷区域的点的数量,因此,可以以点云密度为标准对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云。
[0048] 在本申请实施例中,由于点云中各点均对应有三维坐标数据,设定方向即三维坐标X、Y和Z中的任意方向。为便于后续计算,首先对垃圾堆点云中的点云数据进行设定方向的检索,遍历点云,按照设定邻域半径将垃圾堆点云划分成多个邻域。其中,邻域半径的值可以根据实际情况设置。进入计算各个邻域内的点云密度。基于各个邻域内的点云密度将多个邻域分别划分为无缺陷点云和被遮挡点云。
[0049] 在本申请实施例中,根据各个邻域的点云密度,将多个邻域划分为无缺陷点云和被遮挡点云,可以包括:针对多个邻域中的任意邻域,将任意邻域的点云密度与密度阈值进行比较;在任意邻域的点云密度小于密度阈值的情况下,将任意邻域内的点云确定为被遮挡点云;在任意邻域的点云密度大于或等于密度阈值的情况下,将任意邻域内的点云确定为无缺陷点云。
[0050] 可以理解,密度阈值是用于判断半径为设定半径大小的邻域内是否存在点云缺失情况的阈值。对于划分后的任意邻域,若该邻域内的点云密度小于密度阈值,则说明该邻域内点的数量不满足标准,该邻域存在点云缺失的情况,此时,处理器可以将该邻域内的点云划至被遮挡点云。同理,若该邻域内的点云密度大于或等于密度阈值,则说明该邻域内点的数量满足标准,可以认为该邻域不存在点云缺失的情况,此时,处理器可以将该邻域内的点云划至被遮挡点云。如此,通过点云密度判断设定大小的邻域内是否存在点云缺失,可以提高点分割的准确性。
[0051] 在本申请实施例中,对被遮挡点云进行点云补全处理,以得到补全后的点云,可以包括:在被遮挡点云中,确定在设定方向上相邻的任意两点的距离;将任意两点的距离与预设距离进行比较;在距离大于预设距离的情况下,根据任意两点的坐标数据确定新增填补点;将新增填补点加入被遮挡点云中,以更新被遮挡点云;基于更新后的被遮挡点云进行点云补全处理,直至被遮挡点云中在设定方向上相邻的任意两点的距离均小于或等于预设距离,以得到补全后的点云。
[0052] 可以理解,由于雷达安装位置与垃圾堆料成一定角度,且垃圾分布不均存在互相遮挡的情况,故在垃圾堆料较高时,通过激光雷达所采集的垃圾堆点云会存在堆料背面点云丢失的情况,为了后续能够拟合出无缺陷模型,需要先对丢失点云进行补全。
[0053] 具体地,由于点云中各点均对应有三维坐标数据,设定方向即三维坐标X、Y和Z中的任意方向。需要说明的是,由于被遮挡点云中可能包括多个不相邻的被遮挡区域的点云,因此可以采用分区处理的方式进行点云补全。各个被遮挡区域均采用相同的补全方法进行空洞补全,以下以其中一个被遮挡区域、以设定方向为X方向为例,进行空洞补全处理过程的说明。在进行空洞补全前,先设置一预设距离,又称填补阈值,该值可以根据实际经验或者基于无缺陷点云确定。
[0054] 具体地,对于遮挡区域,在X方向上,选取任意相邻两点Pm和Pn,计算Pm和Pn的距离,即在X方向上的坐标差值;比较该距离与预设距离的大小,若该距离大于预设距离,则说明Pm和Pn存在点云缺失,需进行差值处理。进一步地,可以取Pm和Pn的平均值作为新增填补点,将该新增填补点加入该遮挡区域的点云中。如此,采用以上方法对该遮挡区域进行循环差值,直至该遮挡区域中在X方向上的任意相邻两点的距离均小于或等于预设距离,完成对该遮挡区域的空洞补全。同理,对被遮挡点云中的其它区域进行空洞补全,以得到补全后的点云。
[0055] 如此,对垃圾堆中被遮挡区域的点云丢失进行补全,有利于提高后续的测量精度。
[0056] 在本申请实施例中,基于无缺陷点云和补全后的点云,通过曲面拟合得到卸料坑的垃圾堆拟合曲面,可以包括:将无缺陷点云与补全后的点云合并,以得到合并后的点云;对合并后的点云进行聚类和滤波处理,以得到曲面点云;对曲面点云进行曲面拟合处理,以得到卸料坑的垃圾堆拟合曲面。
[0057] 可以理解,合并后的点云即当前卸料坑中垃圾堆的完整点云。为保证后续得到的垃圾堆拟合曲面的准确性,对于合并后的点云还需进行聚类和滤波处理,以滤除点云补全过程中产生的离群点。具体地,对于合并后的点云,随机选取点p,用KD‑Tree找到离点p最近的n个点,判断这n个点到p点的距离。将距离小于阈值的多个点放在点集Q里,在Q选取一个点作为新的p点,重复步骤上述步骤,直至点集Q无法加入新的点,该方法为点云欧式聚类算法,可对离群点进行一定程度滤除。接着通过高斯滤波算法进行平滑处理,以得到曲面点云。
[0058] 进一步地,处理器可以通过贪婪投影三角化算法对曲面点云进行曲面拟合,以得到卸料坑的垃圾堆拟合曲面。具体地,贪婪投影三角化算法主要先存储初始点P,对曲面点云进行KDtree近邻检索,再将点云通过法线投影到Y‑Z二维坐标平面下。然后通过可见性和距离等标准,删除点云中可能形成自相交网格的点。依次连接到点P,并前后连接,形成满足标准的三角形。并继续根据近邻检索连接三角形,直到点云输出最终的三角形模型,以得到卸料坑的垃圾堆拟合曲面。
[0059] 在本申请实施例中,根据垃圾堆拟合曲面确定卸料坑的垃圾堆料位信息可以包括:构建卸料坑的三维空坑模型;对垃圾堆拟合曲面和三维空坑模型进行积分处理,以得到卸料坑的垃圾堆料位信息。
[0060] 具体地,卸料坑的三维空坑模型是指无任何垃圾的情况下的卸料坑的三维模型;卸料坑的垃圾堆料位信息包括垃圾堆的体积和料位高度。为计算出垃圾堆料位信息,在得到当前垃圾坑的垃圾堆拟合曲面的情况下,需结合卸料坑的三维空坑模型进行积分,以计算出当前卸料坑中垃圾堆的料位高度以及垃圾堆的体积。
[0061] 在一个示例中,构建卸料坑的三维空坑模型可以包括:在激光雷达安装完成后,通过激光雷达采集卸料坑的空坑点云,以对卸料坑进行标定,基于空坑点云构建卸料坑的三维空坑模型,并定位三维空坑模型各平面的几何特征,为后续卸料坑的垃圾堆体积和料位高度的测量提供基准。
[0062] 在本申请实施例中,该方法还可以包括:
[0063] 在卸料坑包括多个卸料车位的情况下,根据卸料车位对三维空坑模型进行卸料区域划分,以得到多个卸料区域;
[0064] 基于多个卸料区域,对卸料坑的垃圾堆料位信息进行分区输出显示。
[0065] 可以理解,在实际应用中,一个卸料坑可能有多个卸料车位,以提高作业效率,由于多个卸料车位的存在,会导致卸料坑中的垃圾呈多堆分布。为了使工作人员对卸料坑中垃圾堆料位信息有更清晰的掌握,在卸料坑包括多个卸料车位的情况下,可以根据卸料车位对三维空坑模型进行卸料区域划分,以得到多个卸料区域。进一步地,在计算出卸料坑中的垃圾堆料位信息后,可以基于划分了多个卸料区域的三维空坑模型,对卸料坑中的多个卸料区域的垃圾堆料位信息进行分区输出显示,以便于工作人员根据各个卸料区域的垃圾堆料位信息进行工作规划。
[0066] 图2为本申请一具体实施例提供的一种用于测量卸料坑垃圾堆料位的系统的结构框图。如图2所示,以上述方法在现场场景中的应用为例,本申请一具体实施例提供一种用于测量卸料坑垃圾堆料位的系统,该系统主要包括激光雷达、感知算法模块和上位机控制模块。具体地,该系统内部的处理步骤为:激光雷达将点云数据发送至感知算法模块。感知算法模块接收到点云数据后,依次进行卸料坑标定、点云滤波、ROI提取、曲面拟合和曲面积分,以得到料位高度和体积;最后通过TCP/IP通讯协议将料位高度和体积发送至上位机控制模块。上位机控制模块在接收到感知算法模块发送的料位高度和体积后,通过上位机界面对料位高度和体积进行显示输出,以使工作人员获知垃圾堆料位信息;工作人员可以基于垃圾堆料位信息进行卸料与压缩规划,上位机控制模块根据工作人员输入的卸料与压缩规划控制卸料压缩操作。如此,可以为转运站卸料与压缩作业提供料位检测功能,从而实现转运站的自动卸料、压缩,实现最终的转运站自动化运行,提高作业效率,减少人力成本。
[0067] 图3为本申请一具体实施例提供的一种基于激光雷达的卸料坑垃圾堆料位测量的装置的结构框图。如图3所示,本申请一具体实施例提供一种基于激光雷达的卸料坑垃圾堆料位测量的装置,该装置可以包括激光雷达、CPU处理器、存储器和控制机构。其中,激光雷达为数据采集设备,数据采集设备采集数据发送至CPU处理器进行程序处理,将处理结果发送至存储器进行存储,后续通过TCP/IP通讯发送至控制机构进行控制动作。在一个示例中,激光雷达可提供140°×70°视场角,每秒可输出512000个点,实现对卸料坑的全覆盖,IP67的防水等级可保证在恶劣环境下的运行。CPU处理器可长时间稳定运行数据处理程序,实现实时计算。存储器将数据处理程序与结果存储在设备中,并通过TCP/IP协议发送存储的结果至控制机构。控制机构用于执行数据处理程序输出的结果。
[0068] 本申请实施例还提供一种处理器,被配置成执行根上述实施方式中的用于测量卸料坑垃圾堆料位的方法。
[0069] 图4为本申请实施例提供的一种用于测量卸料坑垃圾堆料位的装置的结构框图。如图4所示,本申请实施例还提供一种用于测量卸料坑垃圾堆料位的装置400,该装置400可以包括:
[0070] 垃圾点云获取模块410,用于获取卸料坑的垃圾堆点云。
[0071] 点云分割模块420,用于对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云。
[0072] 点云补全模块430,用于对被遮挡点云进行点云补全处理,以得到补全后的点云。
[0073] 曲面拟合模块440,用于基于无缺陷点云和补全后的点云,通过曲面拟合得到卸料坑的垃圾堆拟合曲面。
[0074] 垃圾堆料位信息确定模块450,用于根据垃圾堆拟合曲面确定卸料坑的垃圾堆料位信息。
[0075] 用于测量卸料坑垃圾堆料位的装置400,通过获取卸料坑的垃圾堆点云,并对垃圾堆点云进行点云分割,以得到无缺陷点云和被遮挡点云,进而对被遮挡点云进行点云补全处理,以得到补全后的点云,基于无缺陷点云和补全后的点云,通过曲面拟合得到卸料坑的垃圾堆拟合曲面,从而根据垃圾堆拟合曲面确定卸料坑的垃圾堆料位信息。上述技术方案能够对垃圾堆点云中缺失的部分进行空洞补全,从而根据完整的垃圾堆点云通过曲面拟合得到垃圾堆料位信息,有利于提高测量结果的准确性。
[0076] 在一个实施例中,点云补全模块430还用于:在被遮挡点云中,确定在设定方向上相邻的任意两点的距离;将任意两点的距离与预设距离进行比较;在距离大于预设距离的情况下,根据任意两点的坐标数据确定新增填补点;将新增填补点加入被遮挡点云中,以更新被遮挡点云;基于更新后的被遮挡点云进行点云补全处理,直至被遮挡点云中在设定方向上相邻的任意两点的距离均小于或等于预设距离,以得到补全后的点云。
[0077] 在一个实施例中,点云分割模块420还用于:按照设定邻域半径,在设定方向上将垃圾堆点云划分成多个邻域;计算各个邻域的点云密度;根据各个邻域的点云密度,将多个邻域划分为无缺陷点云和被遮挡点云。
[0078] 在一个实施例中,点云分割模块420还用于:针对多个邻域中的任意邻域,将任意邻域的点云密度与密度阈值进行比较;在任意邻域的点云密度小于密度阈值的情况下,将任意邻域内的点云确定为被遮挡点云;在任意邻域的点云密度大于或等于密度阈值的情况下,将任意邻域内的点云确定为无缺陷点云。
[0079] 在一个实施例中,曲面拟合模块440还用于:将无缺陷点云与补全后的点云合并,以得到合并后的点云;对合并后的点云进行聚类和滤波处理,以得到曲面点云;对曲面点云进行曲面拟合处理,以得到卸料坑的垃圾堆拟合曲面。
[0080] 在一个实施例中,垃圾堆料位信息确定模块450还用于:构建卸料坑的三维空坑模型;对垃圾堆拟合曲面和三维空坑模型进行积分处理,以得到卸料坑的垃圾堆料位信息。
[0081] 在一个实施例中,在卸料坑包括多个卸料车位的情况下,根据卸料车位对三维空坑模型进行卸料区域划分,以得到多个卸料区域;基于多个卸料区域,对卸料坑的垃圾堆料位信息进行分区输出显示。
[0082] 本实施例还提供一种机器可读存储介质,机器可读存储介质上存储程序或指令,程序或指令被处理器执行时实现上述实施方式中的用于测量卸料坑中垃圾堆料位的方法。
[0083] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0084] 本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0085] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0086] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0087] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0088] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
[0089] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0090] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0091] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。