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

  • Post author:
  • Post category:其他




2 Projective Geometry and Transformations of 2D

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



2.1 Planar geometry

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



2.2 The 2D projective plane


行向量与列向量

本书默认所有向量的都是列向量,比如



x

x






x





,那么



x

T

x^T







x










T












就是行向量。对于一个行向量



(

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






a


x




+








b


y




+








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






a


x




+








b


y




+








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







x










T









l




=








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






a


x




+








b


y




+








c




=








0





a


x




+








b


y




+









c
























=








0





, 做叉乘,我们会得到



(

c

c

)

(

b

,

a

,

0

)

T

(c’-c)(b,-a,0)^T






(



c

































c


)


(


b


,







a


,




0



)










T












,如果我们忽略尺度因子



(

c

c

)

(c’-c)






(



c

































c


)





,那么平行线的交点就在



(

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






(



x










1


















,





x










2


















,





x










3



















)










T












,把



x

3

=

0

x_3=0







x










3




















=








0





, 那么



(

x

1

,

x

2

,

0

)

T

(x_1,x_2,0)^T






(



x










1


















,





x










2


















,




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


)





这个点在无穷远直线上,那么无穷远处的直线就可以被看做是直线方向的集合。


二维投影平面的几何模型

投影平面可以想象为三维空间中射线的集合。可以从三个射线上挑出三个点并且让他们共面,那么其他的射线都与该平面有交点。所以该平面就是由射线上的点组成的。射影平面上的线就是过原点的平面和射影平面的交点。任意两个不同射线处于同一平面上,任意两个不同的平面相较于一个射线。可以类比两直线交于一点,两点确定一条直线。

在这里插入图片描述

如图所示,无穷远处的理想点和直线平行于平面



x

3

=

1

x_3=1







x










3




















=








1






线段与点的对偶性

点与线段的角色其实可以是互换的。比如说



l

T

x

=

0

l^T x=0







l










T









x




=








0





可以写成



x

T

l

=

0

x^T l = 0







x










T









l




=








0







2.2.3 Conics and dual conics

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

我们首先把圆锥写成其次表达式



x

=

(

x

1

,

x

2

,

x

3

)

x=(x_1,x_2,x_3)






x




=








(



x










1


















,





x










2


















,





x










3


















)








[

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]











































a








b


/2








d


/2





























b


/2








c








e


/2





























d


/2








e


/2








f

















































圆锥就可以写成



x

T

C

x

=

0

x^TCx=0







x










T









C


x




=








0





圆锥有5个自由度。


五个点确定一个圆锥

我们把圆锥换一个方式写,用



x

=

x

1

/

x

3

,

y

=

x

2

/

x

3

x=x_1/x_3,y=x_2/x_3






x




=









x










1


















/



x










3


















,




y




=









x










2


















/



x










3





















,可以得到:





(

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)






(



x










i








2


















,





x










i



















y










i


















,





y










i








2


















,





x










i


















,





y










i


















,




1


)


c




=








0








c




=








(


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




=








C


x






对偶圆锥

在前文中



c

c






c





定义的圆锥是点组成的圆锥。我们可以定义一个由直线组成的圆锥



c

c^*







c























,这个圆锥就是由所有和



c

c






c





相切的直线组成的。



c

=

c

1

c^*=c^{-1}







c






















=









c














1














2.3 Projective transformations


定义2.9

投影变换



h

h






h





是一个从二维投影空间到二维投影空间的变换,它满足一个性质:如果



x

1

,

x

2

,

x

3

x_1,x_2,x_3







x










1


















,





x










2


















,





x










3





















变换前在一条直线上,当且仅当变换后的他们



(

h

(

x

1

)

,

h

(

x

2

)

,

h

(

x

3

)

)

(h(x_1),h(x_2),h(x_3))






(


h


(



x










1


















)


,




h


(



x










2


















)


,




h


(



x










3


















))





还在一条直线上。

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

书中还介绍了另外一种从代数角度来定义的办法。通俗来说就是任何一个



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
























=








H


x





,那么线变换就是



l

=

H

T

l

l’=H^{-T} l







l
























=









H














T










l





,圆锥变换就是



x

T

C

x

=

x

T

H

T

C

H

1

x

x^TCx = x’^T H^{-T}CH^{-1}x’







x










T









C


x




=









x














T











H














T










C



H














1











x

























,所以



C

=

H

T

C

H

1

C=H^{-T}CH^{-1}






C




=









H














T










C



H














1













,其对偶圆变换就是



C

=

H

C

H

T

C^{*’}=HC^{*}H^T







C













































=








H



C























H










T














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)












































x





























y




























1
















































=













































ϵ




cos




θ








ϵ




sin




θ








0


































sin













cos








0






























t










x

























t










y
























1





















































































x








y








1



















































可以简写成:





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
























=









H











E



















x




=










[













R









0










T




































t








1




















]






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)












































x





























y




























1
















































=













































s




cos




θ








s




sin




θ








0
































s




sin








s




cos








0






























t










x

























t










y
























1





















































































x








y








1



















































可以简写成:





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
























=









H











S



















x




=










[













s


R









0










T




































t








1




















]






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)












































x





























y




























1
















































=














































a











11


























a











21

























0






























a











12


























a











22

























0






























t










x

























t










y
























1





















































































x








y








1



















































可以简写成:





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
























=









H











A



















x




=










[













A









0










T




































t








1




















]






x







整个矩阵有6个自由度,左上角



A

A






A





四个,平移两个。




A

A






A





可以被分解成如下形式:





A

=

R

(

θ

)

R

(

ϕ

)

D

R

(

ϕ

)

A=R(\theta) R(-\phi) D R(\phi)






A




=








R


(


θ


)


R


(





ϕ


)


D


R


(


ϕ


)











[

λ

1

0

0

λ

2

]

\left[ \begin{matrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{matrix} \right]








[














λ










1
























0





























0









λ










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
























=









H











P



















x




=










[













A









v










T




































t








v




















]






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




=









H










S



















H










A



















H










P
























=










[













s


R









0










T




































t








1




















]








[













K









0










T




































0








1




















]








[













I









v










T




































0








v




















]






=










[













A









v










T




































t








v




















]












H

P

H_P







H










P





















移动无穷远处的直线,



H

A

H_A







H










A





















是一个仿射变换,



H

S

H_S







H










S





















是一个广义的相似变换。



2.4.7 The number of invariants

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


结论2.16

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

举个例子,空间中4个点,有8个自由度,因为每个点有2个。那么几何体的不变量就是:几何体的自由度8,减去变换的自由度。如果我们假设变换是相似变换,那么答案就是8-4=4(相似变换是4个自由度)。假设变换是仿射变换,答案就是8-6=2(仿射变换是6个自由度)。

在这里插入图片描述



2.5 The projective geometry of 1D

一维空间投影几何那就是点



x

ˉ

=

(

x

1

,

x

2

)

T

\bar{x}=(x_1,x_2)^T













x







ˉ










=








(



x










1


















,





x










2



















)










T












,其中



x

2

=

0

x_2=0







x










2




















=








0





,一维空间单应矩阵就是:





x

ˉ

=

H

2

×

x

x

ˉ

\bar{x}’=H_{2 \times x} \bar{x}














x







ˉ






























=









H











2


×


x


























x







ˉ
















H

2

×

2

H_{2 \times 2}







H











2


×


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}|}






C


ross


(










x










1























ˉ

















,












x










2























ˉ

















,












x










3























ˉ

















,












x










4























ˉ

















)




=






























x










1























ˉ

























x










3























ˉ

















∣∣










x










2























ˉ

























x










4























ˉ











































x










1























ˉ

























x










2























ˉ

















∣∣










x










3























ˉ

























x










4























ˉ









































其中





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]

















x










i























ˉ

























x










j























ˉ






















=








det






[














x











i


1


























x











i


2















































x











j


1


























x











j


2





































]







交叉比有这么几个性质:

  1. 交叉比和用什么坐标系表示无关,因为分子和分母之间的比例相互抵消
  2. 如果每个点都是有限远处的点并且



    x

    2

    =

    1

    x_2=1







    x










    2




















    =








    1





    , 那么



    x

    ˉ

    i

    x

    ˉ

    j

    |\bar{x}_{i}\bar{x}_{j}|

















    x







    ˉ

















    i



























    x







    ˉ

















    j

























    表示从



    x

    ˉ

    i

    \bar{x}_{i}














    x







    ˉ

















    i


























    x

    ˉ

    j

    \bar{x}_{j}














    x







    ˉ

















    j






















    的有符号距离

  3. 如果有一个点是理想点,交叉比也依然成立
  4. 交叉比在任何投影变换下都是不变的


Concurrent lines共点线


共点线就是有共同起点的线,然后多找一条线,和所有共点线相交,这样就可以的定义交叉比了。

在这里插入图片描述



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




=








(



l










1


















,





l










2


















,





l










3



















)










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




=









H










A

























































1








0









l










1













































0








1









l










2













































0








0









l










3




































































H

A

H_A







H










A





















是任一个仿射变换,



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
























=









H










s


















I








=













































s




cos




θ








s




sin




θ








s


0
































s




sin




θ








s




cos




θ








0






























t










x

























t










x
























1





















































































1








i








0




















































=








s



e














i


θ

















































1








i








0




















































=








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










































=








I



J










T











+








J



I










T














这个



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




=








(



l










1


















,





l










2


















,





l










3



















)










T












,



m

=

(

m

1

,

m

2

,

m

3

)

T

m=(m_1,m_2,m_3)^T






m




=








(



m










1


















,





m










2


















,





m










3



















)










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




θ




=



























(



l










1








2




















+





l










2








2


















)


(



m










1








2




















+





m










2








2


















)





































l










1



















m










1




















+





l










2



















m










2







































如果对



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




θ




=



























(



l










T










C








































l


)


(



m










T










C








































m


)





































l










T










C








































m























所以说我们知道了



C

C^*_{\infty}







C











































就可以计算出线段或者平面之间的角度(

结论2.23

)。

书中还有一个很明显的结论:如果



l

T

C

m

=

0

l^T C^*_{\infty} m=0







l










T










C








































m




=








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

































































=








(



H










P



















H










A



















H










S


















)



C








































(



H










P



















H










A



















H










S



















)










T















=










[













K



K










T
















v










T









K



K










T




































K



K










T









v









v










T









K



K










T









v




















]










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




=








C


x





,这条



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.29

相关性是从二维投影空间中的点,到二维投影空间中的线的一个可逆映射。它是一个



3

×

3

3 \times 3






3




×








3





的非奇异矩阵(非奇异所以可逆),我们把它表示为



A

A






A





,那么整个相关性就可以表示为



l

=

A

x

l=Ax






l




=








A


x





这个



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







y










T









l




=









y










T









C


x




=








0





所以



C

C






C





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

另外,共轭点有一个性质:



x

x






x





如果在



y

y






y





的极线上,



y

y






y





也会在



x

x






x





的极线上。



2.8.2 Classification of conics

圆锥可以确定双曲线、抛物线、椭圆这三种类别。它们分别是用平面和圆锥相交形成的。那么我们如果从投影几何的角度考虑,用无穷远处的直线来和一个椭圆相交,如果没有实交点,那就形成了椭圆,如果有一个交点,那就是抛物线,如果有两个交点, 那就是双曲线,如下图所示:

在这里插入图片描述

如果我们从代数的角度考虑,将



C

C






C





用SVD分解得到



C

=

U

T

D

U

C=U^TDU






C




=









U










T









D


U





,其中



D

D






D





就是矩阵的特征值,把



D

D






D





再次SVD分解,保证



D

D






D





的特征值是-1或1或0,这样根据



D

D






D





特征值的不同,就得到不同类型的圆锥,如下表所示:

在这里插入图片描述



2.9 Fixed points and lines

我们知道



l

l_{\infty}







l


































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

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


欧式变换(刚体变换)

其特征值是{




e

i

θ

,

e

i

θ

e^{i \theta}, e^{-i \theta}







e











i


θ










,





e














i


θ













},2个固定点是前文提到的circular points(椭圆点)。


相似变换

其特征值是{1,



s

e

i

θ

,

s

e

i

θ

se^{i \theta},s e^{-i \theta}






s



e











i


θ










,




s



e














i


θ













},2个固定点是前文提到的椭圆点。


仿射变换

2个固定点可以是实点或者复数点,但是通过这些点的固定线



l

l_{\infty}







l


































在任何情况下都是实的。



版权声明:本文为YuhsiHu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。