Step4:从单应矩阵中分离得到内参和外参(需要拍摄n>=3张标定图片)

摘要:

每张图片有m个棋盘格角点,m≥4.----------->用于获得单应矩阵
需要拍摄n张标定图片,n≥3------------------->用于从单应矩阵中分离得到内参和外参

问题:如何从H中,分离内参和外参?

思路:利用旋转向量的约束关系

推导:

根据《单应矩阵与四点标定》,
H = K ⋅ [ r 1 r 2 T ] = [ f x 0 u 0 0 f y v 0 0 0 1 ] [ r 1 r 2 T ] = [ h 1 h 2 h 3 ] H=K·\begin{bmatrix} r_1&r_2&T \end{bmatrix}= \begin{bmatrix}f_x&0&u_0\\0& f_y&v_0\\0&0&1 \end{bmatrix} \begin{bmatrix}r_1&r_2&T \end{bmatrix} =\begin{bmatrix} \mathbf{ h_1}&\mathbf{ h_2}&\mathbf{ h_3} \end{bmatrix} H=K[r1r2T]=fx000fy0u0v01[r1r2T]=[h1h2h3]
其中 h 1 , h 2 , h 3 \mathbf{ h_1,h_2,h_3} h1,h2,h3表示单应矩阵的列向量。矩阵运算得到
r 1 = λ M − 1 h 1 r 2 = λ M − 1 h 2 t = λ M − 1 h 3 \mathbf{ r_1}=\lambda M^{-1}h_1\\ \mathbf{ r_2}=\lambda M^{-1}h_2\\ \mathbf{ t}=\lambda M^{-1}h_3 r1=λM1h1r2=λM1h2t=λM1h3
根据 r 1 , r 2 r_1,r_2 r1,r2的正交,一个单应矩阵H得到两个约束条件:

  • 旋转向量点积=0(两垂直平面上的旋转向量相互垂直), r 1 T r 2 = 0 r_1^Tr_2=0 r1Tr2=0
  • 旋转向量长度相等(旋转不改变尺度), ∣ ∣ r 1 ∣ ∣ = ∣ ∣ r 2 ∣ ∣ = 1 ||r_1||=||r_2||=1 r1=r2=1

对于内参矩阵,令 B = ( K − 1 ) T K − 1 B=(K^{-1})^TK^{-1} B=(K1)TK1,分析得B为3*3对称矩阵,真正有用的元素为6,带入约束条件得:

  • h 1 T B h 2 = 0 \mathbf{ h_1}^TB\mathbf{ h_2}=0 h1TBh2=0
  • h 1 T B h 1 = h 2 T B h 2 \mathbf{ h_1}^TB\mathbf{ h_1}=\mathbf{ h_2}^TB\mathbf{ h_2} h1TBh1=h2TBh2

定义第i列列向量:
h i = [ h i 1 h i 2 h i 3 ] T \mathbf{ h_i}=\begin{bmatrix} h_{i1}&h_{i2}&h_{i3} \end{bmatrix}^T hi=[hi1hi2hi3]T


h i T B h j = v i j T b \mathbf{ h_i}^TB\mathbf{ h_j}=v_{ij}^Tb hiTBhj=vijTb

其中
v i j = [ h i 1 h j 1 h i 1 h j 2 + h i 2 h j 1 h i 2 h j 2 h i 3 h j 1 + h i 1 h j 3 h i 3 h j 2 + h i 2 h j 3 h i 3 h j 3 ] , b = [ B 11 B 12 B 22 B 13 B 23 B 33 ] v_{ij}=\begin{bmatrix} h_{i1}h_{j1}\\h_{i1}h_{j2}+h_{i2}h_{j1} \\ h_{i2}h_{j2}\\h_{i3}h_{j1}+h_{i1}h_{j3}\\ h_{i3}h_{j2}+h_{i2}h_{j3}\\ h_{i3}h_{j3} \end{bmatrix} ,b= \begin{bmatrix}B_{11}\\B_{12}\\B_{22}\\ B_{13}\\B_{23}\\B_{33}\\ \end{bmatrix} vij=hi1hj1hi1hj2+hi2hj1hi2hj2hi3hj1+hi1hj3hi3hj2+hi2hj3hi3hj3b=B11B12B22B13B23B33

则约束条件可以表示为:

[ v 12 T v 11 T − v 22 T ] b = 0 \begin{bmatrix}v_{12}^T\\v_{11}^T-v_{22}^T \end{bmatrix}b=0 [v12Tv11Tv22T]b=0
如果n张不同角度的标定图片,每张图片得到2个等式,矩阵vij可以通过单应矩阵得到,b中有6个位置元素,所以至少需要图片数n>=3

得到矩阵B之后,容易得到内参 f x , f y , u 0 , v 0 , γ , λ f_x,f_y,u_0,v_0,\gamma,\lambda fx,fy,u0,v0,γλ,从而得到外参 r 1 , r 2 , r 3 , t r_1,r_2,r_3,t r1,r2,r3,t

小结:

每张图片有m个棋盘格角点,m≥4.----------->用于获得单应矩阵
需要拍摄n张标定图片,n≥3------------------>用于从单应矩阵中分离得到内参和外参

参考资料

计算机视觉life公众号,作者:sixgod《从零开始学习 【张氏相机标定法】》系列

你可能感兴趣的:(相机标定)