DeepVO: Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks--Sen Wa

[1] Wang S , Clark R , Wen H , et al. DeepVO: Towards end-to-end visual odometry with deep Recurrent Convolutional Neural Networks[J]. IEEE, 2017.

针对以往的使用深度学习解决视觉里程计中,只在帧间预测pose,没有充分利用连续帧的问题,本文使用CNN+RCNN(LSTM)实现了充分利用序列帧的信息,实现了很好的效果。

1、整体结构

整体结构如图所示,在上方作者给出了传统方法的视觉里程计的流程,在下方是本文中的流程。可以看出输入是序列图,通过CNN网络,再通过RNN网络,最终预测出pose。而RNN系列可以看出有数据从上帧流向了下一帧,这也体现了本设计利用了上下文信息。
在这里插入图片描述

2、CNN部分

CNN结构图如下:
在这里插入图片描述

CNN的具体结构如下表所示:
在这里插入图片描述
在输入方面:
首先是两个RGB图像经过了预处理,将RGB图像减去训练集中RGB值的均值,然后将两个连续帧cat在一起,形成一个6通道的tensor,然后再输入进CNN网络,最终是在Conv6输出(后面属于RNN部分了)。

在激活函数上:
激活函数是除了Conv6外,每层卷积层后都是ReLU,所以总共有17层(9个卷积层和8个激活层)。

为什么要有CNN?
CNN部分的目的是为了产生一个有效的特征,这个有效特征会被送进后面的RNN进行序列学习,最终产生pose。
同时作者也解释了为什么输送进入RGB图,而不是比如光流图或者深度图等其他类型。首先因为使用RGB图像来训练,使得网络可以学习一种有效的特征表示,并降低维度。而且学习到的有效特征表示不仅将图像压缩成了紧凑的描述,也促进了连续的RNN训练过程。

3、RNN部分

RNN部分使用了LSTM,其结构图如下:
在这里插入图片描述
这是LSTM单元,实际上和最传统的LSTM一样的,可以看看这个理解 LSTM 网络

实际上从上上上图可以看出,RNN使用了2个LSTM单元,并且有1000种隐藏状态。

4、损失函数和优化

损失函数定义为gt pose和估计的pose之间的欧氏距离:
p o s e = ( p k , φ k ) pose=(p_k,φ_k) pose=(pk,φk)
在这里插入图片描述

  • k:权重因子,决定p和φ谁更重要
  • φ:是欧拉角,不是四元数,因为四元数收到额外的单位约束,妨碍优化。而且在实验中发现四元数会降低方向估计的精度。

5、实验效果

在这里插入图片描述

在这里插入图片描述

5.3、测试结果

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一个对称矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值