锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

相机标定(标定目的、原理)

时间:2023-11-30 09:07:02 zc01029950传感器

1.相机校准的目的:

1)一是纠正镜头畸变引起的图像变形。例如,在现实中,直线在拍摄成图像后会凸起或凹陷。相机校准后,可以纠正这种情况;

2)另一种是根据拍摄获得的的二维图像重构三维场景,因为校准过程是通过一系列三维点和相应的二维图像点进行数学变换,以找到相机的内外参数。

校准后的相机可以测距,重建三维场景等

2.四个坐标系

相机校准的目的之一是建立物体从三维世界到成像平面上坐标点的对应关系,因此首先要了解以下四个坐标系:

世界坐标系:引入用户定义的三维世界坐标系,描述目标在现实世界和相机的位置。

相机坐标系:为了从相机的角度描述物体的位置,在相机上建立的坐标系被定义为通信世界的坐标系和图像/像素坐标系的中间环。

图像坐标系:在成像过程中引入物体从相机坐标系到图像坐标系的投影透射关系,便于进一步获得像素坐标系下的坐标。

像素坐标系:引入数字图像上(照片)的坐标系,描述物体成像后的像点,是我们真正从相机中读取的信息的坐标系,单位(像素数)。

3.转换坐标

世界坐标系:XwYwZw

相机坐标系: XcYcZc

图像坐标系:xy

像素坐标系:uv

其中,相机坐标系Z轴与光轴重叠,垂直于图像坐标系平面,通过图像坐标系的原点,相机坐标系与图像坐标系的距离为焦距f。像素坐标系平面u-v与图像坐标系平面x-y但像素坐标系的原点位于图中左上角。

3.世界坐标系,相机坐标系

假设x轴旋转(逆时针)

以此类推,绕其他轴旋转(顺时针)

从世界坐标系到相机坐标系需要6个自由度,除了旋转还需要平移

3.2相机坐标转图像坐标

3.图像坐标转像素坐标

图像坐标系的原点在图像的中心,单位mm

像素坐标系的原点在图像的左上角,单位是像素Pixel(个)。

dx,dy:传感器固有的参数,代表每个像素的毫米数。

u0,v0:代表图像坐标系原点相对于像素坐标系的偏移量,单位是像素。

3.4 世界坐标系到像素坐标系转换的全过程

 至此,要想通过拍摄到的二维图像重建三维场景,那么就要求得内参M1和外参M2。

 3.5张正友标定法

 

 

 

单应性(Homography)变换。可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。

 

 

 

如何根据标定图得到单应矩阵?

经过前面一系列的介绍,我们应该大致明白如何根据打印的棋盘标定图和拍摄的照片来计算单应矩阵H。我们来总结一下大致过程。

1. 打印一张棋盘格标定图纸,将其贴在平面物体的表面。

2. 拍摄一组不同方向棋盘格的图片,可以通过移动相机来实现,也可以移动标定图片来实现。

3. 对于每张拍摄的棋盘图片,检测图片中所有棋盘格的特征点(角点,也就是下图中黑白棋盘交叉点,中间品红色的圆圈内就是一个角点,四个对角(红黄蓝绿)是最特别的角点)。我们定义打印的棋盘图纸位于世界坐标系Zw=0的平面上,世界坐标系的原点位于左图棋盘图纸的固定一角(比如下图中黄色点)。像素坐标系原点位于右图图片左上角。

因为棋盘标定图纸中所有角点的空间坐标是已知的,这些角点对应在拍摄的标定图片中的角点的像素坐标也是已知的,如果我们得到这样的N>=4个匹配点对(越多计算结果越鲁棒),就可以根据LM等优化方法得到这个视角下的单应矩阵H。当然计算单应矩阵一般不需要自己写函数实现,OpenCV中就有现成的函数可以调用。

但是,以上只是理论推导,在真实的应用场景中,我们计算的点对中都会包含噪声。比如点的位置偏差几个像素,甚至出现特征点对误匹配的现象,如果只使用4个点对来计算单应矩阵,那会出现很大的误差。因此,为了使得计算更精确,一般都会使用远大于4个点对来计算单应矩阵。另外上述方程组采用直接线性解法通常很难得到最优解,所以实际使用中一般会用其他优化方法,如奇异值分解、Levenberg-MarquaratLM)算法

通过以上方法求得的单应性矩阵H后,以下是通过H反推相机的内外参

通过上面2.28与2.29得:

 ​​​

  可以自行计算B为对角矩阵,所以B只有6个未知数,所以向量b设置6个参数即可

 

部分图片来自B站视频截图,欢迎交流学习。

强烈建议看这个文章:相机标定之张正友标定法数学原理详解(含python源码) - 知乎

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章