
上图为针孔相机模型的成像原理图。
设 O−x−y−zO-x-y-zO−x−y−z 为相机坐标系,OOO 为相机的光心(同样也是针孔模型中的针孔)。现实世界的空间点 PPP ,经过光心 OOO 投影之后,落在了物理成像平面 O′−x′−y′O^{\prime}-x^{\prime}-y^{\prime}O′−x′−y′ 上,成像点为 P′P'P′ 。
设空间点 PPP 的坐标为 [X,Y,Z]T[X, Y, Z]^{T}[X,Y,Z]T,P′P'P′ 的坐标为 [X′,Y′,Z′]T[X', Y', Z']^{T}[X′,Y′,Z′]T,并且设物理成像平面到光心的距离(即焦距)为 fff 。那么由三角形相似关系有:
Zf=−XX′=−YY′(1) \frac{Z}{f}=-\frac{X}{X^{\prime}}=-\frac{Y}{Y^{\prime}} \tag{1} fZ=−X′X=−Y′Y(1)
其中负号表示成的像是倒立的。为了简化模型,我们可以把成像平面对称到相机前方,和三维空间点一起放在摄像机坐标系的同一侧(如下图所示)。

简化之后去掉负号,便可以得到:
Zf=XX′=YY′(2) \frac{Z}{f}=\frac{X}{X^{\prime}}=\frac{Y}{Y^{\prime}} \tag{2} fZ=X′X=Y′Y(2)
整理之后,有:
X′=fXZY′=fYZ(3) \begin{aligned} &X^{\prime}=f \frac{X}{Z} \\ &Y^{\prime}=f \frac{Y}{Z} \end{aligned} \tag{3} X′=fZXY′=fZY(3)
上面公式表示的是空间中的点 PPP 和它在成像平面对应的点 P′P'P′ 之间的几何关系。当时在相机中,图片是由一个个像素表示的,因此还需要在成像平面上进行采样和量化。下图是成像平面坐标系和像素平面坐标系的图示,两者有以下区别:
- 单位不一样:成像平面坐标系的单位是米,像素坐标系的单位是像素
- 坐标系原点的位置不一样:成像平面坐标系的原点在中心,像素坐标系的原点在左上方

因此,为了将成像平面上的点转换到像素坐标系上,需要进行单位之间转换的缩放和原点的平移。
假设成像平面坐标系为 O′−x′−y′O^{\prime}-x^{\prime}-y^{\prime}O′−x′−y′ ,像素坐标系为 o−u−vo-u-vo−u−v。假设成像平面坐标系转换到像素坐标系 uuu 轴上缩放了 α\alphaα 倍,转换到像素坐标系 vvv 轴上缩放了 β\betaβ 倍,原点平移了 [cx,cy]T\left[c_{x}, c_{y}\right]^{T}[cx,cy]T(单位:像素)。那么 P′P'P′ 的坐标与像素坐标 [u,v]T[u, v]^{T}[u,v]T 的关系为:
{u=αX′+cxv=βY′+cy(4) \left\{\begin{array}{l} u=\alpha X^{\prime}+c_{x} \\ v=\beta Y^{\prime}+c_{y} \end{array}\right. \tag{4} {u=αX′+cxv=βY′+cy(4)
将 (3) 式代入 (4) 中,并将 αf\alpha fαf 记为 fxf_xfx,βf\beta fβf 记为 fyf_yfy,可得:
{u=fxXZ+cxv=fyYZ+cy(5) \left\{\begin{array}{l} u=f_{x} \frac{X}{Z}+c_{x} \\ v=f_{y} \frac{Y}{Z}+c_{y} \end{array}\right. \tag{5} {u=fxZX+cxv=fyZY+cy(5)
其中,fff 的单位是米, α\alphaα 、 β\betaβ 的单位是像素/米,所以 fxf_xfx 和 fyf_yfy 的单位为像素。
为了使得公式更加简洁,可以将该式写成矩阵形式,不过左侧需要用到齐次坐标:
(uv1)=1Z(fx0cx0fycy001)(XYZ)≜1ZKP(6) \left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)=\frac{1}{Z}\left(\begin{array}{ccc} f_{x} & 0 & c_{x} \\ 0 & f_{y} & c_{y} \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{c} X \\ Y \\ Z \end{array}\right) \triangleq \frac{1}{Z} \boldsymbol{K} \boldsymbol{P} \tag{6} ⎝⎛uv1⎠⎞=Z1⎝⎛fx000fy0cxcy1⎠⎞⎝⎛XYZ⎠⎞≜Z1KP(6)
按照传统习惯,可以将 ZZZ 移到等式左边,则有:
Z(uv1)=(fx0cx0fycy001)(XYZ)≜KP(7) Z\left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)=\left(\begin{array}{ccc} f_{x} & 0 & c_{x} \\ 0 & f_{y} & c_{y} \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{l} X \\ Y \\ Z \end{array}\right) \triangleq \boldsymbol{K} \boldsymbol{P} \tag{7} Z⎝⎛uv1⎠⎞=⎝⎛fx000fy0cxcy1⎠⎞⎝⎛XYZ⎠⎞≜KP(7)
上式中,中间的量组成的矩阵 K\boldsymbol{K}K 被称为相机的内参矩阵(Camera Intrinsics)。
参考文献:视觉SLAM十四讲
针孔相机模型与成像原理

本文详细介绍了针孔相机模型的成像原理,从空间点到成像平面的几何关系,再到像素坐标系的转换。通过数学公式阐述了空间点与像素坐标之间的联系,包括内参矩阵的作用,并提及了相机内参矩阵(K)在图像处理中的重要性。
5929

被折叠的 条评论
为什么被折叠?



