VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记


作者:Noha Radwan∗Abhinav Valada∗Wolfram Burgard

研究机构:德国弗莱堡大学

论文解决的问题

本文解决了语义分割+相机重定位+视觉里程计VO三个任务。相机重定位指的是绝对位姿预测,VO则是相对位姿预测。本文还发布了一个用于定位的数据集DEEPLOC dataset.

多任务学习模型的好处是可以提高模型的泛化性,不需要大量的标签数据,且一次计算完成了多个任务,效率高。

本文基于VLocNet,提出了一种自适应的加权方法,能够利用运动特定时间信息(motion-specific temporalinformation)来提高定位精度。这种自适应加权方法,在融合网络的两个特征图时,可以调整加权权值得到更加合适的权值比例,得到的融合入特征图能够更好的描述特征信息。

本文在VLocNet的基础上加以改进:

  1. 联合前一帧的信息来对运动特定信息(motion specific information)进行累积
  2. 使用提出的自适应融合层对**区域的语义特征进行自适应融合
  3. 提出一种自监督变换层(warping),在语义分段模型中聚合场景级上下文。
论文方法介绍

模型结构:相对位回归网络(VO模块)、绝对位姿回归网络、语义分割网络

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记

绝对位姿回归网络:

上图中间黄色的部分。中间两层红色的是本文提出的自适应权重融合层。

损失函数:
Lloc(f(θIt)):=LEuc(f(θIt))+LRel(f(θIt)) L_{loc}(f(θ|I_t)):=L_{Euc}(f(θ|I_t))+L_{Rel}(f(θ|I_t))
其中几何一致损失(相对位姿损失):
LRel(f(θIt))=LxRel(f(θIt))exp(s^xRel)+s^xRel+LqRel(f(θIt))exp(s^qRel)+s^qRelLxRel(f(θIt)):=xt,t1(x^tx^t1)2LqRel(f(θIt)):=qt,t1(q^t11q^t)2 L_{Rel}(f(θ|I_t)) =L_{x_{Rel}}(f(θ|I_t))exp(−\hat s_{x_{Rel}})+ \hat s_{x_{Rel}} + L_{q_{Rel}}(f(θ|I_t))exp(−\hat s_{q_{Rel}}) + \hat s_{q_{Rel}}\\ 平移损失:L_{x_{Rel}}(f(θ|I_t)):=‖x_{t,t−1}−(\hat x_t−\hat x_{t−1})‖^2\\ 旋转损失: L_{q_{Rel}}(f(θ|I_t)):=||q_{t,t−1}−(\hat q_{t−1}^{−1}\hat q_t)||^2

欧氏距离损失(绝对位姿损失):
LEuc(f(θIt))=Lx(f(θIt))exp(s^x)+s^x+Lq(f(θIt))exp(s^q)+s^qLx(f(θIt)):=xtx^t2Lq(f(θIt)):=qtq^t2 L_{Euc}(f(θ|I_t)) =L_x(f(θ|I_t))exp(−\hat s_x)+\hat s_x+L_q(f(θ|I_t))exp(−\hat s_q)+\hat s_q\\ 平移损失:L_x(f(θ|I_t)):=‖x_t−\hat x_t‖^2\\ 旋转损失:L_q(f(θ|I_t)):=‖q_t−\hat q_t‖^2

VO模块:

上图中蓝色的两支。

注意下面的一支与 绝对位姿回归网络由于都在ItI_t上提特征,所以是共享权重的。

损失函数:
Lvo(f(θIt,It1)):=Lx(f(θIt,It1))exp(s^xvo)+s^xvo+Lq(f(θIt,It1))exp(s^qvo)+s^qvoLxLq L_{vo}(f(θ|I_t,I_{t−1})):=L_x(f(θ|I_t,I_{t−1}))exp(−\hat s_{x_{vo}})+\hat s_{x_{vo}} + L_q(f(θ|I_t,I_{t−1}))exp(−\hat s_{q_{vo}})+\hat s_{q_{vo}}\\ L_x、L_q分别表示平移损失和旋转损失

语义分割模块:

上图中绿色的部分。

首先计算每个像素的类别:
pj(ur,θIn)=exp(sj(ur,θ))kCexp(sk(ur,θ))sj(ur,θ)urθ p_j(u_r,θ|I_n) =\frac{exp(s_j(u_r,θ))}{\sum ^C_kexp(s_k(u_r,θ))}\\ s_j(u_r,\theta)代表像素u_r的得分,\theta为模型权重
损失函数:
Lseg(T,θ)=n=1Nr=1ρj=1Cδmrn,jlogpj(ur,θIn)C:class numberN:images numberρ:pixel number per image L_{seg}(T,θ) =−\sum^N_{n=1}\sum^ρ_{r=1}\sum^C_{j=1}δ_{m^n_r,j}logp_j(u_r,θ|I_n)\\ C : class \ number\\ N: images\ number\\ ρ: pixel\ number\ per\ image
然后介绍自监督的变换层:

self-supervised Warping:

上图中橘色的网络层

根据t-1时刻的特征图生成对应的深度图(用DispNet),然后利用估计的相对位姿将其变换到t时刻的视角下,将其与特时刻的特征图融合。这样多视角、多分辨率的信息使得模型对视角、尺度、畸变等场景下依然有很强的鲁棒性。

数学表达 :
ur:=π(T(pt,t1)π1(ur,Dt(ur)))DtT(pt,t1)姿pt,t1π u_r:=π(T(p_{t,t−1})π^{−1}(u_r,D_t(u_r)))\\ D_t表示深度图\\ T(p_{t,t−1})表示相对位姿p_{t,t−1}对应的齐次旋转矩阵\\ \pi 表示投影函数

adaptive weighted fusion layer:

用于组合来自多个层或多个网络的特征的常用做法是:执行张量的级联或逐元素的加法/乘法。 尽管这在两个张量都包含足够的相关信息时可能是有效的,但这种操作通常会累积不相关的特征图,它的有效性在很大程度上取决于进行融合的网络的中间层。

这里作者提出了可以自适应加权的机制:

假设两张特征图为za zbz^a\ z^b,则自适应融合女机制可写为:
z^fuse=max(W((waza)(wbzb))+b,0)Wb:线(11+ReLU)::: \hat z_{fuse}=max(W∗((w^a\odot z^a)\oplus(w^b\odot z^b))+b,0)\\ W、b:非线性池化的参数(即1*1卷基层+ReLU)\\ \odot: 对应通道相乘\\ \oplus: 对应通道相连接\\ *: 卷积操作

总的损失函数:

Lmulti:=Llocexp(s^loc)+s^loc+Lvoexp(s^vo)+s^vo+Lsegexp(s^seg)+s^seg L_{multi}:=L_{loc}exp(−\hat s_{loc})+\hat s_{loc}+L_{vo}exp(−\hat s_{vo})+\hat s_{vo} +L_{seg}exp(−\hat s_{seg})+\hat s_{seg}

其中s^\hat s均指可学习的权值参数。

实验内容以及分析

7-SCENES数据集,定位对比:

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记

7-SCENES数据集,VO对比:

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记

DEEPLOC DATASET,语义分割对比:

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记

VO性能可视化:

在户外、户内、重复文理、无文理、反射等环境下都有较好的鲁棒性

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记