标题 相机标定(Camera calibration)原理和步骤

  1. 为什么要相机标定?
    在图像测量过程和机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。
    【1】进行摄像机标定的目的:求出相机的内,外参数,以及畸变参数。
    【2】标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以矫正这种镜头畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。
    摄像机标定过程,可以简单描述为,通过标定板,可以得到n个对应的世界坐标三维点Xi和对应的图像坐标二位点xi,这些三维点的转换都可以通过上面提到的相机内参K,相机外参R和t,以及畸变参数D,经过一系列的矩阵变换得到。
  2. 什么叫相机标定?
    在大多数推荐下,这些参数必须通过实验与计算机才能得到,这个求解参数的过程就称为相机标定(或摄像机标定)。
  3. 为何相机标定很重要?
    无论是在图像测量,或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。
  4. 相机标定方法有哪些?
    相机标定方法有:传统相机标定法,主动视觉标定法,相机自标定法。
    传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上坐标已知的点与其图像点之间的对应,利用一定的算法获得相机模型的内外参数。根据标定物的不同分为三维标定物和平面标定物。三维标定物可由单幅图像进行标定,标定精度较高,但高精密三维标定物的加工和维护较困难。平面型标定物比三维标定物制作简单,精度易保证,但标定时必须采用两幅或两幅以上的图像。传统相机标定法在标定过程中始终需要标定物,且标定物的制作精度会影响标定结果。同时,有些场合不适合放置标定物,也限定了传统相机标定法的应用。
    目前出现的自标注算法中,主要是利用相机运动的约束。相机的运动约束条件太强,因此,使得其在实际中并不实用。利用场景约束,主要是利用场景中的一些平行或者正交的信息。其中,空间平行线在相机图像平面上的交点被称为消失点,它是射影几何中的一个非常重要的特征,所以,很多学者研究了基于消失点的相机标定方法。自标定方法灵活性强,可对相机进行在线标定。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差。
    基于主动视觉的相机标定法是指,已知相机的某些运动信息,对相机进行标定。该方法不需要标定物,但需要口罩相机做某些特殊运动,利用这种运动的特殊性,可以计算出相机内部参数。基于主动视觉的相机标定法的优点是,算法简单,往往能够获得线性解,鲁棒性较高,缺点是,系统的成本高,试验设备昂贵,实验条件要求高,而且不适合于运动参数未知或无法控制的场合。
  5. 常用术语
    内参矩阵:Intrinsic Matrix
    焦距:Focal Length
    主点:Pincipal Point
    径向畸变:Radial Distortion
    切向畸变:Tangential Distortion
    旋转矩阵:Rotation Matrics
    平移向量:Translation Vectors
    平均重投影误差:Mean Reprojection Errors
    重投影点:Reprojected Points
  6. 相机成像原理

摄像头标定(Camera calibration)原理和步骤

  1. 为什么要相机标定?

在图像测量过程和机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。

【1】进行摄像机标定的目的:求出相机的内,外参数,以及畸变参数。

【2】标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以矫正这种镜头畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。

摄像机标定过程,可以简单描述为,通过标定板,可以得到n个对应的世界坐标三维点Xi和对应的图像坐标二位点xi,这些三维点的转换都可以通过上面提到的相机内参K,相机外参R和t,以及畸变参数D,经过一系列的矩阵变换得到。

  1. 什么叫相机标定?

在大多数推荐下,这些参数必须通过实验与计算机才能得到,这个求解参数的过程就称为相机标定(或摄像机标定)。

  1. 为何相机标定很重要?

无论是在图像测量,或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。

  1. 相机标定方法有哪些?

相机标定方法有:传统相机标定法,主动视觉标定法,相机自标定法。

传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上坐标已知的点与其图像点之间的对应,利用一定的算法获得相机模型的内外参数。根据标定物的不同分为三维标定物和平面标定物。三维标定物可由单幅图像进行标定,标定精度较高,但高精密三维标定物的加工和维护较困难。平面型标定物比三维标定物制作简单,精度易保证,但标定时必须采用两幅或两幅以上的图像。传统相机标定法在标定过程中始终需要标定物,且标定物的制作精度会影响标定结果。同时,有些场合不适合放置标定物,也限定了传统相机标定法的应用。

目前出现的自标注算法中,主要是利用相机运动的约束。相机的运动约束条件太强,因此,使得其在实际中并不实用。利用场景约束,主要是利用场景中的一些平行或者正交的信息。其中,空间平行线在相机图像平面上的交点被称为消失点,它是射影几何中的一个非常重要的特征,所以,很多学者研究了基于消失点的相机标定方法。自标定方法灵活性强,可对相机进行在线标定。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差。

基于主动视觉的相机标定法是指,已知相机的某些运动信息,对相机进行标定。该方法不需要标定物,但需要口罩相机做某些特殊运动,利用这种运动的特殊性,可以计算出相机内部参数。基于主动视觉的相机标定法的优点是,算法简单,往往能够获得线性解,鲁棒性较高,缺点是,系统的成本高,试验设备昂贵,实验条件要求高,而且不适合于运动参数未知或无法控制的场合。

  1. 常用术语

内参矩阵:Intrinsic Matrix

焦距:Focal Length

主点:Pincipal Point

径向畸变:Radial Distortion

切向畸变:Tangential Distortion

旋转矩阵:Rotation Matrics

平移向量:Translation Vectors

平均重投影误差:Mean Reprojection
Errors

重投影点:Reprojected Points

  1. 相机成像原理


6.1 世界坐标系

世界坐标系(world coordinate),也称为测量坐标系。是一个三维坐标系,以其为基准,可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。

6.2 相机坐标系

相机坐标系(camera coordinate),也是一个三维直角坐标系,原点位于镜头光心处,x,y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。

6.3 相机坐标系转换为世界坐标系

转换方程为:


其中33的旋转矩阵,是31的平移矢量,是相机坐标系和世界坐标系的齐次坐标。

具体方法为:

图6.3.1

图6.3.2

图6.3.3

6.4 像素坐标系,图像坐标系

图6.4.1

像素坐标系(pixel coordinate)

图6.4.1,像素坐标系是一个二维直角坐标系,反映了相机CCD/CMOS芯片中像素的排列情况。原点位于图像的左上角,轴,轴分别与像素的两边平行。像素坐标系中坐标轴的单位是像素(整数)。

像素坐标系不利于坐标变换,因此,需要建立图像坐标系,其坐标轴的单位通常为毫米(mm),原点是相机光轴与相面的交点(称为主点),即图像的中心点,轴,轴分别与轴,轴平行。故两个坐标系实际上是平移关系,即通过平移得到。

6.5 像素坐标系转换为图像坐标系

其中,变量包含dx,dy物理尺寸和主点(图像原点)坐标。(这里=dx)
6.6 相机坐标系转换为图像坐标系

针孔成像原理

如图中,空间任意一点与其图像点之间的关系,p与相机光心的连线op,与像面的交点即为空间点在图像平面上的投影。此为透视变换,由上图矩阵表示。

其中,Zc为比列因子(Zc不为0),为有效焦距(光心到图像平面的距离),是空间点在相机坐标系中的齐次坐标,是像点在图像坐标系中的齐次坐标。

6.7 世界坐标系转换为像素坐标系

上面的式子也等于:MXw其中M成为投影矩阵,是相机内参矩阵和相机外参矩阵的乘积。

其中,f为摄像机的焦距,单位一般是mm,dx,dy为像素尺寸;U0,V0为图像中心。fx=f/dx,fy=f/dy,分别称为x轴和y轴的归一化焦距。

为便于理解,举例:

现以Nikon D700相机为例,求解其内参数矩阵:

就算大家身边没有这款相机也无所谓,可以在网上百度一下,很方便的就知道其一些参数。

焦距f=35mm,最高分辨率:42562832,传感器尺寸:36.023.9mm。

根据以上定义,有:

u0= 4256/2 = 2128 v0= 2832/2 = 1416 dx =
36.0/4256 dy = 23.9/2832

fx = f/dx =
4137.8 fy = f/dy = 4147.3

其中,相机的内参和外参可以通过张正友标定获取。通过最终的转换关系,一个三维自标点,的确可以在图像中找到一个对应的像素点。反过来,通过图像中的一个点,找到它在三维中对应点就成了一个问题,因为不知道等式左边的Zc值。

标题 相机标定(Camera calibration)原理和步骤相关推荐

  1. matlab棋盘格标定角点,相机标定(Camera calibration)Matlab——棋盘格标定原理,流程...

    计算机视觉----相机标定 相机标定概念:图像测量过程以及计算器视觉中,为确定空间物体某点的三维几何关系位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,模型的参数就是相机的参数.求解 ...

  2. 相机标定(Camera calibration)

    前言:非测量相机 用于摄影测量的相机总体上可分为量测相机和非量测相机.对于专门为测量而设计的量测相机,具有已知的内方位元素.焦距.较小的镜头畸变以及定向设备,能达到相当高的精度:相对于价格较贵且设备复 ...

  3. OpenCV-Python相机标定:Camera Calibration

    1.概述: 在使用相机拍照片时,大多数人会考虑拍的好不好看,关注相机中物体坐标的并不多,但是对于地信学科来说,如果能从照片中获取物体的真实位置,对地理信息获取大有帮助,在这里面,十分关键的一步就是相机 ...

  4. 计算机视觉-相机标定(Camera Calibration)

    1.相机标定基本原理 1.1 简介 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数 ...

  5. 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解

    目录 前言 一.小孔成像模型 二.坐标系的变换 1.世界坐标系到相机坐标系的变换(刚体变换)[xw^→xc^\boldsymbol {\hat{x_{w}}}\rightarrow \boldsymb ...

  6. OpenCV相机校准camera calibration的实例(附完整代码)

    OpenCV相机校准camera calibration的实例 OpenCV相机校准camera calibration的实例 OpenCV相机校准camera calibration的实例 #inc ...

  7. 相机标定与三维重建原理

    <基于序列图像的视觉检测理论与方法> 1.相机标定: 定义:检查和校准数码相机的内方位元素和光学畸变参数. 标定方法:从传统的三维空间控制场向二维平面控制场转变.计算机视觉界提出了许多利用 ...

  8. ROS 教程之 vision: 摄像头标定camera calibration

    在上一个ROS教程视觉文章中,我们使用usb_cam包读入并发布了图像消息,但是图像没有被标定,因此存在畸变.ROS官方提供了用于单目或者双目标定的camera_calibration包.这个包是使用 ...

  9. 求解相机参数Camera Calibration

    1 主要思想 使用黑白棋盘格,记录世界坐标系中关键点的坐标,然后使用手机拍照,记录相应点像素点的坐标. 这样就得到了许多3D-2D的配对点 2 详细过程 由 上一篇博客 内容可知, 其中 P' 为像素 ...

最新文章

  1. 修改oracle+sga+size,oracle自动内存共享管理测试。修改 oracle 11g SGA_MAX_SIZE。
  2. Linux中的Screen命令使用技巧详解
  3. VTK修炼之道8_三维场景基本要素:相机
  4. 在Firefox中结合Wolfram Alpha和Google搜索结果
  5. 仪器和软件通讯测试软件,软件定义的仪器-测试测量-与非网
  6. Dubbo学习总结(3)——Dubbo-Admin管理平台和Zookeeper注册中心的搭建
  7. idou老师教你学Istio 04:Istio性能及扩展性介绍
  8. 手机自动化测试IDE之Airtest基本操作方法,学完让你解放双手
  9. Java高并发编程详解-代码在本地
  10. JavaScript var语句简析
  11. 软件测试的步骤和方法
  12. python爬取wifi密码完整代码_WIFIpass – Python获取本机保存的所有WIFI密码(附源代码)...
  13. Android 11 正式发布:更方便的操作和更安全的隐私
  14. 麻将项目开发--bug mj157
  15. 人民币大小写金额转换
  16. 苹果设备尺寸和控件尺寸
  17. 123456G随想~
  18. 花1亿扶持优质红人,如涵推动网红经济出圈之路有何深意?
  19. 在Android应用中使用自定义证书,CER转BKS
  20. FlatBuffers vs Protocol Buffers

热门文章

  1. ireport如何给static text加边框_html amp;amp; css 解决li浮动边框为2的问题
  2. 在批评中改变自己,才能真正取得进步
  3. python编程问题--第二次
  4. 用python下载文件的若干种方法汇总
  5. ML Pipelines管道
  6. TVM将深度学习模型编译为WebGL
  7. MindInsight张量可视设计介绍
  8. C++ sizeof 运算符的使用
  9. IOError: [Errno 2] No such file or directory: ‘xxx\xe5\xbc\x80\xe5\x8f\x91\xe5\x88\x86\xe6\xa1.xlsx‘
  10. Windows 10系统中如何显示文件后缀名