建立相机坐标系 $O_{xyz}$ ,以其中 $z$ 轴指向相机前方,$x$ 轴向右,$y$ 轴向下,坐标原点 $O$ 为相机光心,也是针孔相机模型的针孔。

物理成像平面 $O'_{x'y'}$ 位于坐标系 $O_{xyz}$ 下 $z = -f$ 所在的平面,其中 $f$ 为相机的焦距。

空间中点 $P(x_p, y_p, z_p)$ ,经过针孔,投影到 $O'_{x'y'}$ 平面,成像为点 $P'(x'_p, y'_p, z'_p)$,根据相似三角形,有

$$ -\frac{z_p}{z'_p} = \frac{z_p}{f} = -\frac{x_p}{x'_p} = -\frac{y_p}{y'_p} \tag{1} $$

可以看出,此时,成像与为上下颠倒、左右镜像。实际相机得到的图像并不是倒相,为此,为了让模型更符合实际,可以等价地把成像平面对称的放到相机前方,即 $O_{xyz}$ 下 $z = f$ 所在的平面,这样可以把公式中的负号去掉,即

$$ \frac{z_p}{z'_p} = \frac{z_p}{f} = \frac{x_p}{x'_p} = \frac{y_p}{y'_p} \tag{2} $$

整理得

$$ \begin{align} x'_p = f \frac{x_p}{z_p} \\ y'_p = f \frac{y_p}{z_p} \end{align} \tag{3} $$

式 $(1) - (3)$ 中点坐标的单位为,在相机中,最后得到一个一个像素,因此,还需要在成像平面上对所成像进行采样和量化。物理成像平面上的像素坐标定义为 $O'_{uv}$,在像素平面上 $P'$ 的坐标为 $(u_p, v_p)$ 。

设像素坐标在 $u$ 轴上缩放 $\alpha$ 倍,平移 $c_x$;在 $v$ 坐标上缩放 $\beta$ 倍,平移 $c_y$, $\alpha$、$\beta$ 的单位为 像素/米。则

$$ \begin{align} u_p = \alpha x'_p + c_x \\ v_p = \beta y'_p + c_y \end{align} \tag{4} $$

联立 $(3) - (4)$ 得

$$ \begin{align} u_p = \alpha f \frac{x_p}{z_p} + c_x \\ v_p = \beta f \frac{y_p}{z_p} + c_y \end{align} \tag{5} $$

令 $f_x = \alpha f$,$f_y = \beta f$,上式可简化为

$$ \begin{align} u_p = f_x \frac{x_p}{z_p} + c_x \\ v_p = f_y \frac{y_p}{z_p} + c_y \end{align} \tag{6} $$

将式 $(6)$ 改为矩阵形式,

$$ \begin{bmatrix} u_p \\ v_p \\ 1 \end{bmatrix} = \frac{1}{z_p} \begin{bmatrix} f_x & 0 & c_x \\0 & f_y & c_y \\0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_p \\ y_p \\ z_p \end{bmatrix} \tag{7} $$

中间的量组成的矩阵称为相机内参矩阵

参考

[1]高翔等. 视觉SLAM十四讲:从理论到实践. 电子工业出版社, 2019.

标签: 相机模型

添加新评论