以下内容来自:

http://baike.baidu.com/link?url=RAjUg33ftcbDDjE_tFKS80p_azC9REyLOzBTbqqSq5iIIXo0sp20NJk28RW-6J6ARqg0LGPS-kAEiO-ESqZF-a

在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。

方法:

相机标定方法有:传统相机标定法、主动视觉相机标定方法、相机自标定法。
传统相机标定法需要使用尺寸已知的标定物,通过建立标定物上坐标已知的点与其图像点之间的对应,利用一定的算法获得相机模型的内外参数。根据标定物的不同可分为三维标定物和平面型标定物。三维标定物可由单幅图像进行标定,标定精度较高,但高精密三维标定物的加工和维护较困难。平面型标定物比三维标定物制作简单,精度易保证,但标定时必须采用两幅或两幅以上的图像。传统相机标定法在标定过程中始终需要标定物,且标定物的制作精度会影响标定结果。同时有些场合不适合放置标定物也限制了传统相机标定法的应用。
目前出现的自标定算法中主要是利用相机运动的约束。相机的运动约束条件太强,因此使得其在实际中并不实用。利用场景约束主要是利用场景中的一些平行或者正交的信息。其中空间平行线在相机图像平面上的交点被称为消失点,它是射影几何中一个非常重要的特征,所以很多学者研究了基于消失点的相机自标定方法。自标定方法灵活性强,可对相机进行在线定标。但由于它是基于绝对二次曲线或曲面的方法,其算法鲁棒性差。
基于主动视觉的相机标定法是指已知相机的某些运动信息对相机进行标定。该方法不需要标定物,但需要控制相机做某些特殊运动,利用这种运动的特殊性可以计算出相机内部参数。基于主动视觉的相机标定法的优点是算法简单,往往能够获得线性解,故鲁棒性较高,缺点是系统的成本高、实验设备昂贵、实验条件要求高,而且不适合于运动参数位置或无法控制的场合。
基于离线相机标定
基于离线相机标定技术需要准确的相机内参数和外参数作为重构算法的输入和先决条件,目前最为流行的离线相机标定算法是Tsai在1987年提出的[Tsai1987],Tsai方法使用一个带有非共面专用标定标识的三维标定物来提供图像点和其对应的三维空间点的对应并计算标定参数。Zhang在1998年提出了另一个实用方法 [Bouguet2007],该方法需要对一个平面标定图案的至少两幅不同视图来进行标定。加州理工学院的相机标定工具对以上两个方法均作了有效实现,并且已经被集成到Intel的视觉算法库OpenCV中[OpenCV2004]。通过标定算法,可以计算相机的投影矩阵,并提供场景的三维测度信息。在不给定真实场景的绝对平移、旋转和放缩参数的情况下,可以达到相似变换级别的测度重构。
基于在线相机标定
在很多场合下,如缺失标定设备或相机内参数持续改变的情况下,没有足够数据来支持离线相机标定,对这类场景的多视三维重构就要用到在线相机标定的技术。在线标定和离线标定框架的主要区别在于标定相机或估计相机参数的方法上。在大多数文献中在线标定技术被称为自标定。自标定方法可以大致分为两类:基于场景约束的自标定和基于几何约束的自标定。
①基于场景约束的自标定
合适的场景约束往往能够在很大程度上简化自标定的难度。比如说,广泛存在于建筑或人造场景中的平行线能够帮助提供三个主正交方向的消视点和消视线信息,并能够据此给出相机内参数的代数解或数值解 [Caprile1990]。消视点的求解可以通过投票并搜索最大值的方法进行。Barnard采用高斯球构造求解空间 [Barnard1983]。Quan、Lutton和Rother等给出了进一步的优化策略[Quan1989, Lutton1994, Rother2000]。文献[Quan1989]中给出了搜索解空间的直接算法,Heuvel给出的改进算法加入了强制性的正交条件 [Heuvel1998]。Caprile给出了基于三个主正交方向消视点的几何参数估计法,Hartley使用标定曲线计算焦距 [Hartley2003]。Liebowitz等进一步从消视点位置构造绝对二次曲线的约束并用考克斯分解求解标定矩阵 [Liebowitz1999]。
② 基于几何约束的自标定
基于几何约束的自标定不需要外在场景约束,仅仅依靠多视图自身彼此间的内在几何限制来完成标定任务。利用绝对二次曲面作自标定的理论和算法最先由Triggs提出 [Triggs1997]。基于Kruppa方程求解相机参数则始于 Faugeras, Maybank等的工作 [Faugeras1992, Maybank1992]。Hartley给予基本矩阵推导出了Kruppa方程的另一个推导 [Hartley1997]。文献[Sturm2000]则给出了Kruppa方程的不确定性的理论探讨。层进式自标定技术被用于从射影重构升级到度量重构 [Faugeras1992]。自标定技术的一个主要困难在于它不是无限制地用于任意图像或视频序列,事实上,存在着特定运动序列或空间特征分布导致自标定求解框架的退化和奇异解。文献[Sturm1997]给出了关于退化情形的详细讨论和分类。对一些特殊可解情况存在性和求解方法的讨论可以参考文献[Wilesde1996]等。
所以,总体上来说,离线标定,也就是传统相机标定,利用三维或二维标定物进行标定,这适合于内参不变的情况下。
而自标定方法,主要涉及在线标定,即缺失标定设备或相机内参持续改变的情况下,基于某些约束,如场景(空间平行线),几何(内在几何限制)
还有一种也是在线标定,需要相机做一定规则的运动。
OpenCV主要是离线标定,传统标定方法。

相机模型与标定(一)--相机标定概述相关推荐

  1. 相机投影原理、相机模型中的坐标系统以及标定方法(转载)

    文章目录 0 引言 1 相机投影中的坐标系及其转换关系 1.1 世界坐标系与相机坐标系 1.2 相机坐标系与图像坐标系:称为摄像机模型以及投影矩阵 1.3 图像坐标系与像素坐标系 1.4 从世界坐标系 ...

  2. 相机模型之世界坐标、相机坐标、归一化坐标、图像坐标、像素坐标、内参、外参、转换关系总结

    2021.04.12重新修改版:

  3. 鱼眼相机标定_鱼眼相机模型(二)

    前言 在介绍其他相机模型之前,可以先看一下kalibr支持标定的相机模型(kalibr可以标定的相机模型),这里的相机模型一共有4种,针孔相机模型,全景相机模型,Double sphere相机模型还有 ...

  4. 视觉SLAM——针孔相机模型 相机标定原理 双目相机模型 深度相机对比

    前言 本博客为主要学习<视觉SLAM十四讲>第5讲.<机器人学的状态估计>第6章6.4.1透视相机.<多视图几何>第5章摄像头模型等SLAM内容的总结与整理. 主要 ...

  5. 相机标定与棋盘格标定

    文章目录 1.相机标定 1.1 相机标定介绍 1.2 相机标定的意义 1.3 相机标定方法 1.4 相机标定的用途 2.相机参数 2.1 内参 2.2 外参 2.3 畸变参数 3.棋盘格标定 3.1 ...

  6. 视觉SLAM十四讲学习笔记-第五讲-相机模型

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  7. 相机模型(camera model)

      在SLAM相关的文章看到相机模型,好奇这是啥意思.就去查了查资料,但发现还是有很多数学的公式推导看不懂~这篇文章屏蔽掉推导过程,单纯谈谈相机模型的概念及作用.希望能大概的介绍下:   1.相机模型 ...

  8. 【鱼眼相机模型】鱼眼相机投影模型理解

    一.从普通镜头到鱼眼镜头 如图1所示,普通镜头下的光线依据针孔相机模型进行成像(该部分可参考相机投影关系).但该模型存在一个缺陷:相机视野范围越大,所需的成像平面也越大,当相机视野范围要求在180°时 ...

  9. 摄像头和相机模型和内参原理

    摄像头和相机模型和内参原理 相机的工作过程可总结为:"将三维世界中的坐标点(单位为米)投影到二维图像上(单位为像素)."我们通常用针孔相机模型来研究这里的投影过程发生了怎样的数值变 ...

  10. 图像形成(5)球面透视投影和近似相机模型

    文章目录 图像形成(5)球面透视投影和近似相机模型 球面透视投影 近似相机模型 图像形成(5)球面透视投影和近似相机模型 球面透视投影   我们在博文图像形成(3)理想相机模型中描述的透视针孔相机模型 ...

最新文章

  1. 【Linux】neocomplcache disabled: “sudo vim“ is detected and $HOME is set to your user‘s home
  2. backbone学习总结(二)
  3. Nature综述: 蓝藻水华的形成机理及防治动态
  4. linux删除目录是显示非空,Linux删除非空目录
  5. uitableview 弹性_iOS UITableView滚动头图 拉伸放大效果 (头部弹性效果) 增加iOS11支持 附有demo...
  6. 1 分钟抗住 10 亿请求!某些 App 是怎么做到的? | 原力计划
  7. 抢占计算机与通信设备未来产业制高点 ——《信息产业发展指南》解读
  8. ORA-04043: 对象 dba_data_files 不存在 BUG
  9. LabView学习笔记(十):条件结构
  10. SpringMVC错误提示(三)
  11. Wonderware配置-Intouch读取数据 6
  12. intel cpu core/“酷睿”系列发展史,供组装机的朋友们参考
  13. linux make menuconfig快速查找配置项
  14. Excel数据计数(count)
  15. 正面管教读书笔记 09 家庭会议
  16. 谷歌浏览器打开后是360导航界面解决办法
  17. 车联网的信息安全问题及安全威胁
  18. Android6.0boot解锁,Lenovo手机fastboot命令 解锁Bootloade 教程
  19. 还在为那几千的工资起早贪黑,学好大数据年薪30万不是梦
  20. 如何将class文件打包成.jar

热门文章

  1. Android之汽车音频
  2. DECLARE_META_INTERFACE(INTERFACE)和IMPLEMENT_META_INTERFACE(INTERFACE, NAME)宏定义分析
  3. ios gpuimage输入和得到原始数据
  4. 1603错误_iPhone恢复iTunes未知错误怎么办【解决方法】
  5. python小明爬楼梯_爬楼梯(Python and C++解法)
  6. html5导出错误,JavaScript:toDataUrl()抛出“安全错误:可能无法导出受污染的画布”. - 程序园...
  7. python模型预测结果 取整_一日一技:Python里面的//并不是做了除法以后取整
  8. 设计代码说明什么是多态性?如何实现多态?(代码中要写注释解释)_狗屎一样的代码!快,重构我!...
  9. 已解决:home目录下ubuntu文件夹被误删。。。。
  10. linux shell脚本中 if 条件判断