APP下载

基于改进Otsu算法的游标卡尺缝隙检测

2022-09-16胡道松邱鹏程周静李波

机床与液压 2022年14期
关键词:像素点缝隙纹理

胡道松,邱鹏程,周静,李波

(中国地质大学(武汉)机械与电子信息学院,湖北武汉 430074)

0 前言

企业生产中,缝隙的检测是至关重要的一环。国内外已广泛使用各种机器人,利用机器视觉代替人眼,对工业产品进行检测和判断,因而研究基于图像的精度检测算法是其关键所在。视觉检测技术具有非接触、定制化、速度快等优点。工业中视觉检测技术的实现是通过合理的设计和整合,对采集到的图像进行处理、计算后得到特征数据,同时做出判断,以达到自动检测的目的。

国内研究者针对不同环境下的缝隙特征检测提出了众多算法和方案。孙佳兴等提出了基于区域生长的缝隙提取办法,但是此法仅适用于竖直缝隙提取。霍夫直线检测具有较强的鲁棒性和较高的精度,但是运算复杂度较高。张国福和王呈基于改进霍夫直线检测算法检测电梯门的缝隙,提出了限角概率霍夫直线检测法,与标准的霍夫直线检测算法相比,效率和准确度均有所提高,但是该算法主要是基于先验知识的判断规则,适应范围较窄。杨帆提出基于改进亚像素边缘检测算法,实现了对缝迹特征的提取。TAO等基于YOLO目标检测模型和图像处理,实现了复杂环境开关间隙的提取。Canny变换是常用的边缘检测算法,也常用于缝隙检测。李超等人基于Canny变换提出了开关间隙的自动检测算法。XU等提出了基于自适应小波阈值和数学形态学的间隙检测算法。针对缝隙特征,还可以将图像进行分割,实现对缝隙特征的提取。董含提出基于超像素的图像分割方法,但是面对复杂环境,该方法计算量较大,无法达到实时检测的目的。巩祎明提出优化的CRF-RNN语义分割模型,该算法适用性较广,但是该模型的泛化能力和精度取决于数据集的制作。

上述研究存在的主要问题就是针对游标卡尺表面纹理清晰时,卡爪缝隙特征提取的自动化程度不高,容易出现针对纹理的误检情况,对于缝隙的提取存在一定限制。

本文作者基于上述文献的缝隙提取思想,并在考虑游标卡尺表面复杂纹理对算法的干扰情况下,为检测卡爪缝隙,提出一种新的机器视觉检测技术方案,并建立相应的实验装置。

1 改进自适应阈值

对卡爪缝隙进行检测时,首先应对图像进行边缘检测,提取出缝隙的边缘信息。传统Canny算法是常用的边缘检测算法,其流程包含图像去噪、计算梯度幅值和方向、非极大值抑制、双阈值检测和边缘连接,其检测效果与阈值的选择关联很大。除人工设定阈值,Otsu算法被作为寻找最佳阈值的一种常用方法。Otsu算法首先选取一个阈值,将图像分为前景和背景两部分,并计算两区域的类间方差。类间方差的值越大,代表前景和背景的区别越大,则阈值分割的效果越好。类间方差的定义如下:

=(-)+(-)

(1)

式中:为类间方差;、分别为像素为前景或背景区域的概率;、、分别为前景、背景和全局平均灰度值。

Otsu算法对直方图为明显双峰的图像效果较好,但是对于目标像素点较少的图像,阈值会严重偏向于像素占比大、类内方差大的背景区域,导致图像分割效果较差。对于游标卡尺图像,卡爪缝隙对于整个卡爪来说相对占比较小,因此利用Otsu算法作为阈值进行Canny边缘检测的效果较差。本文作者基于实际工况,提出一种基于四叉树理论的改进Otsu算法。该算法的核心在于,在图像中前景和背景占比不同时,通过对图像进行分割,并利用图像的灰度级直方图的二阶矩来描述图像纹理的复杂度;选择复杂度大的区域作为候选区域,通过迭代找到前景和背景占比接近的区域,并以此区域进行阈值计算,最终得到最佳阈值。该算法公式如下:

(2)

式中:、分别表示分段区域的行数和列数;表示待分段图像;=0,1,…,;、、、表示分割后的4块区域;表示灰度二阶矩的最大值;表示图像灰度级直方图的二阶矩,用来描述图像纹理的复杂度,计算公式如下:

(3)

式中:表示灰度;()表示相应的直方图;表示不同灰度级的数量;表示的均值。

图1所示为本文作者改进的自适应阈值在目标像素点较少时Canny边缘检测算法的影响。

图1 传统Otsu算法和文中方法对比

由图(a)(c)可以看出,因为缝隙在图像中的占比较小,导致直方图只显示一个波峰,因此其阈值结果偏向于波峰(背景)。由图(e)可知:利用此阈值,会导致边缘信息检测不完全,会对边缘的提取和最终的拟合造成影响。图(b)所示为文中方法的结果。文中方法主要利用四叉树理论,将图像进行分段,并计算每段图像灰度级直方图的二阶矩,其值越大,则代表缝隙在该段占比越多。由此,选择该区域为目标区域,并不断迭代上述过程,找到最终的目标区域R。图(d)为图(b)中目标区域R的灰度直方图,该直方图具有2个较明显的波峰,计算的阈值(红线位置)较好地分割了前景和背景。由图(f)可知:该阈值很好地保留了缝隙的边缘信息,有利于进行后续的缝隙提取和拟合。

2 卡爪缝隙宽度检测算法

由于卡爪表面并不光滑,考虑可能存在的划痕或其他加工痕迹,摄像单元采集到的图像是一种混有噪声的缝隙图像。算法设计的基本思想如下:

(1)预处理

相机捕获到的是RGB图像,需要将采集到的图像进行灰度化,以提高计算速度,同时保留图像的梯度信息。

=++

(4)

其中:表示最终的灰度;分别表示对应像素点的R、G、B值;、、表示R、G、B分别对应的权重,常取0.299、0.587、0.114。

对图形进行降采样和滤波处理,完成图像的降噪。文中采用高斯滤波器进行处理。

(2)边缘检测

对待预处理图像进行处理,得到边缘骨架信息。处理步骤如下:

步骤1,对图像进行改进自适应阈值计算,得到最佳阈值;

步骤2,对图像模糊处理后,利用该阈值进行Canny边缘检测,得到图像的边缘信息,如图2(a)所示;

步骤3,因为Canny变换得到的边缘信息并不连贯,因此利用形态学闭操作,将边缘图像信息连贯起来,如图2(b)所示;

步骤4,利用细化算法,将得到的边缘直线进行细化,保留一个像素宽度,降低后续的运算复杂度,如图2(c)所示。

(3)边缘特征提取

细化算法之后的图像,依旧保留着大量的纹理信息,如图2(c)所示,所以需要对边缘特征进行提取。根据视觉特征,缝隙边缘应当在图像中占据主要地位,即在图像中,边缘的空间跨度最大。因此,对像素点进行聚类,即遍历所有的像素点,若像素值为0,则进行八连通域的检测,确定像素点周围是否存在已标记类的像素点,若仅存在一个已标记像素点,则将当前像素点标记为该类;若存在多个已标记点,且属于不同类,则将该点和该点连接的所有类划分为同一个新类;若不存在,则将该标记点定义为新类。

图2 边缘检测示意

最终得到位置信息的聚类结果,即类{,,,…,}。聚类结果如图3所示。

图3 聚类结果 图4 类提取结果

通过视觉特征,对空间跨度大于平均跨度的类进行提取:

(5)

式中:表示各个类;()表示类的空间跨度。

如图4所示,通过对类的空间跨度进行分析,得到初步的提取结果。相较于图2,噪声被很好地去除。但是由于文中是根据位置信息进行的聚类,在加工过程中会出现纹理与边缘重合,简单的聚类无法很好地将这种纹理排除。因此,针对这种情况,本文作者设计了基于先验的边缘信息二次提取流程。

基于先验的边缘信息二次提取流程对类提取后的图像进行运算,如图5、图6所示。从端点坐标开始标记,首先进行四连通域检测,寻找下一个标记点坐标,若存在则标记,不存在则进行八连通域检测,若存在则标记,若不存在则视为结束端点。每隔20个像素点标记一个先验点,得到先验点集{,,,…,}。若出现分叉点情况,即进行连通域检测时标记点存在数目大于1时,如图7所示,将先验点集{,,,…,}到检测点的向量作为该直线的方向向量集,从检测点到多个标记点、的向量为检测向量。通过计算方向向量集与检测向量之间的夹角,并根据投票法,即每个方向向量与检测向量计算后,取较小值对应的检测向量,投票数加一。取投票数最多的检测向量为方向向量,确定下一标记点的坐标位置,并进行标记。最终得到去除分叉的缝隙边缘标记点集{(,),(,),(,),…,(,)}。

图5 缝隙特征提取流程

图6 标记流程示意(黄色为已标记点;红色为待标记点;黑色为未标记点)

图7 基于先验的分叉点判断方法示意

(4)直线拟合

利用最小二乘法对标记点集进行拟合计算,得到最终的边缘直线。并计算缝隙的宽度值:

(6)

式中:分别为两条边缘直线对应的直线点集中任意随机点到另一条直线的距离;为标定系数。

3 实验与算法分析

3.1 实验设计

如图8所示,待检测物体置于实验台上,考虑成像素质,由环形光源补光,图像经远心镜头拍摄后传输到计算机中。当摄像视场中出现缝隙图像时,计算机会实时显示缝隙所在位置。

图8 实验装置示意

为验证文中算法的实际效果,采用相同的图像进行算法对比。文中实验的硬件环境:CPU Intel(R)Core(TM)i5-6300HQ;内存为8 GB;64位Windows10操作系统,软件实施平台为Visual Studio 2017。测试图像为游标卡尺外测量卡爪缝隙图像,图像分辨率为3 072像素×2 048像素。

3.2 实验结果

由图9可以看出:测试图像纹理清晰,对缝隙检测产生较大的干扰,检测算法需具有更强的鲁棒性。目前常见的直线检测算法为霍夫直线检测,以文献[7]的方法和最常用的渐进概率式霍夫变化(PPHT)为对照样本,对文中算法进行性能测试。

图9 测试图像

3种算法的测试结果如图10所示。由图10(a)可知:文献[7]中算法在缝隙角度已知且不变的情况下,可以较好地剔除纹理信息,拟合边缘直线效果较好,但是当缝隙的角度未知时,会出现无法检测出缝隙的情况。由图10(b)可知:PPHT算法对缝隙检测较为完整,对于纹理信息,由于阈值的选择不同和拍摄环境等影响,对缝隙检测的鲁棒性不强,同时,也存在拟合精度的问题。由图10(c)可知:文中算法对缝隙边缘进行了很好的提取和拟合,同时完成了对纹理信息的剔除,该算法具有更好的鲁棒性。

图10 算法测试结果

针对检测精度,对每个测试图像均测试5次,结果分别如表1和表2所示。文中检测方法的平均相对误差为0.002 4 mm,平均相对误差率为0.433 1%,平均相对误差和平均相对误差率均较小,证明文中检测方法有效、准确。

表1 测试图像1人工检测与文中检测结果对比

表2 测试图像2人工检测与文中检测结果对比

图11所示为3种算法针对测试图像的运行耗时结果。对于图9(a),文中算法和文献[7]中方法的耗时接近,但优于PPHT算法。而针对图9(b),文中算法耗时优于两者。总体而言,文中算法对比文献[7]算法和PPHT算法,在时间消耗上,提升了15%左右。同时对具有复杂纹理环境中的缝隙边缘提取准确率达到了100%,可以有效地保证在工业检测中应对纹理噪声较多的情况。

图11 算法耗时测试结果

4 结束语

本文作者针对纹理清晰的游标卡尺的卡爪缝隙,提出使用视觉检测的方法来检测卡爪缝隙宽度。根据工况,基于四叉树理论,提出了改进自适应阈值算法,解决了当目标像素点占比较少时Otsu算法效果较差的问题。根据卡爪缝隙在图像中的空间跨度进行分析、聚类,实现了对卡爪缝隙的精确提取,并建立了相应的实验装置进行实验。结果表明:该算法可以实现对缝隙边缘的精确自动提取和检测,同时单张图片的检测时间约为400 ms,满足工业实时检测的要求;该方法有一定的通用性,同样可应用于其他工业产品装配缝隙的在线检测识别。研究结果为其他在线检测系统的检测方法设计提供了思路。

猜你喜欢

像素点缝隙纹理
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
雨的缝隙
基于BM3D的复杂纹理区域图像去噪
空中翱翔
使用纹理叠加添加艺术画特效
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!