面向视觉伺服的工业机器人轮廓曲线角点识别
Corner recognition of industrial robot contour curve for visual servoing
通讯作者:
收稿日期: 2020-07-9
Received: 2020-07-9
作者简介 About authors
冯毅雄(1975—),男,教授,从事现代机械设计理论与方法研究.orcid.org/0000-0001-7397-2482.E-mail:
为了解决工业机器人视觉伺服中轮廓曲线角点识别效率低进而影响实时定位准确性的问题,提出面向视觉伺服的工业机器人轮廓曲线角点识别算法. 建立基于Freeman链码的机械爪轮廓曲线编码模型,利用差别码对机械爪轮廓曲线的角度变化特征进行统一编码建模. 通过基于差别码和卷积系数的卷积运算,对差别码进行局部非线性加权,计算机械爪轮廓曲线上各点的曲度精确量化辨识机械爪角点. 基于候选角点阈值、点的最远领域间隔和局部范围最多点数进行获选角点的初步选取. 采用平面轮廓曲线毛刺过滤筛选误识角点,实现机械爪角点的精确识别,为视觉伺服中实时定位提供可靠的位置信息. 通过与已有平面轮廓曲线角点识别算法对比,验证本研究所提方法的准确性和高效性,提取角点过程具有较强的鲁棒性.
关键词:
A contour curve corner recognition algorithm was presented to solve the problem of low efficiency of corner recognition of contour curve in visual servoing of industrial robots, which affects the accuracy of real-time positioning. A coding model of gripper contour curve based on Freeman chain code is established, and the differential code is used to unify the coding model of the characteristics of contour curve angle change of gripper. The differential codes are weighted locally and the curvature values of points on the gripper contour curve are calculated to accurately quantify the identification of the corners through convolution operation based on differential codes and convolution coefficients. The preliminary selection of the selected corner points is based on the candidate corner point threshold, the distance between the farthest point of the point and the maximum point value in the local range. A burr filtering for planar contour curve is used to screen mistaken points, moreover an accurate recognition of gripper corner point is realized, which provides reliable location information for real-time positioning in visual servo system. The accuracy and efficiency of the proposed method are verified by comparing with the existing corner recognition algorithms of planar contour curves, and the corner extraction process of the proposed method has strong robustness.
Keywords:
本文引用格式
冯毅雄, 李康杰, 高一聪, 郑浩.
FENG Yi-xiong, LI Kang-jie, GAO Yi-cong, ZHENG Hao.
工业机器人的视觉反馈控制称为视觉伺服,其系统状态由图像信息和系统参数构造,利用视觉反馈可以提高机器人在非结构化环境中的灵活性和智能性[1]. 在摄像机“眼到手”的布置方式[2]中,机器人执行器的实时准确定位直接影响视觉伺服的精度. 角点是摄像机获取图像的重要特征[3-7],通过轮廓分解、匹配,可以为执行器的实时定位提供可靠的位置信息. 作为执行器之一的机械爪,由于其表面没有充足纹理信息且存在大量同质区域,难以直接有效提取图像点特征. 针对此类问题,近年来视觉伺服的一些方法主要侧重于对轮廓曲线的获取[8-9]. 在获得机械爪轮廓曲线后,通过平面轮廓曲线的角点识别算法[10-13]获得机械爪的角点.
国内外学者对平面轮廓曲线的角点识别技术进行研究. Rosenfeld等[14]提出基于角度的角点识别算法RJ_algo,在所分析点前、后各取两点构成三角形,将中间点对应角的余弦作为判断指标,余弦大于给定阈值的作为角点. Rosenfeld等[15]为了减少角点误判,将目标点附近余弦均值作为角点判断指标. Chetverikov[16]提出利用锐度判别角点的算法DC_algo,定义选角点的锐度作为衡量是否为角点的指标,并选取局部锐度最大的点作为最终所识别的角点. Freeman等[17]提出综合考虑增量角度和识别点前、后若干点的影响的算法FD_algo,通过计算增量曲率构建k-strength作为判断角点的指标,当k-strength大于给定阈值,且与上一个角点间距离满足特定关系时,判别为角点. Beus等[18]对FD_algo算法存在过多冗余角点的问题进行改进,对某点k-strength取邻域内平均,且对前、后点的选取规定最大值. Bandera等[19]提出确定增量坐标计算增量角度的识别算法ACF_algo,通过计算欧式距离大于路径长减去常数项的方法,确定最优增量坐标的点数,计算增量角度,将局部最大且大于给定阈值的点选为角点. Sarfraz等[20]提出基于距离的角点识别算法SAM_algo,利用所分析点与其前、后序数差相同的两点构建三角形,求出点到线段最大距离,将大于阈值的点选为候选角点,取局部邻域内最大点作为所识别的角点. Haron等[21]提出计算增量坐标距离差的角点识别方法HS_algo,通过计算行差别和与列差别和构建Total值,将大于给定阈值的点选为角点. 郭晓冬[22]提出基于增量角度的角点识别算法Guo_algo,通过计算链码的差分选出候选角点,对于候选角点通过求其增量角度判断其是否为角点.
综上所述,在传统轮廓曲线角点识别中,与角度、增量角度、距离相关的算法须进行较多的条件判断,计算角度和距离信息涉及大量浮点运算,检测效率较低. 计算增量坐标识别角点的方法对噪声抵抗能力不强,角点识别鲁棒性较差. 在对实时伺服运算速度和精度要求均较高的场合,上述方法效果欠佳. 本研究提出面向视觉伺服的工业机器人轮廓曲线角点识别算法,通过对机械爪链码直接进行运算,减少循环判断,满足机械爪视觉伺服中实时性的要求. 通过局部查找与毛刺过滤运算,增强角点识别的鲁棒性.
1. 机械爪轮廓曲线链码建模
图 1
图 2
如图2所示为链码的方向符号. 图中,灰色方块为放大后像素,像素链码值ai为此像素与下一个相邻像素的方向符,沿箭头搜寻方向,可知当前ai链码值为7. 设像素总个数为n,机械爪轮廓8方向曲线链码表达式为
2. 机械爪轮廓曲线角点识别算法
在机械爪实时视觉伺服系统中,其轮廓曲线角点识别须兼顾速度和精度要求. 本研究所提的面向视觉伺服的机械爪轮廓曲线角点识别算法步骤如下. 1)根据所获机械爪轮廓曲线的链码模型,求取差别码,提取反应角度变化信息;2)基于差别码定义曲度,作为判别角点的主要依据,依据曲度,通过局部取中值选取机械爪候选角点;3)过滤掉虚假角点,得到最终机械爪的角点集合.
2.1. 机械爪轮廓曲线差别码求取
在8方向链码建模基础上,根据方向差链码[25]的思想,对机械爪当前链码相对于前一链码前进方向的改变角度进行编码,定义差别码:
式中:i为所须计算差别码的像素点下标.
若轮廓曲线为一封闭循环,有
图 3
差别码对链码曲线的压缩效果如图4所示. 图中,c为像素序号,v为链码表示时的具体值,cv为差别码表示时的具体值. 可以看出,差别码压缩了机械爪轮廓曲线的方向信息,仅保留变化信息.
图 4
2.2. 候选角点选取
角点为机械爪轮廓曲线上与相邻点形成对比的局部曲率变化的极大值点,在判断一个点是否为角点时,须考虑其相对于周围点的变化情况. 对于较远的点,相对考虑较弱,权值较小. 差别码的大小表明其运动方向的改变程度,对机械爪的差别码进行非线性加权得到曲度y,以量化角点的判断指标. 曲度y绝对值越大,是角点的可能性越高. 曲度计算表达式如下:
式中:n*为所求曲度点的下标;f为以点n*为中心,前后m个点的差别码值组成的集合;h为卷积系数,具体值可以依据不同的函数构造.
如图5所示为机械爪直线段的链码表示. 局部放大图为直线段的像素差别码,背景为灰色的像素点不应判断为角点. 在卷积公式中取m=9,卷积系数依据逻辑函数取h = { 0.12,0.27,0.73,0.88,1.00,0.88,0.73,0.27,0.12}.以灰色像素点为中心,以其差别码构建9点集合f={0,0,0,−2,2,0,0,−2,2}. 通过式(5)计算得出灰色像素点曲度y=−0.06. 曲度绝对值明显小于差别码2. 此时用大于0.06的阈值,则不会判断此点为候选角点.
图 5
在明显有90°的机械爪轮廓曲线拐角处,如图6所示,利用相同的卷积系数h,通过非线性加权方法计算灰色像素点曲度y=−2. 相邻两点曲度为−1.76,且越远的位置曲度越小. 由上述例子可知,曲度正确量化了角点的判别指标,通过选取合适的阈值,可以选出候选角点.
图 6
在计算链码曲度后,依据各点曲度选取机械爪候选角点. 选取算法须选取3个超参数:候选角点的阈值T、点的最远邻域间隔S、局部范围的最多点数Num. 算法流程如图7所示. 表中,In_C为点集,B为基准点, P为点集中的某一点.
图 7
2.3. 虚假角点过滤
虽然在候选角点选取中局部取中值会使算法具有一定的抗干扰能力,但有时由于噪声的影响,像素局部方向变化剧烈,会出现如图8所示的毛刺现象,此处灰色像素被误纳入候选角点. 针对机械爪轮廓曲线存在毛刺导致角点误识的问题,通过毛刺过滤选择性去除虚假角点. 具体步骤如下:1)设定判别参数Episilon;2)对候选角点中每一点j,找出前后相邻2个候选角点,构成三点集合{Pi,Pj,Pk};3)分别求出Pj到另外两点构成的直线间距离S1,Pk到另外两点构成的直线间距离S2;4)若满足条件S1>Episilon或S2>Episilon,则将点j确定为角点,否则为毛刺点,对其进行剔除.
图 8
3. 实验及结果分析
3.1. 实验设计
由候选角点选取算法可知,卷积系数的取值对于后续判断至关重要,因此须分析不同卷积系数的影响,通过实验设计选择合适的卷积系数. 定义本研究算法所能正确判别角点的最小正方形为识别包围盒. 由实际意义可知最小识别包围盒边长为3.
图 9
在本研究所提算法具体实施中,利用识别包围盒概念,讨论不同卷积系数对识别效果的影响. 所构造的卷积系数长度均取9. 卷积系数1依据三角函数创建,设权重与距离呈线性关系. 卷积系数2依据非线性逻辑函数构建,设距离与权重为非线性关系. 详细说明如表1所示.
表 1 卷积系数设计
Tab.1
名称 | 权值分布 | 长度 | 赋值 |
三角窗函数 | 线性 | 9 | h1={0.125,0.250,0.500,0.750, 10.750,0.500,0.250,0.125} |
逻辑函数 | 非线性 | 9 | h2={0.12,0.27,0.73,0.88,10.88, 0.73,0.27,0.12} |
图 10
图 11
图 12
图 12 卷积系数1识别包围盒计算
Fig.12 Calculation of recognition bounding box using convolution coefficient one
图 13
图 13 卷积系数2识别包围盒计算
Fig.13 Calculation of recognition bounding box using convolution coefficient two
以实际机械爪轮廓曲线为例,应用本研究提出方法,选取卷积系数2,获得角点连接线段轮廓,如图14所示. 识别时间为0.0126 s. 可以看出,本研究所提方法的机械爪外轮廓拟合程度较高,识别速度较快,可以为后续局部轮廓分解与目标匹配提供支撑,更好地实现视觉伺服中的实时定位.
图 14
3.2. 算法对比
表 2 算法运行时间对比
Tab.2
s | ||||
算法 | 运行时间 | |||
树叶 | 飞机 | 桃心 | 音符 | |
RJ-algo | 0.0674 | 0.1053 | 0.0317 | 0.0553 |
Guo_algo | 0.1070 | 0.0076 | 0.0075 | 0.0125 |
FD_algo | 0.0119 | 0.0134 | 0.0119 | 0.0044 |
DC_algo | 21.2706 | 39.3793 | 9.5421 | 22.4091 |
SAM_algo | 19.4806 | 24.1962 | 7.9894 | 13.7385 |
HS_algo | 0.0073 | 0.0068 | 0.0019 | 0.0055 |
ACF_algo | 46.5085 | 220.4689 | 18.1019 | 2371.0000 |
本研究方法 | 0.0071 | 0.0079 | 0.0096 | 0.0141 |
图 15
式中:P为查准率,R为查全率,TP为真角点识别为角点的个数,FN为真角点不被识别为角点的个数,FP为假角点识别为角点的个数. 其中判断真假角点采用人工标点的方法.
由结果可知,由于本研究方法通过对机械爪链码直接进行运算,减少了循环判断,且无须计算角度和距离信息,减小了浮点运算次数,在效率较高的几种算法中,本研究所提算法漏识、误识角点较少,加权识别率较高. 所提方法运行时间相对稳定,受不同图形轮廓的影响较小. 通过局部查找与毛刺过滤运算,算法识别结果具有一定的鲁棒性.
4. 结 语
提出面向视觉伺服的工业机器人轮廓曲线角点识别算法. 建立基于Freeman链码的机械爪轮廓曲线编码模型,利用差别码对机械爪轮廓曲线的角度变化特征进行统一编码建模;通过基于差别码和卷积系数的卷积运算,对差别码进行局部非线性加权,计算机械爪轮廓曲线上各点的曲度精确量化辨识角点;利用轮廓曲线毛刺过滤算法筛选误识点. 所提算法的突出特点是实现了工业机器人视觉伺服中角点的快速识别,另外识别效果具有一定鲁棒性,可以为机械爪实时定位提供可靠的位置信息. 通过与传统平面轮廓角点识别算法的对比验证了所提算法的优越性. 在工业机器人视觉伺服中,本研究所提方法可以用于对机械爪角点识别运算速度和精度要求均较高的场合. 本方法的不足之处,在于须事先给定角点选择的超参数,当轮廓曲线规模大小改变时须重新设置超参数,角点选择过程没有完全摆脱人为干预. 使算法根据轮廓曲线特征自动确定超参数值是下一步须研究的内容.
参考文献
Robust on-line model predictive control for a constrained image based visual servoing
[J].
Model predictive control for constrained image-based visual servoing in uncalibrated environments
[J].
Statistical evaluation of corner detectors: does the statistical test have an effect
[J].
Geometric mesh corner detection using triangle principle
[J].
基于单位视球的鱼眼相机标定方法
[J].
Calibration method of fisheye camera based on unit eyeball
[J].
Robust harris corner matching based on the quasi-homography transform and self-adaptive window for wide-baseline stereo images
[J].
鲁棒的掌纹图像特征提取方法
[J].
Robust palmprint image feature extraction method
[J].
Alignment of a flexible sheet object with position-based and image-based visual servoing
[J].
Precise robotic assembly for large-scale objects based on automatic guidance and alignment
[J].DOI:10.1109/TIM.2016.2526738 [本文引用: 1]
Corner detection and classification using anisotropic directional derivative representations
[J].DOI:10.1109/TIP.2013.2259834 [本文引用: 1]
An analysis and implementation of the harris corner detector
[J].
Adaptive algorithm for corner detecting based on the degree of sharpness of the contour
[J].
角点检测技术综述
[J].DOI:10.3969/j.issn.1001-3695.2006.10.006 [本文引用: 1]
Survey on corner detection
[J].DOI:10.3969/j.issn.1001-3695.2006.10.006 [本文引用: 1]
Angle detection on digital curves
[J].
An improved method of angle detection on digital curves
[J].
A simple and efficient algorithm for detection of high curvature points in planar curves
[J].
A corner-finding algorithm for chain-coded curves
[J].DOI:10.1109/TC.1977.1674825 [本文引用: 1]
An improved corner detection algorithm based on chain-coded plane curves
[J].DOI:10.1016/0031-3203(87)90004-5 [本文引用: 1]
Corner detection by means of adaptively estimated curvature function
[J].DOI:10.1049/el:20000177 [本文引用: 1]
A new corner detection algorithm for chain code representation
[J].DOI:10.1080/00207160410001684271 [本文引用: 1]
A review of classic edge detectors
[J].
Efficient chain code compression with interpolative coding
[J].DOI:10.1016/j.ins.2018.01.045 [本文引用: 1]
A universal chain code compression method
[J].
/
〈 |
|
〉 |
