相机内参的物理意义

文章目录

    • 相机内参的物理意义
    • 相机内参的变化

相机内参的物理意义

把相机坐标系下3D空间点投影到像素坐标系中,相机内参 K K K:
( α f 0 c x 0 β f c y 0 0 1 ) = ( f x 0 c x 0 f y c y 0 0 1 ) \left ( \begin {array}{ccc} \alpha f & 0 & c_x \\ 0 & \beta f & c_y \\ 0 & 0 & 1 \\ \end{array} \right ) = \left ( \begin {array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \\ \end{array} \right ) αf000βf0cxcy1=fx000fy0cxcy1

f f f的单位为米, α , β \alpha,\beta α,β的单位为像素/米,所以 f x , f y f_x,f_y fx,fy的单位为像素。

相机内参的变化

  1. 问题描述:如果一部相机的分辨率变为原来的 n n n倍而其他地方不变,那么它的内参将如何变化?
    结论: f x ′ = n f x , f y ′ = n f y , c x ′ = n c x , c y ′ = n c y f'_x = nf_x, \quad f'_y = n f_y, \quad c'_x = nc_x, \quad c'_y = nc_y fx=nfx,fy=nfy,cx=ncx,cy=ncy
  2. 数学推导
    以下函数把相机坐标系下3D空间点 P ( X , Y , Z ) P(X, Y, Z) P(X,Y,Z)投影到像素坐标系中:
    ( X , Y , Z ) → ( u , v , 1 ) (X, Y, Z) \rightarrow (u, v, 1) (X,Y,Z)(u,v,1)
    Z ( u v 1 ) = ( f x 0 c x 0 f y c y 0 0 1 ) ( X Y Z ) = K P . Z \left( \begin{array}{ccc} 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}{ccc} X \\ Y \\ Z \end{array} \right ) = KP. Zuv1=fx000fy0cxcy1XYZ=KP.
  • 相机坐标系到成像平面的变换
    由相机坐标系到像素坐标系的变换,先要经过相机坐标系到成像平面的变换,空间点 P P P在成像平面的投影点的坐标为 P ′ ( X ′ , Y ′ ) P'(X', Y') P(X,Y):
    ( X , Y , Z ) → ( X ′ , Y ′ ) (X, Y, Z) \rightarrow (X', Y') (X,Y,Z)(X,Y)
    Z f = X X ′ = Y Y ′ \frac{Z}{f} = \frac{X}{X'} = \frac{Y}{Y'} fZ=XX=YY
    X ′ , Y ′ X', Y' X,Y放到等式左侧,整理得
    X ′ = f X Z , Y ′ = f Y Z X'=f \frac{X}{Z}, \quad Y' = f\frac{Y}{Z} X=fZX,Y=fZY

Note:X’, Y’是经过等价变换后的坐标,即将相机成像平面上点的坐标对称地放到相机前方。

  • 成像平面到像素坐标系的变换
    像素坐标系通常的定义方式是:原点 o o o位于图像的左上角, u u u轴向右与 x x x轴平行, v v v轴向下与 y y y轴平行。
    像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。设像素坐标在 u u u轴上缩放了 α \alpha α倍,在 v v v轴上缩放了 β \beta β倍。同时,原点平移了 [ c x , c y ] T [c_x, c_y]^T [cx,cy]T。那么
    { u = α X ′ + c x v = β Y ′ + c y \begin{cases} u = \alpha X' + c_x \\ v = \beta Y' + c_y \end{cases} {u=αX+cxv=βY+cy
    f x = α f , f y = β f f_x = \alpha f, \quad f_y = \beta f fx=αf,fy=βf可得
    { u = f x X Z + c x v = f y Y Z + c y \begin{cases} u = f_x \frac{X}{Z} + c_x \\ v = f_y \frac{Y}{Z} + c_y \end{cases} {u=fxZX+cxv=fyZY+cy
  • 分辨率改变
    当分辨率变为原来的n倍时,像素坐标变化为
    ( u , v ) → ( u ′ , v ′ ) (u,v) \rightarrow (u',v') (u,v)(u,v)
    { u ′ = n u = n f x X Z + n c x = n α f X Z + n c x v ′ = n v = n f y Y Z + n c y = n α f Y Z + n c y \begin{cases} u' = nu = nf_x \frac{X}{Z} + nc_x = n \alpha f \frac{X}{Z} + nc_x \\ v' = nv = nf_y \frac{Y}{Z} + nc_y = n \alpha f \frac{Y}{Z} + nc_y \end{cases} {u=nu=nfxZX+ncx=nαfZX+ncxv=nv=nfyZY+ncy=nαfZY+ncy
    由上式可得结论:相机分辨率变为原来的n倍时,相机内参变为原来的n倍,即:
    f x ′ = n f x , f y ′ = n f y , c x ′ = n c x , c y ′ = n c y f'_x = nf_x, \quad f'_y = n f_y, \quad c'_x = nc_x, \quad c'_y = nc_y fx=nfx,fy=nfy,cx=ncx,cy=ncy
    因为相机焦距 f f f固定不变,因此可得:
    α ′ = n α , β ′ = n β , c x ′ = n c x , c y ′ = n c y \alpha' = n \alpha, \quad \beta' = n\beta, \quad c'_x = nc_x, \quad c'_y = nc_y α=nα,β=nβ,cx=ncx,cy=ncy

你可能感兴趣的:(SLAM)