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

地图构建方法、装置、SLAM系统以及存储介质

文献发布时间:2023-06-19 10:06:57


地图构建方法、装置、SLAM系统以及存储介质

技术领域

本发明涉及地图构建领域,特别涉及一种地图构建方法、装置、SLAM系统以及存储介质。

背景技术

SLAM系统用于实现实时定位或地图构建,由于其小型化,经济性等特点,在AR/MR眼镜、四旋翼无人机等轻量化平台上得到广泛应用。SLAM系统包括单目相机、立体视觉相机或深度彩色相机,SLAM系统通过单目相机获取目标区域不同时刻的多个目标图像,对多个目标图像分别进行跟踪匹配,并完成局部建图处理。

但是,采用现有的方法利用单目相机的目标图像进行建图时,建图效率较低。

发明内容

本发明的主要目的是提供一种地图构建方法、装置、SLAM系统以及存储介质,旨在解决现有技术中采用现有的方法利用单目相机的目标图像进行建图时,建图效率较低的技术问题。

为实现上述目的,本发明提出的一种地图构建方法,应用于包括N个相机的SLAM系统,所述方法包括以下步骤:

通过所述N个相机获取目标地区的目标图像,N为大于等于2的正整数;

根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧;

判断所述融合帧是否满足第一预设条件;

在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列;

利用所述关键帧队列,构建目标区域的地图。

可选的,所述融合帧包括满足预设匹配条件的匹配特征点和不满足所述预设匹配条件的单目特征点;所述判断所述融合帧是否满足第一预设条件的步骤之前,所述方法还包括:

将所述融合帧中与上一时刻融合帧中的匹配特征点满足所述预设匹配条件的单目特征点确定为新增匹配特征点;

根据所述新增匹配特征点和所述融合帧,获得结果融合帧;

所述判断所述融合帧是否满足第一预设条件的步骤包括:

判断所述结果融合帧是否满足第一预设条件;

所述在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列的步骤包括:

在所述结果融合帧满足所述第一预设条件时,将所述结果融合帧添加到关键帧队列。

可选的,所述第一预设条件包括一个必要约束和三选一约束;其中,

所述必要约束为为述结果融合帧的匹配特征点总数量不小于第一预设阈值;

所述三选一约束包括所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第一预设帧数,或,

所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第二预设帧数且所述关键帧队列中的满足第二预设条件的结果融合帧数量为0,或,

所述关键帧队列中的满足所述第二预设条件的结果融合帧数量不超过第二预设阈值;

所述第一预设帧数大于所述第二预设帧数。

可选的,所述判断所述结果融合帧是否为关键帧的步骤之前,所述方法还包括:

在所述N个相机中确定出基准相机,并将所述基准相机对应的坐标系确定为世界坐标系;

获取所述N个相机的内参数;

获取所述结果融合帧中的全部匹配特征点的世界坐标和像素坐标;

利用匀速运动模型假设法,获得所述结果融合帧与初始时刻结果融合帧的估计位姿;

根据所述世界坐标系、所述内参数、所述世界坐标和所述像素坐标,通过公式一,对所述估计位姿进行迭代优化,获得所述结果融合帧的结果位姿;

所述判断所述结果融合帧是否满足第一预设条件的步骤包括:

判断所述具有结果位姿的结果融合帧是否满足第一预设条件;

所述公式一为:

其中,i为所述N个相机中的第i相机,j为所述结果融合帧包括的所述全部匹配特征点中的第j特征点,k为所述结果融合帧对应的第k时刻,

可选的,所述利用所述关键帧队列,构建目标区域的地图的步骤包括:

根据所述关键帧队列中的所述结果融合帧,获得局部关键帧集合;

通过所述局部关键帧集合,获得局部匹配特征点集合;

根据所述局部关键帧集合和所述局部匹配特征点集合,通过公式二,对所述结果融合帧的结果位姿和所述结果融合帧包括的匹配特征点的世界坐标进行更新,获得更新后的结果位姿和更新后的世界坐标;

基于具有所述更新后的结果位姿和所述更新后的世界坐标的结果融合帧,获得选定融合帧;

利用选定融合帧,构建目标区域的地图;

所述公式二为:

其中,ρ为核函数,Q

可选的,所述利用所述选定融合帧,构建目标区域的地图的步骤之后,所述方法还包括:

在所述选定融合帧之前时刻的全部历史选定融合帧中筛选候选关键帧;

对所述选定融合帧和所述候选关键帧进行SIM3变换,得到相似变换矩阵;

利用所述相似变换矩阵,对所述选定融合帧和所述历史选定融合帧进行调整,获得调整后的选定融合帧和调整后的历史选定融合帧;

对所述调整后的选定融合帧的结果位姿、所述调整后的选定融合帧包括的匹配特征点的世界坐标、所述调整后的历史选定融合帧包括的结果位姿和所述调整后的历史选定融合帧包括的匹配特征点的世界坐标进行修正,获得修正融合帧位姿、修正融合帧世界坐标、修正历史融合帧位姿和修正历史融合帧世界坐标;

利用所述修正融合帧位姿、所述修正融合帧世界坐标、所述修正历史融合帧位姿和所述修正历史融合帧世界坐标,对所述目标区域的地图进行修正,获得目标区域的结果地图。

可选的,所述在所述选定融合帧之前时刻的全部历史选定融合帧中筛选候选关键帧的步骤包括:

计算所述选定融合帧与所述选定融合帧之前时刻对应的全部历史选定融合帧的词袋分;

在所述全部历史选定融合帧中筛选满足第三预设条件的初选融合帧;

在所述初选融合帧中筛选词袋分超过预设词袋分阈值的选定关键帧;

计算所述选定关键帧与所述选定融合帧共有单词数的最大值;

在所述选定关键帧中筛选共有单词数大于预设单词数阈值的候选关键帧。

此外,为实现上述目的,本发明还提出了一种地图构建装置,应用于包括N个相机的SLAM系统,所述装置包括:

获取模块,用于通过所述N个相机获取目标地区的目标图像,N为大于等于2的正整数;

获得模块,用于根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧;

判断模块,用于判断所述融合帧是否满足第一预设条件;

添加模块,用于在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列;

构建模块,用于利用所述关键帧队列,构建目标区域的地图。

此外,为实现上述目的,本发明还提出了一种SLAM系统,所述SLAM系统包括:N个相机、存储器、处理器及存储在所述存储器上并在所述处理器上运行地图构建程序,所述地图构建程序被所述处理器执行时实现如上述任一项所述的地图构建方法的步骤;其中,N为大于等于2的正整数。

此外,为实现上述目的,本发明还提出了一种存储介质,所述存储介质上存储有地图构建程序,所述地图构建程序被处理器执行时实现如上述任一项所述的地图构建方法的步骤。

本发明技术方案通过采用一种地图构建方法,应用于包括N个相机的SLAM系统,所述方法包括以下步骤:通过所述N个相机获取目标地区的目标图像,N为大于等于2的正整数;根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧;判断所述融合帧是否满足第一预设条件;在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列;利用所述关键帧队列,构建目标区域的地图。由于,构建目标区域地图时,将满足第一预设条件的融合帧添加到关键帧队列,并利用关键帧队列,构建目标区域的地图,并不是利用全部的融合帧构建目标区域的地图,利用本发明构建目标区域的地图时,数据处理量较少,建图效率较高。

附图说明

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

图1为本发明实施例方案涉及的硬件运行环境的SLAM系统结构示意图;

图2为本发明地图构建方法第一实施例的流程示意图;

图3为本发明哈希表示意图;

图4为三角化法的示意图;

图5为融合帧的结构示意图;

图6为本发明地图构建装置第一实施例的结构框图;

图7为本发明方法与其他地图构建方法的准确度对比图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

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

参照图1,为本发明实施例方案涉及的硬件运行环境的SLAM系统结构示意图。

通常,SLAM系统包括:相机307、至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的融合帧获得程序,所述融合帧获得程序配置为实现如前所述的融合帧获得方法的步骤。

处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关融合帧获得方法操作,使得融合帧获得方法模型可以自主训练学习,提高效率和准确度。

存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的融合帧获得方法。

相机307包括N个相机,N个相机之间可以具有旋转角度和平移距离,N个相机,N个相机用于获取目标区域的目标图像。通常,同一时刻N个相机同时获取目标地区的目标图像,由于多相机之间具有旋转角度和距离,获得的多个目标图像不同。其中,N个相机可以是高清相机,也可以是普通相机,N个相机中的相机可以是单目相机、立体视觉相机以及深度彩色相机。

在一些实施例中,SLAM系统还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。

通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对融合帧获得设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有融合帧获得程序,所述融合帧获得程序被处理器执行时实现如上文所述的融合帧获得方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个SLAM系统上执行,或者在位于一个地点的多个SLAM系统上执行,又或者,在分布在多个地点且通过通信网络互连的多个SLAM系统上执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

基于上述硬件结构,提出本发明地图构建方法的实施例。

参照图2,图2为本发明地图构建方法第一实施例的流程图;所述方法应用于SLAM系统,所述方法包括以下步骤:

步骤S11:通过所述N个相机获取目标地区的目标图像,N为大于等于2的正整数。

需要说明的时,目标区域可以是指SLAM系统运行时,所要经过的区域,目标区域包括的特征信息均可被SLAM系统的多相机拍摄到。目标区域可以是未知的区域,也可以是已知的区域,本发明不做限制。

目标图像是N个相机不同时刻获取到的目标图像,同一时刻,一个相机对应一个目标图像,同一时刻的全部目标图像为一组目标图像;例如,N个相机为4个相机,不同时刻为3个不同时刻,N个相机获取到的目标图像为12个目标图像,同一时刻的4个目标图像为一组目标图像。

具体应用中,为了保证目标区域构图的完整,较优的,以不同时刻为一个时间段内的连续的时刻为最终选择,用户也可以根据自己的需求进行其他设定,本法发明不做限制。

步骤S12:根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧。

利用同一时刻的一组目标图像,获得一个融合帧,例如,N个相机为4个相机,不同时刻为3个不同时刻,N个相机获取到的目标图像为12个目标图像,同一时刻的4个目标图像为一组目标图像,利用3个不同时刻的中属于同一时刻的4个目标图像分别获得3个融合帧。

可以理解的是,获得融合帧的方法可以任何一种基于目标图像的特征点的方法,本法买那个不做限制,较优的,利用下述方法案获得融合帧。

第一步:对同一时刻的N个目标图像进行特征提取,获得特征点集。

需要说明的是,图像处理中,特征点指,在图像处理中,图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点,特征可以分为颜色特征和纹理特征。其中,颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质,一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献;由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征;另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也检索出来;颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响,进一步借助归一化还可不受图像尺度变化的影响,基缺点是没有表达出颜色空间分布的特征信息。纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。

具体应用中,特征点可以是通过orb、surf、或sift特征提取算法中的任一算法提取的特征点,也可以是通过其他方式提取的特征点,本发明不做限制。

其中,特征点包括该特征点的相机ID、描述子和像素坐标(2D坐标);其中,描述子可以是描述该特征点周围像素信息的一个向量,该向量可以是二进制数。相机ID是指特征点在目标图像中的编号,由于,同一个特征点可能在同一时刻的N个目标图像中均被提取到,所以同一时刻同一个特征点可同时对应N个相机ID;描述子是指特征点在目标图像中的描述子,同一时刻同一特征点在不同目标图像中的描述子可能不同,像素坐标是指特征点在目标图像中的像素坐标,同一时刻同一特征点在不同目标图像中像素坐标可能不同。

可以理解的是,为方便理解,下文中的目标点均是指特征点对应的客观存在于目标区域的实物点。

例如,SLAM系统具有4个相机a相机、b相机、c相机和d相机,同一时刻,4个相机拍摄目标区域的4个目标图像,对4个目标图像进行特征提取,均提取到目标区域对应的特征点A,在a相机的目标图像中,特征点相机ID为12,特征点A描述子为1010100,像素坐标为(13,11),在b相机的目标图像中,特征点相机ID为22,特征点A描述子为1010110,像素坐标为(23,11),在c相机的目标图像中,特征点相机ID为32,特征点A描述子为1010111,像素坐标为(33,11),在d相机的目标图像中,特征点相机ID为32,特征点A描述子为1010101,像素坐标为(43,11),此时,A特征点对应的描述子有4个,相机ID也有4个,像素坐标也有4个。

根据提取的特征点,获得包括特征点和特征点的特征信息的特征点集,特征点的特征信息即为所述相机ID、像素坐标和描述子。

第二步:基于所述第一步获得的特征点集,获得哈希表。

具体的,所述第二步包括:在所述特征点集中确定出满足预设匹配条件的匹配特征点;将所述特征点集中确定出不满足所述预设匹配条件的单目特征点;基于所述匹配特征点和所述单目特征点,获得哈希表。

需要说明的是,当多个特征点的描述子相近时,该多个特征点满足预设匹配条件,描述子的相近程度本发明不做限制,用户可以根据自己的需求进行设定,但是为保证获得的匹配特征点准确率高,预设匹配条件的描述子相近程度设置较高为好;例如,描述子为7位二进制数,预设匹配条件为描述子前五位相同,其中,下文所述的预设匹配条件与此处预设匹配条件相同。

进一步的,第二步中所述基于所述匹配特征点和所述单目特征点,获得哈希表的步骤包括:获取所述所述匹配特征点在所述N个目标图像中的第一描述子、第一像素坐标和第一相机ID;获取所述单目特征点在所述N个目标图像中的第二描述子、第二像素坐标和第二相机ID;基于所述匹配特征点、所述单目特征点、所述第一描述子、所述第一像素坐标、所述第一相机ID、所述第二描述子、所述第二像素坐标和所述第二相机ID,获得哈希表。

需要说明的是,在提取到特征点后,同一时刻不同相机对应的目标图像提取到的特征点作为一个集合,即,N个相机对应N个集合。将N个集合中的全部特征点进行匹配,将满足预设匹配条件的特征点合为一个匹配特征点,该匹配特征点对应多个相机ID、多个描述子和多个像素坐标作为该匹配特征点的特征信息,其中,并不是每个相机的目标图像均能提取到匹配特征点,只是其中至少两个相机的目标图像能提取到匹配特征点,所以此处的多个是指不大于N的值;将N个集合中不满足预设匹配条件的特征点作为单目特征点,单目特征点的特征信息即为该特征点对应的一个相机ID、一个描述子和一个像素坐标。

例如,SLAM系统具有4个相机a相机、b相机、c相机和d相机,同一时刻,4个相机拍摄目标区域的4个目标图像,对4个目标图像进行特征提取,均提取到目标区域的目标点对应的特征点A,在a相机的目标图像中,特征点A相机ID为12,描述子为1010100,像素坐标为(13,11),在b相机的目标图像中,特征点A相机ID为22,描述子为1010110,像素坐标为(23,11),在c相机的目标图像中,特征点A相机ID为32,描述子为1010111,像素坐标为(33,11),在d相机的目标图像中,特征点A相机ID为32,描述子为1010101,像素坐标为(43,11),此时,A特征点为匹配特征点,对应的描述子有4个,相机ID也有4个,像素坐标也有4个,匹配特征点A的特征信息包括四个相机ID——12、22、32和42,4个描述子——1010100、1010110、1010111和1010101,4个像素坐标——(13,11)、(23,11)、(33,11)和(43,11)。

参照图3,图3为本发明哈希表示意图,将所有的匹配特征点和单目特征点分别赋值为0~(M-1),即匹配特征点和单目特征点的和为M个,以赋值为哈希表的键值id(key),一个匹配特征点或一个单目特征点对应一个键值,将匹配特征点和单目特征点的特征信息作为哈希表的值(value)。其中,SLAM系统包括N个相机,所以,一个键值在哈希表中的值包括N个不同特征信息,即一个目标点在N个相机的N个目标图像中分别对应特征点的一个特征信息,哈希表的值(value)为相机ID,描述子和像素坐标是以子特征信息的模式附于对应的相机ID后面;其中,哈希表的值(value)可以是被附于描述子和像素坐标的相机ID,也可以是描述子、像素坐标和相机ID的组合后获得的信息,本发明不做限制。

可以理解的是,一个键值(即,一个目标点对应的一个特征点,该特征点可以是单目特征点,也可是匹配特征点)的第一个值即为第一个相机的目标图像提取到该特征点时,对应的相机ID,可以通过值的位置确定该值对应的相机;另外,当特征点不能在某个目标图像中被提取到时,该特征点在该目标图像对应的相机中的相机ID赋值为-1,且相机ID不被附于描述子和像素坐标,其中,相机ID赋值为-1时,即表述特征点在该相机的目标图像中未被提取到,赋值还可以为其他形式,例如-2,本发明不局限于-1。

在图3中,键值104对应的特征点的特征信息为N个,从左到右分别为,在1号相机的目标图像中并未被提取到······在相机i的目标图像中被提取到,对应的相机ID为201,在相机N的目标图像中被提取到,对应的相机ID为3。

可以理解的是,本发明提供的哈希表的示意是一种较优的选择,还可以根据本发明的思路确定其他类型的哈希表,此处不做过多赘述。

第三步:基于所述第二步获得的哈希表,获得地图点集。

具体的,所述第三步包括:基于所述哈希表,获得所述匹配特征点对应的选定像素坐标;基于所述匹配特征点的选定像素坐标,获得所述匹配特征点的选定相机坐标;基于所述匹配特征点的选定相机坐标,获得所述匹配特征点的深度信息;基于所述匹配特征点的深度信息,获得所述匹配特征点的世界坐标;基于所述匹配特征点的世界坐标和所述匹配特征点,获得所述地图点集。

需要说明的是,参照上述哈希表的结构,通过哈希表键值,即特征点的赋值,找到键值对应的匹配特征点的特征信息,以及确定特征信息所属的相机,作为选定相机,选定相机所属的相机坐标系为选定相机坐标系;可以理解的是,当一个键值P在哈希表中的某一个值Q为-1时,键值P对应的该值Q所属的相机不是选定相机;匹配特征点在选定相机的目标图像中的像素坐标即为选定像素坐标,利用选定像素坐标获得对应的归一化的选定相机坐标。并基于所述匹配特征点的选定相机坐标,获得所述匹配特征点的深度信息;基于所述匹配特征点的深度信息,获得所述匹配特征点的世界坐标;基于所述匹配特征点的世界坐标和所述匹配特征点,获得所述地图点集。

其中,深度信息是指匹配特征点在选定相机所属的相机坐标系下的深度信息,可以理解的是,只需要一个选定相机坐标和对应的一个深度信息即可获得对应的匹配特征点的世界坐标;即,对于全部匹配特征点,获得每一个匹配特征点的一个深度信息即可,不需要获取该匹配特征点全部的选定像素坐标系的深度信息。

例如,相机的个数为4个,特征点A在4个相机中3个相机的目标图像中被提取到,即A特征点为匹配特征点,在获得的哈希表中,匹配特征点A的键值为15,对应的值有4个,其中一个值是-1,即,-1值所属的相机的目标图像中未提取到匹配特征点A;则,其他3个值所属的相机为选定相机,匹配特征点A在选定相机对应的像素坐标为选定像素坐标,选定像素坐标对应的相机坐标为选定相机坐标。其中,3个选定相机坐标为H,J,L,再利用3个相机坐标获得世界坐标时,只需要利用3个选定相机坐标中获得任意一个选定相机坐标(例如L)的深度信息(l),利用l和L即可获得A特征点的世界坐标。

另外,通过公式三和选定像素坐标,获得对应的选定相机坐标。

所述公式三为:

其中,u为选定像素坐标中的横坐标,v为选定像素坐标中的纵坐标,

进一步的,所述基于所述匹配特征点的选定相机坐标,获得所述匹配特征点的深度信息的步骤包括:在所述匹配特征点的选定相机坐标中确定出两个结果相机坐标;根据所述两个结果相机坐标,通过三角化法以及最小二乘法获得所述匹配特征点的深度信息。

可以理解的是,匹配特征点对应的特征信息至少有两个,即在图3所示的哈希表中,匹配特征点对应的不为-1的值至少为两个;匹配特征点的数量较多时,即,匹配特征点对应的键值在哈希表中的不为-1的值较多时,确定其中的任意两个不为-1的值对应的特征信息为结果特征信息,并利用结果特征信息中的像素坐标获得的相机坐标作为结果相机坐标,匹配特征点的结果相机坐标所属的相机为结果相机。

需要说明的是,三角化法的公式如下,即,公式四:

s

其中,X

参照图4,图4为三角化法的示意图,P为SLAM系统目标图像中的一个特征点对应的原始位置图,即,特征点在世界坐标中的实际位置,I

具体应用中,利用公式四和最小乘二法,获得两个结果相机坐标中任一相机坐标的深度信息,该深度信息对应的一个结果相机坐标为目标相机坐标,例如,利用公式二中的s

进一步的,所述基于所述匹配特征点的深度信息,获得所述匹配特征点的世界坐标的步骤包括:基于所述匹配特征点的深度信息、与所述深度信息对应的目标相机坐标、所述目标相机坐标对应的目标相机坐标系与世界坐标系的旋转矩阵以及所述目标相机坐标系与世界坐标系的平移向量,获得所述匹配特征点的世界坐标。

可以理解的是,对于每一个匹配特征点只需要求出一个深度信息即可,根据该深度信息和深度信息对应的目标相机坐标,获得该特征点对应的原始相机坐标。其中,基于目标相机坐标获得的原始相机所属的相机坐标系为目标相机坐标系,例如,X

具体应用中,可以以SLAM系统N个相机中最左侧的相机为一号相机,且利用一号相机初始时刻的坐标系为世界坐标系,也可以以其它方式确定世界坐标系,本发明不做限制。

在利用上述哈希表,获得匹配特征点的世界坐标时,以哈希表的键值为地图点集的地图点元素,以键值对应的匹配特征点的世界坐标为键值的世界坐标,键值对应的单目特征点对应的世界坐标赋值为0,根据所述键值和所述世界坐标,获得地图点集,可以理解的是,键值的数量为M,则地图点集包括的地图点的数量也为M,其中,单目特征点对应的地图点的世界坐标为0,匹配特征点对应的地图点的世界坐标不为0,且有意义,其中地图点定义为具有世界坐标的匹配特征点或单目特征点。

步骤S15:基于所述第二步获得的哈希表,获得描述子集。

进一步的,步骤S15包括:基于所述哈希表,获得所述匹配特征点对应的第一选定描述子和所述单目特征点对应的第二选定描述子;在所述第一选定描述子中确定出所述匹配特征点首次被提取到时的第一结果描述子;在所述第二选定描述子中确定出所述单目特征点首次被提取到时的第二结果描述子;根据所述匹配特征点、所述单目特征点、所述第一结果描述子和所述第二结果描述子,获得所述描述子集。

需要说明的是,哈希表中的每个特征点的键值对应的多个值,每个值均包括不同相机下的特征点的特征信息(描述子、相机ID和像素坐标),其中,对于匹配特征点,键值对应多个特征信息,单目特征点的键值对应一个特征信息;在匹配特征点中,将有效特征信息(即值不为-1相机ID对应的特征信息)确定为选定特征信息,并在选定特征信息中将该匹配特征点第一次被提取到时对应的目标图像中的描述子确定为第一结果描述子;在单目特征点中,将唯一一个描述子确定为第二结果描述子,可以理解的是,该描述子必然是该特征点首次被提取对应的描述子。

以哈希表中的键值为描述子集的元素单元,以对应的第一结果描述子或第二结果描述子作为键值的选定描述子,根据所述键值、所述第一结果描述子和所述第二结果描述子获得描述子集,可以理解的是,键值的数量为M,则选定描述子的数量也为M,其中,M个键值对应的匹配特征点和单目特征点总和为M。

步骤S16:基于所述第二步获得的哈希表、所述第三步获得的地图点集和所述第四步获得的描述子集,获得融合帧。

参照图4,图4为融合帧的结构示意图,其中,该融合帧是基于某一时刻N个相机的目标图像获得的,相机对应的框(即目标图像)形状(代表目标图像的角度和位置)不同,其中位姿是指角度和位移量不同,虚拟的融合帧即为所述融合帧,包括地图点集、哈希表以及描述子集,其中匹配特征点和单目特征点的总和为M,对应的地图点集地图点的数量为M,描述子集中描述子的数量也为M;地图点集源于地图点,示意的,地图点为5个地图点——P1、P2、P3、P4和P5,地图点源于特征点,示意的,特征点包括9个点,该9个点中存在匹配特征点和单目特征点。

当获取到不同时刻的融合帧时,将所述融合帧中与上一时刻融合帧中的匹配特征点满足所述预设匹配条件的单目特征点确定为新增匹配特征点;利用所述新增匹配特征点对所述融合帧进行特征点更新,获得结果融合帧,所述结果融合帧的全部匹配特征点为所述融合帧的匹配特征点和所述新增匹配特征点之和。其中,预设匹配条件参照上述预设匹配条件的描述。

例如,对于第k时刻,融合帧包括匹配特征点350个,单目特征点250个,第(k-1)时刻匹配特征点330个,单目特征点270个,利用第k时刻的250个匹配特征点与第(k-1)时刻的330个匹配特征点进行匹配,其中有30个点匹配,则,新增匹配特征点为30个,第k时刻的结果融合帧包括380个匹配特征点。

步骤S13:判断所述融合帧是否满足第一预设条件。

需要说明的是,所述第一预设条件包括一个必要约束和三选一约束;其中,所述必要约束为为述结果融合帧的匹配特征点总数量不小于第一预设阈值;所述三选一约束包括所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第一预设帧数,或,所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第二预设帧数且所述关键帧队列中的满足第二预设条件的结果融合帧数量为0,或,所述关键帧队列中的满足所述第二预设条件的结果融合帧数量不超过第二预设阈值;所述第一预设帧数大于所述第二预设帧数。

可以理解的是,第一预设条件包含的必要条件为所述结果融合帧的匹配特征点总数量不小于第一预设阈值,第一预设条件的三选一条件为所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第一预设帧数,或,所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第二预设帧数且所述关键帧队列中的满足第二预设条件的结果融合帧数量为0,或,所述关键帧队列中的满足第一预设条件的结果融合帧数量不超过第二预设阈值中的一个。其中,第一预设预阈值和第二预设阈值均是用户根据自己需求设置的阈值,本发明不做限制,第二预设阈值数量较优选择为3;第一预设帧数为相邻的满足第一预设条件的结果融合帧之间的融合帧数量最大值,第二预设帧数为相邻的满足第一预设条件的结果融合帧之间的融合帧数量最小值,最大值和最小值用户可以根据自己需求进行设定;第二预设条件可以是指关键帧队列中未被用于构图的处于排队的融合关键帧。

具体的,当所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第一预设帧数时,将所述结果融合帧确定为满足第一预设条件,避免结果融合帧之间的间隔太远,信息数量丢失,同时避免结果融合帧之间的间隔太近,信息重叠较多;同时所述结果融合帧与之前一个满足所述第一预设条件的结果融合帧的之间的结果融合帧数量超过第二预设帧数且所述关键帧队列中的满足第二预设条件的结果融合帧数量为0时,当前关键帧队列空闲,可以将结果融合帧作为满足第一预设条件的结果融合帧,避免结果融合帧之间间隔太短,信息过度重合。

进一步的,步骤S13之前所述方法还包括:在所述N个相机中确定出基准相机,并将所述基准相机对应的坐标系确定为世界坐标系;获取所述N个相机的内参数;获取所述结果融合帧中的全部匹配特征点的世界坐标和像素坐标;利用匀速运动模型假设法,获得所述结果融合帧与初始时刻结果融合帧的估计位姿;根据所述世界坐标系、所述内参数、所述世界坐标和所述像素坐标,通过公式一,对所述估计位姿进行迭代优化,获得所述结果融合帧的结果位姿。所述公式一为:

其中,i为所述N个相机中的第i相机,j为所述结果融合帧包括的匹配特征点中的第j特征点,k为所述结果融合帧对应的第k时刻,

相应的,步骤S13包括:判断所述具有结果位姿的结果融合帧是否满足第一预设条件。

需要说明的是,本发明的基准相机可以是N个相机中最左侧的相机,也可以是为他位置的相机,本发明不做限制,其中,基准相机初始时刻所属的相机坐标系为世界坐标系。

同时,基于匀速运动模型法,将所述结果融合帧对应的前两个时刻结果融合帧的位姿变化乘以所述结果融合帧上一时刻结果融合帧的位姿,获得所述结果融合帧的估计位姿。

步骤S14:在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列。

进一步的,步骤S14包括:在所述结果融合帧满足所述第一预设条件时,将所述结果融合帧添加到关键帧队列。

需要说明的是,关键帧队列用于存储满足第一预设条件的结果融合帧。由于构建目标区域的地图时,数据处理较多,当获得满足第一预设条件的结果融合帧时,满足第一预设条件的结果融合帧不能马上被用于构建目标区域的地图,需要按照顺序将满足第一预设条件的结果融合帧用于构建目标区域的地图,需要将新获得的满足第一预设条件的结果融合帧添加到关键帧队列,以利用关键帧队列中的结果融合帧构建目标区域的地图。

通常,关键帧队列中总会存在一定数量的满足第一预设条件的结果融合帧处于排队中,并未结果融合帧满足第一预设条件时,马上被用于构建目标区域的地图。

步骤S15:利用所述关键帧队列,构建目标区域的地图。

需要说明的是,根据所述关键帧队列中的所述结果融合帧,获得局部关键帧集合;通过所述局部关键帧集合,获得局部匹配特征点集合;根据所述局部关键帧集合和所述局部匹配特征点集合,通过公式二,对所述结果融合帧的结果位姿和所述结果融合帧包括的匹配特征点的世界坐标进行更新,获得更新后的结果位姿和更新后的世界坐标;基于具有所述更新后的结果位姿和所述更新后的世界坐标的结果融合帧,获得选定融合帧;利用选定融合帧,构建目标区域的地图;

所述公式二为:

其中,ρ为核函数,Q

按照顺序在关键帧队列中取出结果融合帧(结果融合帧是满足第一预设条件的),对所述当前取出的结果融合帧建立与之前全部取出的结果融合帧的关联,并建立当前取出的结果融合帧与当前取出的结果融合帧中的匹配特征点的关联;在全部取出的结果融合帧包括的全部匹配特征点中,将出现总次数少于3的匹配特征点剔除,然后,将当前取出的结果融合帧和与之相邻的取出的结果融合帧中的重复的匹配特征点剔除,将当前取出的结果融合帧和与之相邻的取出的结果融合帧的一起作为局部关键帧集合,该集合中的全部匹配特征点即为局部匹配特征点集合。

利用获得的所述更新后结果位姿和所述更新后的世界坐标对结果融合帧中的数据进行更新,即,用更新后的结果位姿和世界坐标替换之前的结果位姿和世界坐标,以获得选定融合帧,将选定融合帧中存在于共视选定融合帧中的匹配特征点剔除,获得构图点,其中,剔除比例以90%为宜,其中,共视选定融合帧为当前时刻获得的全部选定融合帧中共识地图点的数量超过15的选定关键帧,共识地图点是指世界坐标相同的匹配特征点。

最后利用构图点,构建目标区域的地图。可以理解的是,每一个选定融合帧经过筛选获得的构图点,即为SLAM系统捕获的新的目标点(即上文所述的目标点:特征点对应的客观存在于目标区域的实物点)对应的匹配特征点,利用匹配特征点,构建目标区域的地图。

具体应用中,随着时间推移,利用每个时刻对应的N个目标图像,获得融合帧,并利用整个运行时间的全部融合帧对应的构图点,构建目标区域的地图。

本实施例技术方案通过采用一种地图构建方法,应用于包括N个相机的SLAM系统,通过所述N个相机获取目标地区的目标图像;根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧;判断所述融合帧是否满足第一预设条件;在所述融合帧满足所述第一预设条件时,将所述融合帧添加到关键帧队列;利用所述关键帧队列,构建目标区域的地图。由于,构建目标区域地图时,将满足预设条件的融合帧添加到关键帧队列,并利用关键帧队列,构建目标区域的地图,并不是利用全部的融合关键帧构建目标区域的地图,利用本发明构建目标区域的地图时,数据处理量较少,建图效率较高。

同时利用公式一和公式二对融合帧包括的信息进行优化,并利用优化后的结果融合帧获得目标区域的结果地图,结果地图准确率较高

进一步的,步骤S15之后,还包括:在所述选定融合帧之前时刻的全部历史选定融合帧中筛选候选关键帧;对所述选定融合帧和所述候选关键帧进行SIM3变换,得到相似变换矩阵;利用所述相似变换矩阵,对所述选定融合帧和所述历史选定融合帧进行调整,获得调整后的选定融合帧和调整后的历史选定融合帧;对所述调整后的选定融合帧的结果位姿、所述调整后的选定融合帧包括的匹配特征点的世界坐标、所述调整后的历史选定融合帧包括的结果位姿和所述调整后的历史选定融合帧包括的匹配特征点的世界坐标进行修正,获得修正融合帧位姿、修正融合帧世界坐标、修正历史融合帧位姿和修正历史融合帧世界坐标;利用所述修正融合帧位姿、所述修正融合帧世界坐标、所述修正历史融合帧位姿和所述修正历史融合帧世界坐标,对所述目标区域的地图进行修正,获得目标区域的结果地图。

需要说明的是,对于每次利用具有所述更新后结果位姿和所述更新后的世界坐标的选定融合帧,构建目标区域的地图后,均需要对该选定融合帧进行上述修正处理,并获得结果地图。

具体应用中,修正时,利用上述公式二对所述调整后的结果融合帧的结果位姿、所述调整后的结果融合帧包括的匹配特征点的世界坐标、所述调整后的历史结果融合帧包括的结果位姿和所述调整后的历史结果融合帧包括的匹配特征点的世界坐标进行修正,获得修正融合帧位姿、修正融合帧世界坐标、修正历史融合帧位姿和修正历史融合帧世界坐标;其中位姿包括旋转矩阵和平移向量。此处不再赘述。

进一步的,所述在所述选定融合帧之前时刻的全部历史选定融合帧中筛选候选关键帧的步骤包括:计算所述选定融合帧与所述选定融合帧之前时刻对应的全部历史选定融合帧的词袋分;在所述全部历史选定融合帧中筛选满足第三预设条件的初选融合帧;在所述初选融合帧中筛选词袋分超过预设词袋分阈值的选定关键帧;计算所述选定关键帧与所述选定融合帧共有单词数的最大值;在所述选定关键帧中筛选共有单词数大于预设单词数阈值的候选关键帧。

其中,第三预设条件的实现如下:

与具有所述更新后结果位姿和所述更新后的世界坐标的选定融合帧相连的选定融合帧构成一个“子候选组”,然后该选定融合帧自己也加入到“子候选组”;检测“子候选组”中每个选定融合帧是否存在于“连续组”,如果存在,记录当前连续的变量的值加1,将该“子候选组”放入当前“连续组”中;其中,检测“子候选组”中每一个选定融合帧是否存在于“连续组”步骤:遍历每个“子候选组”,检测每个“子候选组”中每一个选定融合帧在“连续组”中是否存在,如果有一帧共同存在于子候选组与之前的“连续组”,那么该“子候选组”与之前的“连续组”连续,即,存在“连续组”;如果当前连续的变量的值大于等于3,那么该“子候选组”对应的选定融合帧满足第三预设条件。

另外,预设词袋分阈值可以是词袋分的最低分,也可以是其他阈值,用户可以根据自己的需求进行设定;预设单词数阈值=最大共有单词数×预设系数,本发明以预设系数为0.8为优选,用户可以根据自己的需求进行设定,此处不做限制。

参照图6,图6为本发明地图构建装置第一实施例的结构框图;应用于包括N个相机的SLAM系统,所述装置包括:

获取模块10,用于获取目标地区的目标图像;

获得模块20,用于根据所述目标图像,获得融合帧,所述N个相机同一时刻的目标图像对应一个融合帧;

判断模块30,用于判断所述融合帧是否为关键帧;

添加模块40,用于在所述融合帧为关键帧时,将所述融合帧添加到关键帧队列;

构建模块50,用于利用所述关键帧队列,构建目标区域的地图。

参照图7,图7为本发明方法与其他地图构建方法的准确度对比图;其中,图中数据包括利基于多相机的SLAM系统利用本发明的方法获得的目标区域的结果地图的准确度,还包括利用开源框架ORB-SLAM2和VINS-Stereo构建目标区域的结果地图的准确度。

以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

相关技术
  • 地图构建方法、装置、SLAM系统以及存储介质
  • 基于视觉SLAM的地图构建的方法、导航系统及装置
技术分类

06120112421798