怎样进行机器视觉的像素校准?

网友投稿 403 2024-02-08


摘要

怎样进行机器视觉的像素校准?

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

 

1. 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数学公式表示如下:

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

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

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

其中: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] Sonka, M., Havac, V. and Boyle, R. (2011) Image Processing, Analysis, and Machine Vision. 4th Edition, Cengage Learning, New York.

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:对于一套完整的机器视觉系统,它的工作步骤是怎样的
下一篇:机器视觉系统设计的关键技术
相关文章

 发表评论

暂时没有评论,来抢沙发吧~