Artificial Intelligence and Robotics Research
Vol.3 No.02(2014), Article ID:13535,8 pages
DOI:10.12677/AIRR.2014.32005

Machine Vision Pixel Calibration

Dong Li, Maoqing Zhang

Institute of Mechanical and Electric Engineering, Soochow University, Suzhou

Email: jerry.dong.li@gmail.com

Copyright © 2014 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

Received: Mar. 17th, 2014; revised: Apr. 12th, 2014; accepted: Apr. 20th, 2014

ABSTRACT

We describe a method for the machine vision calibration. Based on pinhole camera model, we calibrate several pictures taken by a tablet. With geometry coordinate system transformation and combination of homogeneous graphics, this method calculates the camera intrinsic and extrinsic parameters considering of lens distortion. This method could be used for machine vision camera calibration.

Keywords:Camera Calibration, Intrinsic Parameter, Extrinsic Parameter, Distortion

机器视觉的像素校准

李  冬,张茂青

苏州大学机电学院,苏州

Email: jerry.dong.li@gmail.com

收稿日期:2014年3月17日;修回日期:2014年4月12日;录用日期:2014年4月20日

摘  要

描述了一种机器视觉校准的方法。在基于小孔成像相机模型的基础上,使用平板拍取若干张照片进行校验。采用几何坐标变换,并且结合齐次图形学,考虑相机镜头畸变的情况下,计算出相机的内参和外参。此类方法可以广泛御用使用于机器视觉的相机的校准。

关键词

相机校准,内参,外参,畸变

1. 引言

机器视觉,主要是指使用相机,自动通过CCD或者CMOS获得图像,之后对于图像进行分析,此类分析可以是自动或者人工判断。随着如今工业自动化程度的提高,越来越多的机器视觉被用在工业生产之中,可以说近二十年里,机器视觉得到了飞速的发展。

在机器视觉的使用中,尺寸或者形状的测量会被大量应用到,和普通测量工具一样,此类机器视觉在使用前需要进行像素校准。

2. 机器视觉的像素校准介绍

机器视觉的像素校准,是指由把由相机拍摄的图片和实物进行比较计算,获得两者之间的数学关系,并可通过此关系来矫正图片,以此消除图片拍摄时由多种误差产生的形变。对于用来测量的机器视觉,尤其是高精度测量的视觉系统,像素校验是必不可少的一环。

一张相机拍摄的图片,是通过像素为单位来存储所有信息的。像素校验使用了数学方法,把以像素为单位的图片还原为我们常用的测量单位,如毫米,英尺等。

和普通摄影一样,当知道了焦距,CCD或者CMOS的大小等硬件参数后,我们可以初略计算出其比例关系。如,1个像素对应1毫米,那100个像素就对应100毫米。但是,在相机拍摄图像时候,由于CCD或者CMOS的微小形变,以及镜头的畸变,外加拍摄角度的问题,其比例不是完全线性的。这个时候就需要用到像素校验,它通过复杂计算,系统的产生整个图像于真是世界的映射关系。如下常见的形变图片,需要通过像素校验还原:

-由于拍摄距离产生的形变图片

-由于拍摄角度产生的形变图片

-由于CCD或者CMOS以及镜头产生的形变图片

-由于实物三维的高低/前后/上下产生的形变图片

3. 机器视觉的像素校准的步骤以及计算方法

1) 制作带圆点的长方形校准板,其中板的颜色为白色,圆点颜色为黑色。

2) 使用相机拍摄校准版,可以得到形变后的图像

3) 使用数学方法,得到两个图像的映射关系

通过比较图片和实物,圆点中心点的水平差值dx和垂直差值dy。

数学公式表示如下:

1) 基于物理特性的数学映射方法如下:

校准板

校准板在相机的投影

-校准板的坐标系为(Xw, Yw, Zw)

-图片坐标系为(Xc, Yc),其中X,Y对应图片中的X和Y轴,而Z则是处于镜片光轴方向,其中Zc = f (焦距)。

-相机坐标系为1、2、3、4点,是校准板在相机平面上的投影

可以使用如下公式描述校准板到相机坐标的变换:

其中

Pw:表示校准版上的实物坐标点;

Px:表示相机坐标上的坐标点;

R:表示实物坐标到相机坐标的一个角度矩阵(为相机的外参);

T:表示实物坐标和相机坐标的平移差值(为相机的外参);

可以使用如下公式描述从相机坐标系到图片坐标系的变换:

其中

Pc:表示图片坐标上的点,用(Xc, Yc)显示;

Px:表示相机坐标上的坐标点,用(Xx, Yx, Zx)显示;

s:表示放大系数;

M:表示相机成像的特性(可以称为相机的内参)。

包含了如下特性参数:

-焦距;

-光轴与成像平面的交点;

-像素大小;

-像素切错系数(pixel skew angle);

为了计算方便,我们使用如下行列式表示M[1] :

其中:

F:表示焦距;

Sx:表示水平每毫米的像素个数;

Sy:表示垂直每毫米的像素个数;

Cx:表示光轴与成像平面焦点的水平位置;

Cy:表示光轴与成像平面焦点的垂直位置;

a:表示y相对于x的切错,此切错一般因为感光芯片没有放置在光轴垂直位置,通常为0。

2) 畸变的影响:

常见的畸变分为辐射畸变和正切畸变。

辐射畸变,是由于镜片的偏差产生的,可以用如下图表示:

其中:P1A为无畸变情况下,点P1在图像平面上的投影;

P1D:为畸变情况下,点P1在图像平面上的投影;

P2A:为无畸变情况下,点P2在图像平面上的投影;

P2D:为畸变情况下,点P2在图像平面上的投影。

对于辐射畸变可以使用如下公式进行纠正[2] :

正切畸变,是由于CCD或者CMOS安装偏差导致的,可以使用如下图表示:

对于正切畸变,可以使用如下公式进行纠正:

4. 使用软件进行相机像素校验

基于上述理论知识,可以配合视觉软件进行实验。这里选取了使用开源软件OpenCV来进行校验。

基于OpenCV的相机校验:

OpenCV使用方格棋盘做为校验板:

如果要获得相机的内参,外参以及畸变,可以使用OpenCV提供的校验函数:

void cvCalibrateCamera2(

CvMat* object_pointsCvMat* image_pointsint* point_countsCvSizeimage_sizeCvMat* intrinsic_matrixCvMat* distortion_coeffsCvMat* rotation_vectors CvMat* translation_vectors = NULL, int flags = 0

);

使用此函数,至少需要对于校验板使用不同角度,拍取2张图片。如果要获得准确度高的结果,建议使用拍取不同角度的多张图片来进行校准。

校准前:

校准中:

校准后:

对于提高精度,也可以使用圆点校验板,但是这样需要修改一些OpenCV的代码。

使用圆点校验板校验:

校验前:

校验中:

校验后:

由于篇幅有限,这里就不详述其软件代码,有兴趣的读者可以邮件联系我。

5. 结论

通过考虑常见畸变,相机内参和相机外参的影响,建立坐标系模型,可以较为准确的给予机器视觉进行像素校准。对于不同校验板以及多维度的校验板,需要进一步实验确认其精确度。

参考文献 (References)

  1. [1]   Sonka, M., Havac, V. and Boyle, R. (2011) Image Processing, Analysis, and Machine Vision. 4th Edition, Cengage Learning, New York.

  2. [2]   Bradski, G. and Kaehler, A. (2008) Learning OpenCV: Computer Vision with the OpenCV Library. O’Reilly, Sebastopol.

期刊菜单