掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及定位导航技术领域,具体涉及一种视觉定位方法、装置、机器人及存储介质。

背景技术

目前,使用视觉SLAM(simultaneous localization and mapping)进行室内定位的研究越来越多,因为视觉信息丰富,且成本较低。但是实际应用却比较少,这主要受限于室内环境下的光照变化会显著影响视觉SLAM的定位精度和鲁棒性。

当前视觉SLAM定位依靠自身建立的地图来定位,但是一张地图只包含建图时的光照情况,不包含其他时间、其他天气情况下的光照条件,因此在其他时间其他天气条件下使用时,定位效果就会变差。同时室内场景的光照条件变化是比较频繁的,比如同一天的上午、下午和晚上光照条件的差别就很大,同时要加上天气的变化,如下雨、多云时。因此,当前的视觉SLAM定位技术只能在和建图时光照条件相似的情况下进行定位,在光照条件变化时无法正确定位。

发明内容

基于此,有必要针对上述问题,提出一种在光照条件变化的情况下仍可以准确定位的视觉定位方法、装置、机器人及存储介质。

一种视觉定位方法,包括:

通过设置于机器人上的光感元件获取当前光照条件;

根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;

采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;

基于所述目标地图进行视觉定位。

一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

通过设置于机器人上的光感元件获取当前光照条件;

根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;

采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;

基于所述目标地图进行视觉定位。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

通过设置于机器人上的光感元件获取当前光照条件;

根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;

采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;

基于所述目标地图进行视觉定位。

上述视觉定位方法、装置、机器人及存储介质,根据当前光照条件在地图库中查找与其匹配的候选地图集,然后从候选地图集中选出与图像匹配的目标地图,然后基于该目标地图进行视觉定位。该方法能够根据当前光照条件选择匹配的目标地图进行视觉定位,使得即使在光照条件变化时也能够准确地进行视觉定位。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1是一个实施例中视觉定位方法的流程图;

图2是一个实施例中地图库的示意图;

图3是一个实施例中根据时间和天气筛选出候选地图集的示意图;

图4是一个实施例中确定与图像匹配的地图的方法流程图;

图5是一个实施例中从候选地图集中选出与图像集匹配的地图的示意图;

图6是一个实施例中使用多线程并行计算的示意图;

图7是一个实施例中视觉定位装置的结构框图;

图8是一个实施例中机器人的内部结构图。

具体实施方式

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

如图1所示,提出了一种视觉定位方法,该视觉定位方法可以应用于智能终端,本实施例以应用于机器人举例说明。该视觉定位方法具体包括以下步骤:

步骤102,通过设置于机器人上的光感元件获取当前光照条件。

其中,由于视觉定位受光照影响比较大,所以需要实时检测光照条件,优选的,所述光感元件为相机。当前光照条件是指当前的光照条件。光照条件是受时间和天气状况影响的,比如,一天之中,早上、中午、晚上的光照条件是不同的。不同天气,比如,晴天、多云、阴天、下雨等的光照条件也是不同的。在一个实施例中,可以用当前光照条件对应的当前时间和当前天气状况来表示。

步骤104,根据当前光照条件在地图库中查找与当前光照条件匹配的候选地图集,地图库中存储了在不同光照条件下的地图。

其中,地图库中预先存储了在不同光照条件下的地图,为了能够准确地进行视觉定位,需要在地图库中选出与当前光照条件匹配的地图,从而便于后续的定位。首先是根据当前光照条件查找到匹配的候选地图集。当前光照条件包括:当前时间和当前天气状况,根据当前时间和当前天气状况从地图库中筛选出候选地图集。地图库中的地图是根据时间和天气状况来存储的,如图2所示,为一个实施例中,地图库的示意图。首先,根据天气状况划分为多个区间,然后针对每个区间又根据时间划分为了多个子区间。

步骤106,采集当前光照条件下的图像,将图像与候选地图集中的地图进行匹配,确定与图像匹配的地图,将匹配到的地图作为当前光照条件下的目标地图。

其中,在当前光照条件下进行图像采集。将采集到的图像与候选地图集中的地图进行匹配,将候选地图集中与采集到的图像最为相似的地图作为匹配的目标地图。图像匹配的方式可以采用计算图像之间相似度的方法来实现,比如,采用DBoW2方法来计算。

步骤108,基于目标地图进行视觉定位。

其中,在确定了目标地图后,基于目标地图采用SLAM定位技术进行视觉定位。该视觉定位方法解决了室内环境光照变化影响视觉SLAM定位精度及鲁棒性的问题,使视觉SLAM定位技术可以在室内环境下长期使用,不会因为光照,天气等原因而定位失败,适用于需要实时定位的各类室内作业机器人。

上述视觉定位方法,根据当前光照条件在地图库中查找与其匹配的候选地图集,然后从候选地图集中选出与图像匹配的目标地图,然后基于该目标地图进行视觉定位。该方法能够根据当前光照条件选择匹配的目标地图进行视觉定位,使得即使在光照条件变化时也能够准确地进行视觉定位。

在一个实施例中,所述当前光照条件包括:当前时间和当前天气状况;所述根据所述当前光照条件在地图库中查找与所述光照条件匹配的候选地图集,包括:根据当前时间从所述地图库中选择出与当前时间的时间差在预设范围内的第一地图集;根据所述当前天气状况从所述第一候选地图集中选出与当前天气状况匹配的第二地图集,将所述第二地图集作为所述候选地图集。

其中,根据当前时间,将其与地图库中所有地图的时间进行比较,选出符合时间差dt(比如,半小时)的所有地图,作为第一地图集。获取当前天气状况,根据天气状况从第一地图集中选择与当前天气状况相似的所有地图,得到第二地图集,第二地图集即为候选地图集。如图3所示,为一个实施例中,根据时间和天气筛选出候选地图集的示意图。

在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图,包括:计算所述候选地图集中每一张候选地图与所述图像的相似度;根据所述相似度在所述候选地图集中选出与所述图像匹配的目标地图。

其中,通过计算相似度来进行图像与地图之间的匹配。计算候选地图集中每一张候选地图与图像的相似度,然后将相似度最大的候选地图作为目标地图。相似度的计算方式有多种,比如,DBow2算法、SIFT算法、ORB算法等,采用现有的相似度计算方式即可计算得到,这里不再赘述。

如图4所示,在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图,包括:

步骤106A,通过移动摄像头采集一段时间的图像,得到图像集。

其中所述移动摄像头设置于移动机器人上,优选的,所述移动摄像头即为所述获取当前光照条件的相机,当然,也可将二者分别设置。,在当前光照条件下进行图像采集,为了能够匹配到更加准确的地图,这里是采集一段时间的图像,得到多张图像,构成了一个图像集。

步骤106B,将图像集中的每一张图像与候选地图集中的候选地图进行匹配,得到每一张图像与候选地图之间的匹配度。

其中,需要将图像集中的每一张图像与候选地图集中的候选地图进行匹配,这样就可以得到每一张图像与候选地图之间的匹配度。

步骤106C,根据图像集中每一张图像与候选地图之间的匹配度计算得到图像集与候选地图之间的匹配度。

其中,在得到了每一张图像与候选地图之间的匹配度后,就可以计算得到图像集与候选地图之间的匹配度。在一个实施例中,可以计算图像集中图像与候选地图的平均匹配度,将平均匹配度作为图像集与候选地图之间的匹配度。

步骤106D,根据图像集与每一候选地图之间的匹配度确定与图像集匹配的目标地图。

其中,根据图像集与每一候选地图之间的匹配度的大小进行排序,将匹配度最大的候选地图作为目标地图。通过准确选择出与当前光照条件作为匹配的目标地图,能够提高后续基于目标地图进行视觉定位的准确度和稳定性。

在一个实施例中,所述根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度,包括:将所述图像集中所述每一张图像与候选地图之间的匹配度进行累加得到所述图像集与所述候选地图之间的匹配度。

其中,将图像集中每一张图像与候选地图之间的匹配度进行累加,将累加得到值作为图像集与候选地图之间的匹配度。在一个实施例中,可以采用以下公式来表示:

在一个实施例中,所述计算图像集中每一张图像与所述候选地图之间的匹配度,包括:采用多线程分别并行计算候选地图与所述图像集中的每一张图像之间的匹配度。

其中,考虑掉计算量的问题,在计算图像集与候选地图之间的匹配度时,采用多线程模式。如图6所示,为使用多线程并行计算的示意图,展示了使用8个线程并行计算,线程i计算图像集与候选地图i,i+8,i+16等的匹配度得分。

在一个实施例中,所述方法还包括:实时监测光照条件,当监测到当前光照条件发生变化时,则进入根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集的步骤。

其中,随着运行时间的增长,光照是会缓慢变化的,如从跟上午运行到下午,如运行一段时间后,开始下雨了。这些会改变光照条件,使得之前选择的地图已经不再适用,需要重新选择地图。即监测到当前光照条件发生变化后,重新根据当前光照条件在地图库中查找与当前光照条件匹配的候选地图集,继而匹配出目标地图。

在一个实施例中,在确定了目标地图后,定位算法选择开源的ORB-SLAM2。首先,针对相机采集到的每一帧新图像提取ORB特征和描述子,然后根据是否提供有相机的速度,选择跟踪上一个关键帧,还是使用速度模型进行跟踪。如果有提供相机的速度,则使用速度模型进行跟踪,如果没有提供,则选择上一关键帧进行跟踪。最后统计跟踪到的特征点的数量,若数量过少,则启动重新定位模块,否则继续处理下一帧图像,直到完成视觉定位。

如图7所示,在一个实施例中,提出了一种视觉定位装置,包括:

获取模块702,用于通过设置于机器人上的光感元件获取当前光照条件;

查找模块704,用于根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;

匹配模块706,用于采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;

定位模块708,用于基于所述目标地图进行视觉定位。

在一个实施例中,所述当前光照条件包括:当前时间和当前天气状况;

查找模块704还用于根据当前时间从所述地图库中选择出与当前时间的时间差在预设范围内的第一地图集,根据所述当前天气状况从所述第一候选地图集中选出与当前天气状况匹配的第二地图集,将所述第二地图集作为所述候选地图集。

在一个实施例中,所述匹配模块还用于计算所述候选地图集中每一张候选地图与所述图像的相似度;根据所述相似度在所述候选地图集中选出与所述图像匹配的目标地图。

在一个实施例中,所述匹配模块还用于通过移动摄像头采集一段时间的图像,得到图像集;将所述图像集中的每一张图像与所述候选地图集中的候选地图进行匹配,得到每一张图像与候选地图之间的匹配度;根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度;根据所述图像集与每一候选地图之间的匹配度确定与所述图像集匹配的目标地图。

在一个实施例中,匹配模块还用于将所述图像集中述每一张图像与候选地图之间的匹配度进行累加得到所述图像集与所述候选地图之间的匹配度。

在一个实施例中,匹配模块还用于采用多线程分别并行计算候选地图与所述图像集中的每一张图像之间的匹配度。

在一个实施例中,上述装置还包括:地图更换模块,用于实时监测光照条件,当监测到当前光照条件发生变化时,则通知查找模块根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集。

图8示出了一个实施例中机器人的内部结构图。如图8所示,该机器人包括通过系统总线连接的处理器、存储器、光感元件和网络接口。其中,存储器包括非易失性存储介质和内存储器。该机器人的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述的视觉定位方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述的视觉定位方法。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的机器人的限定,具体的机器人可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提出了一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取当前光照条件;根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;基于所述目标地图进行视觉定位。

在一个实施例中,所述当前光照条件包括:当前时间和当前天气状况;所述根据所述当前光照条件在地图库中查找与所述光照条件匹配的候选地图集,包括:根据当前时间从所述地图库中选择出与当前时间的时间差在预设范围内的第一地图集;根据所述当前天气状况从所述第一候选地图集中选出与当前天气状况匹配的第二地图集,将所述第二地图集作为所述候选地图集。

在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图,包括:计算所述候选地图集中每一张候选地图与所述图像的相似度;根据所述相似度在所述候选地图集中选出与所述图像匹配的目标地图。

在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,得到与所述图像匹配的地图,包括:移动摄像头采集一段时间的图像,得到图像集;将所述图像集中的每一张图像与所述候选地图集中的候选地图进行匹配,得到每一张图像与候选地图之间的匹配度;根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度;根据所述图像集与每一候选地图之间的匹配度确定与所述图像集匹配的目标地图。

在一个实施例中,所述根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度,包括:将所述图像集中述每一张图像与候选地图之间的匹配度进行累加得到所述图像集与所述候选地图之间的匹配度。

在一个实施例中,所述计算图像集中每一张图像与所述候选地图之间的匹配度,包括:采用多线程分别并行计算候选地图与所述图像集中的每一张图像之间的匹配度。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于执行以下步骤:实时监测光照条件,当监测到当前光照条件发生变化时,则进入根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集的步骤。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:获取当前光照条件;根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集,所述地图库中存储了在不同光照条件下的地图;采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图;基于所述目标地图进行视觉定位。

在一个实施例中,所述当前光照条件包括:当前时间和当前天气状况;所述根据所述当前光照条件在地图库中查找与所述光照条件匹配的候选地图集,包括:根据当前时间从所述地图库中选择出与当前时间的时间差在预设范围内的第一地图集;根据所述当前天气状况从所述第一候选地图集中选出与当前天气状况匹配的第二地图集,将所述第二地图集作为所述候选地图集。

在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,确定与所述图像匹配的地图,将匹配到的所述地图作为所述当前光照条件下的目标地图,包括:计算所述候选地图集中每一张候选地图与所述图像的相似度;根据所述相似度在所述候选地图集中选出与所述图像匹配的目标地图。

在一个实施例中,所述采集当前光照条件下的图像,将所述图像与所述候选地图集中的地图进行匹配,得到与所述图像匹配的地图,包括:移动摄像头采集一段时间的图像,得到图像集;将所述图像集中的每一张图像与所述候选地图集中的候选地图进行匹配,得到每一张图像与候选地图之间的匹配度;根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度;根据所述图像集与每一候选地图之间的匹配度确定与所述图像集匹配的目标地图。

在一个实施例中,所述根据所述图像集中每一张图像与候选地图之间的匹配度计算得到所述图像集与所述候选地图之间的匹配度,包括:将所述图像集中述每一张图像与候选地图之间的匹配度进行累加得到所述图像集与所述候选地图之间的匹配度。

在一个实施例中,所述计算图像集中每一张图像与所述候选地图之间的匹配度,包括:采用多线程分别并行计算候选地图与所述图像集中的每一张图像之间的匹配度。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于执行以下步骤:实时监测光照条件,当监测到当前光照条件发生变化时,则进入根据所述当前光照条件在地图库中查找与所述当前光照条件匹配的候选地图集的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 视觉定位方法、装置、系统、移动机器人及存储介质
  • 视觉定位恢复方法、装置、机器人和可读存储介质
技术分类

06120112456242