用于调整点云数据采集轨迹的方法、设备以及计算机可读介质与流程

文档序号:14940502发布日期:2018-07-13 20:35阅读:244来源:国知局

本公开的实施例总体上涉及高精地图领域,并且更具体地涉及用于调整点云数据采集轨迹的方法、设备及计算机可读介质。



背景技术:

近年来随着自动驾驶得到广泛的关注,高精地图技术得到了快速地发展。特别地,针对高度自动驾驶(l3)级别的自动驾驶,高精地图是不可或缺的。在目前高精地图技术中,需要采集大量的点云数据。通过对这些点云数据进行诸如配准等的处理以应用于制作高精地图。由于点云数据量通常很大,传统的全量点云数据匹配需要消耗大量的时间以及存储空间。



技术实现要素:

总体上,本公开的实施例涉及用于调整点云数据采集轨迹的方案。

在第一方面,本公开的实施例提供一种调整点云数据采集轨迹的方法。该方法包括:响应于移动实体所采集的第一点云数据和第二点云数据具有匹配的特征,获取移动实体采集第一点云数据所使用的第一轨迹和采集第二点云数据所使用的第二轨迹;基于匹配的特征以及第一轨迹和第二轨迹,确定第一轨迹中的待调整的轨迹点参数集合;以及通过调整轨迹点参数集合,融合第一轨迹和第二轨迹。

在第二方面,本公开的实施例提供一种用于调整点云数据采集轨迹的装置。该装置包括:获取模块,被配置为响应于移动实体所采集的第一点云数据和第二点云数据具有匹配的特征,获取移动实体采集第一点云数据所使用的第一轨迹和采集第二点云数据所使用的第二轨迹;确定模块,被配置为基于匹配的特征以及第一轨迹和第二轨迹,确定第一轨迹中的待调整的轨迹点参数集合;以及融合模块,被配置为通过调整轨迹点参数集合,融合第一轨迹和第二轨迹。

在第三方面,本公开的实施例提供了一种设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据本公开的第一方面的方法。

在第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。

应当理解,发明内容部分中所描述的内容并非旨在限定本公开实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其它特征、优点及方面将变得更加明显,其中:

图1示出了本公开的实施例可以在其中实施的示例环境的框图;

图2示出了根据本公开的某些实施例的轨迹融合的示意图;

图3示出了根据本公开的某些实施例的示例方法的流程图;

图4示出了根据本公开的某些实施例的示例方法的流程图;

图5示出了根据本公开的某些实施例的装置的示意框图;以及

图6示出了示出了能够实施本公开的多个实施例的计算设备的框图。

在所有附图中,相同或相似参数数字表示相同或相似的元素。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在此使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。

在此使用的术语“点云数据”是指在一个三维坐标系统中的一组向量的集合。这些向量通常以x、y、z三维坐标的形式表示,而且一般主要用来代表一个物体的外表面形状。点云数据还可以表示一个点的rgb颜色,灰度值,深度,分割结果等。在此使用的术语“特征/特征点”是指能够反映图像本质特征,能够标识图像中目标物体。

如上所述,传统方案通常直接使用点云数据进行配准。这要求点云数据本身给出较好的初始值。进一步地由于可能需要多次迭代,因此在直接地处理点云数据时会消耗大量的时间以及内存。直接地处理点云数据只适用于数据量比较小的场景。然而,在制作高精地图时,需要处理大量的点云数据,因此传统的直接处理点云数据的方案并不适用。此外,传统方案在进行点云数据配准时,通常只限于两帧之间的匹配关系,而没有以采集点云数据的轨迹作为整体来考虑。这样,通常会造成诸如环路之类的轨迹,而无法正确地形成闭环。

根据本公开的实施例,提供了一种用于调整点云数据采集轨迹的方案。在该方案中,提取出点云数据中的特征以用于融合用于采集点云数据的轨迹。在融合用于采集点云数据的轨迹时,可以根据特征相应地调整轨迹中的轨迹点的位置参数。进一步地,在融合用于采集点云数据的轨迹时,轨迹中的轨迹点的顺序关系也可以被考虑以提高融合的精度。

图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。该示例环境100可以包括移动实体110以及计算设备106。移动实体可以包括移动设备101、用于采集点云数据122的采集设备102、用于存储点云数据122的存储装置104。移动设备101可以是任意可移动的设备。例如,移动设备101可以是车辆。

采集设备102可以被设置在移动设备101上。采集设备102可以是任意合适的3d扫描设备。例如,采集设备102可以是激光雷达设备。备选地,采集设备102可以是立体摄像头。采集设备102还可以是越渡时间相机。

轨迹130和轨迹140是移动设备101的不同时相的轨迹。移动实体110可以通过采集设备102分别在轨迹130和140上采集点云数据。采集设备102采集的点云数据可以被存储在存储装置104中。存储装置104可以本地存储装置。例如,存储设备104可以与采集设备102一同位于移动设备101上。存储装置104也可以是远程存储装置。例如,采集设备102可以将采集的点云数据发送到远程的存储装置104。

示例环境100中还包括柱状物体1510、平面物体1520以及地面物体1530。可以从采集设备102所采集的点云数据122中提取出反映上述物体的特征。计算设备106可以从存储装置104获得点云数据122。计算设备106可以从点云数据122中提取特征,并且基于该特征对轨迹130和轨迹140中的轨迹点进行调整,以融合轨迹130和轨迹140。

本领域技术人员应当理解,虽然图1的环境100中示出了本公开的实施例能够在其中实现的示例环境,然而可以理解本公开的实施例可以在任意其他合适的环境中实现。图2所示的环境100仅为示例性的,而非限制性的。可以理解,图1中环境100示出的移动实体110、计算设备106、轨迹130和140、柱状物体1510、平面物体1520以及地面物体1530等的数目仅为示例性的。环境100可以包括任意合适数目的移动实体110、计算设备106、轨迹130和140、柱状物体1510、平面物体1520以及地面物体1530。环境100中还可以包括其他未示出的组件。

图2示出了根据本公开的某些实施例的轨迹融合200的示意图。轨迹210(可以称为“第一轨迹”)和轨迹220(可以称为“第二轨迹”)可以是移动实体110不同时相的采集点云数据的轨迹。轨迹210包括多个轨迹点,例如,轨迹点2110-1、2110-2、2110-3、2110-4、2110-5、2110-6、2110-7、2110-8、......、2110-n(未示出)(统称为“轨迹点2110”)。类似地,轨迹220包括多个轨迹点,例如,轨迹点2210-1、2210-2、2210-3、2210-4、2210-5、2210-6、2210-7、2210-8、......、2210-n(未示出)(统称为“轨迹点2210”)。

轨迹点具有对应的位置参数,该位置参数可以通过多种方式来获得。例如,轨迹点的位置参数可以由全球定位系统(gps)获得。轨迹点的位置参数可以包括在笛卡尔坐标系下的x轴的参数、y轴的参数以及z轴的参数。轨迹点的位置参数还可以包括角度参数。例如,轨迹点的位置参数可以包括绕x轴旋转的俯仰角(pitch)参数、绕y轴旋转的偏航角(yaw)参数以及绕z轴旋转的翻滚角(roll)参数。

特征230-1和特征230-2(统称为“特征230”)为基于轨迹210所采集的点云数据和基于轨迹220所采集的点云数据均能够提取出的特征。特征230-1和特征230-2可以是表示柱状物体(例如,柱状物体1510)的柱状物特征。备选地,特征230-1和特征230-2可以是表示地面物体(例如,地面物体1530)的地面特征。,特征230-1和特征230-2还可以是表示平面物体(例如,平面物体1520)的平面特征。可以理解,特征230-1和230-2可以是不同的特征,也可以是相同的特征。下面将参照图3-4进一步描述根据本发明的实施例。可以理解,仅是为了说明的目的,描述了调整两条轨迹的示例。本公开的实施例可以调整多条轨迹,例如,可以调整三条或以上的轨迹。

在框310,如果移动实体110所采集的第一点云数据和第二点云数据具有匹配的特征230,计算设备106获取移动实体110采集第一点云数据所使用的轨迹210和采集第二点云数据所使用的轨迹220。计算设备106可以任意合适的方式获得点云数据中的特征。例如,计算设备106可以通过人工输入来获得点云数据中的特征。在某些实施例中,移动实体110所采集的多组点云数据均具体匹配的特征,计算设备106可以获取移动实体110采集这些组点云数据所使用的轨迹。例如,计算设备106可以获取移动实体110采集这些组点云数据所使用的轨迹210、220和240(未示出)。

备选地,在某些实施例中,计算设备106可以将每帧点云数据中的特征提取出来。具体而言,计算设备106可以从点云数据确定地面点云、平面点云、柱状物体点云和/或其他点云。然后计算设备106可以分别提取地面点云、平面点云以及柱状物体点云中的特征。例如,计算设备106可以基于地面点云提取地面特征,基于平面点云提取平面特征,基于柱状物体点云提取柱状物特征,等等。

在示例实施例中,设备106可以将从不同的点云数据中提取的特征转换到同一坐标系中。如果在同一坐标系中提取自不同点云数据的特征的差异在预定的阈值(也称为“阈值差异”)内,则这些特征可以被认为是匹配的。也就是说,提取这些特征的不同点云数据具有匹配的特征。例如,从第一点云数据提取特征230-1’(未示出)和从第二点云数据提取特征230-1”(未示出)是匹配的,则第一点云数据与第二点云数据具有匹配的特征230-1。特征(例如,230-1’)与其所属的轨迹点之间是刚性连接的。计算设备106可以基于此获得采集第一点云数据的轨迹210和采集第二点云数据的轨迹220。以此方式,计算设备106可以极大地减少了需要处理的点云数据量,从而提高了处理速度。

在框320,计算设备106基于匹配的特征230以及轨迹210和轨迹220,确定轨迹210中待调整的轨迹点2110参数集合。例如,特征230-1为匹配的特征,轨迹210中的轨迹点2110-1、2110-2和2110-3以及轨迹220中的轨迹点2210-1、2210-2和2210-3为与该特征相关联的轨迹点。计算设备106可以确定轨迹点2110-1、2110-2和2110-3与轨迹点2210-1、2210-2和2210-3具有最大差异的参数集合。计算设备106可以将具有最大差异的参数集合确定为待调整的轨迹参数集合。例如,计算设备106可以将差异最大的z轴参数,俯仰角参数以及翻滚角参数确定为待调整的参数集合。以此方式,可以根据特征的特点相应地调整参数,而不是同时调整所有的参数,从而进一步提高了融合的效率。如上所述,在某些实施例中,计算设备106可以获取多条移动实体110采集点云数据的轨迹,计算设备106可以基于匹配的特征以及这些轨迹,确定这些轨迹中待调整的轨迹点参数集合。

下面将参照图4描述可以在框320实施的示例性方法。可以理解,图4中示出的方法400仅为示例性而非限制性。在框410,计算设备106可以以较大的搜索半径(可以称为“第一搜索半径”)搜索匹配的特征。例如,计算设备106可以以经由轨迹210采集的点云数据提取的特征230-1’(未示出)为中心,按照一定的距离在空间上搜索可以匹配的特征,例如经由轨迹220采集的点云数据提取的特征230-1”(未示出)。

在框420,如果匹配的特征230-1是地面特征,设备106可以确定待调整的轨迹点参数集合是地面参数集合。在某些实施例中,地面参数集合包括在笛卡尔坐标戏中的z轴参数。备选地/附加地,地面参数集合还包括绕x轴旋转的俯仰角参数以及绕z轴旋转的翻滚角参数。仅作为示例,设备106可以将轨迹210和轨迹220中的轨迹点的z轴参数、俯仰角参数以及翻滚角参数调节为相同的。例如,设备106可以调节轨迹210和轨迹220在z方向上的高度,使得两条轨迹在z方向上重合,并且地面特征与轨迹210和轨迹220分别对应的地面的法向量相同。

在框430,计算设备106可以以较小的搜索半径(可以称为“第二搜索半径”)搜索匹配的特征。计算设备106已经在框410以较大的半径搜索特征以进行调整。框430处的较小搜索半径可以使得轨迹210和轨迹220的待调整参数更加精细,从而获得更加精确的融合结果。

在框440,如果匹配的特征230-2是柱状物特征,设备106可以确定待调整的参数集合是柱状物参数集合。在某些实施例中,柱状物参数集合可以包括在笛卡尔坐标戏中的x轴参数和y轴参数。例如,在实际的应用场景中,柱状物可以是路灯等物体。仅作为示例,设备106可以将轨迹210和轨迹220中的轨迹点的x轴参数和y轴参数调节为相同的。

在框450,计算设备106可以以更小的搜索半径(可以称为“第三搜索半径”)搜索匹配的特征。如上所述,计算设备106已经进行过两次匹配特征的搜索。因此在框450搜索到的匹配特征的匹配程度更高。

在框460,如果匹配的特征是平面特征,设备106可以确定待调整的参数集合是平面特征参数集合。在某些实施例中,平面参数集合可以包括在笛卡尔坐标系中的x轴参数和y轴参数。备选地/附加地,平面参数集合还可以包括在绕y轴旋转的偏航角。在实际场景中,平面特征可以是垂直于地面的小平面,例如,广告牌等。仅作为示例,设备106可以将轨迹210和轨迹220中的轨迹点的x轴参数和y轴参数以及绕y轴旋转的偏航角调节为相同的,从而使得平面特征对应的与轨迹210和轨迹220分别相关联的平面在法向量上距离为零。

可以理解,上述被调整的参数集合的顺序仅为示例性的,参数集合可以以任意合适的顺序被调整。参数集合的调整顺序与点云数据本身的特性相关联。以此方式,本公开的实施例可以根据点云数据的特点调整匹配特征的搜索范围以及待调整的参数集合的顺序,从而实现更优的优化顺序。

现在返回图3,在框330,计算设备106可以通过调整轨迹点2110参数集合来融合轨迹210和轨迹220。在某些实施例中,计算设备106可以基于轨迹210中以及轨迹220中的轨迹点顺序关系来融合轨迹210和轨迹220。设备106可以使用任意合适的方法来优化轨迹210和轨迹220,从而使得轨迹210和轨迹220更好的融合。在某些实施例中,轨迹210和轨迹220中的轨迹点顺序关系可以作为优化轨迹210和轨迹220时的参数。以此方式,本公开的实施例将轨迹点位置作为参考进行轨迹融合,有效地避免了诸如环路无法闭环的问题,进一步提高了轨迹融合的精度。如上所述,在某些实施例中,计算设备106可以获取多条移动实体110采集点云数据的轨迹,计算设备106可以通过调整这些轨迹的轨迹点参数集合来融合这些轨迹。也就是说,计算设备106可以同时融合多条轨迹。

图5示出了根据本公开实施例的用于调整点云数据采集轨迹的装置500的示意性框图。如图5所示,装置500包括:获取模块510,被配置为响应于移动实体所采集的第一点云数据和第二点云数据具有匹配的特征,获取移动实体采集第一点云数据所使用的第一轨迹和采集第二点云数据所使用的第二轨迹;确定模块530,被配置为基于匹配的特征以及第一轨迹和第二轨迹,确定第一轨迹中的待调整的轨迹点参数集合;以及融合模块550,被配置为通过调整轨迹点参数集合,融合第一轨迹和第二轨迹。

在一些实施例中,获取模块510包括:用于获取特征的子模块(未示出),被配置为获取与第一点云数据相关联的第一特征和与第二点云数据相关联的第二特征;以及用于确定匹配特征的子模块(未示出),被配置为响应于第一特征与第二特征的差异小于阈值差异,确定第一点云数据和第二点云数据具有匹配的特征。

在一些实施例中,确定模块530包括:用于确定参数集合的子模块(未示出),被配置为确定与第一轨迹中的、与第二轨迹的对应轨迹点具有最大差异的轨迹点参数集合,以及基于该轨迹点的参数集合。来确定待调整的轨迹点参数集合。

在一些实施例中,确定模块530包括:用于确定地面参数集合的子模块(未示出),被配置为响应于匹配的特征是地面特征,将待调整的轨迹点参数集合确定为地面参数集合,地面参数集合包括以下至少一项:在笛卡尔坐标系中的z轴参数、绕x轴旋转的俯仰角参数和绕z轴旋转的翻滚角参数。

在一些实施例中,确定模块530包括:用于确定柱状物参数集合的子模块(未示出),被配置为响应于匹配的特征是柱状物特征,将待调整的轨迹点参数集合确定为柱状物参数集合,柱状物参数集合包括以下至少一项:在笛卡尔坐标系中的x轴参数和y轴参数。

在一些实施例中,确定模块530包括:用于确定平面参数集合的子模块(未示出),被配置为响应于匹配的特征是平面特征,将待调整的轨迹点参数集合确定为平面参数集合,平面参数集合包括以下至少一项:在笛卡尔坐标系中的x轴参数、y轴参数和绕y轴旋转的偏航角参数。

在某些实施例中,融合模块550包括:用于融合的子模块(未示出),被配置为基于第一轨迹中的轨迹点顺序关系以及第二轨迹中的轨迹点顺序关系,融合第一轨迹和第二轨迹。

图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以用于实现图1的计算设备106。如图所示,设备600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序指令,来执行各种适当的动作和处理。在ram603中,还可存储设备600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元601执行上文所描述的各个方法和处理,例如过程300和/或过程400。例如,在一些实施例中,过程300和/或过程400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom602和/或通信单元1209而被载入和/或安装到设备600上。当计算机程序加载到ram603并由cpu601执行时,可以执行上文描述的过程300和/或过程400的一个或多个步骤。备选地,在其他实施例中,cpu601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300和/或过程400。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远端存储介质二者中。

用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远端计算机上或完全在远端计算机或服务器上执行。

在本公开的上下文中,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,或其任意合适的组合。

另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题并不限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作是作为实现权利要求的示例形式而被公开的。

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