一种点云的处理方法、装置及激光雷达与流程

文档序号:32472800发布日期:2022-12-07 07:59阅读:112来源:国知局
一种点云的处理方法、装置及激光雷达与流程

1.本技术涉及激光雷达技术领域,尤其涉及一种点云的处理方法、装置及激光雷达。


背景技术:

2.激光雷达(light detection and ranging,lidar)的数据形式是点云。点云数据中包含多种特征信息,例如:三维坐标信息、颜色信息、反射强度信息等。
3.目前,随着激光雷达的广泛应用,对激光雷达的测量精度提出了越来越高的要求,对点云数据的可靠性也提出了更高的要求。为了确保点云数据的准确可靠,就需要对点云中的噪点,例如离群点进行剔除。
4.然而,由于激光雷达的扫描方式导致点云本身分布是不均匀的,存在离群点识别的准确率不高的问题。


技术实现要素:

5.本技术提供了一种点云的处理方法、装置及激光雷达,以提高从点云中识别出离群点的准确率。
6.第一方面,本技术提供一种点云的处理方法,包括:获取激光雷达的第一点云,激光雷达产生的点云为无序点云;遍历第一点云,确定第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;基于第一点云中第一扫描点对应的探测距离,确定在该探测距离下,第一扫描点与第一扫描点的最近邻点的第一距离阈值,其中,不同探测距离对应于不同第一距离阈值;基于第一距离值与第一距离阈值,从第一点云中确定离群点。
7.在一些可能的实施方式中,基于第一距离值与第一距离阈值,从第一点云中确定离群点,包括:针对第一点云中的第i个第一扫描点,确定第一距离值小于第i个第一扫描点对应的第一距离阈值的n个最近邻点;其中,i和n的取值为大于或者等于1的整数;当n的取值小于第一阈值时,将第i个第一扫描点确定为离群点。
8.在一些可能的实施方式中,基于第一点云中的第一扫描点对应的探测距离,确定在该探测距离下第一扫描点与第一扫描点的最近邻点的第一距离阈值,包括:获取第一点云中每个第一扫描点的探测距离;基于动态阈值函数,确定每个第一扫描点的探测距离对应的第一距离阈值,动态阈值函数用于表示不同的探测距离与第一距离阈值的映射关系。
9.在一些可能的实施方式中,方法还包括:在预设探测距离下,获取激光雷达的第二点云;确定第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离阈值;基于预设探测距离以及第二距离阈值,拟合动态阈值函数。
10.在一些可能的实施方式中,确定第二点云中的第二扫描点与该第二扫描点的最近邻点的第二距离阈值,包括:遍历第二点云,计算第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离值;将满足预设精度需求的第二距离值确定为第二距离阈值。
11.在一些可能的实施方式中,动态阈值函数满足以下表达式:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
其中,rj为距离阈值,k为大于或者等于1常数,r为探测距离。
12.在一些可能的实施方式中,确定第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值,包括:遍历第一点云,通过查询点云近邻表,计算第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;其中,点云近邻表是基于激光雷达的预设角度标定数据生成的。
13.第二方面,本技术提供了一种点云的处理装置,该处理装置,包括:第一数据获取模块,用于获取激光雷达的第一点云,激光雷达产生的点云为无序点云;第一确定模块,用于遍历第一点云,确定第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;第二确定模块,用于基于第一点云中第一扫描点对应的探测距离,确定在该探测距离下第一扫描点与第一扫描点的最近邻点的第一距离阈值,其中,不同探测距离对应于不同第一距离阈值;数据分析模块,用于基于第一距离值与第一距离阈值,从第一点云中确定离群点。
14.在一些可能的实施方式中,数据分析模块,还用于针对第一点云中的第i个第一扫描点,确定第一距离值小于第i个第一扫描点对应的第一距离阈值的n个最近邻点;其中,i和n的取值为大于或者等于1的整数;当n的取值小于第一阈值时,将第i个第一扫描点确定为离群点。
15.在一些可能的实施方式中,第二确定模块,还用于获取第一点云中每个第一扫描点的探测距离;基于动态阈值函数,确定每个第一扫描点的探测距离对应的第一距离阈值,动态阈值函数用于表示不同的探测距离与第一距离阈值的映射关系。
16.在一些可能的实施方式中,该处理装置还包括:第二数据获取模块,用于在预设探测距离下,获取激光雷达的第二点云;第三确定模块,确定第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离阈值;拟合模块,用于基于预设探测距离以及第二距离阈值,拟合动态阈值函数。
17.在一些可能的实施方式中,第三确定模块,还用于遍历第二点云,计算第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离值;将满足预设精度需求的第二距离值确定为第二距离阈值。
18.在一些可能的实施方式中,动态阈值函数满足以下表达式:其中,rj为距离阈值,k为大于或者等于1常数,r为探测距离。
19.在一些可能的实施方式中,第一确定模块,还用于遍历第一点云,通过查询点云近邻表,计算第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;其中,点云近邻表是基于激光雷达的预设角度标定数据生成的。
20.第三方面,本技术提供了一种激光雷达,包括:存储器,存储有计算机可执行指令;处理器,与存储器相连,用于通过执行计算机可执行指令,以实现如第一方面及其任一可能的实施方式所述的方法。
21.第四方面,本技术提供了一种计算机存储介质,计算机存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行后能够实现如第一方面及其任一可能的实施方式所述的方法。
22.本技术提供的技术方案与现有技术相比存在的有益效果是:
在本技术中,分别根据每一第一扫描点的探测距离,确定第一扫描点的最近邻点的第一距离阈值,通过判断第一扫描点与最近邻点之间第一距离值小于第一距离阈值的数量是否大于第一阈值,确定第一扫描点是否为离群点。如此,根据探测距离的不同动态确定对应的第一距离阈值,相比静态的阈值有着更匹配的离群点剔除阈值,有效减少了对离群点无法剔除干净和/或对非离群点误删的情况,提高了离群点识别效率。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术的保护范围。
附图说明
24.图1为相关技术中的一种激光雷达的结构示意图;图2为本技术实施例中的一种点云的处理方法的流程图;图3为本技术实施例中的一种点云排布的示意图;图4为本技术实施例中的一种处理点云的流程图;图5为本技术实施例中的点云的处理装置的一种结构示意图。
具体实施方式
25.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
26.为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
27.激光雷达是一种目标探测技术。激光雷达通过激光器发出激光光束,激光光束遇到目标物体后发生漫反射,通过探测器接收反射回的光束,并根据发射的光束和反射回的光束确定目标物体的距离、方位、高度、速度、姿态、形状等特征量。
28.激光雷达的应用领域非常广泛。除了运用在军事领域之外,目前还被广泛应用于生活领域,包括但不限于:智能驾驶车辆、智能驾驶飞机、三维(3d)打印、虚拟现实、增强现实、服务机器人等领域。以智能驾驶技术为例,在智能驾驶车辆中设置激光雷达,激光雷达可通过快速且重复地发射激光束来扫描周围环境,以获取反映周围环境中的一个或多个目标对象的形貌、位置、运动的点云等。
29.需要说明的是,上述智能驾驶技术可以指无人驾驶、自动驾驶、辅助驾驶等技术。
30.图1为相关技术中的一种激光雷达的结构示意图,参见图1所示,激光雷达10可以包括:光发射装置101、光接收装置102和处理器103。其中,光发射装置101、光接收装置102均与处理器103连接。
31.其中,上述各器件之间的连接关系可以是电性连接,还可以是光纤连接。更具体的,在光发射装置101和光接收装置102中,还可能分别包括多个光学器件,这些光学器件之间的连接关系还可能是空间光传输连接。
32.处理器103用于实现对发射装置101和光接收装置102的控制,以使光发射装置101和光接收装置102能够正常工作。示例性的,处理器103可以为光发射装置101和光接收装置102分别提供驱动电压,处理器103还可以为光发射装置101和光接收装置102提供控制信
号。
33.示例性的,处理器103可以是通用处理器,如中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;处理器103还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
34.光发射装置101中还包括光源(图1未示出)。可以理解的,上述光源可以指激光器,激光器的数量可以是一个或者多个。可选的,激光器可以具体为脉冲激光二极管(pulsed laser diode,pld)、半导体激光器、光纤激光器等。上述光源用于发射激光束。具体的,处理器103可以向光源发送发射控制信号,从而触发光源发射激光束。
35.可以理解的,上述激光束也可以称为激光脉冲、激光、发射光束等。
36.下面结合图1所示的激光雷达的结构,简单描述激光雷达对目标物体104的探测过程。
37.参见图1所示,激光束沿发射方向进行传播,当激光束遇到目标物体104后,在目标物体104的表面发生反射,反射回的光束被激光雷达的光接收装置102接收。这里,可以将激光束被目标物体104反射回的光束称为回波光束(图1中激光束和回波光束采用实线标识)。
38.光接收装置102接收到回波光束后,对回波光束进行光电转换,即,将回波光束转换为电信号,光接收装置102将回波光束对应的电信号输出至处理器103,处理器103可以根据回波光束的电信号,获取目标物体104的形貌、位置、运动的点云等。
39.在实际应用中,激光雷达中的微机电系统(micro-electro-mechanical system,mems)扫描式激光雷达的激光器为固定连接,光只能沿着相应的角度传播,使得mems扫描式激光雷达中的单个激光器往往只具有有限的视场。为了实现激光雷达大视场,甚至全视场覆盖的应用要求,可以在mems扫描式激光雷达中配置多个不同角度的激光器,不同角度的激光器通过小视场拼接的方式扩大mems扫描式激光雷达的视场变为大视场。同时,为了防止不同小视场之间具有盲区,影响探测准确性,小视场之间常常具有一定的交叠区。交叠区的存在,使本来在小视场中点的序号分布有序的点云(即有序点云),在整个激光雷达视场中变成了点的序号分布无序的点云(即无序点云)。
40.在一些特殊情况,激光雷达出现随机噪声,例如,雪崩光电二极管(avalanche photon diode,apd)阵列部分接收器损坏、apd被阳光直射、雨天、扬尘、阳光干扰、同频干扰等。随机噪声的出现,会致使激光雷达扫描获取的点云出现缺陷(通常表现为点云中出现离群点),进而影响激光雷达的探测准确性,例如对后续的感知算法形成干扰,因此需要对离群点进行剔除。但是由于激光雷达的扫描方式导致点云本身分布是不均匀的,相关确定离群点的算法并未考虑到点云本身分布不均匀的问题,会存在对离群点无法剔除干净,和/或对非离群点误删的情况,离群点识别准确率不高。
41.为了解决上述问题,本技术实施例提供一种点云的处理方法。该方法可以应用于产生无序点云的激光雷达,如mems扫描式激光雷达。示例性的,激光雷达可以如图1所示。
42.应理解的,本技术实施例所指的激光雷达为可以根据预设的文件和数据得到点云近邻表的激光雷达。例如,可以为能够获得出厂角度标定文件的所有激光雷达或者能够知道激光雷达中发射器发射角度的激光雷达。为了方便说明,下文统称为激光雷达。
43.图2为本技术实施例中的一种点云的处理方法的流程图。参见图2中实线所示,该方法包括步骤s201至s204。
44.s201,获取激光雷达的第一点云。
45.这里,激光雷达产生的点云为无序点云。相应的,第一点云即为无序点云。
46.应理解的,激光雷达可以通过对目标物体进行扫描,获得用于描述目标物体相关特性的点云,并将该点云作为第一点云。或者,激光雷达可以通过获取过去扫描并存储的历史点云,并将该点云作为第一点云。当然,激光雷达还可以通过其他方式获得第一点云,本技术实施例对此不作具体限定。
47.示例性的,第一点云的点云数据可以包括点的序号、点的三维坐标等信息。
48.s202,遍历第一点云,确定第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值。
49.在一些可能的实施方式中,可以通过查询预先生成的点云近邻表,计算获得第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值。
50.其中,点云近邻表可以是基于激光雷达的预设角度标定数据生成的。点云近邻表可以包括激光雷达的点云中各个扫描点的最近邻点。最近邻点可以理解为在三维空间内与点云中每一个扫描点的距离最近的点。在实际应用中,一个扫描点的最近邻点可以为一个点或者多个点,那么,一个扫描点的最近邻点的个数可以设置为k1,k1为正整数。
51.需要说明的是,最近邻点的个数可以根据算法计算平台的资源以及应用场景对实时性的要求设置。示例性的,若计算资源充分或计算实时性要求较低,最近邻点的个数k1可以设置为8;若计算资源有限,或计算实时性要求较高时,最近邻点的个数k1可以设置为4。当然,还可以存在其他情况,本技术实施例对此不做具体限定。
52.应理解的,激光雷达中可以预先存储有上述点云近邻表。那么,激光雷达在通过s101获得第一点云之后,可以遍历第一点云中的每一个第一扫描点(下面以点a为例进行描述),通过查询点云近邻表,获得点a的k1个最近邻点,并计算点a与点a的k1个最近邻点的第一距离值。也就是说,激光雷达通过查询点云近邻表,确定第一点云中每一个第一扫描点的k1个最近邻点,并计算各个第一扫描点与其k1个最近邻点的第一距离值,此时,每个第一扫描点需要计算k1个第一距离值。
53.在本技术实施例中,生成点云邻近表的点云与第一点云是同一激光雷达上的激光器发射的激光束产生的。由于激光器的发射角度固定,且激光发射时扫描器的扫描角度是可以获得的(预先设定或测量),发射光束沿直线传播,所以激光雷达点云中的点的排布是相对固定的。那么,通过查询点云近邻表便可以获知第一点云中任意第一扫描点的最近邻点。
54.s203,基于第一点云中第一扫描点对应的探测距离,确定在该探测距离下第一扫描点与第一扫描点的最近邻点的第一距离阈值。
55.其中,不同的探测距离可以对应于不同的第一距离阈值。第一距离阈值可以是基于探测距离预先设置的。
56.在一些可能的实施方式中,激光雷达的有效探测范围内,激光器的发射角度是固定的,且激光发射时扫描器的扫描角度是可以获得的(预先设定或测量),发射的激光光束沿直线传播。同一探测距离下的扫描点与最近邻点的距离只与激光光束之间的角度标定数
据有关。而对于同一激光雷达来说,角度标定数据相同,那么在此情况下,不同探测距离下的第一扫描点与最近邻点之间的距离只与探测距离有关。那么,基于此,上述步骤s203还可以包括:s2031,获取第一点云中每个第一扫描点的探测距离;应理解的,激光雷达在处于固定位置时,每个第一扫描点的探测距离即为激光雷达的激光发射器与第一扫描点之间的距离。由于第一点云是激光雷达对目标物体进行扫描获取到的用于描述目标物体相关特征的点云,因此,由于目标物体不同区域的空间位置的不同,每个区域与激光雷达之间具有不同的相对距离,因此,对于第一点云中的每个第一扫描点,需要单独获取对应的每个第一扫描点的探测距离。
57.在一实施例中,获取每个第一扫描点的探测距离可以是根据激光雷发射激光光束并接收回波光束所需的时间来确定。雷达测距原理的具体计算过程可以参见如图1中所示激光。或者还可以通过测量激光光束在往返过程中的相位变化的方式进行计算。当然,此处还可以采用其他任意方式确定探测距离,本技术实施例对此不做具体限定。
58.s2032,基于动态阈值函数,确定每个第一扫描点的探测距离对应的第一距离阈值。
59.其中,动态阈值函数用于表示不同的探测距离与第一距离阈值的映射关系。
60.在一些可能的实施方式中,激光雷达可以通过以下步骤s301至s303获得上述动态阈值函数。
61.s301,在预设探测距离下,获取激光雷达的第二点云;这里,第二点云可以是激光雷达在任意预设探测距离下对应的点云。此处第二点云可以与第一点云采用相同的方式获取,或者还可以是任意获取点云的方法,本技术实施例对此不作限定。示例性的,预设探测距离可以为2m。
62.s302,确定第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离阈值;应理解的,一个第二扫描点的最近邻点可以是一个点或者多个点,那么,第二点云中的第二扫描点的个数可以设置为m,第二扫描点的最近邻点的个数可以设置为k2,m和k2都为正整数。
63.需要说明的是,最近邻点的个数可以根据算法计算平台的资源以及应用场景对实时性的要求设置。示例性的,若计算资源充分或计算实时性要求较低,最近邻点的个数k2可以设置为8;若计算资源有限,或计算实时性要求较高时,最近邻点的个数k2可以设置为4。当然,还可以存在其他情况,本技术实施例对此不做具体限定。
64.示例性的,通过极坐标与直角坐标转换公式计算每个第二扫描点的最近邻k2个点的直角坐标值,可以如表达式(1)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,r为第二扫描点的探测距离。
65.如此,计算每个第二扫描点与最近邻点的距离差rf可以如表达式(2)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
每个第二扫描点包括k2个与最近邻点的第二距离值,那么m个第二扫描点便包括m
×
k2个与最近邻点的第二距离值。从m
×
k2个第二距离值中选择满足预设精度需求的第二距离值作为第二距离阈值。
66.在一些可能的实施方式中,上述步骤s302还可以包括:s3021,遍历第二点云,计算第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离值;s3022,将满足预设精度需求的第二距离值确定为第二距离阈值。
67.其中,预设精度需求可以基于激光雷达的实际应用场景确定。例如,取99%分位的统计值作为第二距离阈值,以消除极值的影响。当然,还可以基于实际应用中的精度需求取其他分位数值,本公开实施例对此不做具体限定。
68.以预设探测距离为2m为例,为避免极大值造成的误差影响,取99%分位的统计数据统计值。基于统计值确定在探测距离为2m时的99%分位的第二距离值为0.04m,将0.04m作为第二距离阈值。
69.s303,基于预设探测距离以及第二距离阈值,拟合动态阈值函数。
70.本技术实施例中,通过上述步骤s302获取到预设探测距离下对应的第二点云中的第二扫描点的第二距离阈值后,能够基于第二距离阈值推导出任意探测距离下距离阈值与探测距离的映射关系。
71.示例性的,激光雷达的点云中每个扫描点与最近邻点的之间的距离

r可以由如下表达式(3)得到:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,r为探测距离,(az0,el0)为扫描点的极坐标,(azi,eli)为最近邻点的极坐标。为方位扫描点与最近点的方位角差值的绝对值,为仰角差值的绝对值。
72.通过上述获取到的第二距离阈值,推导出不同探测距离下距离阈值与探测距离的动态阈值函数,可以如表达式(4)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)由于同一激光光束对应的不同探测距离的扫描点具有相同的角度数据,因此,动态阈值函数可以如表达式(5)所示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中,rj为距离阈值,k为大于或者等于1常数,r为探测距离。
73.s204,基于第一距离值与第一距离阈值,从第一点云中确定离群点。
74.应理解的,激光雷达在确定了点a的k1个最近邻点和相应的第一距离值之后,可以根据满足预设条件的第一距离值的最近邻点的数量,确定点a是否为离群点。
75.在一个实施例中,s204可以包括:针对第一点云中的第i(i=1、2、3

)个点,从第i个点的最近邻点中确定第一距离值小于第一扫描点对应的第一距离阈值的n个最近邻点。若n的取值小于第一阈值,则将第i个第一扫描点确定为离群点。
76.应理解的,激光雷达通过s202获得第i个第一扫描点到最近邻点的第一距离值,共k1个。然后,激光雷达执行s203,从k1个最近邻点中找出第一距离值小于第一距离阈值的n个最近邻点(即第一点),并根据n的取值确定第i个第一扫描点是否为离群点。若n的取值小于第一阈值,则激光雷达确定第i个第一扫描点为离群点,反之,激光雷达确定第i个第一扫描点为非离群点,并针对第i+1个第一扫描点重复上述步骤。
77.在实际应用中,上述n个最近邻点为第一距离值小于第一距离阈值的最近邻点的集合,该集合为k1个最近邻点的子集。n的取值可以小于或者等于k1。
78.需要说明的是,激光雷达可以遍历第一点云,对每一个第一扫描点都执行上述判断过程,逐个确定每一个第一扫描点是否为离群点。例如,以点a为例,激光雷达从点a的k1个最近邻点中确定出满足第一距离值小于第一距离阈值这一条件的第一点,共s1个。若第一点的数量(s1个)小于第一阈值,则激光雷达可以将点a确定为离群点。反之,激光雷达将点a确定为非离群点,并针对下一个点重复上述步骤。
79.应理解的,第一阈值是根据激光雷达的应用场景、精度要求等实际情况自行设定的。第一阈值和第二阈值可以为经验值。
80.在实际应用中,针对于第一点云中各个点均执行s202至s204,以判断第一点云中的各个点是否为离群点。
81.至此,便根据最近邻点从第一点云中确定出离群点,不仅简单便捷,计算量小,能够有效提升对离群点的筛查效率。
82.在本技术实施例中,由上述步骤s201-s204可知,分别根据每一第一扫描点的探测距离,确定第一扫描点的最近邻点的第一距离阈值,通过判断第一扫描点与最近邻点之间第一距离值小于第一距离阈值的数量是否大于第一阈值,确定第一扫描点是否为离群点。如此,根据探测距离的不同动态确定对应的第一距离阈值,相比静态的阈值有着更匹配的离群点剔除阈值,有效减少了对离群点无法剔除干净和/或对非离群点误删的情况,提高了离群点识别的准确率。
83.在一些可能的实施方式中,上述方法还可以包括生成点云近邻表步骤。那么,在s201之前,上述方法还可以包括:步骤一,基于激光雷达的角度标定数据,在预设探测距离下,生成第三点云;步骤二,遍历第三点云,搜索每一点的最近邻点;步骤三,至少基于最近邻点,生成点云近邻表。
84.在实际应用中,上述生成点云近邻表步骤可以在激光雷达出厂时执行,也可以在每次激光雷达上电初始化时执行。也就是说,激光雷达并不需要每次进行测距前执行。
85.在实际应用中,激光雷达的角度标定数据是在激光雷达出厂前存储的。激光雷达根据该角度标定数据,可以获得激光雷达中每个激光器的发射角度。预设探测距离(可以记为distance)可以理解为激光雷达预设的扫描范围,是根据实际情况设置的。distance为正整数。
86.应理解的,在步骤一中,激光雷达能够根据每个激光器的发射角度和预设的探测距离生成一帧仿真点云(即上述实施例中所述的用于生成点云近邻表的点云或者第三点云)。由于激光雷达激光器的发射角度固定且激光沿直线传播,所以,仿真点云重叠的区域是固定的,与激光器的发射距离无关。仿真点云中每一点与其近邻点的排布也是相对固定
的。那么,由激光雷达的激光器所产生的任意未知点云中各点的排布与仿真点云是一致的,即第一点云中各点的排布与第三点云中各点的排布是对应的。这里,仿真点云可以理解为在相同探测距离下将二维的角度标定数据还原到三维角度空间中,这样找到的近邻点更加符合实际情况。
87.示例性的,图3为本技术实施例中的一种点云排布的示意图。假设,预设探测距离(distance)为2米,激光雷达根据角度标定数据和distance=2,生成如图3所示的仿真点云。在仿真点云中,不同角度的激光器形成不同的视场,不同的视场之间形成交叠区域,在交叠区域中,点云分布较为密集。例如,图3中深色部分表示各个视场与相邻视场交叠的点云分布区域,浅色部分表示各个视场与相邻视场不交叠的点云分布区域。图3中右侧部分为一个交叠区域中部分点云的分布示例。其中,圆圈代表点,圆圈中的数字代表该点的序号。由图3可以看出,点49178的四周紧邻点3294、点3302、点3314、点49394、点49402、点2014、点48761和点48537,即点的位置相邻而点云的序号并不相邻。其中,点3302、点49394、点48761以及点49402为点49178的最近邻点,点3294、点3314、点2014以及点8537为点49178的次近邻点。进一步地,激光雷达记录仿真点云中的每一个点的最近邻点和次近邻点,生成点云近邻表。
88.应理解的,在步骤二至步骤三中,激光雷达遍历第三点云,搜索第三点云中每一点的最近邻点。具体来说,激光雷达可以通过搜索算法(如kd树算法)搜索每个点的k1个最近邻点,并记录这些最近邻点,生成固定的点云近邻表。当然,激光雷达还可以采用其他搜索算法来搜索每个点的最近邻点,本技术实施例对此不做具体限定。
89.在一实施方式中,图4为本技术实施例中的一种处理点云的流程图。结合图4所示对点云处理方法进行说明。在下述实施例中,均以第一点云中的点a为例。
90.那么,上述点云的处理方法可以包括以下步骤:s401,输入第一点云,进入s402;s402,判断是否遍历完成;若是,进入s407;若否,进入s403;s403,查询近邻表,计算第一点云中点a到k1个最近邻点的第一距离值;s404,获取点a对应的探测距离,通过动态阈值函数,获得点a与最近邻点的第一距离阈值;s405,判断k1个第一距离值小于第一距离阈值的数量是否大于2个;若是,进入s406;若否,进入s407;s406,该点不作处理,进入s402;s407,该点为离群点,进入s402;s408,输出去噪后点云,也就是剔除离群点的数据。
91.本技术实施例中,上述s403与s404的执行顺序并不做限定。
92.本技术实施例中,分别根据每一第一扫描点的探测距离,确定第一扫描点的最近邻点的第一距离阈值,通过判断第一扫描点与最近邻点之间第一距离值小于第一距离阈值的数量是否大于第一阈值,确定第一扫描点是否为离群点。如此,根据探测距离的不同动态确定对应的第一距离阈值,相比静态的阈值有着更匹配的离群点剔除阈值,有效减少了对离群点无法剔除干净和/或对非离群点误删的情况,提高了离群点识别的准确率。
93.基于相同的发明构思,本技术实施例提供了一种点云的处理装置,该装置可以为激光雷达设备中的芯片或者片上系统,还可以为激光雷达设备中用于实现上述各个实施例
所述的方法的功能模块。该装置可以实现上述各实施例中点云的处理功能,这些功能可以通过硬件执行相应的软件实现。这些硬件或软件包括一个或多个上述功能相应的模块。图5为本技术实施例中的点云的处理装置的一种结构示意图,参见图5所示,该处理装置500,可以包括:第一数据获取模块501,用于获取激光雷达的第一点云,激光雷达产生的点云为无序点云;第一确定模块502,用于遍历第一点云,确定第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;第二确定模块503,用于基于第一点云中第一扫描点对应的探测距离,确定在该探测距离下第一扫描点与第一扫描点的最近邻点的第一距离阈值,其中,不同探测距离对应于不同第一距离阈值;数据分析模块504,用于基于第一距离值与第一距离阈值,从第一点云中确定离群点。
94.在一些可能的实施方式中,数据分析模块504,还用于针对第一点云中的第i个第一扫描点,确定第一距离值小于第i个第一扫描点对应的第一距离阈值的n个最近邻点;其中,i和n的取值为大于或者等于1的整数;当n的取值小于第一阈值时,将第i个第一扫描点确定为离群点。
95.在一些可能的实施方式中,第二确定模块503,还用于获取第一点云中每个第一扫描点的探测距离;基于动态阈值函数,确定每个第一扫描点的探测距离对应的第一距离阈值,动态阈值函数用于表示不同的探测距离与第一距离阈值的映射关系。
96.在一些可能的实施方式中,点云处理装置500还包括:第二数据获取模块505,用于在预设探测距离下,获取激光雷达的第二点云;第三确定模块506,确定第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离阈值;拟合模块507,用于基于预设探测距离以及第二距离阈值,拟合动态阈值函数。
97.在一些可能的实施方式中,动态阈值函数满足以下表达式:其中,rj为距离阈值,k为大于或者等于1常数,r为探测距离。
98.在一些可能的实施方式中,第三确定模块506,还用于遍历第二点云,计算第二点云中的第二扫描点与第二扫描点的最近邻点的第二距离值;将满足预设精度需求的第二距离值确定为第二距离阈值。
99.在一些可能的实施方式中,第一确定模块502,还用于遍历第一点云,通过查询点云近邻表,计算第一点云中的第一扫描点与第一扫描点的最近邻点的第一距离值;其中,点云近邻表是基于激光雷达的预设角度标定数据生成的。
100.需要说明的是,上述数据第一数据获取模块501、第一确定模块502、第二确定模块503和数据分析模块504的具体实现过程可参考图2至图4实施例的详细描述,为了说明书的简洁,这里不再赘述。
101.本技术实施例中提到的第一数据获取模块501、第一确定模块502、第二确定模块503和数据分析模块504可以为一个或者多个处理器。
102.基于相同的发明构思,本技术实施例提供一种激光雷达,包括:存储器,存储有计算机可执行指令;处理器,与存储器相连,用于通过执行计算机可执行指令,并能够实现如上述一个或者多个实施例所述的点云的处理方法。
103.基于相同的发明构思,本技术提供一种计算机存储介质,计算机存储介质存储有
计算机可执行指令,计算机可执行指令被处理器执行后,能够实现如上述一个或者多个实施例所述的点云的处理方法。
104.本领域技术人员可以理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
105.以上实施例仅用以说明本技术的技术方案,而非对其限制。尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行替换。而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1