基于机器视觉的工件识别与定位系统设计与实现*

2021-01-27 02:06崔亚飞
组合机床与自动化加工技术 2021年1期
关键词:轮廓工件模板

罗 辉,崔亚飞

(永州职业技术学院智能制造与建筑工程学院,湖南 永州 425100)

0 引言

随着《德国工业4.0》、《中国制造2025》[1-2]等战略的出台,传统制造业正逐步进入智能制造时代。机器人关节是机器人组成的关键部件,由于机器人种类较多,且需要小批量生产,故机器人关节组装生产需要大量的和种类繁多的工件。机器人关节组装过程中,需要大量的人工完成工件的识别和分拣工作,工种自动化程度较低,成为机器人关节生产的瓶颈所在[3]。在工件分拣的生产线上,大多数公司采用传统的手工分拣。然而,近年来我国劳动力成本急剧上升,人口老龄化严重,国内产业升级加速进行,机器视觉作为工业的眼睛,广泛应用于各个行业,如:路况监控、药品检测、车牌识别、人脸识别等各个行业,传统的手动分拣将没有任何优势[4]。因此,将机器视觉技术应用于工业分拣系统具有重要的意义,与传统的分拣的方法相比,它具有更高的质量、速度和智能[5]。与人类视觉原理相似,机器视觉主要由视觉传感器组成,首先,它获取图像是相机而不是人眼。然后,将图像传输到计算机。经过处理和分析,最终将有用的信息用于实际的检测、测量和控制[6-7]。

视觉分拣的前提是工件的识别与定位,工件识别定位技术在自动化生产中起着重要的作用,如机械加工、装配操作和自动分拣等。图像预处理、特征提取和识别算法等都应用于工件识别定位的实现。在特征提取方面,有矩不变量[8-9]、尺度不变特征变换(SIFT)[10]、加速鲁棒特征(SURF)[11]等方法,均具有平移、旋转、缩放不变性。但是SIFT和SURF非常复杂,当图像尺寸较大时,它们需要更多的运行时间。显然,在某些应用领域,它不能满足实时性的要求。针对大尺寸图像下工件几何特征简单的识别问题,利用Hu矩不变量对工件进行快速、高效的处理。

本文将视觉技术与工件分拣相结合,提出了一种基于OpenCV[12]视觉的机器人关节工件形状匹配的识别算法,可以使工业机器人分拣作业拥有更高的可靠性,分拣对象及分拣工件种类可随时变换,提高了机器人关节工件装配生产的效率和工业机器人分拣系统的智能化程度。基于以上技术优势基础,开发和研究基于视觉技术的工件识别与定位系统有着十分重要的意义。

1 系统分析与结构

1.1 待识别对象分析

本文主要研究对象是需要组装的机器人关节工件,机器人关节有I型机器人关节成品套件如图1所示,每套机器人关节由4个工(部)件组成,分别是关节底座、电机、谐波减速器和输出法兰。

图1 机器人关节工件和成品套件图示

图1中,工件1的尺寸分别是:外直径102 mm;内直径50 mm;高76 mm;工件2的尺寸分别是:外直径80 mm;宽50 mm;高55 mm;工件3的尺寸分别是:外直径80 mm;内直径15 mm;高8 mm;工件4的尺寸分别是:外直径90 mm;内直径15 mm;高16 mm。

1.2 识别系统的机械结构

本文针对机器人关节工件的特点及视觉检测的要求,同时考虑到系统成本和生产现场的安装空间等因素,设计了如图2所示的机器人关节视觉识别与定位系统装置。该系统装置的主要结构包括:图像采集相机、托盘输入检测光电开关、托盘传送链、相机拍照托盘检测光电开关、步进电机、LED光源、控制柜、托盘等待搬运工位气挡电池阀、图像识别工位气挡电池阀、图像识别上位机、显示屏等。

1.图像采集相机 2.托盘输入检测光电开关 3.托盘传送链 4.相机拍照托盘检测光电开关 5.步进电机 6.LED光源 7.控制柜 8.托盘流出检测光电开关 9.托盘等待搬运工位气挡杆 10.图像识别工位气挡杆 11.图像识别上位机 12.显示屏

图2 机器人关节视觉识别与定位系统装置

为了保证待识别工件的图像采集效果,本文在相机检测的底部安装了LED灯,保证了采集光线的充足。同时在图像采集区位置安装了气缸和传感器,如果有新的工件到达了图像采集区位置,如图3所示,则气缸伸出,保证了图像采集时的稳定性。

图3 图像采集区

1.3 系统的整体方案

机器人关节工件识别与定位的整体流程设计如图4所示。首先,当有工件到达流水线时,托盘输入检测光电开关把检测到的信号传给控制器,控制器开始控制托盘传送链运转并计数。之后,当工件刚离开相机拍照托盘检测光电开关时,控制器控制电池阀,使图像识别工位气挡杆抬起,阻挡工件继续前进,方便相机更稳定地采集图像。当相机采集完图像后,上位机给控制器信号,控制器控制图像识别工位气挡电池阀降下,工件继续前行。最后,当工件到达托盘流出检测光电开关时,控制器控制电池阀,使托盘等待搬运工位气挡杆抬起,阻挡工件继续前进,等待进一步的处理信号。

图4 系统整体流程方案

2 图像预处理

图像的预处理是工件准确识别的重要组成部分,这个处理的结果将直接影响到后续轮廓的提取。在本文中,图像预处理主要包括图像灰度化、均值滤波和自适应阀值分割的图像二值化。

在OpenCV中,函数cvtColor的作用是将图像从一个颜色空间转换为另一个颜色空间。通过设置参数代码COLOR_RGB2GRAY,可以将GRB转换为灰色。

在OpenCV中,函数blur是均值滤波,通过图像内核公式(1),该函数可以进行图像模糊平滑,该核内的值,求平均值放入核中。

(1)

式中,gsize是进行图像模糊平滑的尺寸大小。函数blur中borderType有8种边界模式,用于推断图像外部像素的某种边界模式,本文使用默认值BORDER_DEFAULT。

在OpenCV中,函数adaptiveThreshold对图像应用自适应阈值,根据如下公式将灰度图像转换为二值化图像:

(1) THRESH_BINARY

(2)

(2) THRESH_BINARY_INV

(3)

式中,T(x,y)是每个像素都单独计算的阀值,src(x,y)是待计算的像素值。

图像预处理过程如图5所示,首先通过相机采集原始工件RGB图像,如图5①,然后把原始图像灰度化,如图5②。由于灰度化的图像具有干扰点,影响图像的后期处理,所以有必要对灰度化图像进行滤波去噪,本文使用的是均值滤波,如图5③。最后使用自适应阈值滤波去除较小的干扰,如图5④。

图5 图像预处理过程图

3 机器人关节轮廓的提取

机器人关节工件轮廓提取的目的是为了得到疑似工件的外轮廓,这样我们就可以得到胡矩不变量。从图5d中的阈值分割结果可以看到,图中有一些小的连通区域,这些区域必须去除,否则会影响我们轮廓提取的准确度。因此,在从二值图像中提取所有的轮廓后,需要计算工件轮廓的面积、周长和圆度。之后,如果从二值图像中提取轮廓的周长或者圆度小于预给定的阀值,则该轮廓将被移除掉。圆度是表征某一连通区域形状复杂度的一种特征参数,它是以某一连通区域的面积和周长参数,通过方程(4)计算得到:

(4)

式中,ε表示圆度,S是计算得到的轮廓面积,L是计算得到的轮廓周长,从式中我们可以得到,如果某一连通区域的形状越复杂,则圆度值ε就越小。

工件轮廓提取流程如下,首先需要从图6①中的阈值分割二值图像中提取轮廓,提取轮廓效果如图6②所示,同时,提取的这些轮廓中周长和形状复杂的连通区域将被移除掉,移除后的效果如图6③所示。

在OpenCV中,从二值图像中提取工件轮廓的过程主要用到findContours这个函数算子,使用CV_RETR_TREE这种方法能检测所有轮廓并建立继承关系。

图6 图像预处理过程图

4 工件种类的识别与定位

4.1 胡氏不变矩理论

几何矩是1962年由Hu提出,具有平移、旋转和尺度不变的特性。其分析如下:

(12)对于数字图像f(x,y),其(p+q)阶普通矩和中心矩的公式如下:

(5)

(6)

式中,M,N是图像的总行数和总列数。

(2)用零阶中心矩upq进行归一化,归一化中心矩ηpq为:

(7)

(3)构造胡氏7个矩不变量

φ1=η20+η02φ2=(η20-η02)2+4η112φ3=(η30-3η12)2+3(η21-η03)2φ4=(η30+η12)2+(η21+η03)2φ5=(η03-3η12)(η30+η12)+[(η30+3η12)2-3× (η21+η03)2]+3(η21-η03) (η21+η03) [3(η30+η12)2-(η21-η03)2]φ6=(η20-η02)[(η30+η12)2-(η21+η03)2]+

4η11(η30+η12)(η21+η03)

(8)

φ7=(3η12-η03)(η30+η12)×[(η30+3η12)2-3× (η21+η03)2]+(3η21-η03) (η21+η03)

[3(η30+η12)2-(η21+η03)2]

(9)

式中,φ1~φ7为胡氏不变矩的7个矩不变量。

上述7个矩不变量值的范围变化比较大,可能会出现负值,因此,本文采用下列改进的公式:

mi=sign(φi)log(φi),i=1,2,…,7

(10)

4.2 工件轮廓提取与匹配

工件轮廓提取与匹配的思路是:首先,需要对模板图像和待识别图像进行图像的预处理。其次,将模板图像进行二值化,并从二值化模板图像中提取出目标工件的外轮廓。对于待识别的工件图像,我们同样需要将其图像进行二值化处理,必须提取出待识别工件的所有轮廓,并对轮廓进行区分。之后,我需要算出模板轮廓Hu矩值和待识别图像中的轮廓Hu矩值。最后,将模板的轮廓与待识别的轮廓进行匹配。工件轮廓提取与匹配过程如图7所示。

图7 工件轮廓提取与匹配

在OpenCV中,工件的识别与匹配过程需要使用matchShapes函数算子, 计算比较两张图像Hu不变距,该算子有3种有效地使用Hu矩值的比较方法,如下述过程:

(1) CV_CONTOURS_MATCH_I1:

(11)

(2) CV_CONTOURS_MATCH_I2:

(12)

(3) CV_CONTOURS_MATCH_I3:

(13)

如果A和B属于同一种形状,则I(A,B)的值将接近于0,经过实践表明,如果采用公式(11),I(A,B)的值小于0.05时就可以认为A和B属于同一种轮廓。

4.3 工件的识别与分类

由图1可知,待分类识别的工件共有4个,其中工件1、工件3和工件4通过图7的步骤提取轮廓信息都是圆形,不同工件的不同点在于圆形轮廓的数量和面积。而工件2只有一种类型,通过图7的步骤很容易识别。本文的工件识别与分类的过程如图8所示。

首先,提取待识别工件图像的轮廓,同时,提取的待识别工件轮廓中周长和面积。然后,取出识别的轮廓分别与匹配模板圆形相比较,如果待识别工件的轮廓没有圆形,则该工件是工件2,否则比较圆形的数量。如果圆形的数量为3个,则工件为工件4,否则继续比较圆形的面积。如果待识别工件中圆形面积有两个大于设定值,则该工件是工件1,否则是工件3。

图8 工件的识别与分类

4.4 工件定位

在工业应用中,只是识别出工件的种类还不能满足需求,往往需要求出工件的具体位置和方向,工件的位置确定可以通过计算轮廓的质心获得到工件的位置公式如下:

(14)

(15)

式中,imageArray(i,j)是一种轮廓的二维点数组。

工件的方向是相对于工件图像坐标而言的,在确定方向时必须选择合适的特征。本文针对形状规则、对称轴和凸轮轮廓的工件2,通过搜索工件的最小外接矩形可以得到主轴。主轴相对于图像坐标的倾斜表示工件的方向。

在OpenCV中,函数minAreaRect可以计算并返回指定点集的最小区域边界矩形。利用该函数,我们可以得到工件轮廓的最小面积边界矩形,然后根据矩形的4个顶点得到主轴及其垂直线。

但是,本文的工件1、3和4没有凸轮的轮廓,不能通过外接矩形来确定工件的方向。由于确定工件1、3和4的方向由两个面积最小圆形轮廓构成,故可以先分别求出两个小圆的质心坐标(x0,y0)和(x1,y1),通过如下公式求出斜率ε:

(16)

通过公式(16)求出的斜率,进而可以用反三角函数得出工件1、3和4倾斜的角度。

5 实验结果与数据分析

5.1 工件识别实验与分析

本实验使用OpenCV中的matchShapes函数匹配待识别工件图像和模板图像,该函数的返回值I(A,B)小于0.05时,就可以认为属于同一种形状。为了验证该算法的可行性和有效性,本实验设计了如图9所示的工件图像自动化采集装置,针对每个工件设计了2种不同摆放位置的实验,分两组共采集了8张图像,实验圆形模板图像如图10a所示,圆矩形模板图像如图10b所示,第一组采集待识别的工件1、2、3、4图像如图10c,第二组采集待识别的工件1、2、3、4图像如图10d。

图9 工件图像自动化采集装置

(a) 圆形模板 (b) 圆矩形模板

(c) 第一组采集待识别的工件1、2、3、4图像

(d) 第二组采集待识别的工件1、2、3、4图像图10 模板图像和工件采集图像

本实验让采集的两组图像的每个工件图像的轮廓分别与圆形模板10a和圆矩形模板10b的轮廓进行匹配,匹配的返回的结果就是每个目标图像中轮廓与模板图像轮廓的相似度。当目标图像轮廓与模板图像轮廓的相似度小于0.05的时候,我们认为目标图像中的轮廓与模板轮廓形状一样,否则认为不一样,并记录返回结果,匹配结果如表1所示。

由表1可知,第一组共有4个图像基本都是垂直或水平,每张图像的平均相似度均小于0.05,故可以认为符合识别判别条件。根据第一组的分析,同样也可以识别第二组的图像,同时可以得出第一组和第二组的相似度平均误差为0.000 418。

表1 工件图像识别结果

5.2 工件定位实验与分析

工件定位实验主要是求出每个工件的质心和倾斜方向,本实验所用采集图像如图10所示,图10c是第一组,图10d是第二组。工件1、2、3和4求出定位的方法是使用OpenCV中的moment ()函数找出待识别图像每个轮廓的轮廓矩,然后再计算出每个轮廓的质心和角度,轮廓的质心和角度数据如表2所示,图像处理结果如图11所示。

表2 图像轮廓的质心和角度识别结果数据

(a) 第一组工件1、2、3和4的质心和角度

(b) 第二组工件1、2、3和4的质心和角度图11 工件的质心和角度定位结果

6 总结

本文针对机器人关节工件识别与分拣过程中人工效率低下的问题,提出了一种基于OpenCV视觉的机器人关节工件的识别与定位算法,该算法可以提取待识别工件的轮廓,然后使用Hu矩不变量和模板匹配识别工件类型,同时,也可以得出工件的位置和方向。但是工件识别与定位结果的准确性主要依赖于轮廓提取的精度。实验结果表明,本文提出的工件识别与定位算法是可行的和高效的,提高了机器人关节工件的分拣效率,具有重要的参考和应用价值。

猜你喜欢
轮廓工件模板
铝模板在高层建筑施工中的应用
铝模板在高层建筑施工中的应用
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
考虑非线性误差的五轴工件安装位置优化
三坐标在工件测绘中的应用技巧
高速公路主动发光轮廓标应用方案设计探讨
铝模板在高层建筑施工中的应用
城市综改 可推广的模板较少
焊接残余形变在工件精密装配中的仿真应用研究