定位方法和装置与流程

文档序号:11208737阅读:671来源:国知局
定位方法和装置与流程

本发明涉及定位和导航领域,尤其涉及一种定位方法和装置。



背景技术:

当前,vslam(visualsimultaneouslocalizationandmapping,视觉即时定位与地图构建)已经广泛应用在机器人导航中,其可以帮助机器人完成定位和导航任务,但是由于vslam是基于图像处理的,容易受到光照和视角变换的影响。比如,vslam在白天构建了某一场景某一时刻的地图,那么在晚上对于同样的场景,由于光照发生了变化,此时采集的vslam地图无法在白天构建的地图中找到匹配图像,因此无法实现定位和导航;另外,vslam在采集图像时受到传感器的视角影响,构建地图的视角是有指向性的,如果定位时视角与保存视角存在较大的差别,同样无法完成定位和导航。



技术实现要素:

本发明的实施例提供一种定位方法和装置,主要用于解决vslam受视角和光照影响无法定位和导航的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供了一种定位方法,包括:

创建多个视觉即时定位与地图构建vslam进程,并分别为各个vslam进程加载对应的地图数据库;

调用各个vslam进程基于实时图像进行定位;

根据各个定位成功的vslam进程所得到的定位结果进行定位。

第二方面,提供了一种定位装置,包括:

创建单元,用于创建多个视觉即时定位与地图构建vslam进程,并分别为各个vslam进程加载对应的地图数据库;

定位单元,用于调用各个vslam进程基于实时图像进行定位;

所述定位单元,还用于根据各个定位成功的vslam进程所得到的定位结果进行定位。

第三方面,提供了一种计算机存储介质,用于储存为定位装置所用的计算机软件指令,其包含执行第一方面所述的定位方法所设计的程序代码。

第四方面,提供了一种计算机程序产品,可直接加载到计算机的内部存储器中,并含有软件代码,所述计算机程序经由计算机载入并执行后能够实现第一方面所述的定位方法。

第五方面,提供了一种电子设备,包括:存储器、通信接口和处理器,所述存储器用于存储计算机执行代码,所述处理器用于执行所述计算机执行代码控制执行第一方面所述定位方法,所述通信接口用于所述定位设备与外部设备的数据传输。。

本发明实施例提供的定位方法和装置,通过对应不同拍摄时间段或拍摄视角的地图数据库与实时图像进行匹配,然后根据匹配结果进行定位,解决了vslam受视角和光照影响无法定位和导航的问题。

附图说明

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

图1为本发明实施例提供的视角的示意图;

图2为本发明实施例提供的定位的示意图;

图3为本发明实施例提供的一种定位方法的流程示意图;

图4为本发明实施例提供的一种定位方法的流程示意图;

图5为本发明实施例提供的一种定位装置的结构示意图;

图6为本发明实施例提供的另一种定位装置的结构示意图;

图7为本发明实施例提供的又一种定位装置的结构示意图。

具体实施方式

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

本发明实施例提供的定位方法和装置可以用于机器人、自动驾驶汽车等装置在室内外的视觉定位和导航。定位装置可以位于云端作为定位服务器,或者位于现场作为终端(例如导盲头盔)。

参照图1中所示,本发明实施例所述的视角是指摄像头光轴方向与前进方向的夹角。参照图2中所示,本发明实施例所述的定位是指确定在直角坐标系x-y平面中的位置(x,y)。

本发明实施例提供了一种定位方法,应用于上述定位装置,参照图3中所示,包括:

s101、创建多个vslam进程,并分别为各个vslam进程加载对应的地图数据库。

地图数据库为针对同一路线事先采集的不同时段、不同视角的地图数据库。具体的,当起始地、目的地和行进路线确定之后,在某一时段,拍摄车辆保持视觉传感器模块的视角不变,从起始地沿行进路线向目的地出发,行进过程中间隔一定时间拍摄一次图像同时记录位置坐标(相对位置或绝对位置),到达目的地后即形成了该行进路线的一组地图数据库,其中,每个地图数据库均包括图像、拍摄图像时的视角、时间和位置坐标。

为了平衡计算量和匹配准确度,在拍摄时间间隔上可以如表1中所示以一小时为间隔分别采集0-23时的地图数据库,这样可以得到不同光照条件下的地图数据库;另外,在视角上可以如表1中所示以45度为间隔采集360度视角的地图数据库。进一步优选的,可以直接采用360度全景相机进行拍摄来得到如表2中所示的地图数据库,每个地图数据库包含360度全景图像,这样既节省拍摄工作量,同时也节省定位时的计算量。

表1

表2

所创建的vslam进程数目可以小于等于地图数据库的组数。例如,如果有16组地图数据库,可以创建1-16个进程来进行上述匹配运算,每个进程取一组地图数据库与实时图像进行定位,当一个进程定位完成后从剩余的几组地图数据库中取一组再与实时图像进行定位,直至所有n组地图数据库加载完成。

各个vslam进程可以采用相同的定位规则,针对不同的地图数据库进行定位;或者可以采用不同定位规则,针对同一地图数据库进行定位。

在一些实施方式中,在初始化时,可以创建多个vslam进程,当一个vslam进程定位失败时,则关闭该vslam进程,以节省计算资源;当所创建的各个vslam进程均关闭后,重新创建多个vslam进程。

s102、调用各个vslam进程基于实时图像进行定位。

具体的,可以通过视觉传感器模块(例如摄像头)采集当前帧的实时图像。

在各个进程根据实时图像从加载的地图数据库中得到定位结果时,为了进一步简化运算,不必将二者所有像素点一一进行匹配,可以分别从二者中提取图像特征,然后将二者的图像特征进行匹配,这样可以大大节省计算量。更进一步地,由于地图数据库是保持不变的,可以提前将地图数据库保存为图像特征,这样每次进行定位时,可以仅对实时图像提取图像特征,可以进一步节省计算量。

在一些实施方式中,如果一个vslam进程定位成功,则该进程可以通知其他未定位成功vslam进程缩小在对应地图数据库中的搜索范围,使得缩小后的搜索范围包括定位成功的vslam进程所输出的定位结果所指示的位置。示例性的,假设第一进程处理第一组地图数据库,第二进程处理第二组地图数据库,第一进程处理在定位过程中首先搜索到第一组地图数据库的第100个地图数据库定位成功,则通知第二进程(尚未定位成功),在第二组地图数据库的第100个地图数据库附近最有可能定位成功,例如可以指示第二进程直接跳过第二组地图数据库中前89个地图数据库,从第90个地图数据库开始搜索,从而达到节省计算工作量的目的。

在一些实施方式中,在每一个vslam进程定位失败时,说明该进程所加载的本组地图数据库可能由于光照、视角、拍摄间隔等原因无法对实时图像进行定位,则本组地图数据库不再参与后续实时图像的定位过程,因此关闭该vslam进程,直至所有vslam进程均关闭后,重新按照步骤s101创建多个vslam进程,以期待下个拍摄间隔的实时图像能够与地图数据库定位成功,以达到进一步节省计算工作量的目的。具体的,可以通过对每组地图数据库置标志位的方式来指示每组地图数据库是否参与后续实时图像的定位过程。

s103、定位装置根据n组地图数据库的定位结果进行定位。

具体的,可以将定位成功各个vslam进程所得定位结果所指示位置的坐标值求平均值,作为当前实时图像的位置结果。然后根据定位的位置坐标,结合路径规划结果给出导航方向。

可选的,参照图4中所示,在步骤s101之前,还可以包括:

s104、获取全景图像摄像装置在多个角度上拍摄的图像,将每一个角度上拍摄的图像对应的配置到一个vslam进程所使用的地图数据库中。

每个地图数据库可以包含360度全景图像,这样既节省拍摄工作量,同时也节省定位时的计算量。

本发明实施例提供的定位方法,通过对应不同拍摄时间段或拍摄视角的地图数据库与实时图像进行定位,然后根据定位结果进行定位,解决了vslam受视角和光照影响无法定位和导航的问题。

本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对定位装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的定位装置的一种可能的结构示意图,定位装置11包括:创建单元1101、定位单元1102、获取单元1103。创建单元1101用于支持定位装置执行图3中的过程s101、图4中的过程s101;定位单元1102用于支持定位装置执行图3中的过程s102、s103,图4中的过程s102、s103;获取单元1103用于支持定位装置执行图4中的过程s104。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用集成的单元的情况下,图6示出了上述实施例中所涉及的电子设备的一种可能的结构示意图。电子设备11包括:处理模块1112和通信模块1113。处理模块1112用于对定位装置的动作进行控制管理,例如,处理模块1112用于支持定位装置执行图3中的过程s101-s103,图4中的过程s101-s104,和/或用于本文所描述的技术的其它过程,通信模块1113用于支持电子设备11与其他外部实体的通信。电子设备11还可以包括存储模块1111,用于存储定位装置的程序代码和数据。

其中,处理模块1112可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。存储模块1111可以是存储器。

当处理模块1112为处理器,通信模块1113为通信接口,存储模块1111为存储器时,本发明实施例所涉及的定位装置可以为图7所示的定位装置。

参阅图7所示,该电子设备11包括:处理器1122、通信接口1123、存储器1121以及总线1124。其中,处理器1122、通信接口1123以及存储器1121通过总线1124相互连接;总线1124可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在具体实施时,这里的电子设备可以为消费类的电子设备,也可以是指提供相应功能的服务器等。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。本发明实施例还提供一种存储介质,该存储介质可以包括存储器1121,用于储存为定位装置所用的计算机软件指令,其包含执行定位方法所设计的程序代码。具体的,软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于定位装置中。当然,处理器和存储介质也可以作为分立组件存在于定位装置中。

本发明实施例还提供一种计算机程序,该计算机程序可直接加载到存储器1121中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述的人机混合决策方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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