一种基于OpenCV的摄像机标定算法的研究与实现作者:孙昆 穆森 邱桂苹 赵倩一个度导航
来源:《电子世界》2012年第14期 【摘要】摄像机标定是计算机视觉中的一个重要问题。本文介绍了标定的基本原理,详尽阐述了使用二维模板的标定算法,重点分析了如何借助开源软件OpenCV实现该算法。实验结果显示,使用OpenCV中的相关函数,可以方便地进行数学计算,简单有效地完成摄像机标定。
【关键词】摄像机标定;内部参数;单应性矩阵;OpenCV 1.引言
计算机视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体。而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。 摄像机标定是确定摄像机内外参数的一个过程,其中内参数的标定是指确定摄像机固有
的、与位置参数无关的内部几何与光学参数,包括图像中心坐标(也称主点坐标)、图像纵横比、相机的有效焦距和透镜的畸变失真系数等;外参数的标定是确定摄像机坐标系相对某一世界坐标系的三维位置和方向关系。
目前,摄像机标定技术主要有两种实现方法:
(1)基于标定物的方法:需要尺寸已知的标定参照物,通过建立标定物上三维坐标已知点与其图像点之间的对应,利用一定的算法获得摄像机的内外参数。标定物可以是三维的,也可以是二维共面的。三维标定物条件下,只需一幅图像就可以求出摄像机的全部内外参数。但三维标定物的加工和维护比较困难。二维共面标定物加工维护简单,但一幅图像不足以标出所有的摄像机参数,因此需要简化摄像机模型,或者从不同角度获取多幅图像来同时标出所有的参数。当应用场合要求的精度很高而且摄像机的参数不经常变化时,这种标定法应为首选。
(2)自标定法:不需要标定物,仅依靠多幅图像对应点之间的关系直接进行标定。利用了摄像机内部参数自身的约束,而与场景和摄像机运动无关。该方法非常灵活,但不是很成熟,由于未知参数太多,很难得到稳定的结果。主要用于精度要求不高的场合。本文首
先介绍摄像机模型及标定的基本原理,接下来研究使用简单的二维模板的标定算
法,最后分析如何借助开源软件OpenCV实现算法。
2.摄像机模型
本文使用的摄像机模型为经典的针孔模型,通过透视变换将三维空间中的点投影到图像平面。投影公式如下: sm = A[R t]M (1)
等价于:
(2)
其中,(X,Y,Z)是点的世界坐标,(u,v)是点投影在图像平面的坐标,s是一个任意的尺度因子。A为摄像机内参数矩阵,(,)是主点坐标,(,)是图像坐标系中u轴和v轴的尺度因子。旋转平移矩阵[R|t]被称为外参数矩阵,用来描述相机相对于某一个固定场景的运动,或者相反,物体围绕相机的刚性运动。也就是[R|t]将点(X半导体制冷空调,Y,Z)的坐标变换到某个坐
标系,这个坐标系相对于摄像机来说是固定不变的。
3.基于平面模板的标定算法步进式开水机
这里借鉴张正友苯乙烯树脂[4]的平面标定方法,假设平面模板位于世界坐标系Z=0的平面上,旋转矩阵R的第i列以标识。从公式(2)我们可以得到下面的关系:
(3)
令,那么平面模板上的点M与它的像点m之间的对应可以表示为sm=HM。我们称H为单应性矩阵。在相差一个非零常数因子的前提下,H是唯一的,它实现了平面模板在两个坐标系下图像点之间的一一对应关系。
根据旋转矩阵的特点,和是正交向量,即满足和,可以推出关于内参数的两个约束关系:
(4)
(5)
令,推导后发现B是对称矩阵,可以由下面的6维矢量来定义
如果以标记H的第i列,则有。对一个给定的H,内参数约束关系(4)和(5)就可以用下面的关系表示:
(6)
heff如果我们有n彩油泥副平面模板的图像,则可以得到
(7)
V是的矩阵,当时就可以得到b的唯一解,并根据b来求解摄像机的内参数矩阵A。内部参数确定后,外部参数可以很容易得到。