CN116012744A - 一种闭环检测方法、装置、设备及存储介质 - Google Patents
一种闭环检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116012744A CN116012744A CN202111215048.0A CN202111215048A CN116012744A CN 116012744 A CN116012744 A CN 116012744A CN 202111215048 A CN202111215048 A CN 202111215048A CN 116012744 A CN116012744 A CN 116012744A
- Authority
- CN
- China
- Prior art keywords
- frame image
- current frame
- closed loop
- feature
- pose
- 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.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种闭环检测方法、装置、设备及存储介质。在获取到当前帧图像后,从当前帧图像中提取特征描述子,并计算无人设备的位姿,基于特征描述子从多帧历史关键帧图像中确定候选帧图像,基于位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像。在闭环检测过程中,引入当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度来进行闭环检测,引入视觉单词的空间位置信息,进而提高了闭环检测的准确率。
Description
技术领域
本发明实施例涉及机器视觉技术领域,尤其涉及一种闭环检测方法、装置、设备及存储介质。
背景技术
闭环检测(Loop Closure Detection)已经成为了移动机器人导航领域的关键问题和研究热点,尤其是在同时定位与地图构建(Simultaneous Localization andMapping,SLAM)的问题上。
闭环检测指的是利用局部场景的视觉和空间的信息来检测机器人或传感器是否返回到了一个之前已经来到过的地点,然后对原来构建的地图进行更新、修正。正确的闭环检测可以消除局部观测的误差累积,加入对位姿的时间间隔更远的约束,提高全局一致性。然而,错误的闭环检测会导致地图绘制失败。因此,一个好的闭环检测算法对于构建全局一致性地图乃至整个SLAM***都至关重要。
由于视觉传感器的成本进一步降低,目前机器人***里常常使用基于视觉词袋模型(Bag-of-Words model,BoW)的算法来辅助闭环。但是基于视觉词袋模型的算法仅依赖于视觉信息而不考虑位姿,缺少视觉单词的空间位置信息,导致闭环检测准确率较低。
发明内容
本发明提供一种闭环检测方法、装置、设备及存储介质,以提高闭环检测的准确率。
第一方面,本发明实施例提供了一种闭环检测方法,包括:
获取当前帧图像;
从所述当前帧图像中提取特征描述子;
计算无人设备的位姿;
基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
第二方面,本发明实施例还提供了闭环检测装置,包括:
图像获取模块,用于获取当前帧图像;
特征描述子提取模块,用于从所述当前帧图像中提取特征描述子;
位姿计算模块,用于计算无人设备的位姿;
候选帧确定模块,用于基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
闭环确定模块,用于基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
第三方面,本发明实施例还提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明第一方面提供的闭环检测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面提供的闭环检测方法。
本发明实施例提供的闭环检测方法,在获取到当前帧图像后,从当前帧图像中提取特征描述子,并计算无人设备的位姿,基于特征描述子从多帧历史关键帧图像中确定候选帧图像,基于位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像。在闭环检测过程中,引入当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度来进行闭环检测,引入视觉单词的空间位置信息,进而提高了闭环检测的准确率。
附图说明
图1为本发明实施例一提供的一种闭环检测方法的流程图;
图2A、2B为本发明实施例二提供的一种闭环检测方法的流程图;
图2C为本发明实施例提供的一种用于提取特征描述子的卷积神经网络的结构示意图;
图3为本发明实施例三提供的一种闭环检测装置的结构示意图;
图4为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种闭环检测方法的流程图,本实施例可适用于无人设备的闭环检测,该方法可以由本发明实施例提供的闭环检测装置来执行,该装置可以由软件和/或硬件的方式实现,通常配置于计算机设备中,如图1所示,该方法具体包括如下步骤:
S101、获取当前帧图像。
本发明实施例用于无人设备的闭环检测,无人设备可以是机器人、无人车等。无人设备可以包括控制设备、总线、ECU(Electronic Control Unit,电子控制单元)、传感器和执行器件。
其中。控制设备负责整个无人设备的总体智能控制。控制设备可以是单独设置的控制器,例如可编程逻辑控制器(Programmable LogicController,PLC)、单片机、工业控制机等;也可以是由其他具有输入/输出端口,并具有运算控制功能的电子器件组成的设备;还可以是安装有无人设备控制类应用的计算机设备。控制设备可以对从总线上接收到的ECU发来的数据和/或传感器发来的数据进行分析处理,做出相应的决策,并将决策对应的指令发送到总线。
总线可以是用于连接控制设备、ECU、传感器以及无人设备的其他未示出的设备的总线。由于CAN(Controller AreaNetwork,控制器局域网络)总线的高性能和可靠性已被广泛认同,因此目前无人设备中常用的总线为CAN总线。当然,可以理解的是总线也可以是其他类型的总线。
总线可以将控制设备发出的指令发送给ECU,ECU将上述指令进行分析处理后发给相应的执行器件执行。
上述传感器包括但不限于激光雷达、相机,等等。
需要说明的是,本发明实施例所提供的闭环检测方法可以由控制设备执行,相应地,闭环检测装置一般设置于控制设备中。
在无人设备行进过程中,相机实时采集无人设备前方的图像作为当前帧图像,控制设备从相机处获取采集的当前帧图像。
S102、从当前帧图像中提取特征描述子。
物体识别的核心问题是将同一目标在不同时间、不同分辨率、不同光照、不同位姿情况下所成的像相匹配。而为了进行匹配,我们首先要合理的表示图像。由于目标的自身状态、场景所处的环境的影响,同一类物体在不同的图像中所成的像往往会差别很大,但即使这样,我们也能通过同一物体的一些局部共性来识别出物体。所谓特征描述子就是用来刻画图像中的这些局部共性的,而我们也可以将一幅图像映射(变换)为特征描述子的集合。理想的特征描述子应具有平移、缩放、旋转不变性,同时对光照变化、仿射及投影影响也应有很好的鲁棒性。
示例性的,在本发明实施例中,可以采用SIFT、SURF、BRIEF、VLAD或NetVLAD等算法从当前帧图像中提取特征描述子,本发明实施例在此不做限定。
S103、计算无人设备的位姿。
在本发明实施例中,基于SLAM算法计算当前帧图像对应的无人设备的位姿。SLAM可以描述为:无人设备在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现无人设备的自主定位和导航。目前按照传感器的不同,SLAM主要分为这两类,一种是基于激光雷达的激光SLAM(Lidar SLAM)和基于视觉的VSLAM(Visual SLAM)。示例性的,在本发明实施例中,无人设备搭载有激光雷达,基于Lidar SLAM或Visual SLAM计算出当前帧图像的无人设备的位姿。
按照无人设备的初始位姿是否已知,可分为初始位姿已知的位姿跟踪(Posetracking)和初始位姿未知的全局定位(Global localization)。
位姿跟踪是在已知无人设备的初始位姿的条件下,在无人设备的运动过程中通过将观测到的特征与地图中的特征进行匹配,求取它们之间的差别,进而更新无人设备的位姿的无人设备定位方法。
全局定位是在无人设备的初始位姿不确定的条件下,利用局部的、不完全的观测信息估计无人设备的当前位姿。
S104、基于特征描述子从多帧历史关键帧图像中确定候选帧图像。
在本发明实施例中,在从相机获取图像的过程中,每隔预设时长(例如10S)选取一帧图像作为关键帧图像,需要设置合适的时间间隔,以增大相邻的两帧关键帧图像的区别。历史关键帧图像即为当前帧图像之前的关键帧图像。
基于特征描述子从多帧历史关键帧图像中确定候选帧图像,示例性的,计算当前帧图像的特征描述子与多帧历史关键帧图像的特征描述子的相似度,并将相似度按照降序排列,取相似度排名靠前的N个历史关键帧图像作为候选帧图像。
S105、基于当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像。
在本发明实施例中,基于当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像。在闭环检测过程中,引入当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度来进行闭环检测,引入视觉单词的空间位置信息,进而提高了闭环检测的准确率。
本发明实施例提供的闭环检测方法,在获取到当前帧图像后,从当前帧图像中提取特征描述子,并计算无人设备的位姿,基于特征描述子从多帧历史关键帧图像中确定候选帧图像,基于位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像。在闭环检测过程中,引入当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度来进行闭环检测,引入视觉单词的空间位置信息,进而提高了闭环检测的准确率。
实施例二
图2A、2B为本发明实施例二提供的一种闭环检测方法的流程图,本实施例在上述实施例一的基础上进行细化,详细描述了闭环检测方法中各步骤的具体实现过程,如图2A、2B所示,该方法包括:
S201、获取当前帧图像。
在无人设备行进过程中,相机实时采集无人设备前方的图像作为当前帧图像,控制设备从相机处获取采集的当前帧图像。
S202、采用卷积神经网络的骨干网络对当前帧图像进行特征提取,得到多个局部特征。
图2C为本发明实施例提供的一种用于提取特征描述子的卷积神经网络的结构示意图,如图2C所示,该卷积神经网络包括主干网络、NetVLAD层和PCA层。本发明采用精确度更高的卷积神经网络提取特征描述子,所提取的视觉特征的鲁棒性更高,匹配效果更好,有利于提高闭环检测准确度。
在本发明实施例中,主干网络为VGG16网络,VGG16网络包括13个卷积层和5个池化层。每个卷积层都不会改变前一层的特征图的长和宽,通过卷积层可以实现通道数的增加。5个池化层分别分布在2或者3次卷积之后,池化层的对输入的特征图进行最大池化操作或平均池化操作,降低特征图尺寸并且能提高网络抗干扰能力。最后的池化层输出多个局部特征组成的特征图。
S203、对多个局部特征进行聚类,得到全局特征图。
在本发明实施例中,对上述得到的多个局部特征进行聚类处理,将局部特征聚类得到一个向量,也即全局特征图。
示例性的,在本发明的一些实施例中,采用VLAD或NetVLAD算法对多个局部特征进行聚类,得到全局特征图。
示例性的,VLAD算法流程如下:
设主干网络提取到N个D维的局部特征,对全部的N×D特征图进行K-means聚类,获得K个聚类中心,记为Ck。通过以下公式,将N×D的特征图转为一个全局特征图V,全局特征图大小为K×D。公式如下:
其中,xi表示第i个局部特征,ck表示第k个聚类中心,xi和ck都是D维向量。ak(xi)是一个符号函数,如果xi不属于聚类中心ck,则ak(xi)=0;如果xi属于聚类中心ck,则ak(xi)=1。
由上式可以看出,该式累加了每个聚类的所有特征残差,最终得到了K个全局特征组成的全局特征图。K个全局特征表达了聚类范围内局部特征的某种分布,这种分布通过xi-ck抹去了图像本身的特征分布差异,只保留了局部特征与聚类中心的分布差异。
VLAD是一个不可导的函数,其主要不可导的地方在于ak(xi)是一个符号函数。为了VLAD变得可导,我们需要将其变得平滑,即可微。根据ak(xi)的特性,我们可以将其平滑为一个权重函数,即xi与ck越相近,ak(xi)越接近1,反之越接近0。可设计如下公式:
将上式展开,化简后可得如下公式:
其中,wk=2ack,bk=-a||ck||2。
因此,NetVLAD算法的公式如下:
其中,wk、bk和ck就是NetVLAD要学习的参数。从VLAD到NetVLAD的最大变化是原本需要通过聚类获得的参数ck变成了通过训练得到。这样就可以把VLAD变成了一个分类问题,即设定有K个分类,计算局部特征在这K个分类的差值分布来得到全局特征图V(j,k)。
S204、对全局特征图进行归一化处理,得到归一化特征。
如图2C所示,对NetVLAD输出的全局特征图进行归一化处理,得到归一化特征。具体的,先对齐通过内部归一化层转换为向量,然后采用L2范数归一化算法进行整体归一化,得到归一化特征。
S205、对归一化特征进行降维处理,得到用于表征归一化特征的有效信息的降维特征。
上述得到的归一化特征为一个维度非常高的向量,在后续筛选候选帧图像的过程中,筛选匹配工作量非常大,导致筛选效率较低。本发明实施例中,通过对高维的归一化特征进行降维处理,得到用于表征归一化特征的有效信息的降维特征,在保留了归一化特征的有效信息的前提下,降低了在筛选候选帧图像过程中的工作量,节约了计算资源,提高了筛选效率。
示例性的,在本发明实施例中,采用主成分分析(Principal ComponentAnalysis,PCA)和白化的方法对归一化特征进行降维,具体过程如下:
1、对归一化特征进行主成分分析,得到归一化特征的主成分特征。
主成分分析是一种常见的数据分析方式,常用于高维数据的降维,可用于提取数据的主要特征分量。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。示例性的,在本发明实施例中,对归一化特征进行主成分分析,包括如下子步骤:
1.1、计算归一化特征中所有元素的协方差矩阵。
对于高维数据,我们用协方差来表示数据的分散程度。协方差可以表示两个变量的相关性。为了让两个变量尽可能表示更多的原始信息,我们希望它们之间不存在线性相关性,因为相关性意味着两个变量不是完全独立,必然存在重复表示的信息。
协方差矩阵用于表示归一化特征中各元素与其他任意元素的相关性。协方差矩阵的计算公式如下:
其中,m为归一化特征中元素的总数量,xi为归一化特征中第i个元素,(xi)T为xi的转置。
1.2、对协方差矩阵进行奇异值分解,得到协方差矩阵的多个特征分量。
在求出协方差矩阵后,对协方差矩阵进行奇异值分解,得出的U向量中的每一列就是协方差矩阵的特征分量。具体的,分解过程如下:
其中,U为正交矩阵,u1…un为特征分量。
1.3、选择前k个特征分量作为主分量。
具体的,将排在前面的k个特征分量(u1…uk)作为主分量。
1.4、将归一化特征中各元素的值投影至主分量,得到用于表征归一化特征的主成分的主成分特征。
具体的,将归一化特征中各元素的值投影至主分量,实现对归一化特征的降维,得到用于表征归一化特征的主成分的主成分特征。
2、对主成分特征进行白化处理,得到用于表征归一化特征的有效信息的降维特征。
由于当前帧图像中各相邻像素是相关的,也即主成分特征中各元素是相关的,所以主成分特征中一些信息是冗余的,白化(whitening)就是要降低输入的冗余性。具体的,在本发明实施例中,对主成分特征图进行白化处理。数据的白化必须满足两个条件:一是不同特征间相关性最小,接近0;二是所有特征的方差相等(不一定为1)。
如前文所述,经PCA处理后,得到主成分特征,主成分特征包括k个主分量,各主分量之间是独立的,不相关。满足白化的第一个条件,因此,只需要将主成分特征中的每一主分量都除以标准差就得到了每一主分量的方差为1,也就是说方差相等。因此,对局部特征的k个主分量中每一主分量的数据进行标准差归一化处理,得到用于表征归一化特征的有效信息的降维特征图。
S206、对降维特征进行归一化处理,得到当前帧图像的特征描述子。
示例性的,如图2C所示,对上述得到的降维特征进行L2范数归一化,得到当前帧图像的特征描述子。
S207、计算无人设备的位姿。
在本发明实施例中,基于SLAM算法计算当前帧图像对应的无人设备的位姿。具***姿计算过程在前述实施例中已有详细记载,本发明实施例在此不再赘述。
SLAM算法在定位的同时,还负责建图,将相邻帧图像中关联性强的元素建立一个子图,并赋予该子图唯一的子图ID。随着无人设备的运行,得到由多个子图构成的全局地图。
S208、从多帧历史关键帧图像的特征描述子组成的k-d树中搜索与当前帧图像的特征描述子的相似度排名前N个历史关键帧图像的特征描述子作为目标特征描述子。
在本发明实施例中,在从相机获取图像的过程中,每隔预设时长(例如10S)选取一帧图像作为关键帧图像,需要设置合适的时间间隔,以增大相邻的两帧关键帧图像的区别。历史关键帧图像即为当前帧图像之前的关键帧图像。
示例性的,在本发明实施例中,预先构建三个数据库,分别为数据库1、数据库2和数据库3。对于首帧关键帧图像,首先初始化上述三个数据库。然后将表示首帧关键帧图像的采集时间的时间戳作为索引(key),将首帧关键帧图像对应的子图ID作为数值(value),加入到数据库1中。将首帧关键帧图像的描述子的哈希值作为索引(key),将表示首帧关键帧图像的采集时间的时间戳作为数值(value),加入到数据库2中,其中,哈希值可以通过哈希算法对特征描述子进行计算得到。将首帧关键帧图像对应的子图ID作为索引(key),将首帧关键帧图像对应的无人设备的位姿作为数值(value),加入到数据库3中。此外,预先构建特征描述子的k-d树,对于首帧关键帧图像,首先初始化特征描述子的k-d树,然后将首帧关键帧图像的特征描述子加入到k-d树中。k-d树是k-dimensional tree的缩写,是一种在k维欧几里得空间组织点的数据结构,k-d树是每个节点都为k维点的二叉树。k-d树可以用来进行快速的特征相似性检索。利用k-d树可以省去对大部分数据点的搜索,从而减少搜索的计算量。
对于非首帧关键帧图像,无需再对三个数据库和k-d树进行初始化。类似的,将关键帧图像采集时间的时间戳作为索引(key),将关键帧图像对应的子图ID作为数值(value),加入到数据库1中。将关键帧图像的描述子的哈希值作为索引(key),将表示关键帧图像的采集时间的时间戳作为数值(value),加入到数据库2中。将关键帧图像对应的子图ID作为索引(key),将关键帧图像对应的无人设备的位姿作为数值(value),加入到数据库3中。将关键帧图像的特征描述子加入到k-d树中。
在本发明实施例中,采用最近邻域搜索算法,通过二叉搜索,顺着搜索路径很快就能找到最邻近的N个子节点(即历史关键帧图像的特征描述子),即与当前帧图像的特征描述子的相似度排名前N个历史关键帧图像的特征描述子,将该特征描述子作为目标特征描述子。
S209、将目标特征描述子与当前帧图像的特征描述子的相似度与预设的相似度阈值进行比较。
示例性的,对于N个目标特征描述子,计算各目标特征描述子与当前帧图像的特征描述子的余弦相似度,并将各余弦相似度与预设的相似度阈值进行比较。
S210、若所有目标特征描述子与当前帧图像的特征描述子的相似度均小于相似度阈值,则丢弃当前帧图像。
具体的,若所有目标特征描述子与当前帧图像的特征描述子的相似度均小于相似度阈值,则认为未检测到闭环,丢弃当前帧图像,并返回执行获取当前帧图像的步骤,重新检测闭环。
S211、若存在至少一帧历史关键帧图像的目标特征描述子与当前帧图像的特征描述子的相似度大于或等于相似度阈值,则将至少一帧历史关键帧图像作为候选帧图像。
具体的,若存在至少一帧(例如K帧,K小于或等于N)历史关键帧图像的目标特征描述子与当前帧图像的特征描述子的相似度大于或等于相似度阈值,则将该K帧历史关键帧图像作为候选帧图像。
下面将阐述基于当前帧图像对应的无人设备的位姿与候选帧图像中无人设备的位姿的匹配度,以及当前帧图像的采集时间和候选帧图像的采集时间的时间间隔,从多帧候选帧图像中确定与当前帧图像存在闭环的目标图像的过程,具体如步骤S212-步骤S217所示。
S212、计算当前帧图像与候选帧图像的采集时间的时间间隔。
具体的,对于每一候选帧图像,采用哈希算法对候选帧图像的特征描述子进行计算,得到哈希值,将该哈希值作为索引,从数据库2中找到候选帧图像的时间戳。根据当前帧图像的时间戳和候选帧图像的时间戳计算当前帧图像与候选帧图像的采集时间的时间间隔。
S213、若时间间隔均小于第一预设时长,则丢弃当前帧图像。
若计算得到的K个时间间隔均小于第一预设时长,则认为未检测到闭环,丢弃当前帧图像,并返回执行获取当前帧图像的步骤,重新检测闭环。
S214、若存在至少一帧候选帧图像与当前帧图像的采集时间的时间间隔大于或等于第一预设时长,则获取至少一帧候选帧图像对应的无人设备的位姿。
若存在至少一帧(例如M帧,M小于或等于K)候选帧图像与当前帧图像的采集时间的时间间隔大于或等于第一预设时长,则以候选帧图像的时间戳为索引,从数据库1中找到该M帧候选帧图像对应的子图ID。然后,以M帧候选帧图像对应的子图ID为索引,从数据库3中找到M帧候选帧图像对应的无人设备的位姿。
S215、计算当前帧图像对应的无人设备的位姿与至少一帧候选帧图像对应的无人设备的位姿的匹配度。
在本发明实施例中,无人设备的位姿以向量形式表达。计算当前帧图像对应的无人设备的位姿与M帧候选帧图像对应的无人设备的位姿的匹配度,即计算两个向量之间的余弦相似度。
S216、若匹配度均小于预设的匹配度阈值,则丢弃当前帧图像。
若上述得到的M个匹配度均小于预设的匹配度阈值,则认为未检测到闭环,丢弃当前帧图像,并返回执行获取当前帧图像的步骤,重新检测闭环。
S217、若存在至少一帧候选帧图像对应的无人设备的位姿与当前帧图像对应的无人设备的位姿的匹配度大于或等于匹配度阈值,则将匹配度最大的帧候选帧图像作为与当前帧图像存在闭环的目标图像。
若存在至少一帧(例如H帧,H小于或等于M)候选帧图像对应的无人设备的位姿与当前帧图像对应的无人设备的位姿的匹配度大于或等于匹配度阈值,则确定检测到闭环,并将匹配度最大的帧候选帧图像作为与当前帧图像存在闭环的目标图像。
在本发明的一些实施例中,在确定目标图像后,将闭环检测加入到机器人建图或者定位中,优化机器人位姿及地图。
本发明实施例提供的闭环检测方法,在闭环检测过程中,引入当前帧图像中无人设备的位姿与候选帧图像中无人设备的位姿的匹配度来进行闭环检测,引入视觉单词的空间位置信息,进而提高了闭环检测的准确率。采用精确度更高的卷积神经网络提取特征描述子,所提取的视觉特征的鲁棒性更高,匹配效果更好,有利于提高闭环检测准确度。采用k-d树从历史关键帧图像中检索候选特征,提高了检索效率。
实施例三
图3为本发明实施例三提供的一种闭环检测装置的结构示意图,如图3所示,该装置包括:
图像获取模块301,用于获取当前帧图像;
特征描述子提取模块302,用于从所述当前帧图像中提取特征描述子;
位姿计算模块303,用于计算无人设备的位姿;
候选帧确定模块304,用于基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
闭环确定模块305,用于基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
在本发明的一些实施例中,特征描述子提取模块302包括:
局部特征提取子模块,用于采用卷积神经网络的骨干网络对当前帧图像进行特征提取,得到多个局部特征;
聚类子模块,用于对多个所述局部特征进行聚类,得到全局特征图;
第一归一化子模块,用于对所述全局特征图进行归一化处理,得到归一化特征;
降维子模块,用于对所述归一化特征进行降维处理,得到用于表征所述归一化特征的有效信息的降维特征;
第二归一化子模块,用于对所述降维特征进行归一化处理,得到当前帧图像的特征描述子。
在本发明的一些实施例中,聚类子模块采用NetVLAD算法对多个所述局部特征进行聚类,得到全局特征图。
在本发明的一些实施例中,降维子模块包括:
主成分分析单元,用于对所述归一化特征进行主成分分析,得到所述归一化特征的主成分特征;
白化处理单元,用于对所述主成分特征进行白化处理,得到用于表征所述归一化特征的有效信息的降维特征。
在本发明的一些实施例中,主成分分析单元包括:
协方差计算子单元,用于计算所述归一化特征中所有元素的协方差矩阵;
奇异值分解子单元,用于对所述协方差矩阵进行奇异值分解,得到所述协方差矩阵的多个特征分量;
主分量确定子单元,用于选择前k个特征分量作为主分量;
投影子单元,用于将所述归一化特征中各元素的值投影至所述主分量,得到所述归一化特征的主成分特征。
在本发明的一些实施例中,候选帧确定模块304包括:
目标特征描述子确定子模块,用于从多帧历史关键帧图像的特征描述子组成的k-d树中搜索与当前帧图像的特征描述子的相似度排名前N个历史关键帧图像的特征描述子作为目标特征描述子;
比较子模块,用于将所述目标特征描述子与当前帧图像的特征描述子的相似度与预设的相似度阈值进行比较;
第一丢弃返回子模块,用于若所有目标特征描述子与当前帧图像的特征描述子的相似度均小于所述相似度阈值,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
候选帧确定子模块,用于若存在至少一帧历史关键帧图像的目标特征描述子与当前帧图像的特征描述子的相似度大于或等于所述相似度阈值,则将所述至少一帧历史关键帧图像作为候选帧图像。
在本发明的一些实施例中,闭环确定模块305包括:
时间间隔计算子模块,用于计算所述当前帧图像与所述候选帧图像的采集时间的时间间隔;
第二丢弃返回子模块,若所述时间间隔均小于第一预设时长,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
位姿获取子模块,若存在至少一帧候选帧图像与所述当前帧图像的采集时间的时间间隔大于或等于第一预设时长,则获取所述至少一帧候选帧图像对应的所述无人设备的位姿;
位姿匹配度计算子模块,用于计算所述当前帧图像对应的所述无人设备的位姿与所述至少一帧候选帧图像对应的所述无人设备的位姿的匹配度;
第三丢弃返回子模块,若所述匹配度均小于预设的匹配度阈值,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
闭环确定子模块,若存在至少一帧候选帧图像对应的所述无人设备的位姿与所述当前帧图像对应的所述无人设备的位姿的匹配度大于或等于所述匹配度阈值,则将匹配度最大的帧候选帧图像作为与所述当前帧图像存在闭环的目标图像。
在本发明的一些实施例中,闭环检测装置还包括:
关键帧图像确定模块,用于基于当前帧图像与前一历史关键帧图像的采集时间的时间间隔,确定所述当前帧图像是否为关键帧图像;
k-d树加入模块,若所述当前帧图像是关键帧图像,则将所述当前帧图像的特征描述子加入k-d树中。
上述闭环检测装置可执行本发明任意实施例所提供的闭环检测方法,具备执行闭环检测方法相应的功能模块和有益效果。
实施例四
本发明实施例四提供了一种计算机设备,图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括:
处理器401、存储器402、通信模块403、输入装置404和输出装置405;计算机设备中处理器401的数量可以是一个或多个,图4中以一个处理器401为例;计算机设备中的处理器401、存储器402、通信模块403、输入装置404和输出装置405可以通过总线或其他方式连接,图4中以通过总线连接为例。上述处理器401、存储器402、通信模块403、输入装置404和输出装置405可以集成在计算机设备上。
存储器402作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如上述实施例中的闭环检测方法对应的模块。处理器401通过运行存储在存储器402中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的闭环检测方法。
存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据微型计算机的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器402可进一步包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块403,用于与外界设备(例如智能终端)建立连接,并实现与外界设备的数据交互。输入装置404可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的计算机设备,可执行本发明上述任意实施例提供的闭环检测方法,具有相应的功能和有益效果。
实施例五
本发明实施例五提供了一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明上述任意实施例提供的闭环检测方法,该方法包括:
获取当前帧图像;
从所述当前帧图像中提取特征描述子;
计算无人设备的位姿;
基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
需要说明的是,对于装置、计算机设备和存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的闭环检测方法。
值得注意的是,上述装置中,所包括的各个模块、子模块、单元、子单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种闭环检测方法,其特征在于,包括:
获取当前帧图像;
从所述当前帧图像中提取特征描述子;
计算无人设备的位姿;
基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
2.根据权利要求1所述的闭环检测方法,其特征在于,从采集的当前帧图像中提取特征描述子,包括:
采用卷积神经网络的骨干网络对当前帧图像进行特征提取,得到多个局部特征;
对多个所述局部特征进行聚类,得到全局特征图;
对所述全局特征图进行归一化处理,得到归一化特征;
对所述归一化特征进行降维处理,得到用于表征所述归一化特征的有效信息的降维特征;
对所述降维特征进行归一化处理,得到当前帧图像的特征描述子。
3.根据权利要求2所述的闭环检测方法,其特征在于,对多个所述局部特征进行聚类,得到全局特征图,包括:
采用NetVLAD算法对多个所述局部特征进行聚类,得到全局特征图。
4.根据权利要求2所述的闭环检测方法,其特征在于,对所述归一化特征进行降维处理,得到用于表征所述归一化特征的有效信息的降维特征,包括:
对所述归一化特征进行主成分分析,得到所述归一化特征的主成分特征;
对所述主成分特征进行白化处理,得到用于表征所述归一化特征的有效信息的降维特征。
5.根据权利要求4所述的闭环检测方法,其特征在于,对所述归一化特征进行主成分分析,得到所述归一化特征的主成分特征,包括:
计算所述归一化特征中所有元素的协方差矩阵;
对所述协方差矩阵进行奇异值分解,得到所述协方差矩阵的多个特征分量;
选择前k个特征分量作为主分量;
将所述归一化特征中各元素的值投影至所述主分量,得到所述归一化特征的主成分特征。
6.根据权利要求1-5任一所述的闭环检测方法,其特征在于,基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像,包括:
从多帧历史关键帧图像的特征描述子组成的k-d树中搜索与当前帧图像的特征描述子的相似度排名前N个历史关键帧图像的特征描述子作为目标特征描述子;
将所述目标特征描述子与当前帧图像的特征描述子的相似度与预设的相似度阈值进行比较;
若所有目标特征描述子与当前帧图像的特征描述子的相似度均小于所述相似度阈值,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
若存在至少一帧历史关键帧图像的目标特征描述子与当前帧图像的特征描述子的相似度大于或等于所述相似度阈值,则将所述至少一帧历史关键帧图像作为候选帧图像。
7.根据权利要求1-5任一所述的闭环检测方法,其特征在于,基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像,包括:
计算所述当前帧图像与所述候选帧图像的采集时间的时间间隔;
若所述时间间隔均小于第一预设时长,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
若存在至少一帧候选帧图像与所述当前帧图像的采集时间的时间间隔大于或等于第一预设时长,则获取所述至少一帧候选帧图像对应的所述无人设备的位姿;
计算所述当前帧图像对应的所述无人设备的位姿与所述至少一帧候选帧图像对应的所述无人设备的位姿的匹配度;
若所述匹配度均小于预设的匹配度阈值,则丢弃当前帧图像,并返回执行获取当前帧图像的步骤;
若存在至少一帧候选帧图像对应的所述无人设备的位姿与所述当前帧图像对应的所述无人设备的位姿的匹配度大于或等于所述匹配度阈值,则将匹配度最大的帧候选帧图像作为与所述当前帧图像存在闭环的目标图像。
8.根据权利要求1-5任一所述的闭环检测方法,其特征在于,还包括:
基于当前帧图像与前一历史关键帧图像的采集时间的时间间隔,确定所述当前帧图像是否为关键帧图像;
若所述当前帧图像是关键帧图像,则将所述当前帧图像的特征描述子加入k-d树中。
9.一种闭环检测装置,其特征在于,包括:
图像获取模块,用于获取当前帧图像;
特征描述子提取模块,用于从所述当前帧图像中提取特征描述子;
位姿计算模块,用于计算无人设备的位姿;
候选帧确定模块,用于基于所述特征描述子从多帧历史关键帧图像中确定候选帧图像;
闭环确定模块,用于基于所述位姿与所述候选帧图像中所述无人设备的位姿的匹配度,以及当前帧图像的采集时间和所述候选帧图像的采集时间的时间间隔,从多帧所述候选帧图像中确定与当前帧图像存在闭环的目标图像。
10.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的闭环检测方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的闭环检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111215048.0A CN116012744A (zh) | 2021-10-19 | 2021-10-19 | 一种闭环检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111215048.0A CN116012744A (zh) | 2021-10-19 | 2021-10-19 | 一种闭环检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116012744A true CN116012744A (zh) | 2023-04-25 |
Family
ID=86035913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111215048.0A Pending CN116012744A (zh) | 2021-10-19 | 2021-10-19 | 一种闭环检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116012744A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958267A (zh) * | 2023-09-21 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 位姿处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-19 CN CN202111215048.0A patent/CN116012744A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958267A (zh) * | 2023-09-21 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 位姿处理方法、装置、电子设备及存储介质 |
CN116958267B (zh) * | 2023-09-21 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 位姿处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tsintotas et al. | The revisiting problem in simultaneous localization and mapping: A survey on visual loop closure detection | |
CN109359725B (zh) | 卷积神经网络模型的训练方法、装置、设备及计算机可读存储介质 | |
Kejriwal et al. | High performance loop closure detection using bag of word pairs | |
Cao et al. | Landmark recognition with compact BoW histogram and ensemble ELM | |
Garcia-Fidalgo et al. | Vision-based topological mapping and localization methods: A survey | |
Liu et al. | Visual loop closure detection with a compact image descriptor | |
Angeli et al. | Fast and incremental method for loop-closure detection using bags of visual words | |
Xia et al. | Loop closure detection for visual SLAM using PCANet features | |
Wu et al. | Discriminative deep face shape model for facial point detection | |
Kafai et al. | Reference face graph for face recognition | |
CN108229347B (zh) | 用于人识别的拟吉布斯结构采样的深层置换的方法和装置 | |
An et al. | Fast and incremental loop closure detection with deep features and proximity graphs | |
Sunderrajan et al. | Context-aware hypergraph modeling for re-identification and summarization | |
Chen et al. | Shape-Former: Bridging CNN and Transformer via ShapeConv for multimodal image matching | |
CN112614187A (zh) | 回环检测方法、装置、终端设备和可读存储介质 | |
CN107223242B (zh) | 用于在多个已存储图像中搜索相似图像的方法 | |
Tsintotas et al. | Tracking‐DOSeqSLAM: A dynamic sequence‐based visual place recognition paradigm | |
KR20120080629A (ko) | 인식을 위한 글로벌-로컬 메트릭의 계산 방법 | |
Korrapati et al. | Multi-resolution map building and loop closure with omnidirectional images | |
Wang et al. | Online visual place recognition via saliency re-identification | |
CN114332893A (zh) | 表格结构识别方法、装置、计算机设备和存储介质 | |
Lynen et al. | Trajectory-based place-recognition for efficient large scale localization | |
Garcia-Fidalgo et al. | Vision-based topological mapping and localization by means of local invariant features and map refinement | |
CN116012744A (zh) | 一种闭环检测方法、装置、设备及存储介质 | |
CN114358205A (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 |