时间:2024-09-03
尹瑞多,郭刚祥,陈元杰
(浙江省计量科学研究院 浙江省市场监管测力与称重计量重点实验室,浙江 杭州 310018)
螺栓是在日常生活和工业制造当中不可或缺的工业之米,是常见的紧固件。它是由头部和螺杆(带外螺纹的圆柱体)两部分组成的,需要与螺母配合,用于紧固连接两个带有通孔的零件。在工业生产中,螺栓通常由人工进行装卸,但在对大型管道或大型机械的螺栓进行装卸时,人工装卸就显得效率低,工人劳动强度大。在智能制造技术发展下,能够依靠视觉系统自动识别螺栓位置,并进行装卸的螺栓自动装卸机器人应运而生。郑帅超[1]等针对瓣膜螺栓识别定位提出了方案,利用阈值分割和特征提取的方法对螺栓进行定位,定位误差在1 mm以内,但需要先对螺栓顶部进行涂白处理;谈继勇[2]等通过对经典Camshift算法进行改进,建立H-S二维直方图,利用直方图补偿策略提高了螺栓定位精度,但因其算法运行在嵌入式系统上,算法帧率有待提高;黄潜[3]等利用激光线结构光扫描仪对螺栓进行识别和定位,利用关键点的快速点特征直方图(FPFH)来描述点云特征从而识别螺栓的精确位置;胡绍海[4]等针对动车地板螺栓提出了利用暗边缘特征结合FAST角点检测的方法,实现了螺栓定位,但不能适用于亮度较暗的场景;苏少辉[5]等提出了针对大尺度矩形工件定位的方法,运用改进的Hough直线检测算法,计算工件角点和旋转角度从而实现工件定位,但是不能适用于柔性大尺度工件;李致金[6]等利用主轴法实现了对工件轮廓快速识别;朱寒[7]等改进了Sobel算子提高了PCB的定位准确率,但算法运行时间相对较长;韩鸣晓[8]提出了单目视觉孔销精确定位方法,主要是基于Otsu法阈值分割和Canny算子边缘提取,得到椭圆轮廓在进行拟合,这种方法同样易受户外光线影响,需要配备光源和遮光装置;Xu[9]提出了基于主动结构光的螺栓定位方案,使用基于形状的模板匹配方法改善了螺栓定位的准确性和稳定性。
结合以上文献的已有方案与缺陷,本文采用双目视觉与主动结构光结合的方案,可以利用其提供的深度信息结合连通域分析[10]等图像处理方法相结合,在原理上摆脱了光照不足对目标定位的影响,同时又能够以较快速度进行图像处理,从而弥补了以上文献中存在的缺陷与不足。针对端板上的螺栓定位问题,设计了基于RealSense D435深度相机的螺栓定位算法。通过深度相机提供的点云深度信息,无需外加光源也无需预先对螺栓进行处理,能够适用于亮度较暗的场景,不需要进行复杂的点云处理,就能够快速实现对端板上有水泥污损螺栓的定位,最后为自动装卸螺栓机器人提供坐标信息。
螺栓在端板上的分布为12、13、14均匀等分,分布圆直径为360 mm。由于螺栓常年暴露在室外,表面可能会有污损,如图1。系统要求定位误差小于2 mm。
图1 螺栓分布图Figure 1 Diagram of bolts layout
图2 D435相机的结构Figure 2 Structure of D435 camera
本文所采用相机为Intel RealSense D435深度相机,如图2所示D435[11]是基于主动红外双目技术的RGB-DEPTH相机,从左到右的构成分别为左红外相机、红外点阵投射器、右红外相机和RGB相机。其中,红外相机基于结构光测距原理实现三维成像,双目的结构光相较于传统的单目结构光具有更强的抗干扰性;红外点阵投射器的作用类似于一个补光灯,能够在低纹理的环境中提供红外图案以实现结构光成像;RGB相机用于直接获取彩色图像。最终,相机可以输出最高分辨率为1 280×720的深度数据流和分辨率为1 920×1 080的彩色数据流,可测量深度范围为0.11~10 m。
螺栓与相机相对位置如图3,在进行定位时,相机成像面与螺栓所分布平面尽可能平行,以消除相机姿态角度对系统定位精度造成的影响。
图3 螺栓与相机相对位置分布图Figure 3 Diagram of bolts layout
对于一个已完成标定的D435相机,其各个相机的内参以及各个相机之间坐标变换的外参都是已知的。为实现螺栓的三维定位,需要获取螺栓的世界坐标。本文所采用的方式是将深度图对齐到RGB图像,利用深度信息将RGB图像中的二维像素点投射到三维世界坐标系下。对于相机的针孔成像模型,有
(1)
其中(u,v)是相机二维图像坐标系下的某像素坐标,zc是该像素对应点到相机的光心的距离,M1与M2分别为相机的内外参矩阵。
由此可以得到RGB图像与深度图像对齐的公式:
(2)
其中(x,y)与(x′,y′)分别为某点在RGB图像坐标系和深度图像坐标系下的二维像素坐标,Md2r是深度相机坐标系转换到RGB相机坐标系的外参矩阵,Mr与Md分别为RGB摄像头和深度摄像头的内参矩阵。
为实现像素坐标到世界坐标的转换,将RGB相机的针孔成像模型,即公式(1)展开,得到
(3)
其中f为相机焦距,dx与dy为比例因子,R与T为相机内外参矩阵中的旋转矩阵和平移向量。本文设置世界坐标系与RGB相机坐标系一致,因而得到
(4)
由于深度图像与RGB图像已实现对齐,即每个图像像素点的zc已知,因此通过公式(4)即可实现像素坐标到世界坐标的转换。
图像处理流程如图4。
图4 图像处理流程图Figure 4 Image processing flow chart
1) 初始化相机。创建数据流。
2) 遍历ROI。利用RealSense SDK 2.0提供的获取某一像素深度值的函数遍历深度图像ROI(感兴趣区域)的每一个像素,将符合深度(相机到螺栓上表面的距离,允许误差为±2 mm)要求的像素在分析图像显示,符合深度要求的像素作为前景置为白色,其余像素作为背景保持黑色。
3) 图像预处理。将步骤2)得到的分析图像转换为灰度图像,然后进行形态学腐蚀膨胀[12-13]。腐蚀的数学原理如式(5):
A⊖B=x,y|(B)xy⊆A。
(5)
腐蚀就是求局部最小值的操作,可以用来消除小且无意义的目标。
膨胀的数学原理如式(6):
A⊕B=x,y|(B)xy∩A≠∅。
(6)
膨胀与腐蚀是一对相反的操作,可以用来填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声。
4) 连通域分析。经过形态学滤波以后,开始进行连通域轮廓分析并绘制最大轮廓[14]。连通域是指图像中相邻并有相同像素值的图像区域,通常分为4邻接和8邻接。连通域分析是指将图像中的各个连通区域找出并标记。在绘制最大轮廓时通过设定面积阈值(大于500像素)来剔除较小面积的轮廓,以免造成错误识别。在分析图像画出外部矩形边界。
5) 绘制最小外接矩形。为最大轮廓[15-16]绘制最小外接矩形,并用线段标出。
6) 微调中心。将最小外接矩形的中心用圆圈标记。由于螺栓表面可能有污损,导致每个最小外接矩形的中心可能不在同一距离平面,这样会造成最终得到的相邻螺栓之间的距离有误差。因此,需要对最小外接矩形的中心进行微调,确保它们在同一距离平面上。微调策略:遍历每个轮廓内的像素,符合要求的像素需要满足以下三个条件:在同一距离平面;相邻螺栓之间的距离差阈值为±10 mm范围内和角度差阈值为±5°范围内。是否在同一距离平面可以根据SDK提供的深度值判断;相邻螺栓之间的距离也可以由SDK提供的get_distance函数得到;连线的角度由式(7)得到计算角度示意图如图5所示;直至找到符合要求的像素,将它的坐标作为最终的螺栓位置坐标。
(7)
图5 角度计算示意图Figure 5 Angle calculation diagram
7) 坐标系转换。坐标系转换一是为了将图像坐标系转换为相机坐标系,为后续螺栓的装卸提供坐标做准备;二是为了将螺栓定位的中心显示在彩色图像中。因此,要先实现深度图像与彩色图像的对齐,通过公式(2)即可实现相机像素坐标的变换。
8) 直方图均衡化。图像的像素灰度变化是随机的,直方图会高低不齐,直方图均衡化就是使图像的直方图均匀分布的方法。直方图均衡化提供拉伸像素强度分布范围来增强图像对比度。采用如下步骤对分析图像进行直方图均衡化:
a) 计算输入图像直方图H。
b) 进行直方图归一化,直方图的组距的和为255。
c) 计算直方图积分,如式(8)。
(8)
d) 以H′作为查询表,将图像进行变换如式(9)。
dst(x,y)=H′(src(x,y))。
(9)
实验台搭建如图6,D435距螺栓284 mm,使用USB3.0连接线连接至PC,软件使用Visual Studio 2019用C++编写,附加依赖项有RealSense SDK 2.0和OpenCV,人机交互界面如图7,使用MFC编写而成。
图6 实验台Figure 6 Experiment table
图7 人机交互界面Figure 7 Software user interface
软件界面分为彩色图像、深度图像和分析图像三大部分;当前设定检测距离值,当前目标个数等。
螺栓分为12等分、13等分、14等分三种分布,分度圆半径为180 mm,将分度圆分为n等分,示意图如图8所示,根据式(10)可以算出相邻螺栓之间理论距离值分别为:93 mm、86 mm、80 mm。分别使用本文算法、查找轮廓内切圆算法和直接使用最小外接矩形中心作为螺栓中心的算法进行检测。内切圆算法是找到螺栓外接矩形后,计算矩形的内切圆,找到圆心作为螺栓中心点坐标;最小外接矩形中心算法是找到螺栓的最小外接矩形,并将矩形的中心坐标作为螺栓的中心点坐标。以13等分为例,分析图像、深度图像、彩色图像如图9、图10、图11。
(10)
图8 相邻螺栓距离计算示意图Figure 8 Schematic diagram of the calculation of the distance between adjacent bolts
图9 分析图像Figure 9 Analysis image
图10 深度图像Figure 10 Depth image
图11 彩色图像Figure 11 Color image
表1是分别对12、13、14等分的螺栓使用3种不同算法测量10次,每次测量后调整相机位置,共采集90幅分析图像,得到的相邻螺栓之间距离平均值与标准差,平均误差点线图如图12所示。结果表明,单纯使用内切圆和最小外接矩形进行螺栓定位误差较大,需利用深度信息进行中心点的微调。本算法平均误差为1.629 1 mm,远小于内切圆算法和最小外接矩形中心算法,能够满足螺栓定位需求。
图12 平均误差点线图Figure 12 Dot plot of standard deviations
表1 相邻螺栓距离的平均值与标准差
提出了一种针对螺栓定位的算法,利用RealSense D435深度相机提供的深度信息,结合形态学腐蚀膨胀以及连通域分析等方法,实现了对螺栓的定位,并通过实验对比了轮廓内切圆算法和最小外接矩形中心算法。本算法平均定位误差为1.629 1 mm,能够满足螺栓定位的需求。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!