一、张正友标定法
参考教程:https://blog.csdn.net/heroacool/article/details/50286677
https://blog.csdn.net/u010128736/article/details/52860364
1、计算单应性矩阵Honograhy
设:
则描述空间坐标(标定所使用的棋盘)到图像坐标的映射的关系是:
其中:
s: 世界坐标系到图像坐标系的尺度因子
A: 相机内参矩阵
(u0,v0): 像主点坐标
α, β: 焦距与像素横纵比的融合
γ: 径向畸变参数
设棋盘格位于Z = 0,定义旋转矩阵R的第i列为 ri, 则有:
于是空间到图像的映射可改为:
H是单应性矩阵Homography,可通过最小二乘,从角点世界坐标到图像坐标的关系求解
令 H 为 H = [h1 h2 h3],
2、计算内参数矩阵
设H中的第i列为 hi,
根据b的定义,可以推导出如下公式,
可以推导出,如果有n组观察图像,则V 是 2n x 6 的矩阵
根据最小二乘定义,V b = 0 的解是 VTV 最小特征值对应的特征向量。
因此, 可以直接估算出 b,后续可以通过b求解内参
内部参数可通过如下公式计算(cholesky分解):
3、计算外参数矩阵
外部参数可通过Homography求解,由 H = [h1 h2 h3] = λA[r1 r2 t],可推出
相机标定基本步骤:
1、打印一张棋盘格A4纸张(黑白间距已知),并贴在一个平板上
2、针对棋盘格拍摄若干张图片
3、在图片中检测特征点(Harris特征)
4、利用解析解估算方法计算出5个内部参数,以及6个外部参数
5、根据极大似然估计策略,设计优化目标并实现参数的refinement
二、基于张正友标定法用Matlab实现相机标定
拍摄工具:IPHONE 7PLUS
棋盘规格:8 * 8
棋盘格规格:21.8 * 21.8mm
采用的是matlab自带工具包实现相机标定
参考教程:https://blog.csdn.net/heroacool/article/details/51023921
点击应用程序,选择CameraCalibator
添加图片,点击AddImages添加图片进行标定
所使用的照片共15张,如下
导入图片后,输入棋盘格大小,实验中棋盘格为21.8 * 21.8mm
可以得到:
点击Calibrate,进行标定
绿色圈所圈出来的是棋盘的角点
平均误差为1.74
点击Export Camera Parameters,可以看到相机参数
在matlab工作空间输入cameraParams.IntrinsicMatrix,可查看内参矩阵、径向畸变