《Multiple View Geometry》1.1节读书笔记
一(引言)、普遍存在投影几何
把平面物体投影到照片上就是一个典型的投影变换(projective transformation)的例子。
在投影变换过程中,几何图形的各种属性,比如角度、距离、距离比都大概率被改变了,只有straightness在投影后仍然保持其原始的特征。
“To see why we will require projective geometry we start from the
familiar Euclidean geometry.”
在欧式几何中,两条线大概率是有**交点(intersection)**的,但是平行线是个特例因为它们在欧式空间中应该是不相交的,为了提升欧式空间,我们定义他们在无穷远处相交在一个点上。
这样我们就把欧式空间转化为了投影空间,而且可以借助我们熟悉的欧式空间的属性来研究问题,定义其中的属性。
1、Coordinate坐标
正常二维坐标形如(x,y),我们在后面再加一项(x,y,1).
此意义在于我们可以构建三元坐标等价类(equivalence classes of coordinate triples),比如(x,y,1)和(kx,ky,k)(k不等于0)表示的是同一个点,因为(kx/k,ky/y)=(x,y)。
比较特殊的是(x,y,0)它表示的是无穷远处的那个点(x/0,y/0),也就是我们之前所说的无穷远处的交点的来历。
2、Homogeneity同质
欧式空间中的点都是一样的,你可以选取某个点作为原点来建立坐标系当然也可以选择另外一个点,这是完全等价的。
Euclidean transform:我们可以让轴线旋转或平移,但是也可以直接让整个空间旋转或平移
A more general type of transformation is that of applying a linear
transformation to R n \R^n Rn, followed by a Euclidean transformation moving the origin of the space.
这样我们就实现了空间的平移旋转(Euclidean transformation),以及各个方向上的线性拉伸或压缩(linear transformation)。
线性变换时欧式空间中把一个点转换到另一个点,同理投影变换就是在投影空间 P n \mathbb{P}^n Pn中把点进行映射,唯一要注意的是点用的是齐次坐标,是一个(n+1)维的向量它通过对齐次坐标应用一个非奇异矩阵(即一个可逆的(n+1,n+1)维矩阵来实现。
当我们应用一个射影变换(矩阵 A)时,这些无穷远点会被映射到其他点,而这些新点可能是有限点(最后一个坐标非零),也可能是其他无穷远点。
关键在于,射影变换不保持无穷远点的不变性。也就是说,无穷远点的位置和性质在变换后会发生改变,这与线性变换在欧几里得空间中的行为有所不同。
X ′ = H ( n + 1 ) × ( n + 1 ) X X'=H_{(n+1)\times(n+1)}X X′=H(n+1)×(n+1)X
射影空间是一个强大的数学工具,它通过扩展现实世界和图像的表示,方便了计算机视觉中的几何计算。但由于现实中没有无穷远点,我们在使用时需要特别注意无穷远直线和平面的特殊性。这种实用性与理论性的平衡是计算机视觉中常见的方法论。
二、仿射和欧式几何
我们通过在欧式空间中加入无穷远点来将其变为投影空间,我们可以反过来研究这个过程。
1、Affine Geometry 仿射几何
(1)投影空间无平行性概念
在欧几里得几何中,平行线是永不相交的直线。但在投影空间中,所有直线都会相交,包括那些在“无穷远处”相交的直线(无穷远点)。因为投影空间不区分哪些点是“无穷远点”,所有点都平等,所以“平行性”没有意义。
(2)无穷远直线
要让“平行性”有意义,我们需要人为指定一条特殊的直线,称之为无穷远直线(line at infinity)。这样的话,射影空间中的点仍然在理论上平等,但实际上无穷远直线上的点变得“更特殊”。
例如,假设我们有一张空白纸,代表 P 2 \mathbb{P}^2 P2。我们在这张纸上画一条直线,并宣布它是无穷远直线。接着画两条直线,它们相交于这条无穷远直线。因为它们在“无穷远处”相交,我们定义这两条直线为“平行”。
想想一张平坦大地(如沙漠)的照片:地平线对应于图像中的“无穷远直线”。铁路轨道在现实中是平行的,但在照片中看起来在“地平线”上相交。
仿射几何:射影几何加上一个指定的无穷远直线后的结果。
仿射变换:一种特殊的射影变换,它将一个射影空间中的无穷远直线映射到另一个射影空间中的无穷远直线。
通过指定无穷远直线,我们恢复了“平行性”的概念,这在纯粹射影几何中是没有的。
(3)平行线带来的性质
一旦有了平行性,我们可以定义更多几何概念,例如线段长度的相等:
假设有四个点 A,B,C,D:
如果直线 AB 和 CD 平行。且直线 AC 和 BD 也平行。
则定义线段 AB 和 CD 的长度相等。
如果两条线段在同一条直线上,可以通过引入一条平行线上的第三个线段来比较它们是否相等。
这些性质在欧几里得几何中很自然,但在射影几何中需要通过仿射几何的框架来定义。
2、Euclidean Geometry 欧式几何
(1)从射影几何到仿射几何
仿射几何:通过指定一条“无穷远直线”(line at infinity),引入了平行性的概念。这是射影几何的一种“特化”(specialization),因为我们打破了点的完全平等性,赋予无穷远直线特殊地位。
(2)从仿射几何到欧几里得几何
进一步特化:仿射几何仍然不够“具体”,因为它不能区分圆和椭圆,它们都被视为二次曲线(conic)。
两个椭圆可以有四个交点而圆最多有两个交点,这个特殊性或许是区分二者的突破口。我们用齐次坐标表示一个圆的方程:
( x − a w ) 2 + ( y − b w ) 2 = r w (x-aw)^2+(y-bw)^2=rw (x−aw)2+(y−bw)2=rw
其中 ( x , y , w ) = ( a , b , 1 ) (x,y,w)=(a,b,1) (x,y,w)=(a,b,1)。利用强大的观察能力,我们发现 ( 1 , ± i , 0 ) (1,\pm i,0) (1,±i,0)也是方程的解,每个圆上都有这么两个点!因此圆除了正常的两个交点,还有两个虚交点。
故而在仿射几何的基础上,我们进一步指定无穷远直线上的两个特殊点——圆点(circular points)。
圆的定义:在欧几里得几何中,圆是一个二次曲线(conic),且必须通过这两个圆点。我们可以选择任何一条直线作为无穷远直线,并在其上指定任意两个复数点作为圆点,从而为射影平面赋予欧几里得结构。
这样指定圆点后,我们恢复了欧几里得几何的所有熟悉特性:
角度:通过圆点可以定义角度(后续章节会用坐标系解释)。
长度比率:可以用圆点定义线段的比例。
这些概念在射影几何或仿射几何中没有直接定义,但在欧几里得几何中变得自然。
3、3D Euclidean geometry三维欧式几何
基于二维的研究,我们在三维投影空间汇总引入无穷远平面和**绝对圆锥(absolute conic)**来定义三维欧几里得空间的特性。
球是二次曲面(quadric surface),两个二次曲面相交理论上产生一个四次曲线(degree 2×2=4)。但两个球的交集是圆(一个二次曲线),而不是四次曲线。
这种思路让我们发现,在齐次坐标 ( X , Y , Z , T ) T (X,Y,Z,T)^T (X,Y,Z,T)T中,所有球与无穷远平面的交集是一个由方程 X 2 + Y 2 + Z 2 = 0 , T = 0 X^2+Y^2+Z^2=0,T=0 X2+Y2+Z2=0,T=0确定的。这是一个位于无穷远平面上的二次曲线(圆锥曲线),且只包含复数点。