介绍

提出了一个低代价双目视觉惯导定位系统,实现了基于多状态约束下的卡尔曼滤波器(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. AI算子列表

    AI算子列表 概述 目前只有部分算子可在一个库中同时运行在MLU220和MLU270平台.也就是用户使用 ./build_cnplugin.sh --mlu270 命令编译生成的 libcnplugi ...

  2. Tensor Core技术解析(上)

    Tensor Core技术解析(上) NVIDIA在SIGGRAPH 2018上正式发布了新一代GPU架构--Turing(图灵),黄仁勋称Turing架构是自2006年CUDA GPU发明以来最大的 ...

  3. 自主数据类型:在TVM中启用自定义数据类型探索

    自主数据类型:在TVM中启用自定义数据类型探索 介绍 在设计加速器时,一个重要的决定是如何在硬件中近似地表示实数.这个问题有一个长期的行业标准解决方案:IEEE 754浮点标准.1.然而,当试图通过构 ...

  4. TensorRT 7.2.1 开发概要(下)

    TensorRT 7.2.1 开发概要(下) 1.2. Where Does TensorRT Fit? 一般来说,开发和部署深度学习模型的工作流要经过三个阶段. Phase 1 is trainin ...

  5. kali2020.4安装openvas(gvm)

    记录一下,方便复习 1.更换kali源,默认源注释掉. sudo vim /etc/apt/sources.list 中科大 deb http://mirrors.ustc.edu.cn/kali k ...

  6. pycham_编码格式设置,处理打印log乱码,处理读取配置文件报错

    一.打印日志乱码,处理设置如下: 二.配置文件读取方法因为gbk编码配置后需要同步修改 原报错信息:

  7. Linux命令大全之查看登陆用户信息

    1,w +回车 2.who +回车 3.last+回车 4.lastlog+回车

  8. Vue 利用后端的数据字典和Map对象实现表格列字段动态转义的处理方案

    1.前言   Vue中,使用el-table组件,经常遇到列字段转义的问题.常规处理方法有以下两种: 方法1:在模板中使用v-if,直接转义.如: <el-table-column label= ...

  9. 6、安装kvm虚拟机

    6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...

  10. 校门外的树 (Vijos P1448)

    题目链接 描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的-- 如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作: K=1,K=1 ...