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

回环检测方法、装置、终端设备和可读存储介质

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


回环检测方法、装置、终端设备和可读存储介质

技术领域

本申请涉及图像处理技术领域,尤其涉及一种回环检测方法、装置、终端设备和可读存储介质。

背景技术

回环检测,又称闭环检测,例如,对于机器人而言,是指机器人识别曾到达某场景,使得地图闭环的能力。换句话说,就是机器人在左转一下,右转一下进行建图的时候,能够意识到某个地方是自己曾经经过的,然后把此刻生成的地图与刚刚生成的地图做匹配。

传统的视觉SLAM(simultaneous localization and mapping,同步定位与建图)技术在实现回环检测时是通过收集大量的图片,然后采用特征提取方法提取特征点,接着采用一些分类方法,将这些特征点分为不同的类型,建立特征点集合字典。对于机器人采集的新图片,再次提取特征点,然后查询特征点字典。判断该特征点是属于哪一个类型,进而根据两张图片的相似度来检测回环,也称为视觉词袋模型。

然而,由于存在大量的图像,上述的利用图像的像素点提取及字典查询的方式存在耗时长的问题,这使得机器人在移动过程不能实时准确地判断识别自己是否到过这个地方,导致位姿漂移,进而给位姿局部优化造成困扰等等。

发明内容

有鉴于此,本申请的目的是为了克服现有技术中的不足,提供一种回环检测方法、装置、终端设备和可读存储介质。

本申请的实施例提供一种回环检测方法,包括:

获取当前图像帧,对所述当前图像帧进行特征提取以得到对应的特征向量矩阵;

根据构建的局部敏感哈希函数对所述特征向量矩阵中的每个特征向量进行哈希计算以得到对应特征向量的签名,并以所有特征向量的签名构建所述特征向量矩阵的哈希表集合;

对存储的若干历史图像帧进行筛选得到与所述哈希表集合中的签名之间存在预设位偏移量的特征向量作为待匹配特征向量;

根据所述当前图像帧的特征向量与所述待匹配特征向量的相似度判断对应的历史图像帧是否存在回环,输出存在回环的历史图像帧。

在一种实施例中,在查找出待匹配特征向量之后,该方法还包括:

将查找到的所有待匹配特征向量按照对应历史图像帧的获取顺序依次存储于待匹配集合中;

从所述待匹配集合中选取与所述当前图像帧的帧间隔数大于预设间隔值的各历史图像帧的待匹配特征向量进行相似度计算以判断是否存在回环。

在一种实施例中,利用构建的局部敏感哈希函数计算特征向量的签名时,该方法还包括:

根据“与构造”和“或构造”中的一种或两种方式生成所述局部敏感哈希函数的哈希函数族,所述哈希函数族用于计算特征向量的签名。

在上述实施例中,生成所述哈希函数族时,所述方法包括:

按照先“与构造”后“或构造”的级联方式生成所述局部敏感哈希函数的哈希函数族。

在一种实施例中,基于余弦距离构建所述局部敏感哈希函数。

在一种实施例中,所述对所述当前图像帧进行特征提取以得到对应的特征向量矩阵,包括:

判断所述当前图像帧中是否存在多个相同目标;

若存在多个相同目标,则根据各个所述相同目标到图像坐标原点的像素距离按照升序或降序方式构建对应的特征向量,以及根据其他的不同目标在图像中的位置构建对应的特征向量;

若不存在,则根据各个不同目标在图像中的位置构建对应的特征向量;

利用生成的每一特征向量构建一特征向量矩阵。

在一种实施例中,通过MoblieNet神经网络对所述当前图像帧或所述历史图像帧进行特征提取。

在一种实施例中,所述以所有特征向量的签名构建所述特征向量矩阵的哈希表集合,包括:

将每个特征向量的签名存储于签名集合中;

对所述签名集合中的签名进行聚类,并生成每个聚类的哈希表索引;

根据所有聚类的所述哈希表索引构建所述特征向量矩阵的哈希表集合。

在一种实施例中,所述对存储的若干历史图像帧进行筛选得到与所述哈希表集合中的签名之间存在预设位偏移量的特征向量作为待匹配特征向量,包括:

对存储的若干历史图像帧分别进行特征提取以得到对应的历史特征向量,并从中选取出与所述当前图像帧的特征向量的相似度超过预设阈值的历史特征向量以作为候选特征向量;

通过所述局部敏感哈希函数计算每个候选特征向量的签名,并查找出签名与所述哈希表集合中的签名之间存在预设位偏移量的候选特征向量以作为待匹配特征向量。

本申请的实施例还提供一种回环检测装置,包括:

特征提取模块,用于获取当前图像帧,对所述当前图像帧进行特征提取以得到对应的特征向量矩阵;

哈希计算模块,用于根据构建的局部敏感哈希函数对所述特征向量矩阵中的每个特征向量进行哈希计算以得到每个特征向量的签名,并以所有特征向量的签名构建所述特征向量矩阵的哈希表集合;

候选匹配模块,用于对存储的若干历史图像帧进行筛选得到与所述哈希表集合中的签名之间存在预设位偏移量的特征向量作为待匹配特征向量;

回环判断模块,用于根据所述当前图像帧的特征向量与所述待匹配特征向量的相似度判断对应的历史图像帧是否存在回环,输出存在回环的历史图像帧。

本申请的实施例还提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上执行时,实施上述的回环检测方法。

在一种实施例中,所述终端设备为机器人、无人驾驶汽车或智能定位背包。

本申请的实施例还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上被执行时,实施上述的回环检测方法。

本申请的实施例具有如下有益效果:

本申请实施例的回环检测方法通过提取出图像的特征信息,并采用局部敏感哈希函数以及对历史帧数据进行预筛选等策略来实现快速回环检测,可以大大提高终端设备的回环实时性,进而有效解决终端设备在移动过程中产生的轨迹漂移问题,提高终端设备的鲁棒性等。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例的回环检测方法的一种流程示意图;

图2示出了本申请实施例的回环检测方法的特征提取流程示意图;

图3示出了本申请实施例的回环检测方法的特征提取应用示意图;

图4a、图4b和图4c分别示出了本申请实施例的回环检测方法的“与构造”方式、“或构造”方式、先“与构造”后“或构造”方式的效果图;

图5示出了本申请实施例的回环检测方法的哈希表生成流程示意图;

图6示出了本申请实施例的回环检测方法的历史图像帧筛选的流程示意图;

图7示出了本申请实施例的回环检测方法的另一流程示意图;

图8示出了本申请实施例的回环检测装置的结构示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。

实施例1

图1示出了本申请实施例的回环检测方法的一种流程示意图。该回环检测方法可应用于如机器人、无人驾驶汽车等终端,以实现即时定位及地图构建等。示范性地,该回环检测方法包括:

步骤S110,获取当前图像帧,对当前图像帧进行特征提取以得到对应的特征向量矩阵。

当终端获取到一帧图像时,可通过预设的神经网络模型对该当前图像帧进行特征提取,如CNN网络系列、YOLO网络系列、SSD网络系列等。进一步地,考虑到该回环检测方法主要运用于如机器人等移动式终端设备中,由于其搭载的系统平台的运算能力往往有限,同时对回环检测的实时性也要求较高。为此,本实施例将采用一种基于轻量级网络的架构进行特征提取,例如,可使用MoblieNet网络作为前端的特征化网络,而后端使用YOLO网络进行目标检测等。其中,利用MoblieNet网络进行特征化时,可得到更高维度的特征信息,这将加快后续回环检测的速度等。

其中,该特征向量矩阵包括若干个特征向量。值得注意的是,在提取该图像帧中的特征时,根据图像中的目标位置及类别分类,构成得到相应的特征向量。其中,在进行特征向量化的过程中,若图像中存在多个相同的目标,还需要将对图像中的相同目标进行区分。

如图2所示,对于步骤S110,对当前图像帧进行特征提取以得到对应的特征向量矩阵,包括:

子步骤S111,判断当前图像帧中是否存在多个相同的目标。若存在多个相同的目标,则执行子步骤S112;否则,执行子步骤S113。

子步骤S112,若存在,则基于各个相同目标到图像坐标原点的像素距离按照升序或降序方式构建对应的特征向量,以及基于其他的不同目标在图像中的位置构建对应的特征向量。

例如,如图3所示,若当前图像帧中包括了多个相同的目标A和一个目标B,其中,目标A包括A

子步骤S113,若不存在,则基于各个不同目标在图像中的位置生成对应的特征向量。

示范性地,若每个目标在图像中的数量都只有一个,即不存在多个相同的目标,则按照每个目标在图像中的位置来构建各目标对应的特征向量。

子步骤S114,利用得到的每一特征向量构建一特征向量矩阵。

示范性地,将图像中的各个目标进行特征化后,利用所有目标的特征向量构成一个特征向量矩阵,即为当前图像帧的特征向量矩阵。

步骤S120,根据构建的局部敏感哈希函数对每个特征向量进行哈希计算以得到每个特征向量的签名,并根据所有特征向量的签名构建特征向量矩阵的哈希表集合。

其中,局部敏感哈希(Locality-Sensitive Hashing,LSH)可运用于解决近似或最近邻问题,例如,如果原来的两个数据相似,那么经过哈希计算得到的哈希值(又称哈希签名)也保持一定的相似性。本实施例中,将通过构建局部敏感哈希函数来生成各个特征向量的签名,并利用历史图像帧与当前图像帧的特征向量之间的签名进行特征向量匹配,进而实现回环检测。

示范性地,该局部敏感哈希函数可预先构建得到,例如,可根据两个特征向量之间的距离来定义该局部敏感哈希函数。在一种实施方式中,可采用余弦距离来度量局部敏感哈希,当然,也可以采用其他的距离来度量,如海明距离等,在此并不作限定。

以余弦距离为例,示范性地,将局部敏感哈希函数g定义为特征向量与随机超平面的乘积,若该乘积大于0,则该局部敏感哈希值则为1,否则局部敏感哈希值为0。例如,对于一个n维特征向量V,若要得到一个k位的签名(k

作为另一种可选的方式,为增加匹配向量的查询范围以及提高签名的聚类区分度等,基于构造的局部敏感哈希函数,还可以利用“与构造”(即AND)和“或构造”(即OR)这两种策略中的一种或两种的方式来构造一个哈希函数族,通过该哈希函数族进行哈希计算,可以使构造的局部敏感哈希函数具有最好的距离区分度,进而使距离相近的特征向量生成相同的签名,距离大的生成不一样的签名。

在第一种实施方式中,可通过“与构造”方式构造该局部敏感哈希函数的哈希函数族F1,若记为F1={g

在第二种实施方式中,可通过“或构造”方式构造该局部敏感哈希函数的哈希函数族F2,若记为F2={g

而在第三种实施方式中,可通过先“与构造”后“或构造”的级联方式来构造哈希函数族,此时可得到如图4c所示的距离区分度效果。从三种效果可以看出,对于不同的向量,通过先“AND”后“OR”的级联策略可以得到最好的距离区分度,即意味着距离相近的向量将生成相同的签名,而距离较大的向量则将生成不一样的签名。

于是,在得到各个特征向量的签名后,可根据所有特征向量的签名进行聚类处理,构建当前图像帧的特征向量矩阵的哈希表集合。通过聚类处理,将具有相同签名的特征向量划分为同一类,这样可以加快特征向量的匹配查询速度,从而提高匹配效率等。

示范性地,如图5所示,步骤S120中的哈希表集合的构建过程,包括:

子步骤S121,将所有特征向量的签名存储于签名集合中。

子步骤S122,对签名集合中的签名进行聚类,并生成每个聚类的哈希表索引。

子步骤S123,根据所有聚类的哈希表索引构建该特征向量矩阵的哈希表集合。

示范性地,可根据每个特征向量通过局部敏感哈希函数计算得到的签名,将具有相同签名的特征向量归为一类,即进行签名聚类,划分得到的各聚类具有相应的索引,通过对这些索引进行位运算,完成哈希表的构建。

例如,若签名集合记为S={S

于是,得到该特征向量矩阵的哈希表集合将用于后续的与历史图像帧的特征向量进行匹配,从而选取出可能出现回环检测的历史图像帧。

步骤S130,对存储的若干历史图像帧进行筛选得到与哈希表集合中的签名之间存在预设位偏移量的特征向量作为待匹配特征向量。

通常地,各个历史图像帧将会存储在数据库,以方便进行回环检测。考虑到存储的历史图像帧可能数量比较多,为了减少后续的回环检测的运算量并提高检测效率,本实施例将初步筛选出可能存在回环的历史图像帧,以得到用于与当前图像帧的特征向量进行匹配的待匹配特征向量。

在一种实施方式中,如图6所示,步骤S130包括以下子步骤:

子步骤S131,对存储的若干历史图像帧分别进行特征提取以得到对应的历史特征向量,并从中选取出与当前图像帧的特征向量的相似度超过预设阈值的历史特征向量作为候选特征向量。

示范性地,对于各个历史图像帧,可采用步骤S110中的相同网络模型进行特征提取,得到各历史图像帧的特征向量矩阵,其中,历史图像帧的特征向量矩阵包括多个历史特征向量。

为筛选出可能存在回环的候选特征向量,示范性地,可根据各历史图像帧分别与当前图像帧进行相似度比较,具体地,可通过计算历史特征向量与当前图像帧的特征向量之间的距离来计算相似度,如海明距离等。若计算得到的相似度超过预设的距离阈值,即初步判定该历史特征向量对应的历史图像帧存在回环的可能性,故将该历史特征向量作为候选特征向量。

子步骤S132,通过局部敏感哈希函数计算每个候选特征向量的签名,并查找出签名与该哈希表集合中的签名之间存在预设位偏移量的候选特征向量以作为待匹配特征向量。

示范性地,对于筛选出的这些候选特征向量,可通过上述的局部敏感哈希函数来计算对应候选特征向量的签名,进而根据签名之间的偏移程度来选取出待匹配的特征向量。可选地,若上述构造得到哈希函数族,则可通过哈希函数族来计算这些候选特征向量的签名,即优先采用相同的哈希计算方式得到各特征向量的签名。

例如,若这些候选特征向量的签名集合记为P,可将该签名集合P中的各个签名与上述步骤S120得到的哈希表集合T中的签名进行逐位局部敏感哈希值比较,若两个签名之间存在预设的位偏移量,则将签名对应的候选特征向量存储到一待匹配集合中以作为待匹配特征向量。其中,该预设的位偏移量可根据通过大量测试得到的经验值来设置。

步骤S140,根据当前图像帧的特征向量与待匹配特征向量的相似度判断对应的历史图像帧是否存在回环,输出存在回环的历史图像帧。

在得到若干待匹配特征向量后,示范性地,可根据特征向量的余弦相似度来度量两个特征向量之间的相似性。例如,当两个特征向量之间的余弦相似度大于一预设阈值时,则判断当前两个特征向量所对应的图像帧之间存在回环,于是,输出存在回环的历史图像帧,进而将这些输出的历史图像帧与当前图像帧存储于回环图像集合中。

可选地,若不存在相似度大于该预设阈值的历史图像帧,则返回至步骤S110以获取下一图像帧并重复执行上述步骤S110-S140。可以理解,通过筛选出这些存在回环的图像进行地图匹配,可帮助移动式的终端设备更精准、快速的进行避障导航工作等。

进一步可选地,对于由步骤S130得到的待匹配特征向量,考虑到与当前图像帧的相邻几个历史图像帧由于间隔较短,其相似度通常较高,为了进一步减少匹配率,如图7所示,该方法还包括:

子步骤S210,将查找到的所有待匹配特征向量按照对应历史图像帧的获取顺序依次存储于待匹配集合中。

子步骤S220,从待匹配集合中选取与当前图像帧的帧间隔数大于预设间隔值的各历史图像帧的待匹配特征向量进行相似度计算以判断是否存在回环,输出存在回环的历史图像帧。

示范性地,可按照各历史图像帧的获取顺序依次存储这些历史图像帧对应的待匹配特征向量到待匹配集合中,进而,若该预设间隔值设置为w,则将与该当前图像帧间隔w帧及大于w帧的所有历史图像帧对应的待匹配特征向量用于相似度计算。而对于小于w帧这一区间内的历史图像帧则不用于计算,通过将与当前图像帧间隔较近的帧不参与相似度比较,这样可以进一步减少运算量等。

本实施例的回环检测方法通过轻量级网络来提取出图像的高维度特征信息,并采用局部敏感哈希函数以及对历史帧数据进行预筛选等策略来实现快速回环检测,此外,还可利用通过“与构造”、“或构造”的策略来构造哈希函数族以用于增加特征向量的距离区分度,对于如机器人、无人驾驶汽车等设备的回环检测过程,不仅可以大大提高终端设备的回环实时性,还可提高回环准确性,进而有效解决终端设备在移动过程中产生的轨迹漂移问题,从而提高了终端设备的鲁棒性等。

实施例2

请参照图8,基于上述实施例1的方法,本实施例提出一种回环检测装置100,示范性地,该回环检测装置100包括:

特征提取模块110,用于获取当前图像帧,对所述当前图像帧进行特征提取以得到对应的特征向量矩阵。

哈希计算模块120,用于根据构建的局部敏感哈希函数对所述特征向量矩阵中的每个特征向量进行哈希计算以得到每个特征向量的签名,所有特征向量的所述签名用于构建所述特征向量矩阵的哈希表集合。

候选匹配模块130,用于对存储的若干历史图像帧进行筛选得到与所述哈希表集合中的签名之间存在预设位偏移量的候选特征向量作为待匹配特征向量。

回环判断模块140,用于根据所述当前图像帧的特征向量与所述待匹配特征向量的相似度判断对应的历史图像帧是否存在回环,输出存在回环的历史图像帧。

可以理解,本实施例的装置对应于上述实施例1的方法,上述实施例1中的可选项同样适用于本实施例,故在此不再重复描述。

本申请的另一实施例还提出一种终端设备,例如,该终端设备可包括机器人、无人驾驶汽车、用于户外定位的智能定位背包等。示范性地,该终端设备包括处理器和存储器,其中,存储器存储有计算机程序,该计算机程序在被处理器执行时,实施上述的回环检测方法。

本申请的又一实施例还提供了一种可读存储介质,其存储有计算机程序,在计算机程序被处理器实施时,执行上述的回环检测方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 回环检测方法、装置、终端设备和可读存储介质
  • 回环检测方法、装置、计算机可读存储介质及移动装置
技术分类

06120112567118