Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计

本博客仅为作者记笔记之用,不对之处,望见谅,欢迎批评指正。
更多相关博客请查阅:http://blog.csdn.net/weixin_39779106;
如需转载,请附上本文链接:http://blog.csdn.net/weixin_39779106/article/details/79689208

原论文链接

      • 一、摘要
      • 二、介绍
      • 三、相关工作(略)
      • 四、深度位姿回溯
        • 0. 概述
        • A. 全局位姿回归
        • B.视觉里程计
        • C.深度辅助学习
      • 五、实验评估
        • A.介绍数据集(略)
        • B.训练网络
        • C.与state-of-the-art对比
        • D.标杆
        • E.结构分析
      • 六、总结展望

一、摘要

Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第1张图片

原文摘要 翻译
In this work, we propose VLocNet, a new convolutional neural network architecture for 6-DoF global pose regression and odometry estimation from consecutive monocular images. 本文提出了VLocNet,是一种用于对连续图像进行6自由度全局姿态回归和里程计估计的CNN网络。
Our multitask model incorporates hard parameter sharing, thus being compact and enabling real-time inference, in addition to being end-to-end trainable. 我们的多任务模型实现了参数分享,因此除了可以进行端到端的训练之外,同还十分的紧凑可以实时运行。
We propose a novel loss function that utilizes auxiliary learning to leverage relative pose information during training, thereby constraining the search space to obtain consistent pose estimates. 我们提出了一种新的损失函数,通过辅助学习在训练时利用相对位姿信息,从而约束搜索空间以获得一致的姿态估计。
even our single task model exceeds the performance of state-of-the-art deep architectures for global localization, while achieving competitive performance for visual odometry estimation. 本文所提出的单任务模型就已经超过了目前性能最好的基于深度学习框架的全局定位系统,同时在视觉里程计估计方面也取得了相当有竞争力的表现。
Furthermore, we present extensive experimental evaluations utilizing our proposed Geometric Consistency Loss that show the effectiveness of multitask learning and demonstrate that our model is the first deep learning technique to be on par with, and in some cases outperforms state-of-theart SIFT-based approaches. 此外,我们通过大量实验评估利了使用本文提出的几何一致性损失函数,表明了多任务学习的有效性。实验结果同时表明了我们所提出的模型是目前唯一一个可以与基于SIFT算法性能相提并论的基于深度学习的算法,甚至在某些情况下,我们所提出的算法的性能优于基于SIFT的方法。

二、介绍

Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第2张图片Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第3张图片

原文摘要 翻译
From a robot’s learning perspective, it is unlucrative and unscalable to have multiple specialized single-task models as they inhibit both intertask and auxiliary learning. This has lead to a recent surge in research targeted towards frameworks for learning unified models for a range of tasks across different domains. 从机器人学习的角度来看,拥有多个针对单一任务训练的模型是毫无收益,也是不可扩展的,因为这样做抑制了任务之间相互学习以及辅助学习,因此最近的研究热潮更多的关注于针对不同任务训练统一的模型。
An evident advantage is the resulting compact model size in comparison to having multiple task-specific models. Auxiliary learning approaches on the other hand, aim at maximizing the prediction of a primary task by supervising the model to additionally learn a secondary task. 与训练多个特定任务的模型相比,训练统一模型最显而易见的优势在于其结构更加紧凑(模型尺寸更小)。另一方面,辅助学习可以通过监督模型额外学习次要任务来最大程度提高主要任务预测的精度。
For instance, in the context of localization, humans often describe their location to each other with respect to some reference landmark in the scene and giving their position relative to it. Here, the primary task is to localize and the auxiliary task is to be able to identify landmarks. 例如对于定位问题而言,人们通常会根据场景中的一些参考地标来描述彼此的位置,如给出相对于这些地标的位置。在这里,主要任务是定位,辅助任务是识别地标。
Similarly, we can leverage the complementary relative motion information from odometry to constrict the search space while training the global localization model. 同样,我们可以利用里程计中的相对运动信息来限制搜索空间的同时训练全局定位模型。

个人理解1:本段主要讲述了为什么要使用辅助学习,因为现有的模型通常是针对单一任务训练的,而机器人系统本身为多任务系统,将多个单一任务模型并行使用的性能不如利用辅助训练得到的多任务模型(一个模型完成多项任务)。作者举了两个例子,即定位和地标识别之间可以互补,从而提高两者的精度,以及里程计信息也可以利用相对运动信息限制全局定位搜索空间。
个人理解2:本段同样提出了多任务模型的难题,1.首先需要确定如何构建网络框架从而可以实现多任务学习;2.由于现有不同任务针对的网络具有不同的属性和不同的收敛速度,如何实现联合优化。接下来作者将提出针对这两个问题的解决方案。
Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第4张图片Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第5张图片

原文摘要 翻译
In this work, we address the problem of global pose regression by simultaneously learning to estimate visual odometry as an auxiliary task. We propose the VLocNet architecture consisting of a global pose regression sub-network and a Siamese-type relative pose estimation sub-network. Our network based on the residual learning framework, takes two consecutive monocular images as input and jointly regresses the 6-DoF global pose as well as the 6-DoF relative pose between the images. We incorporate a hard parameter sharing scheme to learn inter-task correlations within the network and present a multitask alternating optimization strategy for learning shared features across the network. Furthermore, we devise a new loss function for global pose regression that incorporates the relative motion information during training and enforces the predicted poses to be geometrically consistent with respect to the true motion model. 本文主要解决的是全局位姿回归以及同时实现视觉里程计的问题,其中全局重定位是主任务,视觉里程计是辅助任务。本文提出的VLocNet结构包含了一个全局位姿回归子网络和一个连体式(Siamese-type)相对姿态估计子网络。本文所提出的网络基于残差学习框架,将两个两个连续单目图片作为输入,共同回归得到6自由度全局位姿以及图像之间的6自由度相对位姿。我们引入了一个硬参数共享方案来学习网络内部任务间的相关性,同时提出了一个多任务交替优化策略,用于学习整个网络中的共享特征。此外,我们设计了一种新的全局位姿回归损失函数,该函数包含了训练期间的相对运动信息,并强制预测的位姿在几何上与真实运动模型相一致。
We present extensive experimental evaluations on both indoor and outdoor datasets comparing the proposed method to state-ofthe-art approaches for global pose regression and visual odometry estimation. We empirically show that our proposed VLocNet architecture achieves state-of-the-art performance compared to existing CNN-based techniques. To the best of our knowledge, our presented approach is the first deep learning-based localization method to perform on par with local feature-based techniques. Moreover, our work is the first attempt to show that a joint multitask model can precisely and efficiently outperform its task-specific counterparts for global pose regression and visual odometry estimation. 通过大量实验(包括使用大量室内室外数据集)本文对比了所提出的方法以及目前最好的用于全局位姿回归和视觉里程计估计的方法,直观地展示了我们提出的VLocNet框架的性能要优于现有的基于CNN的方法。据我们所知,本文提出的方法是首次实现基于深度学习方法与基于局部视觉特征方法的性能相媲美。此外,通过同时实现全局位姿回归和视觉里程估计,我们的工作首次尝试证明了联合多任务模型可以精确而有效地胜过多单一任务模型的并行。

三、相关工作(略)

四、深度位姿回溯

0. 概述

Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第6张图片

  • 本文提出框架的主要任务是通过最小化所提出的几何一致性损失函数(Geometric Consistency Loss
    function)来精确估计全局位姿,同时又利用两个连续帧之间的相对运动来约束全局定位的搜索空间。本文将这一问题定义成一种辅助学习,该辅助学习以估计全局定位为主目标,以估计相对运动为第二目标。通过相对运动估计学习得到的特征将被全局位姿回归部分用于学习针对不同场景更具区分力的描述子。
  • 本文所提出的框架包含三个流程的神经网络:一个流程为全局位姿回归网络,另外两个流程应用于实现连体式里程估计。整体结构如图1所示。给定一组连续图像 (It,It1) ( I t , I t − 1 ) 本文提出的网络先预测出两幅图像的全局位姿 pt=[xt,qt],pt1=[xt1,qt1] p t = [ x t , q t ] , p t − 1 = [ x t − 1 , q t − 1 ] 以及相对位姿 pt,t1=[xt,t1,qt,t1] p t , t − 1 = [ x t , t − 1 , q t , t − 1 ] ,全局位姿归回网络输入为图像 It I t ,连体式里程估计输入为连续图像 (It,It1) ( I t , I t − 1 )

A. 全局位姿回归

  • 全局定位子网络的输入是图像 It I t ,先前预测的位姿 p^t1 p ^ t − 1 ,输出是新预测的当前位姿 p^t p ^ t
  • 1)子网络结构:子网络是在ResNet-50上构建的,在最后一个平均迟化层之前与ResNet-50是一样的,包含5个具有多个残差单元的残差模块,其中每个单元具有由三个卷积层组成的瓶颈结构,每一个卷积层后接一个批量标准化层(batch normalization),缩放层(scale)以及修正线性单元层(ReLUs)。本文对残差单元进行了改进,将ReLUs换成了指数线性单元(ELUs),从而可以减少神经元中的偏差,同时避免了梯度消失以及收敛速度更快的问题,本文将最后的平均池化层换成了全局平局池化,并在其后增加了三个内积层 fc1,fc2,fc3 f c 1 , f c 2 , f c 3 fc1 f c 1 为1024维, fc2,fc3 f c 2 , f c 3 分别为3维,4维对应着位置和姿态四元数。
  • 本文提出的几何一致损失函数可以确保新预测的位姿与基于上一位姿利用相对运动累积得到的位姿相一致,因此,可以将上一位姿提供给网络(训练时用真值,测试时用预测值)从而更好的学习环境空间关系。本文首先将上一位姿提供给 fc4 f c 4 (没看懂,因为上文中说只用三个全连接层,且图1中只画了三个全连接层),其维数为D,重塑其输出为 H×W×C H × W × C ,跟降采样前最后一个残差单元的输出形状有关。然后将这两个张量连接起来并提供给随后的残差单元。
  • 2)几何一致性损失:利用相同的损失函数同时学习平移和旋转是十分具有挑战性的,因为两个量之间的规模和单位都不相同,先前有工作表明同时回归位置和姿态的性能超过单独训练的模型,我们利用 β β 作为权重平衡器来调节两者的二范数(欧式距离)损失项从而得到损失函数如下:
    Lβ(It)=Lx(It)+βLq(It) L β ( I t ) = L x ( I t ) + β L q ( I t )
    之前很多工作证明了该式的有效性,但需要手动调节 β β 参数,而且针对不同场景的 β β 值还不一样,有文献使用可学习的参数来代替 β β ,如下所示:
    Ls(It)=Lx(It)exp(s^x)+s^x+Lq(It)exp(s^q)+s^q L s ( I t ) = L x ( I t ) exp ⁡ ( − s ^ x ) + s ^ x + L q ( I t ) exp ⁡ ( − s ^ q ) + s ^ q
    其中 s^x s ^ x , s^q s ^ q 是两个可学习的参数,分别代表着两个部分的权重。虽然解决了手动调参的问题但是没办法和上一帧的运动保持一致,因此本文基于此提出了一种新的损失函数,加入新的约束(惩罚项),通过惩罚与相对运动矛盾的位姿估计来构成新的损失函数。具体而言,我们尽可能的使得所预测位姿 p^t p ^ t p^t1 p ^ t − 1 之间的差值与相对运动真值 pt,t1 p t , t − 1 相一致。分别用 Rx(It) R x ( I t ) Rq(It) R q ( I t ) 来表示当前图像 It I t 和上一预测位姿 p^t1 p ^ t − 1 之间的相对运动,有:
    Rx(It)=x^tx^t1 R x ( I t ) = x ^ t − x ^ t − 1
    Rq(It)=q^1t1q^t R q ( I t ) = q ^ t − 1 − 1 q ^ t
    我们将其集成为里程损失形式并最小化位姿估计的误差,里程损失可以表示如下:
    Lxodom(It)=||xt,t1Rx(It)|| L x o d o m ( I t ) = | | x t , t − 1 − R x ( I t ) | |
    Lqodom(It)=||qt,t1Rq(It)|| L q o d o m ( I t ) = | | q t , t − 1 − R q ( I t ) | |
    接着将里程损失和损失函数相结合,可得:
    LGeo(It)=(Lx(It)+Lxodom(It))exp(s^x)+s^x+(Lq(It)+Lqodom(It))exp(s^q)+s^q L G e o ( I t ) = ( L x ( I t ) + L x o d o m ( I t ) ) exp ⁡ ( − s ^ x ) + s ^ x + ( L q ( I t ) + L q o d o m ( I t ) ) exp ⁡ ( − s ^ q ) + s ^ q
    我们推测,通过在损失函数中加入这种相对运动,所得到的训练模型对于环境内的感知偏差(perceptual aliasing )将更加鲁棒。

B.视觉里程计

  • 为了利用提出的全局位姿回归网络集成得到运动相关的特征,本文通过训练一个辅助网络从连续图像 (It,It1) ( I t , I t − 1 ) 回归得到6自由度相对位姿,并构建了基于ResNet-50的连体式网络(两个线程)。我们将两个线程网路最后降采样层之前的特征串联,然后再将其映射传递给最后的三个残差单元,随后就是三个内积层,跟全局位姿回归网络相同,其损失函数为:
    Lvo(It,It1)=Lx(It,It1)exp(s^x)+s^x+Lq(It,It1)exp(s^q)+s^q L v o ( I t , I t − 1 ) = L x ( I t , I t − 1 ) exp ⁡ ( − s ^ x ) + s ^ x + L q ( I t , I t − 1 ) exp ⁡ ( − s ^ q ) + s ^ q
    具体训练步骤在稍后实验B部分详细阐述。

C.深度辅助学习

  • 使用联合学习的原因:1)全局定位和视觉里程计之间本身有很大的关联;2)通过分享特征可以实现一种竞争合作的关系,这种关系将在训练时提供额外的正则化约束从而可以避免过拟合。
  • 与一般的连体式网络不同,我们不在两个线程间共享权重,而是在处理 It I t 图像的线程和全局位姿回归线程间共享权值。通过在学习两幅图像之间的相关性之前学习每幅图像的判别特征,该视觉里程计网络能够有效地在包含运动模糊和感知偏差的场景中使用。
  • 其实共享特征可以看作一种正则化行为,但是我们并不清楚要共享多少层,浅了没用,因为浅层特征太普通,深了又会同时影响到每个网络的性能,因此本文做了大量共享不同层数的实验,将在实验部分具体阐述。
  • 在预测过程中,联合网络可以作为一个单独模型,这为以后融合更多网络提供了可能。

五、实验评估

A.介绍数据集(略)

B.训练网络

  • 为了能够使网络训练不同的数据集,我们将所有的图像调整到短边为256像素的图像,我们对每个数据集的每个场景进行像素级平均,然后让输入图像减去均值(实际上就是进行归一化)。还用了位姿合成(pose synthesis)和视图合成(synthetic view synthesis)来增强图像,但并没有提高性能,有时还起反作用。。。利用224*224的随机裁剪可以帮助提高泛化能力。
  • 使用了Adam解决方案, β1=0.9,β2=0.999,ϵ=1010 β 1 = 0.9 , β 2 = 0.999 , ϵ = 10 − 10 。初始学习率为 λ0=104 λ 0 = 10 − 4 ,mini-batch是32,dropout概率为0.2。为了训练统一的模型以及实现辅助学习,我们使用了很多不同的优化策略,这些策略使得网络可以高效地学习共享特征以及特定任务的特征。例如在交替训练中,我们在不同的任务上使用不同的优化器,并交替地在特定任务损失函数上执行从而使得信息可以从一项任务到另一项同步传输。在联合训练中,我们把每个子任务的损失函数相加利用一个优化器来同时训练多个子网络。
  • 对于初始权重本文进行了多种测试,将在F小节中详细讨论,基于转移学习,全局迟化层前用ImageNet训练的权值作为初值,剩下的权重采用高斯初始化。
  • 使用了TensorFlow的框架,TitanX的GPU,120000次迭代,大约花了15个小时进行训练。

C.与state-of-the-art对比

Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第7张图片 Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第8张图片

  • 如表所示,将本文提出的VLocNet与目前著名的几个基于深度学习的定位方法进行比较,PoseNet,Bayesian-PoseNet,LSTM-Pose,VidLoc,Hourglass-Pose,Branch-Net,PoseNet2,SVS-Pose以及NNnet。
  • 表一,在7-Scenes数据集上,初始化 s^x,s^q s ^ x , s ^ q 分别为-3到0和-4.8到-3,本文提出的方法在平移和旋转估计精度上分别提高了77.14%和59.14%。
  • 表二,在Cambridge-Landmarks数据集上,初始化 s^x,s^q s ^ x , s ^ q 分别为-3和-6.5,提高精度分别为51.6%和1.5%。
  • 表三,将本文所提出的VLocNet与基于深度学习的视觉里程计方法进行对比,DeepVO, cnnBspp和LBO。本文提出的方法在平移和旋转估计精度上分别提高了27.0%和16.67%。

D.标杆

  • 表四,和Active Search(一种基于SIFT的方法)相比性能差不多,和基于最近邻搜索的方法比在平移和旋转估计精度上分别提高了90.20%和70.98%。
  • 基于特征的方法在缺少特征的地方往往会发生定位失败。
  • 基于CNN的方法可以用于补充基于特征的方法,因为基于CNN的方法在有感知偏差以及缺少特征这些极具挑战的环境中表现的更好,但就目前而言,基于特征的传统方法在多数情况下优于基于CNN的方法。
  • 但本文作者相信通过基于CNN方法的发展迟早会超过传统方法。

E.结构分析

Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计_第9张图片
- 本小节主要分析不同结构的选自对VLocNet带来的影响。包括以下选择:1)VLocNet-M1: ResNet-50+ReLUs,欧式损失, β=1 β = 1 ;2)VLocNet-M2: ResNet-50+ELUs,欧式损失, β=1 β = 1 ;3)VLocNet-M3: ResNet-50+ELUs,使用 LGeo L G e o 损失, β=1 β = 1 ;4)VLocNet-M4: ResNet-50+ELUs,使用 LGeo L G e o 损失以及 s^x,s^q s ^ x , s ^ q ,比较结果表五所示。
- 相较于PoseNet而言,合并残差单元(VLocNet-M1)是精度分别提高了54.09%和14.68%,对性能作用更大的是使用了几何一致损失函数(对比VLocNet-M2和VLocNet-M3可知),使用可学习的参数对系统性能提升也很明显(VLocNet-M4)。
- 图2展示了在RedKitchen场景上训练的上述模型的累积直方图误差。

六、总结展望

  • 本文提出了一种新的端到端多任务DCNN框架,该框架可以实现6自由度单目视觉定位以及里程估计。
  • 本文利用高效的共享方案和联合优化策略,提出了用于学习任务间相关性的网络框架。文章表明这种联合训练模型的性能优于单一特定任务训练模型的性能。
  • 本文同时提出了一种用于6自由度位姿回归的几何一致性损失函数,使得估计出的位姿能够和真实运动模型一致。
  • 通过大量实验本文提出的单一任务模型和多任务模型相对于现有的基于CNN的定位方法性能分别提高了80%和66.69%(平移和旋转)。
  • 本文所提出的方法第一次使得基于深度学习的方法的性能达到了传统方法的水平,甚至有所超越。
  • 本文证明使用多任务的DCNN是非常有潜力的研究方向。
  • 未来我们将加入更过的辅助学习,如语义分割,图像相似度学习,进一步提高性能。

你可能感兴趣的:(SLAM,深度学习)