改进ORB算法在机器人分拣系统中的应用研究
2022-08-19王佳维刘凌云姚天胜张瑞杰
王佳维,刘凌云,姚天胜,张瑞杰
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)
机器视觉的兴起,推动工业自动化领域向着更智能、更高效的方向发展[1]。工件分拣是机器视觉的重要应用之一,与传统的人工分拣相比,机器视觉分拣技术更快速、更稳定、更能适应不同工作场合的环境条件要求。在实际工业生产中,如何在复杂多变的工业环境下对工件快速识别是机器视觉分拣技术的关键所在[2-3],图像的特征提取和特征匹配是解决此问题的有效途径之一,许多学者对其进行了深入研究。
刘振宇等[4]使用几何不变矩特征对工件进行粗略识别,然后利用Hough-链码法精确匹配特征,减少了运算时间,提高了识别效率。彭刚等[5]提出了SURF提取与FREAK描述相结合的识别方法,SURF提取特征点具有良好的稳定性,FREAK对特征进行二进制描述提升了运行速度,缩短了匹配时间。鲁晟燚等[6]提出了一种Hu-SIFT的特征匹配方法,首先采用Hu不变矩对图像的全局的特征进行粗匹配,而后利用SIFT进行局部匹配识别目标工件,拥有较好的识别效果和识别速度。付贵等[7]根据不同轴承座的特征进行了ROI划分,并进行了比对分析,实现了轴承座的识别分类,识别准确率较高,但普适性不强。伍锡如等[8]提出一种基于深度学习的快速识别定位算法,该算法能够快速准确地识别与定位复杂目标物体,具有良好的稳定性。
ORB算法是Ethan Ruble等[9]在2011年提出的一种快速特征点提取和描述算法,对工业上的实时分拣有较大的参考价值。但面对复杂多变的工业环境以及工件的分拣一般会存在旋转和尺度上的变化,由于不具备尺度不变性和二进制串描述子的不稳定性导致ORB算法无法在工业分拣上有良好的应用。针对表面纹理特征较为复杂工件的快速稳定分拣需求,现提出了一种改进ORB工件识别算法。该算法首先构造了高斯尺度空间,采用ORB算法完成对特征点的快速提取,然后采用SURF算法完成对特征点的描述,SURF描述子在尺度和旋转变化下能够保持不变,并且表现出良好的鲁棒性,能有效地提升匹配精度。因而本研究采用改进ORB算法进行工件分拣,旨在实现对目标工件实时、准确的识别。
1 分拣系统组成
搭建了分拣测试环境(见图1),该实验环境由工业机器人、工业相机、上位机、气动抓手等组成。其中,采用SCARA机器人配合气动抓手抓取工件,采用维视公司的EM200M工业相机获取工件图像,相机置于工作区域的正上方。
图1 机器人分拣系统
分拣系统的工作流程如图2所示。首先,建立工业相机与上位机之间的通信,完成相机标定和手眼标定,确定工件像素坐标与机器人坐标系下的转换关系。其次,控制上位机触发相机开始工作,并将其捕捉到的工作区域图像发送给上位机。上位机对图像完成预处理后采用改进ORB算法与工件模板图像进行特征匹配,识别目标工件,根据相互之间的坐标变换,计算出工件在机器人坐标系下的坐标。最后,上位机通过以太网通信将抓取点的位置信息发送给机器人的控制器,引导SCARA机器人分拣目标工件。
图2 系统分拣流程
2 分拣系统关键技术
2.1 系统标定
相机标定是机器人分拣工作进行的前提,其目的是根据标定得到的内外参数完成世界坐标到像素坐标的转换,并且检测畸变参数对相机进行矫正。张正友棋盘标定法[10]是一种借助单平面棋盘格对相机标定的方法,避免了传统标定法对高精度三维标定物的严格要求,而且与自标定法相比,其精度更高,实现步骤更简单,只用一个棋盘格即可完成相机标定工作。
本系统首先选择OpenCV中的张正友标定算法对相机进行标定,获取相机的内外参数,消除畸变。然后根据Eye-to-Hand手眼系统配置[11]完成手眼标定,从而得到相机坐标系到机器人坐标系的变换关系。
2.2 工件识别
在实际工业生产条件下,不同的光照强度、不同的拍摄角度和不同的工件摆放位置等都会对工件识别产生或轻或重的影响。工件的识别算法需要具有较强的鲁棒性,对于图像的噪声、旋转、尺度变化等有较强的抑制效果。为提升工业生产的效率,工件的识别和定位应满足实时性的要求。基于特征点的局部特征匹配方法具备准确性和高效性,能够达成大部分工业场景下的条件要求。
因此,本文提出一种改进ORB算法应用到分拣系统之中,完成对工件实时、高效地识别和分拣。其工作流程如图3所示。
图3 识别算法流程图
2.2.1 ORB提取特征点
FAST算法是Edward Roste等在2010年提出的一种角点检测方法,与传统特征提取算法相比,该算法最显著的优点是其运行速度较快。FAST算法通过判断灰度值完成检测,若其周围有足够多的像素与当前像素点差别超过了所设阈值,则该点被判定为特征点。
如图4所示,以像素P为圆心半径为3的圆周上,分布有16个像素点,记为Pi(i=1,2,3...,16)。设定阈值为εd,I(x)为圆周上任意点的灰度值,I(p)为圆心处灰度值。若圆周上存在n个连续的像素点满足:
图4 特征点检测
则认定P点为特征点,本文中n取12。
ORB算法中提取特征点的操作是采用oFAST(FAST Keypoint Orientation)算法完成的,oFAST在FAST的基础上,利用灰度质心法[12]给特征点添加了方向。
首先,定义图像(p+q)阶矩为:
式中,I(xy)为像素坐标(x,y)处的灰度值,因此图像的质心为:
特征点的方向为:
2.2.2 SURF特征点描述
提取到具有方向的FAST特征点之后,还要对其进行描述。其描述步骤如下:首先,选取特征区域。在特征点四周分割出一个大小为20 s×20 s的矩形(s为当前尺度),将其旋转至与特征点方向一致。其次,统计Harr小波特征。把该矩形继续分割为16个大小相同的小矩形,对于每个小矩形,统计其水平和垂直方向的Harr小波响应d x和d y,进而计算出两个方向上的小波响应之和及小波响应绝对值之和。最后,构建特征向量。经过提取小波特征后,各个小矩形的特征都可以用4维特征向量表示。16个小矩形分布在特征点四周,所以对于每个特征点都可以得到一个长度为64维的特征向量。经过以上操作对特征点完成描述之后,ORB算法提取到的特征点便有了旋转尺度不变性,有利于之后的特征匹配。
2.2.3 特征匹配
特征匹配是工件识别中重要步骤,匹配结果的好坏直接影响工件的正确识别与否。为提升算法的识别效率,选用距离作为度量标准,然后采用FLANN算法完成特征点匹配工作。FLANN(fast library for approximate nearest neighbors)是快速最近邻搜索包的简称,它包含了一系列的最近邻搜索算法,对于大数据集以及高维特征的处理效果要优于暴力匹配,利用FLANN算法能够对特征点实时匹配。
首先选定模板图中的一个特征点,采用FLANN算法从采集图像中得到与该特征点的欧氏距离最近和次近的2个点,若最近欧氏距离与次近欧氏距离的比值小于阈值T,则认为这对特征点匹配成功,反之则匹配失败。阈值一般在0.4~0.8,阈值大小与匹配点数成正比,与匹配正确率成反比。初次匹配操作完成之后,互相匹配的特征点仍有可能是错误匹配的,还需要进一步筛选,降低错误匹配率。本系统选择RANSAC(random sample consensus)算法去除错误匹配,提高工件识别的准确率。
2.3 工件定位
对目标工件完成识别之后,便要对目标工件进行定位。本系统采用的三轴SCARA机器人,配合气动抓手抓取工件。由于本系统抓取对象为圆形,无需计算旋转角度,只需计算出工件在机器人坐标系下的位置即可完成对工件的分拣工作。
对匹配正确的目标工件,计算其图像的一阶矩即可得到工件中心的像素坐标位置,通过相机标定得到的内参矩阵和外参矩阵可将像素坐标变换为世界坐标,结合手眼标定的结果可完成像素坐标系下的坐标到机器人坐标系下的坐标的转换,进而引导机器人进行抓取。
3 结果与分析
本试验在Windows10系统下,利用Python3.6开发平台,导入PYQT5模块完成了系统的控制界面程序设计,采用OpenCV算法库对本文提出的算法进行了2组试验。试验1通过比较ORB算法与本文提出算法在尺度不变性上的表现,验证改进ORB算法的尺度不变性;试验2通过比较ORB算法提取特征点结合不同算法描述特征点在不同环境下匹配效果,验证改进ORB算法的鲁棒性。
3.1 尺度不变性性能比较
为验证改进ORB算法的尺度不变性,将ORB算法与改进ORB算法进行对比,比较两者对不同尺度目标图像的性能表现,其匹配效果如图5所示。随机统计了6组实验数据,在工件图像存在尺度变换时验证了两种算法特征点匹配的准确率,如表1所示。
图5 算法匹配结果对比
表1 尺度变化时匹配准确率对比 %
由图5及表1可知,由于基本不具备尺度不变性,ORB算法在工件图像存在尺度变换时匹配效果较差,其匹配准确率为59.52%。本文提出的改进ORB算法具备尺度不变性,因此能够适应工件图像的尺度变换,匹配效果较好,平均匹配准确率为90.12%。
3.2 不同环境下算法对比试验
为验证改进ORB算法其特征描述子在复杂工业环境下的有效性,采用ORB算法提取特征点,结合ORB,BRISK,FREAK以及本文采用的SURF算法对不同环境下的工件图像进行特征匹配,对比其匹配效果。
从4种算法描述特征点在不同环境下识别工件的结果可知,当工件图像存在光照变化时,ORB算法特征点匹配对数一般,匹配准确率较低;ORB-BRISK算法匹配准确率较高,但是匹配对数较少;ORB-FREAK算法匹配对数较多,但匹配准确率较差;本文提出的改进ORB算法匹配对数较多且准确率较高(见图6)。从图7对比结果可知,当工件图像存在噪声时,ORB及ORB-BRISK算法匹配准确率较高,但匹配对数较少;ORB-FREAK算法匹配对数较多但匹配准确率较低;改进ORB算法匹配对数及匹配准确率都较高。
图6 光照变化下不同特征描述算法匹配结果
图7 噪声下不同特征描述算法匹配结果
综上对比可知,在复杂工业环境下,ORB算法因其二进制描述子包含的特征信息有限,其算法的鲁棒性较低;本文提出的改进ORB算法采用SURF算法对特征点描述,较好地弥补了ORB算法鲁棒性不足的缺陷,在复杂的工件环境下对工件的识别效果较好。
4 结语
针对表面具有复杂纹理特征工件的分拣要求,提出了一种改进ORB算法应用到视觉引导的机器人分拣系统之中。该算法保持了ORB提取特征点的高效性,并且引入SURF算法描述特征点,解决了ORB算法不具有尺度不变性的缺点,同时有效地提高了光照变化及噪声下工件识别的准确率,增强了分拣系统的鲁棒性,能够满足复杂工业环境下的工件分拣要求。