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 论文笔记_第1张图片

绝对位姿回归网络:

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

损失函数:
L l o c ( f ( θ ∣ I t ) ) : = L E u c ( f ( θ ∣ I t ) ) + L R e l ( f ( θ ∣ I t ) ) L_{loc}(f(θ|I_t)):=L_{Euc}(f(θ|I_t))+L_{Rel}(f(θ|I_t)) Lloc(f(θIt)):=LEuc(f(θIt))+LRel(f(θIt))
其中几何一致损失(相对位姿损失):
L R e l ( f ( θ ∣ I t ) ) = L x R e l ( f ( θ ∣ I t ) ) e x p ( − s ^ x R e l ) + s ^ x R e l + L q R e l ( f ( θ ∣ I t ) ) e x p ( − s ^ q R e l ) + s ^ q R e l 平 移 损 失 : L x R e l ( f ( θ ∣ I t ) ) : = ‖ x t , t − 1 − ( x ^ t − x ^ t − 1 ) ‖ 2 旋 转 损 失 : L q R e l ( f ( θ ∣ I t ) ) : = ∣ ∣ q t , t − 1 − ( q ^ t − 1 − 1 q ^ 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 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 E u c ( f ( θ ∣ I t ) ) = L x ( f ( θ ∣ I t ) ) e x p ( − s ^ x ) + s ^ x + L q ( f ( θ ∣ I t ) ) e x p ( − s ^ q ) + s ^ q 平 移 损 失 : L x ( f ( θ ∣ I t ) ) : = ‖ x t − x ^ t ‖ 2 旋 转 损 失 : L q ( f ( θ ∣ I t ) ) : = ‖ q t − q ^ t ‖ 2 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 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

VO模块:

上图中蓝色的两支。

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

损失函数:
L v o ( f ( θ ∣ I t , I t − 1 ) ) : = L x ( f ( θ ∣ I t , I t − 1 ) ) e x p ( − s ^ x v o ) + s ^ x v o + L q ( f ( θ ∣ I t , I t − 1 ) ) e x p ( − s ^ q v o ) + s ^ q v o L x 、 L q 分 别 表 示 平 移 损 失 和 旋 转 损 失 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分别表示平移损失和旋转损失 Lvo(f(θIt,It1)):=Lx(f(θIt,It1))exp(s^xvo)+s^xvo+Lq(f(θIt,It1))exp(s^qvo)+s^qvoLxLq

语义分割模块:

上图中绿色的部分。

首先计算每个像素的类别:
p j ( u r , θ ∣ I n ) = e x p ( s j ( u r , θ ) ) ∑ k C e x p ( s k ( u r , θ ) ) s j ( u r , θ ) 代 表 像 素 u r 的 得 分 , θ 为 模 型 权 重 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为模型权重 pj(ur,θIn)=kCexp(sk(ur,θ))exp(sj(ur,θ))sj(ur,θ)urθ
损失函数:
L s e g ( T , θ ) = − ∑ n = 1 N ∑ r = 1 ρ ∑ j = 1 C δ m r n , j l o g p j ( u r , θ ∣ I n ) C : c l a s s   n u m b e r N : i m a g e s   n u m b e r ρ : p i x e l   n u m b e r   p e r   i m a g e 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 Lseg(T,θ)=n=1Nr=1ρj=1Cδmrn,jlogpj(ur,θIn)C:class numberN:images numberρ:pixel number per image
然后介绍自监督的变换层:

self-supervised Warping:

上图中橘色的网络层

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

数学表达 :
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 对 应 的 齐 次 旋 转 矩 阵 π 表 示 投 影 函 数 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 表示投影函数 ur:=π(T(pt,t1)π1(ur,Dt(ur)))DtT(pt,t1)姿pt,t1π

adaptive weighted fusion layer:

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

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

假设两张特征图为 z a   z b z^a\ z^b za zb,则自适应融合女机制可写为:
z ^ f u s e = m a x ( W ∗ ( ( w a ⊙ z a ) ⊕ ( w b ⊙ z b ) ) + b , 0 ) W 、 b : 非 线 性 池 化 的 参 数 ( 即 1 ∗ 1 卷 基 层 + R e L U ) ⊙ : 对 应 通 道 相 乘 ⊕ : 对 应 通 道 相 连 接 ∗ : 卷 积 操 作 \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: 对应通道相连接\\ *: 卷积操作 z^fuse=max(W((waza)(wbzb))+b,0)Wb:线(11+ReLU):::

总的损失函数:

L m u l t i : = L l o c e x p ( − s ^ l o c ) + s ^ l o c + L v o e x p ( − s ^ v o ) + s ^ v o + L s e g e x p ( − s ^ s e g ) + s ^ s e g 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} Lmulti:=Llocexp(s^loc)+s^loc+Lvoexp(s^vo)+s^vo+Lsegexp(s^seg)+s^seg

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

实验内容以及分析

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

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记_第2张图片

7-SCENES数据集,VO对比:

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记_第3张图片

DEEPLOC DATASET,语义分割对比:

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记_第4张图片

VO性能可视化:

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

VLocNet++: Deep Multitask Learning for Semantic Visual Localization and Odometry 辅助学习 && 2018 论文笔记_第5张图片

你可能感兴趣的:(相机重定位)