基于MATLAB中calibration toolbox的相机标定应用研究
扫描二维码
随时随地手机看文章
摘 要: 相机标定的目的是确定相机的几何和光学参数以及相机相对于世界坐标系的方位。calibration toolbox作为一个标定工具,容纳了如Tsai、Faugeras等多种经典的标定方法,从自主标定的使用方面详细介绍了calibration toolbox的使用方法。
关键词: 相机标定; MATLAB; 标定工具箱
随着人们对可视化要求的提高,计算机视觉作为一门新兴的高科技学科,被越来越多地应用于产品在线质量监控、微电子器件的自动检测、各种模具三维形状的测量及生产线中机械手的定位与瞄准等[1,2]领域。相机标定作为计算机视觉中最基础的一部分,已形成了很多种标定方法,有关理论问题也得到了较好的解决,当前的研究工作应该集中于如何针对具体的实际应用问题,采用特定的简便、实用、快速、准确的标定方法[3-6]。
MATLAB中的相机标定工具箱(camera calibration toolbox)提供了各种例程以及标定方法,非常详细,甚至还提供了方格型的靶标。用户接口方便灵活,在相机标定时使用非常简单,而且该工具箱的C源码在开源计算机视觉库中开放,为深入学习进行二次开发提供了理想的条件[7-9]。摄像机的标定与相机同理。
1 相机标定原理
标定中有3个不同层次的坐标系:世界坐标系、相机坐标系和像平面坐标系(物理坐标系和像素坐标系),如图1所示。
1.1 世界坐标系
世界(world)坐标系也称真实或现实世界坐标系,用XwYwZw表示,它是客观世界的绝对坐标(所以也称客观坐标系)。一般的3D场景都用这个坐标系来表示。
1.2 相机坐标系
相机坐标系是以相机为中心制定的坐标系,用XcYcZc表示,一般取相机的光学轴为Zc轴。
1.3 像平面坐标系
图像物理坐标系是在相机内所形成的像平面xy坐标系,一般取像平面与相机坐标系平面平行。
图像像素坐标系是在相机内所形成的uv坐标系,一般取像平面∏的左上角为原点。
图像上每一点的亮度与物体某个表面点的反射光的强度有关,而图像点在图像平面上的位置仅与相机空间物体的相对方位和相机的内部结构有关,相机的内部结构是由相机的内部参数所决定的。为了描述相机的成像几何关系,需要对相机进行数学建模。通常采用针孔模型,也称为线性模型,这种模型在数学上是三维空间到二维平面的中心投影,由一个3×4矩阵来描述,这种模型是一个(退化的)摄影变换,因此通常又称它为摄影摄像机。
1.4 相机标定原理
相机标定是指建立摄像机图像像素位置与场景点位置之间的关系,其途径是根据相机模型,由已知特征点的图像坐标和世界坐标求解相机的模型参数,如图2所示。相机需要标定的模型参数分为内部参数和外部参数,转换关系为:
世界坐标系中的点到相机坐标系的变换可用一个正交变换矩阵R和一个平移变换矩阵T表示,fx、fy、γ、u0、v0是线性模型的内部参数,其中fx、fy分别定义为X和Y方向的等效焦距,u0、v0是图像中心(光轴与图像平面的交点)坐标,γ是u轴和v轴不垂直因子;R和T是旋转矩阵和平移矩阵。若已知矩阵M1、M2,就可建立起世界坐标和像素坐标的对应关系。相机的标定任务就是求出每个变换矩阵中的参数。
由于相机光学系统并不是精确地按理想化的小孔成像原理工作,存在透镜畸变,即物体点在相机成像面上实际所成的像与理想成像之间存在光学畸变误差[2,3]。主要的畸变误差有三类:径向畸变、偏心畸变和薄棱镜畸变,分别用δr、δd、δp表示。第一类只产生镜像位置的偏差,后两类则既产生径向偏差,又产生切向偏差。
考虑畸变后,图像平面理想图像点坐标(Xu,Yu)等于实际图像点坐标(Xd,Yd)与畸变误差之和,即:
2 相机标定
相机的输出画面分辨率为3 280×2 460,采用黑白棋盘作为标定模板,模板正方形边长为30 mm。实时标定过程如下:
(1)运行标定主函数calib_gui,显示如图3所示模式选择窗口。
通过这个操作,可以选择一次性上传所有标定照片或在电脑内存不足的情况下分张上传。无论选择哪种模式,都会有相同的用户窗口,接下来的标定过程可全部由此窗口完成,如图4所示。