5 基于2D标定物的标定方法

基于2D标定物的标定方法,原理与基于3D标定物相同,只是通过相机对一个平面进行成像,就可得到相机的标定参数,由于标定物为平面,本身所具有的约束条机,相对后者标定更为简单。经典算法为Z. Zhang(PAMI, 2000) A Flexible New Technique for Camera Calibration。其算法已经被收入Opencv(2004),最常用的标定图案是棋盘格图案,如下图:

5.1 单应性矩阵

对于2D标定平面,抑或称为标定板,不妨假设,平面上点的增广齐次向量[X,Y,Z,1]满足Z=0,同时对于旋转矩阵R的每一列表示为一个列向量记为ri,则根据相机的投影方程:

s⎡⎣⎢uv1⎤⎦⎥=A[r1  r2  r3  t]⎡⎣⎢⎢⎢XY01⎤⎦⎥⎥⎥=A[r1  r2  t]⎡⎣⎢XY1⎤⎦⎥(1)

因为点[X,Y]T仍表示的是三维空间点坐标,只是由于标定使用平面的特殊性,将Z=0省略,因此我们仍然使用统一的M符号表示,与其对应M~=[X,Y,1]T表示该点的其次向量,则公式(1)可简记为:

sm~=HM~  with H=A[r1  r2  t](2)

H被称为单应性矩阵(Homography matrix)。

5.2 内参约束条件

对于单应性矩阵H,我们也将其按照列向量的方式表示:H=[h1  h2  h3], 则有:

[h1  h2  h3]=λA[r1  r2  t](3)

其中,λ是一个任意的系数,因为r1,r2是正交向量,因此有:

rT1r2=hT1A−TA−1h2=0(4)

rT1r1=hT1A−TA−1h1=rT2r2=hT2A−TA−1h2(5)

对于一个单应性矩阵,公式(4,5)是两个内参的基本约束。单应性矩阵有9个元素,但可以由8个独立不相关的元素表示,也就是说投影变换有8个自由度,而我们只有6个外参元素(3个旋转元素和3个平移元素),因此两个内参约束条件的意义就在于此。在原理简介(三)中,我们已经了解到A−TA−1描述的就是IAC(Image of the absolute conic),后文将对此进行解释。

5.3 几何解释

现在让我们来分析公式(4,5)与绝对圆锥曲线的关系。在像空间坐标系中,存在下面的等式:

[r3rT3t]T⎡⎣⎢⎢⎢xyzw⎤⎦⎥⎥⎥=0(6)

当w=0时就是我们前面解释的改点位于无穷远处。我们想象标定板所在平面与该无穷远处平面相交于一点,则点[r10]和[r20]是相交直线上的两个特殊点,线上的其他点都可以用这两个点线性表示:

x∞=a[r10]+b[r20]=[ar1+br20](7)

现在让我们看一下上述的交线和绝对圆锥曲线的交点,原理简介(三)已经介绍点x∞满足:xT∞x∞=0,也即(ar1+br2)T(ar1+br2)=0  ⇒  a2+b2=0(r1与r2正交)。因此b=±ai,  其中i2=−1,公式(7)可写为:

x∞=a[r1±ir20](8)

其在图像中的投影点为:

m∞=A(r1±ir2)=h1±ih2(9)

因为点m∞位于IAC上,有:

(h1±ih2)TA−TA−1(h1±ih2)=0(10)

因此等式(10)左边的实部与虚部都为0,也就是公式(4,5)这两条约束条件。

5.4 闭合解

现在开始讲解如何高效求解本方法的相机标定问题。做法是,首先获得分析解,然后初始估计值基于最大似然准则进行非线性优化,这些都将逐步进行讲解。

令:

B=A−TA−1=⎡⎣⎢B11B12B13B12B22B23B13B23B33⎤⎦⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢1α2−γα2βv0γ−u0βα2β−γα2βγ2α2β2+1β2−γ(v0γ−u0β)α2β2−v0β2v0γ−u0βα2β−γ(v0γ−u0β)α2β2−v0β2(v0γ−u0β)2α2β2+v20β2+1⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥(11)

因此可以看出,B是一个对称矩阵,由六个元素组成:

b=[B11,B12,B13,B22,B23,B33]T(12)

对于H=[h1,h2,h3]的第i列记为:hi=[hi1,hi2,hi3]T,则有:

hTiBhj=vTijb(13)

其中,vij=[hi1hj1,hi1hj2+hi2hj1,hi2hj2,hi3hj1+hi1hj3,hi3hj2+hi2hj3,hi3hj3]T。因此,对于公式(4,5)可以表达为齐次方程:

[vT12(v11−v22)T]b=0(14)

如果采集了n张图像,可以列出方程组:

Vb=0(15)

其中,V是一个2n×6的矩阵。如果n⩾3,一般就能获得b的唯一解;如果n=2,我们可以利用偏斜度γ=0的约束条件,将[0,1,0,0,0,0]b=0添加到方程组(15)中;如果n=1那么就只能获得相机的内参。

一旦b确认后,就可以获得相机内参。将公式(11)中的矩阵B添加一个任意系数:B=λA−TA,可得到:

v0=(B12B13−B11B23)/(B11B22−B212)(16)

λ=B33−[B213+v0(B12B13−B11B23)]/B11(17)

α=λ/B11−−−−−√(18)

β=λB11/(B11B12−B212)−−−−−−−−−−−−−−−−−√(19)

γ=−B12α2β/λ(20)

u0=γv0/α−B13α2/λ(21)

内参矩阵获得后,根据公式(2)外参也就很快就可以得到:

r1=λ′A−1h1,  r2=λ′A−1h2,  r3=r1×r2,  t=λ′A−1h3(22)

其中,λ′=1/∥A−1h1∥=1/∥A−1h2∥。

由于噪声的存在,这样求解的矩阵R一般并不具备旋转矩阵的特性,更好的求解方法是通过奇异值分解的方法,可以参考Z. Zhang的论文。

5.5 最大似然优化

与基于3D标定物的优化方法类似,这里仍然使用最大似然法进行优化,也就是基于噪声是不相关且独立分布的的假设,对于n张图像,其中包含m个点,优化方程为:

∑i=0n∑j=0m∥mij−m^(A,Ri,ti,Mj)∥2(23)

其中,m^(A,Ri,ti,Mj)是三维点Mj在图像i中的投影点。非线性优化过程是,首先需要获得内参矩阵A的估算值,然后利用上面的描述的求解方法,获得{Ri,ti|i=1,…,n},利用LM迭代优化方法,使得公式(23)的求和最小化。

5.6 镜头畸变

原理简介(四)4.6中已经对镜头畸变模型进行了讲解,这里与之原理一样。以径向畸变为例,为了获得较为理想准确的像点坐标值,则有方程:

[(u−u0)(x2+y2)(v−v0)(x2+y2)(u−u0)(x2+y2)2(v−v0)(x2+y2)2)][k1k2]=[u^−uv^−v](24)

同样当m个点在n张图像中时,可以组成方程组Dk=d,其中k=[k1k2],其线性最小二乘解为:

k=(DTD)−1DTd(25)

当获得(k1,k2)后,我们就可以将公式(23)的非线性优化调整为:

∑i=0n∑j=0m∥mij−m^(A,k1,k2,Ri,ti,Mj)∥(26)

  • 结束语:

    基于2D标定物的标定方法流程为:

1 打印出一张标定图并贴到一个平面上;

2 通过移动相机或者标定平面采集不同位置、不同方向的标定板图像;

3 特征点检测;

4 估算内参(公式(16−21)),然后通过闭合解得到外参(公式(22));

5 通过最小二乘线性估算畸变系数;

6 使公式(26)的代数和最小,优化所有参数。

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

  1. Camera Calibration 相机标定

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

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

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

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

    1 相机标定常见方法 广义来说,相机标定不单包括成像过程的几何关系标定,还包括辐射关系的标定,本文只探讨几何关系.相机标定是3D计算机视觉(Computer Vision)里从2D图像中提取量测信息的 ...

  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. [luogu] P3089 [USACO13NOV]POGO的牛Pogo-Cow

    P3089 [USACO13NOV]POGO的牛Pogo-Cow 题目描述 In an ill-conceived attempt to enhance the mobility of his pri ...

  2. IT同行请教我如何培养读书习惯,结果就是“读了1本书,并写下'读《成交》有感'一文”

    前段时间,我把CSDN博客的签名加上了"读过100+本经典书籍". 一个经常关注我CSDN博客的老乡,问我是如何做到的. 该老乡,准确来说是前辈,该前辈买了很多技术读物却没有耐心读 ...

  3. Core abstraction layer for telecommunication network applications

    A new sub-system, the core abstraction layer (CAL), is introduced to the middleware layer of the mul ...

  4. java判断string数组中是否包含某个元素

  5. (hdu step 7.1.6)最大三角形(凸包的应用——在n个点中找到3个点,它们所形成的三角形面积最大)

    题目: 最大三角形 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. 屌丝也能开发安卓版2048(App Inventor)

    想编写安卓游戏.java太难.来试试App Inventor.尽管有人觉得他是中学生的玩具,可是也能编写2048这种火爆游戏,不须要太复杂的算法. 整个游戏有几个模块: 一.游戏初始化 数列转化为图形 ...

  7. Unity3D——加入剑痕效果(PocketRPG Trail插件)

    首先非常感谢大家的支持,因为近期项目吃紧,所以更新的速度可能会有点慢!希望大家谅解,当然大家的支持是我最大的动力.我也会尽我所能写出更好的文章,当然因为本人是个新手并且工作的内容也不是unity3D. ...

  8. poj3352Road Construction 边双连通+伪缩点

    /* 对于边双连通分支,求法更为简单. 仅仅需在求出全部的桥以后,把桥边删除.\ 原图变成了多个连通块,则每一个连通块就是一个边双连通分支. 桥不属于不论什么 一个边双连通分支,其余的边和每一个顶点都 ...

  9. mvc架构的简单登录系统,jsp

    文件结构 三个jsp文件负责前段界面的实现 login.jsp <%@ page language="java" import="java.util.*" ...

  10. 英语影视台词---七、THE GREAT GATSBY QUOTES

    英语影视台词---七.THE GREAT GATSBY QUOTES 一.总结 一句话总结:了不起的盖茨比 1.“So we beat on, boats against the current, b ...