CN112634395A - 一种基于slam的地图构建方法及装置 - Google Patents
一种基于slam的地图构建方法及装置 Download PDFInfo
- Publication number
- CN112634395A CN112634395A CN201910905403.3A CN201910905403A CN112634395A CN 112634395 A CN112634395 A CN 112634395A CN 201910905403 A CN201910905403 A CN 201910905403A CN 112634395 A CN112634395 A CN 112634395A
- Authority
- CN
- China
- Prior art keywords
- key frame
- map
- slam map
- slam
- historical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010276 construction Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 49
- 238000005457 optimization Methods 0.000 claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000003780 insertion Methods 0.000 claims description 16
- 230000037431 insertion Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000007774 longterm Effects 0.000 abstract description 3
- 238000001514 detection method Methods 0.000 description 45
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种基于SLAM的地图构建方法及装置,所述方法包括:检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。应用该方法,实现了对动态场景构建SLAM地图,并且由于在构建SLAM地图的过程中,依据同一物理区域的历史SLAM地图对已构建的SLAM地图进行修正,从而可以降低已构建的SLAM地图的累计误差,进而提高构建出的SLAM地图的长时复用性和可扩展性。
Description
技术领域
本申请涉及SLAM技术领域,尤其涉及一种基于SLAM的地图构建方法及装置。
背景技术
SLAM(Simultaneous Localization And Mapping,同步定位与建图)技术的目标是终端例如无人机、智能机器人等在未知环境中从一个未知位置开始移动,在移动过程中根据传感器数据进行自身定位,并构建该未知环境的SLAM地图。
目前,常用的一种基于SLAM技术构建SLAM地图的方式是:将多个终端例如无人机、智能机器人等基于SLAM技术构建的对应同一物理区域的子SLAM地图进行融合,得到该区域的全局SLAM地图。这种基于SLAM技术构建SLAM地图的方式仅适用于物理区域中的场景不变(即物理区域中存在静态场景)的情况。
而在物理区域中的场景随着时间推移发生变化(即物理区域中存在动态场景)的情况下,上述基于SLAM技术构建SLAM地图的方式由于不涉及SLAM地图的更新,从而该方式并不适用于此种情况。
发明内容
有鉴于此,本申请提供一种基于SLAM的地图构建方法及装置,以实现对动态场景构建SLAM地图。
根据本申请实施例的第一方面,提供一种基于SLAM的地图构建方法,所述方法包括:
检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;
将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;
依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。
根据本申请实施例的第二方面,提供一种基于SLAM的地图构建装置,所述装置包括:
第一检查模块91,用于检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;
插入模块92,用于将所述第一关键帧插入已构建的第一SLAM地图;
获取模块93,用于获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;
判断模块94,用于依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;
修正模块95,用于若依据所述历史SLAM地图判断出需要对第一SLAM地图进行修正,则依据所述历史SLAM地图修正所述第一SLAM地图。
根据本申请实施例的第三方面,提供一种电子设备,所述设备包括可读存储介质和处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现本申请提供的基于SLAM的地图构建方法的步骤。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的基于SLAM的地图构建方法的步骤。
根据本申请实施例的第五方面,提供一种基于SLAM的地图构建系统,所述系统包括图像采集设备、电子设备,其中,所述图像采集设备与所述电子设备通信连接;
所述图像采集设备,用于采集目标物理区域的图像;
所述电子设备,用于检查所述图像采集设备采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。
应用本申请实施例,通过在检查到当前采集的图像满足关键帧图像条件时,将该图像确定为第一关键帧插入已构建的第一SLAM地图,并获取与该第一SLAM地图相关联,且对应同一物理区域的历史SLAM地图,并在依据该历史SLAM地图判断出需要对第一SLAM地图进行修正时,依据该历史SLAM地图对第一SLAM地图进行修正,实现了对动态场景构建SLAM地图,并且由于在构建SLAM地图的过程中,依据同一物理区域的历史SLAM地图对已构建的SLAM地图进行修正,从而可以降低已构建的SLAM地图的累计误差,进而提高构建出的SLAM地图的长时复用性和可扩展性。
附图说明
图1为本申请一示例性实施例提供的一种基于SLAM的地图构建方法的实施例流程图;
图2为本申请一示例性实施例提供的重定位检测过程的实施例流程图;
图3为本申请一示例性实施例提供的闭环检测过程的实施例流程图;
图4为本申请一示例性实施例提供的依据历史SLAM地图修正第一SLAM地图的过程的实施例流程图;
图5为构建的位姿优化图的一种示例;
图6为本申请一示例性实施例提供的在第一SLAM地图中删除冗余关键帧的过程的实施例流程图;
图7为关键帧树的一种示例;
图8为对某一关键帧组中的所有关键帧进行分类的分类结果的示意图;
图9为本申请一示例性实施例提供的基于SLAM的地图构建装置的实施例框图;
图10为本申请根据一示例性实施例示出的一种电子设备的硬件结构图;
图11为本申请实施例提供的基于SLAM的地图构建系统的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为解决上述问题,本申请提出一种基于SLAM的地图构建方法,通过该方法可以实现对动态场景构建SLAM地图,并且,在构建SLAM地图的过程中,通过实时对构建出的SLMA地图进行修正,可以降低已构建的SLAM地图的累计误差,进而提高构建出的SLAM地图的长时复用性和可扩展性。
如下,示出下述实施例对本申请提出的一种基于SLAM的地图构建方法进行详细说明。
为了便于理解,首先对本申请实施例中涉及到的名词进行解释说明:
(1)第一SLAM地图
在本申请实施例中,将当前构建SLAM地图的过程中所构建的SLAM地图称为第一SLAM地图。
(2)历史SLAM地图
在本申请实施例中,将在之前构建SLAM地图的过程中所构建的SLAM地图称为历史SLAM地图,并且,该历史SLAM地图与上述第一SLAM地图对应同一物理区域。
(3)关键帧
在构建SLAM地图的过程中,若当前采集的图像满足预设的关键帧图像条件,则可以将该图像确定为关键帧,并插入已构建的SLAM地图中。
在实际应用中,不同的SLAM系统中,关键帧的选取方式可以不同,也即关键帧图像条件不同。作为一个示例,关键帧图像条件可以为:当前采集的图像与前一关键帧之间的图像数量达到预设值,且该当前采集的图像与前一关键帧之间的位姿差满足一定条件。
(4)第一关键帧
在本申请实施例中,为了描述方便,将当前采集到的满足上述关键帧图像条件的图像称为第一关键帧。
(4)重定位检测:
通俗来说,重定位检测即检测是否可以依据已插入至SLAM地图中的关键帧估计出当前插入的关键帧的位姿信息。
在本申请实施例中,可以通过如下过程实现重定位检测:
检测历史SLAM地图中的所有关键帧中是否存在与上述第一关键帧相匹配的第二关键帧,其中,第一关键帧与第二关键帧中相匹配的特征点的数量大于第一阈值N1。
若检测得出存在第二关键帧,则重定位检测成功,同时还可以依据该第二关键帧估计出第一关键帧的位姿信息,否则,重定位检测失败。
(5)闭环检测:
通俗来说,闭环检测即检测当前所处位置是否曾经到达过。
在本申请实施例中,可以通过如下过程实现闭环检测:
检测历史SLAM地图中所有关键帧和第一SLAM地图中的所有关键帧中,是否存在与上述第一关键帧相匹配的第三关键帧,其中,第一关键帧与第三关键帧中相匹配的特征点的数量大于第二阈值N2。
若检测得出存在第三关键帧,则闭环检测成功,否则,闭环检测失败。
至此,完成对本申请实施例中涉及到的名词的相关说明。
如下,对本申请提出的一种基于SLAM的地图构建方法进行说明:
实施例一、
请参见图1,为本申请一示例性实施例提供的一种基于SLAM的地图构建方法的实施例流程图,该方法可以包括以下步骤:
步骤101:检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定该图像为第一关键帧。
在本申请实施例中,以智能机器人执行本申请提供的方法为例,该智能机器人载有摄像机模块,其可以通过该摄像机模块采集当前所处物理区域的图像。
智能机器人每采集到一副图像,则可以检测该图像是否满足预设的关键帧图像条件,如果是,则可以将该图像确定为第一关键帧。至于该关键帧图像条件,可以参见上述描述,在此不再赘述。
步骤102:将第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,该历史SLAM地图与该第一SLAM地图对应同一物理区域。
在本申请实施例中,智能机器人可以获取与当前已构建的第一SLAM地图相关联的历史SLAM地图,并且,该历史SLAM地图与该第一SLAM地图对应同一物理区域。
作为一个示例,智能机器人可以在本地保存每次构建SLAM地图的过程中所构建的SLAM地图,从而智能机器人可以从本地获取上述历史SLAM地图。
作为另一个示例,智能机器人可以将每次构建SLAM地图的过程中所构建的SLAM地图推送至外部终端进行保存,从而智能机器人可以从外部终端获取上述历史SLAM地图。
需要说明的是,上述描述的智能机器人获取上述历史SLAM地图的方式仅仅作为示例性说明,在实际应用中,还可以存在其他方式,本申请对此不做限制。
步骤103:依据历史SLAM地图判断是否需要对第一SLAM地图进行修正。
在本申请实施例中,可以通过上述描述的重定位检测和闭环检测来判断是否需要对第一SLAM地图进行修正。在该方式下,若重定位检测成功,和/或闭环检测成功,则可以认为需要对第一SLAM地图进行修正,反之,若重定位检测失败,且闭环检测失败,则可以认为不需要对第一SLAM地图进行修正。
至于上述描述的重定位检测的具体过程在下述实施例二中示出,在此先不做详述;同样的,至于上述描述的闭环检测的具体过程在下述实施例三中示出,在此先不做详述。
步骤104:若是,则依据历史SLAM地图修正第一SLAM地图。
在本申请实施例中,在重定位检测成功的情况下,和在闭环检测成功的情况下,可以采用不同的方式修正第一SLAM地图。
如下,分别对重定位检测成功的情况下和闭环检测成功的情况下,依据历史SLAM地图修正第一SLAM地图的过程进行说明:
(1)在重定位检测成功的情况下,依据历史SLAM地图修正第一SLAM地图的过程可以包括:
依据历史SLAM地图从第一SLAM地图中确定待优化的关键帧集合,为了描述方便,将该待优化的关键帧集合记为U1,确定该关键帧集合U1中各关键帧的第一位姿态信息(指示位置信息和姿态信息),然后,将关键帧集合U1中各关键帧的第一位姿信息作为参数代入至已训练的位姿信息优化算法,例如下述公式(一),得到关键帧集合U1中各关键帧的第二位姿信息,再然后,针对关键帧集合U1中各关键帧,在第一SLAM地图中确定与该关键帧相关联的地图点,最后,依据该关键帧的第一位姿信息、第二位姿信息更新该相关联的地图点在第一SLAM地图中的位置。
在上述公式(一)中,表示第二位姿态信息,L表示待优化的关键帧序号集合;Ci表示关键帧i的共视关键帧序号集合,其中,若某一关键帧与另一关键帧各自关联的地图点中具有相同的地图点,则可以称该两个关键帧互为共视关键帧;Ωij表示误差的信息矩阵;e(Ti,Tj,Zij)表示误差项,其可以通过如下公式(二)计算得出;Zij表示第一SLAM地图中关键帧i与历史SLAM地图中的关键帧j之间的相对位姿,其中,若关键帧i与关键帧j之间具有重定位关系,也即关键帧i与关键帧j中相匹配的特征点的数量大于第一阈值N1,则Zij可以直接在针对关键帧i进行重定位检测的过程中计算得出,若关键帧i与关键帧j之间不具有重定位关系,则Zij可以通过如下公式(三)计算得出。
e(Ti,Tj,Zij)=Tj -1TiZij公式(二)
Zij=Ti -1Tj公式(三)
至于上述过程的具体描述请参见下述实施例四,在此先不做详述。
(2)在闭环检测成功的情况下,依据历史SLAM地图修正第一SLAM地图的过程可以包括:
首先说明,在本申请实施例中,在闭环检测成功的情况下,可以将历史SLAM地图中的地图点与第一SLAM地图中的地图点融合,得到全局SLAM地图,之后,对全局SLAM地图中关键帧的位姿信息和关键帧相关联的地图点的位置进行修正,以使修正后得到的SLAM地图中,关联至少一个相同地图点的关键帧之间的位姿信息之差满足设定条件。
作为一个示例,可以采用光束平差优化算法实现上述修正过程。
至于上述描述的具体过程,本领域技术人员可以参见现有技术中的相关描述,本申请对此不再详述。
由上述实施例可见,通过在检查到当前采集的图像满足关键帧图像条件时,将该图像确定为第一关键帧插入已构建的第一SLAM地图,并获取与该第一SLAM地图相关联,且对应同一物理区域的历史SLAM地图,并在依据该历史SLAM地图判断出需要对第一SLAM地图进行修正时,依据该历史SLAM地图对第一SLAM地图进行修正,实现了对动态场景构建SLAM地图,并且由于在构建SLAM地图的过程中,依据同一物理区域的历史SLAM地图对已构建的SLAM地图进行修正,从而可以降低已构建的SLAM地图的累计误差,进而提高构建出的SLAM地图的长时复用性和可扩展性。
至此,完成实施例一的相关描述。
如下,示出下述实施例二,对重定位检测的具体过程进行说明:
首先说明,在该实施例二中,基于BoW算法进行重定位检测。
具体的,请参见图2,为本申请一示例性实施例提供的重定位检测过程的实施例流程图,可以包括以下步骤:
步骤201:计算当前帧的词袋向量。
上述当前帧即可以为第一关键帧。
步骤202:根据该词袋向量从历史SLAM地图中筛选出候选关键帧。
在一实施例中,可以根据该词袋向量分别计算当前帧与历史SLAM地图中每一关键帧的相似性得分,将相似性得分高于预设分数阈值的关键帧作为候选关键帧。
步骤203:利用词袋引导算法将当前帧与候选关键帧进行特征点匹配,若匹配点的个数大于第一预设个数阈值,则执行步骤204,否则,执行步骤206。
在一实施例中,可以利用词袋引导算法将当前帧与候选关键帧进行特征点匹配,具体的,在词袋引导算法中,对于候选关键帧中每一个待匹配的特征点,在当前帧的词袋字典树中找到对应的叶子节点,匹配时仅与该叶子节点中的特征点进行匹配,通过该种处理,可以加速匹配过程。
步骤204:利用RANSAC(Random Sample Consensus,随机采样一致性)算法将当前帧与候选关键帧进行特征点匹配,并利用PnP方法计算出当前帧的位姿,若匹配点的个数大于第二预设个数阈值,则执行步骤205,否则,执行步骤206。
在一实施例中,利用RANSAC算法将当前帧与候选关键帧进行特征点匹配,可以有效剔除步骤203中的错误匹配,提高匹配精度,同时,还可以利用PnP方法计算出当前帧的位姿。
步骤205:基于当前帧的位姿,将候选关键帧中未匹配的特征点投影至当前帧,并基于未匹配的特征点在当前帧上的投影位置将当前帧与候选关键帧进行特征点匹配,若匹配点的个数大于第三预设个数阈值,则重定位检测成功,否则,重定位检测失败,结束流程。
通过执行步骤205,可以实现在当前帧与候选关键帧之间寻找到尽可能多的匹配点,提高重定位检测精度。
至于上述步骤201至步骤205的详细描述,本领域技术人员可以参见现有技术中的相关描述,本申请对此不再赘述。
步骤206:将当前帧的位姿设置为候选关键帧的平均位姿,返回执行步骤205。
需要说明的是,在本申请实施例中,当执行完步骤203,得到匹配点的个数不大于第一预设个数阈值时,并不是直接判定重定位检测失败,而是将当前帧的位姿设置为候选关键帧的平均位姿,并返回执行步骤205,通过该种处理,可以在场景发生变化时,一定程度上提高重定位检测的成功率。
此外,在本申请实施例中,为了提高将第一SLAM地图与历史SLAM地图配准的效率,可以从前端摄像模块采集到的第一帧开始,即针对每一帧均进行重定位检测,直至重定位成功后,再仅针对确定出的关键帧进行重定位检测。
至此,完成实施例二的相关描述。
如下,示出下述实施例三,对闭环检测的具体过程进行说明:
首先说明,在该实施例三中,复用ORB-SLAM算法中的闭环检测方法。
具体的,请参见图3,为本申请一示例性实施例提供的闭环检测过程的实施例流程图,可以包括以下步骤:
步骤301:计算当前帧的词袋向量。
上述当前帧即可以为第一关键帧。
步骤302:根据该词袋向量从历史SLAM地图与第一SLAM地图中筛选出候选关键帧。
步骤303:对候选关键帧进行时间一致性校验,若通过校验,则执行步骤304,否则,闭环检测失败,结束流程。
步骤304:计算当前帧与候选关键帧之间的相对位姿,并利用词袋引导算法将当前帧与候选关键帧进行特征点匹配,若匹配点的个数大于第四预设个数阈值,则闭环检测成功,否则,闭环检测失败。
至于上述步骤301至步骤304的详细描述,本领域技术人员可以参见现有技术中的相关描述,本申请对此不再赘述。
至此,完成实施例三的相关描述。
如下,示出下述实施例四,对在重定位检测成功的情况下,依据历史SLAM地图修正第一SLAM地图的过程进行详细说明:
请参见图4,为本申请一示例性实施例提供的依据历史SLAM地图修正第一SLAM地图的过程的实施例流程图,可以包括以下步骤:
步骤401:依据历史SLAM地图从第一SLAM地图中确定待优化的关键帧集合U1。
在本申请实施例中,可以首先依据历史SLAM地图中的所有关键帧和第一SLAM地图中的所有关键帧构建位姿优化图,例如,如图5所示,为构建的位姿优化图的一种示例。
图5中,白色圆圈表示的节点,即节点HF1至节点HF9表示历史SLAM地图中的关键帧,灰色圆圈表示的节点,即节点KF1至节点KF8表示第一SLAM地图中的关键帧。
在图5中,为了描述方便,将所有节点表示的关键帧看做一个关键帧集合,记为U2。针对该关键帧集合U2中每一关键帧,确定该关键帧在所处SLAM地图中关联的地图点的地图点集合,若该关键帧集合U2中任意两个关键帧关联的地图点集合中存在N个以上相同的地图点,则通过边将该两个关键帧相连。
此外,若历史SLAM地图中的所有关键帧中存在与第一关键帧相匹配的第二关键帧,还可以通过边连接该第一关键帧和该第二关键帧,例如,假设节点HF5与节点KF5相匹配,则可以以边连接节点HF5与节点KF5。
至此,则可以得到图5所示例的位姿优化图。
此外,在图5中,针对每一边连接的两个节点,将该两个节点中插入至第一SLAM地图的时间较早的节点作为另一个节点的父节点。例如,在图5中,节点KF1为节点KF2的父节点。
在构建好图5所示例的位姿优化图之后,可以将第一关键帧作为当前节点,将当前节点添加至关键帧集合U1,判断图5中是否存在当前节点的父节点,若不存在,则可以结束当前流程;若存在,则继续判断当前节点与历史SLAM地图之间是否满足设定的强关联条件,若满足,则可以结束当前流程,若不满足,则将当前节点的父节点确定为当前节点,并返回执行将当前节点添加至待优化的关键帧集合U1的步骤。
作为一个示例,上述描述的强关联条件可以包括下述两项:
(1)当前节点的父节点为历史SLAM地图中的关键帧;
(2)当前节点与历史SLAM地图中的至少一个关键帧满足以下条件:相匹配的特征点的数量大于第三阈值N3。
在一个例子中,该N3可以与上述实施例一种描述的N1相同。在该例子中,上述(2)也可以表示为:历史SLAM地图中的所有关键帧中存在与第一关键帧相匹配的第二关键帧。
基于上述描述,以节点KF5为第一关键帧为例,将该节点KF5作为当前节点,并将其加入关键帧集合U1;下一步,节点KF5具有父节点KF4,并且,通过判断得出节点KF5与历史SLAM地图之间不满足上述强关联条件,则可以继续将节点KF4作为当前节点,并将其加入至关键帧集合U1;再下一步,节点KF4具有父节点KF3,并且,通过判断得出节点KF4与历史SLAM地图之间不满足上述强关联条件,则可以继续讲节点KF3作为当前节点,并将其加入至关键帧集合U1;最后,通过判断得出节点KF3满足上述强关联条件中的(2),结束当前流程。至此,关键帧集合U1={KF5,KF4,KF3}。
步骤402:确定关键帧集合U1中各关键帧的第一位姿信息。
在本申请实施例中,可以利用PnP方法计算出关键帧集合U1中各关键帧的位姿信息,并进一步利用LM算法、高斯牛顿算法等,对该位姿信息进行优化,将优化之后的位姿记为第一位姿信息。
步骤403:将关键帧集合U1中各关键帧的第一位姿信息作为参数代入至已训练的位姿信息优化算法得到关键帧集合U1中各关键帧的第二位姿信息。
本步骤的详细描述可以参见上述实施例一中的相关描述,在此不再赘述。
步骤404:针对关键帧集合U1中各关键帧,在第一SLAM地图中确定与该关键帧相关联的地图点。
步骤405:依据该关键帧的第一位姿信息、第二位姿信息更新地图点在所述第一SLAM地图中的位置。
在本申请实施例中,可以利用该关键帧的第一位姿信息、第二位姿信息对地图点当前的坐标位置信息进行坐标转换,依据转换后的坐标位置信息更新该地图点在所述第一SLAM地图的位置。
作为一个示例,可以利用下述公式(四)实现上述坐标转换:
至此,完成实施例四的相关描述。
此外,在本申请实施例中,为了有效避免SLAM地图容量过快增长,在当前构建SLAM地图的过程结束之后,还可以进一步检查构建好的第一SLAM地图中是否存在冗余关键帧,若存在,可以将冗余关键帧从第一SLAM地图中删除。如下,示出实施例五对这一过程进行说明:
实施例五、
请参见图6,为本申请一示例性实施例提供的在第一SLAM地图中删除冗余关键帧的过程的实施例流程图,可以包括以下步骤:
步骤601:对第一SLAM地图中的所有关键帧进行分组,得到至少两个关键帧组。
在本申请实施例中,可以首先按照最大生成树算法并利用第一SLAM地图中的所有关键帧生成一个关键帧树。例如,如图7所示,为关键帧树的一种示例,图7中所示例的关键帧树包括K1至K7共7个结点,每一结点表示一个第一SLAM地图中的关键帧。
之后,先将关键帧树的根结点,例如结点K1作为当前结点,针对该关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值,若第一值小于预设的位姿差阈值,则将该其他结点与当前结点归入同一关键帧组。举例来说,假设结点K2、K3与根结点K1的位姿信息之差小于预设的位姿差阈值,那么,则可以将结点K2、K3、K1归入同一关键帧组。
再之后,检查与当前结点归入同一关键帧组的每一其他结点是否具有子结点,若否,结束当前流程,若是,则将与当前节点归入同一关键帧组的每一其他结点的每一子节点作为当前节点,返回针对该关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值的步骤。举例来说,假设将结点K4作为当前节点,并假设结点K2、K3、K5、K6各自与结点K4的位姿信息之差小于预设的位姿差阈值,那么,则可以将结点K2、K3、K4、K5、K6归入同一关键帧组。
步骤602:针对每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值,若是,则从关键帧组中确定冗余关键帧,并从第一SLAM地图中删除冗余关键帧。
在本申请实施例中,可以首先针对上述得到的每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值,若是,则从该关键帧组中确定冗余关键帧,并从第一SLAM地图中删除冗余关键帧。
作为一个示例,首先说明,在该示例中,将第一关键帧插入已构建的第一SLAM地图时,还可以记录下当前的时间,并将该当前的时间作为该第一关键帧的地图插入时间。基于此,在该示例中,可以将关键帧组中地图插入时间最早的关键帧确定为冗余关键帧。
作为另一个示例,在关键帧组中确定冗余关键帧的过程可以包括:首先,对关键帧组中的所有关键帧进行分类,其中,同一类别中的各关键帧关联有相同的地图点;判断所有类别中是否存在满足指定条件的类别,所述指定条件为:类别中包括的关键帧不属于同一SLAM地图;若是,则将满足指定条件的类别中地图插入时间最早的关键帧确定为冗余关键帧;若否,则将所有类别的所有关键帧中插入时间最早的关键帧确定为冗余的关键帧。
举例来说,如图8所示,为对某一关键帧组中的所有关键帧进行分类的分类结果的示意图。在图8中,每一椭圆表示一个类别,图8中共包括3个类别,分别标号为A、B、C,数字则标识关键帧所属的SLAM地图,并且,数字越小,表示关键帧所属的SLAM地图的构建时间越早。按照上述描述,由于标号为A的类别中包括3个SLAM地图中的关键帧,也即标号为A的类别中的关键帧不属于同一SLAM地图,从而可以优先从标号为A的类别中选择一个地图插入时间最早的关键帧确定为冗余关键帧。
再举例来说,假设图8中不存在标号为A的类别,则可以优先从标号为B的列表中选择一个地图插入时间最早的关键帧确定为冗余关键帧。
作为又一个示例,可以针对关键帧组中的每一关键帧,确定该关键帧与该关键帧组中的其他关键帧之间的共视度,将对应的共视度最小的关键帧确定为冗余关键帧。其中,关键帧与其他关键帧之间的共视度可以通过关键帧之间对应的相同地图点的数量表示。
举例来说,假设关键帧组中共包括3个关键帧,为了描述方便,将该3个关键帧分别称为关键帧1、关键帧2、关键帧3,假设关键帧1与关键帧2对应的相同地图点的数量为1,关键帧1与关键帧3对应的相同地图点的数量为2,关键帧2与关键帧3对应的相同地图点的数量为3,那么,关键帧1对应的共视度可以为3,关键帧2对应的共视度可以为4,关键帧3对应的共视度可以为5。按照上述描述,关键帧1对应的共视度最小,那么,则可以将关键帧1确定为冗余关键帧。
此外,需要说明的是,在本申请实施例中,每确定一个冗余关键帧,则可以将所确定的冗余关键帧从第一SLAM地图中删除,之后,继续针对每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值,若是,则继续执行从该关键帧组中确定冗余关键帧的步骤,否则,结束当前流程。
至此,完成实施例五的相关描述。
由上述实施例可见,通过对第一SLAM地图中的所有关键帧进行分组,得到至少两个关键帧组;针对每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值,若是,则从关键帧组中确定冗余关键帧,并从第一SLAM地图中删除冗余关键帧,可以有效避免SLAM地图容量过快增长。
与前述基于SLAM的地图构建方法的实施例相对应,本申请还提供了基于SLAM的地图构建装置的实施例。
请参见图9,为本申请一示例性实施例提供的基于SLAM的地图构建装置的实施例框图,该装置可以包括:第一检查模块91、插入模块92、获取模块93、判断模块94,以及修正模块95。
其中,第一检查模块91,用于检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;
插入模块92,用于将所述第一关键帧插入已构建的第一SLAM地图;
获取模块93,用于获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;
判断模块94,用于依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;
修正模块95,用于若依据所述历史SLAM地图判断出需要对第一SLAM地图进行修正,则依据所述历史SLAM地图修正所述第一SLAM地图。
在一实施例中,所述判断模块94包括(图9中未示出):
第一检测子模块,用于检测所述历史SLAM地图中的所有关键帧中是否存在与所述第一关键帧相匹配的第二关键帧,所述第一关键帧与所述第二关键帧中相匹配的特征点的数量大于第一阈值N1;
第一确定子模块,用于若检测出所述历史SLAM地图中的所有关键帧中存在与所述第一关键帧相匹配的第二关键帧,则确定需要对第一SLAM地图进行修正;和/或,
第二检测子模块,用于检测所述历史SLAM地图中所有关键帧和所述第一SLAM地图中的所有关键帧中,是否存在与所述第一关键帧相匹配的第三关键帧,所述第一关键帧与所述第三关键帧中相匹配的特征点的数量大于第二阈值N2;
第二确定子模块,用于若检测出所述历史SLAM地图中所有关键帧和所述第一SLAM地图中的所有关键帧中,存在与所述第一关键帧相匹配的第三关键帧,则确定需要对当前SLAM地图进行修正。
在一实施例中,所述修正模块95包括(图9中未示出):
第一集合确定子模块,用于依据所述历史SLAM地图从所述第一SLAM地图中确定待优化的关键帧集合U1;
位姿确定子模块,用于确定所述关键帧集合U1中各关键帧的第一位姿信息,第一位姿信息指示位置信息和姿态信息;
第一计算子模块,用于将所述关键帧集合U1中各关键帧的第一位姿信息作为参数代入至已训练的位姿信息优化算法得到所述关键帧集合U1中各关键帧的第二位姿信息;
第三确定子模块,用于针对所述关键帧集合U1中各关键帧,在第一SLAM地图中确定与该关键帧相关联的地图点;
更新子模块,用于依据该关键帧的第一位姿信息、第二位姿信息更新所述地图点在所述第一SLAM地图中的位置。
在一实施例中,所述集合确定子模块可以包括(图9中未示出):
图构建子模块,用于依据所述历史SLAM地图中的所有关键帧和所述第一SLAM地图中的所有关键帧构建位姿优化图;
图优化子模块,用于将所述位姿优化图中的第一关键帧作为当前节点;将当前节点添加至关键帧集合U1,判断所述位姿优化图中是否存在当前节点的父节点,所述当前节点的父节点插入至第一SLAM地图的时间早于所述当前节点;若否,结束当前流程;若是,判断当前节点与所述历史SLAM地图之间是否满足设定的强关联条件,若否,将所述当前节点的父节点确定为当前节点,并返回所述将当前节点添加至关键帧集合U1的步骤,若是,结束当前流程。
在一实施例中,所述图构建子模块可以包括(图9中未示出):
第二集合构建子模块,用于针对关键帧集合U2中每一关键帧,确定该关键帧在所处SLAM地图中关联的地图点的地图点集合;关键帧集合U2至少包括:所述历史SLAM地图中的所有关键帧和所述第一SLAM地图中的所有关键帧;
连接子模块,用于若所述关键帧集合U2中任意两个关键帧关联的地图点集合中存在N个以上相同的地图点,则通过边将这两个关键帧连接,形成所述位姿优化图,所述N为大于0的自然数。
在一实施例中,所述图优化子模块可以包括(图9中未示出):
第一判断子模块,用于判断当前节点的父节点是否为所述历史SLAM地图中的关键帧,若是,确定当前节点与所述历史SLAM地图之间满足设定的强关联条件,若否,确定当前节点与所述历史SLAM地图之间不满足设定的强关联条件;和/或,
第二判断子模块,用于判断当前节点是否与所述历史SLAM地图中的至少一个关键帧满足以下条件:相匹配的特征点的数量大于第三阈值N3;若是,确定当前节点与所述历史SLAM地图之间满足设定的强关联条件,若否,确定当前节点与所述历史SLAM地图之间不满足设定的强关联条件。
在一实施例中,所述更新子模块可以具体用于:
利用该关键帧的第一位姿信息、第二位姿信息对所述地图点的坐标位置信息进行坐标转换;依据转换后的坐标位置信息更新所述地图点在所述第一SLAM地图的位置。
在一实施例中,所述修正模块95可以包括(图9中未示出):
融合子模块,用于将所述历史SLAM地图中的地图点与第一SLAM地图中的地图点进行融合,得到全局SLAM地图;
优化子模块,用于对所述全局SLAM地图中的关键帧的位姿信息和关键帧相关联的地图点的位置进行修正,以使修正后得到的SLAM地图中,关联至少一个相同地图点的关键帧之间的位姿信息之差满足设定条件。
在一实施例中,所述装置还可以包括(图9中未示出):
分组模块,用于对第一SLAM地图中的所有关键帧进行分组,得到至少两个关键帧组;
第二检查模块,用于针对每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值;
删除模块,用于若检查出该关键帧组中关键帧的数量是否大于预设的数量阈值,则从关键帧组中确定冗余关键帧,并从第一SLAM地图中删除所述冗余关键帧。
在一实施例中,所述分组模块可以包括(图9中未示出):
树生成子模块,用于按照最大生成树算法并利用第一SLAM地图中所有关键帧生成关键帧树;
第二计算子模块,用于将所述关键帧树的根结点作为当前结点,针对所述关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值,若所述第一值小于预设的位姿差阈值,则将该其他结点与当前结点归入同一关键帧组;
检查子模块,用于检查与当前结点归入同一关键帧组的每一其他结点是否具有子结点,若否,结束当前流程;若是,将与当前节点归入同一关键帧组的每一其他结点的每一子节点作为当前节点,返回执行所述第二计算子模块所执行的针对所述关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值的步骤。
在一实施例中,所述装置还可以包括(图9中未示出):
时间记录模块,用于记录当前时间为第一关键帧的地图插入时间;
所述删除模块包括:
第四确定子模块,用于将所述关键帧组中地图插入时间最早的关键帧确定为冗余关键帧;或者,
第五确定子模块,用于针对所述关键帧组中的每一关键帧,确定该关键帧与该关键帧组中的其他关键帧之间的共视度;
第六确定子模块,用于将对应的共视度最小的关键帧确定为冗余关键帧。
在一实施例中,所述删除模块可以包括(图9中未示出):
分类子模块,用于对关键帧组中的所有关键帧进行分类,其中,同一类别中的各关键帧关联有相同的地图点;
第三判断子模块,用于判断所有类别中是否存在满足指定条件的类别,所述指定条件为:所述类别中的关键帧不属于同一SLAM地图;
第七确定子模块,用于若判断出所有类别中存在满足指定条件的类别,则将所述满足指定条件的类别中地图插入时间最早的关键帧确定为冗余关键帧;
第八确定子模块,用于若判断所有类别中不存在满足指定条件的类别,则将所有类别的所有关键帧中地图插入时间最早的关键帧确定为冗余的关键帧。
请继续参见图10,本申请还提供一种电子设备,包括处理器1001、通信接口1002、存储器1003,以及通信总线1004。
其中,处理器1001、通信接口1002、存储器1003通过通信总线1004进行相互间的通信;
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的计算机程序,处理器1001执行所述计算机程序时实现本申请实施例提供的基于SLAM的地图构建方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的基于SLAM的地图构建方法的步骤。
本申请还提供一种基于SLAM的地图构建系统,如图11所示,为本申请实施例提供的基于SLAM的地图构建系统的实施例框图,该系统包括图像采集设备110、电子设备120,其中,图像采集设备110与电子设备120通信连接;
图像采集设备110,可以用于采集目标物理区域的图像;
电子设备120,可以用于基于上述图像采集设备110所采集的图像实现本申请实施例提供的基于SLAM的地图构建方法的步骤。
例如,图像采集设备将采集到的图像发送给电子设备,电子设备检查该图像是否满足预设的关键帧图像条件,如果是,确定该图像为第一关键帧;将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,该历史SLAM地图与所述第一SLAM地图对应同一物理区域;依据该历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。
其中,上述图像采集设备110可以为无人机、智能机器人、无人车等,本申请对此不作限制。
上述图像采集设备110与电子设备120之间的通信连接可以为基于蓝牙协议的蓝牙连接,也可以为基于以太网的无线连接,本申请对此也不作限制。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (13)
1.一种基于SLAM的地图构建方法,其特征在于,所述方法包括:
检查当前采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;
将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;
依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。
2.根据权利要求1所述的方法,其特征在于,所述依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正包括:
检测所述历史SLAM地图中的所有关键帧中是否存在与所述第一关键帧相匹配的第二关键帧,所述第一关键帧与所述第二关键帧中相匹配的特征点的数量大于第一阈值N1,若存在,则确定需要对第一SLAM地图进行修正;和/或,
检测所述历史SLAM地图中所有关键帧和所述第一SLAM地图中的所有关键帧中,是否存在与所述第一关键帧相匹配的第三关键帧,所述第一关键帧与所述第三关键帧中相匹配的特征点的数量大于第二阈值N2,若存在,则确定需要对当前SLAM地图进行修正。
3.根据权利要求1所述的方法,其特征在于,所述依据所述历史SLAM地图修正所述第一SLAM地图包括:
依据所述历史SLAM地图从所述第一SLAM地图中确定待优化的关键帧集合U1;
确定所述关键帧集合U1中各关键帧的第一位姿信息,第一位姿信息指示位置信息和姿态信息;
将所述关键帧集合U1中各关键帧的第一位姿信息作为参数代入至已训练的位姿信息优化算法得到所述关键帧集合U1中各关键帧的第二位姿信息;
针对所述关键帧集合U1中各关键帧,在第一SLAM地图中确定与该关键帧相关联的地图点;
依据该关键帧的第一位姿信息、第二位姿信息更新所述地图点在所述第一SLAM地图中的位置。
4.根据权利要求3所述的方法,其特征在于,所述依据所述历史SLAM地图从所述第一SLAM地图中确定待优化的关键帧集合U1包括:
依据所述历史SLAM地图中的所有关键帧和所述第一SLAM地图中的所有关键帧构建位姿优化图;
将所述位姿优化图中的第一关键帧作为当前节点;
将当前节点添加至关键帧集合U1,判断所述位姿优化图中是否存在当前节点的父节点,所述当前节点的父节点插入至第一SLAM地图的时间早于所述当前节点;
若否,结束当前流程;
若是,判断当前节点与所述历史SLAM地图之间是否满足设定的强关联条件,若否,将所述当前节点的父节点确定为当前节点,并返回所述将当前节点添加至关键帧集合U1的步骤,若是,结束当前流程。
5.根据权利要求4所述的方法,其特征在于,所述依据所述历史SLAM地图中的所有关键帧和所述第一SLAM地图中的所有关键帧构建位姿优化图包括:
针对关键帧集合U2中每一关键帧,确定该关键帧在所处SLAM地图中关联的地图点的地图点集合;关键帧集合U2至少包括:所述历史SLAM地图中的所有关键帧和所述第一SLAM地图中的所有关键帧;
若所述关键帧集合U2中任意两个关键帧关联的地图点集合中存在N个以上相同的地图点,则通过边将这两个关键帧连接,形成所述位姿优化图,所述N为大于0的自然数。
6.根据权利要求4所述的方法,其特征在于,所述判断当前节点与所述历史SLAM地图之间是否满足设定的强关联条件包括:
判断当前节点的父节点是否为所述历史SLAM地图中的关键帧,若是,确定当前节点与所述历史SLAM地图之间满足设定的强关联条件,若否,确定当前节点与所述历史SLAM地图之间不满足设定的强关联条件;和/或,
判断当前节点是否与所述历史SLAM地图中的至少一个关键帧满足以下条件:相匹配的特征点的数量大于第三阈值N3;若是,确定当前节点与所述历史SLAM地图之间满足设定的强关联条件,若否,确定当前节点与所述历史SLAM地图之间不满足设定的强关联条件。
7.根据权利要求3所述的方法,其特征在于,所述依据该关键帧的第一位姿信息、第二位姿信息更新所述地图点在所述第一SLAM地图中的位置包括:
利用该关键帧的第一位姿信息、第二位姿信息对所述地图点的坐标位置信息进行坐标转换;
依据转换后的坐标位置信息更新所述地图点在所述第一SLAM地图的位置。
8.根据权利要求1所述的方法,其特征在于,所述依据所述历史SLAM地图修正所述第一SLAM地图包括:
将所述历史SLAM地图中的地图点与第一SLAM地图中的地图点进行融合,得到全局SLAM地图;
对所述全局SLAM地图中的关键帧的位姿信息和关键帧相关联的地图点的位置进行修正,以使修正后得到的SLAM地图中,关联至少一个相同地图点的关键帧之间的位姿信息之差满足设定条件。
9.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
对第一SLAM地图中的所有关键帧进行分组,得到至少两个关键帧组;
针对每一关键帧组,检查该关键帧组中关键帧的数量是否大于预设的数量阈值,若是,则从关键帧组中确定冗余关键帧,并从第一SLAM地图中删除所述冗余关键帧。
10.根据权利要求9所述的方法,其特征在于,所述对目标SLAM地图中的所有关键帧进行分组,得到至少两个关键帧组包括:
按照最大生成树算法并利用第一SLAM地图中所有关键帧生成关键帧树;
将所述关键帧树的根结点作为当前结点,针对所述关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值,若所述第一值小于预设的位姿差阈值,则将该其他结点与当前结点归入同一关键帧组;
检查与当前结点归入同一关键帧组的每一其他结点是否具有子结点,若否,结束当前流程;
若是,将与当前节点归入同一关键帧组的每一其他结点的每一子节点作为当前节点,返回针对所述关键帧树中除当前结点以外的每一其他结点,计算当前结点与该其他结点的位姿信息之差得到第一值的步骤。
11.根据权利要求9所述的方法,其特征在于,所述将第一关键帧插入已构建的第一SLAM地图时进一步包括:记录当前时间为第一关键帧的地图插入时间;
所述从关键帧组中确定冗余关键帧包括:
将所述关键帧组中地图插入时间最早的关键帧确定为冗余关键帧;或者,
针对所述关键帧组中的每一关键帧,确定该关键帧与该关键帧组中的其他关键帧之间的共视度;
将对应的共视度最小的关键帧确定为冗余关键帧。
12.根据权利要求9所述的方法,其特征在于,所述将第一关键帧插入已构建的第一SLAM地图时进一步包括:记录当前时间为第一关键帧的地图插入时间;
所述从关键帧组中确定冗余关键帧包括:
对关键帧组中的所有关键帧进行分类,其中,同一类别中的各关键帧关联有相同的地图点;
判断所有类别中是否存在满足指定条件的类别,所述指定条件为:所述类别中的关键帧不属于同一SLAM地图;
若是,则将所述满足指定条件的类别中地图插入时间最早的关键帧确定为冗余关键帧;
若否,则将所有类别的所有关键帧中地图插入时间最早的关键帧确定为冗余的关键帧。
13.一种基于SLAM的地图构建系统,其特征在于,所述系统包括图像采集设备、电子设备,其中,所述图像采集设备与所述电子设备通信连接;
所述图像采集设备,用于采集目标物理区域的图像;
所述电子设备,用于检查所述图像采集设备采集的图像是否满足预设的关键帧图像条件,如果是,确定所述图像为第一关键帧;将所述第一关键帧插入已构建的第一SLAM地图,并获取与第一SLAM地图相关联的历史SLAM地图,所述历史SLAM地图与所述第一SLAM地图对应同一物理区域;依据所述历史SLAM地图判断是否需要对第一SLAM地图进行修正;若是,则依据所述历史SLAM地图修正所述第一SLAM地图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905403.3A CN112634395B (zh) | 2019-09-24 | 2019-09-24 | 一种基于slam的地图构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905403.3A CN112634395B (zh) | 2019-09-24 | 2019-09-24 | 一种基于slam的地图构建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112634395A true CN112634395A (zh) | 2021-04-09 |
CN112634395B CN112634395B (zh) | 2023-08-25 |
Family
ID=75282643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910905403.3A Active CN112634395B (zh) | 2019-09-24 | 2019-09-24 | 一种基于slam的地图构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112634395B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113313099A (zh) * | 2021-07-31 | 2021-08-27 | 广东兴睿科技有限公司 | 一种基于遥感影像地图的实时获取方法、系统和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107369183A (zh) * | 2017-07-17 | 2017-11-21 | 广东工业大学 | 面向mar的基于图优化slam的跟踪注册方法及系统 |
CN107845114A (zh) * | 2017-11-10 | 2018-03-27 | 北京三快在线科技有限公司 | 地图的构建方法、装置及电子设备 |
KR20180113060A (ko) * | 2017-04-05 | 2018-10-15 | 충북대학교 산학협력단 | 그래프 slam을 위한 키프레임 추출방법 및 이를 이용한 slam 장치 |
CN108682027A (zh) * | 2018-05-11 | 2018-10-19 | 北京华捷艾米科技有限公司 | 基于点、线特征融合的vSLAM实现方法及系统 |
CN109556596A (zh) * | 2018-10-19 | 2019-04-02 | 北京极智嘉科技有限公司 | 基于地面纹理图像的导航方法、装置、设备及存储介质 |
WO2019169540A1 (zh) * | 2018-03-06 | 2019-09-12 | 斯坦德机器人(深圳)有限公司 | 紧耦合视觉slam的方法、终端及计算机可读存储介质 |
CN110246182A (zh) * | 2019-05-29 | 2019-09-17 | 深圳前海达闼云端智能科技有限公司 | 基于视觉的全局地图定位方法、装置、存储介质和设备 |
-
2019
- 2019-09-24 CN CN201910905403.3A patent/CN112634395B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180113060A (ko) * | 2017-04-05 | 2018-10-15 | 충북대학교 산학협력단 | 그래프 slam을 위한 키프레임 추출방법 및 이를 이용한 slam 장치 |
CN107369183A (zh) * | 2017-07-17 | 2017-11-21 | 广东工业大学 | 面向mar的基于图优化slam的跟踪注册方法及系统 |
CN107845114A (zh) * | 2017-11-10 | 2018-03-27 | 北京三快在线科技有限公司 | 地图的构建方法、装置及电子设备 |
WO2019169540A1 (zh) * | 2018-03-06 | 2019-09-12 | 斯坦德机器人(深圳)有限公司 | 紧耦合视觉slam的方法、终端及计算机可读存储介质 |
CN108682027A (zh) * | 2018-05-11 | 2018-10-19 | 北京华捷艾米科技有限公司 | 基于点、线特征融合的vSLAM实现方法及系统 |
CN109556596A (zh) * | 2018-10-19 | 2019-04-02 | 北京极智嘉科技有限公司 | 基于地面纹理图像的导航方法、装置、设备及存储介质 |
CN110246182A (zh) * | 2019-05-29 | 2019-09-17 | 深圳前海达闼云端智能科技有限公司 | 基于视觉的全局地图定位方法、装置、存储介质和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113313099A (zh) * | 2021-07-31 | 2021-08-27 | 广东兴睿科技有限公司 | 一种基于遥感影像地图的实时获取方法、系统和存储介质 |
CN113313099B (zh) * | 2021-07-31 | 2021-10-29 | 广东兴睿科技有限公司 | 一种基于遥感影像地图的实时获取方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112634395B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110335319B (zh) | 一种语义驱动的相机定位与地图重建方法和系统 | |
CN107833236B (zh) | 一种动态环境下结合语义的视觉定位系统和方法 | |
US10996062B2 (en) | Information processing device, data management device, data management system, method, and program | |
JP7326720B2 (ja) | 移動体位置推定システムおよび移動体位置推定方法 | |
CN114236552B (zh) | 基于激光雷达的重定位方法及系统 | |
US11003939B2 (en) | Information processing apparatus, information processing method, and storage medium | |
CN108682027A (zh) | 基于点、线特征融合的vSLAM实现方法及系统 | |
Eade et al. | Unified loop closing and recovery for real time monocular SLAM. | |
CN110533587A (zh) | 一种基于视觉先验信息和地图恢复的slam方法 | |
CN108332758B (zh) | 一种移动机器人的走廊识别方法及装置 | |
CN112179330A (zh) | 移动设备的位姿确定方法及装置 | |
CN111274847B (zh) | 一种定位方法 | |
CN114623817B (zh) | 基于关键帧滑窗滤波的含自标定的视觉惯性里程计方法 | |
JP7231996B2 (ja) | 情報処理方法および情報処理システム | |
JP2013117795A (ja) | 画像処理装置、画像処理方法 | |
CN110390356B (zh) | 视觉词典生成方法及装置、存储介质 | |
US11568598B2 (en) | Method and device for determining an environment map by a server using motion and orientation data | |
JPWO2018235219A1 (ja) | 自己位置推定方法、自己位置推定装置および自己位置推定プログラム | |
KR101916573B1 (ko) | 다중 객체 추적 방법 | |
CN115049731A (zh) | 一种基于双目摄像头的视觉建图和定位方法 | |
CN112634395B (zh) | 一种基于slam的地图构建方法及装置 | |
CN112214629B (zh) | 基于图像识别的回环检测方法及可移动设备 | |
CN117537812A (zh) | 基于量化窗口的立体视觉惯性里程计定位方法及系统 | |
CN116563341A (zh) | 一种处理复杂环境下动态物体的视觉定位与建图方法 | |
CN116563352A (zh) | 融合深度视觉信息的单线激光雷达回环检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |