一种基于距离度量学习的视觉SLAM回环检测方法与流程

文档序号:18813677发布日期:2019-10-08 23:33阅读:252来源:国知局
一种基于距离度量学习的视觉SLAM回环检测方法与流程

本发明公开了一种基于距离度量学习的视觉slam回环检测方法,涉及机器人移动定位技术领域。



背景技术:

视觉slam(同步定位与建图)是移动机器人领域的关键技术。在一个slam系统中,机器人将建立周围环境的模型并同步估计它的运动轨迹。一个典型的视觉slam系统通常由以下几个模块构成:视觉里程计、后端优化、回环检测和建图。其中,回环检测模块用于自动检测出机器人是否曾经到过某个地点。如果回环成功检测出来,机器人将能够为后端的优化提供额外的约束项并减小优化误差。

在实际导航过程中,机器人周围的环境可能会发生改变。这些改变可以分为外观的改变和视角的改变。外观的改变可能是由于光照、天气和阴影的变化。同时,机器人在移动过程中在同一地点不同的角度拍摄到的画面看上去不一样。因此,回环检测需要对外观和视角的变化具有鲁棒性。

除了对外观和视角的变化具有鲁棒性之外,回环检测的另一个重要的问题是实时性。机器人需要在很短的时间内判断出是否经过当前位置。然而,由于视觉slam的其他模块也需要消耗大量的内存,回环检测不能够占用许多计算资源。

目前,主流的视觉slam系统用的回环检测方法大多是词袋模型。词袋模型需要人工设计特征并将这些特征组成词典,并计算目标图片与词典中特征的距离,从而判断是否形成回环。但是,这种人工设计特征的方法极易受到环境因素的干扰,比如光照、拍摄角度和动态物体等。

最近,许多研究人员将卷积神经网络(cnn)用于解决回环检测问题。与传统方法相比,cnn能够提取到更高质量的图片特征,而且在imagenet数据集上预训练的cnn模型有很强的泛化性,能够被用于解决多种不同的视觉任务。已有研究发现cnn的中层提取到的特征对外观变化具有鲁棒性,cnn高层提取到的特征对视角变化具有鲁棒性。然而,如何同时对外观变化和视角变化具有鲁棒性仍然是一个关键技术难题。同时,图片的相似性度量通常是比较图片特征之间的欧式距离。但是cnn模型提取的图片特征维数很高,所以相似性度量需要大量的运算量,对实时性是一个很大的挑战。



技术实现要素:

本发明所要解决的技术问题是:针对现有技术的缺陷,提供一种基于距离度量学习的视觉slam回环检测方法,解决同时对外观变化和视角变化具有鲁棒性的技术问题,降低相似性度量的运算量。

本发明为解决上述技术问题采用以下技术方案:

一种基于距离度量学习的视觉slam回环检测方法,所述方法包括如下步骤:

步骤一、对cnn模型进行预训练,使用训练集做优化;

步骤二、将训练集的图片平均分成k组,同时输入k个cnn预训练模型,所述k个cnn预训练模型共享参数;

步骤三、使用多元组构造方法构造多元组进行训练;

步骤四、构造出所有场景的多元组之后,根据多元组之间的距离关系进行优化cnn模型;

步骤五、当步骤四没有构造出合适的多元组时,直接结束训练,进入测试阶段;

步骤六、使用优化过的cnn模型,进行实际机器人回环检测应用。

作为本发明的进一步优选方案,步骤一中,所述训练集为newcollege、citycenter和tum数据集;所述newcollege和citycenter数据集是由移动机器人在左侧和右侧两个摄像头收集的,并且提供gps信息和真实回环图片标记;所述tum数据集是由深度相机采集到的室内数据集,并提供真实轨迹信息。

作为本发明的进一步优选方案,步骤二中,所述预训练模型为vgg-16,使用vgg-16的第一个全连接层来提取图片特征。

作为本发明的进一步优选方案,所述步骤三具体包括:

3.1:取第一个场景的所有图片特征,计算这些特征向量的中心点;

设属于第i个场景的特征向量oi为:

其中,n为特征向量的个数;

则第i个场景的特征向量中心点为:

其中,a为属于第i个场景的第a个特征向量;

3.2:计算该场景的所有特征向量到中心点的欧式距离,如果存在大于阈值d的特征向量,则直接进入步骤3.4,为该场景构造多元组;如果所有特征向量到中心点的欧氏距离均小于阈值d,则进入步骤3.3继续判断;

3.3:计算不属于该场景的所有特征向量到中心点的欧式距离,如果存在小于阈值d的特征向量,则进入步骤3.4,为该场景构造多元组,否则,直接进入步骤3.5,判断场景是否遍历完;

3.4:为该场景构造多元组,任取a个属于该场景的图片特征,任取b个不属于该场景的图片特征,且互相来自不同的场景,该多元组ui可以表示为:

其中,a为选取的属于第i个场景的特征向量的个数,b为不属于第i个场景的特征向量的个数;

3.5:判断场景是否遍历完,如果场景遍历完,则开始进行反向传播,否则,返回步骤3.1,取下一个场景的图片特征。

作为本发明的进一步优选方案,步骤四中,在优化过程中,每次输入5个场景的多元组图片,第p个场景的多元组图片的距离损失函数lmulti-constraintunit(o)的计算方式如下:

其中,是第p个场景的特征向量中心点,是第p个场景中距离中心点最远的特征向量,是距离中心点最近的非第p个场景的特征向量,是多元组中随机选取的不同于的非第p个场景的特征向量,α是预定义的常数参数,表示之间的距离和之间的距离的最小边界,β是预定义的常数参数,表示之间的距离和之间的距离的最小边界。

作为本发明的进一步优选方案,所述步骤六具体包括:

6.1:将连续的k帧图片同时输入到优化过的k个共享cnn模型,其中k=a+b,提取到每一张图片的图片特征;

6.2:将提取到的每一帧图片特征向量和历史图片特征中的特征向量进行相似性度量;

6.3:假设对i帧图片进行相似性度量,选择距离(i-1)帧图片最近的t帧图片,以这t帧图片为中心,选择它的前后各num帧图片作为参考候选帧,则至多可以获得t(num+1)个参考候选帧;

比较第i帧图片和每个参考候选帧之间的欧式距离,如果小于阈值θ,则将该参考候选帧作为第i帧图片的待定回环,以此减少相似性度量范围;

6.4:一旦检测到两帧之间构成回环,则先把它们列为待定回环;

进一步判断这两帧的前后两帧之间是否存在回环,若前后两帧之间构成了回环,则把它们确定为回环帧。

作为本发明的进一步优选方案,所述判断这两帧的前后两帧之间是否存在回环的方法为:

计算第m帧提取到的特征向量与第n帧提取到的特征向量之间的欧氏距离,如果该距离小于阈值θ,则将第1个结果记为回环;

分别计算第m帧的前后两帧提取到的特征向量与第n帧的前后两帧提取到的特征向量之间的欧氏距离,记为第w个结果,其中w>1,如果这w个结果中存在回环,则将第m帧和第n帧记为回环组,反之记为非回环组。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明解决了同时对外观变化和视角变化具有鲁棒性的技术问题,降低相似性度量的运算量。

附图说明

图1是本发明所述方法的系统流程图。

图2是本发明所述方法中,训练过程示意图。

图3是本发明所述方法中,多元组构造方法示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

下面结合附图对本发明的技术方案做进一步的详细说明:

本发明所述方法的系统流程图如图1所示,本发明所公开的一种基于距离度量学习的视觉slam回环检测方法,其具体步骤如下:

步骤一、在预训练的cnn模型基础上,使用训练集做优化,进而提取图片特征。训练集的类型和cnn的结构是进行特征提取的两个重要的考虑因素。newcollege和citycenter数据集是被广泛使用在视觉slam闭环检测领域的两个室外数据集。它们是由移动机器人在左侧和右侧两个摄像头收集的,并且提供gps信息和真实回环图片标记。tum是由深度相机采集到的室内数据集,并提供真实轨迹信息。因此,选择在newcollege、citycenter和tum数据集上训练。

其次,vgg-16是在大型物体识别数据集imagenet上训练的分类模型。它的结构简单有效,并对其他数据集有很强的泛化能力。因此,选择vgg-16作为预训练模型。同时,已有研究表明在图像任务中,cnn的不同层提取到的特征表现出不同的性能。cnn的中层特征比高层特征有更好的泛化能力,且cnn全连接层的层数越高,泛化能力越差。为了保证提取到的特征维数不高且具备良好的泛化能力,选择使用vgg-16的第一个全连接层来提取图片特征。

步骤二、训练过程如图2所示,在开始训练之前,首先把训练集的图片平均分成k组,同时输入k个cnn预训练模型,这k个cnn预训练模型共享参数。通过这种方式,每张图片的特征向量可以被提取出来。

步骤三、使用多元组构造方法构造多元组进行训练,如图3所示。

3.1:取第一个场景的所有图片特征,计算这些特征向量的中心点。设属于第i个场景的特征向量为:n为特征向量的个数。则第i个场景的特征向量中心点为:

a为属于第i个场景的第a个特征向量。

3.2:计算该场景的所有特征向量到中心点的欧式距离,如果存在大于阈值d的特征向量,则直接进入第3.4步,为该场景构造多元组。如果所有特征向量到中心点的欧氏距离均小于阈值d,则进入下一步继续判断。

3.3:计算不属于该场景的所有特征向量到中心点的欧式距离,如果存在小于阈值d的特征向量,则进入下一步,为该场景构造多元组。否则,直接进入第3.5步,判断场景是否遍历完。

3.4:为该场景构造多元组。任取a个属于该场景的图片特征,任取b个不属于该场景的图片特征,且互相来自不同的场景。该多元组可以表示为:

其中,a为选取的属于第i个场景的特征向量的个数,b为不属于第i个场景的特征向量的个数。

3.5:判断场景是否遍历完,如果场景遍历完,则开始进行反向传播。否则,返回第3.1步,取下一个场景的图片特征。

步骤四、构造出所有场景的多元组之后,根据多元组之间的距离关系进行优化cnn模型。在优化过程中,每次输入5个场景的多元组图片,第p个场景的多元组图片的距离损失函数定义如下:

其中,是第p个场景的特征向量中心点,是第p个场景中距离中心点最远的特征向量,是距离中心点最近的非第p个场景的特征向量,是多元组中随机选取的不同于的非第p个场景的特征向量。α是预定义的常数参数,表示之间的距离和之间的距离的最小边界,β是预定义的常数参数,表示之间的距离和之间的距离的最小边界。

步骤五、如果步骤四没有构造出合适的多元组,则直接结束训练,进入测试阶段。

步骤六、使用优化过的cnn模型,进行实际机器人回环检测应用,具体实施过程如下:

6.1:将连续的k帧图片同时输入到优化过的k个共享cnn模型,其中k=a+b,提取到每一张图片的图片特征。

6.2:将提取到的每一帧图片特征向量和历史图片特征中的特征向量进行相似性度量。

6.3:假设对i帧图片进行相似性度量,选择距离(i-1)帧图片最近的t帧图片,以这t帧图片为中心,选择它的前后各num帧图片作为参考候选帧,则至多可以获得t(num+1)个参考候选帧。比较第i帧图片和每个参考候选帧之间的欧式距离,如果小于阈值θ,则将该参考候选帧作为第i帧图片的待定回环。以此减少相似性度量范围。

6.4:本发明为尽可能避免检测出假回环,采用以下优化策略:一旦检测到两帧之间构成回环,则先把它们列为待定回环。由于机器人在行进过程中具有连续性,可以判断这两帧的前后两帧之间是否存在回环,若前后两帧之间构成了回环,则把它们确定为回环帧。

即为:计算第m帧提取到的特征向量与第n帧提取到的特征向量之间的欧氏距离,如果该距离小于阈值θ,则将第1个结果记为回环。分别计算第m帧的前后两帧提取到的特征向量与第n帧的前后两帧提取到的特征向量之间的欧氏距离,记为第w个结果(其中w>1)。如果这w个结果中存在回环,则将第m帧和第n帧记为回环组,反之记为非回环组。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。

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