发明内容
本发明的一个目的是提供一种基于激光雷达确定场景中物体数量的新技术方案。
根据本发明的第一方面,提供了一种基于激光雷达确定场景中物体数量的方法,包括:
获取激光雷达扫描得到的各扫描点的位置信息;
根据各扫描点的位置信息依次计算每一个扫描点与其他各扫描点的距离值,并得到各扫描点对应的未超过预设距离值的距离值的数量;
在所述数量超过预设数值的情况下,基于当前扫描点和与当前扫描点的距离未超过预设距离值的扫描点生成聚类集合;
将包含有至少一个相同扫描点的聚类集合进行合并,得到合并后的聚类集合;
确定合并后的聚类集合的数量,以作为场景中物体的数量。
可选地,所述扫描点的位置信息是由所述单线激光雷达扫描得到的点云数据中各数据转化的直角坐标系下的二维坐标信息,其中,
根据各扫描点的位置信息依次计算每一个扫描点与其他各扫描点的距离值,包括:
根据各扫描点的二维坐标信息依次计算每一个扫描点与其他各扫描点的距离值。
可选地,所述预设距离值是根据包围各扫描点的外接矩形的面积值、所述预设数值、扫描点的总数量和常数π确定的。
可选地,所述包围各扫描点的外接矩形是由各扫描点的横向坐标的最大值、横向坐标的最小值、纵向坐标的最大值和纵向坐标的最小值所分别对应的直线确定的。
可选地,所述方法还包括:
对各合并后的聚类集合中的扫描点进行拟合,得到对应物体的轮廓信息。
根据本发明的第二方面,提供了一种基于激光雷达确定场景中物体数量的装置,包括:
获取模块,用于获取激光雷达扫描得到的各扫描点的位置信息;
距离值计算模块,用于根据各扫描点的位置信息依次计算每一个扫描点与其他各扫描点的距离值,并得到各扫描点对应的未超过预设距离值的距离值的数量;
聚类集合生成模块,用于在所述数量超过预设数值的情况下,基于当前扫描点和与当前扫描点的距离未超过预设距离值的扫描点生成聚类集合;
合并模块,用于将包含有至少一个相同扫描点的聚类集合进行合并,得到合并后的聚类集合;
物体数量确定模块,用于确定合并后的聚类集合的数量,以作为场景中物体的数量。
可选地,所述扫描点的位置信息是由所述单线激光雷达扫描得到的点云数据中各数据转化的直角坐标系下的二维坐标信息,其中,
所述距离值计算模块进一步用于:根据各扫描点的二维坐标信息依次计算每一个扫描点与其他各扫描点的距离值。
可选地,所述装置还包括:
拟合模块,用于对各合并后的聚类集合中的扫描点进行拟合,得到对应物体的轮廓信息。
根据本发明的第三方面,提供了一种基于激光雷达确定场景中物体数量的装置,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据第一方面中任一项所述的方法。
根据本发明的第四方面,提供了一种基于激光雷达确定场景中物体数量的系统,包括激光雷达和如第三方面或者第四方面所述的基于激光雷达确定场景中物体数量的装置。
本发明的一个实施例的有益效果在于,提高了激光雷达周围场景中物体的数量的准确性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<方法>
图1是根据本发明一个实施例的基于激光雷达确定场景中物体数量的处理流程图。
根据图1所示,基于激光雷达确定场景中物体数量的方法至少包括以下步骤:
步骤S1100,获取激光雷达扫描得到的各扫描点的位置信息。
本发明实施例中,扫描点的位置信息是由单线激光雷达扫描得到的点云数据转化的直角坐标系下的二维坐标信息。
单线激光雷达扫描得到的点云数据是由激光雷达完成一个周期的扫描得到的数据。一帧点云数据中各数据是激光雷达在对应的扫描角度下测量得到的扫描点到激光雷达的距离。扫描点是指位于激光雷达周围的物体上的点。
基于以下计算式(1),将一帧点云数据中各数据转化为直角坐标系中的坐标数据。
其中,θi=i×φ,i=1,2,3…n,n为一帧点云数据所包括的数据的个数,φ为激光雷达的扫描角分辨率(在一个周期的扫描中相邻两次扫描的角度间隔),ri为点云数据中扫描角度为i×φ时激光雷达测量得到的扫描点到激光雷达的距离,(xi,yi)为将ri转化为直角坐标系中的坐标数据。
图2是根据本发明一个实施例的一帧点云数据中各数据利用直角坐标系表示的示意图。根据图2所示,图中各圆圈的位置信息分别代表一帧点云数据中各数据转化为直角坐标系下的二维坐标信息。
图中各圆圈的位置信息分别代表各扫描点的位置信息转化为直角坐标系的二维坐标信息。
步骤S1200,根据各扫描点的位置信息依次计算每一个扫描点与其他各扫描点的距离值,并得到各扫描点对应的未超过预设距离值的距离值的数量。
本发明实施例中,根据各扫描点的二维坐标信息依次计算每一个扫描点与其他各扫描点的距离值。
以图2示出的各扫描点为例,针对每一个扫描点,基于以下计算式(2)分别计算该扫描点与其他各扫描点的距离值d,
其中,n为一帧点云数据所包括的数据的个数,即扫描点的总数量,(xk,yk)为第k个扫描点的二维坐标信息,i取1,2,3,……,n-1,n中除k值之外的任一值。
根据上述计算式(2)依次计算第k个扫描点和其他任一扫描点的距离值,得到n-1个距离值。将该n-1个距离值分别与预设距离值进行比对,得到n-1个比对结果。根据该n-1个比对结果,得到第k个扫描点对应的未超过预设距离值的距离值的数量。
本发明实施例中,预设距离值是根据包围各扫描点的外接矩形的面积值、预设数值、扫描点的总数量和常数π确定的。具体地,基于以下计算式(3)得到预设距离值d预,
其中,S为包围各扫描点的外接矩形的面积值,n预为预设数值,n为扫描点的总数量。预设数值n预通常取3-5中任一整数值。
本发明实施例中,包围各扫描点的外接矩形可以通过以下步骤确定:根据各扫描点的二维坐标信息,确定各扫描点的横向坐标的最大值、横向坐标的最小值、纵向坐标的最大值和纵向坐标的最小值。利用横向坐标的最大值、横向坐标的最小值、纵向坐标的最大值和纵向坐标的最小值所分别对应的直线确定包围各扫描点的外接矩形。
步骤S1300,在数量超过预设数值的情况下,基于当前扫描点和与当前扫描点的距离未超过预设距离值的扫描点生成聚类集合。
本发明实施例中,在数量未超过预设数值的情况下,可以确定基于当前扫描点不满足生成聚类集合的条件。
以第k个扫描点为例,当第k个扫描点对应的未超过预设距离值的距离值的数量超过预设数值时,基于第k个扫描点可以生成聚类集合,该聚类集合包括第k个扫描点和与第k个扫描点的距离值不超过预设距离值的扫描点。
步骤S1400,将包含有至少一个相同扫描点的聚类集合进行合并,得到合并后的聚类集合。
以第k个扫描点和第k+1个扫描点为例,基于第k个扫描点和第k+1个扫描点均可以生成聚类集合。当第k个扫描点对应的聚类集合和第k+1个扫描点对应的聚类集合包含有相同的扫描点时,将第k个扫描点对应的聚类集合和第k+1个扫描点对应的聚类集合进行合并,得到合并后的聚类集合。
步骤S1500,确定合并后的聚类集合的数量,以作为场景中物体的数量。
在本发明的一个实施例中,在得到合并后的聚类集合之后,对各合并后的聚类集合中的扫描点进行集合,得到对应物体的轮廓信息。例如,利用最小二乘法对各合并后的聚类集合中的扫描点进行拟合,得到对应物体的轮廓信息。
<装置>
图3是根据本发明一个实施例的基于激光雷达确定场景中物体数量的装置的结构示意图。
根据图3所示,基于激光雷达确定场景中物体数量的装置包括获取模块3100、距离值计算模块3200、聚类集合生成模块3300、合并模块3400和物体数量确定模块3500。
获取模块3100用于获取激光雷达扫描得到的各扫描点的位置信息。
距离值计算模块3200用于根据各扫描点的位置信息依次计算每一个扫描点与其他各扫描点的距离值,并得到各扫描点对应的未超过预设距离值的距离值的数量。
聚类集合生成模块3300用于在数量超过预设数值的情况下,基于当前扫描点和与当前扫描点的距离未超过预设距离值的扫描点生成聚类集合。
合并模块3400用于将包含有至少一个相同扫描点的聚类集合进行合并,得到合并后的聚类集合。
物体数量确定模块3500用于确定合并后的聚类集合的数量,以作为场景中物体的数量。
在本发明的一个实施例中,扫描点的位置信息是由单线激光雷达扫描得到的点云数据中各数据转化的直角坐标系下的二维坐标信息。距离值计算模块3200进一步用于:根据各扫描点的二维坐标信息依次计算每一个扫描点与其他各扫描点的距离值。具体地,基于上述计算式(2)分别计算每一个扫描点与其他各扫描点的距离值d。
步骤S1300,在数量超过预设数值的情况下,基于当前扫描点和与当前扫描点的距离未超过预设距离值的扫描点生成聚类集合。
以第k个扫描点为例,当第k个扫描点对应的未超过预设距离值的距离值的数量超过预设数值时,基于第k个扫描点可以生成聚类集合,该聚类集合包括第k个扫描点和与第k个扫描点的距离值不超过预设距离值的扫描点。
在本发明的一个实施例中,基于激光雷达确定场景中物体数量的装置还包括:拟合模块。拟合模块用于对各合并后的聚类集合中的扫描点进行拟合,得到对应物体的轮廓信息。
图4是根据本发明实施例的基于激光雷达确定场景中物体数量的装置的硬件结构示意图。
根据图4所示,基于激光雷达确定场景中物体数量的装置包括存储器410和处理器420。存储器410用于存储指令,该指令用于控制处理器420进行操作以执行根据本发明实施例的基于激光雷达确定场景中物体数量的方法,本领域技术人员可以根据本发明所公开的技术方案设计指令。指令是如何控制处理器进行操作,这是本领域的公知,故本发明实施例在此不再详细描述。
基于同一发明构思,本发明一个实施例提供了一种基于激光雷达确定场景中物体数量的系统。该报警系统包括单线激光雷达和如上述任一实施例提供的基于激光雷达确定场景中物体数量的装置。
本发明可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(装置)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。