计算机视觉中的多视图几何 -- 2D射影几何与变换 --无穷远直线、虚圆点及其对偶以及恢复图像的仿射性质

2D射影几何与变换(3)

这篇主要介绍在2D射影几何中的无穷远直线、虚圆点及其对偶二次曲线,以及他们各自对应的图像的仿射和度量性质。


无穷远直线

  • 定义
    I P 2 IP^2 IP2中的理想点(齐次坐标第三项为0)构成的直线,称为无穷远直线( I ∞ = ( 0 , 0 , 1 ) T I_{\infty}=(0,0,1)^T I=(0,0,1)T)。
    在2D射影空间中,任意直线都与无穷远直线有交点,所以无穷远直线也可以看作是所有直线方向的集合。
    正因为指明了无穷远直线,2D射影空间比2D欧式空间更为完备。

  • 图像的仿射性质
    对于射影空间中的点变换H,由其对应的直线的变换:

I ∞ ′ = H A − T I ∞ = [ A − T 0 − t T A − T 1 ] ( 0 0 1 ) = ( 0 0 1 ) = I ∞ I'_{\infty}=H_A^{-T}I_{\infty} = \left[ \begin{matrix} A^{-T} & 0 \\ -t^TA^{-T} & 1 \end{matrix} \right] \left( \begin{matrix} 0 \\ 0 \\ 1 \end{matrix} \right) = \left( \begin{matrix} 0 \\ 0 \\ 1 \end{matrix} \right) = I_{\infty} I=HATI=[ATtTAT01]001=001=I

  • 恢复图像的仿射性质
    可以看到,在仿射变换下,无穷远直线保持不变。
    结论:在射影空间中,当且仅当仿射变换下,无穷远直线保持不动。
    所以,只要能够指明无穷远直线,就可以从射影变换中恢复仿射性质,也就是利用一个将无穷远直线变回标准位置的反变换,将射影变换变为仿射变换。
    具体做法:
    假如无穷远直线的像是 l = ( l 1 , l 2 , l 3 ) T , l 3 ≠ 0 l=(l_1,l_2,l_3)^T,l_3 \ne 0 l=(l1,l2,l3)T,l3=0,那么对应恢复仿射性质的反变换则为:
    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=HA10l101l200l3
    其中 H A H_A HA为任意仿射。

  • 无穷远直线的确定
    如果能够找到一条直线上的三个点,那么就可以利用交比得到该直线的无穷远点,两个这样的无穷远点,就可以确定无穷远直线的像。


虚圆点及其对偶二次曲线

  • 虚圆点定义
    在无穷远直线上有两个点: 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 = [ a c o s θ − a s i n θ t x a s i n θ a c o s θ t y 0 0 1 ] ( 1 i 0 ) = a e − i θ ( 1 i 0 ) = I I' = H_S I = \left[ \begin{matrix} acos\theta & -asin\theta & t_x \\ asin\theta & acos\theta & t_y \\ 0 & 0 & 1 \end{matrix} \right] \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) = ae^{-i\theta} \left( \begin{matrix} 1 \\ i \\ 0 \end{matrix} \right) = I I=HSI=acosθasinθ0asinθacosθ0txty11i0=aeiθ1i0=I
    结论:在射影空间中,当且仅当(保向)相似变换下,虚圆点保持不动。(逆向则I,J交换位置)

  • 虚圆点的来源
    对于任意圆: x 2 + y 2 + d x z + e y z + f z 2 = 0 x^2+y^2+dxz+eyz+fz^2=0 x2+y2+dxz+eyz+fz2=0,它与无穷远直线相交(z=0): x 2 + y 2 = 0 x^2+y^2=0 x2+y2=0,解得虚圆点I,J。
    也就是说,任意圆都与无穷远直线相交于虚圆点,也就解释了为什么欧式几何中,圆是三个自由度而射影几何中圆和椭圆等价有五个自由度:圆是三个点加两个虚圆点。

  • 虚圆点的对偶二次曲线
    虚圆点可以看作方程 x 2 + y 2 = 0 x^2+y^2=0 x2+y2=0,是一条退化二次曲线。它有对偶二次曲线 C ∞ ∗ = I J T + J I T C^*_{\infty}=IJ^T+JI^T C=IJT+JIT ,是由以虚圆点为中心的两条平行直线束构成的。同样的,在相似变换下,该对偶二次曲线不变。

  • 图像的度量性质
    在射影几何中,两直线的欧式夹角可以用下式表示:
    c o s θ = I T C ∞ ∗ m ( I T C ∞ ∗ I ) ( m T C ∞ ∗ m ) cos\theta = \frac{I^TC^*_{\infty}m}{\sqrt{(I^TC^*_{\infty}I)(m^TC^*_{\infty}m)}} cosθ=(ITCI)(mTCm) ITCm
    这个式子说明,一旦确认了射影平面上的对偶二次曲线 C ∞ ∗ C^*_{\infty} C,就可以测量欧式角,也就是恢复了射影变换对于夹角的失真,恢复了仿射性质。

  • C ∞ ∗ C^*_{\infty} C进行度量校正
    对于一个射影变换H,根据其链式分解,对于 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_PH_AH_S)C^{*'}_{\infty}(H_PH_AH_S)^T = \left[ \begin{matrix} KK^T & KK^Tv \\ v^TKK^T & v^T KK^T v \end{matrix} \right] C=(HPHAHS)C(HPHAHS)T=[KKTvTKKTKKTvvTKKTv]
    其中射影成分(v)和仿射成分(K)可以由该像直接确定,但相似成分未知。
    一个简单的反变换方法,是对 C ∞ ∗ ′ C^{*'}_{\infty} C做SVD分解:
    C ∞ ∗ ′ = U [ 1 0 0 0 1 0 0 0 0 ] U T C^{*'}_{\infty} = U \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{matrix} \right]U^T C=U100010000UT
    U就是对应的校正射影变换。


总结

一般来说,两个平面之间的单应变换,可以通过平面上四组对应点的位置计算得到,事实上,他超定了该几何,因为射影变换(8dof)和相似变换(4dof)只差4个自由度。
也就是说假如要测量图像中的相似不变量(角度、长度比),只需要指定4个自由度。
那么这四个自由度就对应于上文所说的无穷远直线(2dof)和虚圆点(2dof)。
所以对于2D测量问题来说,无穷远直线和虚圆点及其对偶就十分重要,在3D上,则是绝对二次曲线。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值