目录
1.简介
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数(内参、外参、畸变参数)的过程就称之为相机标定(或摄像机标定)。
2.基本原理
2.1 外参矩阵
外参矩阵:世界坐标系转换到相机坐标系的旋转R和平移T矩阵
摄像机模型:
以上将坐标为(X,Y,Z)的Q点映射到投影平面上坐标为(x,y)的q点的过程称作投影变换。
上述Q点到q点的变换关系用3*3的矩阵可表示为:q = MQ ,其中
最终得到的透视变换矩阵为
2.2 内参矩阵
内参矩阵是将3D相机坐标变换到2D齐次图像坐标。
由于定义的像素坐标系原点与图像坐标系原点不重合,假设像素坐标系原点在图像坐标系下的坐标为(u0,v0),每个像素点在图像坐标系x轴、y轴方向的尺寸为:dx、dy,且像点在实际图像坐标系下的坐标为(xc,yc),于是可得到像点在像素坐标系下的坐标为:
转化为齐次坐标:
最终得到变换矩阵为
3.实现步骤
1、打印一张棋盘格(黑白间距已知),把它贴在一个平面上,作为标定物。
2、针对棋盘格不同角度拍摄多张照片(一般10-20张)。
3、在图片中检测特征点。
4、估算理想无畸变的情况下,五个内参和六个外参。
5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
6、根据极大似然法策略,优化估计,提升估计精度。
4.matlab实现棋盘格标定
4.1数据集
(以下照片均用 honor9i 拍摄)
4.2实现步骤
应用程序下找到Camera Calibrator,或者直接在命令行窗口输入口令cameraCalibrator
点击Add Images后选择文件夹里的所有图片,填写每个格子的实际大小,我的是17mm
导入图片之后,勾选Skew,Calibrate按钮之后就会出现下面结果
点击ExportCamera后导出相机参数的数据如下:
4.3实验结果:
外部参数(网格对于摄像机的相对坐标,即摄像机坐标系):
在这幅图上,坐标系是摄像机坐标系。蓝色的xc,yc,zc对应着摄像头的视角
在这幅图上,坐标系是世界坐标系。每张图片拍摄相机的位置和方向都被表示出来
相机内部参数矩阵:
5.总结
在进行张正友相机标定时,过程相对比较简单,但是下拍摄图片时,应该保证把棋盘的角点拍摄清楚,不然在进行图片筛选时,会不被选中。