针孔相机投影模型

2022-11-26

为什么图像降采样后,相机内参需要等比例变换

——————————
本文将涉及 3 个坐标系——相机、图像和世界坐标系。

相机:透视投影(perspective projection)

[ x c y c f ] = λ [ X c Y c Z c ] \begin{bmatrix} x_c \\y_c \\ f \end{bmatrix}= \lambda\begin{bmatrix} X_c \\Y_c\\ Z_c \end{bmatrix} xcycf=λXcYcZc
上面的式子,是要取向量相等,则各元素相等。并不是齐次坐标的 up to a scale。
其中,
X c = [ X c Y c Z c ] \mathbf{X}_c =\begin{bmatrix} X_c \\Y_c\\ Z_c \end{bmatrix} Xc=XcYcZc
是三维场景下的点 X \mathbf{X} X相机坐标系下的坐标。
λ = f Z \lambda=\frac{f}{Z} λ=Zf
在这里插入图片描述
这可以用一个关于齐次坐标线性映射来表示(等式左右两边相差一个常数,the equation is only up to a scale factor)
[ x c y c f ] ⋍ [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ X c Y c Z c 1 ] \begin{bmatrix} x_c \\y_c \\ f \end{bmatrix} \backsimeq \begin{bmatrix} 1& 0 & 0& 0\\ 0&1&0&0\\ 0&0&1&0 \end{bmatrix} \begin{bmatrix} X_c \\Y_c \\ Z_c\\1 \end{bmatrix} xcycf100010001000XcYcZc1

图像(相机内部参数,intrinsic/internal camera parameters)

注意,上面的 [ x c , y c ] \begin{bmatrix} x_c ,y_c \end{bmatrix} [xc,yc]
是在图 2 中 y c p x c y_c p x_c ycpxc坐标系下的二维坐标。
k u x c = u − u 0 k_u x_c=u-u_0 kuxc=uu0
k v y c = v 0 − v k_v y_c=v_0-v kvyc=v0v
其中 k k k 的单位是
[ p i x e l s / l e n g t h ] [pixels/length] [pixels/length]
pixels是指高度或者宽度方向上的像素数目,length是指图像的高度值或宽度值(单位为米)。

注意:上面的 u , v , u 0 , v 0 u,v,u_0,v_0 u,v,u0,v0 是同一个点在 uv 坐标系下的坐标。

x c , y c x_c,y_c xc,yc 是在 x c p y c x_c p y_c xcpyc 坐标系下的坐标。在一个等式中,出现了同一个点在不同坐标系下的坐标。

在这里插入图片描述

上式可以表示为
x = [ u v 1 ] = [ f k u 0 u 0 0 − f k v v 0 0 0 1 ] [ x c y c f ] = C [ x c y c f ] \mathbf{x}=\begin{bmatrix} u \\ v\\1 \end{bmatrix}= \begin{bmatrix} fk_u & 0 & u_0\\ 0 & -fk_v & v_0\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_c \\ y_c \\f \end{bmatrix}= \mathbf{C}\begin{bmatrix} x_c\\y_c\\f \end{bmatrix} x=uv1=fku000fkv0u0v01xcycf=Cxcycf

C \mathbf{C} C 是一个 3 × 3 3\times3 3×3上三角矩阵,称作相机标定矩阵。
C = [ α u 0 u 0 0 α v v 0 0 0 1 ] \mathbf{C}=\begin{bmatrix} \alpha_u & 0 & u_0 \\ 0 &\alpha_v & v_0\\ 0 & 0 &1 \end{bmatrix} C=αu000αv0u0v01

其中, α u = f k u , α v = − f k v \alpha_u=fk_u,\alpha_v=-fk_v αu=fku,αv=fkv

  • C \mathbf{C} C 提供了在一个 image 点和一条射线( ( x c , y c , f ) (x_c,y_c,f) (xc,yc,f))在 3 维欧几里得空间中的变换。:一个三维坐标 ( x c , y c , f ) (x_c,y_c,f) (xc,yc,f) 既可以表示一个三维坐标系中三位点的坐标,也可以表示该从原点出发指向该点的向量。
  • 一共有 4 个参数:1. 沿着图像 x , y x,y x,y 方向的放缩参数 α u , α v \alpha_u,\alpha_v αu,αv。主点(principal point( u 0 , v 0 u_0,v_0 u0,v0)),是光轴(optic axis)和图像平面的交点。高宽比(sapect ratio)是 α v . α u \alpha_v.\alpha_u αv.αu
  • 如果 C \mathbf{C} C已知,就称相机已经标定
  • 校准摄像机是一个方向传感器,能够测量射线的方向。

世界(相机外部参数,extrinsic/external camera parameters)相机与世界坐标系之间的欧几里得变换是 X c = R X W + t X_c=RX_W+t Xc=RXW+t

[ X c Y c Z c 1 ] = [ R t 0 T 1 ] [ X w Y w Z w 1 ] \begin{bmatrix} X_c\\ Y_c \\ Z_c\\1 \end{bmatrix}= \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T &1 \end{bmatrix} \begin{bmatrix} X_w\\ Y_w \\ Z_w\\1 \end{bmatrix} XcYcZc1=[R0Tt1]XwYwZw1
在这里插入图片描述

总结

最终,

x = [ u v 1 ] = C [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ R t 0 T 1 ] [ X w Y w Z w 1 ] = C [ R ∣ t ] [ X w Y w Z w 1 ] \mathbf{x}=\begin{bmatrix} u \\ v\\1 \end{bmatrix} = \mathbf{C}\begin{bmatrix} 1& 0 & 0& 0\\ 0&1&0&0\\ 0&0&1&0 \end{bmatrix} \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T &1 \end{bmatrix} \begin{bmatrix} X_w\\ Y_w \\ Z_w\\1 \end{bmatrix}= \mathbf{C} [\mathbf{R}\mid\mathbf{t}]\begin{bmatrix} X_w\\ Y_w \\ Z_w\\1 \end{bmatrix} x=uv1=C100010001000[R0Tt1]XwYwZw1=C[Rt]XwYwZw1
上面定义了 3 × 4 3\times4 3×4投影矩阵:从 3 维欧几里得空间到一张图像
x = P [ X 1 ] \mathbf{x}=\mathbf{P}\begin{bmatrix} \mathbf{X}\\1 \end{bmatrix} x=P[X1]

P = C [ R ∣ t ] \mathbf{P}=\mathbf{C} [\mathbf{R}\mid\mathbf{t}] P=C[Rt]

参考资料

  • https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/EPSRC_SSAZ/node3.html
  • 《视觉SLAM十四讲》
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值