基于机器视觉的并联机器人工件识别定位*

2021-12-18 13:38赵鹏宇王宗彦丁培燎臧春田
制造技术与机床 2021年12期
关键词:轮廓算子灰度

赵鹏宇 王宗彦 丁培燎 吴 璞 臧春田

(①中北大学机械工程学院,山西 太原 030051;②山西省起重机数字化设计工程技术研究中心,山西 太原 030051)

目前并联机器人因其可以大大提高工件分拣速度,已被应用到自动化工件分拣线中,而且机器人技术的应用也是衡量一个国家工业水平的重要指标,因此已被列为“中国制造2025”规划中的重点突破项目[1]。但是我国的大部分并联机器人分拣系统采用的是传统的示教方法,预先规划好路径与工件信息,无法对工件进行识别,一旦工件种类、位置和位姿发生变化就无法完成指定工作。为了提高机器人的柔性自动化水平,发挥并联机器人高速的优势。必须使其可以实时掌握工件的种类、位置等信息,这就引入了机器视觉技术。机器视觉不仅识别速度快准确率高,而且成本较低,因此已被应用在工业生产线、探伤检测和非接触测量等工业场景[2-4]。机器视觉技术实现过程为:首先通过相机采集图像,然后对图像进行处理并获取有效信息,使机器人可以对工件进行识别并确定工件的位置,最终提高生产线的分拣效率,而且减少了人力资源的浪费。

机器人工作时首先要进行工件识别,识别的准确性决定了机器人的整体性能。目标识别方法中最常用的是图像匹配法,其主要包括基于灰度值的匹配算法和基于特征的匹配算法[5]。两种方法中,由于特征提取匹配方法具有运算速度快,鲁棒性好,抗干扰等优点[6],因此受到很多研究者的关注,催生了很多成熟的理论和特征提取方法,如SIFT、SURF[7]、ORB[8]和不变矩特征等方法[9],都可以提取出稳定不变的特征,得到了越来越多的应用。

本文通过将工业相机安装到并联机器人分拣线上来采集图像,利用OpenCV视觉库进行图像处理。在分析了现有的图像预处理,特征提取等方法后,提出了一种工件识别与定位的图像处理算法:提取目标图像中的工件轮廓,提取其不变特征,将其与模板轮廓的不变特征进行匹配,以达到识别工件的目的,针对摆放位姿随机的工件再确定其质心信息与旋转角度。

1 机器视觉硬件系统

机器视觉硬件可以分为图像采集和图像处理两部分。图像采集部分采用的是工业相机,型号为海康MV-CA013-20面阵相机,分辨率为1 280×1 024,通讯口为Gige接口,镜头为画面清晰度高、对比度好的MVL-HF1628M-6MP,并采用LED条形光源进行补光以使工件图像更加清晰。将相机垂直安装在并联机器人分拣传送带上方,用于采集工件图像,如图1所示。

以PC作为上位机,通过Gige网口接收工业相机发送过来的图像信息,CPU为I5-3470s主频为2.9 GHz,内存为4 G,系统为WINDOWS 10,每秒最多可接收90帧图像。具体的实验平台如图2所示。以C++作为开发语言,通过Microsoft Visual 2017软件作为开发环境,完成图像处理任务。

2 图像预处理分析

工件识别算法的核心是对采集到的工件图像进行图像处理,步骤一般包括图像预处理与图像匹配。预处理的步骤一般为灰度转换、滤波、阈值分割和边缘检测。图像匹配的步骤包括特征提取与模板匹配。

机器人依据工件形状对工件进行识别,所以只需要灰度图像就可以完成识别工作,灰度转化可以将采集到的RGB图像转换为灰度图像。灰度转换后的图像不仅可以加快识别速度,而且可以提高准确性。OpenCV中通过cvtColor函数可以实现灰度转换,需要将参数设置为COLOR_RGB2GRAY。具体效果如图3所示,图3a为原始图像,图3b为灰度转换后的图像。

2.1 图像滤波

图像滤波又称为图像平滑,由于相机在工作和传输过程中不可避免地会受到来自粉尘、噪声等因素的干扰,图像滤波就是尽可能地消除这些因素的影响,同时突出图像中识别对象的特征,提升图像的质量,也要保存其中的边缘轮廓等信息。图像滤波的方法主要有均值滤波、高斯滤波、中值滤波及双边滤波等。前两者无法抑制孤立的噪声点并且对图像细节有所破坏,使边缘不能很好地保存。后两种滤波效果中,中值滤波效果如图4a所示,双边滤波效果如如图4b所示。

中值滤波是通过计算像素点邻域灰度值的中值来消除噪声,对椒盐噪声和脉冲噪声有很好的效果,同时对图像的边缘信息也可以很好地保存。而双边滤波还是存在高频噪声,对比之后选择中值滤波。

2.2 图像阈值分割

图像阈值分割是图像处理的关键步骤之一,其目的是将背景与识别目标分离,去除大量的无用信息,突出人们感兴趣的区域,方便后续的识别操作。图像分割的方法有很多其中阈值分割法因其简单快速而受到广泛地应用。

分割阈值的数值是该方法的重要参数,需要遍历图像以寻找最优阈值。目前成熟的阈值分割法有很多包括固定值法、最大类间方差法[10]和最大熵分割方法等[11]。根据中值滤波后的灰度直方图(如图5所示),灰度直方图有明显的分布趋势,所以不必采用搜索阈值的方法,而是采用固定值法。

固定值法可以有效减少算法的运算量,提升图像处理的速度。只要选取合适的阈值进行分割就可以将工件有效分别出来。但是考虑到金属工件表面的反光问题,不可避免地会造成局部过度曝光的现象,所以应采用双阈值的分割方法。公式如下:

(1)

式中:f(x,y)表示图像在(x,y)像素处的灰度值,g(x,y)表示阈值化后的灰度值,max为最大灰度值这里取255,0为最小灰度值,low、high分别表示低分割阈值与高分割阈值。

通过OpenCV固定阈值分割函数threshold,对图像进行两次固定阈值分割并通过bitwise_and函数进行与操作,即对图像每个像素值进行二进制与操作,1&1=1,1&0=0,0&0=0,以完成双阈值分割的操作得到所需图像。效果如图6所示。

2.3 图像边缘检测

图像边缘就是图像中灰度值明显变化的像素区域,边缘检测就是将这些突变的像素连接起来形成连续的边缘。经典的边缘检测算法有Canny算子、Sobel算子、Laplacian算子和Roberts算子等[12]。Sobel算子只能提取一些明显的轮廓,Laplacian算子会造成图像模糊降低匹配精度,Roberts对噪声敏感不适用于嘈杂的工业场景。Canny算子的效果要优于上述几种算子所以是目前应用最广的边缘检测算子。这一算子基于Canny提出的边缘检测要求,即边缘检测应该符合3个条件:首先输出的信噪比最大化也就是错捡漏捡的概率要低;其次提取出的边缘要靠近真正的边缘;最后边缘检测算法应该对每个边缘返回唯一的一个边缘,避免多重响应。

Canny算子具有运算快和算法简单的优点,其步骤可以总结为4步:

(1)高斯平滑图像。

(2)计算图像梯度幅度和方向,梯度公式如式(2)所示,方向公式如式(3)所示,其中fs(x,y)为高斯平滑后的图像。

(2)

(3)

(3)对梯度图像进行非极大值抑制,假设4个基本方向d1~d4,前两者表示水平和竖直方向,后两者表示+45°和-45°方向。寻找最接近α(x,y)的方向dk,若∇fs(x,y)的值小于dk方向上的一或两个邻点值则抑制否则保留这个值,对所有(x,y)重复这一过程,就可得到非极大抑制图像。

(4)对非极大抑制图像进行双阈值处理和连通性来检测与连接边缘,以减少孤立或假的边缘点。Canny算子检测的边缘较齐全,对于细微的边缘也有较好的检测效果且检测速度快,方法成熟。但是检测出来的边缘宽度不一,还会出现微小、断续的边缘。所以还需对Canny检测出来的边缘进行连接与细。检测完成后结合OpenCV中的findContours函数查找Canny返回的边缘并结合drawContours绘制固定边缘使工件边缘更加突出,以得到易于进行图像匹配的工件轮廓。

3 图像匹配

本文用到的图像匹配方法为图像特征匹配,图像特征包括全局特征和其他特征,全局特征如工件表面的颜色、纹理等。而其他特征比较特殊可以表征全局也可以表征局部,如形状特征或者空间关系特征前者既可以用工件的整个形状轮廓来表示,也可以用外轮廓来表示。后者则需要利用图像中多个工件的相对位置来表示,也可以用在整幅图像中的绝对位置来表示。图像的不变特征就是在图像经过平移、旋转及缩放等操作后仍然保持不变的特征量,其中图像矩特征是用来描述像素的分布,反映了图像形状的全局特征。

在常用的特征提取算子中,SIFT计算相对复杂、速度慢,不能满足快速识别的要求。ORB算法不具有尺度不变性,在不能保证工业相机垂直采集图像时,准确率较低。所以本次实验利用不变矩特征,通过提取出图像中待识别工件的轮廓,计算出它的Hu不变矩,再将其与模板工件的Hu不变矩做匹配度对比,以进行工件识别。

3.1 Hu不变矩

由于采集到的图像在转换成数字信号后不再是连续信号,所以对于离散的二维图像f(x,y),其(p+q)阶几何矩和中心距定义为:

(4)

(5)

其中,x0=m10/m00,y0=m01/m00,它们分别表示图像水平和垂直方向的重心。用中心距只能保证图像特征的平移不变,为了确保缩放时特征不变,还需对中心距做归一化操作如式(6)所示:

(6)

其中:γ=(p+q+2)/2,p+q=2,3…。但是上述操作只保证了图像特征在平移和缩放时的不变性,所以Hu通过分析利用归一化的二阶中心矩η20、η02、η11和三阶中心距η30、η21、η03、η12推导出了7个平移、旋转和缩放时的不变矩特征量,即Hu不变矩:

(7)

但是这7个特征量变化较大,会造成很大误差,不利于进行数据处理。所以为了减小误差,在实验中将这7个数据进行取对数操作,以压缩数据量。具体公式如式(8)所示。

φi=sign(φi)log|φi|

(8)

3.2 工件匹配

工件匹配的原理是将工件的模板图像与工业相机采集图像中各个工件图像进行对比,并建立相应的度量公式与检索阈值,不超过阈值则认为是相同工件,以达到识别的目的。在实验中只需要工件的外轮廓就可以进行匹配,这样可以增加计算速度,减少计算量。方法为利用Canny算子提取采集到图像中所有的轮廓,如图7a所示,采用findContours函数将其检索类型设置为RETR_EXTERNAL就可以只检测最外层轮廓,如图7b所示。

匹配过程,首先要建立模板A,提取其外轮廓,并计算出模板外轮廓的特征值,本文需要计算特征值是取对数操作后的Hu矩。对于待识别图像,首先提取图像中所有工件外层轮廓,分别计算这些轮廓的Hu矩,通过计算其与模板特征值的匹配度来确定需要识别的工件。具体的匹配度公式如式(9)所示:

(9)

3.3 工件定位

工件识别完成后为了进行后续的分拣等操作还需对工件中心进行定位,找出其在图像中的确切位置。定位方法采用最小外接矩形法:首先获取到目标的初始位置,运用重心原理计算每一列的重心点并拟合作为水平主轴,将其上下平移得到目标工件的上下边界,计算每一行的重心点并拟合作为垂直主轴,左右平移得到目标工件的左右边界,这样就得到一个外接矩形;然后以这两条轴的交点作为旋转中心点,设定旋转角度逆时针旋转外接矩形,通过对比外接矩形的面积就可以找到工件的最小外接矩形。外接局矩形沿水平主轴旋转过的角度θ就是水平轴与延逆时针方向接触的矩形第一条边的夹角,以确定工件位姿还需确定其是长边还是短边。为了方便机器人抓取一般选用长边作为基准边,所以如果是长边则取角度θ如图8a所示,否则为γ=90°+θ,如图8b所示。获取最小外接矩形后就可以利用矩形的4个顶点R0、R1、R2、R3,进而求得工件的质心坐标C(x,y)。如式(10)所示,式中Ri(x)表示第i个顶点x轴的值,Ri(y)表示第i个顶点y轴的值。

(10)

4 试验及分析

本文使用OpenCV3.4.6视觉库结合C++语言,在VS2017集成开发环境下进行开发和试验验证。试验对象选择常见的圆矩形法兰轴承与圆形法兰底座工件,并设置模板图像,圆矩形法兰轴承模板如图9a所示,圆形法兰底座模板如图9b所示。

采集待识别图像时,先采集单个圆矩形法兰轴承与圆形法兰底座的图像进行算法验证,设置匹配度阈值为0.08,即返回的匹配度在0.08以内时就认为是同一工件。单个工件识别如图10所示。识别到的工件采取外轮廓包围,并用十字标出中心点以突出工件。

为了验证算法的有效性,还需采集两者共存的图像进行探究。通过提取它们的外轮廓与法兰轴承模板和法兰底座模板做图像匹配,图11为采集的两幅待识别工件图像,为了便于区分将工件排序,序号如图所示。

以上两幅图像用于展示本次识别定位试验的效果,图11a中有一个底座两个轴承,图11b中有两个底座和两个轴承。利用这两张图中分别进行轴承识别与底座识别。并对识别到的工件进行定位,根据本文方法计算出轴承的位姿角度和确切的质心坐标,而对于圆形底座只需要求出质心坐标即可。

表1表示图11a的识别与定位结果,识别示意图如图12所示,图12a为底座识别图,图12b为轴承识别图。表2表示图11b的试验结果,识别示意图如图13所示。

表1 图11a识别结果

表2 图11b识别结果

本次试验共采集了100幅图像进行匹配试验,其中底座工件的匹配度范围在0.002 01~0.003 79,轴承工件的匹配度范围在0.001 27~0.028 72,对底座和轴承都可以准确进行识别,无论物体的旋转角度是多少识别率都在99%以上,识别速度平均在110 ms左右,可以满足实时识别的需求。

试验证明本文算法可以准确识别图像中需要识别的工件,同时确定工件的质心坐标与旋转角度,这些信息可以使机器人调整末端执行器的位姿,高效地进行选择抓取工件的操作。对比轴承和底座的试验匹配度数据,可以发现轴承由于表面反光较强,受光照的影响很大,这就造成了匹配度波动较大,而底座反光能力弱,所以匹配相对稳定。

5 结语

本文运用并联机器人分拣平台,通过分析机器视觉技术的理论和方法,提出了一种基于Hu矩和外接矩形的工件识别和定位的方法。首先对图像进行预处理,利用固定双阈值对图像进行分割,再获取图像的外轮廓并利用OpenCV函数重塑边缘,计算Hu矩,并与模板Hu矩进行匹配达到工件识别的目的,再利用寻找外接矩形的办法对工件进行定位并确定位姿。由于光照会影响图像边缘轮廓造成轴承工件匹配度波动较大,在正式工业场景应加以注意。试验表明本文的算法识别率高,可以进行工件识别与定位,具有很高的实用和参考价值。

猜你喜欢
轮廓算子灰度
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
采用改进导重法的拓扑结构灰度单元过滤技术
拟微分算子在Hp(ω)上的有界性
OPENCV轮廓识别研究与实践
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
基于实时轮廓误差估算的数控系统轮廓控制
一类Markov模算子半群与相应的算子值Dirichlet型刻画
高速公路主动发光轮廓标应用方案设计探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算