一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

点云处理方法及装置与流程

2022-04-27 11:10:37 来源:中国专利 TAG:


1.本技术涉及图像数据处理技术领域,尤其涉及点云处理方法及装置。


背景技术:

2.激光雷达(lidar)是以发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如目标距离、方位、高度、速度、姿态、甚至形状等参数,从而可以应用在飞机,车辆等交通工具对障碍物的识别上。
3.当前基于激光雷达的算法开发大多是基于单帧点云进行后续处理,由于激光雷达的发散特性,点云的密集程度会随着距离的增大而变得稀疏,因此对于远距离障碍物的识别能力较差。
4.在一些方案中,会采用高线束的激光雷达对远距离障碍物进行识别,高线速的激光雷达相比低线束激光雷达可以获得更多的点云,对远距离障碍物识别能力较强,但是高线束激光雷达价格昂贵。


技术实现要素:

5.为解决或部分解决相关技术中存在的问题,本技术提供一种点云处理方法及装置,能够增大点云的密集程度,提升激光雷达对远距离障碍物的识别能力。
6.本技术第一方面提供一种点云处理方法,包括:通过粒子群优化算法确定相邻的第一点云帧和第二点云帧对应的第一变换矩阵;将所述第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到所述第一点云帧对应的第一坐标系;根据所述第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将所述第一点云帧中的第一点云叠加到所述第二点云帧中。
7.本技术第二方面提供一种点云处理装置,包括:确定模块,用于通过粒子群优化算法确定相邻的第一点云帧和第二点云帧对应的第一变换矩阵;
8.变换模块,用于将所述第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到所述第一点云帧对应的第一坐标系;
9.叠加模块,用于根据所述第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将所述第一点云帧中的第一点云叠加到所述第二点云帧中。
10.本技术第三方面提供一种电子设备,包括:
11.处理器;以及
12.存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
13.本技术第四方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
14.本技术提供的技术方案可以通过粒子群优化算法确定相邻两帧点云对应的变换矩阵,将第一点云帧中的原始坐标系通过该变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系,根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。也就是说本技术方案可以将两帧点云进行配准,使得两帧点云中的点可以叠加在一起,从而增大点云的密集程度,即远距离障碍物对应的点云密集程度也会增大,从而扫描设备对远距离障碍物的能力也会提升。
15.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
16.通过结合附图对本技术示例性实施方式进行更详细地描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号通常代表相同部件。
17.图1是本技术实施例示出的点云处理方法的流程示意图;
18.图2是本技术实施例示出的通过粒子群优化算法确定第一旋转平移矩阵的流程示意图;
19.图3是本技术实施例示出的第一点云帧的原始坐标系的示意图;
20.图4是本技术实施例示出的第一点云帧对应的第一坐标系的示意图;
21.图5是本技术实施例示出的在第二点云帧的原始坐标系显示第一点云和第二点云的示意图;
22.图6是本技术实施例示出的点云处理装置的结构示意图;
23.图7是本技术实施例示出的点云处理装置的另一结构示意图;
24.图8是本技术实施例示出的电子设备的结构示意图。
具体实施方式
25.下面将参照附图更详细地描述本技术的实施方式。虽然附图中显示了本技术的实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
26.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
28.为了便于理解本技术实施例,下面对本技术实施例涉及的一些词语进行介绍。
29.点云:通常是指通过三维扫描设备,例如激光雷达、立体摄像头、飞行时间(time of fight,tof)相机等测量的物体表面的点的信息,其中,每一个点包含有三维坐标,并可能含有颜色信息或反射强度信息等。这些点云通过扫描设备采集到并以相关数据形式输出,从而可以被点云处理装置读取。
30.点云帧:即某一帧点云,扫描设备以一定旋转频率对周围环境进行扫描,遇到障碍物就会返回点云数据,点云数据经过处理即得到一帧点云。
31.粒子群优化算法:又称为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通常认为它是群集智能(swarm intelligence,si)的一种。它可以被纳入多主体优化系统(multiagent optimization system,maos)。
32.曲率:用于反映点云及其邻域的几何形状变化。
33.法矢:即法向单位矢量,用于标识点云及其邻域形成曲面主法线的方向。
34.为了便于理解本技术实施例,下面对本技术实施例适用的场景进行介绍。
35.随着汽车电子技术的发展,相关技术如传感技术、图像处理以及人工智能等逐渐在汽车领域中得到应用,自动驾驶,辅助驾驶,无人驾驶技术逐渐成为热点。对障碍物的识别自动驾驶,辅助驾驶和无人驾驶技术中的关键。相关技术中,通常在车辆搭载激光雷达,车辆通过激光雷达识别出车辆周围环境中的障碍物。
36.相关技术中,激光雷达以一定的频率旋转对车辆周围环境进行扫描,遇到障碍物就会返回一帧点云,点云处理装置将激光雷达扫描得到的若干帧点云通过预定的识别流程进行处理,然后输出车辆周围环境中的障碍物对应的图像。但是由于激光雷达的发散特性,每一帧点云中点云密集程度会随着距离的增大而变得稀疏,因此对于与车辆相距较远的障碍物,识别能力会比较差,即输出的结果准确率会比较低。
37.针对上述问题,本技术实施例提供一种点云处理方法,能够增大点云的密集程度,提升激光雷达对远距离障碍物的识别能力。
38.应理解,上述场景仅为示例,本实施例中的点云处理方法除了可以应用在汽车,还可以应用在其他具有辅助驾驶功能的设备中,具体本实施例不作限定。本实施例中获得点云的设备除了可以是激光雷达,还可以是其他扫描设备,具体本实施例不作限定。
39.以下结合附图详细描述本技术实施例的技术方案。
40.图1是本技术实施例示出的点云处理方法的流程示意图。
41.参见图1,本实施例中的点云处理方法包括:
42.101、点云处理装置通过粒子群算法确定相邻的第一点云帧和第二点云帧对应的第一变换矩阵;
43.点云处理装置通过扫描设备获取相邻的两帧点云,然后根据粒子群算法确定这两帧点云对应的第一变换矩阵。为了便于描述,本实施例将这两帧相邻的点云称为第一点云帧和第二点云帧。
44.具体地,点云处理装置可以通过如下方式获取第一点云帧和第二点云帧:扫描设备对周围环境进行扫描,遇到障碍物时就会向点云处理装置返回对应的点云,点云处理装置获取返回的点云后,使用k-维树(k-dimensional tree,kd-tree)搜索点云中各点云的k
近邻得到对应的点云帧。
45.应理解,kd-tree是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,主要用于多维空间关键数据的搜索。通过kd-tree搜索点云的k近邻得到对应的点云帧的具体方式为本领域技术人员的公知常识,本实施例不作赘述。还应理解,除了通过kd-tree搜索点云,点云处理装置还可以通过其他方式搜索点云,具体本实施例不作限定。
46.具体地,点云处理装置可以通过如下方式确定第一变换矩阵,如图2所示,确定第一变换矩阵的过程包括:
47.(1)、计算第一点云帧中的第一点云与第二点云帧中的第二点云的曲率;
48.点云处理装置获取第一点云帧后,将第一点云帧分成若干个第一区域,每个第一区域包含一个或多个相邻的第一点云。然后,点云处理装置分别针对每个第一区域建立一个坐标系,再针对每个第一区域,确定第一点云在该第一区域的坐标系中对应的第一坐标值,根据第一坐标值通过最小二乘法确定该第一区域对应的第一曲面,并确定该第一曲面的曲率为该第一区域中的第一点云对应的曲率。
49.可选地,点云处理装置还可以确定第一曲面的法向单位矢量为该第一区域中的第一点云对应的法矢。
50.点云处理装置获取第二点云帧后,将第二点云帧分成若干个第二区域,每个第二区域包含一个或多个相邻的第二点云。然后,点云处理装置分别针对每个第二区域建立一个坐标系,再针对每个第二区域,确定第二点云在该第二区域的坐标系中对应的第二坐标值,根据第二坐标值通过最小二乘法确定该第二区域对应的第二曲面,并确定该第二曲面的曲率为该第二区域中的第二点云对应的曲率。
51.可选地,点云处理装置还可以确定第二曲面的法向单位矢量为该第二区域中的第二点云对应的法矢。
52.(2)、根据曲率将第一点云帧中的第一点云与第二点云帧中的第二点云进行配对,得到若干组点云对;
53.点云处理装置计算曲率后,将第一点云帧中的第一点云与第二点云帧中的第二点云进行配对得到若干组点云对,每组点云对包含曲率相近的点云。具体地,上述步骤(1)中计算出了若干个第一区域对应的曲率和第二区域的曲率,将曲率相近的第一区域与第二区域分成一组,每个组中第一区域的第一点云与这个组中第二区域的第二点云即构成一组点云对。
54.示例性的,第一区域a包含2个点云a1和a2,a的曲率为25.25cm-1
;第一区域b包含3个点云b1,b2和b3,b的曲率为27.18cm-1
;第二区域c包含2个点云c1和c2,c的曲率为25.28cm-1
;第二区域d包含3个点云d1,d2和d3,d的曲率为27.31cm-1
。则点云处理装置将曲率相近的第一区域a和第二区域c分成一组,即点云a(a1,a2)和点云c(c1和c2)为一组点云对,第一区域b和第二区域d分成一组,即点云b(b1,b2和b3)与点云d(d1,d2和d3)为一组点云对。
55.(3)、生成n个目标变换矩阵;
56.点云处理装置配对得到若干组点云对后,生成n个目标变换矩阵。本实施例中n的值(即目标变换矩阵的数量)与粒子群优化算法中粒子群优化算法中粒子个数对应,是用户
预先设定的,为大于0的整数。
57.具体地,粒子群优化算法中是通过粒子的属性(粒子的位置和速度)来定义粒子的,本实施例中一个变换矩阵对应粒子群优化算法中的一个粒子,不同的属性值对应的矩阵不相同,点云处理装置可以通过随机算法生成初始的n个属性值,这n个属性值对应的n个矩阵即目标变换矩阵。点云处理装置也可以通过其他方式生成n个目标变换矩阵,具体本实施例不作限定。
58.(4)、针对每个目标变换矩阵,确定该目标变换矩阵对应的优化函数值;
59.点云处理装置生成n个目标变换矩阵后或者每一次更新目标变换矩阵后,针对每个目标变换矩阵,计算该目标变换矩阵对应的优化函数值,该优化函数值与若干组点云对的法矢叉积和对应。应理解,若干组点云对的法矢叉积和是指对若干组点云对的法向单位矢量的叉积求和的结果。优化函数值指的是根据目标变换矩阵和优化函数计算出来的值。优化函数包括若干组点云对的法向矢量的叉积的和,其中,点云对中点云的法向矢量与目标变换矩阵对应。
60.具体地,点云处理装可以通过图形处理器(gpu,graphics processing unit)并行计算各个目标变换矩阵对应的优化函数值。
61.更具体地,针对每个目标变换矩阵,点云处理装置可以通过如下方式确定目标变换矩阵对应的优化函数值:
62.s1、将第一点云帧中的第一点云帧的原始坐标系通过目标变换矩阵进行旋转和/或平移得到第一点云帧对应的第三坐标系;
63.具体地,目标变换矩阵用于将坐标系顺时针/逆时针旋转角度θ后再平移向量t,第一点云帧的原始坐标系为o-xy,点云处理装置根据目标变换矩阵将坐标系o-xyz旋转角度θ,再将该坐标系平移向量t得到第三坐标系o`-x`y`z`。
64.s2、计算对应坐标系为第三坐标系的第一点云帧中的第一点云对应的第一法矢;
65.点云处理装置根据各第一点云在第三坐标系o`-x`y`z`对应的坐标值确定各第一点云对应的法矢(第一法矢),具体地,点云处理装置可以通过前述步骤(1)所述的方式确定点云对应的曲面,将曲面对应的法矢确定为点云对应的法矢。
66.s3、针对若干组点云对,计算该组点云对中的第一点云对应的第一法矢与该组点云对中的第二点云对应的第二法矢的法矢叉积,并将每组点云对的单位法向矢量的叉积相加得到目标变换矩阵对应的优化函数值。
67.计算出各个第一点云对应的第一法矢后,点云处理装置针对配对好的若干组点云对,将每组点云对中的第一点云对应的第一法矢和该组点云对中的第二点云的法矢进行叉乘得到该组点云对的法矢叉积,再将每组点云对的法矢叉积相加得到的值即目标变换矩阵对应的优化函数值。
68.示例性地,配对得到两组点云对,其中一组为第一点云a和第二点云c,另一组为第一点云b和第二点云d。根据第一点云a和c在第三坐标系o`-x`y`z`对应的坐标值确定的第一点云a的法矢为f1,第一点云c的法矢为f2。而上述步骤(2)中计算得到第二点云b的法矢为f3,第二点云d的法矢为f4。点云处理装置计算优化函数值y=f1
×
f2 f3
×
f4。
69.(5)、确定优化函数值中的最小值是否为零,若是,则执行步骤(6),若否,则执行步骤(7)和(8);
70.点云处理装置每次确定完各个目标变换矩阵对应的优化函数值后,需要判断函数是否收敛。本实施例中的函数收敛的条件为最小值为零,则点云处理装置确定各个目标变换矩阵对应的优化函数值后,需要判断这些优化函数值中的最小值是否为零,若是,则执行步骤(6),若不是,则执行步骤(7)和(8)。
71.(6)、确定最小值对应的目标变换矩阵为第一变换矩阵;
72.当确定各个目标变换矩阵对应的优化函数值中的最小值为零时,即函数收敛,点云处理装置可以停止迭代计算,输出该最小值对应的目标变换矩阵,即确定目标变换矩阵为第一变换矩阵。
73.(7)、确定最小值对应的目标变换矩阵为待优化变换矩阵;
74.当确定各个目标变换矩阵对应的优化函数值中的最小值不为零时,即函数未收敛,点云处理装置还需要继续进行迭代计算,将该最小值对应的目标变换矩阵确定为待优化变换矩阵。
75.(8)、判断迭代次数是否达到预设值,若是,则执行步骤(9),若否,则执行步骤(10);
76.当确定各个目标变换矩阵对应的优化函数值中的最小值不为零时,点云处理装置判断迭代次数是否达到预设值,若是,则执行步骤(9),若否,则执行步骤(10)。
77.应理解,迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。迭代计算中迭代次数指的是迭代运算过程中循环的次数。本实施例中的迭代次数指的是更新目标变换矩阵并计算优化函数值的次数。
78.(9)、确定每次迭代计算得到的待优化变换矩阵中对应优化函数值最小的待优化变换矩阵为第一变换矩阵。
79.每一次迭代点,如果函数没有收敛,那么点云处理装置就会计算出一个待优化变换矩阵。当迭代次数没有达到预设值时,点云处理装置将当前计算得出的各个待优化变换矩阵中对应优化函数值最小的待优化变换矩阵为第一变换矩阵。
80.(10)、对n个目标变换矩阵进行更新,并执行步骤(4)和(5)。
81.当迭代次数达到预设值时,点云处理装置对n个目标变换矩阵进行更新,并执行步骤(4)至(5)以及对应的后续流程,即点云处理装置会重复执行步骤(4)至(10)直到确定出第一变换矩阵(即优化函数值中的最小值为零或者迭代次数达到预设值。
82.具体地,粒子群优化算法中是通过更新粒子的属性(粒子的位置和速度)来对粒子进行更新的。本实施例中点云处理装置也可以设置目标变换矩阵的属性,不同的属性值对应的矩阵不相同,点云处理装置通过更新目标变换矩阵的属性值来更新目标变换矩阵。点云处理装置也可以通过其他方式更新目标变换矩阵,具体本实施例不作限定。
83.应理解,点云处理装置除了可以通过上述步骤(1)至(10)对应的方式确定第一变换矩阵,还可以通过其他方式确定第一变换矩阵,具体本实施例不作限定。
84.102、点云处理装置将第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系;
85.点云处理装置确定第一变换矩阵后,将第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到第一坐标系。应理解,本实施例中的坐标系指的是空间坐标系,
通过变换矩阵对空间坐标系进行变换是本领域技术人员的公知常识,具体本实施例不作限定。
86.103、点云处理装置根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。
87.点云处理装置确定第一坐标系后,根据该第一坐标系,设备的行驶方向,行驶速度和两帧点云(第一点云帧和第二点云帧)的时间差将这两帧点云中的点云进行叠加,将两帧点云中的点云进行叠加即在同一坐标系中展示两帧点云中的点云,也可以理解为将两帧点云中的点云合并。
88.在一些实施例中,点云处理装置可以先计算出目标距离,该目标距离与设备的行驶速度和两帧点云(第一点云帧与第二点云帧)的时间差对应,具体地,目标距离等于设备的行驶速度乘以两帧点云的时间差。
89.计算出目标距离之后,点云处理装置可以将第一点云帧对应的第一坐标系按照设备的行驶方向移动目标距离得到第一点云帧对应的第二坐标系,然后根据第一点云帧对应的第二坐标系将第一点云帧中的第一点云叠加到第二点云帧中。
90.具体地,点云处理装置将第一点云帧中的第一点云叠加到第二点云帧中的流程包括:
91.(1)根据第二坐标系与第二点云帧的原始坐标系的第一对应关系确定第一点云帧的第一点云与第二点云帧的第二点云的第二对应关系;
92.具体地,依据坐标系的对应关系确定坐标系下的点与点的对应关系,是本领域技术人员的惯用技术手段,此处不赘述。
93.(2)根据第二对应关系确定第一点云帧中的第一点云在第二点云帧中的原始坐标系中对应的坐标值;
94.确定第二对应关系后,点云处理装置可以将第一点云在第二坐标系中对应的坐标值通过第二对应关系进行变换,变换得到的坐标值即第一点云在第二点云帧的原始坐标系中对应的坐标值。
95.(3)根据第二点云在第二点云帧的原始坐标系中对应的坐标值以及第一点云在第二点云帧的原始坐标系中对应的坐标值,在第二点云帧的原始坐标系下显示第一点云以及第二点云。
96.确定第二点云帧的原始坐标系中第一点云对应的坐标值以及第二点云对应的坐标值后,点云处理装置可以在第二点云帧的原始坐标系中显示第一点云以及第二点云,从而实现将第一点云与第二点云的合并,将第一点云叠加到第二点云帧中。
97.应理解,本实施例中的设备可以是车辆或者是其他需要对周围环境进行障碍物识别的设备,具体本实施例不作限定。还应理解,两帧点云的时间差与扫描设备的扫描频率相关,具体计算过程为本领域的公知常识,本实施例不再赘述。
98.应理解,除了上述方式,点云处理装置确定第一坐标系后,也可以通过如下方式将第一点云帧中的第一点云叠加到第二点云帧中:点云处理装置根据第一坐标系与第二点云帧的原始坐标系的第三对应关系确定第一点云帧的第一点云与第二点云帧的第二点云的第四关系;根据第四对应关系确定第一点云帧中第一点云在第二点云帧的原始坐标系中对应的坐标值;根据第二点云在第二点云帧的原始坐标系中对应的坐标值以及第一点云在第
二点云帧的原始坐标系中对应的坐标值,在第二点云帧的原始坐标系下显示第一点云以及第二点云;将第二点云的原始坐标系中的第一点云按照设备的行驶方向移动目标距离得到目标图像,该目标图像即将第一点云叠加到第二点云帧后得到的图像。
99.点云处理装置还可以通过其他方式将第一点云帧中的第一点云叠加到第二点云帧中,具体本实施例不作限定。
100.示例性地,第一点云帧中包含第一点云a(xa,ya,za)和b(xb,yb,zb),第一点云帧对应的原始坐标系为o-xyz,第二点云帧包含第二点云c(xc,yc,zc)和d(xd,yd,zd),第二点云帧对应的原始坐标系为o
1-x1y1z1,如图2所示。
101.第一变换矩阵用于将坐标系顺时针/逆时针旋转角度θ1后再平移向量t1,点云处理装置根据第一变换矩阵将坐标系o-xyz旋转角度θ1,再将该坐标平移向量t1得到第一坐标系o
2-x2y2z2,如图3所示。
102.设备在获取第一点云帧和第二点云帧时,以速度v向正前方行驶,获取第一点云帧和第二点云帧的时间差是t,则点云处理装置确定第一坐标系后,计算得到目标距离为s=vt,则点云处理装置将第一坐标系沿着x轴正向移动s得到第二坐标系o
3-x3y3z3,如图4所示。
103.根据坐标系o
1-x1y1z1与坐标系o
3-x3y3z3的对应关系对第一点云a(xa,ya,za)和第二b(xb,yb,zb)进行坐标变换得到a在坐标系o
1-x1y1z1对应的坐标值(x
a’,y
a’,z
a’)和b在坐标系o
1-x1y1z1对应的坐标值(x
b’,y
b’,z
b’)。最终在坐标系o
1-x1y1z1中显示第一点云a和b,以及第二点云c和d,如图5所示。
104.本技术提供的技术方案可以通过粒子群优化算法确定相邻两帧点云对应的变换矩阵,将第一点云帧中的原始坐标系通过该变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系,根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。也就是说本技术方案可以将两帧点云进行配准,使得两帧点云中的点可以叠加在一起,从而增大点云的密集程度,即远距离障碍物对应的点云密集程度也会增大,从而扫描设备对远距离障碍物的能力也会提升。
105.其次,本实施例在通过粒子群优化算法进行计算时可以通过gpu并行计算各个粒子(目标变换矩阵)对应的优化函数值,提高了运算效率。
106.再次,本实施例可以将点云帧划分成若干个区域,然后通过最小二乘法计算点云的曲率,提高了方案的准确性。
107.与前述应用功能实现方法实施例相对应,本技术还提供了一种点云处理装置、电子设备及相应的实施例。
108.图6是本技术实施例示出的点云处理装置的结构示意图。
109.参见图6,本实施例中的点云处理装置包括:
110.确定模块601,用于通过粒子群优化算法确定相邻的第一点云帧和第二点云帧对应的第一变换矩阵;
111.变换模块602,用于将第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系;
112.叠加模块603,用于根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。
113.本技术提供的技术方案中,确定模块601可以通过粒子群优化算法确定相邻两帧点云对应的变换矩阵,变换模块602将第一点云帧中的原始坐标系通过该变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系,叠加模块603可以根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。也就是说本技术方案可以将两帧点云进行配准,使得两帧点云中的点可以叠加在一起,从而增大点云的密集程度,即远距离障碍物对应的点云密集程度也会增大,从而扫描设备对远距离障碍物的能力也会提升。
114.为了便于理解,下面对本技术实施例中的点云处理装置进行详细介绍,请参阅图7,本技术实施例中的点云处理装置包括:
115.确定模块701,用于通过粒子群优化算法确定相邻的第一点云帧和第二点云帧对应的第一变换矩阵;
116.变换模块702,用于将第一点云帧的原始坐标系通过第一变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系;
117.叠加模块703,用于根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。
118.其中,叠加模块703包括:
119.移动单元7031,用于将第一点云帧对应的第一坐标系按照设备的行驶方向移动目标距离得到第一点云帧对应的第二坐标系,目标距离与设备的行驶速度和第一点云帧与第二点云帧的时间差对应;
120.第一确定单元7032,用于根据第二坐标系与第二点云帧的原始坐标系的第一对应关系,确定第一点云帧的第一点云与第二点云帧的第二点云的第二对应关系;
121.第二确定单元7033,用于根据第二对应关系确定第一点云在第二点云帧中的原始坐标系中对应的坐标值;
122.显示单元7034,用于根据第二点云在第二点云帧的原始坐标系中对应的坐标值以及第一点云在第二点云帧中的原始坐标系中对应的坐标值,在第二点云帧的原始坐标系中显示第一点云以及第二点云。
123.确定模块701包括:
124.计算单元7011,用于计算第一点云帧中的第一点云与第二点云帧中的第二点云的曲率;
125.配对单元7012,用于根据曲率将第一点云帧中的第一点云与第二点云帧中的第二点云进行配对,得到若干组点云对,每组点云包含曲率相近的点云;
126.生成单元7013,用于生成n个目标变换矩阵,n为大于或等于1的整数;
127.第三确定单元7014,用于针对每个目标变换矩阵,确定该目标变换矩阵对应的优化函数值,优化函数值与若干组点云对的法矢差积和对应;
128.第四确定单元7015,用于确定优化函数值中的最小值;
129.第五确定单元7016,用于在最小值为零时,确定最小值对应的目标变换矩阵为第一变换矩阵;
130.第六确定单元7017,用于在最小值不为零时,确定最小值对应的目标变换矩阵为待优化变换矩阵;
131.判断单元7018,用于判断迭代次数是否达到预设值;
132.第七确定单元7019,用于在迭代次数达到预设值时,确定每次迭代计算得到的待优化变换矩阵中对应优化函数值最小的待优化变换矩阵为第一变换矩阵;
133.更新单元70110,用于在迭代次数未达到预设值时,更新n个目标变换矩阵。
134.具体地,第三确定单元7014,还用于通过gpu并行计算每个目标变换矩阵对应的优化函数值。
135.在一些实施例中,第三确定单元包括:
136.变换子单元,用于将第一点云帧的原始坐标系通过该目标变换矩阵进行旋转和/或平移得到第一点云帧对应的第三坐标系;
137.第一计算子单元,用于计算对应坐标系为第三坐标系的第一点云帧中第一点云对应的第一法矢;
138.第二计算子单元,用于针对若干组点云对,计算该组点云对中的第一点云对应的第一法矢与该组点云对中的第二点云对应的第二法矢的法矢叉积,并将每组点云对的法矢叉积相加得到该目标变换矩阵对应的优化函数值。
139.计算单元包括:
140.划分子单元,用于将第一点云帧划分成若干个第一区域,将第二点云帧划分成若干个第二区域,每个第一区域包含一个或多个相邻的第一点云,每个第二区域包含一个或多个相邻的第二点云;
141.建立子单元,用于分别针对每个第一区域和第二区域建立一个坐标系;
142.第一确定子单元,用于针对每个第一区域,确定该第一区域中的第一点云在该第一区域的坐标系中对应的第一坐标值,根据第一坐标值通过最小二乘法确定该第一区域对应的第一曲面,并确定第一曲面的曲率为该第一区域中的第一点云对应的曲率;
143.第二确定子单元,用于针对每个第二区域,确定该第二区域中的第二点云在该第二区域的坐标系中对应的第二坐标值,根据第二坐标值通过最小二乘法确定该第二区域对应的第二曲面,并确定第一曲面的曲率为该第二区域中的第二点云对应的曲率。
144.本技术提供的技术方案中,确定模块701可以通过粒子群优化算法确定相邻两帧点云对应的变换矩阵,变换模块702将第一点云帧中的原始坐标系通过该变换矩阵进行旋转和/或平移得到第一点云帧对应的第一坐标系,叠加模块703可以根据第一坐标系,设备的行驶速度和第一点云帧与第二点云帧的时间差将第一点云帧中的第一点云叠加到第二点云帧中。也就是说本技术方案可以将两帧点云进行配准,使得两帧点云中的点可以叠加在一起,从而增大点云的密集程度,即远距离障碍物对应的点云密集程度也会增大,从而扫描设备对远距离障碍物的能力也会提升。
145.其次,本实施例在通过粒子群优化算法进行计算时第三确定单元7014可以通过gpu并行计算各个粒子(目标变换矩阵)对应的优化函数值,提高了运算效率。
146.再次,本实施例划分子单元可以将点云帧划分成若干个区域,然后第一确定子单元和第二确定子单元可以通过最小二乘法计算点云的曲率,提高了方案的准确性。
147.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
148.图8是本技术实施例示出的电子设备的结构示意图。
149.参见图8,电子设备800包括存储器810和处理器820。
150.处理器820可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
151.存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(rom)和永久存储装置。其中,rom可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器810可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
152.存储器810上存储有可执行代码,当可执行代码被处理器820处理时,可以使处理器820执行上文述及的方法中的部分或全部。
153.此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机程序代码指令。
154.或者,本技术还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本技术的上述方法的各个步骤的部分或全部。
155.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献