一种点云数据处理方法及装置与流程

文档序号:20833687发布日期:2020-05-22 16:36阅读:201来源:国知局
一种点云数据处理方法及装置与流程

本申请涉及无人驾驶技术领域,尤其涉及一种点云数据处理方法及装置。



背景技术:

目前,无人驾驶技术作为人工智能技术的重要组成部分,在社会生产、生活中的作用日益凸显,成为引导交通技术发展的主要方向之一。

随着无人驾驶技术的发展,控制智能车辆(包括无人车、具有辅助驾驶功能的车辆)行驶的方法越来越成熟。一般在智能车辆行驶的过程中,多通过雷达等采集设备对环境中的各物体进行数据采集,以使得智能车辆能够根据采集的数据感知到其所处的环境的状况。但是,雷达对环境进行数据采集时多采用分时扫描的方式,使得获得的一帧内的各数据的实际采集时间存在差异。后续智能车辆根据雷达采集的数据进行环境的感知时,难免会因为该采集的数据的不准确,生成误差较大甚至错误的信息,进而影响智能车辆做出的行驶决策,使得行车安全难以保证。



技术实现要素:

本说明书实施例提供一种点云数据处理方法及装置,以部分的解决现有技术存在的上述问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种点云数据处理方法,所述方法包括:

获取点云数据;

针对所述点云数据中的各点,确定环境中该点对应的物体;

在预先得到的各物体的运动轨迹中,确定出该物体的运动轨迹;

根据该物体的运动轨迹,确定该物体在指定时间段内的位移数据,作为该点的位移数据;所述指定时间段为从采集到该点的点云数据的历史时刻至当前时刻的时间段;

根据确定出的该点的位移数据,对获取的该点在所述历史时刻的点云数据进行补偿,得到该点在所述当前时刻的点云数据。

可选地,获取点云数据,具体包括:

确定采集一帧点云数据的时长;

根据预设的每个指定时刻,获取从该指定时刻开始,在所述时长内采集到的点云数据。

可选地,根据该物体的运动轨迹,确定该物体在指定时间段内的位移数据,具体包括:

根据该物体的运动轨迹,确定该物体在所述当前时刻的第一位置数据;并且,确定该物体在所述历史时刻的第二位置数据;

根据所述第一位置数据和所述第二位置数据之间的差异,确定出该物体在指定时间段内的位移数据。

可选地,根据确定出的该点的位移数据,对获取的该点在所述历史时刻的点云数据进行补偿,具体包括:

确定在所述指定时间段内,采集该点的点云数据的采集设备的位姿变化;

根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿。

可选地,根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿,具体包括:

根据所述采集设备的位姿变化,建立位姿转换矩阵;

采用所述位姿转换矩阵,对获取的该点在所述历史时刻的点云数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述历史时刻的点云数据,作为中间数据;

根据该点的位移数据,对所述中间数据进行调整,得到该点在所述当前时刻的点云数据,作为在所述当前时刻补偿后的该点的点云数据。

可选地,根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿,具体包括:

根据该点的位移数据,对获取的该点在所述历史时刻的点云数据进行调整,得到该点在发生了所述位移数据对应的位移的条件下,该点在所述当前时刻的点云数据,作为中间数据;

根据所述采集设备的位姿变化,建立位姿转换矩阵;

采用所述位姿转换矩阵,对所述中间数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述当前时刻补偿后的该点的点云数据。

可选地,根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿,具体包括:

将该点的在所述历史时刻的点云数据对应的坐标,转换至以所述采集设备为参照的坐标系,得到坐标转换后的该点在所述历史时刻的点云数据;

根据该点的位移数据和所述采集设备的位姿变化,对坐标转换后的该点在所述历史时刻的点云数据进行补偿。

本说明书提供的点云数据处理装置,包括:

获取模块,用于获取点云数据;

物体确定模块,用于针对所述点云数据中的各点,确定环境中该点对应的物体;

运动轨迹确定模块,用于在预先得到的各物体的运动轨迹中,确定出该物体的运动轨迹;

位移数据确定模块,用于根据该物体的运动轨迹,确定该物体在指定时间段内的位移数据,作为该点的位移数据;所述指定时间段为从采集到该点的点云数据的历史时刻至当前时刻的时间段;

补偿模块,用于根据确定出的该点的位移数据,对获取的该点在所述历史时刻的点云数据进行补偿,得到该点在所述当前时刻的点云数据。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种点云数据处理方法。

本说明书提供的一种无人驾驶设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种点云数据处理方法的方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

本说明书实施例中的一种点云数据处理方法及装置,对获取到的采集于历史时刻的各点云数据进行补偿,使得得到的补偿后的各点云数据均对应于当前时刻。具体地,该补偿是以该点云数据所属的点对应的环境中物体,在采集该点的历史时刻至当前时刻之间的指定时间段的运动轨迹为依据进行的。由于点云数据所属的点是由环境中的物体生成的,则该指定时间段内,物体在环境中的位置变化和/或姿态变化,一定程度的能够表征出该指定时间段内对应于该物体的点的位置变化。可见,根据该物体在指定时间段内的变化情况对该点的点云数据进行补偿,能够使得补偿后得到的该点的点云数据更加契合于当前时刻的实际情况。进而,本说明书中的方法及装置在针对由环境中的动态物体生成的点云数据进行处理时,能够得到更加效果。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1a为一种采集设备采集点云数据的过程;

图1b为点云数据中点ai的历史时刻和当前时刻的相对关系示意图;

图2为本说明书实施例提供的一种点云数据处理的过程;

图3a为本说明书实施例提供的一种获取点云数据的过程;

图3b为点云数据中点aj的历史时刻和当前时刻的相对关系示意图;

图4为本说明书实施例提供的一种确定位移数据的过程;

图5为本说明书实施例提供的一种对点云数据进行补偿的过程;

图6为本说明书实施例提供的另一种对点云数据进行补偿的过程;

图7为本说明书实施例提供的一种点云数据处理装置的结构示意图;

图8为本说明书实施例提供的对应于图2的一种无人驾驶设备部分结构示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

在对本说明书中的过程进行说明之前,对现有的点云数据处理过程进行介绍。

在如图1a所示的场景中,以扫描方式为机械旋转式的激光雷达为例,该激光雷达(图1a中圆形的圆心)沿逆时针方向旋转,每旋转一周(360度)得到一帧点云数据。以第i帧点云数据为例,该第i帧点云数据中包括若干个点,如图1a中的点ai至点fi,该激光雷达的得到的该第i帧点云数据所需的时长(即扫描周期)为ci,该扫描的时长的起始时刻为ti,结束时刻为ti’。图1a中,点ai与激光雷达之间的连线与点bi与激光雷达之间的连线的夹角为角θ,该激光雷达旋转角θ所需的时长,即为采集点ai的历史时刻至采集点bi的历史时刻之间的时长。可见,该场景中,采集到点ai至点fi的各历史时刻各不相同。

针对该第i帧,可以在该帧的时长ci的结束时刻ti’对采集得到的各生成于历史时刻的点云数据进行获取。可见,获取到点ai至点fi的时刻是相同的。

以点ai为例,点ai在本说明书中涉及的各时刻之间的次序关系,如图1b所示。在图1b所示的时间轴上,点ai的历史时刻与获取到ai的点云数据的时刻之间存在一定的时间差。

现有的点云数据处理方法不考虑实际采集到该第i帧中各点的点云数据的历史时刻,直接将获取到该第i帧中的点云数据的时刻,作为采集到该帧中各点的点云数据的历史时刻,并在此基础上对该获取的点云数据进行处理。若该第i帧中的点云数据所属的点在环境中对应的物体为动态物体,现有的点云数据处理方法将严重影响到点云数据处理结果的准确性。

并且,在如图1a所示的场景中,实际采集到点ei的点云数据的历史时刻至获取点云数据的时刻(即时长ci的结束时刻ti’)共经历了激光雷达旋转角δ所需的时间。而实际上,若点ei对应的物体为动态物体,在获取点ei的时刻,该点ei对应的物体在实际环境中已经发生了相对于历史时刻的位置变化和/或姿态变化,该获取到的点ei的点云数据无法反映该点ei对应的物体于获取点云数据的时刻在环境中实际的位置状况和/或姿态状况。

进一步地,采集到点ai的点云数据的历史时刻距获取点云数据的时刻更早,使得获取到的点ai的点云数据不准确的可能性更大。

有鉴于此,本说明书提供一种点云数据处理过程,以解决现有技术中的点云数据处理方法中存在的至少部分问题。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图2为本说明书实施例提供的一种点云数据处理过程,具体可包括以下步骤:

s200:获取点云数据。

本说明书中的点云数据可以通过采集设备(例如激光雷达)对环境中的各物体进行扫描的方式采集得到。

该用于采集点云数据的采集设备可以为设置于智能车辆上的采集设备。当智能车辆在环境中行驶时,该智能车辆承载该采集设备在环境中运动。

在本说明书一个可选的实施场景中,如图3a所示,以采集设备采集的第j帧点云数据为例,获取点云数据的时刻可以是前述的该时长cj的结束时刻tj’;也可以是采集该第j帧点云数据的起始时刻tj至结束时刻tj’之间的某一个或几个时刻;还可以为在时间次序上位于结束时刻tj’之后的某一个或几个时刻。

s202:针对所述点云数据中的各点,确定环境中该点对应的物体。

在本说明书一个可选的实施场景中,可以根据获取的点云数据,确定出该点云数据中的至少部分点在环境中对应的物体。

例如,可以根据获取的点云数据建图。该得到的基于点云数据的图可以为rangeimage、elevationimage等。然后,在该图中,识别出环境中的各物体。然后,针对所述点云数据中的至少部分点,在识别出的所述各物体中,确定出该点对应的物体。

在本说明书另一个可选的实施场景中,可以根据采集得到的其他形式的数据与该获取的点云数据共同确定出该点云数据中的至少部分点在环境中对应的物体。

例如,可以对环境进行图像采集,在采集得到的各图像中,确定出与该获取的点云数据在时间上匹配的图像,作为该获取的点云数据的目标图像。然后,根据该目标图像的各像素的特征,对该目标图像进行处理,以识别出该目标图像中的各物体。针对该获取的点云数据中的至少部分点,确定该点在所述目标图像中对应的像素。将该像素在所述目标图像中对应的物体,作为该点在环境中对应的物体。

s204:在预先得到的环境中各物体的运动轨迹中,确定出该物体的运动轨迹。

在本说明书中,该“预先得到”为具有相对意义的概念。在本步骤之前的所有时刻均可以为实现该“预先得到”的时刻。即,本说明书中实现该“预先得到”的时刻可以有多种理解。

例如,实现该“预先得到”的时刻可以发生在采集到某点的点云数据的历史时刻之前,则该预先得到的该点对应的物体的运动轨迹,可以是根据该历史时刻之前采集的环境数据预测得到的。此时,该环境数据可以是该历史时刻之前获取的点云数据、采集的图像数据、检测设备采集的数据中的至少一种。

又例如,该“预先得到”的时刻可以发生在获取点云数据的时刻之前,则该预先得到的该点对应的物体的运动轨迹,可以是根据该获取点云数据的时刻之前采集的环境数据得到的。此时,若该环境数据是获取点云数据的时刻之前得到的点云数据,则该物体的运动轨迹可以是预测得到轨迹。若该环境数据是获取点云数据的时刻之前采集的图像数据、检测设备采集的数据中的至少一种,则该物体的运动轨迹可以是基于物体的实际位置状态、运动状态得到的轨迹。

再例如,该“预先得到”的时刻可以发生在获取点云数据的时刻之后,本步骤之前。此时,该运动轨迹还可以是根据包含步骤s200中获取的点云数据在内的各环境数据得到的。

s206:根据该物体的运动轨迹,确定该物体在指定时间段内的位移数据,作为该点的位移数据。所述指定时间段为从采集到该点的点云数据的历史时刻至当前时刻的时间段。

由于点云数据所属的点是根据环境中的物体生成的,则指定时间段内,物体在环境中的位置变化和/或姿态变化,一定程度的能够表征出根据该物体生成的点于该指定时间段内的位置变化。由于采集到各点的点云数据的历史时刻不尽相同,则各点的指定时间段也不尽相同。

可选地,本说明书中该物体的运动轨迹仅为通过对物体在各未来时刻的位置进行预测得到的,此时可以将该物体抽象为一个点。则通过该物体的位移数据得到的该点的位移数据,至少能够反映出该点在指定时间段内由该物体的移动引起的位置变化。

此处的“未来时刻”是相对于前述的历史时刻的时间概念。在图3b中,于时间轴上,采集到点aj的点云数据的历史时刻之后的各时刻,均可以为该点aj的历史时刻的未来时刻。

可选地,本说明书中该物体的运动轨迹为通过对物体在各未来时刻位置和姿态(以下简称位姿)进行预测/检测得到的。则通过该物体的位移数据得到的该点的位移数据,还能够反映出该点在指定时间段内由该物体的姿态变化引起的位置变化。

需要说明的是,本说明书中的“当前”为相对于“历史”的、具有相对意义的概念。则该“当前时刻”可以是前述的获取点云数据的时刻,也可是在获取点云数据的时刻之后的某一时刻。例如,点aj的历史时刻和当前时刻在时间次序上的相对关系,如图3b所示。为便于描述,以下仅以该当前时刻为获取点云数据的时刻为例进行说明。

s208:根据确定出的该点的位移数据,对获取的该点在所述历史时刻的点云数据进行补偿,得到该点在所述当前时刻的点云数据。

由前述内容可知,该点的位移数据,至少能够反映出该点在指定时间段内由该物体的移动引起的位置变化。则根据该位移数据对该点在所述历史时刻的点云数据进行补偿,能够将该点的对应于历史时刻的点云数据,补偿至对应于当前时刻的点云数据,使得该点的补偿后的点云数据至少能够反映出的该点在当前时刻的位置状况。

在以采集设备为机械旋转式的激光雷达的场景中,如图3a所示,由于采集到点aj至点fj的各历史时刻各不相同,则通过本说明书中的过程,能够将采集的各点云数据对应的时刻处理至同一时刻,减小一帧点云数据中非同一时刻采集得到的各点云数据在时间维度上的差异,进而提高该处理得到的点云数据在时间上的统一性。

此外,需要说明的是,本说明书中的过程的适用场景包括但不限于前述的适通过机械旋转式的激光雷达进行分时扫描采集点云数据的场景。即,本说明书中的过程还适用于采集点云数据的历史时刻和当前时刻为非同一时刻的其他的场景中,例如通过快闪(flash)扫描的方式采集点云数据的场景。

在以快闪扫描式激光雷达作为采集设备的场景中,接收到物体产生的回波的时刻对应于前述的历史时刻。由于环境中各物体距快闪扫描式激光雷达所处位置的距离不同,则接收到的点云数据中的各点的历史时刻不尽相同。在接收到各历史时刻生成的点云数据之后,获取各点云数据作为一帧。由于各历史时刻与该获取点云数据的时刻之间存在一定的时长,则本说明中的过程在应用于处理快闪式扫描采集的点云数据时,也能够实现将历史时刻采集的点云数据补偿至当前时刻的技术效果。

下面对本说明书中所述的点云数据处理过程进行详细说明。

在实际的场景中,相较于图像数据,点云数据能够提供环境中各物体在深度方向的信息,即点云数据为使用者提供的信息的维度更加丰富。特别是在无人驾驶技术领域,智能车辆需根据基于环境的各数据做出决策,点云数据在数据维度上的特异性,使得其在该领域中发挥着不可替代的作用。

然而,智能车辆在决策过程中对数据具有一定的实时性、连续性的要求。采集点云数据的采集设备的帧率等因素的限制,造成了该采集得到的点云数据在实时性、连续性方面难以满足智能车辆的使用需求的问题。

由此,在本说明书一个可选的实施例中,通过提高点云数据的获取频率的方式,改善点云数据在实时性、连续性方面的局限性。

具体地可以如图3a所示,可以首先确定出采集一帧(例如第j帧)点云数据的时长cj。然后,根据预设的每个指定时刻,例如时刻tj0至时刻tj5,获取从该指定时刻开始,在所述时长内采集到的点云数据。则在时刻tj0获取的一帧点云数据对应的各历史时刻所属的时长为时刻tj0至时刻tj+10之间的时长。

可见,在图3a所示的场景中,由于每次获取的点云数据均为一个完整的所述时长内采集得到的点云数据,则图3a中的区域s0中的各点的点云数据分别地在从时刻tj0开始时长至从时刻tj5开始时长各获取了一次。

现以区域s0中的点fj在时刻tj0对应的时长内和时刻tj5对应的时长内被各获取了一次为例进行说明。采集到点fj的历史时刻至时刻tj0对应的时长的结束时刻之间的第一指定时间段内,激光雷达旋转了角度ε;采集到点fj的历史时刻至时刻tj5对应的时长的结束时刻之间的第二指定时间段内,激光雷达旋转了角度β。

通过本说明书中的过程对点fj的点云数据补偿时,分别在时刻tj0对应的时长和时刻tj5对应的时长各补偿了一次。具体地,在时刻tj0对应的时长对点fj的点云数据进行补偿时,以第一指定时间段内点fj的位移数据进行补偿。在时刻tj5对点fj的点云数据进行补偿时,以第二指定时间段内点fj的位移数据进行补偿。在点fj对应的物体为动态物体时,第一指定时间段内点fj对应的物体的位移量与第二指定时间段内点fj对应的物体的位移量不同。

可见,在本说明书的过程中,虽然为了提高数据的获取频率造成了一定程度的点云数据重复获取的现象,但是,该重复获取的点云数据在不同指定时刻分别地进行了不同程度的补偿,使得该被重复获取的点云数据通过该不同程度的补偿得到的补偿后的点云数据,能够体现出的该点云数据所属的点随时间发生的位置变化情况。进而,使得具备“静态”属性的点云数据,能够通过本说明书中的基于环境中物体的运动状态的补偿,具备“动态”的属性。

由于点云数据是根据环境中的物体得到的,则根据物体的在指定时间段内发生的位置变化/位姿变化得到的位移数据,较大程度能够表征由该物体生成的点云数据所属的点的位置变化。如图4所示,根据物体位移数据,得到由该物体生成的点云数据所属的点的位移数据的过程可以如下:

s400:根据该物体的运动轨迹,确定该物体在所述当前时刻的第一位置数据。

由前述内容可知,本说明书中用于确定物体的运动轨迹的数据来源可以为多种,该当前时刻的含义也较为广泛。

在以获取点云数据的时刻为当前时刻的情形下,该运动轨迹可以是由检测设备实际检测到的,或者从图像采集设备采集的图像中识别到的,则该第一位置数据可以是该物体的实际的数据。此外,该运动轨迹还可以是基于历史中的各数据预测得到的,则根据该运动轨迹得到的第一位置数据可以是针对该物体的预测数据。

s402:确定该物体在所述历史时刻的第二位置数据。

同样的,该第二位置数据也可以由该物体的运动轨迹得到。则该第二位置数据是否为该物体的实际的数据,也取决于该物体的运动轨迹的来源,在此不做赘述。可选地,该第二位置数据是由检测设备采集的物体的于所述历史时刻的实际的位置数据。

需要说明的是,该针对物体的运动轨迹中所包含的信息,不仅仅包括未来时刻中该物体在环境中所处的位置信息,还可以包括未来时刻中该物体在环境中的姿态信息。则本说明书中的第一位置数据和第二位置数据可以用于表征物体的位置信息或位姿信息。

步骤s400和步骤s402的执行次序可以根据实际的场景进行调整。

s404:根据所述第一位置数据和所述第二位置数据之间的差异,确定出该物体在指定时间段内的位移数据,作为该点的位移数据。

通过上述内容可知,本步骤中由第一位置数据和第二位置数据得到的位移数据,可以用于表征该指定时间段内,该物体的位置变化量或位姿变化量。

本说明书中的过程能够确定出点云数据中的各点对应的物体在指定时间段内发生位置或位姿的变化引起的点云数据的误差的程度,并根据该由物体运动引起的误差程度,对该点云数据进行补偿,较大程度的降低了由物体的运动造成点云数据的不准确性。

在此基础上,本说明书中的过程,还能够确定出由采集设备在指定时间段内发生的位置或位姿变化引起的点云数据的误差的程度,并根据该由采集设备的运动引起的误差程度,对该点云数据进行补偿。

具体地,该补偿的过程可以是:确定在所述指定时间段内,采集该点的点云数据的采集设备的位姿变化。然后,根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿。

在由设置于智能车辆上的采集设备对环境进行点云数据采集的场景中,智能车辆承载该采集设备在环境中运动,则该采集设备的位姿变化可以是由该智能车辆的运动引起的。并且,在某些实施场景中,采集设备在采集点云数据的过程中还会调整其自身的采集角度,则该采集设备的位姿变化还可以是由其自身的调整引起的。可选地,该采集设备的位姿可以通过该采集设备的六自由度表示。

可见,通过本说明书中的过程,不仅仅能够根据点云数据对应的物体的运动引起的误差,对点云数据进行补偿;还能够根据采集设备的运动引起的误差,对点云数据进行补偿。使得通过本说明书中的过程得到的补偿后的点云数据的“动态”属性更加丰富,也能够使得该补偿后的点云数据更加准确、更加契合对应于当前时刻的实际情况。

可选地,该“根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿”的过程可以包括两个子步骤,即:根据该点的位移数据对获取的该点的点云数据进行补偿,和根据所述采集设备的位姿变化对获取的该点的点云数据进行补偿。该两个子步骤的执行次序可以根据实际的场景进行调整。以下,分别针对该两个子步骤执行的次序存在两种情况,进行分别的说明。

(1)先根据该点的位移数据进行补偿,后根据采集设备的位姿变化进行补偿。

如图5所示,该“先根据该点的位移数据进行补偿,后根据采集设备的位姿变化进行补偿”的过程可以包括以下步骤:

s500:根据该点的位移数据,对获取的该点在所述历史时刻的点云数据进行调整,得到该点在发生了所述位移数据对应的位移的条件下,该点在所述当前时刻的点云数据,作为第一中间数据。

在本说明书一个可选的场景中,可以对该点的位移数据和该点的点云数据对应的位置数据进行求和,以将该点在指定时间段内由物体的运动引起的位置变化补偿至该点的点云数据中,得到该点在所述当前时刻的第一中间数据。

仍以前述实施例中的点aj为例,点云数据中的各点在环境中的位置以笛卡尔三维坐标系作为参照。若采集的第j帧点云数据中,点aj的点云数据对应的位置齐次坐标为pa=(xa、ya、za、1)。在该点aj对应的指定时间段内,该点aj的位移数据为fa=(δxa、δya、δza),则得到的点aj对应的第一中间数据为(pa+fa)=p’a1=(xa+δxa、ya+δya、za+δza、1)。

由于环境中的物体在竖直方向上存在较大位移的可能性较小;并且,物体在竖直方向上的位置多取决于道路环境,对竖直方向的位移进行补偿的收益较小,则可以对的位移数据中对应于竖直方向的部分(例如点aj对应的δza)忽略不计。

进一步地,由于点云数据中的反射强度这一维度的补偿难度较大,则可以在计算过程中忽略针对该维度的计算。仍以点aj为例,则得到的点aj对应的第一中间数据为p’a1=(xa+δxa、ya+δya)。

s502:根据所述采集设备的位姿变化,建立位姿转换矩阵。

该采集设备在该点aj对应的指定时间段内的位姿变化,可以通过位置变化量矩阵δta=(δxt、δyt、δzt)和姿态变化量矩阵δra表征。

该位置变化量矩阵δta和姿态变化量矩阵δra可以根据该采集设备所属的智能车辆的传感设备感知的数据得到。该传感设备可以为惯导系统、车载加速度计、陀螺仪中的至少一种。

步骤s500和步骤s502的执行次序可以根据实际的使用场景进行调整。

s504:采用所述位姿转换矩阵,对所述第一中间数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述当前时刻补偿后的该点的点云数据。

根据位姿转换矩阵对该点aj的第一中间数据p’a1进行补偿,得到点aj的在所述当前时刻补偿后的点云数据可以为p”a1=。可见,本步骤能够将该点在指定时间段内由采集设备的运动引起的位置变化补偿至该点的点云数据中

(2)先根据采集设备的位姿变化进行补偿,后根据该点的位移数据进行补偿。

如图6所示,该“先根据采集设备的位姿变化进行补偿,后根据该点的位移数据进行补偿”的过程可以包括以下步骤:

s600:根据所述采集设备的位姿变化,建立位姿转换矩阵。

本步骤中位姿转换矩阵与前述步骤s502中的位姿转换矩阵相同,在此不做赘述。

s602:采用所述位姿转换矩阵,对获取的该点在所述历史时刻的点云数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述历史时刻的点云数据,作为第二中间数据。

仍以前述的点aj为例,基于与步骤s504相似的思路,点aj的点云数据对应的位置齐次坐标为pa=(xa、ya、za、1),则本步骤得到的第二中间数据p’a2=

s604:根据该点的位移数据,对所述第二中间数据进行调整,得到该点在所述当前时刻的点云数据,作为在所述当前时刻补偿后的该点的点云数据。

基于与步骤s500相似的思路,该由第二中间数据p’a2得到在所述当前时刻补偿后的该点的点云数据可以为p”a2=p’a2+fa。

可选地,在本步骤之前,可以通过前述的位姿转换矩阵对该点aj的位移数据fa进行补偿,得到补偿后的该点aj的位移数据f’a。则由第二中间数据p’a2得到在所述当前时刻补偿后的该点的点云数据可以为p”a2=p’a2+f’a。

针对如图3a中所示的其他点的点云数据,也可采用与对点aj的点云数据进行补偿时相同或相似的步骤进行补偿。

至此,完成了对点云数据的补偿。该补偿后的点云数据充分参考了环境中的物体的运动状况和采集设备的运动状况,能够较大程度的反映出当前时刻环境的各实际信息。

进一步地,为便于数据的处理,可以将点云数据和采集设备的位姿数据映射至同一坐标系下,再对映射之后的点云数据进行补偿。

具体地,该通过映射的方式进行坐标转换的过程可以为:将该点的在所述历史时刻的点云数据对应的坐标,转换至以所述采集设备为参照的坐标系,得到坐标转换后的该点在所述历史时刻的点云数据。然后,根据该点的位移数据和所述采集设备的位姿变化,对坐标转换后的该点在所述历史时刻的点云数据进行补偿。

在前述的“先根据该点的位移数据进行补偿,后根据采集设备的位姿变化进行补偿”的场景中,可以在步骤s504中,对第一中间数据进行坐标转换,并进一步针对该坐标转换后的第一中间数据进行补偿。

该过程可以为:将该点在所述当前时刻的第一中间数据对应的坐标,转换至以所述采集设备为参照的坐标系,得到在所述当前时刻的坐标转换后的该点的第一中间。具体地,可以采集平移变化量矩阵h和旋转变化量矩阵g,对第一中间数据p’a1进行坐标转换,得到的坐标转换后的第一中间数据为=p’a1。

然后,采用所述位姿转换矩阵,对所述坐标转换后的第一中间数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述当前时刻补偿后的该点的点云数据。则该点在所述当前时刻补偿后的该点的点云数据可以为p”a1=

在前述的“先根据采集设备的位姿变化进行补偿,后根据该点的位移数据进行补偿”的场景中,可以在步骤s602中,对第二中间数据进行坐标转换,并进一步针对该坐标转换后的第二中间数据进行补偿。

该过程可以为:将该点在所述历史时刻的点云数据对应的坐标,转换至以所述采集设备为参照的坐标系,得到在所述历史时刻的坐标转换后的该点的点云数据。

具体地,可以采集平移变化量矩阵h和旋转变化量矩阵g,对第二中间数据p’a2进行坐标转换,得到的坐标转换后的第二中间数据为=

然后,采用所述位姿转换矩阵,对坐标转换后的该点的点云数据进行补偿。则该点在所述当前时刻补偿后的该点的点云数据可以为p”a2=+f’a。

本说明书提供的上述点云数据处理过程具体可应用于使用无人车进行配送的领域,如,使用在无人车进行快递、外卖等配送的场景中。具体的,在上述的场景中,可使用多个无人车所构成的自动驾驶车队进行配送。

基于同样的思路,本说明书实施例还提供了对应于图2所示过程的点云数据处理装置,该点云数据处理装置如图7所示。

图7为本说明书实施例提供的一种点云数据处理装置的结构示意图,该点云数据处理装置可以包括:

获取模块700,用于获取点云数据;

物体确定模块702,用于针对所述点云数据中的各点,确定环境中该点对应的物体;

运动轨迹确定模块704,用于在预先得到的各物体的运动轨迹中,确定出该物体的运动轨迹;

位移数据确定模块706,用于根据该物体的运动轨迹,确定该物体在指定时间段内的位移数据,作为该点的位移数据;所述指定时间段为从采集到该点的点云数据的历史时刻至当前时刻的时间段;

补偿模块708,用于根据确定出的该点的位移数据,对获取的该点在所述历史时刻的点云数据进行补偿,得到该点在所述当前时刻的点云数据。

其中,获取模块700、物体确定模块702、运动轨迹确定模块704、位移数据确定模块706和补偿模块708依次电连接。可选地,获取模块700与补偿模块708电连接。

可选地,获取模块700可以包括电连接的时长确定子模块7000和点云数据获取子模块7002。

时长确定子模块7000,用于确定采集一帧点云数据的时长。

点云数据获取子模块7002,用于根据预设的每个指定时刻,获取从该指定时刻开始,在所述时长内采集到的点云数据。

可选地,位移数据确定模块706可以包括:第一位置数据确定子模块7060、第二位置数据确定子模块7062和位移数据确定子模块7064。第一位置数据确定子模块7060和第二位置数据确定子模块7062分别地与位移数据确定子模块7064电连接。

第一位置数据确定子模块7060,用于根据该物体的运动轨迹,确定该物体在所述当前时刻的第一位置数据。

第二位置数据确定子模块7062,用于确定该物体在所述历史时刻的第二位置数据。

位移数据确定子模块7064,用于根据所述第一位置数据和所述第二位置数据之间的差异,确定出该物体在指定时间段内的位移数据。

可选地,补偿模块708可以包括电连接的:采集设备位姿变化确定子模块7080和第一补偿子模块7082。

采集设备位姿变化确定子模块7080,用于确定在所述指定时间段内,采集该点的点云数据的采集设备的位姿变化。

第一补偿子模块7082,用于根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿。

可选地,第一补偿子模块7082可以包括:位姿转换矩阵建立单元70822、第一中间数据确定单元70820和补偿单元70824。其中,位姿转换矩阵建立单元70822、第一中间数据确定单元70820分别地与补偿单元70824电连接。

第一中间数据确定单元70820,用于根据该点的位移数据,对获取的该点在所述历史时刻的点云数据进行调整,得到该点在发生了所述位移数据对应的位移的条件下,该点在所述当前时刻的点云数据,作为第一中间数据。

位姿转换矩阵建立单元70822,用于根据所述采集设备的位姿变化,建立位姿转换矩阵。

补偿单元70824,用于采用所述位姿转换矩阵,对所述第一中间数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述当前时刻补偿后的该点的点云数据。

可选地,补偿模块708可以包括电连接的:采集设备位姿变化确定子模块和第二补偿子模块。

采集设备位姿变化确定子模块,用于确定在所述指定时间段内,采集该点的点云数据的采集设备的位姿变化。

第二补偿子模块,用于根据该点的位移数据和所述采集设备的位姿变化,对获取的该点的点云数据进行补偿。

第二补偿子模块可以包括:位姿转换矩阵建立单元、第二中间数据确定单元和补偿单元。其中,位姿转换矩阵建立单元、第二中间数据确定单元分别地与补偿单元电连接。

位姿转换矩阵建立单元,用于根据所述采集设备的位姿变化,建立位姿转换矩阵。

第二中间数据确定单元,用于采用所述位姿转换矩阵,对获取的该点在所述历史时刻的点云数据进行补偿,得到所述采集设备在所述位姿变化的条件下,该点在所述历史时刻的点云数据,作为第二中间数据

补偿单元,用于根据该点的位移数据,对所述第二中间数据进行调整,得到该点在所述当前时刻的点云数据,作为在所述当前时刻补偿后的该点的点云数据。

可选地,补偿模块还可以包括:坐标转换子模块7084。

该坐标转换子模块7084可以用于将该点的在所述历史时刻的点云数据对应的坐标,转换至以所述采集设备为参照的坐标系,得到坐标转换后的该点在所述历史时刻的点云数据。根据该点的位移数据和所述采集设备的位姿变化,对坐标转换后的该点在所述历史时刻的点云数据进行补偿。

本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2提供的点云数据处理过程。

本说明书实施例还提出了图8所示的一种无人驾驶设备的部分结构示意结构图。如图8所示,在硬件层面,该无人驾驶设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图2所述的点云数据处理过程。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1