首页 > 技术文章 > 一起来读多视图几何

needybeerlxy 2018-05-23 16:33 原文

写在前面的话: 做 slam 避不开的圣经就是这本 multi view geometry in computer vision,但是 一直没有开动来读,一来太厚,二来太忙,三来研究的脉络自己还没有大致的思 路的时候,实在静不下心啃大部头。几个月的时间过去了,到了现在觉的时间节 点刚刚好,便准备来写 blog 帮助自己理解和记忆学习过程中的一些要点,套用 电子学所邹谋炎老师的话,缺乏数学工具往往会让我们陷入空想或毫无思路,进 而无法做到创新,以此句激励自己吧。

由于这本书包含了许多符号定义,代数推理的过程,对我们来说这些是较为 枯燥的,写 blog 的时候,如果不是特别重要或是必须,我不会特别强调里面的 数学内容,如果大家要详细了解,可以阅读原著。Blog 按照我的预想是要挖掘数 字符号与推理下意义与关系,方便数学的工具化。 初次之外,博文参杂了我对于每一个小节(或两个小节)的整体认识,因为 是初读,难免不全面或是谬误的地方,希望不吝赐教。 第一章 2D 摄影几何和变换 摄影几何变换的必要:因为这些变换模拟透视摄像机对平面摄像时所产生 的几何失真。如本来在 3d 空间中是平行线,经过相机成像却不平行了。摄影几 何即为这类现象提供了数学表达。

1.1 平面几何 几何代数化起自笛卡尔,当我们使用计算机的时候,其优点变得尤为显著。
当我们处理几何问题的时候,通过代数化,我们可以轻松的产生算法以及实际的 计算方法。

1.2 2D 摄影平面 首先从整体上,本节引入了一些重要的概念:齐次表示,理想点,无穷远线, 摄影平面。

首先我们先介绍齐次表示是什么? 1) 直线的齐次表示: 对于直线 ax+by+c=0; 由于映射的唯一,可以用(a,b,c)来表示,k(a,b,c)则代表的是相同的直线。同样 (a,b,c)也可以表示一个三维的矢量(或者三维点,二者区分可以用三维的齐次 坐标,不理解的可以忽略本句)。 (a,b,c)如果是矢量,则 k(a,b,c)与(a,b,c)代表了 处于相同直线上的不同矢量,原因是什么呢? 首先回顾矢量的定义,是既有方向又有大小的量,又称为向量,因此乘以 k 代 表了相同的方向,但大小放大了 k 倍。 但直线却没有因为 k 值变化而改变,根本原因是什么呢? 在于直线的自由度只有两个(斜率与截距),当我们用三个量去表示它的时候, 必然意味着其中一个量是多余的,这部分内容比较简单,相信大家各有理解。 因此我们将直线视为 k(不为 0)的不同值的矢量的集合。 2) 点的齐次表示 点(x,y)的齐次表示为(x,y,1)。这样对于直线的表达 ax+by+c=0;
我们可以分解为(a,b,c)T(x,y,1)=0 进而得到文中的结论 1,2,3

结论 1:点 x 在直线 l 的充要条件为 xTl=0 结论 2:两直线 l 与 l’的交点为 x=l*l‘; 结论 3:过两点 x 和 x’的直线是 l=x*x’;

非常容易证明

下面解释了为什么我们需要齐次坐标,事实上,齐次坐标提供了二维欧几里 得空间到摄影空间的转换,摄影空间是我们定义的空间,它和二维欧几里得 空间最大的区别是它不额外包含了无穷远点与无穷远线。

为什么需要包含无穷远点和无穷远线?

目前我的认识是,确实是物理学家对于建立统一理论的执着,但是这样的表 达确实给了我们表达无穷的工具,换一句话说,在 n 维上为了对无穷进行表 达,我们又增添了一个维度。难道无穷本身是一种维度?

无穷远点的定义是对于正常的点 x=k(x1,x2,x3),当 x3 为 0 时,即为无穷 远点。 无穷远线即为所有无穷远点的几何,即 l=(0,0,1)T,满足结论 1,它的物 理意义为平面上所有直线的集合。

这样我们就把平行线相交和非平行线不相交这两个二维上的结论统一起来, 任意两条相异直线都相交了,不过平行线相交于无穷远点。

在我们的三个结论中,我们可以发现点和线的位置是可以互换而不影响结论 正确的,显示了关于点线结论的对偶性,如过两点直线与过两直线的点对偶, 如果原定理证明,则其对偶定理必然可被证明。


就到这里吧!!!

推荐阅读