机器视觉系统对产品表面缺陷的检测方案一直是视觉方案中的难点,本文详细介绍一下设计机器视觉表面缺陷检测系统开发的过程和要点。
缺陷系统设计要点
大多数基于PC的视觉系统都可以执行检测任务,在设计构缺陷检测系统时,首先需要确定要完成什么样的检测任务以及该任务对性能的具体要求。例如在电子产品制造中大多数视觉系统用于发现有缺陷零部件,那么摄像头加上视觉系统能看到缺陷吗?回答这个问题常常需要先建立一个不良品和良品测试数据库,然后在这个基础上构建一个使用该图像数据库作为样本的样机系统,这种方法的优点是对样机只需很少改动就能得到正确的软件设置。
照明系统的选用
在视觉检测应用中照明非常关键,因为它能保证图像采集是在一致条件下进行的。应使用正确的照明,使被测部件与周围背景形成鲜明的对比,并得到尽可能多的灰度等级,这样视觉效果就会明显表现出来。对于高速运动的部件,还可以用闪光光源使图像瞬时固定。
外界自然光的影响
照明的另外一个目的是减小反射。有时反射来自周围自然光线,会随时间而变化,因此同样的场合白天和夜晚相比光线变化要大得多,这就需要配置照明或使用光罩,以遮挡周围的光线。
硬件考虑因素
选择视觉系统首先要选择正确的摄像头和镜头。构建图像的基本单元称为像素,一幅普通图像实际上是成千上万像素填满的图框。具体应用要求不仅包括每幅图像所需像素数,还要包括摄像头镜头类型。
相机颜色的影响
另外一个要决定是用彩色还是单色。虽然彩色摄像头能够产生更吸引人的图像,但彩色并不能增加多少有价值的信息,而且一般情况下需要用更多的时间来进行处理(单色图像通常是8位/像素,而彩色图像需要32位/像素),这一点在测量边缘距离应用中特别突出。然而有时候色彩是唯一辨别因素,这时彩色就变得很重要,例如在检测熔断丝、电容或电阻时可能需要搜索某种特定的色彩。对于高分辨率彩色应用场合,可以考虑使用三片式或RGB摄像头。
在选择基于PC的视觉系统时,还需要图像采集硬件,这时要考虑的特性包括驱动软件,以及硬件能否很好与运动控制和数据采集集成在一起。例如可以用运动控制监测部件传送带的速度,使得图像采集与整个流程同步;还可以将机器振动、压力监控和温度控制包括在生产系统中,以便预先制订维护计划。用户能够很容易将传送带控制与图像采集硬件集成在一起,从而在数据采集硬件、软件和运动控制之间实现同步,得到一个完整的解决方案。
边缘检测
边缘检测的一个用途是通过测量两个边缘的间距来判定部件缺陷,这类测量很容易用PC实现自动化,测量计算越来越快,这对那些对时间要求很苛刻的人来讲是一个重要的考虑因素。
也可以用边缘检测来检测部件上某个特定部分,它对部件上的边缘数进行计数,然后将这个数与预置数据相比较,依此完成搜索。如果值匹配,说明部件上找到这一部分,如果值不匹配,就认为部件有缺陷。
关于边缘的定义是指图像中相邻像素灰度值出现明显变化的区域。边缘检测沿搜索区域对一个一维曲线像素值进行搜索,一维搜索区域可以是直线、圆弧、椭圆弧、矩形或多边形的边界,或者手绘区域的边线,软件对沿线像素值进行分析,检测是否有明显的强度变化。
用户可以指定强度变化的临界值,以判定什么样的变化构成边缘,这些参数包括:边缘强度,用来定义背景和边缘之间灰度值小差;边缘长度,指边缘和背景之间产生所需灰度差必需一定距离;边缘极性,判断边缘是往上升的边还是往下降的边;边缘位置,用来确定图像中边缘的X,Y坐标。通过改变这些值,用户可以用编程方法定义各种临界值,以发现不同成像环境下的各个边缘。
产品缺陷图形匹配识别
所谓图形匹配,就是先有一个己知图案(模板),然后判定这种图案在被检部件上是否存在,或是将其当作基准作为进行其它测量的起点。传统图形匹配技术包括标准互相关、锥形匹配和比例常数匹配。
标准互相关是在图像中寻找图案常用的方法。由于其内部原理是基于系列乘法操作,所以相关运算过程很费时间,但使用像MMX之类的新技术能够进行并行乘法,可减少总计算时间。用户可通过缩小图像尺寸或限制图像匹配区域加速匹配过程。不过基本标准互相关技术还是不能满足许多应用对速度的要求。
也可以通过缩小图像和模板图案的尺寸减少计算时间,锥形匹配就是这样一种技术。在这种方法里,对图像和模板两者都进行部分采样,使其空间分辨率变小,甚至可以将图像和模板尺寸减至它们原始尺寸的四分之一。这样首先在缩小的图像中进行匹配运算,因为图像小了,匹配更加快速,处理完成后,只有原始图像具有很高匹配度才考虑继续进行余下匹配处理。
当图像没有缩放和旋转时,标准互相关是探查图形一个很好的方法,互相关一般能检测同一尺寸图形旋转5至10度后的图像。但将相关计算范围进行延伸以检测那些比例变化和旋转较大的图形则比较困难,对于按比例变化的图形,用户必须重复缩放或调整模板尺寸,然后进行相关运算,这给匹配过程增加很大工作量;而对于旋转的处理更加困难,如果能够从图像中找到有关旋转的线索,则可以简单地旋转模板并进行相关运算,但如果旋转的性质不知道,寻找匹配需要对模板进行尽可能多的旋转处理。