多视图几何介绍
无处不在的投影几何( projective geometry)
我们对投影变换都很熟悉。当我们看一幅画时,我们看到的正方形不是正方形,圆圈也不是正圆,将这些平面物体映射到图像上的变换就是投影变换的一个例子。
投影变换保留了几何的哪些性质?角度(angle),距离(distance),距离的比率(ratio of distance),这些都没有被保留下来,唯一被保留的特征是平直度(straightness),这是映射中最普遍的要求,我们可以把平面上的投影变换定义为平面上用于保持平直的线的点集合的任意映射。
为了了解为什么我们需要射影几何,我们从熟悉的欧几里得几何(Euclidean geometry)开始,它是描述物体角度和形状的几何学。但是欧几里得几何的一个主要方面是存在一些麻烦的——它需要不断地破例来推理一些几何的基本概念——比如直线的交点。两条线(考虑的是二维几何)几乎总是相交于一点,但也有一些线对不相交于一点——称之为平行线。一种常见的语言表达方式是说平行线在无穷远处相交。然而,这并不完全令人信服,而且与另一种说法相冲突:即无限并不存在,只是一种方便的虚构。我们可以绕过这个问题,通过在无穷远处(即假设的平行线相交处)增加额外的点来增强欧几里得平面,这些点称为理想点(ideal oints),从而解决无穷远问题。
通过在无穷远处增加理想点,欧几里得空间转化成了一种新的几何对象——投影空间,也就是说投影空间实质上是欧几里得空间的延伸,它假设两条线总是相交于一点,可能是相较于无穷远处的神秘点。
坐标 Coordinates
欧几里得 2维空间中的一个点由一个实数对表示,增加一个额外的坐标得到一个三元组,并声明它表示同一个点,通过这个方式我们可以简单地通过添加或删除最后一个坐标,从一个点的表示到另一个点的表示来回移动。那么,为什么最后一个坐标需要是1?而其他两个坐标没有这么严格的限制。考虑一个三元组坐标,我们定义表示同一个点,进而可以知道对任意非零值,也表示同样的点。形式上,点由三元组坐标的等价类(equivalence classes)来表示,当两个三元组相差为公倍数时它们是相等的,这被称为点的齐次坐标(homogeneous coordinates)。因此设置最后一位为1可以得到这样一个性质,对于给定坐标三元组,除以,可以得到原来的坐标。
注意到,存在特殊的点,它们若除以得到的是,即无穷大,这些点就是上文说到无穷远处的理想点。
综上,欧几里得空间可以通过将点表示为齐次向量(homogeneous vectors)来将其拓展为投影空间。二维射影空间中无穷远处的点组成一条直线,通常称为无穷远处的直线。在三维空间中,它们形成无穷远处的平面。
齐次性 Homogeneity
在经典欧几里得几何中,所有的点都是相同的,整个空间都是均匀的。当添加坐标时,似乎会把一个特别的点定义为原点,然而需要强调的是,这只是特定坐标系选择的一个偶然。事实上,我们可以考虑改变坐标轴被移动和旋转到不同位置的欧几里得空间,或者用另一种方式来思考,空间本身平移和旋转到一个不同的位置,由此产生的运算称为欧几里得变换。
更普遍的变换类型是在欧几里得空间中应用一种线性变换,之后是一个欧几里得变换移动空间的原点。我们可以认为这是空间的移动和旋转,最后可能在不同的方向上以不同的比例线性拉伸,由此产生的变换称为仿射变换(affine transformation)。欧几里得变换或仿射变换的结果是无穷远处的点仍在无穷远处,这些点在某种程度上来说是被保护了,也就是说无穷远处的点在欧几里得变换和仿射变换中是特殊的。
然而,从投影几何的观点来看,无穷远处的点与其他点没有什么不同。在齐次坐标系中,点在无穷远处的最终坐标为零这一性质只是坐标系选择的一个意外。通过与欧几里得变换或仿射变换类比,我们可以定义投影空间中的投影变换。欧几里得空间中的一个线性变换可以表示为应用在点坐标上的矩阵乘法,同理,投影空间中的投影变换可以认为是齐次坐标表示点(即一个维向量)的映射,即用坐标向量乘以一个非奇异矩阵。在这样的映射下,无穷远处的点(最终坐标为0)被映射到任意其他点,即投影变换中无穷远的点不被保护。综上,投影空间中的投影变换可以用齐次坐标的线性变换表示:
在计算机视觉问题中,通过将投影空间扩展到三维投影空间,可以将其作为一种方便的表示真实3D世界的方式。 类似地,图像通常是通过将三维世界投射到一个二维的表示法上而形成的,为了方便起见,我们可以将其扩展为位于二维投影空间中的图像。在现实中,真实的世界,以及它的图像并不包含无穷远处的点,我们需要指出哪些是虚拟的点,也就是图像中无穷远处的直线,以及世界中无穷远处的平面。因此,尽管我们经常在面对投影空间,我们知道无穷远处的直线和平面在某种程度上是特殊的,这看似违背了纯投影几何的精神,但在实际问题中是很有用的。一般而言,我们会同时考虑两种情况把投影空间中的所有点都看成是相等的,必要时把空间中的无穷远处的直线或像中的无穷远处的平面单独挑出来。
仿射几何和欧几里得几何
通过给欧几里得空间增加一条线(或平面)在无穷远处可以得到投影空间,我们现在考虑的是倒退的反向过程。 本文主要讨论二维和三维投影空间。
仿射几何
我们认为投影空间最初是齐次的,即不需要事先制定特别的坐标系。在这样的空间里没有平行线的概念,因为平行线(或平面在三维的情况下)是在无穷远处相交的。在投影空间中我们公平看待所有的点,没有哪个点在无穷远这个概念,所以说平行度不是投影几何的一个概念。谈论这件事毫无意义。
为了让这个概念有意义,我们需要选出一些特定的直线,并确定这是无穷远处的直线。这就导致了一种情况,即尽管所有点都是平等的,但有些点比其他点更平等。因此,从一张白纸开始,想象它延伸到无限,形成一个投影空间,我们看到的只是空间的一小部分,它看起来很像普通的欧几里得平面。现在,让我们在纸上画一条直线,并声明这是在无穷远处的直线。接下来,我们再画两条相交于这条分界线的直线。由于它们在无穷远处的直线处相交,我们将它们定义为平行的。这种情况类似于人们观察一个无限平面所看到的情况。想象一张在地球上非常平坦的地区拍摄的照片,比如铁路轨道,如果我们考虑将铁道两端对应的射线向后延伸到摄像机后面,它将在摄像机后面的一点与平面相遇。从我们的观点来看,世界平面和它的图像只是观察一个投影平面上几何形状的另一种方式,再加上一条区别的线。射影平面和有区别的直线的几何称为仿射几何,任何将一个空间的有区别的直线映射到另一个空间的有区别的直线的射影变换称为仿射变换。这个有投影平面和一根有区别的线的几何被称为仿射几何(affine geometry),任何将一个空间中的有区别线映射到另一个空间的有区别线的投影变换称为仿射变换(affine transformation)。
通过确定一条特殊的直线为:无穷远处的直线,就可以定义平面内直线的平行度,一旦定义了平行度,某些其他概念也同样有定义。例如,我们可以定义平行线上两点之间间隔的等式,定义A, B, C和D点,并且AB线和CD线平行,如果AC线和BD线也平行,我们就定义AB和CD两个的间隔长度相等。类似地,同一直线上的两个区间相等如果平行线上存在另一个区间两者相等。
欧几里得几何 Euclidean geometry
通过在投影平面中区分一条特殊的直线,得到平行度的概念,并由此得到仿射几何。仿射几何被看作是投影几何的一种特殊化,它在投影几何中挑出一条特定的线(或平面)称它为无穷远处的直线。接下来,我们转向欧几里得几何,通过找出无穷远处直线或平面的一些特殊特征,仿射几何就变成了欧几里得几何。这样,我们就引入了本文中最重要的概念之一: 绝对二次曲线 Absolute Conic (AC)
从二维几何:圆开始。请注意,圆不是仿射几何的概念,因为平面的任意拉伸,在无限远处保持直线,会把圆变成一个椭圆。因此,仿射几何不区分圆和椭圆。
然而在欧几里得几何中,圆和椭圆是不同的,有一个重要的区别。在代数上,椭圆用二次方程来描述,因此两个椭圆通常会相交于四个点。然而,几何上很明显,两个不同的圆相交不可能超过两点。从代数上讲,这是两条二次曲线的交点,也就是解两个二次方程。我们应该会得到四个解。问题是,圆的特殊之处在于它们只相交于两点。
这个问题的答案当然是存在另外两个解:两个圆在另外两个复点上相交。我们不用找很远就能找到这两点。
齐次坐标中圆的方程写作
圆心在齐次坐标中表示为:,可以很快证明对于每一个这样的圆存在点,,每个圆都经过两个点,因此两个点位于任意两个圆的交点上。因为它们的最终坐标是0,这两个点在直线上无限大,被称为平面上的圆点(circular points)。注意,尽管这两个圆点是复数的,但它们满足一对实数方程:。
这一发现为我们如何定义欧几里得几何提供了线索。欧几里得几何源于投影几何,它首先在无穷远处挑出一条直线,然后在这条直线上挑出两个圆点。现在,我们可以把圆定义为经过两个圆点的任何二次曲线(由二次方程定义的曲线)。请注意在标准欧几里得坐标系下,圆点的坐标为。在将欧几里得结构分配给投影平面时,我们可能将任何直线和直线上的任何两个(复数)点称为无穷远处的直线和圆点。
作为应用这一观点的一个例子,一般二次曲线可以通过平面上的五个任意点,这可以通过计算一般二次方程系数的数目来看到,另一方面,一个圆由三个点定义。另一种理解方法是,这是一个经过两个特殊点的二次曲线,两个圆点,以及另外三个点,因此,和其他任何二次曲线一样,它需要五个点来唯一指定它。
由于挑出了两个圆点,我们得到了熟悉的欧几里得几何整体。特别是,角度和长度比等概念可以用圆点来定义。然而,这些概念最容易用欧几里得平面的某些坐标系来定义,我们将在后面的章节中看到。
3D欧几里得几何
我们知道欧几里得平面是如何由投影平面定义的通过在无穷远处指定一条直线和一对圆点。同样的想法可以应用到三维几何中。在二维的情况下,人们可以仔细观察球体,以及它们是如何相交的,两个球体在一个圆内相交,而不是像代数所暗示的那样在一般的四次曲线上相交,也不是像两个一般的椭球(或其他二次曲面)那样。通过这个思路发现了齐次坐标,所有球面在无穷远处与平面相交于一条曲线上,方程为:。这是一条二度曲线(二次曲线)位于平面上无穷远处,仅由复数点组成。它被称为绝对圆锥,是本文中的关键几何实体之一,最特别的是,因为它与相机校准的联系,将在以后谈论到。
绝对二次曲线仅在欧几里得坐标系中由上述方程定义。一般来说,我们可以认为三维欧几里得空间是由投影空间推导出来的,即选出一个在无穷远处的特定平面,并指定这个平面上的特定二次曲线为绝对二次曲线。这些实体在投影空间的坐标系中可以有相当普遍的描述。
空间直线垂直在仿射几何中不是一个有效的概念,它属于欧几里得几何,通过将这两条直线延伸到无限远的地方与平面相交,我们得到两个点,称为这两条直线的方向。直线的垂直度是根据两个方向与绝对圆锥曲线的关系来确定的。如果这两个方向是相对于绝对圆锥曲线的共轭点,则这两条线是垂直的。简单地说,如果绝对二次曲线由一个的共对称矩阵表示,方向为点,若则两个点共轭于。更一般地说,角度可以用任意坐标系下的绝对圆锥曲线来定义。