【ipaper】Visual Odometry 和 Visual SLAM概述:第四部分

简介: LocalizationFig2Fig2 一个单目VO系统的例子,通过匹配2D图像中的对应点来计算在空间中观测相同3D点的相机之间的相对姿态Tnm。

Localization

img_0f50593c446b4a646bff527374680479.png
Fig2

Fig2 一个单目VO系统的例子,通过匹配2D图像中的对应点来计算在空间中观测相同3D点的相机之间的相对姿态Tnm。如果点的3D位置的已知,就可以通过3D to 2D或者3D to 3D的方法进行计算了。通过关联(concatenating)相对于参考帧(可以设置为初始帧)的相对变换,计算全局姿态Cn。

Visual Odometry

VO 是通过分析一系列相机图像来估计相机运动的过程,与wheel odometry类似,VO获得的估计值与随时间累积的误差相关[39]。然而与wheel odometry相比,VO在更长时间的工作下,可以产生更精确,可靠的定位估计[54]。VO也不会受到类似于由于地面不平坦而车轮打滑的影响。

Motion Estimation

通常有三种VO运动估计手段:3D to 3D, 3D to 2D2D to 2D方法。Fig2,演示了一个VO问题的例子。这里我们将概述运动估计的技术。

  • 3D to 3D Motion Estimation

在这种情况下,通过对一系列图像中观察到的三维特征点进行三角测量来估计运动,然后通过最小化相应3D点之间的3D欧几里德距离来估计相机帧之间的变换,如下所示。

img_7353bc3cacf41e455c9406a0165eee0c.png
公式一

在上面的等式中,T是两个连续帧之间估计的变换,X是当前帧Fk观察到的3D特征点,X‘是前一帧F_k-1中对应的3D特征点,i是约束转换(constrain the transformation)所需要的最小的特征对数(feature pairs)。所需要的点的最小数量取决于系统的DOF和使用的建模类型。即使使用更多的点意味着更多的计算量,但是包括更多的点(比最小数量多)可以实现更好的准确性。f(T,Xi´)

  • 3D to 2D Motion Estimation

该方法类似于先前的方法,但是这里2D重新投影误差被最小化以找到所需的变换,下面是它的cost function:

img_d5401458bde4860304fb5f8c3b2289f2.png
公式二

其中 T 是连续帧之间的估计的变换,Z 是当前帧 Fk中观察到的特征点,f(T,Xi')是在应用变换T之后其在前一帧 Fk-1 中的相应3D特征点的重新投影函数,并且 i 是特征对的数量。同样的,所需的最小点数根据系统中的约束数量而变化。

  • 2D to 2D Motion Estimation

只有在3D数据可用时,才能实现3D到3D和3D到2D的方法。实际的情况并不总是这样的。例如,在估计最开始两个校准了的单目相机的帧之间的相对变换的时候,其中的点,并没有经过三角测量。这种情况下,应该使用epipolar geometry(对极几何)的方法对这种变换进行估计,epipolar geometry的一个例子如图三所示。该图显示了两个相机,由旋转和平移分开,观测的是相同的3D点。每个相机捕获3D世界的2D图像,从3D到2D的转换被称为epipolar geometry(透视投影),我们会在‘Camera Modeling and Calibration’章节中介绍。此方法的epipolar constraint对极约束写为:

img_cd630c9680d722592f2f80a68e86b1f7.png
公式二

其中的 qq'是两个连续帧中的齐次图像点,E是由下式给出的基本矩阵:

img_8afd45c629b69e581b2757061607b91e.png
公式三

其中 R 是旋转矩阵,t 是由下式给出的平移矩阵:

img_071e0d0cd668927827e24d0efedda475.png
公式四

[t]x是由下式给出的反对称矩阵(skew symmetric matrix):

img_3f9fee2b7063122e2217a6d4b3d7e5f7.png
公式五
img_1cd3a32baa3db10379ca532d52290d9f.png
Fig3

Fig3 对极几何的例证。两个摄像机由它们的中心OL和OR以及图像平面表示。摄像机居中,3D点及其在图像上的重新投影位于共同的平面中。图像点反投影到3D空间中的光线在第二个图像中被投射回一条线,称为极线(以红色显示)。3D点位于此光线上,因此第二个视图中3D点的图像必须位于极线上。OL和OR之间的姿态可以使用基本矩阵E获得,基本矩阵E是已知校准的极线几何的代数表示。

[75,86,119]提供了使用上述方法解决运动估计的完整描述。

参考文献

[39].Dutton, B., Maloney, E.: Dutton’s navigation & piloting. Naval Institute Press, Annapolis (1978). http://books.google.com.au/books?id=-A5UAAAAMAAJ

[54].Helmick, D., Cheng, Y., Clouse, D., Matthies, L., Roumeliotis, S.: Path following using visual odometry for a Mars Rover in high-slip environments. In: Proceedings of 2004 IEEE Aerospace Conference, vol. 2, pp. 772–789 (2004). doi: 10.1109/AERO.2004.1367679

[78].Longuet-Higgins, H.: A computer algorithm for reconstructing a scene from two projections. In: Fischler, M.A., Fischler, O. (eds.) Readings in Computer Vision: Issues, Problems, Principles, and Paradigms, pp. 61–62. Morgan Kaufmann, San Francisco (1987)

[86].Nister, D.: An efficient solution to the five-point relative pose problem. In: Proceedings of 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol. 2, Part II, p. 195

[119].Zhang, Z.: Determining the epipolar geometry and its uncertainty: a review. Int. J. Comput. Vis. 27(2), 161–195 (1998)

不足之处,敬请斧正; 若你觉得文章还不错,请关注微信公众号“SLAM 技术交流”继续支持我们,笔芯:D。

相关推荐

【ipaper】 Visual Odometry 和Visual SLAM概述: 第三部分

【ipaper】 Visual Odometry 和Visual SLAM概述: 第二部分

【ipaper】 Visual Odometry 和Visual SLAM概述: 第一部分

下次讨论 Stereo Vision Versus Monocular Vision, 敬请期待。。。

目录
相关文章
|
存储 Kubernetes 算法
ASI 2021 年双十一万级别超大规模集群的高性能提升
ASI 作为云原生的引领实施者,它的高性能,高可用,它的稳定性影响着甚至决定着阿里集团和云产品的业务的发展。
3833 106
ASI 2021 年双十一万级别超大规模集群的高性能提升
|
机器学习/深度学习 监控 算法
《OpenCV实战指南:计算机视觉开发的高效路径》
计算机视觉技术正深刻改变生活,从美颜相机到自动驾驶,OpenCV作为该领域的“瑞士军刀”,为开发者提供强大支持。本文将介绍如何利用OpenCV进行图像处理、对象检测及视频分析等任务。从安装配置到基础操作(如图像读取与显示),再到高级功能(如滤波、几何变换、关键点检测与特征匹配),以及经典Haar级联分类器和基于深度学习的YOLO算法等对象检测方法,最后探索视频处理与分析能力。OpenCV几乎覆盖了计算机视觉的所有方面,帮助开发者实现从简单应用到复杂系统的创新,让计算机“看”懂世界,创造无限可能。
384 6
|
人工智能 Java 测试技术
本地玩转 DeepSeek 和 Qwen 最新开源版本(入门+进阶)
本地玩转 DeepSeek 和 Qwen 最新开源版本(入门+进阶)
1069 0
|
存储 传感器 缓存
Nvidia Isaac Sim安装与配置 入门教程 2024(2)
本文是Nvidia Isaac Sim安装与配置的入门教程,指导用户如何检查系统配置、安装Omniverse环境、配置Nucleus服务器、安装Isaac Sim软件包、设置命令行环境和编辑器环境,以及如何启动Isaac Sim仿真和加载机器人与环境。
6319 0
|
人工智能 Java 算法框架/工具
二维前缀和数组&二维差分数组
二维差分数组div中的每一个格子记录的是「以当前位置为区域的左上角(区域右下角恒定为原数组的右下角)的值的变化量」【应该不固定 可以倒转】
735 0
二维前缀和数组&二维差分数组
|
Java API 数据库
Java8中的Stream的汇总和分组操作~它并不难的
Java8中的Stream的汇总和分组操作~它并不难的
636 0
|
jenkins 测试技术 持续交付
使用阿里云容器服务Jenkins 2.0实现持续集成之Pipeline篇(updated on 2016.12.23)
本文将用java web源代码来演示一个Pipeline项目如何优雅地实现代码提交触发测试,war包打包,测试结果展示,war包本地存储以及上传OSS,构建镜像,部署应用,邮件推送结果的持续交付方案。 在最后一部分,我们将介绍动态生成slave,执行job,销毁slave。
42956 143
电脑蓝屏怎么查看错误出在哪——Windows系统日志
电脑蓝屏怎么查看错误出在哪——Windows系统日志
|
存储 负载均衡 NoSQL
分片集群使用及原理介绍(一)|学习笔记
快速学习分片集群使用及原理介绍
962 0
分片集群使用及原理介绍(一)|学习笔记

热门文章

最新文章

下一篇
开通oss服务