这篇论文中设计的提取曼哈顿坐标系的方法,就是MSC-VO里面使用的方法,这里主要记录一下曼哈顿坐标系的提取方法,而文章设计的里程计部分则忽略不计。

一、曼哈顿世界假设和曼哈顿坐标系

曼哈顿世界假设说的是世界上所有的表面都由三个主要的方向进行对齐,代表性的就是对应于XYZ轴,也就是说,世界是分块轴对齐的平面,简单来说就是对于结构化的环境中,所有面的法向量基本都是在三个方向是,这三个方向指的就是曼哈顿坐标系的三个轴。对于室内、城市等人造环境下,确实存在很多线段,其方向是沿着现实中的xyz三个轴,所以如果利用这个坐标系的关系来提供一定的约束,就可以一定程度上提高线段在SLAM中的参与程度,同时提高建图的效果。

二、曼哈顿坐标系的提取

可以发现,曼哈顿世界假设依赖于一个准确的曼哈顿坐标系,虽然从我们人的角度来看,这个坐标系的提取并不是难事,墙角就是最直观的一个曼哈顿坐标系,但是对于计算机而言,尤其是只有相机的视觉SLAM,如何提取准确的曼哈顿坐标系是利用曼哈顿世界假设的一个关键要素。一开始在直接看MSC-VO的代码的时候,关于提取坐标系的部分简直是一塌糊涂,这个原理确实很难理解。在这篇文章中,曼哈顿坐标系的提取进行了一定的原理说明,基本上结合代码和论文叙述搞懂提取的原理不是很难。

坐标系的提取,依赖于高斯球面这个工具,简单来说就是单位球。3d场景下的线段进行投影,也就是线段端点和投影中心构成的平面与单位球面的交线,其实是一个圆弧或者说是一个圆面,这个圆面在单位球内部存在一个法向量。而两条平行的线段会在单位球上相交处两个圆面,产生两个法向量,法向量叉乘的结果是一个垂直于横截面的向量,这个向量被称作消失向量(vanishing direction, VD),两个正交平面的法向量和消失向量可以作为曼哈顿坐标系的基础。

在提取曼哈顿坐标系时,主要是靠两部分内容:线段和平面法向量。线段的部分主要是通过图像上的线段提取和深度图的联系,直接恢复出线段的3d表达式,之后对于所有线段的组合(从总共N条线中每次取出两条线),对于每次取出的两条线,当其夹角的余弦值小于0.31时,也就是夹角大于71°的时候,这个时候我们计算两条线的叉乘,从而拼出一个坐标系,这里通过余弦值来简单筛选垂直的两条线段,用叉乘来提取出第三条线段,从而拼出坐标系。

平面法向量则用了比较复杂的方法,这也是代码里面最复杂的部分。这部分的内容主要是在computeNormalsLPVO函数中,首先对于一张图上的一个点,上下左右有四个相邻点,而且是对应到3d空间的四个有深度的点,对于这四个点,产生横向和纵向两个方向向量,两个向量叉乘得到一个垂直于平面的法向量,这个向量将作为这个点的平面法向量。为了去除一些噪声同时减少计算量,这里采用了临近点取平均的方法,也就是划定一个网格,对于网格内所有点的平面法向量,在三个通道上取平均作为这个网格的平面法向量,由此计算出一张图片上的多个平面法向量。为了进一步去除噪声,也可以使用3d直方图的方法对这些平面法向量再进行一次过滤。对于这些平面法向量,也采用同样的方法选择夹角足够大的进行第三个轴的恢复。

最后对于所有计算出来的曼哈顿坐标系,利用所有的线段和平面法向量进行一个检验。简单来说就是对于全部待检测的曼哈顿坐标系,将所有的线段和平面法向量进行投影,如果偏差不大的个体数量足够多,就认为这个坐标系是比较好的,对所有的比较好的坐标系进行一个叠加,就认为是最终的曼哈顿坐标系。

【论文阅读】Low-Drift Visual Odometry in Structured Environments by Decoupling Rotational and Translationa相关推荐

  1. 【论文阅读】Interpretable Visual Reasoning via Probabilistic Formulation under Natural Supervision

    [论文阅读]Interpretable Visual Reasoning via Probabilistic Formulation under Natural Supervision 目录 [论文阅 ...

  2. 【SOD论文阅读笔记】Visual Saliency Transformer

    [SOD论文阅读笔记]Visual Saliency Transformer 一.摘要 Motivation: Method: Experimental results 二.Introduction ...

  3. 【每日论文阅读】Collaborative Visual Inertial SLAM for Multiple Smart Phones

    文章目录 论文阅读:Collaborative Visual Inertial SLAM for Multiple Smart Phones 摘要 主要贡献 算法逻辑 算法结果 论文阅读:Collab ...

  4. 论文阅读笔记(8):Structured Sparse Subspace Clustering: A Joint Affinity Learning and Subspace Clustering

    论文阅读笔记(8):Structured Sparse Subspace Clustering: A Joint Affinity Learning and Subspace Clustering F ...

  5. Paper阅读:VOLDOR: Visual Odometry from Log-logistic Dense Optical flow Residuals

    VOLDOR:来自对数逻辑密集光流残差的视觉里程表 引用: Min, Z., Yang, Y., & Dunn, E. (2020). VOLDOR: Visual Odometry From ...

  6. 论文阅读 Learning Transferable Visual Models From Natural Language Supervisio

    Learning Transferable Visual Models From Natural Language Supervision Computer Vision and Pattern Re ...

  7. 论文阅读笔记:《Visual Abstraction and Exploration of Multi-class Scatterplots》

    文章目录 前言 一.简介 二.主要技术介绍 2.1 散点图常用技术 2.2 点密度估计 2.3 保留特征的点重采样 2.4 保留一致性的分层抽样 2.5 抽象可视化 2.5.1 点颜色 2.5.2 点 ...

  8. 《论文阅读》Efficient LiDAR Odometry for Autonomous Driving

    留个笔记自用 Efficient LiDAR Odometry for Autonomous Driving 做什么 Lidar Odometry激光雷达里程计,里程计作为移动机器人相对定位的有效传感 ...

  9. 【论文阅读】Drift with Devil

    Drift with Devil: Security of Multi-Sensor Fusion based Localization in High-Level Autonomous Drivin ...

最新文章

  1. ACM-ICPC中博弈论的一些小小总结
  2. Java进阶 | 从整体上观察面向对象
  3. 事务相关命令 mysql
  4. [原]Unity3D深入浅出 - 新版粒子系统 (Shuriken)
  5. 如何在Mac上直接删除文件而不将其发送到垃圾箱?
  6. MongoDB复制集全量同步改进
  7. 浅谈EM算法的两个理解角度
  8. 什么是PXE及PXE作用
  9. SQL Server 2008 R2每天自动备份数据库
  10. 【合天网安】Burpsuite简介及MIME上传绕过实例
  11. 第14期《学海无涯乐作舟》12月刊
  12. ES index 管理
  13. 可追踪评估模型TAM的评估
  14. linux eap网络,linux – 定期无法连接到WPA2-EAP接入点
  15. PJSIP语音回声优化
  16. 服务器共享文件搜索慢的原因,客户端访问服务器共享文件反应很慢.doc
  17. CS61-仅使用正则表达式匹配罗马数字|Python一对一学员答疑贴
  18. 生物图像处理软件汇总(持续更新)
  19. 南方投资大厦SDC智能通信巡更管理系统
  20. python海龟画图(10)小米logo

热门文章

  1. peetch:一个针对eBPF的安全实践研究平台
  2. 翻译软件怎么实现的?我用Java教你实现私人自用翻译软件
  3. 为了成为黑客,我的大学四年自学计算机之路是怎么过来的?
  4. 图片比对算法 显示区域,图片比对算法有哪些
  5. 清理c盘空间的方法总结,最详细的c盘清理攻略
  6. bigemap 如何将卫星影像变换为国家2000坐标(CGCS2000)
  7. 杭州计算机职称考试证书哪里拿,2020年杭州市口腔中级职称考试证书可以领取啦!各位考生速看!...
  8. 测试开发进阶——常用中间件概念——JMX监听器理解
  9. 北京大数据交易平台上线
  10. ORACLE 11G中的ADR介绍: