基于单目视觉的特定工件位姿检测研究
2023-02-03孙海,牛晨,鲁飞
孙 海,牛 晨,鲁 飞
(合肥工业大学 电气与自动化工程学院,合肥 230009)
0 引言
目前,工业化生产过程中,大部分工业机器人只能在特定环境下根据预先设计好的流程,采用人工示教的方式进行抓取。但是抓取环境中的待抓取物体位置与姿态常常是不确定或者变化的,示教方式的抓取有时不能满足实际的生产生活需求[1]。如今,随着机器视觉技术的发展,人们开始考虑采用机器视觉对工业机器人进行辅助引导。
针对目标的定位与检测,目前视觉检测常采用单目摄像机或者双目摄像机两种方式。单目摄像机由于结构特点,只能采集目标物的二维信息,对于位姿的测量,常使用经过换算后求得的特征点信息,运用PNP算法[2]求得相机相对目标物的位姿信息。对于双目相机,由于结构上的特点,可以获得目标物的视差与深度,在如今的位姿测量中常结合点云进行三维重构[3]获得目标物的定位与位姿信息。
本文结合特定目标物的结构特征与使用环境综合考虑,提出一种简单的单目视觉位姿检测模型。该模型可分为四个部分:单目摄像机标定、目标检测、特征角点提取、位姿计算。首先利用SURF模板匹配的方式[4],检测出空间图片中特定目标立方体的感兴趣区域,相比于如今盛行的RCNN、Faster-RCNN[5]等机器学习检测方式,本文选择的算法具有计算开销小,精准度满足要求的特点。其次,相比于Harris角点检测[6],采用霍夫变化[7]拟合出目标物上不同的角点可以减少误检情况的发生。最后,根据图像特征角点像素坐标与用户坐标间的映射关系,得到目标物的位置与姿态信息。
1 单目位姿计算原理
目标物位姿检测包括物体整体的朝向与坐标的范围,本文利用特定目标的先验信息及后期检测到的特征点信息,经过相关计算得到。以规则立方体为例进行如下说明。
图1中,O-XYZ为用户坐标系,P1、P4为目标平面上的两个角点。h为立方体先验高度,从而P1、P4两点的Z坐标易知均为h。设上表面的两点的用户坐标分别为(X1,Y1,h),(X4,Y4,h),则棱P1P4相对于X轴的偏转角度为:
图1 位姿计算示意图
同时,一般采用规则立方体的重心坐标表征其整体位置,重心的(XM,YM,ZM)坐标可按式(2)计算。
由上表达式可知,根据目标立方体的上表面任意两个角点的用户坐标系可换算出目标物的位姿朝向与定位信息,为此,需要采用视觉成像原理进行图像坐标系与用户坐标系的转化[8],摄像机的线性成像模型如图2所示。
图2 线性成像模型
空间点P的用户坐标(XW,YW,ZW)与投影点p的像素坐标(u,v)映射关系如式(3)所示:
式(3)中,fx,fy,u0,v0为摄像机的内部参数,M1即为内部参数整合矩阵,R,T分别为旋转矩阵与平移矩阵,为摄像机的外部参数,整合成M2,Zc为尺度信息。
一般求解用户坐标采用的是双目摄像机,因为其可以模仿人眼的成像原理产生视差与深度信息,但是双目摄像机存在匹配困难与视场小等缺点。在有先验信息目标立方体高度h,即用户坐标下Zw的前提下,可以通过单目摄像机进行测量,具体测量原理如下,首先将式(3)中的内、外部参数M1与M2合并。
在先验信息ZW已知的前提下,对式(4)进行进一步转化:
这样,转化成最终式(5)两边维数就相等了,通过求解参数矩阵即可实现由图像坐标得到用户坐标。参数矩阵中的参数可以通过相机的预先标定获得,本文采用的是张正友棋盘标定法[9]。
本文空间位姿检测系统流程如图3所示。
图3 空间位姿检测流程图
2 目标检测
目标物所在区域一般存在很多干扰。因此,对于目标物感兴趣区域的提取有利于排除无关背景因素干扰的影响,提高后序特征检测效率与准确性。目前有卷积神经网络等机器学习的方式,且效果良好,本文结合设计环境,采用运算量小的SURF基于局部特征的模版匹配方式进行目标检测
1)根据本文所需求解的问题,对先验目标物体360°每隔30°拍摄一张图片,对所拍摄图片进行手工裁剪目标物轮廓进行标记。
2)将目标拍摄图片特征点与样本图片特征点集进行匹配。本文采用基于欧式距离的K-D tree特征点二临近方式进行匹配。该法比例阈值的选取对于匹配结果的准确性会造成直接影响。比例阈值的大小与准确度成反比关系,本文的阈值选定为0.5。
3)当特征点粗匹配完成,再进行RANSAC算法[10]对特征匹配情况进行精匹配。经过反复试验,本文设定最终匹配个数阈值为6效果最佳,若大于该特征点个数阈值,则说明目标区域存在目标物,结合单应性矩阵[11],将模板图片的四个顶点坐标由单应矩阵映射到场景图片中,得到xmin、xmax、ymin和ymax,将x、y坐标进行两两组合,得到图像坐标系上四个角点,进而框定感兴趣区域。
图4 SURF模板匹配
3 特征点提取与整合
在目标检测识别出物体并且框定感兴趣区域后,可以通过相关处理得到特征点,进而提取特征点的像素坐标,处理步骤主要包括对感兴趣区域中目标物边缘检测、直线检测以及特征点筛选。
边缘检测是为了获得待检测物的几何轮廓,本文采用canny检测算法[12]。在对其进行轮廓检测前,为了使检测更准确可以对感兴趣区域进行中值滤波法[13]减小噪声干扰,为了减小颜色相似与光照影响,可以调整物体与背景对比度,对图5的检测效果如图6所示。
图5 目标检测结果
图6 边缘轮廓检测结果
检测出目标的大致轮廓,利用霍夫变换来提取特征直线以拟合出特征角点。霍夫直线检测就是把图像空间中的直线变换到参数空间中的点,通过统计特性来解决检测问题。
霍夫变换返回的结果包括检测到的每条直线的极坐标参数ρ、θ以及直线段的起点与终点。一条特征直线可能对应霍夫变换检测出多条线段,为了检测结果的准确性,要根据实际情况选择两点之间的距离阈值(小于此阈值则认为两点属于一条线段)、线段长度阈值(大于此阈值则返回该线段参数)。霍夫变换检测到的直线会有很多条,需要从中筛选出特征直线,特征直线的筛选需要满足以下条件:
1)线段是目标物与背景的分界线,一侧像素为背景色,一侧像素偏目标物表面颜色。灰度梯度较大,属于强边缘。
2)是目标物上表面线段,距离俯拍摄像机较近,误差较小。
3)虽然目标物上各条平行的棱在图片上不会严格平行,但其θ值差异不会过大,如图5中线段1、2的θ值相近。因此以强边缘特征直线θ值为基准,设置偏差阈值,经多次试验,阈值取±15°时筛选的特征直线较为可靠。霍夫变换检测特征直线效果如图7所示。根据筛选的条件,返回上表面2、3线段与3直线极坐标参数ρ、θ后,拟合的P1和P4点满足用于检测位姿的要求。
图7 直线拟合角点结果
4 实验结果及分析
4.1 单目相机的标定
本文采用张正友棋盘标定法对单目USB摄像机进行标定。先将摄像机固定,采用20mm×20mm的6×11规格的黑白棋盘,改变棋盘相对摄像机的位置拍摄19张图(分辨率640*480),再将棋盘摆放至与XOY平面重合的位置拍摄第20张照片,将20张照片放入MATLAB标定工具箱进行标定,得到相机在拍取工件点的相机标定参数。具体参数如表1所示。
表1 相机的内外参数
4.2 定位与位姿检测
保证相机俯拍目标工件完整的前提下,移动目标工件(高44mm),测量30次角点坐标信息。为了实验的方便测量,被检测工件某一直角边与棋盘X轴和Y轴平行,每次测量整体沿着棋盘X和Y轴平行移动,从中选取7组P1和P4横纵坐标数据如表2所示。
表2 角点检测实验数据表
由于待检测工件位姿检测精度主要取决于本模型的角点检测精度,故接下来只讨论角点误差。
图8和图9是被检测工件上P1和P4的角点纵坐标误差与横纵坐标的曲线关系图。从图中可以看到,P1角点在移动过程中,纵坐标小于160mm情况下,纵坐标误差具有随机性,但平均误差均在2mm以内,当纵坐标超过160mm,纵坐标误差出现增长趋势,但是误差不超过3.5mm;P4角点纵坐标小于160mm情况下,纵坐标平均误差不超过2.5mm,当纵坐标超过160mm,纵坐标误差出现更大的增长,但纵坐标误差不超过3.5mm。
图8 P1角点纵坐标误差曲线图
图9 P4角点纵坐标误差曲线图
图10和图11是被检测工件上P1和P4角点横坐标误差与横纵坐标的曲线关系图。分析发现,角点的纵坐标对于检测的横坐标影响不大。横坐标对于横坐标误差影响较大,随着横坐标距离的增大,横坐标误差会随之增大,最大绝对误差接近2.5mm。
图10 P1角点横坐标误差曲线图
图11 P4角点横坐标误差曲线图
5 结语
本文提出了一种单目视觉特定立方体位姿检测模型,该模型成本低,算法简单,易于实现,基本满足实际需要。通过SURF模板匹配实现目标检测,在保证识别准确率的前提下,实时性基本得到满足。本文结合相机标定信息与工件先验信息,采用霍夫变换拟合的方式得到了角点的坐标信息。实验结果表明,角点纵坐标平均误差在160mm内小于2.5mm,横坐标平均误差在220mm以内小于2.5mm,基本满足检测误差要求。本模型角点误差的来源,主要来自于相机自身构造精度与测量工具精度。同时,在后续的工作中,对于如何提高复杂背景目标检测效率,还有待研究改进。