【论文笔记】基于图神经网络的多视角视觉重定位 GRNet CVPR 2020 论文笔记

GRNet: Learning Multi-view Camera Relocalization with Graph Neural Networks

驭势科技, 北京大学机器感知重点实验室, 北京长城航空测控技术研究所

  • 本文提出了一种使用多视角图像进行相机重定位的图神经网络。

  • 该网络可以使得不连续帧之间进行信息传递,相比于只能在相邻前后帧之间进行信息传递的 序列输入LTSM,其能捕获更多视角信息以进行重定位。因此LSTM只是一种GNN的特殊情况。

  • 为了让GNN能适应于重定位任务,作者重新设计了节点、边、嵌入函数,使用CNN和GNN分别用于特征提取和知识传播。

  • 设计了一个通用的基于图的损失函数,超越了原来的连续视角约束,引入了多视角约束

为什么使用GNN呢? 因为GNN可以处理非结构性输入。LSTM和视觉里程计可以提供前后相邻帧的时间一致性约束,且LSTM并不能保持长时间的记忆。而GNN可以提供不连续多视角帧之间的时间一致约束。 在这里插入图片描述

整体框架:

在这里插入图片描述

论文方法

1.重新设计GNN

  • 节点:是一个3维的张量,每个节点 v i v_i vi的特征 x i ∈ R H × W × C x_i \in R^{H×W×C} xiRH×W×C

  • 边初始化:初始化的时候连接所有的节点对,不放过任何可能的两个节点之间连接,后期会有边池化操作简化计算量

    这一步相比于LSTM的相邻节点相连具有优越性。

2.信息传播

在这里插入图片描述

  • 首先使用CNN生成要从xi传播到xj的消息:
    m j → i = f m ( x i , x j ) m_{j→i}=f_m(x_i,x_j) mji=fm(xi,xj)
    这里的fm是两层CNN,将xi和xj连接后输入fm得到传播消息

  • 进行消息选择,其实就是计算边权重对边加权:
    a j → i = f a t t e n ( x i , x j ) 其 中 f a t t e n 是 逐 通 道 计 算 的 余 弦 相 似 度 c s : a j → i ( k ) = σ ( c s ( v e c ( x i ( k ) ) , v e c ( x j ( k ) ) ) ) σ 为 归 一 化 到 01 a_{j→i}=f_{atten}(x_i,x_j)\\其中f_{atten}是逐通道计算的余弦相似度cs:\\a^{(k)}_{j→i}=σ(cs(vec(x^{(k)}_i),vec(x^{(k)}_j)))\\\sigma 为归一化到01 aji=fatten(xi,xj)fattencsaji(k)=σ(cs(vec(xi(k)),vec(xj(k))))σ01

  • 信息融合:即连接到x_i的所有边的加权平均:
    m i a g g = 1 N i ∑ e i j ∈ ϵ a j → i ⊗ m j → i ⊗ 表 示 逐 通 道 相 乘 m^{agg}_i=\frac1{N_i}\sum_{e_{ij}\in \epsilon}a_{j→i}⊗m_{j→i}\\ ⊗表示逐通道相乘 miagg=Ni1eijϵajimji

  • 计算好融合的信息后,就是将节点v_i的特征x_i更新为其值了
    x i ′ = f u ( x i , m i a g g ) 其 中 f u 为 更 新 函 数 , 实 际 上 是 C N N 和 f m 相 同 但 是 参 数 不 共 享 x'_i=f_u(x_i,m^{agg}_i)\\其中f_u为更新函数,实际上是CNN和f_m相同但是参数不共享 xi=fu(xi,miagg)fuCNNfm

3.多层动态更新

多层更新引入了边池化机制,去除冗余连接。

在这里插入图片描述

  • 多层图神经网络:

    使用ResNet34的四个模块 f c l   ( l = 1 , 2 , 3 , 4 ) f_c^l \ (l=1,2,3,4) fcl (l=1,2,3,4)对节点进行更新:
    V l = f c l ( V l − 1 ) V^l=f^l_c(V^{l−1}) Vl=fcl(Vl1)
    使用图神经网络 f g l f_g^l fgl对边进行更新:
    KaTeX parse error: Undefined control sequence: \ at position 14: V^l_{fused},\̲ ̲epsilon ^l=f^l_…

  • 自适应边池化:

    只保留余弦相似度最高的前k个节点之间的连接:
    c j → i = c s ( m a x p o o l ( x i ) , m a x p o o l ( x j ) ) c_{j→i}=cs(maxpool(x_i), maxpool(x_j)) cji=cs(maxpool(xi),maxpool(xj))

  • 位姿估计:

    使用全局平均池化(GAP)对每层GNN的输出进行池化(融合各层特征输出),然后逐通道连接,通过两个全连接网络进行位置和姿态的估计。

4.GNN损失函数

模型的输出包含预测的位姿以及位姿之间的连接(边),因此损失函数包含两项
L = 1 N v ∑ v i ∈ V p o s e d ( ζ i , ζ ^ i ) + 1 N e ∑ e i j ∈ E p o s e d ( ω i j , ω ^ i j ) 第 一 项 是 绝 对 位 姿 损 失 , 第 二 项 是 有 连 接 的 节 点 之 间 的 相 对 位 姿 损 失 。 d ( ζ i , ζ ^ i ) = ∣ ∣ t i − t ^ i ∣ ∣ 1 ∗ e − β p + β p + ∣ ∣ r i − r ^ i ∣ ∣ 1 ∗ e − γ p + γ p L=\frac1{N_v}\sum_{v_i\in V_{pose}}d(ζ_i,\hat ζ_i)+\frac1{Ne}\sum_{e_{ij}\in E_{pose}}d(ω_{ij},\hat ω_{ij})\\第一项是绝对位姿损失,第二项是有连接的节点之间的相对位姿损失。\\d(ζ_i,\hat ζ_i)=||t_i−\hat t_i||_1*e^{−β_p}+β_p+||r_i−\hat r_i||_1*e^{−\gamma p}+\gamma p L=Nv1viVposed(ζi,ζ^i)+Ne1eijEposed(ωij,ω^ij)姿姿d(ζi,ζ^i)=tit^i1eβp+βp+rir^i1eγp+γp

5.实验结果:

室内数据集:7scenes 在这里插入图片描述

室外数据集:cambridge,RobotCar

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值