Slam发展多年,终于有了真正有意义的发展。Base改进主要有:特征点检测.特征点描述.全局特征描述。

-0-.SLAM的视觉前端

SLAM:同时空间定位与构建地图。对于重建与定位,双目视觉倾向于使用稠密的方法,对已生成或者直接获得的稠密点云进行重建,有一系列方法。机器人行业最常用的slam是单目实时的空间稀疏重建与定位,双目的可以看做两个单目加一个固定的基线。

稀疏方法与VO。视觉里程Visual Odometry,对于移动Agent所搭载的单目相机,相机获取两帧图像在世界坐标系中的位姿发生变化位移t(xyz)和三轴旋转R()。1.对两幅图像进行特征点检测KPs和计算描述子Fs,搜索特征点对应关系M(p1,p2);2.得知相机内参K,通过极线约束,解算出位姿转换的基础矩阵F(或本质矩阵E),同时可得到对应点的深度信息z;3.通过QR分解,计算Agent的位姿变化RT。即为Agent在获取两帧图像间隔的视觉里程VO。也就是所谓的视觉前端。

初始化问题。视觉盲区,匹配失效,或者机器人绑架问题等等。

漂移与优化。因各种硬件误差、延时误差、Global Shutter与Rolling Shutter、亚像素误差、计算误差等,两帧VO的误差在时间累积之后产生漂移,就需要进行全局优化。全局优化的一些方法有,三维重建方法中的BA方法,或者工程中使用回环检测之后使用BA或者其他方法纠正偏移,减少漂移。也就是所谓的后端优化。

稀疏重建与定位的发展历程:十几年来,SLAM的发展框架趋近于成熟,从可应用于室内的EKFMono方法,到结合了BA方法之后各种工程上的扩充。EKFMono方法在小空间内取得成功,惯性导航IMU对视觉盲区和初始化问题有了很好的补充,并在一定角度内获得超过视觉VO的R计算准确度。ORBSlam是一个较为成熟的slam框架,其工程化的优良性能为业界做出巨大贡献,模块化的功能和可扩充性能良好,并覆盖了SLAM所需要的多个方面。

无数的博客和书籍围绕着几个公式,阐述机器人SLAM中的整体方法,稀疏的、稠密的、半直接的等等。视觉前端框架基本没有多大改变,双目的、单目的,基本上图像处理方法的跟随。更多的是对后端优化进行系统的阐述,比如FK等滤波方法以及其他非线性优化方法。此处阐述基于深度学习视觉方面的基础改进。一、单目稀疏重建与定位

一、视觉检测描述中的CNN方法

单目稀疏重建与定位的视觉改进,硬件是一个最基础的方向。从软件和算法的角度,视觉前端的改进方法,有提升图像的分辨率、提升显著点/关键点的检测性能、以及提升关键点的局部描述子性能。

传统的检测方法和描述子方法,请参考:图像局部显著性—点特征(SIFT为例)。大量的特征检测子比(如harris、fast等)和描述子(SIft、PCA-SIft、Surf、GLOH、Brief、Brisk、ORB、Freak等)有严格的理论证明,并且有完整的哈希性能分析。分类:基于显著性的检测,基于特征的检测、基于能量的检测等。

基于深度学习CNN方法的特征检测和特征描述:以学习方法(ML)替代经验设计(handCrafted)特征。在此方面有两个基础方向:学习检测子学习描述子。或者同时学习。

描述子学习: LIFT特征是一种使用CNN来提取特征点(feature points / interests)的方法, 发表在ECCV 2016.众所周知, 尽管在2004年就已经发表出来, 但是SIFT(Scale Invariant Feature Transform)在三维重建中一直至今都无可替代. 随着学习的火热, 研究人员开始将目光更多转向于寻求一种基于学习的方法来提取特征点, 从而代替人工设计的特征点.

检测点学习:SuperPoint 是基于自监督训练的特征点检测和描述符提取方法,是2018年MagicLeap发表的一篇文章中提出的(https://blog.csdn.net/honyniu/article/details/87483613 )。通过卷积的方法对提取的Map进行显著性分析,获取区域极值点,即为关键点位置。同时特征描述子可以在原特征Map上获得,也可以使用新的方法生成描述子。

转向CNN-DL火热的CVPR2019,视觉特征点的检测和描述有了大量的改进。应用在场景重建和定位方面的论文又有....

LIFT使用了经验指导结构设计,使用数据训练优化的方法,旨在得到一个表达能力更强的特征。SP方法使用了指导学习的思想,使用数据增强方法,有时可以对网络不加详细的训练,得到端到端的检测网络。

二、回环检测与场景识别

在后端优化过程中,回环检测是一个重要的部分,另一种描述为场景识别或者图像检索。图像检索方法的发展由来已久,百度Google阿里腾讯都有成熟的图片检索应用,以图搜图,或者搜图购物等。

BOW方法与稀疏编码方法,获取图像全局特征。BOW在ANN下的解释Bow与一般SparseCoding或LSH方法不同在于其典型的应用场景,LSH方法可以通过学习得到局部敏感hash函数族,SP使用学习方法寻找高维空间的一组稀疏完备基,可用于广泛的ANN查找。BOW方法源于文档检测,并在图像检索中广泛应用。BOW的方法依然性能基于Word的性能,在图像中为局部描述子,是一种图像稀疏描述的检索方法,只记载图像中的关键信息。

BOW方法具有稀疏性,可以使用倒排索引提高检索性能,并具有在线扩展性,可以在查找时更新/更新叶子叶子节点,因此在SLAM方法中应用于基于局部特征描述图像的场景匹配-闭环检测。

全局特征性能提升:为提升BOW方法的性能,FidherVector和VLAD方法得以应用。FidherVector方法使用局部特征点的线性组合,强化了全局性能,并丢失了一部分扩展性。VLAD方法收集了局部特征点和全部的距离信息,可看作对BOW全局特征的无损提升。

VLAD-Net,使VLAD特征可学习。对VLAD的损失函数,进行指数平滑,使其变得可微可学习,称为VLAD层,并可以无缝嵌入任意CNN网络,获取全局特征,即为VLAD-Net。

基于CNN的方法是一个离线的检索方法,只在特定的场景上得到更好的全局检索性能。

BOW-VLAD-VLADNet-HFnet,CVPR2019的论文HFnet,使用MobileNetSSD-V2网络,借鉴SuperPoint网络思想和特征给你强化思想以及VLAD网络思想,使用指导学习同时实现了局部特征点检测.局部特征点描述.全局特征描述的功能。

HfNet也 成为一个为三维重建/SLAM方法量身定制的一个CNN方法。其专门优化的网络结构,并使基于深度学习的实时定位方法成为一个可靠的途径。

1.空间定位的传统方法,广泛使用Align匹配的方法,使用RANSAC方法选取模型,而后使用PNP方法,计算匹配/观测点集合和点集模型的刚性位姿变化R和t。2.实时定位基于CNN端到端的方法典型有MapNet系列,直接从图像回归出刚性位姿变化R和t,理论和实际性能远未达到可用性能。3.使用检索的方法,使用检索代替RANSAC方法,寻找最近邻图像,通过两帧VO,计算出R和t。3.1基于快速检索的方法有分为传统编码方法和CNN方法,典型方法分别为LSH和 VLADnet。

RANSAC方法1在点集较大时候出现明显的性能下降,现阶段的实现证明,第三种方法是一种在大场景中合适的进行实时空间定位的方法。HfNet的优良性能为Agent实时视觉空间定位提供了很好的途径。

三. HfNet的网络结构

SLAM发展多年,优化理论并未有有意义的创新,只是总结的更加系统,形式更加优美,并未能对SLAM性能有本质的提升。HfNet的网络结构基于MobileNetSSD-V2网络。融合了近年来,三维重建/SLAM方法的改进的最基础最重要的几个关键点:关键点检测性能 .描述子描述性能. 全局特征表达性能。

HfNet网络是深度学习对SLAM方法改进的集大成者。论文:*From Coarse to Fine: Robust Hierarchical Localization at Large Scale。  GitHub地址:https://github.com/ethz-asl/hfnet。Python 3.6 is required,By default, TensorFlow 1.12 GPU will be installed.PyTorch 0.4.1 is also required to run the original SuperPoint and perform GPU-accelerated feature matching.

至于把基于CNN方法的应用于SLAM/三维重建/实时空间定位,是一个工程问题。

使用教师网络比如SuprtPoint网络进行指导训练MobileNet-SSD.V2的局部特征网络,使用VLADNet等指导训练MobileNet-SSD的全局特征网络,并优化模型,通过减枝/压缩/量化等把模型移植到设备中。

场景感知:CNN方法对三维重建/slam/实时定位的一些Base改进相关推荐

  1. 手机室内地磁定位软件_一种基于地磁的智能手机实时定位方法与流程

    本发明涉及室内地磁定位导航方法,具体涉及一种基于地磁的智能手机实时定位方法,属于移动计算和室内定位技术领域. 背景技术: 随着室内定位导航的日益需求,利用地磁信息作为位置指纹的室内定位导航技术显示出其 ...

  2. 三维感知,这些干货足够了!(自动驾驶/三维重建/SLAM/点云/标定/深度估计/3D检测)...

    人工智能渗入到越来越多领域,以计算机视觉为主的相关应用更是呈现爆发性增长,国内外资本对AI视觉兴趣只增不减,自动驾驶.工业视觉.AR/VR.测量测绘.移动机器人等领域涌现了大量独角兽公司,相关产品受到 ...

  3. 自动驾驶领域:一种实时高精度的城市道路场景语义分割方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 论文下载:https://arxiv.org/pdf/2003.08736.pdf 简介: 近年来,深 ...

  4. 基于slam的三维重建_实时三维重建算法的实现 基于Kinect与单目视觉SLAM的三维重建.docx...

    实时三维重建算法的实现 基于Kinect与单目视觉SLAM的三维重建 实时三维重建算法的实现--基于Kinect与单目视觉SLAM的三维重建夏文玲1,顾照鹏2,杨唐胜2XIAWenling1,GUZh ...

  5. 以栅格为中心的自动驾驶交通场景感知综述

    Grid-Centric Traffic Scenario Perception for Autonomous Driving: A Comprehensive Review 文章目录 摘要 一.简介 ...

  6. 中秋福利!三维重建/SLAM/点云/相机标定/深度估计/缺陷检测课程

    人工智能渗入到越来越多领域,以计算机视觉为主的相关应用更是呈现爆发性增长,国内外资本对AI视觉兴趣只增不减,自动驾驶.工业视觉.AR/VR.测量测绘.移动机器人等领域涌现了大量独角兽公司,呈现了以3D ...

  7. 在线场景感知:图像稀疏表示-ScSPM和LLC总结(lasso族、岭回归)

    前言 场景感知应用于三维场景和二维场景,可以使用通用的方法,不同之处在于数据的形式,以及导致前期特征提取及后期在线场景分割过程.场景感知即是场景语义分析问题,即分析场景中物体的特征组合与相应场景的关系 ...

  8. AI:IPPR的数学表示-CNN方法

    前言: 随着超量类别PR和高精度的需求,人工特征方法局限性凸显出来,固定的特征hash压缩映射因其压缩损失.表现为特定的特征hash方法,在海量的同类数据集上近邻特性变差,而在不同类别的数据上面隔离性 ...

  9. 一个方法多个return_CVPR 2020(Oral) | 旷视提出CrowdDetection:密集场景检测新方法:一个候选框,多个预测结果...

    点击上方"CVer",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:旷视研究院 本文是CVPR 2020论文系列解读第8篇. ...

最新文章

  1. XAMPP 配置虚拟域名/localhost重定向
  2. springmvc框架介绍_Java修行第071天 ---SpringMVC(上)
  3. tomcat参数java_opts调整
  4. mysql命令参数详解_详解Mysql命令大全(推荐)
  5. JVM 堆内存溢出后,其他线程是否可继续工作?
  6. 【sql】leetcode习题 (共 42 题)
  7. OMA 设备管理的通知发起的会话OMA Device Management Notification Initiated Session
  8. twisted系列教程六–继续重构twisted poetry client
  9. java等边三角形代码_Java实现等边三角形--小程序,大思想
  10. ABAQUS 有限元仿真分析软件模块介绍
  11. 小程序 VS APP优缺点
  12. DC综合各种lib library的解释
  13. Nginx搭建反向代理服务器
  14. 2-1 Socket家族的基石
  15. 【UI设计No5】LOGO设计
  16. java.lang.exceptionininitializererror_java.lang.ExceptionInInitializerError异常的解决方法
  17. BufferedInputStream。。。。。。。BufferedReader和BufferedWriter
  18. Java 实现循环输入商品编号和购买数量,当输入n时结账,结账时计算应付金额并且找零
  19. 湖南学计算机专业单招学校排名,湖南学计算机那个单招学校比较好(湖南民族职业学院)...
  20. 报错Failed to resolve component: tree-item at <Tree onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< n

热门文章

  1. GBDT 入门教程之原理、所解决的问题、应用场景讲解
  2. nginx优化-nginx事件处理模型优化use epoll;
  3. 【Java】SAX解析characters 错误截取问题的解决
  4. android图像处理系列之五-- 给图片添加边框(中)
  5. Win7下Solr4.10.1和TomCat8的安装
  6. 深入解析ext2文件系统之mke2fs
  7. 程序员面试什么最重要?
  8. [转]样式篇之如何实现合并单元格效果
  9. 【java】System.getProperty()参数大全
  10. Android之SharedPreferences(二)——跨程序调用