介绍

提出了一个低代价双目视觉惯导定位系统,实现了基于多状态约束下的卡尔曼滤波器(MSCKF)VIO,采用了先验雷达地图。除了稀疏的视觉特征,雷达地图与半稠密的点云也通过紧耦合的MSCKF进行更新,进而可以纠正漂移。点云和视觉之间的跨模态限制对VIO系统有改善作用。

总之就是提出了VIO状态估计器,其中点云地图提供了先验,考虑到计算效率,采用MSCKF,实现在线定位,仅仅维护一个固定大小的窗口,优化IMU位姿,窗口中不保留特征。同时生成半稠密地图,产生视觉点云,该点云能在雷达地图中进行配准,结果作为相机位姿的全局测量,和视觉稀疏特征以及惯导测量进行紧融合。雷达地图先验通过和视觉半稠密点云以及NDT方法构建。纠正仅VIO偏差,提供6自由度的实时位姿估计。

视觉惯导状态估计

A.状态向量

估计的状态量见公式(1),主要包括全局参考系到第\(k\)时刻的IMU参考系之间的旋转量、陀螺仪和加速度计偏差、IMU在全局参考系下的位置(这个是不是可以代替平移)、速度、雷达地图和全局参考系之间的位姿变换(旋转+平移),以及一个大小为m帧图像的滑动窗口,维护的状态量是这k帧对应的IMU相对于世界的位姿变换。见公式(2)。状态偏差的定义见公式(3)。状态估计值通过估计值和偏差进行更新,见公式(4)。对于位置和速度更新时直接用加法,位姿量则需要使用四元数乘法。

B.状态传递

状态量和协方差的传递需要对IMU的线加速度和角速度使用IMU运动学进行预积分,见公式(6),参考了文献[30],EKF传递参考了[1]。

C.状态更新

通过将半密集点云与先验激光雷达地图进行配准,将得到一个具有协方差的配准姿态:

  1. 雷达地图约束:考虑时间\(k\)时左边相机在地图中的位姿,以该测量作为状态函数,可以通过map---global---IMU---相机求解。状态函数线性化以及雅克比矩阵的求解见式(9)-(16)。直接可以使用文献[31]中的EKF进行更新。

  2. 视觉特征测量:追踪一些稀疏的特征点,采用滑动窗口。如果特征丢失或者追踪时间过长,则三角化到地图点,并且采用BA优化。成功优化的特征点将通过马氏距离测试,并使用MSCKF更新。稀疏特征点提供短期定位,先验地图可以减小长期定位的漂移。

视觉处理

视觉处理过程主要包括两个方面:稀疏特征点的追踪以及与半稠密视觉点云与雷达地图的配准。这两个过程独立进行,双目构建半稠密点云,和先验雷达地图进行配准,并给出地图和camera之间的变换。

半稠密重建

作者发现对于雷达地图来说,使用视觉重建的点云与其进行陪准时,结构化的表面如平面的配准效果较好,而稀疏重建主要由边和角落对应的高梯度的点组成,因此作者使用半稠密重建,进行 配准。论文中选取一些关键帧进行重建,关键帧的选取主要看距离以及姿态变化大小,保证关键帧能覆盖较大的空间区域,且帧之间的重合区域较小,半稠密重建可以参考最近的神经网络方法,见文献[33]。使用窗口维护关键帧(增加约束,便于匹配),对于关键帧先使用双目块匹配计算深度图,即最小化SAD距离,与其他方法相比[34],[35],传统双目块匹配能保证计算效率,后面还要用其他关键帧进行深度优化。

深度对应匹配

在计算窗口中的关键帧已经通过MSCKF估计出位姿,将关键帧的深度图投影到其他的帧上,计算相似性。深度匹配过程如图4所示,将其他帧的点投到第k帧上,如果像素能匹配上,将点及其深度添加到观测集合上,对于每个要和\(j\)帧匹配的像素,都要做一个并存测试:

1)两个像素值小于某个阈值

2)两个像素处的梯度小于某个阈值

3)投影过来的深度值相差不能超过阈值

投影时像素位置需要离散化,为了减小误差,投影的是被投影点周围的2*2的块,如果像素块通过了测试,则将投影点以及深度加入集合\(P_j(u_n)\)上。对于窗口中的每个关键帧都进行该操作,使用观测到的信息对每一帧的点云进行优化,去除外点。如果某个像素的观测点太少,则被认为是外点,如果存在很多观测点,则深度取这些观测点的平均值,该方法使得点云的质量很高,噪声较少。

点云 Assembly

在对每一帧的深度估计进行约束后,需要将每一帧点云投影到当前帧上(参考帧),由于半稠密点云数量太多,作者采用了第二个线程,提供了先验雷达地图约束。只要三个关键帧的窗口,超过半米以及30度的位姿变化就可以很好地约束点云。

NDT点云配准

在参考帧中重建了半稠密点云后,和雷达地图进行配准。NDT方法既保证了精确度也有足够的效率。NDT使用高斯分布来模拟点云,作者采用了P2D方法,实现了源点云到目标点云的配准,求出相对位姿,优化函数见公式(22)。Hessian矩阵的求解见M. Magnusson 的博士论文61页。注意PCL库中的P2D函数使用欧拉角表示姿态,作者使用了四元数参数,需要一个协方差矩阵进行误差状态传递时的转换。

为了降低噪声的影响,文中还采用了以下策略:

1)在计算NDT的Hessian矩阵后,计算其最小特征值,保证其大于一定阈值

2)公式(22)的优化函数代价值小于一定阈值

3)NDT集合中内点与源点云内点的比例反映了配准的质量,应该接近于1(这里源点云是不是应该是重建生成的点云)

4)最终的雷达地图先验约束会进行马氏距离测试处理。

未来工作

考虑雷达地图不确定性,将视觉半稠密地图用于更新雷达先验地图。

A

Assembly 怎么翻译

马氏距离测试是什么?基于马氏距离的异常值检测?

点云地图变化不大,视觉特征地图变化大(光照等)

公式(2)上面which do not evolve over time and are used during feature update:

点云也更新么? 深度需要 通过匹配优化

论文阅读:Visual-Inertial Localization With Prior LiDAR Map Constraints的更多相关文章

  1. 论文阅读——Visual inertial odometry using coupled nonlinear optimization

    简介:论文提出一种新的视觉里程计算法,其直接利用带噪声的IMU数据和视觉特征位置来优化相机位姿.不同于对IMU和视觉数据运行分离的滤波器,这种算法将它们纳入联合的非线性优化框架中.视觉特征的透视重投影 ...

  2. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  3. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  4. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  5. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  6. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  7. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  8. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  9. 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

    今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...

随机推荐

  1. Yolov3&Yolov4网络结构与源码分析

    Yolov3&Yolov4网络结构与源码分析 从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗. 文章目录 1. 论 ...

  2. Minecraft类游戏地形生成机制

    目录 前言 生成地形高度 生成生物群落 模拟雨水侵蚀.生成河流(未完) 生成洞穴.裂谷 生成植被 放置树木(Bezier曲线) 生成建筑 生成发展域(元胞自动机模型) 放置建筑(DFS) 连接道路(A ...

  3. Rethinking Training from Scratch for Object Detection

    Rethinking Training from Scratch for Object Detection 一. 概述 正常训练目标检测的流程分为以下几种: 在imagenet上进行预训练,然后在特定 ...

  4. Java8 Lambda表达式、Optional类浅析

    1.概念 Lambda是一个匿名函数,可以将其理解为一段可以传递的代码(将代码像数据一样进行传递)可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格,使得java语言的表达能利得到了提升. 2. ...

  5. 手把手使用Python进行语音合成,文字转语音

    目录 0. 太长不看系列,直接使用 1. Python调用标贝科技语音合成接口,实现文字转语音 1.1 环境准备: 1.2 获取权限 1.2.1 登录 1.2.2 创建新应用 1.2.3 选择服务 1 ...

  6. [Azure DevOps] 如何使用任务组

    1. 使用 PowerShell 脚本 在上一篇文章中我们学会了怎么使用扩展在编译前实时更改版本号.有些情况下我们希望不适用扩展,例如喜欢发明轮子,或者根本没有安装扩展的权限.这时候我们可以自己写 P ...

  7. EEPROM工作原理透彻详解

    原文链接点击这里 EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯 ...

  8. Java并发之ReentrantLock源码解析(四)

    Condition 在上一章中,我们大概了解了Condition的使用,下面我们来看看Condition再juc的实现.juc下Condition本质上是一个接口,它只定义了这个接口的使用方式,具体的 ...

  9. Linux中curl的用法

    一.简介:在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款强大的http命令行工具.支持文件的上传和下载,是综合传输工具. 二.语法:curl [option] [url ...

  10. 易车网实战+【保姆级】:Feapder爬虫框架入门教程

    今天辰哥带大家来看看一个爬虫框架:Feapder,看完本文之后,别再说你不会Feapder了.本文辰哥将带你了解什么是Feapder?.如何去创建一个Feapder入门项目(实战:采集易车网轿车数据) ...