基于便携设备的螺钉状态视觉检测方法研究

2020-02-27 12:33姜金岭白伟光
计算机测量与控制 2020年1期
关键词:螺钉梯度灰度

姜金岭,孙 洁,白伟光

(1.北京航天测控技术有限公司,北京 100041; 2.北京市高速交通工具智能诊断与健康管理重点实验室,北京 100041; 3.装备全寿命周期状态监测与健康管理技术与应用国家地方联合工程研究中心,北京 100041)

0 引言

在自动化装配线上,螺钉需求量大,由于扭力扳手的大范围应用,经过拧紧操作的螺钉一般不会出现质量问题,而由于拧紧操作是由工人进行,工人在枯燥大量的拧紧螺钉过程中往往容易遗漏,造成严重后果。对螺钉拧紧状态的检测一直靠人工线下完成, 仍需要工人检验并手动记录,由于螺钉存在密集排布的特性,因此效率低且误判率高。

随着人工智能算法和数字图像处理技术的发展,机器视觉检测已经可以用于很多的应用场景,并且在工业检测中有很好的效果。但是在生产装配中,尤其是涉及小批量大范围设备的生产过程中,往往机器视觉检测并不能起到很好的效果,主要原因是设备无法与视觉检测系统形成稳定的检测环境,设备质量及复杂度,决定了相对固定式的检测方式并不能对检测对象进行有效的采集和识别,急需基于便携设备的检测方式。由于便携设备在检测过程中对于光照、拍摄角度等多种因素均无法保证较高的质量,因此一直是机器视觉中的痛点和难点。

在螺钉检测相关的研究中,已经有是否漏装、顶部型号的检测[1-2],但是在螺钉拧紧检测中还没有视觉检测相关的研究,针对小批量大规模设备的特点和便携式检测设备的检测环境,结合光度立体方法对于二维图像进行三维尺寸检测的思路[3],本文将研究分为螺钉定位、螺钉分割、特征提取和螺钉拧紧判定4个部分。

1 图像获取

基于便携设备的螺钉状态检测,选用典型小批量大规模设备中的柜门控制盘的螺钉作为检测对象,检测空间狭小,现场环境有光照及LED灯照明,采用工业彩色相机对设备进行拍照,由于图像采集设备的部署由工人完成,因此采集图像的位置存在20cm的偏差,采集角度存在10°的偏差,如图1所示,被检测对象背景复杂,不利于螺钉定位。

图1 螺钉图像效果图

2 螺钉定位

基于便携设备的螺钉拧紧状态检测,在拍摄相对位置和角度以及环境光照上均无法保证一致,又由于小批量大规模设备的背景复杂,因此检测过程中存在着大量的干扰,传统的检测方式效果很差,这也是目前对于该方面的研究少之又少的原因。本文采用图像配准的方式,首先选取一个已知正确的检测对象作为模板,之后同型号的检测均以已知正确的模板为参考对象,使用图像匹配的方式,将模板上的螺钉位置信息映射到待检测图像上,来快速准确定位螺钉位置。

目前常用的图像匹配算法主要有基于图像灰度的方法以及基于特征的方法,针对本文中采集的高清图像,使用基于灰度的算法,计算量巨大,不利于数据的实时处理,因此本文选用基于特征的配准算法。

小批量大规模设备的背景复杂,且采集图像的角度和位置不确定,因此图像匹配必须基于局部的特征点进行匹配,主要包括点、边缘、线条和小区域等。由于螺钉上有用来拧紧的十字或一字等槽,每个螺钉的槽的角度均不一致,常规的基于特征点的检测存在大量错点,稳定性极低。本文选取直线特征,并设置阈值排除一字和十字槽的直线特征,即基于LSD的算法,LSD分割算法是一种直线段检测的算法[4],可快速得到高精度的检测结果,可适用于不同光照、不同线粗、不同锐化程度的线段检测。

LSD得主要思想是通过求取灰度梯度得到轮廓特征,并把单位得轮廓特征用向量表示,并将方向趋于一致的向量聚类再进行精细化,最终得到局部得直线特征,灰度梯度图像的方向和线段的方向是垂直的,因此,算法思路首先通过灰度梯度的垂直构造一个直线段的向量空间,空间中有各个方向的边界,方向相同的联通区域即可表示线段的长度和宽度,将他们标记为候选直线段区域,并用最小外接矩形进行拟合即可得到直线段信息。

图2 LSD直线段备选区域

对于每一个直线段备选区域,需要采用一个矩形来进行计算[5],矩形的长边代表着备选区域的主轴方向,矩形的区域外接于整个区域。矩形区域内的边界备选线的角度跟主轴方向一定范围内保持一致的像素点被称为排列点,排列点与矩形区域内所有点的比例用于验证该区域是否可以作为直线区域的判别,如图3所示。

图3 LSD确定排列点

梯度计算通过如下公式获得:

gx(x,y)=

gy(x,y)=

边界备选线的角度通过如下公式计算:

梯度复制的计算公式如下:

LSD算法通过梯度和备选直线段角度将图像进行边缘标记。

实现了梯度和备选直线段的计算后,需要对这些参数进行排序,具有较高梯度幅值的像素点所在的区域通常具有较强的边缘,因此本文采用贪婪算法,从最高梯度幅值的像素点开始进行直线分割检测。为了提高排序速度,采用伪排序的算法在线性时间内完成梯度排序。

对于较小梯度的像素点,通过如下式的阈值进行筛选,低于阈值的点将被排除出直线区域外。

其中:q为梯度量化过程中可能的误差边界,本文通过测试,选取2,τ为容忍度。

LSD算法通过控制误差进行像素合并,在复杂背景中具有较强的鲁棒性,能够对柔性边界进行亚像素级的检测,如图4所示。

图4 LSD直线检测

LSD算法可以有效地提取图像的直线段信息,模型图像和待检测图像的大量的直线段信息需要进行匹配才能用于整个图像的匹配。

对于检测出的直线特征点,计算其相关系数:

对其进行归一化:

NCC=

特征之间的相似度越高,他们的方差就越小,特征点匹配时选取相关系数中最大的相关系数对应的特征点作为该参考点的匹配点。

对于LSD检测出来的模板图和待检测图上的大量的直线段信息,在求其相关性时需要用到搜索算法,传统的暴力式搜索算法计算量大,匹配效率很低。本文根据特征连续性的特点采用变步长的搜索策略,如果当前特征量的相关系数小于一定的阈值则增加搜索步长,可以实现特征的快速匹配。

特征点匹配情况如图5所示。

图5 基于直线特征点的匹配方法

3 螺钉分割

得到了需要检测的螺钉区域位置信息之后,由于光照的影响,图像的灰度往往是不均匀分布的,而且由于拍摄角度和拍摄环境的变化,螺钉的参数很难直观的获取,需要提取螺钉准确参数用来判别拧紧状态。螺钉一般为金属材质,并且具有较强的反光特性,因此利用亮度特征即可找到螺钉内部,同时利用螺钉的近似圆形的特征进行形态学膨胀[6],可实现对螺钉的区域的分割。

图6 螺钉区域分割

对螺钉的分割可分为3个步骤,首先,根据全局信息获取全局阈值,全局阈值的作用对象是定位出的螺钉区域包括前景和背景的所有像素,根据定位出的全局阈值设定颜色范围,确认两个分割阈值T1,T2。图像区域中小于T1的像素设置为T1,大于T2的区域设置为T2,这样易于多高亮的反光区域和阴影部分进行过滤,减少算法复杂度和提高算法效果。然后,对滤波后的区域进行基于局部阈值的分割,对每一个像素,阈值分割产生一个中心像素8邻域的属性来计算出一个或者多个阈值来对图像进行分割。具体步骤如下:

首先,对图像进行滤波处理,过滤掉图像中的噪音,采用均值平滑的图像滤波算法可有效对周期性的干扰噪声有很好的抑制作用,并且计算速度快,本文选用3*3的模板对图像进行滤波,在过滤噪声的同时保证图像的细节最大限度的保留。

其次,对图像进行梯度运算获取原图像的梯度图像,通过求取梯度可以去掉背景加重轮廓,x方向的梯度主要加重垂直方向的轮廓,y方向的梯度主要加重水平方向的轮廓,而对图像中光照的不均匀有很强的抗干扰能力。

得到了梯度图之后,运用Laplacian算子,找到具有局部最大阈值的点,其灰度值作为原始阈值,之后对候选点采样,替换灰度值,并插入灰度点,得到阈值面。

最后,利用阈值面对图像进行分割,由于之前已经将高于一定阈值和低于一定阈值的灰度像素进行了去除,因此该阈值面可以对图像进行有效的分割。

4 特征提取

分割后的螺钉区域,需对其进行特征提取,本文选用方向梯度直方图特征(HOG),该特征大量应用在图像处理识别等领域,相比于LBP特征等其它特征,自身拥有很多优势,HOG特征在图像几何和光学的形变会表现出优异的不改变的特性[7]。且螺钉的形状可很好的被梯度和关于边界的方向密度分布合理的表示出来。因为识别螺钉状态螺钉的边界特征非常重要,梯度可以很好的诠释螺钉边界信息[8],因此用梯度直方图可以表示出螺钉的边界情况。

通过计算每一个像素点的水平方向和垂直方向的梯度值从而得到该点的梯度值和方向大小,对数据进行求导还可以进一步弱化光强的干扰因素,梯度公式如下所示。

Qx为水平梯度;Qy为垂直梯度;N(x,y)为梯度大小;θ(x,y)为梯度方向。

螺钉HOG特征图如图7所示:(a)为原始图像,(b)为梯度特征,(c)为HOG边缘方向特征图,对图像分块进行方向梯度特征的统计,得出图像的HG特征。

图7 HOG特征图

螺钉区域除了提取的基于HOG的统计特征外,还有其独特的特征,这些特征在进行螺钉检测方面能起到关键的判别作用,通过一定倾斜角度的图像拍摄进行螺钉拧紧的检测主要的判别依据是螺钉在背景上探出的长度,因此螺钉区域的宽高比等参数对判别起到很大的决定作用,同时,拍摄角度和不同光照会使螺钉区域出现一定程度的变形和灰度之变化,为了描述不同光照不同拍摄角度的螺钉光学特征,引入以下参数:

1)螺钉尺度L。

2)螺钉尺度平均值μL。

3)螺钉宽高比R。

4)螺钉方向角度θ。

5)螺钉方向角度平均值μθ。

6)螺钉方向变异系数CVθ。

其中:μθ为螺钉方向角度平均值,σθ为角度方差。

7)螺钉长短轴比例平均值μp。

8)螺钉长短轴比例变异系数CVp。

其中:μp为螺钉长短轴比例平均值,σp为长短轴比例方差。

9)螺钉反光点质心D。

5 螺钉拧紧判定

通过提取的螺钉的HOG特征及螺钉的光学特征,共得到468维的数字特征,并且原始数据信息中包含着一定程度的噪声信息和冗余信息,导致螺钉拧紧的判定陷入局部最优而导致无法准确判定,因此提高螺钉拧紧状态的检测速度和识别准确率,需对数字特征进行降维处理,本文采用PCA算法对螺钉的HOG特征和光学特征进行降维[9]。

PCA通过线性变换将原特征矩阵转换为各维度线性无关的表示,可用于提取特征矩阵的主要分量,如下式:

将p维向量转化为m维线性无关的向量,并引入协方差矩阵的概念,选取m维向量中方差最大的特征作为主要特征用于后续的分类识别。

协方差用来度量两个随机变量关系:

本文通过映射将原线号HOG特征投影到一个新的线性子空间如下式所示:

X代表提取的特征空间;βi代表X在子空间i轴的投影;Bi代表i轴的特征向量;μ代表特征向量的平均值。

图8 主成份信息分布

当选取前30个特征成分时,携带数据为94.5%,当选取前50个特征成分时,携带信息为98.11%。本文选取前40个主成份作为螺钉拧紧判定的特征。

支持向量机[10]建立在统计学习理论的VC维基础上,强调结构风险最小化。VC维是描述函数复杂程度的度量,VC维越高,问题越复杂,SVM基于VC维基础,样本的维数对SVM分类影响微乎其微,因此适用于高维特征分类。从理论上来说,支持向量机能够实现对线性可分数据的最优分类,因此本文选用SVM作为判定螺钉是否拧紧的分类器。

对于二分类的样本{x1,x2,……xn},其中xi为m维向量,假设该分类问题为线性可分的,则分类面(线,面,超平面)为:

d(x)=wTx+d=0

对模型进行规范化,使所有样本对分类面的距离d(x)≥1,即距离分类面最近的样本与分类面的距离为1。

由点面距离公式:

图9 SVM最大化分类边际分类面

最优分类函数为:

在非线性可分的情况下,需要使用核函数对原特征进行高维拓展,SVM定义内积核函数:

K(xigx)=xigx

则通过核函数定义的非线性变换将原特征空间转换到高位特征空间,在新的特征空间中实现先行分类。

常用的核函数包括线性核、多项式核、径向基核和高斯核,其中径向基核函数的表现最稳定,其形式为:

其中:xi和xj分别为支持向量和待分类模式,σ类似于高斯函数的标准差,代表了该支持向量在特征空间的影响范围。

6 实验及分析

实验选取5个控制柜中的20组图像,共420个螺钉(360个拧紧,60个未拧紧)作为检测对象。检测环境为自然光照的车间现场,无阳光直射。

检测系统选用4 912×3 684的高分辨率数字工业相机,具有非常好的稳定性和抗干扰能力。为保证系统的检测能力,增加补充照明灯,光源选用机器视觉专用的LED冷光源,功率小,使用寿命长,光源选用常规小尺寸面光源。

首先检测系统选定某个设备中的螺钉区域进行图像拍摄,由技术工人质检复核为准确装配的模板,通过检测算法进行区域标定,之后对5个控制柜进行图像拍摄,首先将检测设备移动至控制柜前,由操作工人操作设备使设备能够清晰采集到控制柜中的相应区域并进行图像采集。之后通过本文算法对420个螺钉区域进行自动的匹配、分割和检测。

对420个螺钉样本进行检测,本文算法检测出341个拧紧,52个未拧紧,27个由于聚焦模糊、采集缺失等原因需要复检。整体检测准率达93.57%。

7 结束语

传统螺钉的检测方法大多依赖人工操作,测量过程费时费力,检测精度相对较低,即使对一些高精度测量要求的参数,也仅采用人工操作机器视觉的方法检测,无法实现大批量的自动化检测。基于机器视觉的螺钉多参数自动化检测系统结合了光学测量技术、计算机图像处理技术和自动控制技术,实现螺钉多参数测量的自动化,既保证了测量精度,又大大提高了生产效率,并为数据管理和信息集成提供便利。本文的方法在对于采图特征复杂的测试集下效果较差,是由于本文的方法对匹配特征的依赖性较大,因此,后续的研究工作为对设备特征进行深入研究,有效识别设备中的固定特征,减少其他不确定因素的干扰。

猜你喜欢
螺钉梯度灰度
加长骶髂关节螺钉治疗骶髂关节复合体损伤的研究进展
航空滤光片阵列多光谱图像条带灰度调整算法
采用改进导重法的拓扑结构灰度单元过滤技术
天津港智慧工作平台灰度发布系统和流程设计
内固定螺钉要取出吗?
Arduino小车巡线程序的灰度阈值优化方案
一个具梯度项的p-Laplace 方程弱解的存在性
内容、形式与表达——有梯度的语言教学策略研究
航磁梯度数据实测与计算对比研究
组合常见模型梯度设置问题