一.相机的参数
1.两个坐标系
世界坐标系(world coordinate)(xw,yw,zw),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。
相机坐标系(camera coordinate)(xc,yc,zc),也是一个三维直角坐标系,原点位于镜头光心处,x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。
2.相机的内参数
设P=(X,Y,Z)为场景中的一点,在针孔相机模型中,其要经过以下几个变换,最终变为二维图像上的像点p=(μ,ν),将P从世界坐标系通过刚体变换(旋转和平移)变换到相机坐标系,这个变换过程使用的是相机间的相对位姿,也就是相机的外参数。
从相机坐标系,通过透视投影变换到相机的成像平面上的像点p=(x,y)。将像点p从成像坐标系,通过缩放和平移变换到像素坐标系上点p=(μ,ν) 。
相机将场景中的三维点变换为图像中的二维点,也就是各个坐标系变换的组合,可将上面的变换过程整理为矩阵相乘的形式:
将矩阵K称为相机的内参数,
其中,α,β表示图像上单位距离上像素的个数,则fx=αf,fy=βf将相机的焦距f,变换为在x,y方向上像素度量表示。另外,为了不失一般性,可以在相机的内参矩阵上添加一个扭曲参数γ,该参数用来表示像素坐标系两个坐标轴的扭曲。则内参数K变为
空间到图像的映射可以表示为
其中H是描述Homographic矩阵,可以通过最小二乘得到,从角点世界坐标系到图像坐标的关系求解。对一个给定的单应性矩阵,对内参有两个基本的约束条件,因为这个矩阵由8个自由度和6个外部参数(3个是旋转矩阵和3个是平移向量的),此时我们只能得到两个内参的约束条件。
二.张正友平面的相机标定方法
以下内容参考这篇论文解读:SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
张正友标定法论文,原文为“Flexible camera calibration by viewing a plane from
unknown orientations”
在张氏标定法中,用于标定的棋盘格是三维场景中的一个平面π,其在成像平面的像是另一个平面π,知道了两个平面的对应点的坐标,就可以求解得到两个平面的单应矩阵H。其中,标定的棋盘格是特制的,其角点的坐标是已知的;图像中的角点,可以通过角点提取算法得到,这样就可以得到棋盘平面Π和图像平面π的单应矩阵H。
通过上面的相机模型有:
p = K [ R ∣ t ] P p=K[R|t]P p=K[R∣t]P
其中p是像点坐标,P是标定的棋盘坐标。 这样就可以得到下面的等式:
H = K [ R ∣ t ] H=K[R|t] H=K[R∣t]
H表示的是成像平面和标定棋盘平面之间的单应矩阵。通过对应的点对解得H后,则可以通过上面的等式得到相机的内参数K,以及外参旋转矩阵R和平移向量t。
步骤:
- 给出一个封闭解
- 根据最大似然估计给出非线性的最优解
- 考虑透镜的径向畸变,给出解析解和非线性解
1.给出一个封闭解
定义一个矩阵B
注意,矩阵B是一个对称矩阵,其未知量只有6个,将6个未知量写为向量的形式
令hi为单应矩阵H的第i个行向量,则有
所以有:
有了上边的等式,再来看从一幅标定板图像得到的等式
写成矩阵的形式有:
上面的一幅标定板图像取得的约束等式,假如有n幅图像,则