热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DeepVO:TowardsEndtoEndVisualOdometrywithDeepRecurrentConvolutionalNeuralNetworksSenWa

[1]WangS,ClarkR,WenH,etal.DeepVO:Towardsend-to-endvisualodometrywithdeepRecurrentConvoluti

[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、整体结构
  • 2、CNN部分
  • 3、RNN部分
  • 4、损失函数和优化
  • 5、实验效果
    • 5.3、测试结果


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之间的欧氏距离:
pose=(pk,φk)pose=(p_k,φ_k)pose=(pk,φk)
在这里插入图片描述

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

5、实验效果

在这里插入图片描述

在这里插入图片描述

5.3、测试结果

在这里插入图片描述


推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 论文阅读:《Bag of Tricks for LongTailed Visual Recognition with Deep Convolutional Neural Networks》
    基于深度卷积神经网络的长尾视觉识别技巧包摘要近年来,挑战性长尾分布上的视觉识别技术取得了很大的进展,主要基于各种复杂的范式(如元学习)。除了这些复杂 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
author-avatar
hustjs
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有