CN113033555A - 基于度量学习的视觉slam闭环检测方法 - Google Patents

基于度量学习的视觉slam闭环检测方法 Download PDF

Info

Publication number
CN113033555A
CN113033555A CN202110318873.7A CN202110318873A CN113033555A CN 113033555 A CN113033555 A CN 113033555A CN 202110318873 A CN202110318873 A CN 202110318873A CN 113033555 A CN113033555 A CN 113033555A
Authority
CN
China
Prior art keywords
metric learning
sample
loop detection
slam
loss
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
Application number
CN202110318873.7A
Other languages
English (en)
Other versions
CN113033555B (zh
Inventor
董娜
秦明辉
常建芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN202110318873.7A priority Critical patent/CN113033555B/zh
Publication of CN113033555A publication Critical patent/CN113033555A/zh
Application granted granted Critical
Publication of CN113033555B publication Critical patent/CN113033555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于度量学习的视觉SLAM闭环检测方法,主要包括:在ORB‑SLAM2的基础上构建基于度量学习的SLAM系统;在Batch Hard Triplet Loss的基础上设计用于训练SLAM系统中的度量学习模型的三元组损失函数;利用所设计的三元组损失函数对SLAM系统中的度量学习模型进行训练;最后进行闭环检测。本发明提出了新的SLAM系统闭环检测线程,场景特征不再是人为设计,而是通过模型学习得到,弱化了特征的局限性;提出了新的三元组选择策略,可以加快损失收敛速度;考虑到epoch之间的相互依赖性,为加快优化过程,为损失函数的每一项设计相应的权重,给出了权重公式;模型对引入自适应更新的最小样本距离间隔可以缓解表达式之间的变形强度不一致。

Description

基于度量学习的视觉SLAM闭环检测方法
技术领域
本发明涉及一种将神经网络用于VSLAM闭环检测的基于三元组损失的度量学习方法,属于机器学习领域。
背景技术
为了安全独立地完成任务,机器人必须意识到自己在环境中的位置。这个问题可以看作是机器人中的SLAM(同时定位和映射)问题[1]。一个完整的SLAM系统主要包括视觉传感器、视觉里程表、后端优化、闭环检测等模块。在这些模块中,闭环检测通过比较移动机器人移动时的图像信息,判断机器人是否到达了之前经过的位置,并将闭环信息提供给后端进行处理。这样,当移动机器人正在构建地图时,可以实现闭环效果。此外,闭环检测可以判断图像之间的相似性,并解决位置估计可能随时间推移而漂移的问题[2]。因此,闭环检测在整个系统中起着至关重要的作用。
早期的闭环检测方法大多基于外观不变假设,比如一些采用外观的闭环检测算法利用词袋模型将图像描述子转换为视觉单词,以此来提高闭环检测方法的可靠性[3]。Wu等人使用K-means将特征描述符聚类为单词,通过比较描述符与单词之间的相似性将每个测试图像的描述符转换为向量,通过计算对应向量的余弦相似度来衡量图像的相似度[4]。但是,词袋模型的缺点也不容易忽视[5]。首先,词袋模型最重要的是构造词库,这就要求系统维护一个很大的词库;其次,视觉特征大多是人为设计的,这就导致了词袋模型的独特性与复杂性;最后,词袋模型适用于静态目标的检测,而不适用于动态目标的检测,具有一定的局限性[6]。
度量学习(Metric Learning)是一种空间映射的方法[7],其能够学习到一种特征(Embedding)空间,在此空间中,所有的数据都被转换成一个特征向量,并且相似样本的特征向量之间距离小,不相似样本的特征向量之间距离大,从而对数据进行区分。度量学习应用在很多领域中,比如图像检索,人脸识别,目标跟踪等等。
参考文献
[1]S.Chan,P.Wu and L.Fu,"Robust 2D Indoor Localization Through LaserSLAM and Visual SLAM Fusion,"2018IEEE International Conference on Systems,Man,and Cybernetics(SMC),Miyazaki,Japan,2018,pp.1263-1268,doi:10.1109/SMC.2018.00221.
[2]J.Lai,Z.Liu and J.Lin,"Loop Closure Detection for Visual SLAMSystems Using Various CNN algorithms Contrasts,"2019Chinese AutomationCongress(CAC),Hangzhou,China,2019,pp.1663-1668,doi:10.1109/CAC48633.2019.8996385.
[3]D.Galvez-López and J.D.Tardos,“Bags of binary words for fast placerecognition in image sequences,”IEEE Trans.Robot.,vol.28,no.5,pp.1188–1197,Oct.2012.
[4]X.Wu,X.Tian,J.Zhou,P.Xu and J.Chen,"Loop Closure Detection forVisual SLAM Based on SuperPoint Network,"2019Chinese Automation Congress(CAC),Hangzhou,China,2019,pp.3789-3793.
[5]Z.Wang,Z.Peng,Y.Guan and L.Wu,"Manifold Regularization GraphStructure Auto-Encoder to Detect Loop Closure for Visual SLAM,"in IEEEAccess,vol.7,pp.59524-59538,2019,doi:10.1109/ACCESS.2019.2914943.
[6]M.Cummins and P.Newman,“FAB-MAP:Probabilistic localization andmapping in the space of appearance,”Int.J.Robot.Res,vol.27,no.6,pp.647–665,Jun.2008.
[7]W.Rao,M.Xu and J.Zhou,"Improved Metric Learning Algorithm forPerson Re-Identification Based on Asymmetric Metric,"2020IEEE InternationalConference on Artificial Intelligence and Computer Applications(ICAICA),Dalian,China,2020,pp.212-216,doi:10.1109/ICAICA50127.2020.9181918.
发明内容
针对上述现有技术,本发明提出了一种基于度量学习的闭环检测方法,将训练好的深度神经网络加入到闭环检测线程中,当关键帧传到线程中时,神经网络模型将关键帧转化为特征向量进行计算。本发明中,场景特征不再是人为设定,特征均是模型学习得到的,更加适合场景识别;模型中损失函数采用三元组损失,并给出了一种新的三元组选择策略;考虑到epoch之间的相互依赖性,为加快优化过程,为损失函数的每一项设计相应的权重;同时为缓解损失函数表达式之间的变形强度不一致问题,对表达式引入自适应更新的阈值,并给出了选取方案。
为了解决上述技术问题,本发明提出的一种基于度量学习的视觉SLAM闭环检测方法,包括下述步骤:
步骤1、在ORB-SLAM2的基础上构建基于度量学习的SLAM系统;
步骤2、在Batch Hard Triplet Loss的基础上设计用于训练SLAM系统中的度量学习模型的三元组损失函数;
步骤3、利用步骤2设计的三元组损失函数对SLAM系统中的度量学习模型进行训练;
步骤4、进行闭环检测。
进一步讲,本发明所述的基于度量学习的视觉SLAM闭环检测方法,其中:
步骤1的过程是:构建基于度量学习的SLAM系统,该SLAM系统依赖于ORB-SLAM2,其中,以度量学习模型代替词袋模型,所述度量学习模型采用ResNet-V1-50卷积神经网络来生成特征向量;所述的ResNet-V1-50卷积神经网络的平均池的输出维数为2048×1×1,所述的ResNet-V1-50卷积神经网络的全连接层为三层,三层的维数分别为2048、1024、128,在全连接层后增加批处理归一层,将特征向量的维数处理为128。
步骤2的过程是:Batch Hard Triplet Loss的定义如下:
Figure BDA0002991974070000031
式(1)中,
Figure BDA00029919740700000327
表示的是锚样本
Figure BDA0002991974070000032
和正样本
Figure BDA0002991974070000033
之间的欧氏距离度量,
Figure BDA0002991974070000034
表示的是锚样本
Figure BDA0002991974070000035
和负样本
Figure BDA0002991974070000036
之间的欧氏距离度量;α是指锚样本
Figure BDA0002991974070000037
和正样本
Figure BDA0002991974070000038
的距离与锚样本
Figure BDA0002991974070000039
和负样本
Figure BDA00029919740700000310
的距离之间有一个最小的间隔,该α是一个固定值;
按照下述方法对式(1)所示的Batch Hard Triplet Loss进行更新:将锚样本
Figure BDA00029919740700000311
和正样本
Figure BDA00029919740700000312
之间的欧氏距离度量
Figure BDA00029919740700000313
乘上权重
Figure BDA00029919740700000314
将锚样本
Figure BDA00029919740700000315
和负样本
Figure BDA00029919740700000316
之间的欧氏距离度量
Figure BDA00029919740700000317
乘上权重
Figure BDA00029919740700000318
同时,对锚样本
Figure BDA00029919740700000319
和正样本
Figure BDA00029919740700000320
的距离与锚样本
Figure BDA00029919740700000321
和负样本
Figure BDA00029919740700000322
的距离之间的最小的间隔重新进行选择,并记为αi;更新之后的损失函数如下:
Figure BDA00029919740700000323
其中:
Figure BDA00029919740700000324
Figure BDA00029919740700000325
Figure BDA00029919740700000326
式(2)至式(5)中,[equation]+表示当equation的值大于零时,取该值为损失;当equation的值小于零时,损失为零;t代表epochs序数,
Figure BDA0002991974070000041
代表
Figure BDA0002991974070000042
的模,β是一个额外的裕度;
Figure BDA0002991974070000043
Figure BDA0002991974070000044
Figure BDA0002991974070000045
Figure BDA0002991974070000046
当t=1时,
Figure BDA0002991974070000047
Figure BDA0002991974070000048
均为零。
步骤3的过程是:将在ImageNet上训练过的卷积神经网络ResNet-V1-50.ckpt导入到所述的度量学习模型中,保留卷积层的权值;搭建深度学习环境,设置训练参数后,利用步骤2设计的三元组损失函数对该度量学习模型进行训练和收敛。
步骤4的过程如下:
步骤1)测试数据集采用慕尼黑工业大学官网数据集TUM,通过传感器读取该测试数据集当前帧,先在8层图像金字塔中提取FAST特征点;对提取到的FAST特征点用ORB来描述;
步骤2)选取参考帧,将描述与参考帧进行匹配;
步骤3)如果匹配点对数小于最低匹配阈值,返回步骤2)重置参考帧;如果匹配点对数大于最低阈值,执行步骤4);
步骤4)将当前帧作为候选关键帧,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对候选关键帧进行筛选,去除多余的关键帧;
步骤5)判断当前关键帧与前一个环路检测的距离是否大于10帧,如果满足,执行步骤6);如果不满足,进行相邻帧优化后执行步骤9);
步骤6)通过步骤3中训练好的度量学习模型将关键帧转换为1×128维特征向量,计算关键帧和在Covisibility Graph中与其相连的关键帧之间的向量之间的相似度,判断该相似度值是否满足阈值,如果满足,则进行全局优化后执行步骤7);如果不满足,则进行相邻帧优化后执行步骤7);
步骤7)更新地图。
距离度量学习的目的是学习一种数据的嵌入表示,该数据保留了嵌入空间中相近数据点与远不同数据点之间的距离。作为一种度量学习方法,三元组损失(triplet loss)为解决循环检测问题提供了灵感,它允许在输入图像和期望的嵌入空间之间进行端到端学习。
与现有技术相比,本发明的有益效果是:
(1)本发明提出了新的SLAM系统闭环检测线程,场景特征不再是人为设计,而是通过模型学习得到,弱化了特征的局限性。
(2)提出了新的三元组选择策略,可以加快损失收敛速度。
(3)考虑到epoch之间的相互依赖性,为加快优化过程,为损失函数的每一项设计相应的权重,给出了权重公式。
(4)表达式对引入自适应更新的最小样本距离间隔以缓解表达式之间的变形强度不一致。
附图说明
图1是本发明闭环检测系统结构图;
图2是本发明中三元组距离图;
图3是本发明中SLAM框架图;
图4是本发明中度量学习结构图;
图5是本发明中度量学习训练过程中样本距离分布;
图6是闭环检测实验流程;
图7是数据集Rgbd_dataset_freiburg3_long_office_household的轨迹评估;
图8是P-R曲线。
具体实施方式
下面结合附图及具体实施例对本发明做进一步的说明,但下述实施例绝非对本发明有任何限制。
距离度量学习的目的是学习一种数据的嵌入表示,该数据保留了嵌入空间中相近数据点与远不同数据点之间的距离。作为一种度量学习方法,三元组损失(triplet loss)为解决循环检测问题提供了灵感,它允许在输入图像和期望的嵌入空间之间进行端到端学习。
在经典三元组损失中,只要选择了某一组大小为E三元组,它们的图像就被堆叠成大小为3E的一批,然后计算这一批的嵌入值,这些嵌入值又被用来创建造成的损失的E项。但是,考虑到有6E2-4E种可能的组合的大小为3E的图像是有效的三元组,只使用E项是比较浪费的。因此,Batch All Triplet Loss被提出并定义如下:
Figure BDA0002991974070000061
其中,
Figure BDA0002991974070000062
表示的是锚样本
Figure BDA0002991974070000063
和正样本
Figure BDA0002991974070000064
之间的欧氏距离度量,
Figure BDA0002991974070000065
表示的是锚样本
Figure BDA0002991974070000066
和负样本
Figure BDA0002991974070000067
之间的欧氏距离度量;α是指锚样本
Figure BDA0002991974070000068
和正样本
Figure BDA0002991974070000069
的距离与锚样本
Figure BDA00029919740700000610
和负样本
Figure BDA00029919740700000611
的距离之间有一个最小的间隔,另外,[equation]+表示当equation的值大于零时,取该值为损失,当equation的值小于零时,损失为零。
虽然Batch All Triplet Loss看起来一次可以处理非常多的三元组,它也有一定的缺点,当数据集非常大时训练将会非常耗时,同时随着训练深入很多三元组因为很容易被分对而变成了“无用的”三元组。所以改变一下数据的组织方式,即随机抽样P类,对每类随机地选K张图片,从而产生一个batch大小为P×K的图片集。现在,对于batch中的每个样本a,我们可以挑选一个最难的正样本和一个最难的负样本和a组成一个三元组,称之为Batch Hard,Batch Hard Triplet Loss的定义如下:
Figure BDA00029919740700000612
以上损失函数只利用了每个epoch内的特征之间的空间距离约束,完全忽略了epoch之间的相互依赖性,这偶尔会导致anchor(锚样本)与positive(正样本)之间的距离比前一段要远。因此,优化过程可能会延长,甚至收敛到次优解。本发明针对每个批次构造了一个三元组选择策略。所有锚样本和正样本对都被用于构造损失函数。选择每个类中的hard negative样本。三元组损失定义如下:
Figure BDA00029919740700000613
由上述的三元组损失定义公式可知,三元组选择策略包括选取每一类中的hardnegative样本,并充分利用正样本。这样选择可以保证所有锚样本和正样本对都应用于损耗函数。FaceNet已经证明所有锚样本和正样本对都会使训练(优化)过程更加稳定。而且,每一次训练中所有的正样本和硬样本的参与都相当于一次顺利的操作,训练(优化)过程不会因为单一硬样本而陷入特定的局部最优。
闭环检测是指机器人识别曾到达某场景,使得地图闭环的能力。如果闭环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,闭环检测在大面积、大场景地图构建上是非常有必要的。典型的基于视觉的闭环检测系统结构如图1所示。三元组损失是一种被广泛应用的度量学习损失,之后的大量度量学习方法也是基于三元组损失演变而来。其中的三元也就是如图2中的锚样本、负样本、正样本。锚样本为训练数据集中随机选取的一个样本,正样本和负样本属于同一类的样本,而负样本则和锚样本属于不同类的样本。
经过以上分析,本发明提出的一种基于度量学习的视觉SLAM闭环检测方法,主要包括:在ORB-SLAM2的基础上构建基于度量学习的SLAM系统;在Batch Hard Triplet Loss的基础上设计用于训练SLAM系统中的度量学习模型的三元组损失函数;利用所设计的三元组损失函数对构建的SLAM系统中的度量学习模型进行训练;最后进行闭环检测。
具体可按照如下步骤进行:
步骤1、在ORB-SLAM2的基础上构建基于度量学习的SLAM系统。
构建基于度量学习的SLAM系统,该SLAM系统依赖于ORB-SLAM2。其中,以度量学习模型代替词袋模型,所述度量学习模型采用ResNet-V1-50卷积神经网络来生成特征向量;所述的ResNet-V1-50卷积神经网络的平均池的输出维数为2048×1×1,所述的ResNet-V1-50卷积神经网络的全连接层为三层,三层的维数分别为2048、1024、128,在全连接层后增加批处理归一层,将特征向量的维数处理为128。
在闭环检测部分,用度量学习模型代替词袋模型,相比于传统的词袋模型,度量学习模型不需要人为制作特征,特征均是模型学习得到的,更加适合场景识别。然后将嵌入到局部映射线程中的关键帧和映射中的关键帧导入到经过良好训练的模型中,利用特征向量来计算相似度。将组中得分最高的候选帧作为最终候选关键帧。最后引入候选关键帧并对循环进行校正。候选对象的点云线程、度量学习模型和检测策略已经扩展到ORB-SLAM2框架中。构建后的SLAM系统框架如图3所示,度量学习模型中的神经网络结构如图4所示。
步骤2、在Batch Hard Triplet Loss的基础上设计用于训练SLAM系统中的度量学习模型的三元组损失函数。过程如下:
Batch Hard Triplet Loss的定义如下:
Figure BDA0002991974070000071
式(1)中,
Figure BDA0002991974070000081
表示的是锚样本
Figure BDA0002991974070000082
和正样本
Figure BDA0002991974070000083
之间的欧氏距离度量,
Figure BDA0002991974070000084
表示的是锚样本
Figure BDA0002991974070000085
和负样本
Figure BDA0002991974070000086
之间的欧氏距离度量;α是指锚样本
Figure BDA0002991974070000087
和正样本
Figure BDA0002991974070000088
的距离与锚样本
Figure BDA0002991974070000089
和负样本
Figure BDA00029919740700000810
的距离之间有一个最小的间隔,该α是一个固定值。
按照下述方法对式(1)所示的Batch Hard Triplet Loss进行更新:考虑到epoch之间的相互依赖性,为加快优化过程,将锚样本
Figure BDA00029919740700000811
和正样本
Figure BDA00029919740700000812
之间的欧氏距离度量
Figure BDA00029919740700000813
乘上权重
Figure BDA00029919740700000814
将锚样本
Figure BDA00029919740700000815
和负样本
Figure BDA00029919740700000816
之间的欧氏距离度量
Figure BDA00029919740700000817
乘上权重
Figure BDA00029919740700000818
同时边界的选取是衡量图片相似程度的重要标准,较小的边界值会使网络对边界样本不敏感,而较大的边界值又会导致网络早期难以收敛,因此,本发明中,对锚样本
Figure BDA00029919740700000819
和正样本
Figure BDA00029919740700000820
的距离与锚样本
Figure BDA00029919740700000821
和负样本
Figure BDA00029919740700000822
的距离之间的最小的间隔重新进行选择,而不是一个固定值,并记为αi;更新之后的损失函数如下:
Figure BDA00029919740700000823
Figure BDA00029919740700000824
和αi的选取策略如下:
Figure BDA00029919740700000825
Figure BDA00029919740700000826
Figure BDA00029919740700000827
式(2)至式(5)中,[equation]+表示当equation的值大于零时,取该值为损失;当equation的值小于零时,损失为零;t代表epochs序数,
Figure BDA00029919740700000828
代表
Figure BDA00029919740700000829
的模,β是一个额外的裕度,因为即使两种图片有完全相同的样本描述,但是它们的阈值增益也不会为零,因为它们是不同的两个样本,本发明中,用一个最小的β来消除这种影响。
在理想的情况下,要求在训练的过程中锚样本和正样本之间的距离越来越小,当
Figure BDA0002991974070000091
这时候锚样本和正样本之间距离的增减梯度是符合要求的,此时设置
Figure BDA0002991974070000092
不需要对锚样本和正样本距离计算增加额外的约束;而当两者之间的距离增大时,即:
Figure BDA0002991974070000093
时,设置
Figure BDA0002991974070000094
可以保证在下一次的训练中使距离再次减小。
Figure BDA0002991974070000095
的设置也是如此,当
Figure BDA0002991974070000096
时,
Figure BDA0002991974070000097
Figure BDA0002991974070000098
时,
Figure BDA0002991974070000099
特别说明,当t=1时,
Figure BDA00029919740700000910
Figure BDA00029919740700000911
均为零。
步骤3、利用步骤2设计的三元组损失函数对SLAM系统中的度量学习模型进行训练;
本发明中,所述度量学习模型采用ResNet-V1-50卷积神经网络来生成特征向量;所述的ResNet-V1-50卷积神经网络的平均池的输出维数为2048×1×1,所述的ResNet-V1-50卷积神经网络的全连接层为三层,三层的维数分别为2048、1024、128,在全连接层后增加批处理归一层,将特征向量的维数处理为128;然后把在ImageNet上训练过的卷积神经网络ResNet-V1-50.ckpt导入到度量学习模型中,保留卷积层的权值;接着利用式(2)所示的三元组损失函数对该度量学习模型进行训练和收敛,保留良好的度量学习模型。
本发明中,实验环境采用Ubuntu系统,搭建GPU版深度学习环境。设置训练参数,批大小batch=32,迭代次数为180k,训练过程采用Tensorboard进行监控。本发明进行了两次训练,训练过程中样本距离分布如图5所示,锚样本与正样本、正样本与negative(负)样本的距离分布及样本距离差异均已在图中用黑色箭头标出,其中样本差异定义为
Figure BDA00029919740700000912
第一次采用传统的的三元组损失进行训练,样本差异大小为26;第二次采用步骤2设计的三元组损失进行训练,样本差异大小为80。
步骤4、进行闭环检测,如图6所示,过程如下:
步骤1)测试数据集采用慕尼黑工业大学官网数据集TUM,通过传感器读取该测试数据集当前帧,先在8层图像金字塔中提取FAST特征点;然后对提取到的FAST特征点用ORB来描述;
步骤2)选取参考帧,将描述与参考帧进行匹配;
步骤3)如果匹配点对数小于最低匹配阈值,返回步骤2)重置参考帧;如果匹配点对数大于最低阈值,执行步骤4);
步骤4)将当前帧作为候选关键帧,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对候选关键帧进行筛选,去除多余的关键帧;
步骤5)判断当前关键帧与前一个环路检测的距离是否大于10帧,如果满足,则出现了闭环,执行步骤6);如果不满足,进行相邻帧优化后更新地图。
步骤6)通过步骤3中训练好的度量学习模型将关键帧转换为1×128维特征向量,将闭环检测转换为一个类似模式识别的问题。计算关键帧和在Covisibility Graph中与其相连的关键帧之间的向量之间的相似度,判断该相似度值是否满足阈值,如果满足,则认定相机来到之前到过的场景,有类似的向量描述,从而检测到闭环,进行全局优化后更新地图;如果不满足,则进行相邻帧优化后更新地图。
经过上述步骤即可完成基于度量学习的闭环检测环节。实验采用了数据集TUM中的rgbd序列,基于数据集Rgbd_dataset_freiburg3_long_office_household的闭环检测轨迹评估如图7和图8所示。
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。

Claims (5)

1.一种基于度量学习的视觉SLAM闭环检测方法,其特征在于,包括下述步骤:
步骤1、在ORB-SLAM2的基础上构建基于度量学习的SLAM系统;
步骤2、在Batch Hard Triplet Loss的基础上设计用于训练SLAM系统中的度量学习模型的三元组损失函数;
步骤3、利用步骤2设计的三元组损失函数对SLAM系统中的度量学习模型进行训练;
步骤4、进行闭环检测。
2.根据权利要求1所述的基于度量学习的视觉SLAM闭环检测方法,其特征在于,步骤1的过程是:构建基于度量学习的SLAM系统,该SLAM系统依赖于ORB-SLAM2,其中,以度量学习模型代替词袋模型,所述度量学习模型采用ResNet-V1-50卷积神经网络来生成特征向量;所述的ResNet-V1-50卷积神经网络的平均池的输出维数为2048×1×1,所述的ResNet-V1-50卷积神经网络的全连接层为三层,三层的维数分别为2048、1024、128,在全连接层后增加批处理归一层,将特征向量的维数处理为128。
3.根据权利要求1所述的基于度量学习的视觉SLAM闭环检测方法,其特征在于,步骤2的过程是:
Batch Hard Triplet Loss的定义如下:
Figure FDA0002991974060000011
式(1)中,
Figure FDA0002991974060000012
表示的是锚样本
Figure FDA0002991974060000013
和正样本
Figure FDA0002991974060000014
之间的欧氏距离度量,
Figure FDA0002991974060000015
表示的是锚样本
Figure FDA0002991974060000016
和负样本
Figure FDA0002991974060000017
之间的欧氏距离度量;α是指锚样本
Figure FDA0002991974060000018
和正样本
Figure FDA0002991974060000019
的距离与锚样本
Figure FDA00029919740600000110
和负样本
Figure FDA00029919740600000111
的距离之间有一个最小的间隔,该α是一个固定值;
按照下述方法对式(1)所示的Batch Hard Triplet Loss进行更新:将锚样本
Figure FDA00029919740600000112
和正样本
Figure FDA00029919740600000113
之间的欧氏距离度量
Figure FDA00029919740600000114
乘上权重
Figure FDA00029919740600000115
将锚样本
Figure FDA00029919740600000116
和负样本
Figure FDA00029919740600000117
之间的欧氏距离度量
Figure FDA00029919740600000118
乘上权重
Figure FDA00029919740600000119
同时,对锚样本
Figure FDA00029919740600000120
和正样本
Figure FDA00029919740600000121
的距离与锚样本
Figure FDA0002991974060000021
和负样本
Figure FDA0002991974060000022
的距离之间的最小的间隔重新进行选择,并记为αi;更新之后的损失函数如下:
Figure FDA0002991974060000023
其中:
Figure FDA0002991974060000024
Figure FDA0002991974060000025
Figure FDA0002991974060000026
式(2)至式(5)中,[equation]+表示当equation的值大于零时,取该值为损失;当equation的值小于零时,损失为零;t代表epochs序数,
Figure FDA0002991974060000027
代表
Figure FDA0002991974060000028
的模,β是一个额外的裕度;
Figure FDA0002991974060000029
Figure FDA00029919740600000210
Figure FDA00029919740600000211
Figure FDA00029919740600000212
当t=1时,
Figure FDA00029919740600000213
Figure FDA00029919740600000214
均为零。
4.根据权利要求1所述的基于度量学习的视觉SLAM闭环检测方法,其特征在于,步骤3的过程是:将在ImageNet上训练过的卷积神经网络ResNet-V1-50.ckpt导入到所述的度量学习模型中,保留卷积层的权值;搭建深度学习环境,设置训练参数后,利用步骤2设计的三元组损失函数对该度量学习模型进行训练和收敛。
5.根据权利要求1所述的基于度量学习的视觉SLAM闭环检测方法,其特征在于,步骤4的过程如下:
步骤1)测试数据集采用慕尼黑工业大学官网数据集TUM,通过传感器读取该测试数据集当前帧,先在8层图像金字塔中提取FAST特征点;对提取到的FAST特征点用ORB来描述;
步骤2)选取参考帧,将描述与参考帧进行匹配;
步骤3)如果匹配点对数小于最低匹配阈值,返回步骤2)重置参考帧;如果匹配点对数大于最低阈值,执行步骤4);
步骤4)将当前帧作为候选关键帧,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对候选关键帧进行筛选,去除多余的关键帧;
步骤5)判断当前关键帧与前一个环路检测的距离是否大于10帧,如果满足,执行步骤6);如果不满足,进行相邻帧优化后执行步骤9);
步骤6)通过步骤3中训练好的度量学习模型将关键帧转换为1×128维特征向量,计算关键帧和在Covisibility Graph中与其相连的关键帧之间的向量之间的相似度,判断该相似度值是否满足阈值,如果满足,则进行全局优化后执行步骤7);如果不满足,则进行相邻帧优化后执行步骤7);
步骤7)更新地图。
CN202110318873.7A 2021-03-25 2021-03-25 基于度量学习的视觉slam闭环检测方法 Active CN113033555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110318873.7A CN113033555B (zh) 2021-03-25 2021-03-25 基于度量学习的视觉slam闭环检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110318873.7A CN113033555B (zh) 2021-03-25 2021-03-25 基于度量学习的视觉slam闭环检测方法

Publications (2)

Publication Number Publication Date
CN113033555A true CN113033555A (zh) 2021-06-25
CN113033555B CN113033555B (zh) 2022-12-23

Family

ID=76473617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110318873.7A Active CN113033555B (zh) 2021-03-25 2021-03-25 基于度量学习的视觉slam闭环检测方法

Country Status (1)

Country Link
CN (1) CN113033555B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114359673A (zh) * 2022-01-10 2022-04-15 北京林业大学 基于度量学习的小样本烟雾检测方法、装置和设备
CN114372538A (zh) * 2022-03-22 2022-04-19 中国海洋大学 拖曳式传感器阵列中尺度涡时间序列卷积分类方法
CN115147873A (zh) * 2022-09-01 2022-10-04 汉斯夫(杭州)医学科技有限公司 基于双标签级联的齿科图像自动分类方法、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330357A (zh) * 2017-05-18 2017-11-07 东北大学 基于深度神经网络的视觉slam闭环检测方法
CN109443382A (zh) * 2018-10-22 2019-03-08 北京工业大学 基于特征提取与降维神经网络的视觉slam闭环检测方法
CN110296705A (zh) * 2019-06-28 2019-10-01 苏州瑞久智能科技有限公司 一种基于距离度量学习的视觉slam回环检测方法
CN110555881A (zh) * 2019-08-29 2019-12-10 桂林电子科技大学 一种基于卷积神经网络的视觉slam测试方法
CN110781790A (zh) * 2019-10-19 2020-02-11 北京工业大学 基于卷积神经网络与vlad的视觉slam闭环检测方法
CN111553193A (zh) * 2020-04-01 2020-08-18 东南大学 一种基于轻量级深层神经网络的视觉slam闭环检测方法
CN112258580A (zh) * 2020-11-02 2021-01-22 上海应用技术大学 基于深度学习的视觉slam回环检测方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330357A (zh) * 2017-05-18 2017-11-07 东北大学 基于深度神经网络的视觉slam闭环检测方法
CN109443382A (zh) * 2018-10-22 2019-03-08 北京工业大学 基于特征提取与降维神经网络的视觉slam闭环检测方法
CN110296705A (zh) * 2019-06-28 2019-10-01 苏州瑞久智能科技有限公司 一种基于距离度量学习的视觉slam回环检测方法
CN110555881A (zh) * 2019-08-29 2019-12-10 桂林电子科技大学 一种基于卷积神经网络的视觉slam测试方法
CN110781790A (zh) * 2019-10-19 2020-02-11 北京工业大学 基于卷积神经网络与vlad的视觉slam闭环检测方法
CN111553193A (zh) * 2020-04-01 2020-08-18 东南大学 一种基于轻量级深层神经网络的视觉slam闭环检测方法
CN112258580A (zh) * 2020-11-02 2021-01-22 上海应用技术大学 基于深度学习的视觉slam回环检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIANFANG CHANG 等: "Metric learning with generator for closed loop detection in VSLA", 《SPRINGER》 *
YE YUAN 等: "In defense of the triplet loss again: learning robust person re-identification with fast approximated triplet loss and label distillation", 《2020 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS (CVPRW)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114359673A (zh) * 2022-01-10 2022-04-15 北京林业大学 基于度量学习的小样本烟雾检测方法、装置和设备
CN114359673B (zh) * 2022-01-10 2024-04-09 北京林业大学 基于度量学习的小样本烟雾检测方法、装置和设备
CN114372538A (zh) * 2022-03-22 2022-04-19 中国海洋大学 拖曳式传感器阵列中尺度涡时间序列卷积分类方法
CN115147873A (zh) * 2022-09-01 2022-10-04 汉斯夫(杭州)医学科技有限公司 基于双标签级联的齿科图像自动分类方法、设备及介质

Also Published As

Publication number Publication date
CN113033555B (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
CN113033555B (zh) 基于度量学习的视觉slam闭环检测方法
CN111583263B (zh) 一种基于联合动态图卷积的点云分割方法
CN108960086B (zh) 基于生成对抗网络正样本增强的多姿态人体目标跟踪方法
CN106780631B (zh) 一种基于深度学习的机器人闭环检测方法
CN110120064B (zh) 一种基于互强化与多注意机制学习的深度相关目标跟踪算法
CN111161315B (zh) 一种基于图神经网络的多目标跟踪方法和系统
CN111507222B (zh) 一种基于多源数据知识迁移的三维物体检测框架
CN110781790A (zh) 基于卷积神经网络与vlad的视觉slam闭环检测方法
CN112101430A (zh) 用于图像目标检测处理的锚框生成方法及轻量级目标检测方法
CN112395957A (zh) 一种针对视频目标检测的在线学习方法
CN113326735B (zh) 一种基于YOLOv5的多模态小目标检测方法
CN111105439A (zh) 一种使用残差注意力机制网络的同步定位与建图方法
CN111242985A (zh) 基于马尔科夫模型的视频多行人追踪方法
CN114445461A (zh) 基于非配对数据的可见光红外目标跟踪训练方法及装置
CN114332166A (zh) 基于模态竞争协同网络的可见光红外目标跟踪方法及装置
CN110458867B (zh) 一种基于注意力循环网络的目标跟踪方法
CN116245913A (zh) 基于层次化上下文引导的多目标跟踪方法
Knowles et al. Toward robust and efficient online adaptation for deep stereo depth estimation
CN115578568A (zh) 一种小规模可靠数据集驱动的噪声修正算法
CN113221826B (zh) 一种基于自监督学习显著性估计像素嵌入的道路检测方法
CN111797903B (zh) 一种基于数据驱动粒子群算法的多模态遥感图像配准方法
CN115187614A (zh) 一种基于stdc语义分割网络的实时同时定位与建图方法
CN113888603A (zh) 基于光流跟踪和特征匹配的回环检测及视觉slam方法
CN112132059A (zh) 一种基于深度条件随机场的行人重识别方法和系统
CN113159082A (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