对象的定位方法、装置、存储介质和处理器与流程

文档序号:20991435发布日期:2020-06-05 21:45阅读:247来源:国知局
对象的定位方法、装置、存储介质和处理器与流程

本发明涉及计算机领域,具体而言,涉及一种对象的定位方法、装置、存储介质和处理器。



背景技术:

目前,在对待定位的对象进行定位时,相关技术可以通过固定点进行初始化来实现,该方法需要每次都将对象放置在一个已知地图坐标的物理位置上,将此坐标作为初始化位置,并开始定位。

上述方法虽然可以实现对待定位的对象进行定位,但上述方法在应用流程上繁琐,操作复杂,需要预先记录与已知地图坐标相绑定的物理位置,并且每次在开始定位时都需要将对象移动到此物理位置,从而使得对对象进行定位的效率低。

针对现有技术中的对对象进行定位的效率低的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明的主要目的在于提供一种对象的定位方法、装置、存储介质和处理器,以至少解决对对象进行定位的效率低的技术问题。

为了实现上述目的,根据本申请实施例的一个方面,提供了一种对象的定位方法。该方法可以包括:获取对目标对象进行三维激光检测得到的目标激光点云数据;在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识其数据特征相关联;基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。

可选地,本申请实施例的基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息,包括:基于目标地图关键帧的标识获取匹配信息;基于匹配信息对目标激光点云数据和地图进行匹配;确定目标激光点云数据和地图匹配成功,对目标对象进行定位,并获取目标对象的定位信息。

可选地,本申请实施例的匹配信息包括定位坐标和/或姿态数据,基于目标地图关键帧的标识获取匹配信息,包括:获取与目标地图关键帧的标识对应的定位坐标和/或姿态数据。

可选地,本申请实施例的基于匹配信息对目标激光点云数据和地图进行匹配,包括:基于定位坐标和/或姿态数据对目标激光点云数据和地图的点云数据进行匹配。

可选地,本申请实施例的基于定位坐标和/或姿态数据对目标激光点云数据和地图的点云数据进行匹配,包括:基于定位坐标和/或姿态数据,对目标激光点云数据和地图的点云数据迭代进行最近点匹配。

可选地,本申请实施例的基于定位坐标和/或姿态数据,对目标激光点云数据和地图的点云数据迭代进行最近点匹配,包括:基于当前最近点匹配的迭代次数、姿态数据的增量和姿态数据对目标激光点云数据和地图的点云数据迭代进行最近点匹配,直到确定目标激光点云数据和构建的地图的点云数据匹配成功。

可选地,本申请实施例还包括:在迭代次数达到目标次数,且对目标激光点云数据和点云数据迭代进行最近点匹配未成功的情况下,如果目标对象的当前位置在地图的范围内,则移动目标对象,并对移动后的目标对象进行定位。

可选地,本申请实施例在获取对目标对象进行三维激光检测得到的目标激光点云数据之后,还包括:对目标激光点云数据进行采样,得到目标采样结果;从目标采样结果中提取出目标激光点云数据的数据特征。

可选地,本申请实施例的对目标激光点云数据进行采样,得到目标采样结果,包括:通过体素滤波对目标激光点云数据进行采样,得到第一数量的采样数据;在第一数量大于目标数量的情况下,在第一数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为目标采样结果;在第一数量小于目标数量的情况下,从目标激光点云数据中随机选取第二数量的采样数据,将第一数量的采样数据和第二数量的采样数据确定为目标采样结果,其中,第一数量和第二数量之和为目标数量。

可选地,本申请实施例的从目标采样结果中提取出目标激光点云数据的数据特征,包括:通过神经网络模型从目标采样结果中提取出目标激光点云数据的数据特征,其中,神经网络模型为基于点云的场景识别模型,用于输出目标维度的数据特征。

可选地,本申请实施例在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征之前,还包括:对地图关键帧对应的激光点云数据进行采样,得到采样结果;从采样结果中提取出数据特征;将数据特征和地图关键帧的标识进行关联,得到关联结果,并将关联结果存储至目标数据库中。

可选地,本申请实施例的对地图关键帧对应的激光点云数据进行采样,得到采样结果,包括:通过体素滤波对激光点云数据进行采样,得到第三数量的采样数据;在第三数量大于目标数量的情况下,在第三数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为采样结果;在第三数量小于目标数量的情况下,从目标激光点云数据中随机选取第四数量的采样数据,将第三数量的采样数据和第四数量的采样数据确定为采样结果,其中,第三数量和第四数量之和为目标数量。

可选地,本申请实施例的从采样结果中提取出数据特征,包括:通过神经网络模型从采样结果中提取出数据特征,其中,神经网络模型为基于点云的场景识别模型,用于输出目标维度的数据特征。

可选地,本申请实施例的获取与目标激光点云数据的数据特征相似度最大的目标数据特征,包括:获取与目标激光点云数据的数据特征的余弦相似度最大的目标数据特征。

可选地,本申请实施例的获取与目标激光点云数据的数据特征相似度最大的目标数据特征,包括:获取与目标激光点云数据的数据特征相似度最大,且相似度大于目标阈值的目标数据特征。

可选地,本申请实施例的基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息,包括:基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,以对目标对象进行重定位或闭环检测。

为了实现上述目的,根据本申请实施例的另一方面,还提供了一种对象的定位装置。该装置可以包括:第一获取单元,用于获取对目标对象进行三维激光检测得到的目标激光点云数据;第二获取单元,用于在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联;匹配单元,用于基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。

为了实现上述目的,根据本申请实施例的另一方面,还提供了一种存储介质。该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的对象的定位方法。

为了实现上述目的,根据本申请实施例的另一方面,还提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例的对象的定位方法。

通过本发明,采用获取对目标对象进行三维激光检测得到的目标激光点云数据;在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联;基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。也就是说,该实施例仅需要通过三维激光对目标对象进行检测,得到目标激光点云数据,从而不需要额外增加成本,且只需要获取与目标激光点云数据的数据特征相似度最大的目标数据特征关联的目标地图关键帧的标识,通过该标识对目标激光点云数据和地图进行匹配,以对目标对象进行定位,从而不需要用户过多操作,简化使用流程,也不需要对环境进行改造和维护,适用于室内户外等场景,从而解决了对对象进行定位的效率低的技术问题,进而达到了提高对对象进行定位的效率的技术效果。

附图说明

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

图1是根据本发明实施例的一种对象的定位方法的流程图;

图2是根据本发明实施例的另一种对象的定位方法的流程图;

图3是根据本发明实施例的一种构建地图的方法的流程图;

图4是根据本发明实施例的一种对关键帧激光点云数据进行数据采样的方法的流程图;

图5是根据本发明实施例的一种多次预测匹配的方法的流程图;

图6是根据本发明实施例的一种对象的定位装置的示意图。以及

图7是根据本发明实施例的另一种对象的定位装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种对象的定位方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种对象的定位方法的流程图。如图1所示,该方法可以包括以下步骤:

步骤s102,获取对目标对象进行三维激光检测得到的目标激光点云数据。

在本发明上述步骤s102提供的技术方案中,目标对象为待进行定位的对象,可以为机器人,可以包括但不限于轮式移动机器人、足式机器人以及自动驾驶中的需要进行定位的对象等。该实施例的三维激光可以通过三维(3d)激光雷达系统产生,通过三维激光雷达系统对目标对象进行三维激光检测,该激光雷达系统是以发射激光束来探测障碍物位置的系统,其工作原理是通过发射探测信号(激光束),然后接受从环境中的障碍物反射回来的信号,将其与发射的探测信号进行对比,并进行处理后可得到激光雷达在感知范围内的障碍物的距离和方向等信息,可选地,该实施例使用三维激光传感器对目标对象进行三维激光检测,从而不需要添加额外地成本。其中,三维激光与二维(2d)激光不同的是,三维激光是多线激光,可以扫描得到多层障碍物信息,可以有16线、32线、64线等多线激光,而二维激光是单线激光,只能扫描得到一个平面上的障碍物信息。

在该实施例中,通过三维激光累积采集到的每个激光点云数据具有三维点信息(x,y,z),可以将这数据的集合称为点云,比如,三维激光雷达velodyne-vlp16发射的三维激光为16线,每一帧可以采集到28800个激光点云数据,那么这一帧数据中的28800个激光点云数据可称为点云,其中,激光点云数据也称为点数据、点云数据;同样,一个点云地图,也是激光点云数据的集合,同样称为点云,其中,点云地图是由地图关键帧中的激光点云数据、地图关键帧的位置和姿态进行融合获得的,在点云地图中,每个点用于表示通过三维激光扫描到的障碍物的点的坐标位置。

该实施例对目标对象进行三维激光检测,也即,通过三维激光对目标对象进行检测,得到目标激光点云数据,并采集该目标激光点云数据,该目标激光点云数据也即当前三维激光数据,可以在重定位时,采集一帧当前的三维激光数据。

步骤s104,在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识。

在本发明上述步骤s104提供的技术方案中,在获取对目标对象进行三维激光检测得到的目标激光点云数据之后,在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联。

在该实施例中,目标数据库也即特征数据库,可以在构建地图的过程中建立。该目标数据库包括每个地图关键帧的数据特征(feature)和与地图关键帧的数据特征相关联的地图关键帧的标识,该标识可以为身份标识(id),可以通过{id,feature}组合保存在目标数据库中。该实施例可以从目标激光点云数据中提取出数据特征,该提取出的数据特征也即当前激光数据特征,可以具有角度不变性,然后在目标数据库中,将目标激光点云数据的数据特征与目标数据库中的每个数据特征进行比较,将与目标激光点云数据的数据特征相似度最大的数据特征确定为目标数据特征,进而确定与其相关联的目标地图关键帧的标识,该目标地图关键帧的标识也即特征最相似的关键帧id。

步骤s106,基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。

在本发明上述步骤s106提供的技术方案中,在确定与目标数据特征相关联的目标地图关键帧的标识之后,可以基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。

在该实施例中,可以通过查找到的标识找到对应的地图关键帧的定位坐标和姿态,将其作为匹配预测值,将目标激光点云数据与构建的地图进行匹配,获取目标对象的定位信息,可以得到初始化定位在地图上的坐标和姿态,以完成对目标对象的重定位。可选地,该实施例可以以目标地图关键帧的位置作为预测位置进行多次目标激光点云数据和地图之间的匹配,在匹配成功后即得到目标对象准确的初始位置。可以在对目标对象定位成功后,将结果设置为初始定位状态,即可进入正常定位状态。

通过上述步骤s102至步骤s106,采用获取对目标对象进行三维激光检测得到的目标激光点云数据;在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联;基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。也就是说,该实施例仅需要通过三维激光对目标对象进行检测,得到目标激光点云数据,从而不需要额外增加成本,且只需要获取与目标激光点云数据的数据特征相似度最大的目标数据特征关联的目标地图关键帧的标识,通过该标识对目标激光点云数据和地图进行匹配,以对目标对象进行定位,从而不需要用户过多操作,简化使用流程,也不需要对环境进行改造和维护,适用于室内户外等场景,从而解决了对对象进行定位的效率低的技术问题,进而达到了提高对对象进行定位的效率的技术效果。

下面对该实施例的上述方法进行进一步介绍。

作为一种可选的实施方式,步骤s106,基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息,包括:基于目标地图关键帧的标识获取匹配信息;基于匹配信息对目标激光点云数据和地图进行匹配;确定目标激光点云数据和地图匹配成功,对目标对象进行定位,并获取目标对象的定位信息。

在该实施例中,在实现基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息时,可以是先基于目标地图关键帧的标识获取匹配信息,该匹配信息可以是匹配预测值、匹配初始化值、预测位置,用于实现对目标激光点云数据和地图进行匹配,也即,实现当前三维激光点云数据与构建的地图进行匹配。确定目标激光点云数据和地图匹配成功,对目标对象进行定位,并获取目标对象的定位信息,比如,在对目标激光点云数据和地图匹配成功之后,即得到目标对象准确的初始位置。

作为一种可选的实施方式,匹配信息包括定位坐标和/或姿态数据,基于目标地图关键帧的标识获取匹配信息,包括:获取与目标地图关键帧的标识对应的定位坐标和/或姿态数据。

在该实施例中,在确定与目标数据特征相关联的目标地图关键帧的标识之后,获取与目标地图关键帧的标识对应的定位坐标和/或姿态数据,比如,通过查找到的关键帧id找到对应关键帧的定位坐标和/或姿态数据。

作为一种可选的实施方式,基于匹配信息对目标激光点云数据和地图进行匹配,包括:基于定位坐标和/或姿态数据对目标激光点云数据和地图的点云数据进行匹配。

在该实施例中,在实现基于匹配信息对目标激光点云数据和地图进行匹配时,可以将定位坐标和/或姿态数据作为匹配预测值,对目标激光点云数据和地图进行匹配,可以是对目标激光点云数据和地图的点云数据进行匹配,以得到初始化定位在地图上的坐标和姿态。

作为一种可选的实施方式,基于定位坐标和/或姿态数据对目标激光点云数据和地图的点云数据进行匹配,包括:基于定位坐标和/或姿态数据,对目标激光点云数据和地图的点云数据迭代进行最近点匹配。

在该实施例中,迭代进行最近点匹配(iterativeclosestpoint,简称为icp)的算法为一种点云匹配算法,可以通过旋转、平移使得两个点集之间的距离最小。该实施例可以基于定位坐标和/或姿态数据采用icp匹配来对目标激光点云数据和地图的点云数据进行匹配。但是,在进行icp匹配时,姿态数据将不可使用,在姿态预测与真实值相差较大的情况下,icp匹配容易失败,为此该实施例可以使用多次预测匹配的方法进行匹配。

作为一种可选的实施方式,基于定位坐标和/或姿态数据,对目标激光点云数据和地图的点云数据迭代进行最近点匹配,包括:基于当前最近点匹配的迭代次数、姿态数据的增量和姿态数据对目标激光点云数据和地图的点云数据迭代进行最近点匹配,直到确定目标激光点云数据和构建的地图的点云数据匹配成功。

可选地,上述方法包括:匹配步骤,在迭代次数未达到目标次数的情况下,基于当前最近点匹配的迭代次数、姿态数据的增量和姿态数据对目标激光点云数据和地图的点云数据迭代进行最近点匹配;判断步骤,判断对目标激光点云数据和构建的地图的点云数据迭代进行最近点匹配是否成功,如果否,则返回匹配步骤,如果是,则结束。

在该实施例中,在实现基于定位坐标和/或姿态数据对目标激光点云数据和地图的点云数据迭代进行最近点匹配时,可以先执行匹配步骤,判断迭代次数是否达到目标次数,该目标次数可以为m=2*pi/r,其中,r用于表示姿态数据的增量,可以为每次icp匹配偏航角预测值增加的量。在判断出迭代次数未达到目标次数的情况下,可以基于当前最近点匹配的迭代次数、姿态数据的增量和姿态数据对目标激光点云数据和地图的点云数据迭代进行最近点匹配,比如,基于yaw=i*r+yaw_kf对目标激光点云数据和地图的点云数据迭代进行最近点匹配,其中,i用于表示当前迭代进行最近点匹配的次数,yaw_kf用于表示姿态数据,可以为对应关键帧的偏航角。

该实施例在执行完匹配步骤之后,可以执行判断步骤,判断对目标激光点云数据和构建的地图的点云数据迭代进行最近点匹配是否成功,可以在每次进行icp匹配之后,通过判断icp是否收敛,或判断匹配分数是否小于阈值来判断匹配是否成功,比如,在判断出icp收敛或者判断出匹配分数小于阈值则确定匹配成功,则结束。如果否,则返回匹配步骤,如果在迭代次数达到目标次数,仍然不能成功匹配,则可以确定此次重定位失败。

作为一种可选的实施方式,该方法还包括:在迭代次数达到目标次数,且对目标激光点云数据和点云数据迭代进行最近点匹配未成功的情况下,如果目标对象的当前位置在地图的范围内,则移动目标对象,并对移动后的目标对象进行定位。

在该实施例中,在迭代次数达到目标次数,且对目标激光点云数据和点云数据迭代进行最近点匹配未成功的情况下,判断目标对象的当前位置是否在地图的范围内,也即,判断目标对象的物理位置是否在地图范围内,如果判断出在地图的范围内,则可以移动目标对象,并对移动后的目标对象开始重新进行定位,以获得更高的定位成功率。

在该实施例中,目标对象可以很容易地从惯性测量单元(inertialmeasurementunit,简称为imu)获得当前的俯仰角和滚转角,所以该实施例可以只需要改变偏航角,预测进行多次匹配。

作为一种可选的实施方式,在步骤s102,获取对目标对象进行三维激光检测得到的目标激光点云数据之后,该方法还包括:对目标激光点云数据进行采样,得到目标采样结果;从目标采样结果中提取出目标激光点云数据的数据特征。

在该实施例中,在获取对目标对象进行三维激光检测得到的目标激光点云数据之后,可以对该目标激光点云数据进行数据采样,得带目标采样结果,其中,目标激光点云数据相当于原始点云数据。在得到目标采样结果之后,可以进一步从目标采样结果中提取出目标激光点云数据的数据特征,以在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征。

作为一种可选的实施方式,对目标激光点云数据进行采样,得到目标采样结果,包括:通过体素滤波对目标激光点云数据进行采样,得到第一数量的采样数据;在第一数量大于目标数量的情况下,在第一数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为目标采样结果;在第一数量小于目标数量的情况下,从目标激光点云数据中随机选取第二数量的采样数据,将第一数量的采样数据和第二数量的采样数据确定为目标采样结果,其中,第一数量和第二数量之和为目标数量。

在该实施例中,在实现对目标激光点云数据进行采样,得到目标采样结果时,可以使用体素滤波(voxelgridfilter)对目标激光点云数据进行采样,可选地,该实施例的体素滤波使用网格化的方法进行采样,可以在减少点数量(点云数据的数量)的同时保存点云的形状特征。

由于使用体素滤波并还不能直接将目标激光点云数据采样到目标数量的采样数据,比如,采样到4096个点,因而该实施例在通过体素滤波对目标激光点云数据进行采样得到的采样数据的第一数量大于目标数量的情况下,可以在第一数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为目标采样结果,比如,在使用体素滤波采样得到的采样数据的第一数量n大于4096时,将在采样得到的n个采样数据中进行随机采样,得到4096个采样数据,将其确定为目标采样结果;在第一数量小于目标数量的情况下,可以从目标激光点云数据中随机选取出第二数量的采样数据,将第一数量的采样数据和第二数量的采样数据确定为目标采样结果,该第二数量与第一数量之和为目标数量,比如,在使用体素滤波采样得到的采样数据的第一数量n小于4096时,从目标激光点云数据中随机采样,得到第二数量4096-n个采样数据,将其与体素滤波的采样结果第一数量的采样数据进行合并,从而得到4096个采样数据;在第一数量等于目标数量的情况下,可以直接将第一数量的采样数据确定为目标采样结果。

在该实施例中,为了保证目标采样结果可以保持目标激光点云数据的形状信息,需要对体素滤波使用网格化的参数进行调整,使得体素滤波的目标采样结果尽可能地接近目标数量。

作为一种可选的实施方式,从目标采样结果中提取出目标激光点云数据的数据特征,包括:通过神经网络模型从目标采样结果中提取出目标激光点云数据的数据特征,其中,神经网络模型为基于点云的场景识别模型,用于输出目标维度的数据特征。

在该实施例中,在对目标激光点云数据进行采样,得到目标采样结果之后,可以通过预先确定的神经网络模型从目标采样结果中提取出目标激光点云数据的数据特征,该神经网络模型可以为pointnetvlad神经网络模型,使得所提取出的数据特征具有角度不变性,并且在环境发生一定改变的情况下,仍然可以正确重定位。其中,pointnetvlad神经网络模型是一个基于点云的场景识别模型,它允许端到端的训练和引导,从给定的三维点云中提取全局描述,用于输出目标维度的数据特征,比如,输出256维的数据特征。

在该实施例中,由于通过pointnetvlad神经网络模型从目标激光点云数据中提取出的数据特征具有角度不变性,所以即使对象的当前朝向与对应的地图关键帧中的姿态的朝向不同,也可以容易地找到正确的最相似的地图关键帧,在使用过程中可以避免由于对象的姿态不同,而造成找不到正确位置的情况。

下面对该实施例的目标数据库的建立进行介绍。

作为一种可选的实施方式,在步骤s104,目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征之前,该方法还包括:对地图关键帧对应的激光点云数据进行采样,得到采样结果;从采样结果中提取出数据特征;将数据特征和地图关键帧的标识进行关联,得到关联结果,并将关联结果存储至目标数据库中。

在该实施例中,在构建地图的过程中,只处理地图关键帧对应的激光点云数据,该地图关键帧对应的激光点云数据也即关键帧激光数据。地图关键帧可以是根据目标对象的位移或旋转是否大于一定阈值进行选择的,比如,将目标对象的位移或旋转大于一定阈值的帧确定为地图关键帧,这样就可以在保证性能的情况下,减少冗余计算,并且减少资源消耗。该实施例对地图关键帧对应的激光点云数据进行采样,得到采样结果,进而从采样结果中提取出数据特征,将数据特征和地图关键帧的标识进行关联,得到关联结果,比如,将提取到的特征数据feature与地图关键帧id进行绑定,得到{id,feature}组合,进而将其存储至目标数据库中。

在构建地图的过程中,对每个地图关键帧都进行以上操作,即可得到最终的目标数据库。

作为一种可选的实施方式,对地图关键帧对应的激光点云数据进行采样,得到采样结果,包括:通过体素滤波对激光点云数据进行采样,得到第三数量的采样数据;在第三数量大于目标数量的情况下,在第三数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为采样结果;在第三数量小于目标数量的情况下,从目标激光点云数据中随机选取第四数量的采样数据,将第三数量的采样数据和第四数量的采样数据确定为采样结果,其中,第三数量和第四数量之和为目标数量。

在该实施例中,在实现对地图关键帧对应的激光点云数据进行采样,得到采样结果时,可以使用体素滤波对地图关键帧对应的激光点云数据进行采样,可以使用网格化的方法进行采样,这样在减少点数量的同时保存点云的形状特征。

由于使用体素滤波并还不能直接将地图关键帧对应的激光点云数据采样到目标数量个采样数据,因而该实施例在通过体素滤波对地图关键帧对应的激光点云数据进行采样得到的采样数据的第三数量大于目标数量的情况下,可以在第三数量的采样数据中随机选取目标数量的采样数据,并将目标数量的采样数据确定为采样结果,比如,在使用体素滤波采样得到的采样数据的第三数量n大于4096时,将在采样得到的n个采样数据中进行随机采样,得到4096个采样数据,将其确定为采样结果;在第三数量小于目标数量的情况下,可以从地图关键帧对应的激光点云数据中随机选取出第四数量的采样数据,将第三数量的采样数据和第四数量的采样数据确定为采样结果,该第四数量与第三数量之和为目标数量,比如,在使用体素滤波采样得到的采样数据的第三数量n小于4096时,从地图关键帧对应的激光点云数据中随机采样,得到第四数量4096-n个采样数据,将其与体素滤波的采样结果第三数量的采样数据进行合并,从而得到4096个采样数据。

在该实施例中,为了保证采样结果可以保持地图关键帧对应的激光点云数据的形状信息,需要对体素滤波使用网格化的参数进行调整,使得体素滤波的采样结果尽可能地接近目标数量。

作为一种可选的实施方式,从采样结果中提取出数据特征,包括:通过神经网络模型从采样结果中提取出数据特征,其中,神经网络模型为基于点云的场景识别模型,用于输出目标维度的数据特征。

在该实施例中,可以通过预先确定的pointnetvlad神经网络模型从采样结果中提取出数据特征,使得所提取出的数据特征具有佳偶不变性,并且在环境发生一定改变的情况下,仍然可以正确重定位。

作为一种可选的实施方式,步骤s104,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,包括:获取与目标激光点云数据的数据特征的余弦相似度最大的目标数据特征。

在该实施例中,可以使用余弦相似性对目标激光点云数据的数据特征和目标数据库中的数据特征进行比较,获取目标激光点云数据的数据特征与目标数据库中的每个数据特征之间的预先相似度,可以将与目标激光点云数据的数据特征的余弦相似度最大的数据特征确定为目标数据特征,从而找到目标数据库中最相似的数据特征。

作为一种可选的实施方式,步骤s104,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,包括:获取与目标激光点云数据的数据特征相似度最大,且相似度大于目标阈值的目标数据特征。

在该实施例中,在实现获取与目标激光点云数据的数据特征相似度最大的目标数据特征时,如果目标数据库中存在与目标激光点云数据的数据特征相似度最大的数据特征,并且相似度高于目标阈值,则可以将该数据特征确定为目标数据特征。如果相似度不高于目标阈值,则确定此次对目标对象定位失败。

作为一种可选的实施方式,步骤s106,基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息,包括:基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,以对目标对象进行重定位或闭环检测。

在该实施例中,对目标对象进行重定位为在目标对象启动,或者目标对象定位丢失的情况下,需要快速找到目标对象在整个地图上的位置,也即,在没有先验信息的情况下对目标对象进行定位;对目标对象进行闭环检测,为目标对象在构建地图的过程中,检测到当前位置为已构地图中的位置,也即,这个位置在构图过程中曾经出现过,与重定位不同的是,闭环检测带有一定的先验信息,闭环检测的搜索范围通常在当前位置的附近,而重定位的搜索范围则针对整个地图。

由于闭环检测文件与重定位问题相似,而且较之重定位功能具有第一的预测信息,因而该实施例的上述方案不仅适用于对目标对象进行重定位,而且同样可以用在闭环检测中。

下面从用户交互角度对该实施例的对象的定位方法进行介绍,可以由终端的显示设备执行。

图2是根据本发明实施例的另一种对象的定位方法的流程图。如图2所示,该方法可以包括以下步骤:

步骤s202,在目标界面上显示对目标对象进行三维激光检测得到的目标激光点云数据。

在本发明上述步骤s202提供的技术方案中,目标对象为待进行定位的对象,三维激光可以通过三维激光雷达系统产生,通过三维激光雷达系统对目标对象进行三维激光检测,还可以使用三维激光传感器对目标对象进行三维激光检测,从而不需要添加额外地成本。

该实施例对目标对象进行三维激光检测,也即,通过三维激光对目标对象进行检测,得到目标激光点云数据,并采集该目标激光点云数据,在目标界面上显示对目标对象进行三维激光检测得到的目标激光点云数据,该目标激光点云数据也即当前三维激光数据,可以在重定位时,采集一帧当前的三维激光数据。

步骤s204,在目标界面上显示与目标数据特征相关联的目标地图关键帧的标识。

在本发明上述步骤s202提供的技术方案中,目标数据特征为目标数据库中与目标激光点云数据的数据特征相似度最大的数据特征,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联。

该实施例的目标数据库包括每个地图关键帧的数据特征(feature)和与地图关键帧的数据特征相关联的地图关键帧的标识id,可以以{id,feature}组合保存在目标数据库中。该实施例可以从目标激光点云数据中提取出数据特征,然后在目标数据库中,将目标激光点云数据的数据特征与目标数据库中的每个数据特征进行比较,将与目标激光点云数据的数据特征相似度最大的数据特征确定为目标数据特征,确定与该目标数据特征相关联的目标地图关键帧的标识,在目标界面上显示与目标数据特征相关联的目标地图关键帧的标识。

步骤s206,在目标界面上显示目标对象的定位信息。

在本发明上述步骤s206提供的技术方案中,在目标界面上显示对目标对象进行三维激光检测得到的目标激光点云数据之后,在目标界面上显示对目标对象进行定位得到的定位信息,其中,定位信息是基于目标地图关键帧的标识,对目标激光点云数据和构建的地图进行匹配得到的。

在该实施例中,通过查找到的标识找到对应的地图关键帧的定位坐标和姿态,将其作为匹配预测值,将目标激光点云数据与构建的地图进行匹配,获取目标对象的定位信息,可以得到初始化定位在地图上的坐标和姿态,以完成重定位,在目标界面上显示对目标对象进行定位得到的定位信息。

可选地,该实施例可以以目标地图关键帧的位置作为预测位置进行多次目标激光点云数据和地图之间的匹配,在匹配成功后即得到目标对象准确的初始位置。可以在对目标对象定位成功后,将结果设置为初始定位状态,即可进入正常定位状态,在目标界面上显示对目标对象进行定位得到的定位信息。

通过上述步骤s202至步骤s206,在目标界面上显示对目标对象进行三维激光检测得到的目标激光点云数据;在目标界面上显示与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据特征为目标数据库中与目标激光点云数据的数据特征相似度最大的数据特征,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联;在目标界面上显示目标对象的定位信息,其中,定位信息是基于目标地图关键帧的标识,对目标激光点云数据和构建的地图进行匹配得到的。也就是说,该实施例仅需要通过三维激光对目标对象进行检测,在目标界面上显示目标激光点云数据,从而不需要额外增加成本,且只需要获取与目标激光点云数据的数据特征相似度最大的目标数据特征关联的目标地图关键帧的标识,通过该标识对目标激光点云数据和地图进行匹配,以对目标对象进行定位,在目标界面上显示定位信息,从而不需要用户过多操作,简化使用流程,也不需要对环境进行改造和维护,适用于室内户外等场景,从而解决了对对象进行定位的效率低的技术问题,进而达到了提高对对象进行定位的效率的技术效果。

实施例2

下面结合优选的实施例对本发明实施例的方案进行举例说明,具体以目标对象为机器人进行举例介绍。

在相关技术中,可以通过固定点进行初始化来实现,该方法需要每次都将对象放置在一个已知地图坐标的物理位置上,将此坐标作为初始化位置,并开始定位,从而在应用流程上繁琐,操作复杂;相关技术还可以通过在用户指定位置进行初始化来实现,该方法在开始定位前,用户需要根据对象的当前位置,在地图上指出对应的坐标位置,但是该方法对用户的操作熟练程度有一定要求,并且在多层地图的情况下,在用户界面上指定一个三维的位置和方向具有一定难度;关技术还可以使用视觉语义重定位,但是视觉重定位耗时较大,并且角度不变性较弱;相关技术还可以使用全球定位系统(globalpositioningsystem,简称为gps)的定位数据进行重定位,但该方法增加了定位成本;还可以使用无线载波通信技术(ultrawideband,简称为uwb)等定位方式进行重定位,但同样增加了定位成本,并且还需要对环境进行改造和维护,从而存在对对象进行定位的效率低的技术问题。

而在该实施例中,为了实现重定位功能,在构建地图的过程中,可以利用神经网络模型提取地图关键帧对应的激光点云数据的数据特征,构建特征数据库;在重定位时,可以采集一帧当前激光点云数据,使用神经网络提取当前激光点云数据的数据特征,与特征数据库中的数据特征进行比较,找到数据特征与当前激光点云数据的数据特征的相似度最高的地图关键帧,并以此最相似的地图关键帧的位置作为预测位置进行多次激光-地图匹配,在匹配成功后即可以得到机器人准确的初始位置。

下面对该实施例的构建地图的方法进行进一步介绍。

图3是根据本发明实施例的一种构建地图的方法的流程图。如图3所示,该方法可以包括以下步骤:

步骤s301,使用三维激光传感器产生三维激光,对机器人进行检测。

步骤s302,在构建地图构成中,获取关键帧激光点云数据。

在该实施例中,在构建地图的过程中,只处理关键帧激光点云数据,可以是根据判断机器人位移或旋转是否大于一定阈值来进行选择的,这样可以在保证性能的情况下,减少冗余计算,减少资源消耗。

步骤s303,对关键帧激光点云数据进行数据采样。

步骤s304,利用pointnetvlad神经网络模型提取采样数据的数据特征。

步骤s305,保存提取出的数据特征,构建特征数据库。

在该实施例中,在对关键帧激光点云数据进行数据采样时,由于使用pointnetvlad神经网络模型的输入为4096个点云数据,所以需要在采样得到4096个点云数据,将其作为采样数据。

图4是根据本发明实施例的一种对关键帧激光点云数据进行数据采样的方法的流程图。如图4所示,该方法可以包括以下步骤:

步骤s401,使用体素滤波对关键帧激光点云数据进行采样。

在该实施例中,关键帧激光点云数据也即点云数据,为进行采样的原始点云,在使用体素滤波对原始点云进行采样时,体素滤波使用网格化的方法进行采样,这样在减少点数量(点云数据的数量)的同时也可以保存点云的形状特征。

步骤s402,判断采样数据的数量是否为4096个。

由于使用体素滤波还不能直接将采样到4096个采样数据,所以该实施例在体素滤波的基础上再使用随机采样。判断采样数据的数量是否为4096个,如果判断出采样数据的数量为4096个,则可以直接输出,如果判断出采样数据的数量不为4096个,则执行步骤s403。

步骤s403,判断采样数据的数量是否大于4096个。

如果判断出采样数据的数量大于4096个,则执行步骤s404;如果判断出采样数据的数量小于4096个,则执行步骤s405。

步骤s404,对采样得到的采样数据进行随机采样,得到4096个采样数据。

在使用体素滤波采样得到的采样数据的数量n大于4096时,对采样得到的采样数据进行随机采样,得到4096个采样数据。

步骤s405,对原始的关键帧激光点云数据进行随机采样,得到4096-n个采样数据。

当使用体素滤波采样得到的采样数据的数量数量n小于4096时,对原始的关键帧激光点云数据进行随机采样,得到4096-n个采样数据,与体素滤波的采样结果合并,从而得到4096个采样数据。

步骤s406,输出4096个采样数据。

在执行步骤s404和步骤s405之后,输出4096个采样数据。

该实施例为了保证采样数据可以保持原始的关键帧激光点云数据的形状信息,需要对体素滤波使用网格化的参数进行调整,使得体素滤波的采样结果尽可能地接近4096个采样数据。

在输出4096个采样数据后,使用pointnetvlad神经网络模型对4096个采样数据提取数据特征,其中,pointnetvlad神经网络模型是一个基于点云的场景识别模型,其输出为一个256维的数据特征。

在完成数据特征的提取之后,将提取到的特征数据与地图关键帧id绑定,得到{id,feature}组合,保存。

在构建地图过程中,对每个地图关键帧都进行以上操作,从而可以得到特征数据库。

下面对该实施例的对机器人进行重定位的方法进行介绍。

该实施例在开始定位之前,可以先进行重定位,以得到初始定位坐标和姿态,将其作为定位先验信息。

该实施例在进行重定位时,可以采集一帧当前的三维激光点云数据,使用pointnetvlad神经网络模型提取地图关键帧激光点云数据的数据特征。

重定位通过对当前的三维激光点云数据进行数据采样和特征提取,得到当前的三维激光点云数据的数据特征,将其与特征数据库中存储的数据特征进行比较,在特征数据库中查找到与当前的三维激光点云数据的数据特征相似度最高的数据特征对应的关键帧id,然后通过该关键帧id找到对应关键帧的定位坐标和姿态数据,将其作为匹配预测值,将当前的三维激光点云数据与构建的地图进行匹配,得到初始化定位在地图上的坐标和姿态,即完成重定位。

需要说明的是,该实施例对当前的三维激光点云数据进行数据采样和特征提取与构建地图中的数据采样和特征提取的方法相同。

该实施例可以使用余弦相似性将当前的三维激光点云数据的数据特征和特征数据库中的数据特征进行比较,找到特征数据库中与当前的三维激光点云数据的数据特征最相似的数据特征,如果相似度高于预设阈值则进行下一步,否则此次重定位失败。

该实施可以采用icp匹配当前的三维激光点云数据与地图进行匹配,可以利用上一步找到的与当前的三维激光点云数据的数据特征最相似的数据特征对应的关键帧id,进而根据关键帧id找到对应关键帧的地图坐标和姿态数据,将其作为匹配初始化值进行匹配。由于通过pointnetvlad神经网络模型所提取的数据特征具有角度不变性,所以即使机器人的当前朝向与对应关键帧中姿态的朝向不同,也可以容易地找到正确的最相似关键帧,从而在使用过程中可以避免由于机器人姿态的不同,而造成找不到正确位置的情况。

但是,在进行icp匹配时,姿态数据将不可使用,在姿态预测与真实值相差较大的情况下,icp匹配容易失败。为此该实施例使用多次预测匹配的方法进行匹配。

图5是根据本发明实施例的一种多次预测匹配的方法的流程图。如图5所示,该方法可以包括以下步骤:

步骤s501,确定目标次数m=2*pi/r。

r为每次icp匹配偏航角预测值增加的量。

步骤s502,判断i>=m是否成立。

如果判断出i>=m成立,执行步骤s507;否则,执行步骤s503。

步骤s503,当前偏航角yaw=i*r+yaw_kf。

yaw_kf为对应地图关键帧的偏航角。

步骤s504,基于yaw=i*r+yaw_kf对当前的三维激光点云数据与地图的点云数据进行icp匹配。

步骤s505,判断对当前的三维激光点云数据与地图的点云数据进行icp匹配是否成功。

如果判断出对当前的三维激光点云数据与地图的点云数据进行icp匹配成功,则执行步骤s506,否则,执行步骤s502。

步骤s506,确定对机器人重定位成功。

步骤s507,确定对机器人重定位失败。

在该实施例中,在每次进行icp匹配后,可以通过判断icp是否收敛,匹配分数是否小于阈值,来判断当前的三维激光点云数据与地图是否匹配成功。如果在多次匹配仍然不能成功匹配(i>=m成立),则确定此次重定位失败。如果此时机器人的物理位置在地图范围内,则可以只需要将机器人进行移动,并重新开始重定位,即可获得更高的重定位成功率。

由于该实施例的机器人可以很容易的从imu获得当前的俯仰角和滚转角,所以只需要改变偏航角,就可以预测进行多次匹配。

该实施例在重定位成功之后,将结果设置为初始定位状态,即可进入正常定位状态。

需要说明的是,该实施例可以应用于轮式移动机器人、足式机器人、自动驾驶中的三维激光定位中定位初始化功能,闭环检测功能。

该实施例仅需要通过三维激光对目标对象进行检测,可以只使用3d激光传感器,得到目标激光点云数据,从而不需要额外增加成本;只需要获取与当前的激光点云数据的数据特征相似度最大的数据特征关联的地图关键帧的标识,通过该标识对当前的激光点云数据和地图进行匹配,以对机器人进行定位,从而不需要用户过多操作,简化使用流程,也不需要对环境进行改造和维护,适用于室内户外等场景,使用神经网络模型来提取激光点云数据特征,不仅具有角度不变性,并且在环境发生一定改变的情况下,仍然可以正确重定位;由于闭环检测文件与重定位问题相似,而且较之重定位功能具有第一的预测信息,本发明同样可以用在闭环检测中从而解决了对对象进行定位的效率低的技术问题,进而达到了提高对对象进行定位的效率的技术效果。

实施例3

本发明实施例还提供了一种对象的定位装置。需要说明的是,该实施例的对象的定位装置可以用于执行本发明实施例图1所示的对象的定位方法。

图6是根据本发明实施例的一种对象的定位装置的示意图。如图6所示,该对象的定位装置60可以包括:第一获取单元61、第二获取单元62和匹配单元63。

第一获取单元61,用于获取对目标对象进行三维激光检测得到的目标激光点云数据。

第二获取单元62,用于在目标数据库中,获取与目标激光点云数据的数据特征相似度最大的目标数据特征,并确定与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联。

匹配单元63,用于基于目标地图关键帧的标识,对目标激光点云数据和地图进行匹配,获取目标对象的定位信息。

本发明实施例还提供了另一种对象的定位装置。需要说明的是,该实施例的对象的定位装置可以用于执行本发明实施例图2所示的对象的定位方法。

图7是根据本发明实施例的另一种对象的定位装置的示意图。如图7所示,该对象的定位装置70可以包括:第一显示单元71、第二显示单元72和第三显示单元73。

第一显示单元71,用于在目标界面上显示对目标对象进行三维激光检测得到的目标激光点云数据。

第二显示单元72,用于在目标界面上显示与目标数据特征相关联的目标地图关键帧的标识,其中,目标数据特征为目标数据库中与目标激光点云数据的数据特征相似度最大的数据特征,目标数据库包括多个地图关键帧的数据特征和多个地图关键帧的标识,各地图关键帧在构建地图的过程中得到,各地图关键帧的标识与其数据特征相关联。

第三显示单元73,用于在目标界面上显示目标对象的定位信息,其中,定位信息是基于目标地图关键帧的标识,对目标激光点云数据和构建的地图进行匹配得到的。

实施例4

本发明实施例还提供了一种存储介质。该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例中的对象的定位方法。

实施例5

本发明实施例还提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例中的对象的定位方法。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

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

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