相机标定&去畸变

到目前位置,相机的模型已经建立起来了,以下公式中的矩阵描述了相机的固有参数

\begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}

有时(u_0, v_0)也写作(c_x,c_y)

以及畸变参数:

Distortion_{coefficients} = (k_1 k_2 p_1 p_2 k_3)

决定这两个矩阵的过程,便是相机标定。通常,把摄像机对准一个有很多独立可标识点的物体,在不同角度观看这个物体,进一步可通过每个图像来计算摄像机的相对位置和方向,以及摄像机的内参。

在内参标定完成后,可以建立三维坐标和二维图像的关系:

\begin{bmatrix} x \\ y \end{bmatrix}=\begin{bmatrix} f_{x}\dfrac {X_{c}}{Z_{c}}+c_x \\ f_y\dfrac {Y_{c}}{Z_{c}}+c_{y} \end{bmatrix}

综合径向畸变和切向畸变,我们总结出去畸变公式:

  • Ideal point (x_u,y_u)为理想点
  • real point (x_d,y_d)为实际点
  • dr为径向畸变,参数为\{k_1,k_2,k_3\}
  • dt为切向畸变,参数为\{p_1,p_2\}

于是通过下面的变换,可以得到没有畸变的标定结果:

\begin{aligned} x_{corrected}=x\left( 1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6}\right)+[ 2p_1xy+p_{2}( r^{2}+2x^{2})] \\ y_{corrected}=y\left( 1+k_{1}r^{2}+k_{2}r^{4}+k_{3}r^{6}\right)+[ p_{1}( r^{2}+2y^{2}) +2p_{2}xy ] \\ (r^2 = x^2 + y^2) \end{aligned}

等式右边的(x,y)为得到的图像中的理想点,但是存在畸变,于是把其带入等式右边,经过径向和切向变换后,得到左边的畸变校正后的实际点坐标(x_{corrected},y_{corrected}),取出对应颜色值作为(x,y)的颜色值即可。通过去畸变,可以完成图像的矫正,如下图: