QiuQiu

Robotics - Sensing - pinhole model

Pinhole model 得到的不是 general projective camera,而是具有有限相机中心的、带结构的 finite

  > camera model。

  另外,“与真实相机大相径庭”稍微说重了。物理结构确实不同,但在几何成像关系上,很多普通相机经过

  标定和畸变校正后,可以很好地近似成针孔模型。

  建议把笔记改成下面这样。

  ———

  ## Pinhole Camera Model

  Pinhole camera model 是一个理想化的中心投影模型。它不直接描述镜片、光圈、景深、衍射、模糊、镜

  头畸变、rolling shutter 和像素采样等物理过程,而只描述:

  > 一个三维空间点如何通过单一投影中心映射到二维图像。

  许多普通物理相机在一定条件下,可以近似建模为:

  [

  \text{Pinhole projection}+\text{lens distortion}

  ]

  所以这里最好用“近似建模”,而不是“完全等效”。

  ### 学习 Pinhole model 前需要区分

  四套坐标:

  1. World coordinate:世界坐标

  2. Camera coordinate:相机坐标

  3. Normalized image coordinate:归一化图像坐标

  4. Pixel coordinate:像素坐标

  以及这些几何对象:

  - camera centre:相机中心

  - image plane:像平面

  - focal length:焦距

  - principal axis:主轴,是一条三维直线

  - principal point:主轴与像平面的交点

  - homogeneous coordinates:齐次坐标

  整个成像过程可以拆成:

  [

  \mathbf X_w

  \xrightarrow{T_{cw}\in SE(3)}

  \mathbf X_c

  \xrightarrow{\text{perspective division}}

  \mathbf x_n

  \xrightarrow{K}

  \mathbf x

  ]

  即:

  [

  \mathbf X_c=R\mathbf X_w+\mathbf t

  ]

  [

  x_n=\frac{X_c}{Z_c},

  \qquad

  y_n=\frac{Y_c}{Z_c}

  ]

  [

  \mathbf x\sim K[R\mid t]\mathbf X_w

  ]

  定义:

  [

  P=K[R\mid t]

  ]

  因此:

  [

  \boxed{\mathbf x\sim P\mathbf X_w}

  ]

  但这里的 (P) 首先是一个 finite pinhole/projective camera matrix,而不是任意的 general

  projective camera。

  两者的层级是:

  [

  \text{basic pinhole}

  \subset

  \text{finite projective camera}

  \subset

  \text{general projective camera}

  ]

  - 针孔/有限相机:

  [

  P=[M\mid p_4],\qquad \det(M)\neq0

  ]

  相机中心是有限点。

  - 一般射影相机:

  [

  P\in\mathbb R^{3\times4},

  \qquad \operatorname{rank}(P)=3

  ]

  它只要求秩为 3,允许 (M) 奇异,因此还包括相机中心位于无穷远处的模型。

  你引用的 HediVision 页面 (https://hedivision.github.io/Pinhole.html) 本身也有几个小问题:

  - (\mathbf t) 是平移向量,不是“translation matrix”。

  - (\mathbf t) 不直接等于相机位置;相机中心为:

  [

  \mathbf C=-R^T\mathbf t

  ]

  - 页面说 9 个自由度,只在 (K) 只有 (f,p_x,p_y) 三个参数时成立。

  - 完整 finite projective camera 通常是:

  [

  5\text{ 个内参}+6\text{ 个外参}=11\text{ DoF}

  ]

  所以最后一句最好改成:

  > Pinhole model 最终得到结构化的有限相机矩阵

  > [

  > P=K[R\mid t]

  > ]

  > 将其约束进一步放松,才得到任意秩为 3 的 general projective camera matrix。