张正友相机标定算法详解

张正友相机标定算法详解

1.齐次表示法与一些基本结论

1.1 点与直线的齐次表示

​ 在射影几何中,通常用齐次方式来表达点与直线。比如 p = ( u , v ) p=(u,v) p=(u,v)被表示成 p ^ = ( x 1 , x 2 , x 3 ) \hat{p}= (x_1,x_2,x_3) p^=(x1,x2,x3)其中 u = x 1 x 3 , v = x 2 x 3 u=\frac{x_1}{x_3},v=\frac{x_2}{x_3} u=x3x1,v=x3x2。如此就将 p ^ \hat{p} p^称为 p p p的齐次表示。

​ 同样的直线方程 a x + b y + c = 0 ax+by+c=0 ax+by+c=0的齐次表示方式为 I = ( a , b , c ) I=(a,b,c) I=(a,b,c);

1.2几个常用结论

  • 两条直线的交点 x = I × I ′ x=I\times I^{'} x=I×I
  • 过两点的一条直线 I = x × x ′ I=x\times x^{'} I=x×x
  • x x x在直线 I I I x T I = 0 x^{T}I=0 xTI=0

具体证明如下图所示:

1.3理想点与无穷远直线

  • 理想点 p = ( x 1 , x 2 , 0 ) p=(x_1,x_2,0) p=(x1,x2,0)
  • 无穷远直线 I = ( a , b , 0 ) I=(a,b,0) I=(a,b,0)

2.张正友标定算法的数学推导

对于简单的相机模型有:

在这里插入图片描述

当把世界坐标系的 X Y XY XY平面选在与标定板平面重合时,这时便有:

在这里插入图片描述

当我们令:

在这里插入图片描述

根据
在这里插入图片描述

于是: h 1 T A − T A − 1 h 2 = 0 {h_1}^TA^{-T}A^{-1}h_2=0 h1TATA1h2=0 h 1 − T A − T A − 1 h 1 = h 2 T A − T A − 1 h 2 . . . . . . . . . . . . ( 1 ) {h_1}^{-T}A^{-T}A^{-1}h_1={h_2}^TA^{-T}A^{-1}h_2............(1) h1TATA1h1=h2TATA1h2............(1)

此时令:

在这里插入图片描述

当我们令

在这里插入图片描述

于是有 h i T A − T A − 1 h j = h i T B h j {h_i}^TA^{-T}A^{-1}h_j={h_i}^TBh_j hiTATA1hj=hiTBhj,化简得到:
在这里插入图片描述

所以: h i T B h j = v i j T b {h_i}^TBh_j={v_{ij}^T}b hiTBhj=vijTb

于是:在这里插入图片描述

这样就可以解出 b b b向量,于是则有:

r 1 = λ A − 1 h 1 r_1=\lambda A^{-1}h_1 r1=λA1h1 r 2 = λ A − 1 h 2 r_2=\lambda A^{-1}h_2 r2=λA1h2, r 3 = r 1 × r 2 r_3=r_1\times r_2 r3=r1×r2, t = λ A − 1 h 3 t=\lambda A^{-1}h_3 t=λA1h3其中 λ \lambda λ是归一化因子;

3.从绝对二次曲线的角度推导张正友标定算法

​ 在本节主要讲解绝对二次曲线的概念、虚圆点的概念、绝对二次曲线与虚圆点的关系、绝对二次曲线的像与相机内参的关系以及从绝对二次曲线的角度去推导张正友的标定算法。

3.1 绝对二次曲线

  • 二次曲线: a x 1 2 + b x 1 x 2 + c x 2 2 + d x 1 x 2 + e x 2 x 3 + f x 3 2 = 0 ax_1^2+bx_1x_2+cx_2^2+dx_1x_2+ex_2x_3+fx_3^2=0 ax12+bx1x2+cx22+dx1x2+ex2x3+fx32=0写成矩阵的形式:

    在这里插入图片描述

  • 二次曲线的射影变换: x ′ = H x x^{'}=Hx x=Hx,那么二次曲线的变换为 C ′ = H − T C H − 1 . . . . . ( 2 ) C^{'}=H^{-T}CH^{-1}.....(2) C=HTCH1.....(2),具体推导如下:在这里插入图片描述

  • 虚圆点:圆也是一种特殊的二次曲线,其中 a = c = 1 , b = 0 a=c=1,b=0 a=c=1,b=0,于是圆的方程为:

    x 1 2 + x 2 2 + d x 1 x 3 + e x 2 x 3 + f x 3 2 = 0 x_1^2+x_2^2+dx_1x_3+ex_2x_3+fx_3^2=0 x12+x22+dx1x3+ex2x3+fx32=0,圆与无穷远直线 I o o I_{oo} Ioo相交,则有 x 3 = 0 x_3=0 x3=0

    因此 x 1 2 + x 2 2 = 0 x_1^2+x_2^2=0 x12+x22=0,显然 I = [ 1 , i , 0 ] T I=[1,i,0]^T I=[1,i,0]T, J = [ 1 , − i , 0 ] T J=[1,-i,0]^T J=[1,i,0]T x 1 2 + x 2 2 = 0 x_1^2+x_2^2=0 x12+x22=0的两个解。于是我们称 I , J I,J I,J为虚圆点。

  • 绝对二次曲线的概念-无穷远平面上的一条二次曲线

    • 二次曲线方程:
      在这里插入图片描述
      ​ 写成矩阵形式:

在这里插入图片描述
显然 I 和 J I和J IJ都经过上述方程。

### 3.2 绝对二次曲线的像

无穷远平面上的一点,可以写成:

在这里插入图片描述

相机矩阵为:

在这里插入图片描述

那么 X o o X_{oo} Xoo在图像平面上的投影为:

在这里插入图片描述

因此在 H = K R H=KR H=KR的变换下,根据(1)式,绝对二次曲线的变换为:

在这里插入图片描述

这就给出了相机内参和绝对二次曲线的像的关系

在这里插入图片描述

3.3 张正友标定算法的推导

在这里插入图片描述

在这里插入图片描述

具体推导过程如下:

对于每一个标定板有四个角点,其角点的坐标可以设置为 ( 0 , 0 ) T , ( 1 , 0 ) T , ( 0 , 1 ) T , ( 1 , 1 ) T (0,0)^T,(1,0)^T,(0,1)^T,(1,1)^T (0,0)T,(1,0)T,(0,1)T,(1,1)T,通过这四个角点可以计算出标定板平面与图像平面的单应矩阵 H = [ h 1 , h 2 , h 3 ] H=[h_1,h_2,h_3] H=[h1,h2,h3]。于是虚圆点 I = [ 1 , i , 0 ] T I=[1,i,0]^T I=[1,i,0]T, J = [ 1 , − i , 0 ] T J=[1,-i,0]^T J=[1,i,0]T H H H映射到 h 1 ± i h 2 h_1\pm ih_2 h1±ih2

又因这些被映射到图像平面上的点会被绝对二次曲线的像经过,于是: ( h 1 ± i h 2 ) T w ( h 1 ± i h 2 ) = 0 (h_1\pm ih_2)^Tw(h_1\pm ih_2)=0 (h1±ih2)Tw(h1±ih2)=0

于是有: ( h 1 T w h 1 − h 2 T w h 2 ) + i ( h 1 T w h 2 + h 2 T w h 1 ) = 0 (h_{1}^Twh_1-h_2^Twh_2)+i(h_1^Twh_2+h_2^Twh_1)=0 (h1Twh1h2Twh2)+i(h1Twh2+h2Twh1)=0

显然: ( h 1 T w h 1 − h 2 T w h 2 ) = 0 (h_{1}^Twh_1-h_2^Twh_2)=0 (h1Twh1h2Twh2)=0 ( h 1 T w h 2 + h 2 T w h 1 ) (h_1^Twh_2+h_2^Twh_1) (h1Twh2+h2Twh1)=0;

于是: h 1 T w h 1 = h 2 T w h 2 h_{1}^Twh_1=h_2^Twh_2 h1Twh1=h2Twh2

又因为 w = ( K T K ) − 1 w=(K^TK)^{-1} w=(KTK)1,因此 w w w是对称矩阵,所以 h 1 T w h 2 = h 2 T w h 1 = 0 h_1^Twh_2=h_2^Twh_1=0 h1Twh2=h2Twh1=0;

这就从绝对二次曲线的角度推出了与第二部分中**(1)式**相同的结论。

;

于是: h 1 T w h 1 = h 2 T w h 2 h_{1}^Twh_1=h_2^Twh_2 h1Twh1=h2Twh2

又因为 w = ( K T K ) − 1 w=(K^TK)^{-1} w=(KTK)1,因此 w w w是对称矩阵,所以 h 1 T w h 2 = h 2 T w h 1 = 0 h_1^Twh_2=h_2^Twh_1=0 h1Twh2=h2Twh1=0;

这就从绝对二次曲线的角度推出了与第二部分中**(1)式**相同的结论。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值