1 相机标定常见方法

广义来说,相机标定不单包括成像过程的几何关系标定,还包括辐射关系的标定,本文只探讨几何关系。相机标定是3D计算机视觉(Computer Vision)里从2D图像中提取量测信息的必要步骤。最初发展于摄影测量学(Photogrammetry),后逐渐被大量应用于计算机视觉中。

相机标定一般来说需要参照物或标定物,按照标定物的维数,来分可以分为:

  • 基于三维参照物标定法(3D reference object based calibration):通过相机观测具有较高精度的已知三维信息进行标定解算的方法。标定物一般由两个或者三个正交的平面组成,该方法需要较为昂贵的标定设备和精心设计的标定步骤。在摄影测量学里,最经典的就是利用已知控制点通过共线方程(Collinearity Equation),使用后方交会法(Resection Method)或光束法(Bundle Method )求解。计算机视觉中最流行的标定方法是Roger Y. Tsai(1987). A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf tv cameras and lenses.

  • 基于二维平面标定法(2D plane based calibration):这该类方法中,使用相机对具有某种图案的平面(planar pattern)在不同的方位进行观测。(以张正友标定法(2000)为经典,参见论文:A Flexible New Technique for Camera Calibration

  • 基于一维线标定法(1D line based calibration):使用一组共线的点进行标定解算,通常的使用相机观测绕某一固定点移动的直线,例如悬挂在天花板上的一行小球等。(参见论文:Z. Zhang(2002). Camera calibration with one-dimensional objects

  • 自检校法(Self-calibration):顾名思义,不使用任何标定物,仅仅利用像点间的对应关系进行标定解算,因此也可称之为:基于0维标定物的方法。通常做法是移动相机,对一静态的场景进行成像,通过核线变换后,满足两个代数约束条件,继而可以进行相机标定。虽然不需要标定物,但是却需要大量的参数需要估算,由此也导致较多很难的数学问题。(参见论文:O. D. Faugeras at all(1992). Camera self-calibration: Theory and experiments

  • 除了上述的方法,还有利用灭点( Vanishing points)解算正交方向的方法和只存在旋转情形的标定方法等。

除了上述分类方法外,还有将标定算法分为:传统相机标定法、主动视觉相机标定方法、相机自标定法,感兴趣的话可以进行相关了解。必须要指出的是,上述的方法,不能一概而论地认为某一种方法优于其他方法,具体选择哪种标定方法,完全取决具体的情形,如下简单对比一下几种主要的标定方法:

  • 有标定物法 vs. 自检校法:无论何时,如果我们能够事先进行相机标定,就应该利用标定设备进行相机标定。一般来说,自检校方法很难达到这种事先标定所取得的精度,因为前文已经介绍过,自检校需要对很多参数进行估算,涉及很复杂的数学问题。但是在事先标定不可能实现的情况下,例如用旧电影进行场景重建,这个时候就只能利用自检校的方法。

  • 部分(Partial) vs. 全(full)自检校:部分自检校指的是,针对相机的一部分内参( Intrinsic parameters)进行标定。往往在只能选自检校方法时,情况允许的时候,人们更倾向于使用部分自检校的方法,原因很简单,需要估算的参数会更少,算法相对全参自检校要简单。以使用变焦镜头的相机进行三维重建( 3D reconstruction)为例,合理的做法是解算出部分参数如像素宽高比和像素偏斜度。

  • 3D vs. 2D 标定物:3D标定物通常可以获得很高的精度,因此如果对于标定的精度要求很高而且又负担得起(标定设备相对昂贵得多),就可以选择3D标定物。从全世界计算机视觉的研究者和开发者们的反馈来看,使用2D标定物往往是最佳的选择,使用方便,造价便宜,而且也能获得不错的精度。

  • 1D标定物:通常应用于标定多摄像机之间的相对几何关系以及各个摄像机的内参,做法上是让不同安装位置的多个摄像机对同一组点同时成像观测,通常来讲3D或者2D的标定物很难实现这一点。

Camera Calibration 相机标定:原理简介(一)的更多相关文章

  1. Camera Calibration 相机标定

    Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...

  2. Camera Calibration 相机标定:原理简介(五)

    5 基于2D标定物的标定方法 基于2D标定物的标定方法,原理与基于3D标定物相同,只是通过相机对一个平面进行成像,就可得到相机的标定参数,由于标定物为平面,本身所具有的约束条机,相对后者标定更为简单. ...

  3. Camera Calibration 相机标定:原理简介(四)

    4 基于3D标定物的标定方法 使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法.3D标定物在不同应用场景下不尽相同,摄影测量学中,使用的3D标定物种类最为繁杂,如图-1的室内控制场,由多条 ...

  4. Camera Calibration 相机标定:原理简介(二)

    2 针孔相机模型 常见的相机标定中,使用的相机多为针孔相机(Pinhole camera),也就是大家熟知的小孔成像理论.将其中涉及的坐标系之间的相互转换抽离出来,即为针孔相机模型的核心. 上图所示的 ...

  5. Camera Calibration 相机标定:原理简介(三)

    3 绝对圆锥曲线 在进一步了解相机标定前,有必要了解绝对圆锥曲线(Absolute Conic)这一概念. 对于一个3D空间的点x,其投影空间的坐标为:x~=[x1,x2,x3,x4]T.我们定义无穷 ...

  6. Camera Calibration 相机标定:Opencv应用方法

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/49427383 Opencv中Camer ...

  7. 【视频开发】【计算机视觉】相机标定(Camera calibration)原理、步骤

    相机标定(Camera calibration)原理.步骤 author@jason_ql(lql0716)  http://blog.csdn.net/lql0716 在图像测量过程以及机器视觉应用 ...

  8. 相机标定:PNP基于单应面解决多点透视问题

              利用二维视野内的图像,求出三维图像在场景中的位姿,这是一个三维透视投影的反向求解问题.常用方法是PNP方法,需要已知三维点集的原始模型. 本文做了大量修改,如有不适,请移步原文:  ...

  9. 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

    相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...

随机推荐

  1. IOS - IOS之同步请求、异步请求、GET请求、POST请求(转载)

    转载:http://www.open-open.com/lib/view/open1355055986679.html 1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务 ...

  2. BZOJ 4990 [USACO17FEB] Why Did the Cow Cross the Road II P (树状数组优化DP)

    题目大意:给你两个序列,你可以两个序列的点之间连边 要求:1.只能在点权差值不大于4的点之间连边 2.边和边不能相交 3.每个点只能连一次 设表示第一个序列进行到 i,第二个序列进行到 j,最多连的边 ...

  3. SUSE Linux Enterprise 11 SP4系统安装过程 字符界面

    首先开启虚拟机之后显示这个界面: (1) 进入之后显示下面界面,点击Installation安装. (2)进入Welcome界面,选择语言,默认Einglish(US)不需要改动:点击I Agree ...

  4. Windows里正确安装Zookeeper以服务运行

    不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...

  5. Tomcat远程代码执行漏洞(CVE-2017-12615)修复

    一.漏洞介绍 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,其中就有Tomcat远程代码执行漏洞,当存在漏洞的Tomcat运行在Windwos主机上,且启用了HTTP ...

  6. 试用友盟SDK实现Android分享微信朋友圈

    社会化分享是眼下必学且火热的功能.之前有写第三方登录,那仅仅是社会化分享的一部分.今天来玩玩分享微信朋友圈. 为了方便操作,还是依照步骤写. 一,注冊 注冊应用已经在这里具体说明过了,这里就不多提了. ...

  7. PE文件结构(三) 输入表

    PE文件结构(三) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 输入表 输入函数,表示被程序调用可是它的代码不在程序代码中的,而在dll中的函数.对于这些函数.磁盘上的可执行文 ...

  8. h5缓存之数据库

    /*======================================================= 函数功能:保存日志到本地数据库 ========================== ...

  9. FriendlyARM交叉工具链以及编译第一个arm9应用

    不记录什么都会忘光!!!这两天又要用到开发板来做项目,可是好久没有碰了,最近一直在搞上层的东东,对rails和前端感兴趣,我这是不要毕业的节奏了吗?好吧,既然什么都忘光掉了,那就干脆来个痛快,重新装机 ...

  10. [JZOJ 5885] [NOIP2018模拟9.27] 物理实验 解题报告 (思维)

    题目链接: https://jzoj.net/senior/#main/show/5885 题目: 题解: 把$a$数组按升序排序 我们可以枚举$x$,发现对于任意$x$,最优情况下$y$一定等于$x ...