基于贝叶斯分类与角点匹配的工件定位算法研究

2020-10-27 11:38
关键词:角点螺母贝叶斯

饶 健

(三明学院 信息工程学院,福建 三明 365004)

机器视觉、物联网和机器人已经越来越多地用到了工业制造领域,其中以基于机器视觉的工件定位为核心展开的智能化项目是基础,本研究以工件定位为研究对象,以贝叶斯分类、角点匹配为手段,让机器知道工件位置,用于引导机器人的作业。

工件定位属于计算机视觉领域中的目标定位,国内研究人员已经取得了一定研究成果。王翰[1]提出基于双目视觉的带圆特征工件空间定位,建立虚拟椭圆投影模型,然后建立虚拟椭圆锥面,计算圆面的姿态,解决圆面定位的二义性问题,获得空间圆面准确的位姿。但是该技术缺乏大数据测试与论证,在实际流水线运作环境可能出现误定位的问题。翟永杰[2]提出基于机器视觉的汽车工件抓取定位系统,以FANUC机器人为平台,采用单应性矩阵和最小外接矩形方法,完成定位。该技术过度依靠硬件支持,且成本较高。郭斌[3]基于工业相机完成图像采集,由NI Vision软件进行图像处理,基于边缘检测提取质心点,完成目标定位。该技术采用商业付费软件,不仅底层应用调取不灵活,而且成本较高。

为了增强复杂条件下工件定位的准确性,本文融合了图像处理技术与机器学习来设计并实现了工件定位算法,并开发了一套了工件定位软件系统。为保证算法和系统的普适性,本文算法面向多种工件进行定位,并且预留了增设其他工件定位的接口。最后,测试了本文算法的定位准确性。

1 本文工件定位算法

工厂智能化需要用到大量工业机器人,机器人具有机械手装置,但是缺乏视觉与分析系统。需要开发出与之配套的视觉系统,给与其动作引导功能。为了达到引导机器人的目的,采用角点检测的方式,保证定位准确度,采用贝叶斯分类的方式,保证识别的稳定性,整个定位过程如图1所示。利用工业相机完成工件图像采集;采用角点检测与角点匹配的方式,定位工件的区域与位置;利用贝叶斯分类,完成工件的精准定位;最后将定位机制从方案实现为代码和系统,完成落地化应用,以达到准确、快速识别工件目标的目的。典型的待定位的工件目标图像如图2所示。

1.1 基于角点匹配的工件定位

由于工件种类繁多且摆放随意,本文以螺丝、螺帽和六角螺母为例,定位对象为六角螺母,即区分开螺丝、螺母。采用简单的灰度阈值分割和形态学处理的方式很难满足需要,因此本研究引入角点检测。角点是轮廓交汇点,即同场景的视角发生变化,附近区域像素点在梯度方向和幅值上有较大变化[4]。六角螺母具有6个角的特点,这种特征点较为明显。窗口在图像上滑动,比较滑动前后窗口中灰度变化,如果存在较大灰度变化,则认为窗口中存在角点[5]:

E(u,v)=∑x,yw(x,y)[I(x+u,y+v)-I(x,y)]2

(1)

式中:[u,v]是偏移量;(x,y)是窗口内坐标,w(x,y)是窗口函数。本算法中,w(x,y)函数以中心为原点二元正态分布[6],变换式(1)为

(2)

式中:[u,v]代表窗口的偏移量;M代表窗口角点矩阵

(3)

式中:M是角点矩阵;w(x,y)是窗口函数;Ix和Iy代表像素梯度坐标,Harris角点检测通过窗口内像素的x与y方向上梯度统计分析[7-9]。

图1 本文系统框架

对于所提算法而言,主要是根据Harris角点特征来完成对六角螺母的检测。在此基础上,本研究进行角点匹配,即将待检图像中的疑似角点与标准六角螺母的已知角点进行配对,从而得出六角螺母的6个角位置,完成角点检测。对图2角点检测后的结果如图3所示,正确定位到六角螺母的位置。

图2 待定位的工件图像 图3 角点检测结果

1.2 基于贝叶斯分类的定位结果

在实际应用中,一次需要检测的工件数量往往较多,而且待检视野中还有其他工件,比如螺丝和螺帽。为了准确定位到螺母而不是螺丝,引入了机器学习技术,即贝叶斯分类器。贝叶斯分类基于概率统计进行分类,通过先验概率,计算出其后验概率,选择最大后验概率的类作为所属类[10-11]。

首先,建立工件图像种类库,将其作为贝叶斯分类器的输入端。其中,图像、工件种类作为一条特征行:

x={a1,a2,...,am}]

(4)

式中:x代表特征行;a代表特征;m代表特征个数。

其次,把每条特征行存入样本数据库,接着针对人工标注的工件种类,建立类别集合[12]:

C={y1,y2,...,yn}]

(5)

式中:C代表结果类别集合,y代表文本文字内容;n代表文本文字个数。

贝叶斯分类算法解释了一个识别结果的可能性,基于对同类事物理解的经验和知识[13],数学表达式为

(6)

式中:c代表待识别的工件种类;a代表支撑判断的证据特征。

随后,在上述基础上引入概率密度函数,完成数据训练和结果识别[14-15]:

(7)

式中:c代表待识别的工件种类;a代表支撑判断的证据特征;u代表特征均值。

以图3的角点检测结果为数据,利用贝叶斯分类器来定位工件,结果如图4所示。由图4可知,工件定位准确。

图4 定位结果

3 实验与讨论

本次实验将算法以代码实现,并且集成在软件系统中进行实验,角点参数为 [0.65,0.78]。为了凸出所提技术的优势,将文献技术[1-2]的定位结果作为对照组。

待定位的图像如5所示,有2个六角螺母待检测定位。工件定位系统界面如图6所示,功能有:贝叶斯分类、角点匹配和工件定位。

本文算法采用Harris角点检测,完成螺母工件的粗定位,并基于贝叶斯分类,完成螺母工件的识别确认和精定位如图7所示。螺母工件定位正确,定位到两个螺母工件,没有对螺丝螺帽误定位。文献[1]算法通过建立虚拟椭圆投影模型,然后根据虚拟椭圆锥面来计算圆面的姿态,该技术缺乏大数据训练,在实际流水线运作环境中,往往出现系统不稳定的问题。文献[2]技术以机器人软件系统为基础平台,基于单应性矩阵的原理,用平台自带的最小外接矩形定位工件目标,该技术过度依靠商业硬件平台支持,且成本较高,缺乏灵活性。文献[1]和文献[2]定位结果如图8和图9所示,定位结果有一定的误差,图8误定位了一个螺帽,图9误定位了一个螺帽,少定位了一个螺母。通过实验对比发现,本文算法对工件定位更为准确,具备更好的准确度与稳定性。

图5 待定位图像 图6 系统界面图

图7 本文算法的定位结果 图8 文献[1]算法的定位结果

图9 文献[2]算法的定位结果

为了客观反映本文算法的稳定性,自行构建10组测试样本,每一组中均含有8个螺母,10个螺钉,以及12个螺栓,但是所有的零件尺寸与形状都不一样。再利用所提算法与文献算法[1-2]来检测其中的螺钉,并统计各自的准确性,结果如表1所示。由表1可知,所提算法具备更好的准确性,例如,对于第1组实验,其能够准确定位出10个螺钉,无误检和漏检现象。而文献[1]的检测正确度不佳,只将其中的6个螺钉识别出来,并存在误检目标,把3个螺栓误判为螺钉。同样,文献[2]方案的准确性也不理想,虽然能够将10个螺钉全部检测出来,但是也存在误检,将1个螺母和3个螺栓误判为识别目标。同样,对于其他几组实验,也具有类似的检测结果。

表1 不同算法的稳定性测试

3 结 语

为了解决现场复杂环境下工件目标难定位的问题,本文设计并实现了一套基于贝叶斯分类与角点检测的工件定位算法。该技术分别从角点特征、检测匹配、贝叶斯分类出发,根据工件定位应用场景,分析并建立了Harris角点检测方程,检测出六角螺母的特征角点位置,以此定位六角螺母;建立贝叶斯分类模型,通过特征集训练,基于训练出的分类器确认所定位的工件为六角螺母,实现算法与系统并落地于实际产线量产,达到准确定位工件目标的目的,为后续智能化设备奠定了智能算法基础。在实际生产中,逐步研发增加各种工件目标定位的技术是下一步深入研究的内容。

猜你喜欢
角点螺母贝叶斯
一种改进的Shi-Tomasi角点检测方法
新型自锁、防松螺母的制作与应用*
基于贝叶斯解释回应被告人讲述的故事
三种铆螺母紧固件的应用与对比
“永不松动”的螺母
杯沿“叠罗汉”
基于FAST角点检测算法上对Y型与X型角点的检测
基于圆环模板的改进Harris角点检测算法
基于贝叶斯估计的轨道占用识别方法
基于互信息的贝叶斯网络结构学习