美文网首页摄像头一起折腾传感器
单目相机标定___一、原理

单目相机标定___一、原理

作者: SIENTIST | 来源:发表于2018-08-31 23:30 被阅读0次


    相机标定目的:
    获取摄像机的内参和外参矩阵,同时也会得到每一副标定图像的旋转和平移矩阵。 内参和外参可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像。

    原理:
    成像模型的坐标系为:世界坐标系 --> 相机坐标系 --> 图像坐标系 --> 像素坐标系

    先说从相机坐标系到图像坐标系的变换:
    从针孔成像模型说起:




    ————————————————————————————
    相机坐标系中实际的点坐标为Q(X, Y, Z)
    对应的图像(坐标系)平面上的点为 q(x, y , f)

    理想情况如上所示,但实际上成像芯片的中心通常不在光轴上。




    原本的焦距是f,这里把f拆成2个不同的焦距,一个是x轴的焦距,一个是y轴的焦距



    因此最终计算的结果为:

    将实际中的点Q(X, Y, Z)映射到投影平面上坐标为 (x , y)的点的过程称为投影变换。

    这种变换可以使用齐次坐标。




    给q(x, y)增加了一个维度w,即为q(x, y, w)




    下图所示,网上一些资料中也有这种形式:
    x0、y0为在图像平面上的主点坐标,是Cx,Cy的另一种形式,
    其中s为坐标轴倾斜参数,理想情况下为0,其他参数都是一样的。


    —————————————————————————————————
    我们已经得到了内参矩阵,能够从相机坐标系转换到图像坐标系上,
    接下来说如何得到外参矩阵,将其从世界坐标系转换到相机坐标系上

    从世界坐标系转换到相机坐标系上属于刚体变换,即不会发生形变,也就是说只有旋转平移

    公式符号说明:
    带有下标 w 的是世界坐标系
    带有下标 c 的是相机坐标系
    
    设旋转矩阵为 R, 平移矩阵为 T
    

    再把偏移矩阵T加上即可,
    偏移矩阵T为 [Tx, Ty, Tz]的转置,是X、Y、Z方向上的平移。



    将旋转矩阵R和偏移矩阵T合起来即得外参矩阵即为:



    ——————————————————————————————————
    图像坐标系和像素坐标系之间的转换:
    像素坐标系和图像坐标系都在成像平面上,只是各自的原点和度量单位不一样。
    图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点或者叫principal point。图像坐标系的单位为mm,属于物理单位,
    而像素坐标系的单位是pixel,我们平常描述一个像素点都是几行几列。所以
    这两者之间的转换如下:其中dx和dy表示每一列和每一行分别代表多少mm,即1pixel = dx mm
    点(u,v)为像素坐标系上的点,对应的图像坐标系上的点为(x,y)


    ——————————————————————————————————————
    有了一系列参数后就能推导整个公式了。(这里借用一下别人的图)

    相机的内参和外参可以通过张正友标定获取。通过最终的转换关系来看,
    一个三维世界中的坐标点,可以在图像中找到一个对应的像素点,

    在知道摄像机高度的情况下,单目相机能够测距
    /*
    以下为曾经的错误观点
    但是反过来,通过图像中的一个点找到它在三维中对应的点就很困难,因为我们并不知道等式左边的Zc值。这个Zc可近似看做相机坐标系中相机到物体的距离。

    在我看来,二维图像中的一个点,对应在三维空间中是一条线,因此如果不知道相机剧被测物体距离,是无法从二维图像上的点推导出三维空间中某个点的坐标的。
    */
    ————————————————————————————————
    透镜畸变
    (写了这么多,写不动了,透镜畸变原理可以在《学习OpenCV》第11章找到相关内容,挺详细的)



    相关文章

      网友评论

        本文标题:单目相机标定___一、原理

        本文链接:https://www.haomeiwen.com/subject/zcvewftx.html