zoukankan      html  css  js  c++  java
  • 摄像头标定技术

    摄像头标定技术

    摄像头作为一种高端的数码产品已经深深地融入了我们的生活当中,随着科技的不断发展,摄像头的成像技术也越来越成熟,很多时候,我们只能很表面的看到这台或者那台摄像头成像请不清晰,像素高不高,其实这些参数在很大程度上决定于摄影的成像技术,而成像技术中有一项很专业的问题,就是摄像头的标定,就是通过摄像头在传感器上的成像来计算真实世界中各个物体的距离与参数。

     相机标定就是确定相机内参和外参的过程,其结果精度会直接影响视觉系统后续工作的准确性。

    坐标系

    相机标定涉及到了四大坐标系,分别为:

    像素坐标系

     图像物理坐标系

     相机坐标系

     世界坐标系

      为了进行相机标定,必须已知世界坐标系中足够多的三维空间点坐标,找到这些空间点在图像中投影点的二维图像坐标,并建立对应关系。世界坐标系中某个给定点投影到图像坐标系中被分为两个步骤:

     标定方法优点缺点常用方法传统相机标定法可使用于任意的相机模型、 精度高需要标定物、算法复杂Tsai两步法、张氏标定法主动视觉相机标定法不需要标定物、算法简单、鲁棒性高成本高、设备昂贵主动系统控制相机做特定运动相机自标定法灵活性强、可在线标定精度低、鲁棒性差分层逐步标定、基于Kruppa方程

    1.  Tsai两步法是先线性求得相机参数,之后考虑畸变因素,得到初始的参数值,通过非线性优化得到最终的相机参数。Tsai两步法速度较快,但仅考虑径向畸变,当相机畸变严重时,该方法不适用。

    2.  张氏标定法使用二维方格组成的标定板进行标定,采集标定板不同位姿图片,提取图片中角点像素坐标,通过单应矩阵计算出相机的内外参数初始值,利用非线性最小二乘法估计畸变系数,最后使用极大似然估计法优化参数。该方法操作简单,而且精度较高,可以满足大部分场合。

    3.  基于主动视觉的相机标定法是通过主动系统控制相机做特定运动,利用控制平台控制相机发生特定的移动拍摄多组图像,依据图像信息和已知位移变化来求解相机内外参数。这种标定方法需要配备精准的控制平台,因此成本较高。

    4.  分层逐步标定法是先对图像的序列做射影重建,在重建的基础上进行放射标定和欧式标定,通过非线性优化算法求得相机内外参数。由于初始参数是模糊值,优化算法收敛性不确定。

    5.  基于Kruppa的自标定法是通过二次曲线建立关于相机内参矩阵的约束方程,至少使用3对图像来标定相机。图像序列长度会影响标定算法的稳定性,无法保证射影空间中的无穷远平面。

    总结

    利用摄像头所拍摄到的图像来还原空间中的物体。在这里,不妨假设摄像头所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵M可以看成是摄像头成像的几何模型。M中的参数就是摄像头参数。通常,这些参数是要通过实验与计算来得到的。这个求解参数的过程就称为摄像头标定。

      摄像头的标定问题是机器视觉领域的入门问题,可以分为传统的摄像头定标方法和摄像头自定标方法。定标的方法有很多中常见的有:Tsai(传统)和张正友(介于传统和自定标)等,摄像头成像模型和四个坐标系(通用原理)。

      摄像头模型采用经典的小孔模型,像面π表示的是视野平面,其到光心的距离为f(镜头焦距)。

      四个坐标系分别为:世界坐标系(Ow),摄像头坐标系(Oc),图像物理坐标系(O1,单位mm),图像像素坐标系(O,位于视野平面的左上角,单位pix)。

      空间某点P到其像点p的坐标转换过程主要是通过这四套坐标系的三次转换实现的,首先将世界坐标系进行平移和转换得到摄像头坐标系,然后根据三角几何变换得到图像物理坐标系,最后根据像素和公制单位的比率得到图像像素坐标系。(实际的应用过程是这个的逆过程,即由像素长度获知实际的长度)。

      通过摄像头的标定,可以得到视野平面上的mm/pix分辨率,对于视野平面以外的物体还是需要通过坐标转换得到视野平面上。

      其中计算摄像头标定技术的最基本的一个方法就是通过小孔成像的原理,何为小孔成像,就是光通过一个很小的孔后,能够在另外一块板上投射出一个完整的物象,这就叫做小孔成像,而这种成像技术中,有一个很重要的参数,就是角度,所有物体的投射都要受到这个角度的影响,所以,我们通过计算这个角度,就能够计算出真实世界中各个物体之间的真实距离,如果有未知的参数,就用方程组来求得。

     

  • 相关阅读:
    CreateDIBSection函数
    rand()和srand()GetTickCount函数用法
    PRIMARY LANGUAGE ID not a number
    videojs 动态加载视频
    [记录] nicescroll 在bootstrap tabs中工作
    [记录] js判断数组key是否存在
    li 水平排列并自动填满 ul
    [Laravel] 获取执行的Sql
    [Laravel]配置路由小记
    昨天冲动的搬到外面住了,oh yeah
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12758781.html
Copyright © 2011-2022 走看看