《计算机视觉中的多视图几何》笔记(2)

Projective Geometry and Transformations of 2D

本章主要介绍本书必要的几何知识与符号。

文章目录

  • Projective Geometry and Transformations of 2D
    • 2.1 Planar geometry
    • 2.2 The 2D projective plane
      • 2.2.1 Points and lines
    • 2.2.2 Ideal points and the line at infinity
    • 2.2.3 Conics and dual conics
    • 2.3 Projective transformations
    • 2.3.1 Transformations of lines and conics
    • 2.4 A hierarchy of transformations
      • 2.4.1 Isometries刚体变换
    • 2.4.2 Similarity transformations相似变换
    • 2.4.3 Affine transformations仿射变换
    • 2.4.4 Projective transformations投影变换
    • 2.4.5 Summary and comparison
    • 2.4.6 Decomposition of a projective transformation
    • 2.4.7 The number of invariants
    • 2.5 The projective geometry of 1D
    • 2.7 Recovery of affine and metric properties from images
      • 2.7.1 The line at infinity
      • 2.7.2 Recovery of affine properties from images
    • 2.7.3 The circular points and their dual
    • 2.7.4 Angles on the projective plane
    • 2.7.5 恢复图像的度量性质
    • 2.8 More properties of conics
      • 2.8.1 The pole–polar relationship
    • 2.8.2 Classification of conics
    • 2.9 Fixed points and lines

2.1 Planar geometry

简要介绍了平面几何,本书将以代数和几何混合的方式来讲解。

2.2 The 2D projective plane

行向量与列向量 本书默认所有向量的都是列向量,比如 x x x,那么 x T x^T xT就是行向量。对于一个行向量 ( x , y ) (x,y) (x,y),我们就有 x = ( x , y ) T x=(x,y)^T x=(x,y)T

2.2.1 Points and lines

线段的齐次坐标 线是由方程 a x + b y + c = 0 ax+by+c=0 ax+by+c=0组成的,所以我们就用 ( a , b , c ) T (a,b,c)^T (a,b,c)T来表示线段。但是 ( a , b , c ) T (a,b,c)^T (a,b,c)T不能唯一表示一条线段,因为 ( a , b , c ) T (a,b,c)^T (a,b,c)T k ( a , b , c ) T k(a,b,c)^T k(a,b,c)T表示一样的线段 ( k k k不为0)。那么 k ( a , b , c ) T k(a,b,c)^T k(a,b,c)T其实就是一类向量的表达。这个类中所有的向量都是其次向量。那么我们把所有的类都放在一起,就形成了投影空间。空间中有一个特殊点 ( 0 , 0 , 0 ) T (0,0,0)^T (0,0,0)T,它不属于任何直线。

点的其次坐标 直线方程是 a x + b y + c = 0 ax+by+c=0 ax+by+c=0,那么可以写成 ( x , y , 1 ) ( a , b , c ) T (x,y,1)(a,b,c)^T (x,y,1)(a,b,c)T,那么这个 ( x , y , 1 ) (x,y,1) (x,y,1)就是点的齐次坐标。

结论2.1 点在直线上当且仅当 x T l = 0 x^T l = 0 xTl=0

自由度 自由度就是这个几何体可以由几个自由变化的变量来表达,比如点的自由度就是2,因为指定 x , y x,y x,y就够了,线的自由度也是2,这是因为虽然线有三个变量,但是他们之间的比例是 a : b : c a:b:c a:b:c。例如,在非齐次表示中,可以选择这两个参数作为直线的梯度和 y 截距。

直线的交点 两个直线 l = ( a , b , c ) , l ′ = ( a ′ , b ′ , c ′ ) l=(a,b,c),l'=(a',b',c') l=(a,b,c)l=(a,b,c),它们的交点就是 l × l ′ l \times l' l×l

两个点确定的直线 两个点 x , x ′ x,x' x,x,它们所确定的直线就是 x × x ′ x \times x' x×x

2.2.2 Ideal points and the line at infinity

平行线的交点 如果我们考虑两个平行线的交点 a x + b y + c = 0 , a x + b y + c ′ = 0 ax+by+c=0,ax+by+c'=0 ax+by+c=0ax+by+c=0, 做叉乘,我们会得到 ( c ′ − c ) ( b , − a , 0 ) T (c'-c)(b,-a,0)^T (cc)(b,a,0)T,如果我们忽略尺度因子 ( c ′ − c ) (c'-c) (cc),那么平行线的交点就在 ( b , − a , 0 ) T (b,-a,0)^T (b,a,0)T,我们再把这个齐次坐标变成非齐次,那么就得到 ( b / 0 , − a / 0 ) T (b/0,-a/0)^T (b/0,a/0)T,这点就在无穷远处,所以我们说平行线就是在无穷远处相交。

理想点与无穷远的直线 我们考虑任一个点 ( x 1 , x 2 , x 3 ) T (x_1,x_2,x_3)^T (x1,x2,x3)T,把 x 3 = 0 x_3=0 x3=0, 那么 ( x 1 , x 2 , 0 ) T (x_1,x_2,0)^T (x1,x2,0)T就是无穷远处的所有点, 这些点都落在一个直线上, 那就是 l ∞ = ( 0 , 0 , 1 ) T l_{\infty}=(0,0,1)^T l=(0,0,1)T

我们紧接着考虑任意一条直线 l = ( a , b , c ) T l=(a,b,c)^T l=(a,b,c)T l l l l ∞ l_{\infty} l的交点就是 ( b , − a , 0 ) T (b,-a,0)^T (b,a,0)T。那么一条和 l l l平行的直线 l ′ l' l会和 l ∞ l_{\infty} l也交于 ( b , − a , 0 ) T (b,-a,0)^T (b,a,0)T ( b , − a ) (b,-a) (b,a)和直线的法向量 ( a , b ) (a,b) (a,b)是垂直的, 所以它就是直线的方向。注意 ( a , b ) (a,b) (a,b)不是直线的方向, ( a , b ) (a,b) (a,b)和直线是垂直的。 ( b , − a , 0 ) (b,-a,0) (b,a,0)这个点在无穷远直线上,那么无穷远处的直线就可以被看做是直线方向的集合。

二维投影平面的几何模型 投影平面可以想象为三维空间中射线的集合。可以从三个射线上挑出三个点并且让他们共面,那么其他的射线都与该平面有交点。所以该平面就是由射线上的点组成的。射影平面上的线就是过原点的平面和射影平面的交点。任意两个不同射线处于同一平面上,任意两个不同的平面相较于一个射线。可以类比两直线交于一点,两点确定一条直线。
《计算机视觉中的多视图几何》笔记(2)_第1张图片
如图所示,无穷远处的理想点和直线平行于平面 x 3 = 1 x_3=1 x3=1

线段与点的对偶性 点与线段的角色其实可以是互换的。比如说 l T x = 0 l^T x=0 lTx=0 可以写成 x T l = 0 x^T l = 0 xTl=0

2.2.3 Conics and dual conics

圆锥描述了平面上的二次方程。欧氏几何主要三种:抛物线、双曲线、椭圆。在二维摄影几何里,这三种都是等价的。

我们首先把圆锥写成其次表达式 x = ( x 1 , x 2 , x 3 ) x=(x_1,x_2,x_3) x=(x1,x2,x3)

[ a b / 2 d / 2 b / 2 c e / 2 d / 2 e / 2 f ] \left[ \begin{matrix} a & b/2 & d/2 \\ b/2& c & e/2 \\ d/2 & e/2 & f \end{matrix} \right] ab/2d/2b/2ce/2d/2e/2f

圆锥就可以写成 x T C x = 0 x^TCx=0 xTCx=0 圆锥有5个自由度。

五个点确定一个圆锥 我们把圆锥换一个方式写,用 x = x 1 / x 3 , y = x 2 / x 3 x=x_1/x_3,y=x_2/x_3 x=x1/x3,y=x2/x3,可以得到:
( x i 2 , x i y i , y i 2 , x i , y i , 1 ) c = 0 c = ( a , b , c , e , d , f ) (x_i^2, x_i y_i,y_i^2,x_i,y_i,1)c=0\\ c=(a,b,c,e,d,f) (xi2,xiyi,yi2,xi,yi,1)c=0c=(a,b,c,e,d,f)

需要五个方程解出 c c c,因为 c c c的自由度是5。

和椭圆相切的直线 和椭圆 C C C在点 x x x处相切的直线 l l l l = C x l=Cx l=Cx

对偶圆锥 在前文中 c c c定义的圆锥是点组成的圆锥。我们可以定义一个由直线组成的圆锥 c ∗ c^* c,这个圆锥就是由所有和 c c c相切的直线组成的。 c ∗ = c − 1 c^*=c^{-1} c=c1

2.3 Projective transformations

定义2.9 投影变换 h h h是一个从二维投影空间到二维投影空间的变换,它满足一个性质:如果 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3变换前在一条直线上,当且仅当变换后的他们 ( h ( x 1 ) , h ( x 2 ) , h ( x 3 ) ) (h(x_1),h(x_2),h(x_3)) (h(x1),h(x2),h(x3))还在一条直线上。

根据这个定义,投影变换也叫共线性,投影变换和单应性是同一个意思。

书中还介绍了另外一种从代数角度来定义的办法。通俗来说就是任何一个 3 × 3 3 \times 3 3×3的非奇异矩阵 H H H都定义了一个投影变换。

从几何角度来解释, 投影变换其实定义了一个平面到平面的映射,因为我们知道,投影几何就是由平面定义的。而且投影变换保持了共线性。如果说这两个平面上的坐标系都是欧式坐标系,那么这个投影变换就变成了6个自由度的透视变换。

2.3.1 Transformations of lines and conics

一个点有如下变换 x ′ = H x x'=Hx x=Hx,那么线变换就是 l ′ = H − T l l'=H^{-T} l l=HTl,圆锥变换就是 x T C x = x ′ T H − T C H − 1 x ′ x^TCx = x'^T H^{-T}CH^{-1}x' xTCx=xTHTCH1x,所以 C = H − T C H − 1 C=H^{-T}CH^{-1} C=HTCH1,其对偶圆变换就是 C ∗ ′ = H C ∗ H T C^{*'}=HC^{*}H^T C=HCHT

2.4 A hierarchy of transformations

本节是一个重点章节,层层推广地介绍了各种变换的定义和性质。

2.4.1 Isometries刚体变换

其形式如下:
( x ′ y ′ 1 ) = [ ϵ cos ⁡ θ − sin ⁡ t x ϵ sin ⁡ θ − cos ⁡ t y 0 0 1 ] ( x y 1 ) \left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} \epsilon \cos \theta & -\sin & t_x \\ \epsilon \sin \theta & -\cos & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right) xy1 = ϵcosθϵsinθ0sincos0txty1 xy1
可以简写成:
x ′ = H E x = [ R t 0 T 1 ] x x'=H_{E}x= \left[ \begin{matrix} R & t \\ 0^T & 1 \\ \end{matrix} \right] x x=HEx=[R0Tt1]x
R R R是一个 2 × 2 2 \times 2 2×2的正交矩阵,整个大矩阵有3个自由度:旋转一个,平移两个。不变量是:线段长度、线段之间角度、图形的面积。

2.4.2 Similarity transformations相似变换

其形式如下:
( x ′ y ′ 1 ) = [ s cos ⁡ θ − s sin ⁡ t x s sin ⁡ θ s cos ⁡ t y 0 0 1 ] ( x y 1 ) \left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} s \cos \theta & -s \sin & t_x \\ s \sin \theta & s \cos & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right) xy1 = scosθssinθ0ssinscos0txty1 xy1
可以简写成:
x ′ = H S x = [ s R t 0 T 1 ] x x'=H_{S}x= \left[ \begin{matrix} sR & t \\ 0^T & 1 \\ \end{matrix} \right] x x=HSx=[sR0Tt1]x
整个矩阵有4个自由度:缩放因子一个,旋转一个,平移两个。不变量是:线段之间角度,、平行线还是平行的、线段之间的比例不变、因为是对整个图形进行缩放,不同区域之间的面积比也不变。

2.4.3 Affine transformations仿射变换

其形式如下:
( x ′ y ′ 1 ) = [ a 11 a 12 t x a 21 a 22 t y 0 0 1 ] ( x y 1 ) \left( \begin{matrix} x' \\ y' \\ 1 \end{matrix} \right)= \left[ \begin{matrix} a_{11} & a_{12} & t_x \\ a_{21} & a_{22} & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} x\\ y\\ 1 \end{matrix} \right) xy1 = a11a210a12a220txty1 xy1
可以简写成:
x ′ = H A x = [ A t 0 T 1 ] x x'=H_{A}x= \left[ \begin{matrix} A & t \\ 0^T & 1 \\ \end{matrix} \right] x x=HAx=[A0Tt1]x
整个矩阵有6个自由度,左上角 A A A四个,平移两个。

A A A可以被分解成如下形式:
A = R ( θ ) R ( − ϕ ) D R ( ϕ ) A=R(\theta) R(-\phi) D R(\phi) A=R(θ)R(ϕ)DR(ϕ)
[ λ 1 0 0 λ 2 ] \left[ \begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{matrix} \right] [λ100λ2]

所以 A A A可以被解释为先旋转一个角度 ϕ \phi ϕ,再从 x , y x,y x,y两个方向进行缩放,其比例因子为 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2,再按 − ϕ -\phi ϕ旋转回去,再转一个 θ \theta θ

由于进行了压缩,那么线段之间的角度就变了,不变量只能是保持直线之间的平行性、直线之间比例、面积的比例。

2.4.4 Projective transformations投影变换

投影变换是齐次坐标的一般非奇异线性变换,实际上是推广了仿射变换,我们之前已经看到了投影变换的作用。
其形式如下:
x ′ = H P x = [ A t v T v ] x x'=H_{P}x= \left[ \begin{matrix} A & t \\ v^T & v \\ \end{matrix} \right] x x=HPx=[AvTtv]x
整个大矩阵8个自由度。其不变量:直线变换以后还是直线。

2.4.5 Summary and comparison

2.4.6 Decomposition of a projective transformation

整个投影变换矩阵可以分解成三个小矩阵的乘机
H = H S H A H P = [ s R t 0 T 1 ] [ K 0 0 T 1 ] [ I 0 v T v ] = [ A t v T v ] H = H_S H_A H_P \\ = \left[ \begin{matrix} sR & t \\ 0^T & 1 \\ \end{matrix} \right] \left[ \begin{matrix} K & 0 \\ 0^T & 1 \\ \end{matrix} \right] \left[ \begin{matrix} I & 0 \\ v^T & v \\ \end{matrix} \right]= \left[ \begin{matrix} A & t \\ v^T & v \\ \end{matrix} \right] H=HSHAHP=[sR0Tt1][K0T01][IvT0v]=[AvTtv]
H P H_P HP移动无穷远处的直线, H A H_A HA是一个仿射变换, H S H_S HS是一个广义的相似变换。

2.4.7 The number of invariants

前文我们讨论了在某某变换下,几何体有多少不变量。那么这个不变量到底怎么计算呢?我们有以下结论:

结论2.16 几何体的不变量大于等于几何体的自由度减去变换的自由度。

举个例子,空间中4个点,有8个自由度,因为每个点有2个。那么几何体的不变量就是:几何体的自由度8,减去变换的自由度。如果我们假设变换是相似变换,那么答案就是8-4=4(相似变换是4个自由度)。假设变换是仿射变换,答案就是8-6=2(仿射变换是6个自由度)。
《计算机视觉中的多视图几何》笔记(2)_第2张图片

2.5 The projective geometry of 1D

一维空间投影几何那就是点 x ˉ = ( x 1 , x 2 ) T \bar{x}=(x_1,x_2)^T xˉ=(x1,x2)T,其中 x 2 = 0 x_2=0 x2=0,一维空间单应矩阵就是:
x ˉ ′ = H 2 × x x ˉ \bar{x}'=H_{2 \times x} \bar{x} xˉ=H2×xxˉ
H 2 × 2 H_{2 \times 2} H2×2有3个自由度。

The cross ratio交叉比
给定一维平面4个点, 我们定义一个cross ratio:
C r o s s ( x 1 ˉ , x 2 ˉ , x 3 ˉ , x 4 ˉ ) = ∣ x 1 ˉ x 2 ˉ ∣ ∣ x 3 ˉ x 4 ˉ ∣ ∣ x 1 ˉ x 3 ˉ ∣ ∣ x 2 ˉ x 4 ˉ ∣ Cross(\bar{x_1}, \bar{x_2},\bar{x_3},\bar{x_4})= \frac{|\bar{x_1} \bar{x_2}| |\bar{x_3} \bar{x_4}|} {|\bar{x_1} \bar{x_3}| |\bar{x_2} \bar{x_4}|} Cross(x1ˉ,x2ˉ,x3ˉ,x4ˉ)=x1ˉx3ˉ∣∣x2ˉx4ˉx1ˉx2ˉ∣∣x3ˉx4ˉ

其中
∣ x i ˉ x j ˉ ∣ = det ⁡ [ x i 1 x j 1 x i 2 x j 2 ] |\bar{x_i} \bar{x_j}|= \det \left[ \begin{matrix} x_{i1} & x_{j1} \\ x_{i2} & x_{j2} \end{matrix} \right] xiˉxjˉ=det[xi1xi2xj1xj2]

交叉比有这么几个性质:

  1. 交叉比和用什么坐标系表示无关,因为分子和分母之间的比例相互抵消
  2. 如果每个点都是有限远处的点并且 x 2 = 1 x_2=1 x2=1, 那么 ∣ x ˉ i x ˉ j ∣ |\bar{x}_{i}\bar{x}_{j}| xˉixˉj 表示从 x ˉ i \bar{x}_{i} xˉi x ˉ j \bar{x}_{j} xˉj 的有符号距离
  3. 如果有一个点是理想点,交叉比也依然成立
  4. 交叉比在任何投影变换下都是不变的

Concurrent lines共点线
共点线就是有共同起点的线,然后多找一条线,和所有共点线相交,这样就可以的定义交叉比了。
《计算机视觉中的多视图几何》笔记(2)_第3张图片

2.7 Recovery of affine and metric properties from images

本节主要是为了移除投影变换带来的性质丢失,把图像从投影变换恢复到相似变换,所以平行线、线段和面积的比例等等性质得以保留。

因为我们知道投影变换只比相似变换多4个自由度,那么我们只需要恢复4个自由度就好了。这4个自由度从哪里来?无穷远处的线提供2个,还有两个无穷远处的绝对点,因为在相似变换下它们是不变的。也可以叫圆锥点,因为任何一个圆锥都和无穷远处的线相交于这两点。

2.7.1 The line at infinity

在投影变换下,无穷远处的线会被投影到非无穷远处。
无穷远处的线在仿射变换下是不变的,也就是说经过仿射变换,它还在无穷远处。但是线上点的位置变了,只不过点都在无穷远处。

2.7.2 Recovery of affine properties from images

我们知道要恢复仿射性质就要找出无穷远处的线。那么我们首先明确,摄像机是一个投影变换,那么该线就会被映射到图像坐标系的某一个地方。我们先找到这个地方然后利用2.7.1的性质来建立一个方程。

假设无穷远处的线被映射到了 l = ( l 1 , l 2 , l 3 ) T l=(l_1,l_2,l_3)^T l=(l1,l2,l3)T, 我们已知无穷远处线的坐标是 ( 0 , 0 , 1 ) T (0,0,1)^T (0,0,1)T 而且该线在仿射变换下不变,那么我们就构造一个矩阵:
H = H A [ 1 0 0 0 1 0 l 1 l 2 l 3 ] H=H_A \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ l_1 & l_2 & l_3 \end{matrix} \right] H=HA 10l101l200l3

H A H_A HA是任一个仿射变换, H H H可以把 l l l变换到 ( 0 , 0 , 1 ) (0,0,1) (0,0,1),那么我们就把 H H H和整个图像相乘,这样整个图像就恢复了仿射性质。

那么接下来的问题就是说怎么找 l l l,我们从图像中找出两个平行线,将其延长,他们肯定相交,这样就是一个点。再重复一遍,这样就有两个点。这两个点就确定了 l l l。书上还有另外一个办法,在P51的Example 2.20。

2.7.3 The circular points and their dual

什么是椭圆点我们已经介绍了,所以现在我们来看一下它长什么样。
我们用 I , J I,J I,J来表示, I = ( 1 , i , 0 ) T , J = ( 1 , − i , 0 ) T I=(1,i,0)^T,J=(1,-i,0)^T I=(1,i,0)T,J=(1,i,0)T,这个点为什么不变呢?
因为有如下等式:
I ′ = H s I = [ s cos ⁡ θ − s sin ⁡ θ t x s sin ⁡ θ s cos ⁡ θ t x s 0 0 1 ] ( 1 i 0 ) = s e − i θ ( 1 i 0 ) = I I' = H_s I \\= \left[ \begin{matrix} s \cos \theta & -s \sin \theta & t_x \\ s \sin \theta & s \cos \theta & t_x \\ s 0 & 0 & 1 \\ \end{matrix} \right] \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) \\ = s e^{-i \theta} \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) \\ = I I=HsI= scosθssinθs0ssinθscosθ0txtx1 1i0 =seiθ 1i0 =I

根据上式,我们有如下结论:
结论2.21 椭圆点 I , J I,J I,J在投影变换下保持不变,当且仅当投影变换是相似变换。

这两个点是怎么找出来的?是圆锥方程与 l ∞ l_{\infty} l的交点。

*由圆锥点定义的对偶圆锥
我们可以利用 I , J I,J I,J来定义一个圆锥
C ∞ ∗ = I J T + J I T C^*_{\infty} = IJ^T+JI^T C=IJT+JIT
这个 C ∞ ∗ C^*_{\infty} C是由直线组成的圆锥,是2.2.3节线圆锥的退化情况。那么它关于谁对偶呢?它是圆锥点的对偶。

C ∞ ∗ C^*_{\infty} C在相似变换下也是不变的。所以我们可以有以下结论:

结论2.22 圆锥点 C ∞ ∗ C^*_{\infty} C在投影变换下保持不变当且仅当投影变换是相似变换。

C ∞ ∗ C^*_{\infty} C还有两个性质。1. 有四个自由度 2. l ∞ l_{\infty} l C ∞ ∗ C^*_{\infty} C的零向量

2.7.4 Angles on the projective plane

假设有两条直线 l = ( l 1 , l 2 , l 3 ) T l=(l_1,l_2,l_3)^T l=(l1,l2,l3)T, m = ( m 1 , m 2 , m 3 ) T m=(m_1,m_2,m_3)^T m=(m1,m2,m3)T,它们之间的夹角就是:
cos ⁡ θ = l 1 m 1 + l 2 m 2 ( l 1 2 + l 2 2 ) ( m 1 2 + m 2 2 ) \cos \theta = \frac{l_1 m_1 + l_2 m_2}{\sqrt{(l_1 ^2+l_2^2)(m_1^2+m_2^2)}} cosθ=(l12+l22)(m12+m22) l1m1+l2m2

如果对 l , m l,m l,m施加投影变换,上式就不适用了,为了在投影变换之后还可以计算角度,我们有以下式子存在:
cos ⁡ θ = l T C ∞ ∗ m ( l T C ∞ ∗ l ) ( m T C ∞ ∗ m ) \cos \theta = \frac{l^T C^*_{\infty} m}{\sqrt{(l^T C^*_{\infty} l)(m^T C^*_{\infty} m)}} cosθ=(lTCl)(mTCm) lTCm

所以说我们知道了 C ∞ ∗ C^*_{\infty} C就可以计算出线段或者平面之间的角度(结论2.23)。

书中还有一个很明显的结论:如果 l T C ∞ ∗ m = 0 l^T C^*_{\infty} m=0 lTCm=0,那么 l , m l,m l,m垂直。

2.7.5 恢复图像的度量性质

度量性质就是指角度,线段之间的比例等。主要是用 C ∞ ∗ C^*_{\infty} C,这是因为在投影变换之下,有下式存在:
C ∞ ∗ ′ = ( H P H A H S ) C ∞ ∗ ( H P H A H S ) T = [ K K T K K T v v T K K T v T K K T v ] C^{*'}_{\infty} = (H_P H_A H_S) C^*_{\infty} (H_P H_A H_S)^T \\= \left[ \begin{matrix} KK^T & KK^Tv \\ v^TKK^T & v^TKK^Tv \end{matrix} \right] C=(HPHAHS)C(HPHAHS)T=[KKTvTKKTKKTvvTKKTv]

K K K是仿射变换左上角的分量, v v v是投影变换的分量。从上式我们可以看出,只要知道 C ∞ ∗ C^*_{\infty} C就可以求出 C ∞ ∗ ′ C^{*'}_{\infty} C,然后做SVD分解,就可以求出 K , v K,v K,v

具体细节可以参考P56 Example2.26。

2.8 More properties of conics

本章也是重点,介绍了点、线、圆锥之间的关系,是对极几何的基础。

2.8.1 The pole–polar relationship

一个点 x x x和一个圆锥 C C C可以确定一条直线 l = C x l=Cx l=Cx,这条 l l l就叫极线。注意这个点 x x x并不在圆锥 C C C上,而是在 C C C的外边。过 x x x可以向 C C C做出两条线(注意,这个线不是极线,为了区分我把它叫切线)。每一条切线都和圆锥相切,如下图所示。我们可以想象 x x x逐渐向圆锥移动,所以两条切线之间的角度逐渐增大,当 x x x位于圆锥之上,两条切线就变成了一条切线。
《计算机视觉中的多视图几何》笔记(2)_第4张图片
下面介绍另一个概念:点和线的相关性
定义2.29 相关性是从二维投影空间中的点,到二维投影空间中的线的一个可逆映射。它是一个 3 × 3 3 \times 3 3×3的非奇异矩阵(非奇异所以可逆),我们把它表示为 A A A,那么整个相关性就可以表示为 l = A x l=Ax l=Ax

这个 A A A提供了点和线的关系,但是 A A A不是对称的。那么如果 A A A是对称的,会是什么情况? 这就引出了共轭点的概念:

共轭点 y y y在由 x x x确定的极线上,那么 y y y x x x就是共轭点,表示为 y T l = y T C x = 0 y^T l = y^T Cx=0 yTl=yTCx=0

所以 C C C描述的就是点和线之间的关系。

另外,共轭点有一个性质: x x x如果在 y y y的极线上, y y y也会在 x x x的极线上。

2.8.2 Classification of conics

圆锥可以确定双曲线、抛物线、椭圆这三种类别。它们分别是用平面和圆锥相交形成的。那么我们如果从投影几何的角度考虑,用无穷远处的直线来和一个椭圆相交,如果没有实交点,那就形成了椭圆,如果有一个交点,那就是抛物线,如果有两个交点, 那就是双曲线,如下图所示:
《计算机视觉中的多视图几何》笔记(2)_第5张图片
如果我们从代数的角度考虑,将 C C C用SVD分解得到 C = U T D U C=U^TDU C=UTDU,其中 D D D就是矩阵的特征值,把 D D D再次SVD分解,保证 D D D的特征值是-1或1或0,这样根据 D D D特征值的不同,就得到不同类型的圆锥,如下表所示:
《计算机视觉中的多视图几何》笔记(2)_第6张图片

2.9 Fixed points and lines

我们知道 l ∞ l_{\infty} l和椭圆点在投影变换下是不变的。那么,如果把一个变换看成矩阵,点和线看成向量,那么什么样的向量在矩阵的作用下不变?特征值对应的向量。所以说那些不变的点和线就是投影矩阵的特征向量。

下面分别介绍不同变换中的固定点:

欧式变换(刚体变换) 其特征值是{ e i θ , e − i θ e^{i \theta}, e^{-i \theta} eiθ,eiθ},2个固定点是前文提到的circular points(椭圆点)。

相似变换 其特征值是{1, s e i θ , s e − i θ se^{i \theta},s e^{-i \theta} seiθ,seiθ},2个固定点是前文提到的椭圆点。

仿射变换 2个固定点可以是实点或者复数点,但是通过这些点的固定线 l ∞ l_{\infty} l在任何情况下都是实的。

你可能感兴趣的:(计算机视觉,笔记,人工智能)