基于机器视觉的光照强度修正方法研究

2022-10-03 05:17刘凌霄王德成
制造业自动化 2022年9期
关键词:直方图灰度阈值

刘凌霄,王德成,程 鹏,郎 宁

(机械科学研究总院 中机生产力促进中心有限公司,北京 100044)

0 引言

在各种零部件中,有着各种大小,特征的孔、槽,比如通孔,盲孔,沉头孔,键槽、异形槽等等,具有样式多、尺寸各异等特点。在生产中,为了提高产品的质量,通常对其有着较高的尺寸精度要求。随着相机、镜头和计算机图像处理技术的快速发展,机器视觉这种非接触式的测量方法逐渐取代了传统接触式机械测量,有着更高精度、更快处理、节省人力的特点。

在实际检测过程中,光学系统对光源的要求比较高,不同大小、形状的特征需要不同的光照强度,同时日光灯光等环境光也会对检测结果有所影响[1]。目前已有相关学者对此问题进行了设计研究,并取得了一定的研究成果。采用不同像素当量的方法,根据实验得到的数据,不同光照强度下每一个像素代表不同的实际尺寸值[2,3]。但此种方法需要提前知道光源的光照强度,无法适应环境光,且特征的基础尺寸需要和计算模型用的量块尺寸相当,有较大的局限性。

针对传统方法存在的弊端,提出一种基于机器视觉的光照强度修正方法,并通过实验验证分析本文方法在零部件特征的尺寸检测方面的优越性。

1 精密视觉检测整体流程

本文算法流程如图1所示,主要分为5个部分:图像采集、图像预处理、亚像素边缘检测、光强修正、计算最终尺寸。

图1 处理流程

需要注意的是,光强修正中所使用的训练模型在实际检测过程中是提前取得的,而在本次实验的样本中,一部分作为训练模型使用,一部分作为检测算法正确性使用,两部分相互独立,避免用训练样本进行验证实验。

2 特征的基础尺寸提取

在进行光照强度的尺寸修正之前要首先获得特征的基础尺寸。对采集好的图片进行ROI区域的剪裁、图像预处理、亚像素边缘检测。

2.1 灰度化、二值化和最大连通域

为了减少图像采集过程中非待检测特征的影响,需要首先对采集到的图像进行灰度化和二值化处理。图像灰度化就是将相机采集到的图像转换为灰度图像,即剔除彩色信息,保留图像的亮度信息。本文采用一种包含图像亮度信息最多的权值平均灰度算法,如式(1)所示:

式(1)中,f(x,y)表示图像灰度化后在像素(x,y)的灰度值,R、G、B表示彩色图像的三个分通道(x,y)的像素值。

对图像进行灰度化之后,要对灰度化的图像进行二值化进一步简化计算的复杂程度。在全局阈值二值化算法中,常见的算法有:迭代法、OTSU、直方图双峰法等,还有Niblack、bernsen等局部二值化的算法。考虑到本文图像只针对单一目标特征分割,但由于光照强度变化范围大,易造成整张图片整体过于明亮或昏暗,全局阈值的二值化方法相比来说无法胜任,故采取bernsen局部二值化算法进行图像阈值分割。该算法原理为提前设置两个阈值,当所选区域内灰度最大值和最小值的平均值大于阈值1时,认为其同时包含背景、目标两部分,区域选择上述平局值作为区域阈值;当此平均值小于阈值1时,认为区域只包含背景或目标其中之一,通过提前设置的阈值2进行判断分割。Bernsen算法计算简单快速,不受图像整体亮度和对比度的影响。

连通区域一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域,一般分为四连通和八联通。而最大连通域则指的是寻找一张图像内属于该像素值的像素点最多的连通域。

由于噪音和待测特征上可能存在的污迹、划痕等干扰,二值化后的图像可能存在一些非待检测目标的内容,对于我们下一步的边缘检测产生干扰。我们对特征和背景分别做一次最大连通域处理,即可去除目标外的杂质和目标内的噪音,提高视觉检测的精度和准确性。

2.2 Canny和亚像素边缘检测

为了获得待检测目标的尺寸,首先要对预处理后的图片进行边缘检测,经典像素级边缘检测算子有sobel算子、prewitt算子、Laplacian算子、LoG算子及Canny边缘检测算子等。Canny边缘检测算子是最为常用的像素级边缘检测算法,其原理可以分为以下5个步骤:1)应用高斯滤波来平滑图像,目的是去除噪声;2)找寻图像的强度梯度;3)应用非最大抑制技术来消除边误检;4)应用双阈值的方法来决定可能的边界;5)利用滞后技术来跟踪边界。本文通过Canny算法初步确定目标特征的像素级边缘信息。

图像处理过程中,提高检测方法的精度一般有两种方式。一种是提高图像系统的光学放大倍数和CCD相机的分辨率能力;另一种是引入亚像素细分技术来弥补硬件的不足以提高图像系统的分辨率,可以节省系统的硬件投入成本[4]。

亚像素方法一般分为矩方法、插值法和拟合法。矩方法的优点是计算简便,并且可以得到解析解;插值法的运算时间最短;拟合方法对噪声不敏感适合精准测量[5]。本文选择拟合法,沿边缘法线的方向,以某边缘点为中心,取一列边缘区域向量的灰度值,如图2蓝色实线所示。可以发现反正切函数图像与边缘区域灰度分布非常相似[6]。因此,拟合反正切函数如式(2)所示:

图2 边缘法线灰度值

用式(2)描述物体边缘实际的灰度分布情况,确定模型中的参数(a1,a2,a3,a4),即可得到如图2虚线所示的拟合函数。亚像素边缘位于灰度值变化率最大的位置,对拟合的反正切函数求一阶和二阶导数得到式(3):

从式(3)可知,灰度值变化率最大位置和拐点位置重合,位于反正切函数位置,此位置即是该像素级边缘点亚像素边缘位置。

3 光照强度自适应的修正算法

3.1 边缘灰度直方图拟合广义高斯分布

通过图3可知,图像边缘区域内外几个像素的灰度直方图皆呈现广义高斯分布:

图3 边缘内外像素点灰度直方图

式(4)中,参数α控制着分布的“形状”,即衰减率;σ控制着方差。

由图4可知,在光照强度变化时,边缘的灰度直方图拟合的广义高斯函数的特征参数变化有一定规律:光照强度越大,广义高斯函数的平均值越大,方差越小,衰减率越大。

图4 不同光照强度边缘处灰度直方图

3.2 通过特征参数训练SVR

SVR(支持向量回归)是SVM(支持向量机)中的一个重要的应用分支。SVR回归与SVM分类的区别在于,SVR的样本点最终只有一类,它所寻求的最优超平面不是SVM那样使两类或多类样本点分的“最开”,而是使所有的样本点离着超平面的总偏差最小[7]。

图5 SVR示意图

将各种尺寸、有一定数量的已知真实尺寸(由三坐标测量仪触针检测得到的值视为真实值)的特征在不同光照强度下进行拍照作为训练样本,以亚像素算法检测的结果和实际值的差作为SVR的标签,以视觉检测的结果和边缘灰度直方图得到的广义高斯分布的平均值、方差、衰减率作为训练用向量进行数据归一化,选择合适的支持向量回归参数进行训练,得到训练模型。

3.3 通过训练集得到预测值

在获得了训练模型后,之后的检测过程中需要导入已有的支持向量训练模型,并通过SVR预测函数,将图像处理得到的基础尺寸和直方图广义高斯分布的特征参数作为特征向量,就可以预测得到由光照强度带来的尺寸偏差值,通过基础尺寸和偏差值相加得到光强修正后的精确尺寸。

4 实验与结果分析

4.1 实验环境

实验测试图像通过VIEWORKS VP-101MC-M8H00工业相机、Schneider Xenon-Zirconia 3.2/92镜头拍摄获取,原始图像大小均为11648×8742,光源采用OPT 90°蓝色LED环形光。实验计算机为i7-9700 CPU,16g内存及Windows10、Matlab2018b、Visual Studio 2019软件环境。实验还使用三坐标测量仪通过触针测量待测特征的尺寸值当作训练模型和验证误差的真实值,实验环境如图6所示。

图6 实验环境

通过标准量块、标准环规反复标定得到,本文实验所用设备采集到的图像,每一个像素长度为0.0018mm。

图7为实验用测试样件,包含了多种类型和尺寸大小的特征,本文选择其中的圆孔及键槽进行算法验证。

图7 测试样件

4.2 实验结果分析

4.2.1 检测内容

为了验证本文光强修正算法的正确性,选用测试样件中的圆孔和键槽,包含通槽、盲槽、沉头孔等各种类型的特征作为训练样本和测试数据,训练样本和测试数据彼此独立。

对于圆孔选择对亚像素边缘的点坐标进行概率霍夫圆拟合,得到圆孔的半径尺寸。对于键槽选择先用概率霍夫直线检测到直线部分并删除直线的坐标点,对于剩余部分分别进行概率霍夫圆拟合,得到键槽两侧半圆部分的信息,槽长即为两圆心距离加上两圆半径,槽宽为两圆半径的平均值。

拟合结果如图8、图9所示。

图8 圆孔拟合结果

图9 键槽拟合结果

4.2.2 检测结果

实验选择每隔2个光照强度为步长,从勉强看清边缘到边缘过曝为止,拍摄了50个圆孔和20个键槽,每个特征拍摄10张左右不同光照强度的照片。随机抽取20%作为测试集,其余80%为训练集。

表1为对测试样件测试样本的检测结果,可以看到,经过光强修正后测量值与实际值之间误差基本在10μm以内,相对误差更小,更接近真实尺寸。

表1 检测结果

5 结语

为了减小光照强度对视觉检测的影响,提高视觉检测精准度,本文提出了一种基于机器视觉的光照强度修正算法。首先采集大量不同大小不同光照强度已知实际尺寸的特征图片,对图片二值化并进行亚像素边缘检测,得到特征的基础尺寸,然后对原图的边缘区域灰度直方图进行广义高斯拟合,获得其均值、方差及衰减率作为特征向量,以基础尺寸与实际尺寸的偏差值作为标签进行支持向量回归的训练。通过训练的模型对待检测的特征即可获得光强带来的偏差从而进行修正,更加贴近真实值。

与传统方法相比,结果显示本文方法的检测误差减小了约50%,有效提高了检测的正确性和精度,能够更好的保证检测零部件的质量,且稳定性较好。本文的方法仅适用于有一定量训练样本的情况,有一定的局限性。下一步的研究工作将进一步提高训练样本较少时的鲁棒性和准确性,以便在更严格的检测中应用。

猜你喜欢
直方图灰度阈值
航空滤光片阵列多光谱图像条带灰度调整算法
非平稳声信号下的小波变换去噪方法研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
一种改进小波阈值去噪法及其仿真
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
用直方图控制画面影调
例析频率分布直方图
中考频数分布直方图题型展示