摄像机标定学习笔记(13)摄像机标定参数描述

资料来源:http://www.vision.caltech.edu/bouguetj/calib_doc/

标定参数描述[Description of the calibration parameters]

标定之后 ,单击Save,参数清单会被保存在matlab文件Calib_Results中。变量清单可以被分成两个范畴:内参数和外参数。 [After calibration, the list of parameters may be stored in the matab file  Calib_Results  by clicking on  Save . The list of variables may be separated into two categories: Intrinsic parameters and extrinsic parameters.]

内参数(摄像机模型)[Intrinsic parameters (camera model):]

内部摄像机模型非常类似于H和S在芬兰Oulu大学使用的模型。可访问他们的网上标定页以及出版物页。我们具体推荐他们的VPR'97论文:一种带有隐含图像校正的四部摄像机标定法。[The internal camera model is very similar to that used by Heikkil? and Silven at the University of Oulu in Finland. Visit their online calibration page, and their publication page. We specifically recommend their CVPR'97 paper: A Four-step Camera Calibration Procedure with Implicit Image Correction.]

内部参数列表[The list of internal parameters:]

  • 焦距:摄像机光心与主点之间的距离称为焦距,它以像素为单位储存在2*1矢量fc中。[Focal length: The focal length in pixels is stored in the 2x1 vector fc.]
  • 主点:摄像机光轴与图像平面的交点,即图像中心被称为主点,其坐标(u0,v0)被保存在2*1矢量cc中。[Principal point: The principal point coordinates are stored in the 2x1 vector cc.]
  • 偏态系数:偏态系数定义x和y像素轴之间的夹角,被保存在标量alpha_c中。[Skew coefficient: The skew coefficient defining the angle between the x and y pixel axes is stored in the scalar alpha_c.]
  • 畸变:图像畸变系数被保存在5*1矢量kc中。[Distortions: The image distortion coefficients (radial and tangential distortions) are stored in the 5x1 vector kc.]


内部参数的定义[Definition of the intrinsic parameters:]

假设P是摄像机参考帧坐标矢量XXc = [Xc;Yc;Zc]空间中的一个点 [Let P be a point in space of coordinate vector XXc = [Xc;Yc;Zc] in the camera reference frame.]
现在我们按照内参数(fc,cc,alphac,kc)把该点投影在图像平面上[Let us project now that point on the image plane according to the intrinsic parameters (fc,cc,alpha_c,kc).]
假设xn是归一化的针孔图像投影:[Let xn be the normalized (pinhole) image projection:]

Let r2 = x2 + y2.
考虑到透镜畸变,新的归一化点坐标xd被定义如下:[After including lens distortion, the new normalized point coordinate xd is defined as follows:]

其中dx是切向畸变矢量:[where dx is the tangential distortion vector:]  

Therefore, the 5-vector kc contains both radial and tangential distortion coefficients (observe that the coefficient of 6th order radial distortion term is the fifth entry of the vector kc).
It is worth noticing that this distortion model was first introduced by Brown in 1966 and called "Plumb Bob" model (radial polynomial + "thin prism" ). The tangential distortion is due to "decentering", or imperfect centering of the lens components and other manufacturing defects in a compound lens. For more details, refer to Brown's original publications listed in the reference page.

Once distortion is applied, the final pixel coordinates x_pixel = [xp;yp] of the projection of P on the image plane is:
 


Therefore, the pixel coordinate vector  x_pixel  and the normalized (distorted) coordinate vector  xd  are related to each other through the linear equation:

where  KK  is known as the camera matrix, and defined as follows:


In matlab, this matrix is stored in the variable  KK  after calibration. Observe that  fc(1)  and  fc(2)  are the focal distance (a unique value in mm) expressed in units of horizontal and vertical pixels. Both components of the vector  fc  are usually very similar. The ratio  fc(2)/fc(1) , often called "aspect ratio", is different from 1 if the pixel in the CCD array are not square. Therefore, the camera model naturally handles non-square pixels. In addition, the coefficient  alpha_c  encodes the angle between the x and y sensor axes. Consequently, pixels are even allowed to be non-rectangular. Some authors refer to that type of model as "affine distortion" model.

In addition to computing estimates for the intrinsic parameters  fc cc kc  and  alpha_c , the toolbox also returns estimates of the uncertainties on those parameters. The matlab variables containing those uncertainties are  fc_error cc_error kc_error alpha_c_error . For information, those vectors are approximately three times the standard deviations of the errors of estimation.

Here is an example of output of the toolbox after optimization:

 

In this case  fc = [657.30254 ; 657.74391]  and  fc_error = [0.28487 ; 0.28937] cc = [302.71656 ; 242.33386] cc_error = [0.59115 ; 0.55710] , ...


Important Convention: Pixel coordinates are defined such that [0;0] is the center of the upper left pixel of the image. As a result, [nx-1;0]is center of the upper right corner pixel, [0;ny-1] is the center of the lower left corner pixel and [nx-1;ny-1] is the center of the lower right corner pixel where nx and ny are the width and height of the image (for the images of the first example, nx=640 and ny=480). One matlab function provided in the toolbox computes that direct pixel projection map. This function is project_points2.m. This function takes in the 3D coordinates of a set of points in space (in world reference frame or camera reference frame) and the intrinsic camera parameters (fc,cc,kc,alpha_c), and returns the pixel projections of the points on the image plane. See the information given in the function.
 

The inverse mapping:

The inverse problem of computing the normalized image projection vector xn from the pixel coordinate x_pixel is very useful in most machine vision applications. However, because of the high degree distortion model, there exists no general algebraic expression for this inverse map (also called normalization). In the toolbox however, a numerical implementation of inverse mapping is provided in the form of a function: normalize.m. Here is the way the function should be called: xn = normalize(x_pixel,fc,cc,kc,alpha_c). In that syntax, x_pixel and xn may consist of more than one point coordinates. For an example of call, see the matlab function compute_extrinsic_init.m.


Reduced camera models:

Currently manufactured cameras do not always justify this very general optical model. For example, it now customary to assume rectangular pixels, and thus assume zero skew ( alpha_c=0 ). It is in fact a default setting of the toolbox (the skew coefficient not being estimated). Furthermore, the very generic (6th order radial + tangential) distortion model is often not considered completely. For standard field of views (non wide-angle cameras), it is often not necessary (and not recommended) to push the radial component of distortion model beyond the 4th order (i.e. keeping  kc(5)=0 ). This is also a default setting of the toolbox. In addition, the tangential component of distortion can often be discarded (justified by the fact that most lenses currently manufactured do not have imperfection in centering). The 4th order symmetric radial distortion with no tangential component (the last three component of  kc  are set to zero) is actually the distortion model used by  Zhang . Another very common distortion model for good optical systems or narrow field of view lenses is the second order symmetric radial distortion model. In that model, only the first component of the vector  kc  is estimated, while the other four are set to zero. This model is also commonly used when a few images are used for calibration (too little data to estimate a more complex model). Aside from distortions and skew, other model reductions are possible. For example, when only a few images are used for calibration (e.g. one, two or three images) the principal point  cc  is often very difficult to estimate reliably . It is known to be one of the most difficult part of the native perspective projection model to estimate (ignoring lens distortions). If this is the case, it is sometimes better (and recommended) to set the principal point at the center of the image ( cc = [(nx-1)/2;(ny-1)/2] ) and not estimate it further. Finally, in few rare instances, it may be necessary to reject the aspect ratio  fc(2)/fc(1)  from the estimation. Although this final model reduction step is possible with the toolbox, it is generally not recommended as the aspect ratio is often 'easy' to estimate very reliably. For more information on how to perform model selection with the toolbox, visit the  page describing the first calibration example
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
相机校准是在计算机视觉和图像处理中非常重要的一项技术。它涉及到将图像中的像素坐标与实际世界中的物理坐标相对应。而灵活的新技术可以提供更准确和可靠的相机校准方法。 传统的相机校准技术通常需要使用专门的校准板或标定物,并需要在特定的条件下进行拍摄。然而,这种方法存在很多限制,如需要准备专门的设备和场地,并且耗费时间和精力。此外,这种方法对于不同类型的相机和不同的环境可能不适用。 而这种灵活的新技术采用了一种基于特征点的相机校准方法。通过在不同位置、角度和光照条件下拍摄多张图像,并提取出图像中的特征点,可以建立一个相机模型。接下来,通过优化算法,可以将特征点的图像坐标与其在实际世界中的物理坐标相匹配,从而计算出相机的内部参数和外部参数。这种方法具有很高的灵活性,因为它不需要特殊的校准板或设备,只需要一些常见的场景和物体即可。 这种灵活的新技术可以应用于许多领域,如三维重建、增强现实和机器人导航等。它可以提供更准确和精确的相机校准结果,从而改善图像处理和计算机视觉算法的性能。此外,由于其灵活性,它也更容易被广泛应用于各种不同的相机和环境中。因此,这种灵活的相机校准技术具有很高的实用价值和发展潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值