Towards a Robust Visual Place Recognition in Large-Scale vSLAM Scenarios Based on a Deep Distance Learning

关键字:视觉位置识别、vSLAM、深度学习、多约束损失、CNN


文章目录

  • 一、摘要和总结
  • 二、框架和方法
    • 基于CNN的图像特征提取
    • Triplet loss
    • 多约束损失
    • 创建多约束图像集
    • 训练过程
  • 小结

一、摘要和总结

虽然使用卷积神经网络能够实现比手工制作的特征描述符更好的性能,但是视觉位置识别会受到两个主要的问题影响:

  1. 感知混叠
  2. 感知可变性

因此设计一个定制的距离学习方法来代表在大规模vSLAM场景中的固有距离约束是至关重要的。传统的深度距离学习方法通常是使用triplet loss,但是这可能导致冗余的低效的训练和异常的距离关系,这篇文章对于视觉位置识别提出了一个新颖的深度距离学习框架,通过深入分析视觉位置识别问题中距离关系的多重约束,提出了在欧几里得空间优化距离约束关系的多约束损失。新框架可以支持任何类型的 CNN,如 AlexNetVGGNet 和其他用户定义的网络,以提取更多有区别的特征。

二、框架和方法

这篇文章其实就是使用通用的CNN模型,然后使用提出的多约束深度距离学习方法来训练网络,使其能够进行位置识别任务。对于网络提取出来的特征向量,通过比较两个特征向量之间的欧式距离来计算相似度。其主要的目的是提升CNN模型的特征提取能力,核心就需要网络能够提取出来更易于辨别的特征描述符。因为框架可以支持任意一种已知的CNN网络,这里选用了AlexNet和VGGNet作为两个实例来展示多约束深度距离学习。框架图如下所示

我们使用连续的多帧图像组合 作为输入而不是使用单帧图像来获得他们的低维特征向量,这样欧氏距离就可以直接用来度量不同位置的相似性,如果欧式距离低于一个阈值,那么我们就可以提出一个位置识别假设,这阈值是提前人为设置的,这篇文章当中是使用具有最好精度的最大召回率作为阈值

基于CNN的图像特征提取

全连接层可以作为特征提取器来获得特征向量,不同层提取出来的特征表现出来不同的性能,实验证明顶层的泛化能力是要低于更低层的,值得注意的是,在我们的研究中,AlexNet和VGGNet的架构被简化用于视觉位置识别问题,把原始的全连接层改为定制的可调节尺寸的全连接层,这个全连接层是作为特征提取器来编码具有可调节向量长度的从深度距离学习方法中学到的特征描述。

Triplet loss

标准的triplet loss方法,三张图像会组合为一个元组,i,j,ki, j, ki,j,k是从图像数据集中挑选出来的图像序列号,要组成合适的元组需要满足以下条件:

  1. 图像iii和图像jjj来自相同的分类但不是相同的图像
  2. 图像iii和图像kkk来自不同的分类

考虑一个元组如(xa,xp,xn)(x^{a},x^{p},x^{n})(xa,xp,xn),这里面xax^{a}xa和xpx^{p}xp来自于相同的分类,xax^{a}xa和xnx^{n}xn来自于不同的分类triplet loss函数的目的是去优化CNN网络来学习图像xxx的描述f(x)f(x)f(x),关于输入元组(xa,xp,xn)(x^{a},x^{p},x^{n})(xa,xp,xn)理想的图像描述应该满足如下的距离关系:
∥f(xa−f(xp))∥22+α≤∥f(xa−f(xn))∥22\left \| f(x_{a}-f(x_{p}))\right \|_{2}^{2}+\alpha \leq \left \| f(x_{a}-f(x_{n}))\right \|_{2}^{2} ∥f(xa​−f(xp​))∥22​+α≤∥f(xa​−f(xn​))∥22​其中α\alphaα是相同类和不同类图像对之间的幅度值,所有特征向量都约束在超球面∥f(x)∥2=1\left \|f(x)\right\|_{2}=1∥f(x)∥2​=1中,来避免损失超出0。通常这个损失定义为:
Ltri(xa,xp,xn)=max{∥f(xa−f(xp))∥22+α−∥f(xa−f(xn))∥22,0}L_{tri}(x^{a},x^{p},x^{n})=max\left \{ \left \| f(x_{a}-f(x_{p}))\right \|_{2}^{2}+\alpha- \left \| f(x_{a}-f(x_{n}))\right \|_{2}^{2},0\right\} Ltri​(xa,xp,xn)=max{∥f(xa​−f(xp​))∥22​+α−∥f(xa​−f(xn​))∥22​,0}训练的目标是去学习一个可辨别的图像描述,也就是xa和xpx^{a}和x^{p}xa和xp的距离最小化,xa和xnx^{a}和x^{n}xa和xn的距离最大化,虽然之前使用triplet loss以及它的一些改进,在不同任务上取得了相当不错的效果,但是还是有一些缺点需要去改进。为了最大化在每一个元组中匹配的和没匹配的图像对之间的距离 ,可能会导致图下图所示的异常的距离关系,定义一个dict()dict()dict()函数来表示特征向量之间的欧式距离,为了优化这个元组,我们在最大化dict(f(xa),f(x1n))dict(f(x^{a}),f(x_{1}^{n}))dict(f(xa),f(x1n​))可能会导致dict(f(x1n),f(x2n))dict(f(x_{1}^{n}),f(x_{2}^{n}))dict(f(x1n​),f(x2n​))变小,但是图像1和图像2很可能来自不同的位置。所以针对于这个问题,提出了多约束损失

多约束损失

对于triplet loss,其只会考虑两方面的距离关系:一个是f(xa)和f(xp)f(x^{a})和f(x^{p})f(xa)和f(xp)之间的距离,另一个是f(xa)和f(xn)f(x^{a})和f(x^{n})f(xa)和f(xn)之间的距离,不同于triplet loss,这篇文章创建了多约束图像集X=(Xp,Xn)X=(X^{p},X^{n})X=(Xp,Xn),而不是像之前的元组作为输入,每一个多约束图像集都会包含两个不同的图像集:positive图像集:Xp=(X1p,…,XAp)X^{p}=(X_{1}^{p},…,X_{A}^{p})Xp=(X1p​,…,XAp​)包含来自相同位置的图像和negative图像集:Xp=(X1n,…,XBn)X^{p}=(X_{1}^{n},…,X_{B}^{n})Xp=(X1n​,…,XBn​)包含来自不同位置的图像。假设来自同一地点的图像彼此靠近,不同地点的图像应该在特征空间中应该相隔很远。多约束损失图如下图所示

cpc^{p}cp 代表在positive图像集的图像中心点,由如下的公式计算
cp=1A∑i=1Af(xip)c^{p}=\frac{1}{A}\sum_{i=1}^{A}f(x_{i}^{p}) cp=A1​i=1∑A​f(xip​)不同于triplet loss,多约束损失会约束三方面的距离关系:positive图像和中心点之间的距离关系(DR1);另一个是negative图像和中心点之间的距离关系(DR2);最后一个是在negative图像集中的图像之间的距离关系(DR3)
对于一个多约束图像集X=(Xp,Xn)X=(X^{p},X^{n})X=(Xp,Xn),关于期望的 DR1 和 DR2 的距离应该满足如下的状态
∥f(xip−cp)∥22+α≤∥f(xjn)−cp∥22,∀1≤i≤Aand1≤j≤B\left \|f(x_{i}^{p}-c^{p})\right \|_{2}^{2}+\alpha\leq\left \|f(x_{j}^{n})-c^{p}\right \|_{2}^{2},\forall1\leq i \leq A and 1 \leq j \leq B ∥f(xip​−cp)∥22​+α≤​f(xjn​)−cp​22​,∀1≤i≤Aand1≤j≤B这里面的 α\alphaα 是预先定义的超参数。与此同时,为了解决triplet loss存在的问题,也就是去最大化 dict(f(xjn,f(xkn)))dict(f(x_{j}^{n},f(x_{k}^{n})))dict(f(xjn​,f(xkn​))),根据三角形的距离关系,我们必须满足DR1和DR3之间的以下约束
∥f(xip−cp)∥22+β≤∥f(xjn)−f(x∗n)∥22,∀1≤i≤Aand1≤j≤B\left \|f(x_{i}^{p}-c^{p})\right \|_{2}^{2}+\beta\leq\left \|f(x_{j}^{n})-f(x_{*}^{n})\right \|_{2}^{2},\forall1\leq i \leq A and 1 \leq j \leq B ∥f(xip​−cp)∥22​+β≤​f(xjn​)−f(x∗n​)​22​,∀1≤i≤Aand1≤j≤B β\betaβ 和 α\alphaα 同理,x∗nx_{*}^{n}x∗n​ 可以从negative图像集中随机选择但 x∗nx_{*}^{n}x∗n​ ≠\neq= xjnx_{j}^{n}xjn​,像之前说的,XnX^{n}Xn 中的每个位置只有一个图像。因此,x∗nx_{*}^{n}x∗n​ 和 xjnx_{j}^{n}xjn​ 是来自不同的位置的。
在一个多约束的图像集中,距离约束可以转化为如下所示的最小化的问题
Lmulti(Xp,Xn)=max{0,∥f(xip)−cp∥22+α−∥f(xjn)−cp∥22}+max{0,∥f(xip−cp)∥22+β−∥f(xjn)−f(x∗n)∥22},∀1≤i≤Aand1≤j≤BL_{multi}(X^{p},X^{n})=max\left \{0,\left \| f(x_{i}^{p})-c^{p}\right \|_{2}^{2}+\alpha-\left\| f(x_{j}^{n})-c^{p}\right \|_{2}^{2} \right \}\\ +max\left \{ 0,\left \| f(x_{i}^{p}-c^{p})\right \|_{2}^{2}+\beta-\left\| f(x_{j}^{n})-f(x_{*}^{n})\right \|_{2}^{2}\right \},\forall1\leq i \leq A and 1 \leq j \leq B Lmulti​(Xp,Xn)=max{0,∥f(xip​)−cp∥22​+α−​f(xjn​)−cp​22​}+max{0,∥f(xip​−cp)∥22​+β−​f(xjn​)−f(x∗n​)​22​},∀1≤i≤Aand1≤j≤B但如果多约束图像集较大,则优化过程将太耗时,无法在嵌入式系统中执行,加快这一进程,我们首先从 cpc^{p}cp 中通过 max⁡i(∥f(xip−cp)∥22),i=1,2,...,A\max_{i}(\left \| f(x_{i}^{p}-c^{p})\right \|_{2}^{2}),i=1,2,...,Amaxi​(∥f(xip​−cp)∥22​),i=1,2,...,A 找到最远的positive图像xfarthestpx_{farthest}^{p}xfarthestp​,然后再通过 max⁡i(∥f(xjn−cp)∥22),j=1,2,...,B\max_{i}(\left \| f(x_{j}^{n}-c^{p})\right \|_{2}^{2}),j=1,2,...,Bmaxi​(​f(xjn​−cp)​22​),j=1,2,...,B 找到最近的negative图像xnearestnx_{nearest}^{n}xnearestn​。因此,损失函数可以简化为
Lmulti(Xp,Xn)=max{0,∥f(xfarthestp)−cp∥22+α−∥f(xnearestn)−cp∥22}+max{0,∥f(xfarthestp)−cp∥22+β−∥f(xnearestn)−f(x∗n)∥22},∀1≤i≤Aand1≤j≤BL_{multi}(X^{p},X^{n})=max\left \{0,\left \| f(x_{farthest}^{p})-c^{p}\right \|_{2}^{2}+\alpha-\left\| f(x_{nearest}^{n})-c^{p}\right \|_{2}^{2} \right \}\\ +max\left \{ 0,\left \| f(x_{farthest}^{p})-c^{p}\right \|_{2}^{2}+\beta-\left\| f(x_{nearest}^{n})-f(x_{*}^{n})\right \|_{2}^{2}\right \},\forall1\leq i \leq A and 1 \leq j \leq B Lmulti​(Xp,Xn)=max{0,​f(xfarthestp​)−cp​22​+α−∥f(xnearestn​)−cp∥22​}+max{0,​f(xfarthestp​)−cp​22​+β−∥f(xnearestn​)−f(x∗n​)∥22​},∀1≤i≤Aand1≤j≤B因此,多约束损失可以学习有效的特征描述,该特征描述可以满足视觉位置识别中的相对距离关系,并且可以使
提取的特征更具辨别性。中心点 cpc^{p}cp 代替选择anchor图像来约束positive图像和negative图像整体的距离关系。此外,多约束图像集的构建保证了来自同一地点的所有图像都将移动到更靠近中心点 cpc^{p}cp 的位置。因此,positive图像和negative图像之间的整体距离关系可以通过聚类方法导出的中心点 cpc^{p}cp 来测量和约束。在原始的元组生成方法中,训练过程效率低下,这可能会给实时自主机器人中视觉位置识别的部署使用带来计算负担。因此,引入了多约束图像集的思想,可以保证基于“图像位置”的更快的训练和测试过程。它有助于所提出的方法处理连续帧,这可以加快测试过程。

创建多约束图像集

现存的视觉位置识别任务的数据集通常包含图像和真值标签,我们使用相同的标签标记相同的位置,对于第k个位置包含u张图片,如果满足如下的距离关系,我们就会增加图像 xix_{i}xi​ 到临时positive图像集 XtempX_{tem}^{p}Xtemp​ 中
∥f(xi)−cp∥22>γ,∀1≤i≤u\left \| f(x_{i})-c^{p}\right \|_{2}^{2}>\gamma,\forall1\leq i \leq u ∥f(xi​)−cp∥22​>γ,∀1≤i≤u而对于其他位置,比如第t个位置,如果距离关系满足如下的式子,我们增加图像 xjx_{j}xj​ 到临时的negative图像集 XtemnX_{tem}^{n}Xtemn​ 中
∥f(xj)−cp∥22<γ′,∀1≤j≤v\left \| f(x_{j})-c^{p}\right \|_{2}^{2}<\gamma_{'},\forall 1\leq j \leq v ∥f(xj​)−cp∥22​<γ′​,∀1≤j≤v因此我们通过算法1创建合适的多约束图像集,在训练集中的每一张图像都有一个相关的位置标签,每一个位置所包含的图像数量是不固定的。首先,我们遍历每个图像并计算该图像所属位置的中心点,之后会按照距离关系构建一个临时的positive图像集 XtempX_{tem}^{p}Xtemp​ 和一个临时的negative图像集 XtemnX_{tem}^{n}Xtemn​,然而 XtempX_{tem}^{p}Xtemp​ 和 XtemnX_{tem}^{n}Xtemn​ 的长度没有必要和通过 XpX^{p}Xp 和 XnX^{n}Xn 定义的输入的长度匹配,因此,我们可以将 XtempX_{tem}^{p}Xtemp​ 和 XtemnX_{tem}^{n}Xtemn​ 的长度分别调整为A和B。

训练过程

首先,我们将训练集分成大小为(A+B)的几个小批量。这些小批量被输入到共享由多约束损失函数更新参数的CNN模型中。通过这种方式,可以通过前向传播导出每个图像的特征向量。然后,我们可以根据算法1构造合适的多约束图像集。如果存在多约束图像集合,我们将使用多约束损失函数更新CNN模型的参数。如果不存在任何多约束图像集,则训练过程结束,这意味着CNN已成功训练。

小结

以上是关于这篇论文方法部分的基本介绍,可能有遗漏的部分或者是没有理解对的地方,欢迎大家及时指正。

基于深度学习的大规模vSLAM场景中的鲁棒视觉位置识别相关推荐

  1. 混合波束成形| 基于深度学习的大规模天线阵列混合波束成形设计

    文章目录 背景 系统模型 文章贡献 NN(Neural Network)设计 一些挑战 两阶段设计方法 仿真性能 结论 相关阅读 该论文是实验室师兄最新发表于WCL(IEEE Wireless Com ...

  2. 《基于深度学习的自然语言处理》中/英PDF

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx <基于深度学习的自然语言处理> Neural Network Methods in ...

  3. 基于深度学习的大规模交通标志识别(附6GB交通标志数据集)

    01 1.文章信息 <Deep Learning for Large-Scale Traffic-Sign Detection and Recognition>. 国外学者2020年发在I ...

  4. 基于深度学习的遥感图像场景识别方法研究

    文章目录 概述 方法原理 代码实现 结果分析 SVM Resnet LSTM 概述 从2012年深度卷积神经网络(AlexNet)成功应用于图像识别以来,发展出多个改进的卷积神经网络构架,包括2014 ...

  5. 机器学习_深度学习毕设题目汇总——场景

    下面是该类的一些题目: 题目 场景语义解析理论与方法研究 基于RGB-D视频序列的大尺度场景三维语义表面重建技术研究 基于图神经网络的场景理解算法研究 基于场景理解和深度学习的滞留物识别和异常行为检测 ...

  6. 最新综述 | 基于深度学习的SLAM方法:面向空间机器智能时代

    最新综述 | 基于深度学习的SLAM方法:面向空间机器智能时代 A Survey on Deep Learning for Localization and Mapping Towards the A ...

  7. 深度学习助力网络科学:基于深度学习的社区发现最新综述

    来源:AMiner科技 论文题目: A Comprehensive Survey on Community Detection with Deep Learning 论文网址: https://arx ...

  8. 基于深度学习的命名实体识别研究综述——论文研读

    基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...

  9. 基于深度学习的表面缺陷检测方法综述-论文阅读笔记

    //2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...

最新文章

  1. 选购计算机性能的核心指标,选电脑主要看什么参数呢?买电脑主要看什么参数,有什么技术指标?...
  2. Linux系统编程之--守护进程的创建和详解【转】
  3. GDCM:gdcm::Rescaler的测试程序
  4. stm32上的Lava虚拟机开发进度汇报(3)
  5. 如何为 .NET Core CLI 启用 TAB 自动补全功能
  6. CSS中的border-radius属性
  7. 【XML】XML树形结构
  8. docker 安装 与 卸载 centos
  9. 拼接 结果集_JUST技术:利用轨迹拼接分析实时可达区域|技术前沿
  10. CAN分析仪:便携式CAN总线分析仪
  11. Zbrush学习笔记十——制作毛发、模型减面
  12. 家用计算机设置网络,教您电脑如何设置宽带连接
  13. 图解:什么是最长递增子序列?
  14. Chaos Emulator v0.2.3 自建引力模拟器分享
  15. 潮阳实验学校文件服务器,【潮实】潮阳实验学校校歌(调教用)
  16. 自学php看什么视频,PHP自学要多久?看了这11部php视频教程,你就是高手
  17. 四步骤关闭Windows10自动更新
  18. 张学友十大粤语十大国语金曲赏析
  19. 03-Java核心类库_设计模式【未完待续】
  20. VC环境下简单的贪吃蛇

热门文章

  1. AidLux “人脸测试”案例源码详解
  2. 2022-2027(新版)中国柔性薄膜开关行业竞争现状与投资效益预测报告
  3. LeetCode | Path Sum II
  4. redis如何清空当前缓存和所有缓存
  5. 阿里软件测试工程师手把手教学—作为测试,如何理解线程同步异步
  6. 灌区智能信息化管理系统解决方案
  7. CNAS能力认证查询篇之机构篇
  8. adc网络语什么意思_王者荣耀AD什么意思AP、ADC、AOE等术语是什么意思
  9. Java使用word模板导出word
  10. 2019上JAVA第四周实验报告