DVO-SLAM详解之跟踪
来源:互联网 发布:农村淘宝app下载安装 编辑:程序博客网 时间:2024/06/02 05:11
DVO-SLAM详解之跟踪
DVO-SLAM的跟踪通过将当前帧与关键帧进行帧间匹配进而确定当前帧对应的相机位姿来实现,本文将从帧间匹配和关键帧选取这两部分解释DVO-SLAM跟踪的具体操作流程。
一、帧间匹配
帧间匹配即计算两帧图像间的相机运动变换矩阵,DVO-SLAM中用并行计算的方式同时计算当前帧与前一帧及关键帧间的运动变换矩阵r_odometry、r_keyframe,相关代码在local_tracker.cpp中。
(1) 选取参考帧中灰度梯度及深度梯度值较明显的点作为参考点,这里的参考帧指当前帧的前一帧和当前帧对应的关键帧。
(2) 理想情况下,存在一个帧间运动变换量,使得参考点的灰度值、深度值与其投射到当前帧中的点的灰度值、深度值差为零。实际应用中,通过最小化残差函数来求帧间运动,DVO-SLAM中使用高斯牛顿法迭代求解这个问题。
(3) 将上一步求到的帧间运动变换矩阵、信息矩阵、似然估计值保存到结果当中,为之后的关键帧选取、闭环检测做准备。
高斯牛顿法求解帧间运动变换的具体流程如下图所示:
(1) 累积迭代增量,作为本次迭代的初始值。
(2) 计算各点的残差。
(3) DVO-SLAM中假设残差服从t分布,因此这里根据t分布计算个残差的权重。
(4) 计算t分布的方差参数。
(5) 计算残差的似然估计。
(6) 求本次迭代增量。
二、关键帧选取
之所以将每帧图片与其关键帧进行匹配进而确定相机位姿,是因为这样一定程度上可以避免相邻帧匹配带来的误差累积。DVO-SLAM中的关键帧选取原则如下:
(1) r_Keyframe的后验概率估计反应了r_Keyframe的可信度,当可信度低于某一阈值时则重选关键帧。
(2) DVO-SLAM使用直接法进行帧间匹配,该方法基于灰度一致假设,所以r_Keyframe和r_odometry的位移不能过大,当位移超过某一阈值则重选关键帧。
(3) ValidConstraints / ValidPixels反应了落在当前帧中的参考点相对于参考点总数的比例,比例越高说明相机的位姿变换越小,越低说明位姿变换越大,当比值低于某一阈值则重选关键帧。
- DVO-SLAM详解之跟踪
- DVO-SLAM详解之代码逻辑
- DVO-SLAM详解之闭环检测
- ORB-SLAM代码详解之SLAM.TrackMonocular
- ORB-SLAM代码详解之SLAM系统初始化
- ORB-SLAM代码详解之代码框架
- SLAM笔记(三)光流法特征跟踪
- 物体跟踪meanshift详解之密度估计
- SLAM系列之1 - ORB SLAM
- SLAM 之旅
- 详解|无人驾驶技术之魂——SLAM的现在与未来
- 【视觉 SLAM-2】 视觉SLAM- ORB 源码详解 2
- 激光SLAM系列之启程
- LSD-SLAM笔记之SE3Tracking
- LSD-SLAM笔记之DepthMap
- SLAM学习之Pangolin安装
- SLAM
- slam
- 嵌入式Linux开发常用命令总结
- 使用Nginx实现负载均衡
- 简析ThreadLocal
- 筛法求素数
- c++基础之写入数据
- DVO-SLAM详解之跟踪
- Ubuntu系统下MySQL开启远程连接
- mac的android studio上使用git clone source repository
- EL表达式
- 指针和const
- android基础学习13——广播接收者
- Apache Shiro 标签方式授权
- 秋季运动会
- jsp页面中<a>标签触发function函数