点云处理方法、***、可移动平台及存储介质
技术领域
本申请实施例涉及探测技术领域,尤其涉及一种点云处理方法、***、可移动平台及存储介质。
背景技术
现有技术中在建立电子地图时,需要通过探测设备采集大量的点云,例如,探测设备可以在不同时刻采集不同的点云。进一步计算每个时刻采集的点云与其他时刻采集的点云之间的相对位置关系,并根据每个时刻的点云与其他时刻的点云之间的相对位置关系建立电子地图。
通常情况下,可以采用时序上相邻的点云之间的相对位置关系来求解时序上不相邻的点云之间的相对位置关系。但是,如果时序上不相邻的两组点云之间的时间跨度比较长,则会导致误差累积,从而导致不同时刻的点云之间的相对位置关系不精准。
发明内容
本申请实施例提供一种点云处理方法、***、可移动平台及存储介质,以提高探测设备在不同时刻探测获得的点云之间的相对位置关系的精准度。
本申请实施例的第一方面是提供一种点云处理方法,应用于可移动平台,所述可移动平台设置有探测设备,所述探测设备用于探测获得点云,所述方法包括:
获取时序上相邻的点云之间的相对位置关系;
根据所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理,得到多个聚合点云,每个所述聚合点云包括至少两个所述时序上相邻的点云;
确定所述多个聚合点云中位置相邻的聚合点云之间的相对位置关系;
根据所述位置相邻的聚合点云之间的相对位置关系,确定所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系。
本申请实施例的第二方面是提供一种点云处理***,包括:探测设备、存储器和处理器;
其中,所述探测设备用于探测获得点云;
所述存储器用于存储程序代码;
所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:
获取时序上相邻的点云之间的相对位置关系;
根据所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理,得到多个聚合点云,每个所述聚合点云包括至少两个所述时序上相邻的点云;
确定所述多个聚合点云中位置相邻的聚合点云之间的相对位置关系;
根据所述位置相邻的聚合点云之间的相对位置关系,确定所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系。
本申请实施例的第三方面是提供一种可移动平台,包括:
机身;
动力***,安装在所述机身,用于提供移动动力;
以及第二方面所述的点云处理***。
本申请实施例的第四方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本实施例提供的点云处理方法、***、可移动平台及存储介质,通过获得的时序上相邻的点云之间的相对位置关系,对时序上相邻的点云进行聚合处理,得到多个大点云即多个聚合点云,由于大点云中的细节特征更加丰富,即使位置相邻的区域被遮挡物所遮挡,也能通过大点云中的细节特征完成大点云之间的匹配计算,从而根据位置相邻的大点云之间的相对位置关系,可确定出较为精准的由探测设备在不同时刻探测获得的点云之间的目标相对位置关系,从而提高了不同时刻的点云之间的相对位置关系的精准度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的点云处理方法的流程图;
图3为本申请实施例提供的一种点云聚合的示意图;
图4为本申请另一实施例提供的点云处理方法的流程图;
图5为本申请实施例提供的点云处理***的结构图;
图6为本申请实施例提供的点云的示意图。
附图标记:
11:车辆; 12:服务器; 13:路段;
14:路段; 50:点云处理***; 51:探测设备;
52:存储器; 53:处理器。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种点云处理方法。该方法可应用于可移动平台,所述可移动平台设置有探测设备,该探测设备用于探测获得点云。在本实施例中,该可移动平台可以是无人机、可移动机器人或车辆。
本申请实施例以可移动平台是车辆为例,该车辆可以是无人驾驶车辆,或者是搭载有高级辅助驾驶(Advanced Driver Assistance Systems,ADAS)***的车辆等。如图1所示,车辆11为搭载有探测设备的载体,该探测设备具体可以是双目立体相机、飞行时间测距法(Time of flight,TOF)相机、毫米波雷达和/或激光雷达。车辆11在行驶的过程中,探测设备实时探测车辆11周围物体得到点云,在一些场景中点云也可称为三维点云。以激光雷达为例,当该激光雷达发射出的一束激光照射到物体表面时,该物体表面将会对该束激光进行反射,该激光雷达根据该物体表面反射的激光,可确定该物体相对于该激光雷达的方位、距离等信息。若该激光雷达发射出的该束激光按照某种轨迹进行扫描,例如360度旋转扫描,将得到大量的激光点,因而就可形成该物体的激光点云数据,也就是点云。
另外,本实施例并不限定点云处理方法的执行主体,该点云处理方法可以由车辆中的车载设备执行,也可以由车载设备之外的其他具有数据处理功能的设备执行,例如,如图1所示的服务器12,车辆11和服务器12可进行无线通信或有线通信,车辆11可以将探测设备探测获得的点云发送给服务器12,由服务器12执行该点云处理方法。下面以车载设备为例对本申请实施例提供的点云处理方法进行介绍。其中,车载设备可以是集成在车辆中控台中的具有数据处理功能的设备,或者也可以是放置在车辆内的平板电脑、手机、笔记本电脑等。
图2为本申请实施例提供的点云处理方法的流程图。如图2所示,本实施例中的方法,可以包括:
步骤S201、获取时序上相邻的点云之间的相对位置关系。
如图1所示,车辆11在行驶过程中,车辆11上搭载的探测设备实时探测车辆11周围物体得到点云,该探测设备可以和该车辆11上的车载设备通信连接,从而使得该车辆11上的车载设备可以实时获取到该探测设备探测得到的点云。例如,在t1时刻,车载设备获取到的点云记为P1;在t2时刻,车载设备获取到的点云记为P2;以此类推,在ti时刻,车载设备获取到的点云记为Pi。可以理解的是,在不同时刻,车载设备获取到的点云可包括多个三维点,每个三维点都对应有三维坐标。其中,t1、t2、...、ti可以是连续的时间点。因此,P1和P2、P2和P3、...、Pi-1和Pi可以看作是时序上相邻的点云。可以理解的是,相比于时序上不相邻的点云,时序上相邻的点云之间的重叠区域比较大,因此,可以根据时序上相邻的点云之间的重叠区域来确定时序上不相邻的点云之间的相对位置关系,该相对位置关系具体可包括旋转关系和/或平移关系。例如,P1和P2之间的相对位置关系包括P1和P2之间旋转关系和平移关系。
可选的,所述获取时序上相邻的点云之间的相对位置关系,包括:根据迭代最近点(IteratedClosestPoints,ICP)算法,计算所述时序上相邻的点云之间的相对位置关系。
例如,以P1和P2为例,p(i)为P1中的任意一点,在P2中确定出距离p(i)最近的一点m(i),p(i)和m(i)可构成一组对应点对集,同理可以确定出P1和P2中的多组对应点对集,例如,p(1)和m(1)、p(2)和m(2)、……、p(n)和m(n)为n组对应点对集。其中,p(1)、p(2)、……、p(n)分别是点云P1中的点,m(1)、m(2)、……、m(n)分别是点云P2中的点,m(1)是点云P2中距离p(1)最近的一个点,m(2)是点云P2中距离p(2)最近的一个点,以此类推。
另外,需要说明的是,在本申请实施例中的大写字母和小写字母分别表示不同的含义,例如,P1表示点云,p(1)表示点云P1中的一个点。
由于P1和P2之间存在一定的旋转关系和平移关系,因此,每组对应点对集中的两个点之间也存在着一定的旋转关系和平移关系。例如,将P1和P2之间存在的旋转关系记为R,将P1和P2之间存在的平移关系记为T。n组对应点对集可建立n个方程组,进一步,运用数学方法对该n个方程组进行求解可得到P1和P2之间的旋转关系和平移关系。为了提高计算精度,还可以采用迭代算法,例如,ICP算法来计算P1和P2之间的旋转关系和平移关系。具体的迭代算法可有如下实现方式:
一种可能的实现方式是,将如上所述的n组对应点对集,例如,p(1)和m(1)、p(2)和m(2)、……、p(n)和m(n)代入公式(1)所述的函数E中:
对公式(1)所述的函数E进行最优化求解,得到使得函数E的取值最小或小于某一阈值的旋转关系R和平移关系T。
可以理解的是,其他的时序上相邻的点云之间的相对位置关系的求解过程可类似于P1和P2之间的相对位置关系的求解过程,此处不再一一赘述。
步骤S202、根据所述时序上相邻的点云之间的相对位置关系,对探测设备探测获得的点云进行聚合处理,得到多个聚合点云,每个所述聚合点云包括至少两个所述时序上相邻的点云。
如图1所示,假设车辆11沿着路段13行驶后调整方向继续沿着路段14行驶,路段13和路段14为来回路段。路段13和路段14之间可以通过护栏、绿化带等进行边界划分。在车辆11沿着来回路段行驶的过程中,假设探测设备探测获得的点云依次为P1、P2、……、P20,例如图3所示。
根据如上所述的迭代最近点算法可计算出P1、P2、……、P20中每两个时序上相邻的点云之间的相对位置关系,即计算出P1和P2、P2和P3、……、P19和P20之间的相对位置关系,其中,将P1和P2之间的旋转关系记为RP1,P2,将P1和P2之间的平移关系记为TP1,P2,将P2和P3之间的旋转关系记为RP2,P3,将P2和P3之间的平移关系记为TP2,P3,以此类推,将P19和P20之间的旋转关系记为RP19,P20,将P19和P20之间的平移关系记为TP19,P20。
另外,根据该每两个时序上相邻的点云之间的相对位置关系,还可以对P1、P2、……、P20进行聚合处理,例如,将P1、P2、P3、P4、P5聚合为一个聚合点云记为M1,将P6、P7、P8、P9、P10聚合为一个聚合点云记为M2,将P11、P12、P13、P14、P15聚合为一个聚合点云记为M4,将P16、P17、P18、P19、P20聚合为一个聚合点云记为M3。可以理解的是,每个聚合点云中包括的点云的数量可以相同,也可以不同,并且本实施例也不限定每个聚合点云可包括的点云的数量,可选的,每个聚合点云至少包括两个时序上相邻的点云。
具体的,对探测设备探测获得的多个点云进行聚合处理时可包括如下几种可能的情况:
在一种可能的实现方式中,所述根据所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理,包括:根据所述时序上相邻的点云之间的相对位置关系,将预设距离范围内的点云进行聚合处理。
例如,从P1开始,按照时间的先后顺序,找到下一时刻的点云P2,并计算P2相对于P1的距离,如果P2相对于P1的距离小于预设的距离阈值,例如100米,则继续寻找下一个点云P3,如果P3相对于P1的距离小于预设的距离阈值,则继续寻找下一个点云,直到找到一个点云例如P6,P6相对于P1的距离大于该预设的距离阈值,则将P1、P2、P3、P4、P5聚合为一个聚合点云M1。进一步,从P6开始,按照时间的先后顺序,继续寻找下一个点云,并重复执行前面所述的聚合过程,得到P6、P7、P8、P9、P10聚合成的聚合点云M2,P11、P12、P13、P14、P15聚合成的聚合点云M4,P16、P17、P18、P19、P20聚合成的聚合点云M3。
其中,两个点云之间的距离具体可以是将两个点云投影到同一坐标系下计算得到的两个点云之间的距离。以P2相对于P1的距离为例,可以将P2投影到P1所在的坐标系中,例如,将P2投影到P1所在的坐标系中得到的投影点云为P2,在该坐标系中可以将P2相对于P1的距离作为P2相对于P1的距离。其中,P2相对于P1的距离可以有多种计算方式,例如,P2相对于P1的距离可以是P2的中心点与P1的中心点之间的距离,可以理解此处只是一个举例,在其他实施例中还可以有其他不同的计算方式。
可选的,所述根据所述时序上相邻的点云之间的相对位置关系,将预设距离范围内的点云进行聚合处理,包括:根据所述时序上相邻的点云之间的相对位置关系,将所述预设距离范围内的点云转换到同一个坐标系中。
例如,在将P1、P2、P3、P4、P8聚合为M1的过程中,可以将P1、P2、P3、P4、P5转换到同一个坐标系中,例如,将P2、P3、P4、P5转换到P1所在的坐标系中。同理,在将P6、P7、P8、P9、P10聚合为M2的过程中,可以将P7、P8、P9、P10转换到P6所在的坐标系中。在将P11、P12、P13、P14、P15聚合为M4的过程中,可以将P12、P13、P14、P15转换到P11所在的坐标系中。在将P16、P17、P18、P19、P20聚合为M3的过程中,可以将P17、P18、P19、P20转换到P16所在的坐标系中。
在另一种可能的实现方式中,所述根据所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理,包括:根据所述时序上相邻的点云之间的相对位置关系,将预设时间范围内的点云进行聚合处理。
例如,从P1开始,P1、P2、P3、P4、P5是在预设时间范围,例如,30秒内探测得到的点云,则可以将P1、P2、P3、P4、P5聚合为一个聚合点云M1。同理,从P6开始,P6、P7、P8、P9、P10是在预设时间范围探测得到的点云,则将P6、P7、P8、P9、P10聚合为M2。从P11开始,P11、P12、P13、P14、P15是在预设时间范围探测得到的点云,则将P11、P12、P13、P14、P15聚合为M4。从P16开始,P16、P17、P18、P19、P20是在预设时间范围探测得到的点云,则将P16、P17、P18、P19、P20聚合为M3。
可选的,所述根据所述时序上相邻的点云之间的相对位置关系,将预设时间范围内的点云进行聚合处理,包括:根据所述时序上相邻的点云之间的相对位置关系,将所述预设时间范围内的点云转换到同一个坐标系中。
例如,在将P1、P2、P3、P4、P5聚合为M1的过程中,可以将P1、P2、P3、P4、P5转换到同一个坐标系中,例如,将P2、P3、P4、P5转换到P1所在的坐标系中。此时,M1可表示为M1=P1+K1,2P2+K1,3P3+K1,4P4+K1,5P5,其中,K1,2表示P2和P1之间的转换矩阵,K1,2可以根据P1和P2之间的旋转关系RP1,P2、以及P1和P2之间的平移关系TP1,P2得到,在本实施例中,转换矩阵也就是如上所述的相对位置关系。K1,3表示P3和P1之间的转换矩阵,K1,3可根据K1,2和K2,3得到,其中,K2,3表示P3和P2之间的转换矩阵,K2,3可以根据P2和P3之间的旋转关系RP2,P3、以及P2和P3之间的平移关系TP2,P3得到。同理,K1,4表示P4和P1之间的转换矩阵,K1,4可根据K1,2、K2,3、K3,4得到,K3,4表示P4和P3之间的转换矩阵,K3,4可以根据P4和P3之间的旋转关系和平移关系得到。K1,5表示P5和P1之间的转换矩阵,K1,5可根据K1,2、K2,3、K3,3、K4,5得到,K4,5表示P4和P5之间的转换矩阵,K4,5可以根据P4和P5之间的旋转关系和平移关系得到。也就是说,M1与P1、P2、P3、P4、P5中时序上相邻的点云之间的转换矩阵相关。
同理,在将P6、P7、P8、P9、P10聚合为M2的过程中,可以将P7、P8、P9、P10转换到P6所在的坐标系中。此时,M2可表示为M2=P6+K6,7P7+K6,8P8+K6,9P9+K6,10P10,其中,K6,7表示P7和P6之间的转换矩阵,K6,8表示P8和P6之间的转换矩阵,K6,9表示P9和P6之间的转换矩阵,K6,10表示P10和P6之间的转换矩阵。K6,7、K6,8,K6,9、K6,10的计算过程类似于如上所述的K1,2、K1,3,K1,3、K1,5的计算过程,此处不再赘述。也就是说,M2与P6、P7、P8、P9、P10中时序上相邻的点云之间的转换矩阵相关。
同理,在将P11、P12、P13、P14、P15聚合为M4的过程中,可以将P12、P13、P14、P15转换到P11所在的坐标系中。此时,M4可表示为M4=P11+K11,12P12+K11,13P13+K11,14P14+K11,15P15,其中,K11,12、K11,13、K11,14、K11,15的含义以及计算过程均与如上所述的K1,2、K1,3、K1,3、K1,5的含义及计算过程类似,此处不再赘述。也就是说,M4与P11、P12、P13、P14、P15中时序上相邻的点云之间的转换矩阵相关。
同理,在将P16、P17、P18、P19、P20聚合为M3的过程中,可以将P17、P18、P19、P20转换到P16所在的坐标系中。此时,M3可表示为M3=P16+K16,17P17+K16,18P18+K16,19P19+K16,20P20。其中,K16,17、K16,18、K16,19、K16,20的含义以及计算过程均与如上所述的K1,2、K1,3、K1,4、K1,5的含义及计算过程类似,此处不再赘述。也就是说,M3与P16、P17、P18、P19、P20中时序上相邻的点云之间的转换矩阵相关。
步骤S203、确定所述多个聚合点云中位置相邻的聚合点云之间的相对位置关系。
在一种可能的实现方式中,在确定出多个聚合点云后,根据定位模块,例如全球定位***(Global Positioning System,GPS),可以确定出该多个聚合点云中位置相邻的聚合点云,其中,聚合点云的GPS信息可以是该聚合点云中的中间点云的GPS信息,中间点云的GPS信息具体可以是探测设备在探测获得该中间点云时车辆的GPS信息。例如,P3是聚合点云M1中的中间点云,则该探测设备在探测获得P3时车辆的GPS信息可作为聚合点云M1的GPS信息。同理,P8是聚合点云M2中的中间点云,则该探测设备在探测获得P8时车辆的GPS信息可作为聚合点云M2的GPS信息。P13是聚合点云M4中的中间点云,则该探测设备在探测获得P13时车辆的GPS信息可作为聚合点云M4的GPS信息。P18是聚合点云M3中的中间点云,则该探测设备在探测获得P18时车辆的GPS信息可作为聚合点云M3的GPS信息。
进一步,根据聚合点云M1、M2、M3、M4的GPS信息,确定出M1、M2、M3、M4中位置相邻的聚合点云。例如,根据聚合点云M1、M2的GPS信息,确定M1和M2之间的距离在预设距离范围内,例如,在10米以内,则将M1和M2作为位置相邻的聚合点云,同理,可确定M2和M4为位置相邻的聚合点云,M3和M4为位置相邻的聚合点云,M3和M1为位置相邻的聚合点云。
进一步,计算M1和M2之间的相对位置关系,即M1和M2之间的旋转关系和平移关系,以及计算M2和M4之间的相对位置关系、M3和M4之间的相对位置关系、M3和M1之间的相对位置关系。具体的,可采用如上所述的ICP算法计算位置相邻的聚合点云之间的相对位置关系,具体的计算过程可以参考如上所述的P1和P2之间的相对位置关系的计算过程,此处不再赘述。例如,M1和M2之间的旋转关系记为RM1,M2,M1和M2之间的平移关系记为TM1,M2;M2和M4之间的旋转关系记为RM2,M4,M2和M4之间的平移关系记为TM2,M4;M3和M4之间的旋转关系记为RM4,M3,M3和M4之间的平移关系记为TM4,M3;M3和M1之间的旋转关系记为RM3,M1,M3和M1之间的平移关系记为TM3,M1。
需要说明的是,上述定位模块并不限于GPS,还可以是北斗、伽利略(Galileo)、格洛纳斯(GLONASS)等。
步骤S204、根据所述位置相邻的聚合点云之间的相对位置关系,确定所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系。
例如,根据M1和M2之间的旋转关系RM1,M2、以及M1和M2之间的平移关系TM1,M2,可得到M1和M2之间的转换矩阵D1,2,该转换矩阵D1,2可以是M2到M1的转换矩阵。同理,根据M2和M4之间的旋转关系RM2,M4、以及M2和M4之间的平移关系TM2,M4,可得到M2和M4之间的转换矩阵D2,4,该转换矩阵D2,4可以是M4到M2的转换矩阵。根据M3和M4之间的旋转关系RM4,M3、以及M3和M4之间的平移关系TM4,M3,可得到M3和M4之间的转换矩阵D4,3,该转换矩阵D4,3可以是M3到M4的转换矩阵。根据M3和M1之间的旋转关系RM3,M1、以及M3和M1之间的平移关系TM3,M1,可得到M3和M1之间的转换矩阵D3,1,该转换矩阵D3,1可以是M1到M3的转换矩阵。在本实施例中,转换矩阵也就是如上所述的相对位置关系。
进一步,采用M1和M2之间的转换矩阵D1,2对M2进行转换,得到M’1,M’1=D1,2M2。可以理解,M1和M1可能不完全相同,也就是说,M’1和M1之间可能存在一定的误差,该误差可记为e1,2,e1,2=(M1-D1,2M2)。由于在将P1、P2、P3、P4、P5聚合为M1的过程中,可以将P2、P3、P4、P5转换到P1所在的坐标系中,在将P6、P7、P8、P9、P10聚合为M2的过程中,可以将P7、P8、P9、P10转换到P6所在的坐标系中。因此,M1和M2之间的转换矩阵D1,2具体为P6和P1之间的转换矩阵K1,6。由于M1与P1、P2、P3、P4、P5中时序上相邻的点云之间的转换矩阵相关,M2与P6、P7、P8、P9、P10中时序上相邻的点云之间的转换矩阵相关,因此,e1,2与P1、P2、P3、P4、P5、P6、P7、P8、P9、P10中时序上相邻的点云之间的转换矩阵相关。
同理,采用M2和M4之间的转换矩阵D2,4对M4进行转换,得到M’2,M’2=D2,4M4,M’2和M2之间可能存在的误差记为e2,4,e2,4=(M2-D2,4M4)。由于在将P6、P7、P8、P9、P10聚合为M2的过程中,可将P7、P8、P9、P10转换到P6所在的坐标系中,在将P11、P12、P13、P14、P15聚合为M4的过程中,可以将P12、P13、P14、P15转换到P11所在的坐标系中,因此,M2和M4之间的转换矩阵D2,4具体为P6和P11之间的转换矩阵。另外,M2与P6、P7、P8、P9、P10中时序上相邻的点云之间的转换矩阵相关,M4与P11、P12、P13、P14、P15中时序上相邻的点云之间的转换矩阵相关,因此,e2,4与P6、P7、P8、P9、P10、P11、P12、P13、P14、P15中时序上相邻的点云之间的转换矩阵相关。
同理,采用M3和M4之间的转换矩阵D4,3对M3进行转换,得到M’4,M’4=D4,3M3,M4和M’4之间可能存在的误差记为e4,3,e4,3=(M4-D4,3M3)。e4,3与P11、P12、P13、P14、P15、P16、P17、P18、P19、P20中时序上相邻的点云之间的转换矩阵相关。
同理,采用M3和M1之间的转换矩阵D3,1对M1进行转换,得到M’3,M’3=D3,1M1,M3和M’3之间可能存在的误差记为e3,1,e3,1=(M3-D3,1M1)。e3,1与P1、P2、P3、P4、P5、P6、P7、P8、P9、P10、P11、P12、P13、P14、P15、P16、P17、P18、P19、P20中时序上相邻的点云之间的转换矩阵相关。
根据如上所述的误差e
1,2、e
2,3、e
4,3和e
3,1可得到目标函数
其中,目标函数F与P
1、P
2、P
3、P
4、P
5、P
6、P
7、P
8、P
9、P
10、P
11、P
12、P
13、P
14、P
15、P
16、P
17、P
18、P
19、P
20中时序上相邻的点云之间的转换矩阵相关。因此,通过对该目标函数
进行优化,即求解该目标函数的最小函数值,可对如上所述的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系进行优化,也就是说,优化后的P
1和P
2、P
2和P
3、……、P
19和P
20之间的相对位置关系可使得该目标函数F的函数值最小,或者使得该目标函数F的函数值小于或等于预设阈值。
进一步,根据优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系重复执行如上所述的步骤S202-步骤S204,可以理解的是,本实施例并不限定重复执行的次数。从而使得再次优化或多次优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系更加精准,同时也使得每次优化后的该目标函数F的函数值逐渐收敛。另外,每重复执行一次步骤S202-步骤S204,可作为一次迭代过程。具体的,该目标函数多次优化后的函数值变得收敛可以作为停止迭代的一个条件,但不限于这一个条件,在其他实施例中,还可以通过其他条件来停止迭代,例如,当迭代的次数大于预设次数时,停止迭代。或者,优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系趋于收敛时,停止迭代。在本实施例中,可以将停止迭代时优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系作为最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系。
进一步,根据最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系,可确定出探测设备在不同时刻探测获得的点云之间的目标相对位置关系。
可选的,所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系,包括:所述探测设备探测获得的时序上不相邻的点云之间的目标相对位置关系。
例如,根据最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系,可确定出时序上不相邻的点云之间的目标相对位置关系,例如,根据最终优化后的P1和P2之间的相对位置关系和最终优化后的P2和P3之间的相对位置关系,可确定出时序上不相邻的P1和P3之间的目标相对位置关系。
由于最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系是较为精准的,因此,根据最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系得到的时序上不相邻的点云之间的目标相对位置关系也是精准的。
本实施例通过探测设备探测获得的时序上相邻的点云之间的相对位置关系,对时序上相邻的点云进行聚合处理,得到多个大点云即多个聚合点云,由于大点云中的细节特征更加丰富,即使位置相邻的区域被遮挡物所遮挡,也能通过大点云中的细节特征完成大点云之间的匹配计算,从而根据位置相邻的大点云之间的相对位置关系,可确定出较为精准的由探测设备在不同时刻探测获得的点云之间的目标相对位置关系,从而提高了不同时刻的点云之间的相对位置关系的精准度。
本申请实施例提供一种点云处理方法。图4为本申请另一实施例提供的点云处理方法的流程图。如图4所示,在上述实施例的基础上,根据最终优化后的时序上相邻的点云之间的相对位置关系,可确定出时序上不相邻的点云之间的目标相对位置关系。因此,根据最终优化后的时序上相邻的点云之间的相对位置关系、以及时序上不相邻的点云之间的目标相对位置关系,可建立电子地图。例如,根据如图3所示的P1和P2、P2和P3、……、P19和P20等时序上相邻的点云之间的相对位置关系、以及P1和P3、P1和P4等时序上不相邻的点云之间的目标相对位置关系,可建立如图1所示的路段13和路段14的电子地图。
另外,在上述实施例的基础上,所述根据所述位置相邻的聚合点云之间的相对位置关系,确定所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系,可以包括:
步骤S401、优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系。
根据上述内容可知,目标函数F与P
1、P
2、P
3、P
4、P
5、P
6、P
7、P
8、P
9、P
10、P
11、P
12、P
13、P
14、P
15、P
16、P
17、P
18、P
19、P
20中时序上相邻的点云之间的转换矩阵相关,通过对该目标函数
进行优化,可对如上所述的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系进行优化。由于M
1与P
1、P
2、P
3、P
4、P
5中时序上相邻的点云之间的转换矩阵相关,M
2与P
6、P
7、P
8、P
9、P
10中时序上相邻的点云之间的转换矩阵相关,M
4与P
11、P
12、P
13、P
14、P
15中时序上相邻的点云之间的转换矩阵相关,M
3与P
16、P
17、P
18、P
19、P
20中时序上相邻的点云之间的转换矩阵相关。因此,根据优化后的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系,可确定出优化后的任意两组点云之间的相对位置关系。
可选的,所述优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系,包括:根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定目标函数;根据所述目标函数,优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系。
可选的,所述根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定目标函数,包括:根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定所述位置相邻的聚合点云之间的转换误差;根据所述位置相邻的聚合点云之间的转换误差,确定所述目标函数。
例如,根据如上所述的误差e
1,2、e
2,4、e
4,3和e
3,1可得到目标函数
通过对该目标函数
进行优化,可以实现对如上所述的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系的优化,进一步,根据优化后的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系,可确定出任意两组点云之间的相对位置关系。
可选的,所述根据所述目标函数,优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系,包括:确定优化后的所述位置相邻的聚合点云之间的相对位置关系和优化后的所述时序上相邻的点云之间的相对位置关系,以使所述目标函数的值小于或等于预设阈值。
例如,通过求解目标函数
的最小函数值,可对如上所述的P
1和P
2、P
2和P
3、……、P
19和P
20等时序上相邻的点云之间的相对位置关系进行优化,也就是说,优化后的P
1和P
2、P
2和P
3、……、P
19和P
20之间的相对位置关系、以及优化后的D
1,2、D
2,4、D
4,3、D
3,1可使得该目标函数F的函数值最小,或者使得该目标函数F的函数值小于或等于预设阈值。
步骤S402、根据优化后的所述位置相邻的聚合点云之间的相对位置关系和优化后的所述时序上相邻的点云之间的相对位置关系,确定所述探测设备在不同时刻探测获得的点云之间的目标相对位置关系。
例如,根据最终优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系,可确定出时序上不相邻的点云之间的目标相对位置关系,例如,根据最终优化后的P1和P2之间的相对位置关系和最终优化后的P2和P3之间的相对位置关系,可确定出时序上不相邻的P1和P3之间的目标相对位置关系。
再例如,由于M1和M2之间的转换矩阵D1,2具体为P6和P1之间的转换矩阵K1,6,因此,根据优化后的D1,2,可确定出时序上不相邻的P1和P6之间的目标相对位置关系。
本实施例通过探测设备探测获得的时序上相邻的点云之间的相对位置关系,对时序上相邻的点云进行聚合处理,得到多个大点云即多个聚合点云,由于大点云中的细节特征更加丰富,即使位置相邻的区域通过遮挡物遮挡,也能通过大点云中的细节特征完成大点云之间的匹配计算,从而根据位置相邻的大点云之间的相对位置关系,可确定出较为精准的由探测设备在不同时刻探测获得的点云之间的目标相对位置关系,例如,时序上不相邻的两组点云之间的相对位置关系。因此,相比于现有技术中采用时序上相邻的点云之间的相对位置关系来求解时序上不相邻的两组点云之间的相对位置关系,可避免时序上不相邻的两组点云之间的时间跨度比较长而导致的误差累积,从而提高了时序上不相邻的两组点云之间的相对位置关系的精度。另外,根据最终优化后的时序上相邻的点云之间的相对位置关系、以及时序上不相邻的点云之间的目标相对位置关系,可建立出精度较高的电子地图。
本申请实施例提供一种点云处理方法。在上述实施例的基础上,所述获取时序上相邻的点云之间的相对位置关系,可以包括:获取优化后的所述时序上相邻的点云之间的相对位置关系。
相应的,所述根据所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理,包括:根据所述优化后的所述时序上相邻的点云之间的相对位置关系,对所述探测设备探测获得的点云进行聚合处理。
例如,上述实施例所述的步骤S201具体为获取时序上相邻的点云之间的相对位置关系。在上述实施例中,可采用ICP算法来计算时序上相邻的点云之间的相对位置关系。在本实施例中,步骤S201可以获取优化后的所述时序上相邻的点云之间的相对位置关系,也就是说,根据优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系重复执行如上所述的步骤S202-步骤S204。例如,根据优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系,重新对P1、P2、……、P20进行聚合处理,得到多个聚合点云,此处的多个聚合点云可能与如上所述的M1、M2、M3和M4不同,也有可能相同。进一步,确定出重新聚合得到的多个聚合点云中位置相邻的聚合点云,并根据该位置相邻的聚合点云之间的相对位置关系、以及该位置相邻的聚合点云,确定出如上所述的目标函数F,再次对该目标函数F进行优化,得到再次优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系。再次优化后的P1和P2、P2和P3、……、P19和P20之间的相对位置关系可以进一步作为步骤S201中获取的优化后的所述时序上相邻的点云之间的相对位置关系,从而不断的重复执行S201-S204。
本实施例通过获取优化后的所述时序上相邻的点云之间的相对位置关系,并根据优化后的时序上相邻的点云之间的相对位置关系,重新进行点云聚合,得到多个聚合点云,进一步,确定出重新聚合得到的多个聚合点云中位置相邻的聚合点云,并根据该位置相邻的聚合点云之间的相对位置关系、以及该位置相邻的聚合点云,确定出目标函数,再次对该目标函数进行优化,得到再次优化后的时序上相邻的点云之间的相对位置关系,通过不断的重复迭代,可进一步提高时序上相邻的点云之间的相对位置关系的精度。当根据精度较高的时序上相邻的点云之间的相对位置关系来确定时序上不相邻的点云之间的目标相对位置关系时,还可以进一步提高时序上不相邻的点云之间的目标相对位置关系的精度。
本申请实施例提供一种点云处理***。图5为本申请实施例提供的点云处理***的结构图,如图5所示,点云处理***50包括:探测设备51、存储器52和处理器53。其中,探测设备51用于探测获得点云,探测设备51探测获得的点云例如图6所示,在图6中,白色高亮的部分可以是探测设备51探测获得的点云。另外,处理器53具体可以是上述实施例中车载设备中的部件,或者是车辆中搭载的具有数据处理功能的其他部件、器件或组件。具体的,存储器52用于存储程序代码;处理器53,调用所述程序代码,当程序代码被执行时,用于执行以下操作:获取时序上相邻的点云之间的相对位置关系;根据所述时序上相邻的点云之间的相对位置关系,对探测设备51探测获得的点云进行聚合处理,得到多个聚合点云,每个所述聚合点云包括至少两个所述时序上相邻的点云;确定所述多个聚合点云中位置相邻的聚合点云之间的相对位置关系;根据所述位置相邻的聚合点云之间的相对位置关系,确定探测设备51在不同时刻探测获得的点云之间的目标相对位置关系。
可选的,处理器53根据所述位置相邻的聚合点云之间的相对位置关系,确定探测设备51在不同时刻探测获得的点云之间的目标相对位置关系时,具体用于:优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系;根据优化后的所述位置相邻的聚合点云之间的相对位置关系和优化后的所述时序上相邻的点云之间的相对位置关系,确定探测设备51在不同时刻探测获得的点云之间的目标相对位置关系。
可选的,处理器53优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系时,具体用于:根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定目标函数;根据所述目标函数,优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系。
可选的,处理器53根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定目标函数时,具体用于:根据所述位置相邻的聚合点云之间的相对位置关系和所述位置相邻的聚合点云,确定所述位置相邻的聚合点云之间的转换误差;根据所述位置相邻的聚合点云之间的转换误差,确定所述目标函数。
可选的,处理器53根据所述目标函数,优化所述位置相邻的聚合点云之间的相对位置关系和所述时序上相邻的点云之间的相对位置关系时,具体用于:确定优化后的所述位置相邻的聚合点云之间的相对位置关系和优化后的所述时序上相邻的点云之间的相对位置关系,以使所述目标函数的值小于或等于预设阈值。
可选的,处理器53获取时序上相邻的点云之间的相对位置关系时,具体用于:获取优化后的所述时序上相邻的点云之间的相对位置关系;处理器53根据所述时序上相邻的点云之间的相对位置关系,对探测设备51探测获得的点云进行聚合处理时,具体用于:根据所述优化后的所述时序上相邻的点云之间的相对位置关系,对探测设备51探测获得的点云进行聚合处理。
可选的,处理器53获取时序上相邻的点云之间的相对位置关系时,具体用于:根据迭代最近点算法,计算所述时序上相邻的点云之间的相对位置关系。
可选的,处理器53根据所述时序上相邻的点云之间的相对位置关系,对探测设备51探测获得的点云进行聚合处理时,具体用于:根据所述时序上相邻的点云之间的相对位置关系,将预设距离范围内的点云进行聚合处理。
可选的,处理器53根据所述时序上相邻的点云之间的相对位置关系,将预设距离范围内的点云进行聚合处理时,具体用于:根据所述时序上相邻的点云之间的相对位置关系,将所述预设距离范围内的点云转换到同一个坐标系中。
可选的,处理器53根据所述时序上相邻的点云之间的相对位置关系,对探测设备51探测获得的点云进行聚合处理时,具体用于:根据所述时序上相邻的点云之间的相对位置关系,将预设时间范围内的点云进行聚合处理。
可选的,处理器53根据所述时序上相邻的点云之间的相对位置关系,将预设时间范围内的点云进行聚合处理时,具体用于:根据所述时序上相邻的点云之间的相对位置关系,将所述预设时间范围内的点云转换到同一个坐标系中。
可选的,探测设备51在不同时刻探测获得的点云之间的目标相对位置关系,包括:探测设备51探测获得的时序上不相邻的点云之间的目标相对位置关系。
本申请实施例提供的点云处理***可以实现如上所述的点云处理方法,该点云处理方法的具体原理和实现方式均与上述实施例类似,此处不再赘述。
本申请实施例提供一种可移动平台。该可移动平台包括:机身、动力***和如上实施例所述的点云处理***。其中,动力***安装在所述机身,用于提供移动动力。点云处理***可以实现如上所述的点云处理方法,该点云处理方法的具体原理和实现方式均与上述实施例类似,此处不再赘述。本实施例并不限定该可移动平台的具体形态,例如,该可移动平台可以是无人机、可移动机器人或车辆等。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的点云处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。