相机标定实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相机标定
一、实验原理
相机标定就是求解相机的内参数以及畸变参数的过程。
相机的标定主要有两种:传统的摄像头标定方法和摄像头自标定方法,典型的有:(1)Tsai(传统的标定方法);(2)张正友(介于传统和自标定之间)。1999年,微软研究院的张正友提出了基于移动平面模板的相机标定方法。此方法是介于传统标定方法和自标定方法之间的一种方法,传统标定方法虽然精度高设备有较高的要求,其操作过程也比较繁琐,自标定方法的精度不高,张正友标定算法克服了这两者的缺点同时又兼备二者的优点,因此对办公、家庭的场合使用的桌面视觉系统(DVS)很适合。张正友标定方法由于简单、效果好而得到广泛使用。
张正友标定法的标定步骤:
1、打印一张模板并贴在一个平面上;
2、从不同角度拍摄若干张模板图像;
3、检测出图像中的特征点;
4、求出摄像机的外参数(单应性矩阵)和内参数(最大似然估计);
5、求出畸变系数;
6、优化求精。
张正友标定方法的主要思想是:
1、相机内参矩阵
其中,
q 的坐标系是默认的OpenCV 的像素坐标系,Q 的坐标系是标定板坐标系,Z 轴为0,原点在标定板的某个内角点上(标定板上角点的坐标均为[*,*,0]的形式),在OpenCV 3.0中使用的是([i ∗Squres_Size ,j ∗Square_Size ,0]的形式)。其中fx 和fy 表示相机x 轴和y 轴的焦距,s 表示成像平面x 轴和y 轴的不正交性。
2、基础公式
对于不同位置的棋盘格到相机的成像,可以使用下面的公式进行表示:
其中,[R|t]表示棋盘格坐标系相对于相机坐标系的位姿。把矩阵R 和M ~
写
开,如下式所示:
进行化简得:
其中[u v 1]是已知量,[X Y 1]也是已知量,A 和[r1 r2 t]是未知量。其中H=A[r1 r2 t]又叫做单应性矩阵,可以使用下面的3中所述的方法求解。
3、单应矩阵求解
这里使用的方法基于最大似然准则:假设提取的m 存在均值为0,噪声协方差矩阵为的高斯白噪声。
则优化目标为
其中
其中i h 是矩阵H 的第i 列,并且假设i i mi M m I ,,2σ=Λ已知,求解上面的非线性优化问题可以使用LM 算法。 初始值求解:
令[]
321,,h h h x =,则M H m s ~~=可以重写为
对于n个点,对应n个方程,Lx=0,其中x是1×9的,L是2n×9的。x的解对应于L的最小奇异值的右奇异向量。
4、求解相机内参
利用约束条件求解内参矩阵A:
在公式中,由于r1和r2是单位向量且是正交的,所以存在下面的关系:
上面的公式写成方程组的形式如下所示:
上面的等式是一个最小二乘问题,可以使用SVD求解.由于A有5个参数:α,β,u0,v0,γ一个单应性矩阵对应两个约束,所以求解A需要3个单应性矩阵,也就是最小需要3幅图像(超定方程)。当然,也可以使用两个单应性矩阵,此时需要令γ=0。算出了b之后,可以用下面的公式求A。
5、求解相机外参
在上面求解了相机的内参之后,可以求出棋盘格的位姿,公式如下:
在OpenCV中,上面的公式是用来求解优化参数的初始值的,最终的结果是使用优化的方法得到的。
由于存在误差,还是需要迭代求解以提高精度(问题描述如下):
给定棋盘格的n个图像和m个角点,并假设图像点被独立同分布的噪声影响。
似然函数如下所示:
其中旋转矩阵R 用向量r 表示(罗巨格公式)。
6、相机的畸变参数求解
记(u,v)为理想的像素坐标,
为实际观测得到的像素坐标(受到畸变)。
同样的,有归一化的相机坐标系(x ,y)和
。
对于径向畸变:
用像素坐标表示则为:
写成如下形式:
给定n 个图像中的m 个点,可以得到2mn 个方程,记为Dk=d 。 则()
d D D
D k T T 1
-=
最小二乘方法求解:
如果求解了畸变参数k1和k2,则可以求解出没有畸变的坐标,从而使用上面的方法求解位姿和内参。(畸变参数k1和k2初始化可以简单的设为0。)
OpenCV 的模型还包括了切向畸变,并且镜像畸变有三项。因此,OpenCV 中一共有五个参数[k1,k2,p1,p2,k3]。
7、OpenCV 的标定步骤
1、初始化参数求解; a 、求解单应性矩阵;
b 、根据理论的第4步求解相机内参的初始值;
c 、根据理论的第5步求解相机外参的初始值;
d 、畸变参数设置为0。
2、迭代求解总体最小二乘问题,也就是上面6所示的最小二乘问题。
二、实验结果
此处只显示一张图片为例,下图为原图片、校正后的图片以及标定的图片:
运行结果如下:
每幅图像的标定误差:
第1幅图像的平均误差:0.0659641像素第2幅图像的平均误差:0.064092像素第3幅图像的平均误差:0.0626566像素第4幅图像的平均误差:0.06671像素
第5幅图像的平均误差:0.0679925像素第6幅图像的平均误差:0.0671491像素第7幅图像的平均误差:0.0658722像素第8幅图像的平均误差:0.0622518像素第9幅图像的平均误差:0.0598439像素第10幅图像的平均误差:0.0597705像素
总体平均误差:0.0642303像素
相机内参数矩阵:
[4647.519111875004, 0, 936.3966456915516;
0, 4672.655609872659, 397.6431398815363;
0, 0, 1]
畸变系数:
[-0.03490484218080629, -3.960345879900159, -0.01107630076788155, -0.006547187271713956, -2.224948187478699]
第1幅图像的旋转向量:
[-20.75017314309292;
-4.484167435853328;
556.6954023094822]
第1幅图像的旋转矩阵:
[-0.5057361118315893, 0.861284872044086, -0.04918693299514142;
-0.8603807668570445, -0.5077302640246805, -0.04421442090440898;
-0.06305490632734467, 0.0199586618146247, 0.9978104682787302]
第1幅图像的平移向量:
[-0.1470392111668472;
-3.139232896018378;
-0.04121913110947828]
第2幅图像的旋转向量:
[-20.73617167770193;
-4.481114007558208;
556.6471225514971]
第2幅图像的旋转矩阵:
[-0.5470912939554095, 0.8355236059055473, -0.05090599230726645;
-0.8345957673179489, -0.5491378079309527, -0.04356114180955369;
-0.06435076730824343, 0.01865400427200083, 0.997752978883782]
第2幅图像的平移向量:
[-0.1465234029496155;
-3.138856852621159;
-0.04222551390139223]
第3幅图像的旋转向量:
[-20.74887860969298;
-4.474639433402478;
556.8082716236654]
第3幅图像的旋转矩阵:
[-0.4058075595012663, 0.9128475849885876, -0.04505009691587029;