基于地图的SLAM快速初始化方法、装置和电子设备与流程

文档序号:23657453发布日期:2021-01-15 13:54阅读:89来源:国知局
基于地图的SLAM快速初始化方法、装置和电子设备与流程

本发明实施例涉及即时定位与地图构建(simultaneouslocalizationandmapping,slam)领域,具体涉及基于地图的slam快速初始化方法、装置和电子设备。



背景技术:

随着计算机视觉技术的发展,slam技术被广泛应用,如ar,自动驾驶以及机器人或者无人机的定位导航等领域。

slam中关键的问题包括传感器依据环境信息准确的估计自身状态。而slam系统中尤为关键的一步即是进行slam系统初始化。对于视觉slam来说,初始化工作即是利用环境信息建立相机初始位姿的旋转与平移位姿信息,初始化过程往往耗费较大资源,并且由于slam系统采用随机初始化策略,每次初始化坐标系都不同。如何进行减少slam系统初始化资源消耗是一种亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供基于地图的slam快速初始化方法、装置和电子设备,用以解决现有slam系统初始化速度慢、消耗资源多的问题。

为实现上述目的,本发明实施例主要提供如下技术方案:

第一方面,本发明实施例提供了一种基于地图的slam快速初始化方法,包括:

对第一视频进行帧间位姿估计,提取所述第一视频的关键点、关键帧、地图点和位姿信息,根据所述第一视频的关键点、关键帧、地图点和位姿信息,以及所述第一视频生成第一地图,并加载所述第一地图;

根据所述第一地图对第二视频进行地点识别回环检测、匹配重定位和位姿优化得到所述第二视频与所述第一地图的关键帧之间的联系信息、所述第二视频的视频帧与所述第一地图的地图帧之间的相似度关系和所述第二视频的优化位姿信息;

根据所述第二视频与所述第一地图的关键帧之间的联系信息、所述第二视频的关键帧与所述第一地图的地图帧之间的相似度关系和所述第二视频的优化位姿信息完成初始化;

其中,所述第一地图的地图帧为包括所述第一地图的地图点的视频帧。

根据本发明的一个实施例,所述对第一视频进行帧间位姿估计,提取所述第一视频的关键点、关键帧、地图点和位姿关系,根据所述第一视频的关键点、关键帧、地图点和位姿信息,以及所述第一视频生成第一地图,包括:

获取所述第一视频的第一帧图像的特征点,并获取所述第一视频的相邻两帧图像之间的特征点的描述子;

根据所述第一视频的相邻两帧图像之间的特征点的描述子,采用三角化的方式将所述第一视频的二维点重投影为三维的地图点;

将所述第一视频中具有共视关系的特征点作为路标点,根据所述路标点得到所述位姿信息;

将所述路标点作为关键点,将所述路标点所在的视频帧作为关键帧,根据所述第一视频、所述关键点、所述关键帧、所述地图点和所述位姿信息生成所述第一地图。

根据本发明的一个实施例,所述根据所述第一地图对第二视频进行地点识别回环检测、匹配重定位和位姿优化得到所述第二视频与所述第一地图的关键帧之间的联系信息、所述第二视频的关键帧与所述第一地图的地图帧之间的相似度关系和所述第二地图的优化位姿信息,包括:

提取所述第二视频的图像特征与所述第一地图进行特征点匹配,匹配成功后得到所述第二视频与所述第一地图的关键帧之间的联系信息;

对所述第二视频进行地点识别与回环检测,得到所述第二视频的视频帧与所述第一地图的地图帧之间的相似度关系;

计算所述第二视频的视频帧的词袋模型bow,然后对所述第二视频进行当前地图的匹配重定位;

根据所述匹配重定位的结果对所述第二视频进行优化估计得到所述第二视频的初始优化位姿信息。

根据本发明的一个实施例,在得到所述第二视频的初始优化位姿信息之后,还包括:

根据第二视频的初始优化位姿信息对所述第二视频的每个关键帧进行重投影误差优化,得到所述第二视频的最终优化位姿信息。

第二方面,本发明实施例还提供一种基于地图的slam快速初始化装置,包括:

获取模块,用于获取第一视频和第二视频;

控制处理模块,用于对所述第一视频进行帧间位姿估计,提取所述第一视频的关键点、关键帧、地图点和位姿信息,根据所述第一视频的关键点、关键帧、地图点和位姿信息,以及所述第一视频生成第一地图,并加载所述第一地图;所述控制处理模块还用于根据所述第一地图对第二视频进行地点识别回环检测、匹配重定位和位姿优化得到所述第二视频与所述第一地图的关键帧之间的联系信息、所述第二视频的视频帧与所述第一地图的地图帧之间的相似度关系和所述第二视频的优化位姿信息;所述控制处理模块还用于根据所述第二视频与所述第一地图的关键帧之间的联系信息、所述第二视频的关键帧与所述第一地图的地图帧之间的相似度关系和所述第二视频的优化位姿信息完成初始化;其中,所述第一地图的地图帧为包括所述第一地图的地图点的视频帧。

根据本发明的一个实施例,所述控制处理模块具体用于提取所述第一视频的第一帧图像的特征点,并提取所述第一视频的相邻两帧图像之间的特征点的描述子;根据所述第一视频的相邻两帧图像之间的特征点的描述子,采用三角化的方式将所述第一视频的二维点重投影为三维的地图点;将所述第一视频中具有共视关系的特征点作为路标点,根据所述路标点得到所述位姿信息;将所述路标点作为关键点,将所述路标点所在的视频帧作为关键帧,根据所述第一视频、所述关键点、所述关键帧、所述地图点和所述位姿信息生成所述第一地图。

根据本发明的一个实施例,所述控制处理模块还用于提取所述第二视频的图像特征与所述第一地图进行特征点匹配,匹配成功后得到所述第二视频与所述第一地图的关键帧之间的联系信息;对所述第二视频进行地点识别与回环检测,得到所述第二视频的视频帧与所述第一地图的地图帧之间的相似度关系;计算所述第二视频的视频帧的bow,然后对所述第二视频进行当前地图的匹配重定位;根据所述匹配重定位的结果对所述第二视频进行优化估计得到所述第二视频的初始优化位姿信息。

根据本发明的一个实施例,所述控制处理模块还用于在得到所述第二视频的初始优化位姿信息之后,根据第二视频的初始优化位姿信息对所述第二视频的每个关键帧进行重投影误差优化,得到所述第二视频的最终优化位姿信息。

第三方面,本发明实施例还提供一种电子设备,包括:至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如第一方面所述的基于地图的slam快速初始化方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,包含一个或多个程序指令,所述一个或多个程序指令用于被执行如第一方面所述的基于地图的slam快速初始化方法。

本发明实施例提供的技术方案至少具有如下优点:

本发明实施例提供的基于地图的slam快速初始化方法、装置和电子设备,建立一个slam系统地图,进行地图加载与复用,可以实现slam的快速初始化,减少slam系统初始化资源消耗。

附图说明

图1为本发明实施例的基于地图的slam快速初始化方法的流程图。

图2为本发明实施例的基于地图的slam快速初始化装置的结构框图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

在本发明的描述中,需要理解的是,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

图1为本发明实施例的基于地图的slam快速初始化方法的流程图。如图1所示,本发明实施例的基于地图的slam快速初始化方法,包括:

s1:对第一视频进行帧间位姿估计,提取第一视频的关键点、关键帧、地图点和位姿信息,根据第一视频的关键点、关键帧、地图点和位姿信息,以及第一视频生成第一地图,并加载第一地图。其中,第一视频为用户输入的,用于进行处理建立一个slam系统地图,以便进行地图的加载和复用。

在本发明的一个实施例中,步骤s1包括:

s1-0:获取第一视频的摄像头参数与orb字典数据,进行初步初始化。

orb是orientedfastandrotatedbrief的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。其中,fast和brief分别是特征检测算法和向量创建算法。orb首先会从图像中查找特殊区域,称为关键点。关键点即图像中突出的小区域,比如角点,比如它们具有像素值急剧的从浅色变为深色的特征。然后orb会为每个关键点计算相应的特征向量。orb算法创建的特征向量只包含1和0,称为二元特征向量。1和0的顺序会根据特定关键点和其周围的像素区域而变化。该向量表示关键点周围的强度模式,因此多个特征向量可以用来识别更大的区域,甚至图像中的特定对象。orb的特点是速度超快,而且在一定程度上不受噪点和图像变换的影响,例如旋转和缩放变换等。

s1-1:获取第一视频的第一帧图像的特征点,并获取第一视频的相邻两帧图像之间的特征点的描述子。

s1-2:根据第一视频的相邻两帧图像之间的特征点的描述子,采用三角化的方式将第一视频的二维点重投影为三维的地图点。其中,特征丰富的点为地图点。

s1-3:将第一视频中具有共视关系的特征点作为路标点,对路标点利用pnp算法进行位姿估计,得到位姿信息。其中,对第一视频的每两帧相邻图像均会计算位姿,最后汇总得到上述位姿信息。相机的位姿包括旋转r和平移t,也就是所谓的相机外参。r和t可以组成外参矩阵t=[r|t],通过t可以将点p从世界坐标系变换到相机坐标系:p'=tp。

s1-4:将路标点作为关键点,将路标点所在的视频帧作为关键帧,根据第一视频的关键点、关键帧、地图点和位姿信息,以及第一视频生成第一地图。

s1-5:加载第一地图。读取第一地图中存储的关键点,关键帧,地图点,相机位姿,以及各部分之间的数据关联。

s2:根据第一地图对第二视频进行地点识别回环检测、匹配重定位和位姿优化得到第二视频与第一地图的关键帧之间的联系信息、第二视频的视频帧与第一地图的地图帧之间的相似度关系、第二视频的优化位姿信息。

在本发明的一个实施例中,步骤s2包括:

s2-1:提取第二视频的图像特征与第一地图进行特征点匹配,匹配成功后得到第二视频与第一地图的关键帧之间的联系信息。其中,第二视频的某个视频帧中包含了第一地图的某个视频帧中的关键点和关键帧。

s2-2:对第二视频进行地点识别与回环检测,得到第二视频的视频帧与第一地图的地图帧之间的相似度关系,从而判断第二视频的当前帧是否有与第一地图的地图帧中相似的场景。其中,第一地图的地图帧为包括第一地图的地图点的视频帧。

s2-3:计算第二视频的视频帧的词袋模型bow,然后对第二视频进行当前地图的匹配重定位。首先计算当前帧的bow,然后挑选关键帧(按照步骤s1的策略挑选关键帧),逐个比较当前帧和关键帧搜索bow进行匹配。

s2-4:根据匹配重定位的结果对第二视频用pnp算法进行优化估计得到第二视频的初始优化位姿信息。

s2-5:根据第二视频的初始优化位姿信息对第二视频的每个关键帧进行重投影误差优化(ba),得到第二视频的最终优化位姿信息。

s3:根据第二视频与第一地图的关键帧之间的联系信息、第二视频的关键帧与第一地图的地图帧之间的相似度关系和第二视频的优化位姿信息完成初始化。

本发明实施例提供的基于地图的slam快速初始化方法,建立一个slam系统地图,进行地图加载与复用,可以实现slam的快速初始化,减少slam系统初始化资源消耗。

图2为本发明实施例的基于地图的slam快速初始化装置的结构框图。如图2所示,本发明实施例的基于地图的slam快速初始化装置,包括:获取模块100和控制处理模块200。

其中,获取模块100用于获取第一视频和第二视频。

控制处理模块200用于对第一视频进行帧间位姿估计,提取第一视频的关键点、关键帧、地图点和位姿信息,根据第一视频的关键点、关键帧、地图点和位姿信息,以及第一视频生成第一地图,并加载第一地图。控制处理模块200还用于根据第一地图对第二视频进行地点识别回环检测、匹配重定位和位姿优化得到第二视频与第一地图的关键帧之间的联系信息、第二视频的视频帧与第一地图的地图帧之间的相似度关系和第二视频的优化位姿信息。控制处理模块200还用于根据第二视频与第一地图的关键帧之间的联系信息、第二视频的关键帧与第一地图的地图帧之间的相似度关系和第二视频的优化位姿信息完成初始化。其中,第一地图的地图帧为包括第一地图的地图点的视频帧。

在本发明的一个实施例中,控制处理模块200具体用于提取第一视频的第一帧图像的特征点,并提取第一视频的相邻两帧图像之间的特征点的描述子;根据第一视频的相邻两帧图像之间的特征点的描述子,采用三角化的方式将第一视频的二维点重投影为三维的地图点;将第一视频中具有共视关系的特征点作为路标点,根据路标点得到位姿信息;将路标点作为关键点,将路标点所在的视频帧作为关键帧,根据第一视频、关键点、关键帧、地图点和位姿信息生成第一地图。

在本发明的一个实施例中,控制处理模块200还用于提取第二视频的图像特征与第一地图进行特征点匹配,匹配成功后得到第二视频与第一地图的关键帧之间的联系信息;对第二视频进行地点识别与回环检测,得到第二视频的视频帧与第一地图的地图帧之间的相似度关系;计算第二视频的视频帧的bow,然后对第二视频进行当前地图的匹配重定位;根据匹配重定位的结果对第二视频进行优化估计得到第二视频的初始优化位姿信息。

在本发明的一个实施例中,控制处理模块200还用于在得到第二视频的初始优化位姿信息之后,根据第二视频的初始优化位姿信息对第二视频的每个关键帧进行重投影误差优化,得到第二视频的最终优化位姿信息。

需要说明的是,本发明实施例的基于地图的slam快速初始化装置的具体实施方式与本发明实施例的基于地图的slam快速初始化方法的具体实施方式类似,具体参见基于地图的slam快速初始化方法部分的描述,为了减少冗余,不做赘述。

另外,本发明实施例的基于地图的slam快速初始化装置的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。

本发明实施例还提供一种电子设备,包括:至少一个处理器和至少一个存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如第一方面所述的基于地图的slam快速初始化方法。

本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的基于地图的slam快速初始化方法。

在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。

存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。

其中,非易失性存储器可以是只读存储器(read-onlymemory,简称rom)、可编程只读存储器(programmablerom,简称prom)、可擦除可编程只读存储器(erasableprom,简称eprom)、电可擦除可编程只读存储器(electricallyeprom,简称eeprom)或闪存。

易失性存储器可以是随机存取存储器(randomaccessmemory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,简称sram)、动态随机存取存储器(dynamicram,简称dram)、同步动态随机存取存储器(synchronousdram,简称sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlinkdram,简称sldram)和直接内存总线随机存取存储器(directrambusram,简称drram)。

本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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