VPI - 视觉编程接口

3.2 版本

针孔相机模型

针孔相机模型描述了一种相机,它通过透视变换将场景 3D 点投影到图像平面上。它可以用以下公式描述:

\begin{align*} s \mathsf{p} &= \mathsf{K} [ \mathsf{R} | \mathsf{t} ] \mathsf{P} \end{align*}

或者

\begin{align*} s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} &= \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \\ (x_d,y_d) &= L(\tilde{x},\tilde{y}) \end{align*}

其中

  • \((X,Y,Z)\) 是世界空间中 3D 点的坐标。
  • \((u,v)\) 是 \((X,Y,Z)\) 在图像平面上的投影坐标(以像素为单位)。
  • \(\mathsf{K}\) 是一个 3x3 的内参相机参数矩阵。
  • \([R|t]\) 是一个 3x4 的外参相机参数矩阵,将世界空间映射到相机空间。它由 3D 旋转和平移组成。
  • \((c_x,c_y)\) 是相机的 Principal Point(主点),单位为像素,它是相机原点在图像平面上的投影。通常位于图像中心。
  • \(f_x,f_y\) 分别是相机的水平和垂直焦距,单位为像素。
  • \(s\) 是一个比例因子。