张氏标定法
🌴写在前面
在读这篇之前建议大家对四系坐标系之间的转换有一个较为清晰的认识,如若有不了解的可参考我之前的博文:相机模型与几何关系推导+四系坐标转换
🌴原理详解
🍉🍉🍉四系坐标转化时我们已经得到了如下公式:
通过上述公式,我们易得到:
其中m表示图像平面的像素坐标(u,v,1),M表示世界坐标系的坐标点( xw ,yw ,zw )。R,T表示旋转和平移矩阵、s表示尺度因子(只是为了方便运算,对于齐次坐标,尺度因子不会改变坐标值的) 、A表示相机的内参矩阵,表达式如下:
其中τ代表像素点在x,y方向上尺度的偏差。
这里插入介绍一个概念:单应性变换
单应性变换是将一个平面内的点映射到另一个平面内的二维投影变换。(平面是指图像或者三维中的平面表面),对应的变换矩阵称为单应性矩阵 。
在进行张氏标定的时候,我们所选择的标定物是平面(往往是棋盘格),所以我们可以把世界坐标系构造在Z=0的平面上。然后进行单应性计算。令Z=0可以将上文公式转换为如下形式:
H是一个3x3的矩阵,一共有9个元素。但上式是一个齐次坐标,因此,H有8个未知量待解。
这里是不是有疑问了呢?为什么只有8个未知量呢?其实这个在之前也讲到过,就是齐次方程的伸缩不变性。下面通过这个例子再次叙述一遍。我们看如下方程:
其中H为3x3的矩阵:
则:
上式可表述为:
也即:
将上式写成AH=0的形式:
下面我们再来看这样的方程:
则:
可以发现单应性矩阵H和aH是完全一样的,即点(X,Y)无论经过H还是aH映射,变化后都是(u,v)。此时我们取 ,则有:
可以看出H只有8个未知量待解。
明白了H有八个未知量,那么要想解出这八个未知量,我们就需要八个方程。通过上面的分析可知,我们通过一组对应的(x,y)-(u,v)可以获得两个方程。其中(x,y)作为标定物的坐标,可以由设计者人为控制,是已知量。(u,v)是像素坐标,我们可以直接通过摄像机获得。那么这样的话要想解出八个未知量,就需要四个对应点,也就是说我们只要给出四组点,就可以算出图像平面到世界平面的单应性矩阵H。这也是张氏标定采用四个角点的棋盘格作为标定物的一个原因。
上式有两个约束条件,分别为:
上面两个约束均为旋转矩阵的性质。
我们由公式1可得:
上面我想已经把求解相机内参的过程描述清楚了,接下来是对上面的公式的一些数学变化,没有什么物理上的含义。
首先另:
接下来有:
其中,
结合公式3、公式4、公式5可得:
进一步写成矩阵的形式如下:
公式6其实是和公式3、4所表达的含义是一样的。
通过上面的一系列运算,我们算是把相机的内参矩阵求出来了,对于外参矩阵,我们很容易通过下面的矩阵进行求解:
🌴最后唠唠
这部分的内容其实写了很久了,但由于是word编辑的并含有大量的公式,放到博客中会乱码,于是就没有整理,这次稍微整理了一下,但是大多数公式放的是图片,这样不知道会不会影响大家的观感,如果想要公式不是图片的,可以留言获取📝📝📝