上一博客的最后笔者给出了几个变换的结合式,我们概括一下,很容易得到对应关系:
其中m的齐次坐标表示图像平面的像素坐标(u,v,1),M的齐次坐标表示世界坐标系的坐标点(X,Y,Z,1)。A[R t]即是上面一篇博客推出的P。R表示旋转矩阵、t表示平移矩阵、S表示尺度因子。A表示摄像机的内参数,具体表达式如下:
α=f/dx,β=f/dy,因为像素不是规规矩矩的正方形,γ代表像素点在x,y方向上尺度的偏差,f为相机的焦距,u0与v0代表投影平面原点对应的像素坐标。
这里还有一个“梗儿”,就是S。它只是为了方便运算,对于齐次坐标,尺度因子不会改变坐标值的。
现在我们的目的就是要求相机的内外参!
因此引入张正友标定(较为常用的一种标定方法)
1999年,微软研究院的张正友提出了基于移动平面模板的相机标定方法。此方法是介于传统标定方法和自标定方法之间的一种方法,传统标定方法虽然精度高设备有较高的要求,其操作过程也比较繁琐,自标定方法的精度不高,张正友标定算法克服了这两者的缺点同时又兼备二者的优点,因此对办公、家庭的场合使用的桌面视觉系统(DVS)很适合。
理论基础
1、标定平面到图像平面的单应性
因为标定物是平面,所以我们可以把世界坐标系构造在Z=0的平面上。然后进行单应性计算。令Z=0可以将上式转换为如下形式:
既然,此变化属于单应性变化。那么我们可以给A[r1 r2 t]一个名字:单应性矩阵。并记H= A[r1 r2 t]。
那么现在就有:
大家可以分析一下,H是一个三3*3的矩阵,并且有一个元素是作为齐次坐标。因此,H有8个未知量待解。
(x,y)作为标定物的坐标,可以由设计者人为控制,是已知量。(u,v)是像素坐标,我们可以直接通过摄像机获得。对于一组对应的(x,y)-à(u,v)我们可以获得两组方程。
现在有8个未知量需要求解,所以我们至少需要八个方程。所以需要四个对应点。四点即可算出,图像平面到世界平面的单应性矩阵H。
这也是张氏标定采用四个角点的棋盘格作为标定物的一个原因。
在这里,我们可以将单应性矩阵写成三个列向量的形式,即:
2、利用约束条件求解内参矩阵A
从上面可知,应用4个点我们可以获得单应性矩阵H。但是,H是内参阵和外参阵的合体。我们想要最终分别获得内参和外参。所以需要想个办法,先把内参求出来。然后外参也就随之解出了。我们可以仔细的“观摩”一下下面的式子:
从中可以得出下面两个约束条件,这两个约束条件都是围绕着旋转向量来的。
1、r1,r2正交 得:r1r2=0。这个很容易理解,因为r1,r2分别是绕x,y轴旋转的。应用高中立体几何中的两垂直平面上(两个旋转向量分别位于y-z和x-z平面)直线的垂直关系即可轻松推出。
2、旋转向量的模为1,即|r1|=|r2|=1。这个也很容易理解,因为旋转不改变尺度嘛。如果不信可以回到上一篇博客,找到个方向的旋转矩阵化行列式算一下。
通过上面的式子可以将r1,r2代换为h1,h2与A的组合进行表达。即 r1=h1A-1,r2=h2A-1.根据两约束条件,可以得到下面两个式子:
大家从上面两个式子是不是看出一点端倪了。式子中,h1,h2是通过单应性求解出来的那么未知量就仅仅剩下,内参矩阵A了。
内参阵A包含5个参数:α,β,u0,v0,γ。那么如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。大家想一下,我们怎样才能获得三个不同的单应性矩阵呢?
答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0)
这里,大家应该就明白我们在张氏标定法时为什么要不断变换标定板的方位了吧。
首先令
很容易发现B是一个对称阵,所以B的有效元素只剩下六个(因为有三对对称的元素是相等的,所以只要解得下面的6个元素就可以得到完整的B了),让这六个元素构成向量b。
接下来在做一步纯数学化简:
可以计算得:
利用约束条件可以得到下面,方程组:
这个方程组的本质和前面那两个用h和A组成的约束条件方程组是一样的。在此重复一遍解释:如果我们想完全解出这五个未知量,则需要3个单应性矩阵。3个单应性矩阵在2个约束下可以产生6个方程。这样可以解出全部的五个内参了。大家想一下,我们怎样才能获得三个不同的单应性矩阵呢?答案就是,用三幅标定物平面的照片。我们可以通过改变摄像机与标定板间的相对位置来获得三张不同的照片。(当然也可以用两张照片,但这样的话就要舍弃掉一个内参了γ=0) 通过至少含一个棋盘格的三幅图像,应用上述公式我们就可以估算出B了。得到B后,我们通过cholesky分解 ,就可以轻松地得到摄像机的内参阵A。
3、基于内参阵估算外参阵
通过上面的运算,我们已经获得了摄像机的内参阵。那么对于外参阵,我们很容易通过下面的公式解得:
对上面公式进行化简,可以得到:
至此,已经将张氏标定的主体数学框架已经讲完了。
说明:
1、cholesky分解:具体详见
http://baike.baidu.com/link?url=sP-30YfLq2tRESXdeFno5fb9jXdTp8fpZCrZu2ioOaPiLXtEdq_uojgeS_N86cIulwk7kzmuvB84tNSN53501K
2、博客参考:http://blog.csdn.net/pinbodexiaozhu/article/details/43306009
http://m.blog.csdn.net/article/details?id=47617909