【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, 敬请期待。。。

目录
相关文章
|
6月前
|
定位技术 计算机视觉 C++
C++计算机视觉库OpenCV在Visual Studio 2022的配置方法
C++计算机视觉库OpenCV在Visual Studio 2022的配置方法
231 1
|
IDE 前端开发 Java
在 Visual Studio Code 中使用 CodeFuse
Visual Studio Code作为一款广受程序员欢迎的代码编辑器,在前端开发和各类脚本语言开发中占据主流地位,CodeFuse智能研发助手就专门为VS Code研发了插件,只要安装插件就可以使用CodeFuse提供的各种功能,下面我们看看如何在VS Code中使用CodeFuse插件呢?
392 0
|
存储 C++ Windows
Visual Studio配置C++矩阵库Armadillo
本文介绍在Visual Studio软件中配置C++环境下线性代数运算库Armadillo的方法~
349 1
Visual Studio配置C++矩阵库Armadillo
|
编译器 开发工具 C语言
关于Visual Studio 2022常见的报错以及处理方案
关于Visual Studio 2022常见的报错以及处理方案
|
存储 IDE 前端开发
速览Visual Studio 2022 中的新增功能
速览Visual Studio 2022 中的新增功能
Visual Studio(VS2017/VS2019) C++ 配置 CPLEX 教程
Visual Studio(VS2017/VS2019) C++ 配置 CPLEX 教程
Visual Studio(VS2017/VS2019) C++ 配置 CPLEX 教程
|
C++ 计算机视觉
图像处理ITK与Visual Studio2017的配置教程!
VS2017配置ITK 本次教程中的环境配置如下: Visual Studio2017,cmake 3.9.4,ITK 4.13;
|
算法 机器人 定位技术
【ipaper】Visual Odometry 和 Visual SLAM概述:第六部分
【ipaper】 Mapping | An Overview to Visual Odometry and Visual SLAM: Applications to Mobile Robotics 第六部分 Mapping 在大多数现实世界的机器人应用中,没有用于移动机器人定位和导航的地图。
1520 0
|
算法 定位技术
【ipaper】Visual Odometry 和 Visual SLAM概述:第五部分
【ipaper】 An Overview to Visual Odometry and Visual SLAM: Applications to Mobile Robotics 第五部分 Localization Stereo Vision Versus Monocular Vision Stereo Visual Odometry 在双目视觉中,在单个时间步长(single time-step)中通过三角测量重建3D信息,同时观察在空间上被已知基线距离分开的左右图像的特征。
1445 0
|
传感器 算法 定位技术
【ipaper】Visual Odometry 和 Visual SLAM概述:第三部分
【ipaper】 An Overview to Visual Odometry and Visual SLAM: Applications to Mobile Robotics 第三部分 Related Work(相关工作) Visual SLAM 正如我们在介绍部分中所描述的那样,SLAM是机器人在未知环境中localize并且同步构建其周围环境的一种方式。
1477 0