张正友标定算法原理详解

来源:互联网 发布:sd卡损坏怎么恢复数据 编辑:程序博客网 时间:2024/05/18 01:04
http://blog.csdn.net/u010128736/article/details/52860364

一、背景

  ”张正友标定”是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法[1]。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。

二、计算内参和外参的初值

1、计算单应性矩阵H

  根据之前博客介绍的摄像机模型,设三维世界坐标的点为X=[X,Y,Z,1]T,二维相机平面像素坐标为m=[u,v,1]T,所以标定用的棋盘格平面到图像平面的单应性关系为: 

s0m=K[R,T]X

其中s为尺度因子,K为摄像机内参数,R为旋转矩阵,T为平移向量。令 
K=α00γβ0u0v01

注意,s对于齐次坐标来说,不会改变齐次坐标值。张氏标定法中,将世界坐标系狗仔在棋盘格平面上,令棋盘格平面为Z=0的平面。则可得 
suv1=K[r1r2r3t]XY01=K[r1r2t]XY1

我们把K[r1, r2, t]叫做单应性矩阵H,即 
suv1=HXY1H=[h1 h2 h3]=λK[r1 r2 t]

H是一个齐次矩阵,所以有8个未知数,至少需要8个方程,每对对应点能提供两个方程,所以至少需要四个对应点,就可以算出世界平面到图像平面的单应性矩阵H。

2、计算内参数矩阵

由上式可得 

λ=1sr1=1λK1h1r2=1λK1h2

  由于旋转矩阵是个酉矩阵,r1和r2正交,可得 
rT1r2=0||r1||=||r2||=1

代入可得: 
hT1KTK1h2=0hT1KTK1h1=hT2KTK1h2

即每个单应性矩阵能提供两个方程,而内参数矩阵包含5个参数,要求解,至少需要3个单应性矩阵。为了得到三个不同的单应性矩阵,我们使用至少三幅棋盘格平面的图片进行标定。通过改变相机与标定板之间的相对位置来得到三个不同的图片。为了方便计算,定义如下: 
B=KTK1=B11B21B31B12B22B32B13B23B33=1α2γα2βv0γu0βα2βγα2βγ2α2β2+1β2γ(v0γu0β)α2β2v0β2v0γu0βα2βγ(v0γu0β)α2β2v0β2(v0γu0β)2α2β2+v0β2+1

可以看到,B是一个对称阵,所以B的有效元素为六个,让这六个元素写成向量b,即 
b=[B11B12B22B13B23B33]T

可以推导得到 
hTiBhj=vTijbvij=[hi1hj1hi1hj2+hi2hj1hi2hj2hi3hj1+hi1hj3hi3hj2+hi2hj3hi3hj3]T

利用约束条件可以得到: 
[vT12(v11v22)T]b=0

  通过上式,我们至少需要三幅包含棋盘格的图像,可以计算得到B,然后通过cholesky分解,得到相机的内参数矩阵K。

3、计算外参数矩阵

  由之前的推导,可得 

λ=1s=1A1h1=1A1h2r1=1λK1h1r2=1λK1h2r3=r1×r2t=λK1h3

三、最大似然估计

  上述的推导结果是基于理想情况下的解,但由于可能存在高斯噪声,所以使用最大似然估计进行优化。设我们采集了n副包含棋盘格的图像进行定标,每个图像里有棋盘格角点m个。令第i副图像上的角点Mj在上述计算得到的摄像机矩阵下图像上的投影点为: 

m^(K,Ri,ti,Mij)=K[R|t]Mij

其中Ri和ti是第i副图对应的旋转矩阵和平移向量,K是内参数矩阵。则角点mij的概率密度函数为: 
f(mij)=12πe(m^(K,Ri,ti,Mij)mij)2σ2

构造似然函数: 
L(A,Ri,ti,Mij)=i=1,j=1n,mf(mij)=12πeni=1mj=1(m^(K,Ri,ti,Mij)mij)2σ2

让L取得最大值,即让下面式子最小。这里使用的是多参数非线性系统优化问题的Levenberg-Marquardt算法[2]进行迭代求最优解。 
i=1nj=1mm^(K,Ri,ti,Mij)mij2

四、径向畸变估计

  张氏标定法只关注了影响最大的径向畸变。则数学表达式为: 

u^=u+(uu0)[k1(x2+y2)+k2(x2+y2)2]v^=v+(vv0)[k1(x2+y2)+k2(x2+y2)2]

其中,(u,v)是理想无畸变的像素坐标,(u^,v^)是实际畸变后的像素坐标。(u0,v0)代表主点,(x,y)是理想无畸变的连续图像坐标,(x^,y^)是实际畸变后的连续图像坐标。k1和k2为前两阶的畸变参数。 
u^=u0+αx^+γy^v^=v0+βy^

化作矩阵形式: 
[(uu0)(x2+y2)(vv0)(x2+y2)(uu0)(x2+y2)2(vv0)(x2+y2)2][k1k2]=[u^uv^v]

记做: 
Dk=d

则可得: 
k=[k1 k2]T=(DTD)1DTd

计算得到畸变系数k。

  使用最大似然的思想优化得到的结果,即像上一步一样,LM法计算下列函数值最小的参数值: 

i=1nj=1mm^(K,k1,k2,Ri,ti,Mij)mij2

到此,张氏标定法介绍完毕。我们也得到了相机内参、外参和畸变系数。

参考

1、Zhang, Zhengyou - 《IEEE Transactions on Pattern Analysis & Machine Intelligence》 - 2000 
2、J.More.Thelevenberg-marquardtalgorithm,implementationandtheory.InG.A.Watson, 
editor,NumericalAnalysis,LectureNotesinMathematics630.Springer-Verlag,1977.


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怎样泡干枝杜鹃才能开花 茉莉冬天为什么干叶干枝 干蜜枣 1斤干拐枣泡几斤白酒 干枣三蒸三晒方法及步骤 菜干鸭肾蜜枣汤 干枣吃多了会怎样 枣夹核桃葡萄干 干枣的功效与作用 枣干泡水 好想你干枣片 干枣放了三年还能吃吗 金丝枣干 干枣泡水的功效与作用 冻干枣 枣干价格 绿枣的功效与作用 青枣的功效 青枣的功效与作用 干枣怎么保存 吃干枣有什么好处 干枣的热量 吃干枣会长胖吗 干枣怎么做 孕妇可以吃干枣吗 干枣图片 吃干枣上火吗 吃干枣会胖吗 吃干枣的好处 鲜枣和干枣的区别 枣干 大栆的作用与功效 鲜枣怎么做成干枣 吃鲜枣好还是干枣好 干栏式建筑 干栏式房屋 长明灯下石栏干 干法读后感 干法 干法脱硫 干法制粒