梁经伦,叶国良,郭建文,吴佳鑫
(东莞理工学院机械工程学院,广东 东莞 523808)
窗体顶端纽扣电池因其体积小,便捷性被广泛应用在各种微型电子产品如电子手表、遥控器、助听器中[1]。在工业生产中,需要对电池表面缺陷进行检测,但是通过人工检测存在效率低,易视觉疲劳等问题。机器视觉技术正在快速发展并越来越成熟,目前国内外学者对基于机器视觉的缺陷检测的研究也取得了一定的成果,在电池行业针对锂电池的缺陷检测较多,如文献[2−4]。
其中,文献[2]基于机器视觉实现锂电池极片的缺陷检测与分类中提出灰度变换和直方图均衡的图像增强算法;对纽扣电池的缺陷检测的研究相对较少,文献[5]基于机器视觉研究了纽扣电池表面划痕的检测方法,其正极面检测先通过模板匹配去除字体后进行阈值分割提取划痕,但该方法可能存在黑边,字符残留等现象,且只能检测一种缺陷。文献[6]研究了电池正负极面缺陷的识别,但算法流程较为复杂且特征参数多,检测率仍有提升空间。
扣式电池因缺陷种类多且复杂而难以检测,利用功能强大的Halcon视觉软件开发一套纽扣电池表面缺陷检测系统,对比几种去噪,图像增强算法,提出结合区域分割、Blob分析、阈值分割的正极面检测方法,解决可能存在的黑边问题。在确保检测准确率的前提下,简化算法流程,以简单,快捷、高效的方式实现表面划痕,凹坑,污渍缺陷的检测,以满足实际运用的需求。
本研究所设计的检测系统基本组成,如图1所示。其硬件和软件主要包括PC机、同轴光源、工业镜头、工业相机、固定支架和Halcon联合C#的图像处理软件系统。
图1 系统组成Fig.1 Defect Detection System
相机是机器视觉系统的重要组成部分,其核心是感光芯片,能够将镜头采集到的光信息通过CCD或CMOS转化为数字信号,信号通过接口传输到计算机进行处理。
镜头的选择是机器视觉应用中较为重要的一个组成部分,其选择将直接影响预处理前所采集图像的质量,若相机与镜头配合不佳会出现图像拍摄不清晰,拍摄到的物体很模糊,给图像的后期处理带来困难,选对镜头能让后期的检测事半功倍。
为了使物体成像清晰,需要使用到光源。研究电池表面的缺陷检测,能够通过打光让缺陷部分与背景区域形成较为明显的对比度,降低检测的难度。通过对比不同光源的打光效果,本系统采用的是同轴光源和多角度条形组合光源。
本缺陷检测系统的图像处理流程,如图2 所示。相机采集图像将光信号转化为数字信号后发送至PC机,在Halcon 中通过一系列算法检测出电池表面是否存在缺陷,最后通过程序显示检测结果。
图2 处理流程Fig.2 Flow Chart
在实际应用中,常用的目标定位方法主要有两种,一种是基于Blob分析的图像区域分割与提取算法;另一种是利用模板匹配进行定位[7]。Blob 分析算法[8]被广泛应用于光照条件、背景单一且干扰小的条件下,具有实时性好,处理速度快的优点;模板匹配算法是先在标准图像中提取感兴趣的区域作为标准模板,然后用此模板在待检测图像上滑窗匹配,得到匹配后的分值,分值越大则待测区域与模板区域越相似。常见的匹配算法有基于灰度、形状和相关性的模板匹配。
此处的电池表面光滑,光照条件下能与背景区域形成较大的区域灰度差异,采用Blob分析算法可以得到很好的效果。Blob分析的主要内容为采用阈值分割,边缘提取等算法分离前景和背景,将目标区域拟合为一个连通域,剔除不感兴趣的区域,计算目标中心坐标,位置等特征,实现定位。
图像在由镜头采集到生成数字信号的过程中不可避免地会产生干扰,使图像产生噪声。预处理的目的主要是清除图像中各种噪声等无用信息,改进图像的质量,获取有用信息,为后续缺陷识别提供基础。
一般图像是以彩色图像输入,由于大部分的彩色图像都是由RGB三通道构成,故要对图像进行灰度化处理[9]。把RGB图像的三个通道作为输入图像的前三个通道进行变换,使背景区域像素值和字符与缺陷的像素值转换为单通道,便于后续处理。其计算公式为:
式中:P—灰度化处理过的图像;R-红色通道;G-绿色通道;B-蓝色通道的灰度值。
图像经过预处理后,不可避免地会存在一定数量的噪声,这些噪声如果没有经过处理会干扰后续的缺陷检测,因此要设计算法尽量减少噪声甚至消除噪声后再进行识别。有的图像灰度连续变化,若存在某个区域的像素灰度与相邻区域的灰度差异较大,这时候滤波就可以发挥作用。
高频分量会在滤波的作用下被过滤掉,从而减少图像中存在的噪声。常用的去噪声的方法有均值滤波,高斯滤波和中值滤波[10−11]。滤波是生成一个大小为Height×Width的过滤器,自上到下从左到右对图像各像素点进行扫描,以模板覆盖的像素点计算出新的值代替图像中各像素的值,平滑效果随滤波器大小的增加而增加。
三种算法的处理效果,如图3所示。通过对比可观察出采用中值滤波或高斯滤波具有较好的效果。此处平滑处理采用的滤波器是高斯滤波,采用核为(3×3)的滤波器对图像进行平滑处理,其计算速度及平滑效果均能达到检测要求。其算法为:
图3 处理效果Fig.3 Image Processing Results
式中:σ—高斯函数分布系数;x—行坐标;y—列坐标。
图像经过预处理和去噪后会使图像整体对比度下降或者使图像变暗,此时需要研究算法,选择性地增强感兴趣区域(ROI)的对比度,使其转换为更容易处理分析的形式。图像增强算法有直方图均衡化法(HE)、Retinex 模型法、同态滤波法(Homomor⁃phic Filtering)和灰度变换法等[12]。
图像增强根据作用的域不同,可以分为空间域和频域。空间域是指图像所包含的像素空间,其处理方式是直接对图像做线性或非线性运算,处理方法由点运算和模板处理。频域增强则是将图像变换为频域信号,根据频率高低确定图像信息,一般高频为噪声,中频为边缘,低频为图像轮廓。
此处将对比线性变换算法、直方图均衡化算法、非线性变换算法、gamma校正算法和高通滤波算法对图像的处理效果。通过对比观察可得高通滤波算法效果较好,如图4所示。
图4 图像增强算法处理效果Fig.4 Image Enhancement Results
高通滤波算法[13]先通过傅里叶变换将图像变换到频域空间:
其中,k=0,1,…,X−1;b=0,1,...,Y−1。式中;X、Y-输入图像横向和纵向上的总像素数;(fi,j)-输入图像在点(i,j)处的灰度值。
低频部分能够被高通滤波器过滤从而去除,其传递函数为:
式中:d0-截止频率;d(k,b)-点(k,b)到原点的距离。得到结果:
对G(k,b)进行傅里叶逆变换,得到g(i,j):
其中,i=0,1,…,X−1;j=0,1,...,Y−1。
由于电池正极存在字符,可以在缺陷检测时将正、负极分开识别。
此处利用基于形状的模板匹配算法[14−15]判断,其算法为先生成字符区域模板,定义模板区域的点集:
模板区域每个像素点的方向向量:
待检测区域每个像素点的方向向量:
进行匹配时仿射变换后模板区域的点集:
进行匹配时仿射变换后模板区域的方向向量:
计算待测图像上所有与点P=(r,c)T对应的方向向量dMi与对应点方向向量的点积和,则模板在点q处的相似度:
取十幅待测图像进行模板匹配,获得匹配分数,如表1所示。
表1 匹配分数Tab.1 Matching Scores
从匹配结果可知,采用基于形状的模板匹配算法能够获得很好的匹配效果,对存在字符的区域匹配分值均大于0.9,故可利用匹配分值判断电池正负极。可设定当分值小于0.7时为电池负极面,否则为正极面。
正极面识别可以用区域叠加法,将电池图像上的字符区域进行灰度转换后与原图像叠加,实现将字符消除,余下背景区域的目的。
但采用该方法矫正具有一定的问题。每次采集图像的角度不固定,需要先将待检测图像矫正至与模板同角度,再进行图像的叠加。
由于旋转角度存在误差,无法实现字符区域的精准覆盖,所以叠加后的图像可能存在黑边,字符残留等现象。为了解决此问题,可以采用区域分割法进行改进。
首先对字符进行Blob分析,扩大字符的像素区域。此处采用Blob分析的膨胀算子,其算法为:
定义如下两个集合:
表示集合A围绕原点进行反射,生成新集合;
表示集合A平移x,生成新集合。
因此,膨胀运算可以表示为:
式中:X—原图像;Y—结构元素。
将Blob分析后的字符区域与原图分割为字符区域和背景区域,如图5所示。
图5 区域分割Fig.5 Region Segmentation
最后对背景区域进行阈值分割。结合缺陷面积特征即可判定是否存在缺陷区域,如图6所示。其算法如下:
图6 识别效果Fig.6 Recognition Effect
设g(x,y)为变换后的图像,(fx,y)为原图像,T为(0~255)之间的某一数值,则二值化变换[16]可用以下公式表示:
式中:T—二值化阈值。
但在实际运用中,存在光照不均匀导致不同电池图片的灰度值分布存在较大差异,如果按照固定的阈值常数T进行二值化处理将会产生较大误差。大律法[17(]OSTU)是常用的一种自适应阈值计算方法,能够改善这种情况,其思想是:
(1)计算图像灰度直方图,找出图像像素个数的最大值对应图像的灰度值Th;
(2)令Th为阈值初始值,将电池样本分为A、B两类图像;
(3)分别计算A、B两类电池图像的像素集合均值uA和uB,计算公式如式(18)、式(19)所示;
式中:NA—A集合的像素个数;NB—B集合的像素个数。
(4)计算A、B两类电池图像的像素类间方差,计算的数学表达式,如式(20);
(5)计算类间方差与类内方差的比值,确定最佳阈值;
(6)利用最佳阈值提取电池图像中灰度值在Th至255之间的像素。
检测界面使用Halcon 联合C#进行设计,利用Halcon 算法对图像进行检测处理,再将程序导出为C#代码,联合Visual Stu⁃dio 2017的开发环境设计交互界面,如图7所示。考虑到可能与机械手通讯实现缺陷电池的挑拣,在界面下方可选择串口号和波特率,实现数据的发送。显示缺陷识别结果的操作步骤为加载数据集,正负极面判断,预处理和显示识别结果。
图7 检测系统界面Fig.7 Interface of the Defection System
使用Halcon 算法对缺陷电池样本进行检测,样本类型分为划痕、凹坑、污渍,每种类型正、负极面样本各100张。部分样本如图8所示。其检测结果,如表2所示。结果表明本系统具有很高的检出率。
表2 缺陷检测结果Tab.2 Defect Detection Results
图8 样本集Fig.8 Sample Sets
旨在基于Halcon 设计纽扣电池表面缺陷的视觉检测系统,解决人工检测存在的问题。首先介绍了视觉检测系统的硬件和软件的基本组成,利用同轴光源和多角度条形组合光源,获取高质量缺陷图像,研究了联合C#与Halcon的电池表面缺陷检测算法,以此实现纽扣电池表面缺陷检测系统的开发。为了检验系统检测的准确率,采集了600张缺陷电池图片样本,检出成功率达98.5%以上,达到了工厂大规模批量检测的应用要求,具有很好的实用价值。