SVO深度解析(一)之简介和评价

news/2024/11/18 1:45:51/

之前研究VSLAM时,本人对SVO研究过一段时间,那个时候没有时间总结,

现在快毕业了,总结一下自己了解的算法吧。。。。

对SVO的总结共分为3各部分,分别为简介和评价部分、跟踪部分、深度滤波部分(建图部分)。


简介部分


转载请说明出处

http://blog.csdn.net/zhubaohua_bupt/article/details/74822742


1先说一下SVO大体内容


SVO[2]是C. Forster, M. Pizzoli, and D. Scaramuzza在14年提出的一个半直接法的VSLAM(单目)。

开源代码:https://github.com/uzh-rpg/rpg_svo 


1.1为什么叫半直接法?

我们知道,VSLAM有直接法和特征点法两大类。直接法和特征点法,在帧间VO阶段的不同在于,

直接法:提取梯度纹理特征明显的像素,帧间VO是靠图像对齐,即通过

               最小化像素灰度差函数来优化帧间位姿。

特征点法:提取特征点(通常是角点),帧间VO靠PNP,即缩小在后帧图像上,

             重投影点与特征匹配点距离误差,来优化帧间位姿。

而SVO是这样干的:

提取稀疏特征点(类似特征点法),帧间VO用图像对齐(类似于直接法),

SVO结合了直接法和特征点法,因此,称它为半直接法。


1.2 SVO干了什么事?

SVO主要干了两件事,

<1>跟踪

<2>深度滤波

深度滤波是我们常说的建图(Mapping)部分。


1.2.1跟踪部分

跟踪部分干的事情是:初始化位姿,估计和优化位姿(分别对应于帧间VO和局部地图优化)。


初始化位姿

用KLT光流法找匹配,然后恢复H矩阵。初始化思想是这样的,

第一帧上提取的特征点,作为关键帧,后来的帧不断用KLT与第一帧匹配,

直到匹配到的特征点平均视差比较大,就认为初始化成功,计算对应特征点的深度,

与此对应的帧作为第二帧。之后进入正常工作模式,即估计和优化位姿。


正常工作模式

首先,通过和上一帧进行对齐,求取初始位姿;

然后,建立局部地图,通过优化局部地图和当前帧的投影灰度块误差,来优化当前位姿;

最后,判断此帧是否是关键帧,如果为关键帧就提取新的特征点。

经过以上四个步骤,完成一帧的处理。如果在CMakeLists里打开了HAVE_G2O的选项,

代码隔一段时间还会BA,不过非常慢。


1.2.2深度滤波部分

深度滤波部分主要任务是完成估计特征点的深度信息。

深度滤波和跟踪部分相互依赖,因为深度滤波是以相机位姿已知为前提进行的,

而跟踪部分又依靠深度滤波的结果(较准确的三维点),完成位姿的估计。

乍一看,这是个鸡生蛋,蛋生鸡的问题,既然两者循环迭代,总得有个起始点。

其实,单目的slam在启动时需要初始化,而这个初始化就提供粗糙的帧间位姿,

以便于深度滤波和跟踪部分的迭代。

当深度可以用后(称之为收敛),把它放入地图里,用于跟踪。

 

1.2.3为什么叫VO

这个得从SVO干的事来说,它既没有闭环检测,也没有重定位(SVO的重定位太。。。),

它干的事只要是定位,比较符合视觉里程计(VO)的特点。

ORBSLAM算是目前性能最好的开源算法,这些功能它都有,因此算一个比较完整的VSLAM算法。


1.2.4 svo怎么样

优点:是比较快,如果你跑代码的时候发现很容易跟丢,可以修改这几个配置参数:

quality_min_fts:匹配到的最小特征点。

quality_max_drop_fts:容许相邻帧匹配到特征点的最大落差。


缺点:缺点是比较明显的

和ORBSLAM相比。

<1>由于位姿的估计和优化全是靠灰度匹配,这就导致了系统对光照的鲁棒性不足。

<2>对快速运动鲁棒性性不足。直接法都似这个样子。。可以加入IMU改善。

<3>没有重定位和闭环检测功能。

如果把此工程修改成RGBD的模式后,鲁棒性和精度明显提高,近似于ORBSLAM的RGBD模式。


[1]C. Forster, M. Pizzoli, and D. Scaramuzza, “SVO: Fast Semi-DirectMonocular Visual Odometry,” in Proc. IEEE Intl. Conf. on Robotics and Automation, 2014.


[2] MatiaPizzoli,Christian Forster, and Davide Scaramuzza. REMODE: Probabilistic,monocular densereconstruction in real time. In International Conference onRobotics andAutomation (ICRA), pages 2609–2616, Hong Kong,China, June 2014.




http://www.ppmy.cn/news/583471.html

相关文章

【VS开发】【智能语音处理】特定人语音识别算法—DTW算法

DTW&#xff08;动态时间弯折&#xff09;算法原理&#xff1a;基于动态规划&#xff08;DP&#xff09;的思想&#xff0c;解决发音长短不一的模板匹配问题。相比HMM模型算法&#xff0c;DTW算法的训练几乎不需要额外的计算。所以在孤立词语音识别中&#xff0c;DTW算法仍得到…

【论文解读】VDN( Variational Denoising Network )变分去噪网络

之前一直对各种机器学习算法的推导比较感兴趣&#xff0c;又希望了解一些机器学习和深度学习模型相结合的处理方法&#xff0c;最近看到的这篇文章就是一个比较好的例子。文章名为 Variational Denoising Network: Toward Blind Noise Modeling and Removal 可从arXiv:1908.113…

【Fast-SCNN】一种快速语义分割网络

本文发布于BMVC2019&#xff0c;是由英国东芝研究院Rudra、Stephan和剑桥大学Roberto共同完成的。本文的亮点是提出了一种快速的语义分割网络 Fast-SCNN&#xff0c;在 NVIDIA Titan XP GPU 上测试表明&#xff0c;在Cityscapes数据集上的mIOU达到68.0%&#xff0c;速度达到123…

svo_note

SVO论文笔记 1.frame overviews2. Motion Estimate Thread2.1 Sparse Model-based Image Alignment 基于稀疏点亮度的位姿预估2.2 Relaxation Through Feature Alignment 基于图块的特征点匹配2.3 Pose and Structure Refinement 3 Mapping Thread3.1 depth-filter3.2 初始化参…

华南理工提出多模态ReID新数据集,语义自对齐网络SSAN达到SOTA性能!代码数据集均已开源!...

关注公众号&#xff0c;发现CV技术之美 本篇分享论文『Semantically Self-Aligned Network for Text-to-Image Part-aware Person Re-identification』&#xff0c;华南理工提出多模态ReID新数据集&#xff0c;语义自对齐网络SSAN达到SOTA性能&#xff01;代码数据集均已开源&a…

【OSTEP】进程调度: 介绍 | Convoy护航效应 | 最短任务优先(SJF) | 最短完成时间优先(STCF) | 轮转 RR | 结合I/O

&#x1f4ad; 写在前面 本系列博客为复习操作系统导论的笔记&#xff0c;内容主要参考自&#xff1a; Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy PiecesA. Silberschatz, P. Galvin, and G. Gagne,Operating System Concepts, …

NFV关键技术:DPDK技术栈在网络云中的最佳实践

本文篇幅有限&#xff0c;很难用短短几语就勾勒出DPDK的完整轮廓&#xff0c;概括来说&#xff0c;DPDK是一个技术栈&#xff0c;主要用于Intel架构的服务器领域&#xff0c;其主要目的就是提升x86标准服务器的转发性能。因此&#xff0c;本文只重点介绍DPDK平台部分技术在电信…

PLC数据采集项目案例

一、项目背景 近期&#xff0c;一家制造企业联系我们&#xff0c;希望解决其现场PLC数据采集设备网络适配性和安装便利性上的问题&#xff0c;以提高数据采集效率和稳定性。 二、需求分析 客户现场有部分PLC需要进行数据采集&#xff0c;但原有的采集设备网络适配性和安装便…