基于机器视觉的丝印样板表面缺陷检测方法研究 ①
2021-01-12董正天胡春海高明坤李沛航
董正天 刘 斌 胡春海 高明坤 李沛航
(燕山大学电气工程学院 秦皇岛 066004)
0 引 言
丝网印刷技术在现代化工业生产的诸多领域发挥重要作用。丝网印刷是指用丝网作为版基,并通过感光制版方法,制成带有图文的丝网印版。丝网印版由5大要素构成,即丝印样板、刮板、油墨、印刷台以及承印物。丝印样板在整个丝印过程中起着决定性的作用。在丝印样板的制造过程中,由于原材料、生产设备以及生产环境等问题,丝印样板表面不可避免地会出现边缘断裂、圆度不完整等缺陷。目前在生产车间中主要依靠人工对丝印样板表面进行观察并发现缺陷,这种肉眼观察方法存在很多弊端,如人工成本高,使得企业劳动力生产成本提高;受工人主观因素影响,容易发生漏检误检;工人检测速度低,无法保证检测效率。
机器视觉技术的出现为丝印样板表面缺陷检测提供了便捷可靠的手段[1]。机器视觉,就是用计算机代替大脑,用相机代替人的眼睛,对获取的图像信息进行分析处理[2]。表面缺陷的自动检测是机器视觉在现代工业自动化生产中的重要应用[3]。目前有很多中外学者正在研究机器视觉,但是却鲜有丝印样板表面缺陷检测的成熟方法以及学术论文。Min等人[4]利用方向链码跟踪算法提取缺陷区域的轮廓信息,并且优化缺陷区域的边缘细节使目标的轮廓变得更加明显,但是该算法抗噪能力差。Jian等人[5]用减法和灰度投影组合的方法来识别手机屏幕上的缺陷,并用改进的模糊聚类算法实现对缺陷的分割。Mao和Wu[6]提出了一种利用最大类间方差的改进值直接提取钢轨表面缺陷的方法,但该方法的精度有待提高。贺振东等人[7]提出了高铁钢轨背景差分表面缺陷检测方法,但是该方法并不能有效检测丝印样板的表面缺陷。He等人[8]提出了基于反向P-M扩散钢轨表面缺陷检测算法,但算法控制参数比较多,很难利用反向P-M扩散钢轨表面缺陷检测算法检测丝印样板表面缺陷。Tang等人[9]利用灰度投影实现了对轨道表面区域的快速分割,但该算法的适应性较差。Chiou等人[10]和Blayvas等人[11]提出用自适应阈值面直接对图像进行二值化分割。Li等人[12]提出了基于Hough变换的方法来识别不均匀照明图像中的低对比度缺陷,该方法可以有效地检测各种Mura缺陷,但是对于环境光依赖比较大,无法应对工业环境下复杂的生产情况,适应性欠佳;刘磊等人[13]采用局部最大方差法对电池片图像进行有效分割并识别出断栅,胡浩等人[14]通过分析小磁瓦表面图像中缺陷区域与正常区域的灰度、灰度梯度及缺陷形态的差异,将其表面缺陷类型划分为三类。王武等人[15]采用八方向的各向异性高斯方向导数滤波器对图像进行卷积滤波,并作归一化处理实现对手机壳缺陷的检测,但是这些方法并不适用于丝印样板的表面缺陷检测。
针对丝印样板本身的特点以及丝印样板表面缺陷的特征,结合工业相机电荷耦合器件(charge coupled device,CCD)检测技术具有重量轻、体积小、成本低、结构简单、非接触检测、抗干扰能力强等特点,本文设计了一种基于机器视觉的丝印样板表面缺陷检测算法,在不接触丝印样板的前提下,可以实现对多种丝印样板表面缺陷的检测,降低了硬件的复杂度,并且具有准确度高、实时性强等特点。
1 丝印样板表面缺陷检测平台
针对丝印样板表面缺陷检测问题,设计了丝印样板表面缺陷视觉检测系统,检测系统包含硬件和软件部分。硬件部分主要包括CCD工业相机、远心镜头、LED背光光源、相机光源支架以及计算机等。软件部分主要是对采集到的图像进行图像处理,包括图像的采集和丝印样板表面缺陷的检测算法等。
本文检测的丝印样板表面为光滑材质,反射率较高,采用条形光源进行照明时,表面光照不均匀,极易反光,并且边缘断裂缺陷和圆度不完整缺陷不能较好地体现出来。为了解决上述问题,采集图像时使用LED背光源进行照明,丝印样板表面缺陷检测照明平台如图1所示,检测平台采集出来的丝印样板图像如图2所示。图3(a)为丝印样板表面的边缘断裂缺陷,图3(b)为丝印样板表面的圆度不完整缺陷。
图1 丝印样板表面缺陷检测平台
图2 丝印样板表面缺陷检测平台采集图像
图3 丝印样板表面缺陷
2 丝印样板表面缺陷检测算法
2.1 图像预处理
在使用CCD相机采集丝印样板图像时,可能会产生一定的噪声,造成图像质量下降,不利于后续表面缺陷的检测,因此需要对采集到的丝印样板图像进行预处理。
为了降低噪声的干扰,改善图像的质量,通常会采用滤波去噪处理。高斯滤波就是一种常用的滤波算法,高斯滤波可以起到平滑图像、降低噪声的效果。高斯滤波得到的是窗口中像素点灰度值的加权平均值,具体每个像素点的权值计算公式如下:
(1)
其中,i和j表示周围像素点在窗口中的位置,σ表示高斯分布的方差,w(i,j)表示窗口中(i,j)处像素点在平滑过程中的权值。本文以7×7大小的高斯内核窗口对采集到的图像进行平滑滤波,丝印样板表面缺陷的高斯滤波效果如图4(a)所示。
因为在之前的滤波去噪过程中,或多或少地降低了图像质量,因此有必要在进行下一步处理之前对丝印样板图像进行图像增强,图像增强的主要目的就是改善图像的质量。本文采用对数变换来对丝印样板表面缺陷图像进行图像增强处理。对数变换主要将图像的低灰度值部分扩展,将其高灰度值部分压缩,以达到增强图像对比度的目的。变换方法如下:
t=clog(1+s)
(2)
其中,c为尺度比例常数,s为原图灰度值,t为变换后的目标灰度值。采用对数变换对丝印样板表面缺陷图像进行图像增强,图像增强效果图如图4(b)所示。
图4 丝印样板表面预处理效果
2.2 边缘裂缝缺陷检测算法
本文设计了一种针对丝网印刷样板边缘断裂缺陷检测方法,其算法检测流程如图5所示。
检测原理和核心思路为,将采集到的图像进行预处理,然后使用金字塔算法和归一化互相关(normalized cross correlation, NCC)函数相结合的灰度值匹配算法进行黑色边缘位置的定位;在定位区域生
图5 丝印样板边缘断裂缺陷检测算法流程图
成一条灰度值扫描线,根据灰度值扫描线上的灰度最大值判断是否存在断裂缺陷。
因为断裂这种缺陷只会出现在黑色边缘上,所以为了提高检测效率,并没有必要扫描全图去寻找断裂缺陷。本文提出一种先定位丝印样板黑色边缘位置,再根据边缘上的灰度值检测是否存在断裂缺陷的检测方法。
在进行图像预处理以后,接下来使用基于金字塔计算的灰度值归一化互相关函数进行基于模板灰度信息的匹配搜索定位。采用归一化互相关函数算法匹配准确性高,但计算量比较大,为了提高匹配速度,首先采用图像金字塔搜索进行图像分层,这样就大大减少了计算量。图像金字塔经过低通滤波,对图像进行缩小比例的抽样,得到分辨率和尺寸不同的图像,分辨率最高的图像在金字塔底部,向上是分辨率逐渐变低的图像。在相邻两层之间,分辨率一般相差2倍,上一层图像的大小是下一层的1/4。
归一化互相关(NCC)函数匹配算法以灰度信息为基础,通过利用两幅图像灰度值的相关函数,采用相似性算法计算出模板图像与待检测图像的对应关系,从而判断图像的匹配程度,找到匹配的位置。归一化后计算公式如下:
(3)
待匹配图像I的像素大小为M×N,模板T的像素大小为m×n,从图像I中任意选取一块像素大小为m×n的子图Ix, y,Ix, y的左上角像点在图像I中的坐标为(x,y),可知坐标范围为0≤x≤M-m, 0≤y≤N-n。由以上计算结果可知,NCC(x,y)值越大,表示检测图像位置的匹配度越高,则与模板图像越接近。
高斯金字塔由原图像经过连续高斯滤波和二次采样生成的一系列不同分辨率的图像组成。其基本构建步骤如下。
(1) 将待处理的原始图像作为金字塔的最下面一层用G1表示。
(2) 将第1层图像G1通过高斯滤波器进行滤波,再对滤波后的图像进行隔行隔列降采样得到第2层图像G2,很明显此时G2的大小只有G1的1/4。
(3) 继续通过上述方法进行多尺度分解,可得到图像G1,G2, …,Gn。
基于高斯金字塔与归一化互相关函数相结合的匹配定位方法对黑色边缘进行定位,定位结果如图6(a)所示。
在使用基于金字塔计算的灰度值归一化互相关函数进行黑色边缘定位以后,可以在黑色边缘上生成一条灰度值扫描线,根据黑色边缘的灰度值来判断是否存在断裂缺陷,生成的灰度值扫描线如图6(b)所示。
图6 黑色边缘区域定位与灰度值扫描线生成
在经过大量实验,实际测量了足够多的存在边缘断裂缺陷图像与不存在边缘断裂缺陷图像之后,得到如下结论,如果不存在断裂缺陷,黑色边缘上扫描线的灰度值信息波动一般比较平稳且灰度最大值不超过40,如图7所示;如果黑色边缘上存在断裂缺陷,则黑色边缘上扫描线的灰度值信息波动一般会存在一个明显的峰值,且灰度最大值会超过100,如图8所示。因此可以设定一个灰度阈值T,根据黑色边缘上生成的灰度值扫描线所得到的灰度值信息与所设定的灰度阈值T的关系判断边缘上是否存在断裂缺陷。其中,如果图像的黑色边缘区域中存在灰度值较大的噪声,可能会对检测结果产生影响,所以灰度阈值不应设置过小。并且边缘断裂部分的灰度值与正常边缘部分的灰度值差距明显,所以灰度阈值没有必要设置过大。基于此,经过多次实验,灰度阈值T的取值范围为80-100检测结果最为准确。
图7 无缺陷的灰度值扫描线波形图
图8 有缺陷的灰度值扫描线波形图
边缘断裂缺陷检测过程首先根据基于金字塔计算的灰度值归一化互相关函数进行黑色边缘定位,然后生成灰度值扫描线进行缺陷判断。其具体步骤如下。
步骤1使用灰度值金字塔与归一化互相关系数相结合的定位方法定位待检测的黑色边缘区域。
步骤2在定位的待检测的黑色边缘区域,生成一条灰度值扫描线。
步骤3设置灰度阈值T(80 步骤4如果灰度值扫描线上的最大灰度值大于设置的灰度阈值T,即Graymax≥T,则黑色边缘上有断裂缺陷,否则,Graymax 步骤5显示产品是否合格。 本文设计了一种针对丝网印刷样板中圆度不完整缺陷的检测方法,其算法检测流程如图9所示。 检测原理以及核心思路为:将采集到的图像进行预处理,将预处理后的图像进行感兴趣区域(region of interest,ROI)的选取,然后在ROI区域中进行种子搜索、追踪曲线、曲线连接、轮廓选择、轮廓比较;最后根据轮廓比较结果判断圆度是否完整。 图9 丝印样板圆度完整度缺陷检测算法流程图 丝印样板中的圆形如果完整度有缺陷的话将会严重影响丝印的质量。本文从图像中提取目标的轮廓和拟合曲线的信息,并逐点比较它们之间的距离,从而判断其圆度是否完整。 轮廓是指可以在图像中勾勒出目标外形的一组相互连接的曲线,这些曲线由一系列目标物的边缘点组成。本文中目标的轮廓提取可分为搜索曲线种子、追踪曲线、曲线连接和轮廓选择几个步骤。其中,曲线的种子点是曲线追踪过程的起始点,合格的曲线种子点应满足两个条件,一是其边缘强度应大于设定值,二是它不能属于已知曲线上的像素点。若用Pi, j代表(i,j)处像素的灰度,则(i,j)处的边缘强度Ci, j可由下式进行计算。 (4) 搜索图像种子点的过程按以下步骤进行。 (1) 选定ROI的一边作为搜索起始位置,向其对面一边沿直线逐像素计算边缘强度,以确定种子点。 (2) 若边缘强度大于设定的阈值且不属于某一已知曲线,则将该像素点作为种子点。 (3) 反之,如果边缘强度小于设定的阈值且已属于某一已知曲线,算法将跳过当前点,分析下一个点是否为种子点。 (4) 当ROI中的一行(或一列)像素均被分析过后,算法将跳至下一行(或一列)对其中的像素进行分析,直到整个ROI中有效行列均被分析为止。 而曲线追踪是指从曲线种子点开始逐个搜索其他属于曲线上像素点的过程。该过程从种子点开始,不断寻找同时满足下列条件的像素点,以添加到所追踪的曲线上。 (1) 该点位于最近一次添加至曲线的像素点的邻域内。 (2) 该点具有上述邻域内像素边缘强度的最大值,且该边缘强度值大于设定的阈值。 寻找合格像素点的过程一直循环执行,直到沿当前搜索方向不再有合格像素点可添加到曲线上为止。随后,搜索过程将返回到当前种子点,沿与上次搜索相反的方向继续寻找所有合格的像素点。上述整个过程将不断重复应用到各种子点上,直到遍历所有种子点为止。 曲线追踪过程将输出所有基于种子点提取到的曲线。在实际应用中,由于光照条件、噪声等对图像的影响,这些曲线往往并不能完整地表示实际目标的轮廓,而通常仅仅是目标轮廓的一部分。因此,需要根据欧氏距离、角度距离、连接距离和梯度差等因素进行连接,如图10所示。(欧式距离是指用像素数表示的两个曲线端点之间的实际距离;角度距离是指要使两个曲线在端点处平行,其中一个端点需要旋转的角度;连接距离是指一条曲线的端点至另一曲线端点延长线之间的最短距离;梯度差值由两个端点处梯度之差的绝对值表示。) 图10 曲线连接的依据条件 连接完成后选择最合适的圆形轮廓作为提取的目标物轮廓。提取的带有圆度不完整缺陷的丝印样板圆形部分的轮廓如图11所示。 图11 提取的目标物的轮廓图 接着从包含轮廓信息的图像中提取轮廓像素,并基于这些像素拟合出标准的圆。拟合出的标准圆的信息供后续比较过程使用。带有圆度不完整缺陷的丝印样板圆形部分拟合出的标准圆如图12所示。 从图像中提取出目标的轮廓和拟合标准圆的信息以后,逐点比较两者之间的距离。并根据两者之间的距离判断圆度是不是完整,如果逐点比较以后 图12 拟合得到的标准圆 两者之间的距离全部小于所设定的距离阈值w,则证明圆度完整,不存在圆度不完整的缺陷。如图13所示,将距离阈值w设置为2个像素,逐点比较两者之间的距离,发现两者之间的距离没有大于2个像素的,则不存在圆度不完整缺陷。反之,若逐点比较以后两者之间的距离有大于所设定的阈值w的,则证明圆度不完整,存在圆度不完整的缺陷。如图14所示,将距离阈值w设置为2个像素,逐点比较两者之间的距离,发现两者之间的距离有大于2个像素的,则存在圆度不完整缺陷。圆度不完整缺陷检测结果示意图如图15所示,其中,图15(a)为丝印样板整体缺陷检测结果示意图,图15(b)为丝印样板圆形部分放大图,其中圆度不完整缺陷部分被标记出来。 图13 圆度完整逐点比较距离值示意图 图14 圆度不完整缺逐点比较距离值示意图 图15 圆度不完整缺陷检测示意图 为了验证以上算法是否能够针对特定缺陷进行检测,实验采用最高分辨率为2 456×2 058的面阵CCD,并且采用物距为105 mm、远心度为0.03 °的BT-2336远心镜头采集图像,经过多次实验,采用红色面状背光光源照明。 针对丝印样板表面的边缘断裂缺陷和圆度不完整缺陷两种类别,实验采集了120张丝印样板样品图像,其中无缺陷的照片有20张,其余100张有边缘断裂缺陷和圆度不完整缺陷,并且边缘断裂缺陷图像有40张,圆度不完整缺陷图像有60张。检测结果如表1所示。 表1 120张丝印样板图片检测数据 由表1可以看出,在实际检测中,本文算法对边缘断裂缺陷和圆度不完整缺陷这两种缺陷的提取较为准确,边缘断裂缺陷检测时的误检主要是由于特殊的噪声导致,而圆度不完整缺陷发生漏检主要是因为圆度不完整的缺陷小于1个像素,容易导致漏检,但是漏检的丝印样板在质量上基本属于合格产品。综上所述,本文算法中边缘断裂缺陷检测的准确率达到92.5%,圆度不完整缺陷检测的准确率达到96.7%,综合准确率达到94.6%。 针对目前丝印样板表面质量检测效率低的问题,本文通过对丝印样板本身的特点以及边缘断裂缺陷和圆度不完整缺陷本身的特征进行分析和研究,提出了一种基于机器视觉的丝印样板表面缺陷检测算法。针对边缘断裂缺陷,为了避免扫描全图,首先使用金字塔匹配和归一化互相关函数相结合的算法进行黑色边缘定位,然后在定位的黑色边缘上生成一条灰度值扫描线,根据扫描线上的灰度值判断是否存在边缘断裂缺陷;针对圆度不完整缺陷,首先通过种子搜索、曲线追踪、曲线连接和轮廓选择4个步骤进行目标轮廓的提取,然后从图像中提取轮廓像素,基于这些像素拟合出理想的圆,最后比较提取出来的目标轮廓和拟合曲线的信息,根据两者之间的距离判断是否存在圆度不完整缺陷。实验结果表明,本文算法中边缘断裂缺陷检测的准确率达到92.5%,圆度不完整缺陷检测的准确率达到96.7%,综合准确率达到94.6%。该算法的运行效率和准确率高,稳定性和鲁棒性强,能够满足企业的实际需求。2.3 圆度不完整缺陷检测算法
3 实验结果与分析
4 结 论