APP下载

基于双目视觉的物体识别定位与抓取

2020-08-03高智伟谭晓东

科学技术与工程 2020年20期
关键词:三维重建标定坐标系

高智伟, 谭晓东, 刘 客

(大连交通大学机械工程学院,大连 116028)

目前在自动化的工件加工、产品分类、零件装配等领域,均已大规模使用工业机器人。而为实现生产的高效率、智能化,基于机器视觉的机器人控制成为目前研究的重点。双目视觉由于具有高效、高精度、 非接触式及能感知深度信息等优点,得以在目标识别与定位中广泛应用[1]。

基于机器视觉的目标抓取一般分为3个步骤:首先对目标进行识别,然后进行目标定位,最后机器人实施抓取。近年来,研究者们提出了许多方法。梁俊杰[2]提出了采用Harris角点检测、尺度不变特征变换[3](scale-invariant feature transform,SIFT)计算角点的幅值和方向并用DAISY描述符对特征点进行描述的方法,但SIFT计算速度相对较慢[4]且并没有给出姿态的估计方法以及手眼标定、机器人抓取的相关计算。李胜利[5]采用几何特征对堆叠的工件进行识别与定位,使用基于梯度方向椭圆检测方法实现目标识别,这种方法适用于一种特定形状或纹理单一的物体识别,对特征复杂的物体无法做到很好的识别。王德海等[1]采用快速鲁棒特征(speeded up robust features,SURF)算法进行特征匹配,但并未对错误匹配点进行过滤,导致物体识别的不准确,且识别物体后仅仅通过三维重建计算了物体位置,并没有计算姿态,使得无法得到物体位姿从而实现抓取。高如新等[6]把特征点的平均值作为目标的定位点,但在许多情况下特征点的平均值并不是目标轮廓的中心,这种方法定位误差较大。以上方法均未对姿态的估计提出明确的解决方法。

针对存在的问题,采用SURF[7]特征匹配及双重过滤的方法保证目标识别的精度,并提出一种准确的姿态估计方法,最终通过计算得到目标位姿后对机器人进行手眼标定完成抓取,希望达到识别定位更加准确迅速,抓取精准可靠。

1 目标识别

1.1 关键点匹配

采用SURF算法配合快速近似最近邻搜索库(fast library for approximate nearest neighbors,FLANN)匹配达到更快速的物体识别。SURF算法是基于SIFT算法的一种更高效的替换,它具有尺度不变性,旋转不变性以及对视角变化、光照变化、噪声、仿射变换也具有很强的鲁棒性[8]。SURF算法作为核心关键点检测的一种方法,其步骤如下。

(1)关键点检测:SURF通过局部Hessian再给定的点上定义关键点,SURF检测器使用与近似两个高斯内核差的盒式滤波器进行卷积来计算局部Hessian。从对这些盒式滤波器的响应中,关键点特征在SURF中也定义为该Hessian的行列式超过某个阈值的局部极值。

(2)创建描述符:关于SURF方向,使用一对简单的Haar小波来近似局部梯度,然后通过滑动窗口来聚合这些梯度估计。通过对该方向窗口中的所有梯度进行求和,选择最大方向作为特征的方向。关于尺度方面,以特征为形心区域由网格划分为单元格,网格根据刚刚计算的方向给出的角度相对于特征旋转。再经过Haar小波计算,得到64维特征向量。

(3)描述符集匹配:目前的匹配方法有两种,一种是暴力匹配,另一种称为FLANN。FLANN匹配是一种近似法,它的精度虽然不如暴力匹配,但算法的速度却快得多,而且也可以调节其参数提高准确度或速度。

1.2 匹配点过滤

因为不同错误匹配点对需要用不同方法过滤,所以本文算法采用双重匹配点过滤,算法流程为:得到匹配点,使用匹配点距离过滤错误匹配点,然后采用随机抽样一致RANSAC[9](random sample consensus)算法进一步过滤错误匹配。

初步过滤通过距离筛选匹配点中首先需计算出匹配点对之间的最大距离与最小距离,然后筛选掉距离过大的错误匹配点对,经过反复实验,发现当筛选掉距离大于4倍最小距离的匹配点对时,可以达到匹配过滤的最好效果。

在进一步匹配过滤中使用的RANSAC算法解决了最小二乘法的缺陷。在最小二乘法拟合模型中求取拟合直线运用到了尽可能多的数据点,期望通过“平均”消除偏差,但其中却包括了重大误差点,这些重大误差点就会造成拟合直线的巨大偏差。RANSAC算法可避免这一问题,其步骤如下。

(1)随机抽取一小组内点拟合模型。

(2)用上一步拟合的模型检验其他数据点,若适用于模型,则将其添加到内点。

(3)如果得到的内点数目大于给定阈值则认为拟合的模型是合理的;否则重新选取模型,重复以上步骤。

(4)用扩展后的内点重新拟合模型。若迭代次数大于k算法终止;否则迭代次数加1,并重复以上步骤。

(5)算法终止后,选取内点数最多的模型或者算法失效。

实验采用cv::findHomography函数调用RANSAC算法实现匹配点筛选。在这里RANSAC算法初始数据点为4个,通过这4点计算得到变换矩阵H,即为拟合模型M。迭代次数k是不断更新的。对公式1-p=(1-wn)k两边取对数得

式(1)中:n为初始数据点个数;p为置信度;w为内点比例;m为拟合模型最少初始点。

1.3 图像分割

Grabcut算法是一种用户导向的图像分割算法,它是迭代的Graphcut[10],Grabcut通过局部标记法,用矩形框将前景目标物体包围,矩形框以外的所有像素都被标记为背景;然后对前景和背景颜色空间建立高斯混合模型;最后通过迭代完成能量函数最小化,实现前景目标与背景的分离[11]。

但Grabcut算法需要用户在待分割对象周围定义一个矩形框,使用标志GC_INIT_WITH_RECT,使得矩形框外为确定背景,矩形框内为疑似前景。采用在SURF算法得到匹配目标后,获取4个角点,绘制得到目标区域矩形框,通过这一过程使Grabcut算法在此研究中成为了一种自动图像分割算法。

1.4 目标识别实验结果

实验中通过双目相机采集左右图像,对左图像进行处理,右图像加以辅助,实现目标的定位。不同场景下的目标识别结果如图1所示,后续实验针对图1(a)进行。

图1 目标识别效果图Fig.1 Photograph of target recognition

目标识别后进行图像分割,图2所示为分割后的结果。

由于目标物体是黑色包围白色形式,Grabcut会将某些白色区域处理为背景,增加了目标分割的难度,因为物体内部并不影响形心位置,所以采取轮廓填充的方法解决这一问题,结果如图3所示。

图2 图像分割效果图Fig.2 Photograph of image segmentation

图3 轮廓填充图Fig.3 Photograph of contour fill

2 三维重建

2.1 三维重建算法

在机器视觉中图像到三维世界一共有4个坐标系,分别为像素坐标系、图像坐标系、相机坐标系和世界坐标系[12]。实验通过三维重建目标物体轮廓形心来确定目标物体位置。设空间中某一点P=(xc,yc,zc)在左图的图像坐标为PxL=(xL,yL),像素坐标为PuL=(uL,vL),右图的图像坐标PxR=(xR,yR),像素坐标为PuR=(uR,vR),图像坐标系原点(u0,v0),因为使用的是光心在同一水平线的双目相机,所以yL=yR=y,在相机标定中将相机坐标系视为世界坐标系,则由相机成像原理及像素坐标系与图像坐标系的转换关系可得到:

式(1)中:f为焦距;B为两相机的基线距;d=uL-uR为视差;fx为f在像素坐标系u轴上的尺度因子。

实验三维重建算法流程如下。

(1)图像二值化。

(2)目标物体轮廓提取及填充使用函数cv::findContours及cv::drawContours。

(3)计算左图轮廓形心像素坐标,如图3所示,认为白色为1,黑色为0,根据式(3)求出轮廓形心点坐标:

式(4)中:(x0,y0)为形心坐标;f(x,y)是在点(x,y)的像素值。通过遍历左图中的所有像素点,最终求解形心坐标。

(4)在左图像中以目标形心为形心截取一个40×40的矩形模板图像块,使用归一化的互相关模板匹配方法得到右图对应形心像素坐标。

(5)将左右图形心像素坐标代入式(2)计算得到形心空间坐标。

2.2 三维重建实验结果

标定得到左相机的内参矩阵:

可以得到fx=719.883 9,u0=325.761 2,v0=246.649 0,B=40.4。

由图3得到目标左图中的形心像素坐标为OL=(391,224),模板匹配得到右图像素坐标OR=(311,230)。代入式(2)得到O点三维坐标为O=(32.946,-11.438,363.541)。

2.3 三维重建误差分析

在计算误差时,由于O点实际坐标难以准确测量,所以实验采取间接方法测量误差。因为标定板上每格边长是精准确定的,所以通过测量每格边长再与实际边长比较得到误差率。标定板如图4所示。

图4 标定板角点图Fig.4 Photograph of calibration plate corner

求得图4(a)角点A~I点的三维坐标,计算点之间距离,结果如表1所示。

表1 三维重建误差Table 1 Error of three-dimensional reconstruction

3 姿态估计

3.1 姿态估计算法

想要实现物体抓取还需得到目标姿态。姿态估计的算法步骤如下。

(1)在模板图中找到两个特征点A1、B1,在左图中找到对应匹配点AL、BL。因为所识别目标物体为圆柱体,为了使线段A1B1更逼近直线,找横坐标最为接近的A1、B1两点。

(2)计算直线A1B1和直线ALBL斜率k1、kL,求得A1B1与目标物体母线的夹角θ1。

(3)左图中ALBL与母线夹角为θL,可以近似认为θL=θ1。根据公式:

求出左图中母线斜率k。

(4)在左图目标物体区域取两点dL=(xdL,ydL)和eL=(xeL,yeL),使得dLeL所连直线斜率等于左图母线斜率k。使用模板匹配找到右图对应两点dR=(xdR,ydR)和eR=(xeR,yeR),然后通过三维重建计算出d、e三维坐标d=(xd,yd,zd)、e=(xe,ye,ze)

(5)根据公式:

分别求得物体母线与世界坐标系X轴夹角θx,Y轴夹角θy,Z轴夹角θz。空间向量即为n=(cosθx,cosθy,cosθz)。

(6)建立工件坐标系,将θx、θy、θz代入式(8)得到姿态矩阵R。

至此得到了目标物体的位置及姿态,将其组合为4×4的位姿齐次矩阵T。

3.2 姿态估计实验结果

找到两特征点在模板图坐标分别为A1=(100.367,190.356),B1=(100.988,225.269),左图匹配点坐标分别为AL=(376.837,271.843),BL=(371.361,309.486),求得tanθ1=0.018,代入式(7)得到母线斜率k=-6.101。从左图取两点CL=(386,219),DL=(396,158),对应右图坐标CR=(306,225),DR=(316,164),代入式(2)得两点三维坐标C=(30.421,-13.963,363.541),D=(35.471,-44.768,363.541),将两点代入式(8)可以得到cosθx=0.167 75,cosθy=-0.986 828,cosθz=0,即θx=-80°41′24″,θy=-9°18′36″,θz=0°。

以形心为原点,母线方向上建立工件坐标系object,如图5所示。

图5 工件坐标系及相机坐标系Fig.5 Photograph of workpiece coordinate system and camera coordinate system

得到位姿矩阵为

3.3 姿态估计误差分析

对于姿态的误差,首先将目标物体竖直放置在水平平面,按姿态的求取方法求取其空间向量,再与垂直放置的物体的标准空间向量n=(0,1,0)作比较,得到误差角,实验场景如图6所示。

图6 实验场景Fig.6 Experimental scene

得到的误差结果如表2所示。由表2可知,误差角在2°以内,证明姿态估计结果准确可靠。

表2 位姿估计误差Table 2 Error of pose estimation

4 目标抓取实验

4.1 手眼标定

手眼标定要求得到相机坐标系到机器人基坐标系的坐标转换关系。实验所采取的手眼关系为eye-in-hand。标定过程中机器人末端需移动两个位置,且标定板与机器人底座保持不变。则可以建立以下坐标系关系等式:

经过计算得到:

4.2 目标抓取

抓取所用机器人选用kukaKR5,图7所示为实验中各坐标系关系图,为实现抓取,需将求得位姿从相机坐标系转化到机器人基坐标系。当拍摄目标时工具坐标系到基坐标系的变换矩阵为

图7 实验坐标系关系图Fig.7 Experimental coordinate system diagram

则相机坐标系到基坐标系变换关系为

求得其一组合理的逆解为

q=[0.004 8,0.637 9,-0.199 2,-0.217 3,0.849 7,1.413]。

将其用MATLAB仿真得到图8所示结果,这里的逆解规定机器人为右旋、肘部向上、腕部不翻转,所以可以得到唯一解。证明手眼标定正确,且机器人能够实现在工作范围内的目标抓取。

图8 机器人抓取位置图 Fig.8 Photograph of robot grab position

5 结论

(1)目标识别采用SURF算法配合双重匹配点过滤算法,通过Grabcut算法将目标从图像中分割,达到目标识别的目的。实验结果表明:目标识别准确,且不受场景影响,图像分割效果良好。

(2)三维重建中通过寻找及填充目标轮廓找到左图像中目标形心,模板匹配得到形心在右图像上对应坐标,根据公式求出形心三维坐标,实现二维重建三维。误差分析证明实验结果正确、可靠。

(3)姿态估计中通过物体母线在图像中的斜率求得母线的空间向量,继而求出母线与各坐标轴的夹角,之后建立工件坐标系得到物体姿态矩阵。实验结果证明,不同场景、不同视角均可得到相对准确的姿态。

(4)目标抓取中,手眼标定确定相机坐标系到机器人基坐标系的关系;根据kukaKR5参数求运动学逆解,得到一组能够抓取目标的关节角。得到的实验结果证明目标物体在机器人工作范围内,且可实现准确抓取。

猜你喜欢

三维重建标定坐标系
独立坐标系椭球变换与坐标换算
三维重建的飞机机动动作库设计与可视化
多层螺旋CT三维重建后处理技术在骨肿瘤影像诊断中的价值
使用朗仁H6 Pro标定北汽绅宝转向角传感器
基于Mimics的CT三维重建应用分析
CT系统参数标定及成像—2
CT系统参数标定及成像—2
坐标系背后的故事
三角函数的坐标系模型
求坐标系内三角形的面积