针孔相机模型和相机内参矩阵K

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

在这里插入图片描述

上图为针孔相机模型的成像原理图。

O−x−y−zO-x-y-zOxyz 为相机坐标系,OOO 为相机的光心(同样也是针孔模型中的针孔)。现实世界的空间点 PPP ,经过光心 OOO 投影之后,落在了物理成像平面 O′−x′−y′O^{\prime}-x^{\prime}-y^{\prime}Oxy 上,成像点为 P′P'P

设空间点 PPP 的坐标为 [X,Y,Z]T[X, Y, Z]^{T}[X,Y,Z]TP′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=XX=YY(1)

其中负号表示成的像是倒立的。为了简化模型,我们可以把成像平面对称到相机前方,和三维空间点一起放在摄像机坐标系的同一侧(如下图所示)。

在这里插入图片描述

简化之后去掉负号,便可以得到:

Zf=XX′=YY′(2) \frac{Z}{f}=\frac{X}{X^{\prime}}=\frac{Y}{Y^{\prime}} \tag{2} fZ=XX=YY(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}Oxy ,像素坐标系为 o−u−vo-u-vouv。假设成像平面坐标系转换到像素坐标系 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_xfxfyf_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=Z1fx000fy0cxcy1XYZZ1KP(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} Zuv1=fx000fy0cxcy1XYZKP(7)

上式中,中间的量组成的矩阵 K\boldsymbol{K}K 被称为相机的内参矩阵(Camera Intrinsics)。

参考文献:视觉SLAM十四讲

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值