zoukankan      html  css  js  c++  java
  • 摄像机模型 (Camera Model)

         摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换描述,即摄像机成像模型。摄像机成像模型有不同描述方式,本节首先介绍机器视觉中的常用坐标系,然后介绍摄像机的线性模型和非线性模型。

    1. 图像坐标系、摄像机坐标系和世界坐标系
    2. 针孔成像模型
    3. 非线性模型

    1,图像坐标系、摄像机坐标系和世界坐标系

         摄像机采集的图像在计算机内为MxN数组,M行N列的图像中的每一个像素的数值即是图像点的亮度。如下图所示,在图像上定义直角坐标系u、v,每一像素的坐标((u,v))分别是该像素在数组中的列数与行数。所以,((u,v))是以像素为单位的图像坐标系

    由于((u,v))只表示像素位于数组中的列数与行数,并没有用物理单位表示出该像素在图像中的位置。因此需要再建立以物理单位(如毫米)表示的图像坐标系。该坐标系以图像内某一点(O_1)为原点,X轴和Y轴分别与u、v轴平行,如上图所示。其中((u,v))表示以像素为单位的图像坐标系的坐标,((X,Y))表示以毫米为单位的图像坐标系的坐标。在X、Y坐标系中,原点(O_1)定义在摄像机光轴与图像平面的交点,该点一般位于图像中心处,但由于某些原因,也会有些偏离,若(O_1)在u、v坐标系中坐标为((u_0, v_0)),每一个像素在X轴与Y轴方向上的物理尺寸为dX、dY,则图像中的任意一个像素在两个坐标系下的坐标有如下关系:

    ( left{egin{matrix} u = frac{X}{dX} + u_0 \ v = frac{Y}{dY} + v_0 end{matrix} ight. )

    为以后使用方便,用齐次坐标与矩阵形式将上式表示为

    (egin{bmatrix} u \ v \ 1 end{bmatrix} = egin{bmatrix} frac{1}{dX} 0 u_0 \ 0 frac{1}{dY} v_0 \ 0 0 1 end{bmatrix} egin{bmatrix} X \ Y \ 1 end{bmatrix} )

         摄像机成像几何关系可下图表示,其中O点成为摄像机光心,x轴和y轴与图像的X轴和Y轴平行,z轴为摄像机光轴,它与图像平面垂直。光轴与图像平面的交点即为图像坐标系的原点,由点O与x、y、z轴组成的直角坐标系称为摄像机坐标系。(OO_1)为摄像机焦距。

         由于摄像机可安放在环境中的任意位置,在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,该坐标系称为世界坐标系。它由(X_w)、(Y_w)、(Z_w)轴组成。摄像机坐标系与世界坐标系之间的关系可以用旋转矩阵R和平移向量t来描述。因此,空间中某一点P在世界坐标系与摄像机坐标系的齐次坐标如果分别是(X_w=(X_w, Y_w, Z_w, 1)^T)与(x = (x, y, z, 1)^T),则存在如下关系:

    (egin{bmatrix} x \ y \ z \ 1 end{bmatrix} = egin{bmatrix} R t \ 0^T 1 end{bmatrix} egin{bmatrix} X_w \ Y_w \ Z_w \ 1 end{bmatrix} = M_2egin{bmatrix} X_w \ Y_w \ Z_w \ 1 end{bmatrix} )

    其中,(R )为(3 imes 3)正交单位矩阵;(t)为三维平移向量;(0 = (0, 0, 0)^T);(M_2)为(4 imes4 )矩阵

    2,针孔成像模型

        针孔成像模型又称为线性摄像机模型。空间任何一点P在图像中的成像位置可以用针孔成像模型近似表示,即任何点P在图像中的投影位置p,为光心O与P点的连线OP与图像平面的交点。这种关系也称为中心射影或透视投影(perspective projection)。由比例关系有如下关系式:

    (left{egin{matrix} X = frac{fx}{z} \ Y = frac{fy}{z} end{matrix} ight. )

    其中,((X,Y))为p点的图像坐标;((x, y, z))为空间点P在摄像机坐标系下的坐标,(f)为(xy)平面与图像平面的距离,一般称为摄像机的焦距。用齐次坐标和矩阵表示上述透视投影关系

    (segin{bmatrix} X \ Y \ 1 end{bmatrix} = egin{bmatrix} f 0 0 0 \ 0 f 0 0 \ 0 0 1 0 end{bmatrix} egin{bmatrix} x \ y \ z \ 1 end{bmatrix} = P egin{bmatrix} x \ y \ z \ 1 end{bmatrix} )

    其中,s为一比例因子,P为透视投影矩阵。将第一节中的矩阵公式代入上式,得到以世界坐标系表示的P点坐标与其投影点p的坐标((u,v))的关系

    (segin{bmatrix} u \ v \ 1 end{bmatrix} = egin{bmatrix} frac{1}{dX} 0 u_0 \ 0 frac{1}{dY} v_0 \ 0 0 1 end{bmatrix} egin{bmatrix} f 0 0 0 \ 0 f 0 0 \ 0 0 1 0 end{bmatrix} egin{bmatrix} R t \ 0^T 1 end{bmatrix} egin{bmatrix} X_w \ Y_w \ Z_w \ 1 end{bmatrix} = egin{bmatrix} a_x 0 u_0 0 \ 0 a_y v_0 0 \ 0 0 1 0 end{bmatrix} egin{bmatrix} R t \ 0^T 1 end{bmatrix} egin{bmatrix} X_w \ Y_w \ Z_w \ 1 end{bmatrix} = M_1 M_2 X_w = MX_w )

    其中,(a_x = f / dX)为u轴上尺度因子,或称为u轴上归一化焦距;(a_y=f / dY)为v轴上的尺度因子,或成为v轴上归一化焦距;(M)为(3 imes 3)矩阵,成为投影矩阵;(M_1)由(a_x)、(a_y)、(u_0)、(v_0)决定,由于这四个参数只与摄像机内部参数有关,称这些参数为摄像机内部参数;(M_2)由摄像机相对于世界坐标系的方位决定,称为摄像机外部参数。确定某一摄像机的内外参数,称为摄像机标定

        由上式可知,如果已知某空间点P的图像点p的位置((u,v)),即使已知摄像机的内外参数,(X_w)也是不确定的。事实上,由于(M)是(3 imes 4 )不可逆矩阵,当已知(M)和((u,v))时,消去z只可得到关于(X_w)、(Y_w)、(Z_w)的两个线性方程,由着两个线性方程组成的方程组即为射线OP的方程,也就是说,投影点为p的所有点均在该射线上。当已知图像点p时,由针孔成像模型,任何位于射线OP上的空间点的图像都是p点。因此,该空间点是不能唯一确定的。

    3,非线性模型

         实际上,由于实际的镜头并不是理想的透视成像,而是带有不同程度的畸变,使得空间点所成的像并不在线性模型所描述的位置(X, Y),而是在受到镜头失真影响而偏移的实际像平面坐标(X', Y')

    ( left{egin{matrix} X=X'+delta x \ Y = Y' +delta y end{matrix} ight. )

    其中,( delta x)和(delta y)是非线性畸变值,它与图像点再图像中的位置有关。理论上镜头会同时存在径向畸变和切向畸变。但一般来讲切向畸变比较小,径向畸变的修正量由距图像中心的径向距离的偶次幂多项式模型来表示

    (left{egin{matrix} delta x = (X'-u_0)(k_1 r^2+k_2 r^4 + cdots \ delta y = (Y'-v_0)(k_1 r^2 + k_2 r^4 + cdots end{matrix} ight. )

    其中,(u_0, v_0)是主点位置坐标的精确值,而

    (r^2 = (X'-u_0)^2 + (Y'-v_0)^2 )

    表明X方向和Y方向的畸变相对值(delta x / X, delta y / Y)与径向半径的平方成正比,即在图像边缘处的畸变较大。对一般机器视觉,一阶径向畸变已足够描述非线性畸变,即省略上式中大于等于4的高次项。

         线性模型参数(alpha _x)、(alpha _y)、(u_0)、(v_0)与非线性畸变参数(k_1)和(k_2)一起构成了摄像机非线性模型的内部参数。

  • 相关阅读:
    JDK+Jmeter 环境搭建
    APP自动化中三大定位工具
    APP自动化环境配置
    pytest生成allure报告
    pytest怎么标记用例?
    pytest中怎么实现参数化?
    pytest中怎么引用前置中的变量
    pytest_前置后置
    toast文本提示信息元素获取
    js处理日历
  • 原文地址:https://www.cnblogs.com/dingyivision/p/5991990.html
Copyright © 2011-2022 走看看