《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于MATLAB中calibration toolbox的相机标定应用研究
基于MATLAB中calibration toolbox的相机标定应用研究
来源:微型机与应用2011年第14期
张 曦1, 黄 亮1, 徐 洋2, 郭冬霄2
(1.重庆市电力公司南岸供电局,重庆 400060; 2. 重庆邮电大学,重庆 400065)
摘要: 相机标定的目的是确定相机的几何和光学参数以及相机相对于世界坐标系的方位。calibration toolbox作为一个标定工具,容纳了如Tsai、Faugeras等多种经典的标定方法,从自主标定的使用方面详细介绍了calibration toolbox的使用方法。
Abstract:
Key words :

摘   要: 相机标定的目的是确定相机的几何和光学参数以及相机相对于世界坐标系的方位。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所示。

 

 

 (2)在主窗口中通过读取图片,可以获得所要标定的照片。
 (3)获取角点。程序运行界面如图5所示。程序标定结果如下:

        %--Focal length:
    fc=[3463.194803808018200;3807.341090056066200];
        %--Principal point:
    cc=[1633.861831663415600;1394.235351077526500];
               %--Skew coefficient:
         alpha_c=0.000000000000000;
               %--Distortion coefficients:
        kc=[-0.208188511841198;0.035081678657317;0.0023875
81735940;0.000491712255333;0.000000000000000];
               %-- Focal length uncertainty:
      fc_error=[260.123743256455500;284.746622601852150];
         %--Principal point uncertainty:
     cc_error=[36.917650368224287;47.589021356646775];
               %--Skew coefficient uncertainty:
     alpha_c_error=0.000000000000000;
               %--Distortion coefficients uncertainty:
    kc_error=[0.031723675208984;0.077972615251388; 0.002
023682615518;0.001567520438212;0.000000000000000];
               %--Image size:
        nx=3280;
       ny=2460;
               %--Various other variables (may be ignored if you do not use the Matlab Calibration Toolbox):
               %--Those variables are used to control which intrinsic parameters should be optimized
    n_ima=12;
        %Number of calibration images
        est_fc=[1;1];    
        %Estimation indicator of the two focal variables
        est_aspect_ratio=1;
        % Estimation indicator of the aspect ratio fc(2)/fc(1)
       center_optim=1;
        % Estimation indicator of the principal point
         est_alpha=0;
        % Estimation indicator of the skew coefficient
        est_dist=[1;1;1;1;0];
        %Estimation indicator of the distortion coefficientspoint
       est_alpha=0;        
        % Estimation indicator of the skew coefficient
    est_dist=[1;1;1;1;0];
        % Estimation indicator of the distortion coefficients
    从实验可以看出,使用MATLAB中的标定工具箱可以很快地得到标定结果,操作简单易懂,可视化效果好,对结果误差、畸变等可以图像的方式显示。
参考文献
[1] 张广军.视觉测量[M].北京:科学出版社,2008.
[2] 吴福朝.计算机视觉中的数学方法[M]. 北京:科学出版社,2008.
[3] ROGER Y. TSAI. A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses[J]. IEEE Journal of  robotics and automation, 1987,RA-3(4):323-344.
[4] TSAI R Y. An efficient and accurate camera calibration technique for 3D machine vision[M]. Proc. of IEEE Conference of computer Vision and Pattern Recognition, 1986:364-374.
[5] ZHANG Z Y. Flexible camera calibration by viewing a plane from unknown orientations[C].In: Proceedings of the International Conference on Computer Vision (ICCV’99),1999:666-673.
[6] 靳志光,卫建东,张冠宇,等.基于LCD的相机标定新方法[J].遥感应用, 2008,1:87-90.
[7] Meng Xiaoqiao, Hu Zhanyi. A new easy camera calibration technique based on circular points[J]. pattern recognition, 2003,36(5):1155-1164.
[8] WU Y H, ZHU H J, HU Z Y, et al. Camera calibration from the quasi-affine invariance of two parallel circles[C]. In Proc. European Conference on Computer Vision(ECCV’2004), 2004,I:190-202.
[9] 徐德,赵晓光,涂志国,等.基于单特征点的手眼系统摄像机标定[J].IEEE Transtration on Pattern Analysis and Machine Intelligence, 2000,22(11):1330-1334.
 

此内容为AET网站原创,未经授权禁止转载。