1. 引言
轴承作为制造业的核心器件,是我国重点发展的战略性基础产业之一。“十二五”计划明确指出,轴承是加快振兴装备制造业的16个关键领域的核心基石 [1] ,它被广泛地应用于航空航天、通讯、工业生产等领域。在轴承结构中,轴承滚子是最关键的零部件,其质量直接决定轴承的质量。
随着信息技术的不断发展 [2] [3] [4] ,机器视觉检测技术得益于速度快、精度高、成本相对较低等优势,逐渐替代了传统的人工检测方法,成为主流检测方案 [5] [6] 。基于机器视觉的检测系统是通过工业相机采集待检测目标的高清图像,随后将图像传送到图像处理系统,完成关键信息的提取和判别,进而实现对目标表面缺陷的检测。
机器视觉检测的关键技术是表面的缺陷提取和识别。缺陷提取是在采集图像的基础上进行图像处理,将与工件本身色彩差异明显的部分进行分割;缺陷识别是对提取出的缺陷在色彩、维度等方面进行特征筛选,在此基础上判断缺陷真实性。一旦提取的缺陷不完整或漏提,就会导致缺陷特征筛选信息不完全,无法对缺陷进行确认,从而产生错检、漏检问题,影响整体的检测结果。
目前,缺陷提取中常用的分割方法有:基于阈值、边缘、区域、特定理论等 [7] 的分割方法。其中,基于阈值的分割方法由于实现简单,计算量低且性能稳定的优势,成为提取的主流方法。近年来,为提高提取精度对阈值的选取进行了很多优化,如陈恺等人 [8] 使用反向萤火虫算法的OTSU多阈值分割方法,伦向敏等人 [9] 提出迭代最大熵分割方法,同年,Yuan X C等人 [10] 提出引用权重系数的WOV方法,乔爽等人 [11] 提出分类加权的OTSU分割方法。但是,由于环境以及滚子表面材质的影响,现有的分割方法存在以下问题:
1) 单阈值分割只能单独提取到灰度较低或者灰度较高的缺陷,而实际情况下,这两种缺陷可能会同时存在,使用该方法会导致缺陷漏提的问题,如OTSU分割方法,最大熵分割方法。
2) 多阈值分割计算量复杂,不能保证实时性,并且过多阈值对单个缺陷进行分割,会出现多个不连续区域的缺陷,导致提取的缺陷信息不完整,如自适应阈值分割方法。
因此,针对上述问题,本文提出了一种自适应调整的双阈值分割方法,首先基于直方图分析,对直方图包络进行高斯拟合,并用拟合函数与实际直方图的包络函数求取交点来确定阈值,代替了传统使用直方图分析确定阈值的方法,大幅减少计算量。其次,根据实际场景需求,选取两个交点作为阈值对图像进行分割,达到缺陷分割的目的。实验结果表明,本文提出的方法能够避免单阈值导致的漏提问题,也防止了由于过多的阈值分割使区域不完整的问题,能够满足实时处理需求,具有良好的实用价值。接下来,将对本文所提算法进行介绍。
2. 双阈值自适应检测方法
基于机器视觉的检测流程一般包括目标提取、预处理、缺陷提取、缺陷确认和输出语义5个模块,其中,缺陷提取是缺陷识别的基础,是判别缺陷的依据,一旦提取的缺陷不完整,会导致输出语义结果错误或者失败。为解决现有缺陷提取方法在提取准确率、完整性和处理速度上的缺陷,本文提出了一种双阈值自适应检测方法,包括待检测图像预处理,缺陷分割阈值确定与图像二值化3个步骤。
2.1. 待检测图像预处理
对待检测图像进行缺陷提取分割之前,首先通过以下处理得到具有较为标准的直方图分布的待检测图像。处理流程如下所述:
第一步,过滤大面积问题的待检测目标:
大面积问题主要包括大量锈斑或大面积缺块,其视觉效果是灰度低,因此,可根据经验值对待检测图像进行阈值分割,得到待检测图像区域和问题区域。根据面积特征判断待检测图像区域是否满足实际待检测图像的面积范围,如果不满足,输出语义并剔除目标。
第二步,光照矫正:
光照矫正目的是将待检测目标图像的局部亮度达成一致,且整体光照在一个范围区间。具体操作分为为两部分:第一部分是对满足1)条件的目标图像使用大尺度中值滤波得到光照不均匀的图像;第二部分是利用目标图像减去滤波后的图像,并乘以乘数因子(该因子为一个加权因子,一般取值为1)以拉大相减后图像的对比度,最后加上固定灰度值以使图像整体亮度围绕一个区间。
2.2. 缺陷分割阈值的确定
第一步,选取部分直方图数据:
在2.1节的待检测图像预处理中留下了只含有较小缺陷或没有缺陷的图像,这些图像反映在直方图中,大量的或全部的数据为非误差数据。大量的实验数据表明,直方图中至少80%数据是不存在缺陷,因此,基于直方图对80%的数据进行分析。
在轴承滚子上,缺陷主要包括锈斑、裂纹、划伤,凹坑等类型,其视觉特点是亮度高或低,而实验分析,亮度低的缺陷概率远大于亮度高的缺陷。实际中,由于像素数反应的是某灰度下像素总数,因此,缺陷较小图像的直方图中,像素数最大所对应的灰度几乎不存在缺陷。
基于上述分析,本文选取的数据是从直方图像素数最大开始,先右后左的依此扩展灰度级的像素数,直到扩展到整体像素的80%为止。数据选取步骤流程图如图1所示。
Figure 1. Flow chart: partial data selection flow chart
图1. 部分数据选取流程图
1) 直方图分析
计算相应变量:主要有:待检图像的灰度直方图Hist [i]、最大值像素数Hist [maxgray]、最大值像素数对应的灰度值maxgray;
2) 变量初始化
对循环变量进行初始化,主要有:递增变量i、选择的像素总数sum、递增变量x、递增变量k;
3) 进入循环
当sumnew_pix小于等于整体像素的80%时,循环以下操作:更新sumnew_pix变量,并保存相应的直方图像素数Hist [i]值和i值;当sumnew_pix大于整体像素的80%时,结束循环。其中,变量i是根据式子
进行更新,变量x是根据
进行更新,k是自增变量。
第二步,高斯拟合:
光照均匀且滚子材质理想的情况下,待检测图像在直方图中只含有一种灰度,视觉效果是一条平行于y (像素数)轴的线。现实中,不存在理想光照,但当相机、光源处于待检测目标的正上方时,可近似为点光源照射目标中心,其光照分布为中心对称,其直方图中像素数的分布表现的是关于某一灰度对称的形状,类似高斯分布。因此,使用直方图高斯拟合 [12] [13] 对数据进行拟合,并作为判别标准。
在第一步中已经对数据进行筛选,其中保存的直方图像素数Hist [i]值和其对应灰度值i近似满足高斯分布,因此对这些数据进行高斯拟合。其中,高斯函数定义为:
(1)
由于是指数函数且含有较多的参数,一般直接拟合难以实现,因此,需要对高斯函数进行转换。根据高斯函数的特性,对其进行求取对数,从而转为多项式拟合,简化了计算量。具体推到公式为:
(2)
令:
(3)
可得:
(4)
因此,高斯分布转为求取一般的非线性二次方程组。
第三步,自适应阈值计算:
经大量实验分析,实时直方图中含有缺陷的灰度级分布与2.2节中拟合得到的标准灰度级分布存在明显的差异,其差异表现如图2箭头所指。根据图中所示,可通过求取上述两种分布的交点,判断其存在缺陷的区域。
在直方图中,值为0的像素没有实际物理意义,因此,可将研究限定在非0的像素中含有缺陷的交点上。由于实际缺陷的灰度是偏低或偏高,一般会优先选择偏左或偏右的区域,因此,本文选择第一个交点与最后一个交点作为阈值分割的门限值。
Figure 2. Curve: comparison of standard histograms with actual histograms
图2. 标准直方图与实际直方图比较
直方图实际上是一系列的离散数据,几乎不存在真正的交点,因此本文用模拟确定交点的方法来定义离散交点。第一个交点定义如下所示:
(5)
其中,graylow为第一个交点变量,i为执行中0到255的递增变量,Hist [i]为执行到i时实际直方图的像素数;Histgauss [i]执行到i时标准直方图的像素数。具体分析如下:当拟合数据不为0时,记录此时的循环变量i,并进入循环判断:是否是第一次发现实际直方图像素数大于标准直方图像素数,且i + 1时标准直方图像素数大于实际直方图像素数。如果是则令第一个交点graylow等于i + 1,结束循环;否则,循环继续,直至结束。
计算最后一个交点与第一个交点的原理类似,不同的是循环变量i是从255到0依此递减,其最后一个的交点定义为:
(6)
2.3. 图像二值化
根据2.2节得到的两个阈值,对关照矫正图像进行阈值分割,得到缺陷二值图,以达到缺陷提取的目的。具体的分割定义为:
(7)
其中,T1为第一个交点值,T2为最后一个交点值,f为原待测图像,g为分割后的缺陷图像。
3. 实验结果与分析
本文从轴承生成工厂中提取了1000个轴承滚子作为试验样本,在Visual Studio 2013开发平台,结合OpenCV图像处理库编程实现。本文将2.1节后的图像作为一个输入,如图3所示,其中的白色框中表示实际应检测的缺陷。然后实现自适应分割、最大熵分割、OTSU分割,以及本文分割的缺陷提取方法,并进行以下分析。在下列分析图中出像的红色矩形框表示检测到完整缺陷的,绿色矩形框表示检测到非完整缺陷,黄色矩形框表示漏提的缺陷。
自适应分割方法属于多阈值的分割的一种,其分割效果如图4所示,得到的缺陷较多,但提取的缺陷大多数存在不完整现象,大多数出现的是绿色矩形框;最大熵分割与OTSU分割属于典型的单阈值分割方法,由于是单阈值分割而不能同时提取亮缺陷与暗缺陷,图5所示,检测到的缺陷只含有一种灰度,即低灰度或高灰度,因此,出现黄色矩形框较多;相对以上算法,如图6所示,本文算法能提取到完整的亮缺陷和暗缺陷,所以,红色框较多,而绿色矩形框和黄色矩形框相对而言较少。
为了客观的分析不同算法的效果,对提取的缺陷进行分析,发现所提缺陷含有3种可能:完整缺陷,非完整缺陷,以及漏提的缺陷。因此,统计不同算法下的缺陷个数、完整缺陷个数、非完整缺陷个数、以及漏提缺陷个数,并计算相应的占比,并根据各个占比指标对缺陷提取效果进行评估。具体占比定义如下所述:
(8)
对各个算法的缺陷占比进行统计,结果如表1所示。从表中可以看出,相比其他算法,本文算法得到的完整缺陷占比值是最大的,占整体缺陷的87.87%,非完整体缺陷占比值次之,占整体缺陷的9.38%,漏提占比值是最小的,占整体缺陷的2.75%。综上分析可知,本文算法比其他算法的减少了缺陷不完整和漏提的现象。
Figure 3. Image: image example of pre-processed target to be detected
图3. 待检测目标预处理后的图像示例
Figure 4. Image: multi-threshold method defect extraction result example
图4. 多阈值方法缺陷提取结果示例
Figure 5. Image: single threshold method defect extraction result example
图5. 单阈值方法缺陷提取结果示例
Figure 6. Image: example of defect extraction algorithm results in this paper
图6. 本文缺陷提取算法结果示例
Table 1. Analysis of defect extraction results of different detection algorithms
表1. 不同检测算法的缺陷提取结果分析
对各个算法进行实现时,本文统计了大量算法处理时间并进行平均,求得对应处理速度,记录结果如表2所示。根据实验结果易知,本文方法运行时间为5.9 ms,比自适应阈值分割方法提高2.10倍、比最大熵分割方法提高1.25倍、比OTSU分割方法提高2.68倍。因此,本文方法处理速度较快,具备良好的实际应用价值。
Table 2. Different detection algorithms processing time comparison
表2. 不同检测算法处理时间对比
4. 结语
针对现有工件缺陷提取算法存在的提取准确性、完整性存在的问题,本文通过对缺陷图像直方图的分析,提出了一种基于机器视觉的滚子缺陷提取算法,利用直方图服从高斯分布,制定标准的直方图,并将其与实际直方图作差,自适应地得到双边门限值,并使用此阈值对图像进行分割,从而有效的提取到缺陷。仿真结果表明,本文方法具备良好的实时性,且缺陷提取精度更高。
基金项目
本文来源于北京市自然科学基金–海淀原始创新联合基金:面向5G增强/虚拟现实及通信与计算融合的移动边缘计算基础理论与关键技术(L172049)。