APP下载

基于单目视觉多种平面尺寸的规则工件测量系统

2020-11-23方志强熊禾根肖书浩李公法

机械设计与制造 2020年11期
关键词:坐标系工件直线

方志强 ,熊禾根 ,肖书浩 ,李公法

(1.武汉科技大学机械自动化学院,湖北 武汉 430081;2.武昌首义学院机电工程研究所,湖北 武汉 430064)

1 引言

在目前工业发展的大环境下,机器视觉技术已经得到广泛的推广,特别是在产品的尺寸测量[1-2]与外观缺陷检测[3]上,这一技术已成中坚力量。从产品市场需求上看,高性能软件设备大多引进于国外,价格昂贵,如美国的Cognex、日本的Keyence 和的德国的Halcon;再加上技术壁垒和垄断,后期维护困难等问题使得购买企业望而却步。从软件开发来看,很多需要基于平台进行第二次开发,不能“开箱就用”,即不能直接提供给用户终端使用。

从目前发展现状来看,在发达国家中美国、日本和德国早已成为开发机器视觉的领先者,其机器视觉行业发展如此迅速离不开国外学者的科研投入,如在尺寸测量和检测方面,文献[4]设计了一种用于对大多数螺纹进行自动测量和检测的视觉系统。文献[5]外国学者采用机器视觉检测技术来测量管道末端的圆度值,可以判断出该管道末端的质量是否满足要求。文献[6]最近研究了对材料加工刀具的测量,通过机器视觉无损检测系统可以检测刀具是否断裂以及断裂长度等信息;国内机器视觉的研究起步较晚,我国的专业学者在机器视觉方向也进行了深入的探讨和实践,近些年来也得到了较快的发展。相应地如文献[7]通过分析曲面冲压件的表面机理及形貌,采用交互式ROI 构建及基于灰度值亚像素精度匹配的图像差减法完整分割缺陷区域,提出基于多形状特征的缺陷分类方法。文献[8]通过图像处理算法以及尺寸计算获得石材砖的几何尺寸,根据标准尺寸判断石材砖的质量品级是否合格;文献[9]针对工厂中的实际需求,提出基于椭圆的曲率估计算法和曲率限定估计算法对灯泡的灯脚长度测量完成在线实时检测判断。因此在此背景下,针对工厂需求设计和开发一种基于单目视觉多种平面尺寸的规则工件测量系统,以OpenCV 和Qt 为开发平台,利用C++编程实现对工件进行实时测量和检测;通过实验验证系统所采用的算法实际可行,能满足一般工业检测要求下的尺寸测量精度。

2 系统方案设计

系统结构主要由光照系统、检测平台、图像采集、软件设计4部分组成。硬件包括光源、工业相机、镜头、计算机等设备,其中相机采用Basler 工业相机,图像分辨率为2592×1944;软件部分:基于visual studio 2013 平台、Qt 界面设计类库、OpenCV 视觉库开发系统软件。系统整体结构设计,如图1(a)所示;系统实现尺寸的实时检测包括两个步骤:(1)测量模板设定;(2)自动运行,其实时检测流程简图,如图1(b)所示。

图1 系统设计Fig.1 System Design

3 视觉测量软件设计

测量系统软件设计部分主要包括图像采集、坐标系转换、测量任务设定、实时检测4 个模块,其工作流程,如图2 所示。 图像采集模块对工业相机配置后进行图像采集;坐标系转换模块为了获得图像坐标系与世界坐标系的转换关系;测量任务设定模块主要是通过图像处理实现尺寸测量功能得到相关参数并保存,以及对工件进行定位设定;实时检测模块经测量任务设定完成后随着相机抓拍图像自动进行尺寸测量和判断。

图2 测量软件工作流程Fig.2 The Process of Measuring Software Work

3.1 图像采集

视觉测量系统使用basler 工业相机进行图像采集,采用Basler官网提供的Pylon5 SDK 搭配OpenCV 开发采集图像。相机和计算机之间通过Gige 进行数据传输,对相机和计算机进行IP 地址配置,让相机和计算机处于同一网段内并初始化相机。界面设计触发控件来控制相机响应时间,设计调节曝光时间进度条来调节曝光时间。

3.2 坐标系转换

相机配置后通过相机标定和矫正准确地获得相机参数,进而确定世界坐标系与图像坐标系的转换关系。先采用文献[10]棋盘标定法对工业相机从多角度拍摄多幅棋盘进行标定,再结合最小二乘法完成坐标系转换。

3.2.1 坐标系建立

取待测工件所在检测平面为Owxwyw,zw轴垂直其平面竖直向上,则世界坐标系可表示为:Owxwywzw。相机坐标系表示为:Ocxcyczc,定义坐标系原点为光轴中心Oc,zc轴平行于光轴。

3.2.2 坐标系转换参数描述

由相机标定得到的内参数矩阵M 和镜头畸变系数D 可表示为:

式中:fx、fy—X,Y 轴方向上的像素焦距;(u0,v0)—相机主点。

式中:k1,k2,k3—径向畸参;p1,p2—切向畸参。由式(1)、式(2)可将目标的像素坐标(u,v)转换成Ocxcyczc下的三维坐标。过程如下:

式中:(u′,v′)—(u,v)标定矫正后像素坐标;f—矫正函数。

式中:(xc,yc,zc)—目标在 Ocxcyczc中的坐标。设目标在 Owxwywzw中的坐标为(xw,yw,zw),将(xw,yw,zw)在 Ocxcyczc中表示,所构成相机的外参矩阵为:

式中:r1=[r1xr1yr1z]T、r2=[r2xr2yr2z]T、r3=[r3xr3yr3z]T—xw,yw,zw轴在 Ocxcyczc中的旋转矢量;t=[txtytz]T—Owxwywzw中的坐标原点在Ocxcyczc中的平移向量。联合式(3)~式(5),并考虑到目标在平面内,令zw=0,化简可得式(6):

式中:m=[r1xr1yr1zr2xr2yr2ztxtytz]T,tz≠0 由此,只求出 m 中 8个未知数便可知Owxwywzw与图像坐标系转换关系;由于每个点提供2 个方程,因此将式(6)表示为Am=B,对Owxwywzw中n(n≥4)个坐标已知点,利用最小二乘法即得m:

由式(7)得到参数矩阵m 后,根据图像坐标可求解出目标对应的世界坐标。

3.3 测量任务设定

3.3.1 提取 ROI 区域

尺寸测量需先选中测量工具,通过鼠标在工件检测边缘取点(直线选取 2 点 P1,P2、曲线选取 3 点 P1,P2,P3)创建 ROI 得到ROI 区域。其中半径、平行距离、夹角的ROI 创建简图,如图3(a)所示;以检测直线为例,生成如图3(b)所示的ROI 区域,其中左上角和右下角Rect 表示用来改变ROI 的大小,中间两端Rect 用来改变ROI 的方向,箭头表示沿cols 法向搜索边界点;当ROI 发生改变时,在ROI 内处理的结果也会相应调整。

图3 ROI 区域提取Fig.3 ROI Region Extraction

3.3.2 图像处理和尺寸计算

确定检测边缘的ROI 后,在ROI 区域内进行图像处理并对轮廓点进行曲线拟合,借助拟合曲线做进一步计算和处理实现尺寸测量的功能,其中得到拟合曲线的主要步骤如下:

步骤1:图像灰度处理,将RGB 三通道变为单通道;步骤2:运用双线性插值法求解ROI 内像素点灰度值;步骤3:一阶导数有限差分计算法向梯度值;步骤4:对梯度值进行非极大值抑制处理确定边界轮廓点;步骤5:对ROI 内有用信息轮廓点进行曲线拟合。

(1)直线拟合

设图像中第i 个像素点(xi,yi)到直线的离差为ri,用ρ(r)表示离差函数,常见的最小二乘算法进行直线拟合是以离差平方和为拟合判据,使得Σρ(ri)最小。假设所求拟合直线可表示为y=a0+a1x,则参与拟合的n 个像素点到直线的离差平方和可表示为Σρ对等式右边求 ai偏导且令一阶偏导值为0,化简可得矩阵形式:

由式(8)可得拟合直线参数,尽管此最小二乘算法拟合速度快但对图像中干扰点的鲁棒性不够,导致拟合精度不高。因此在此基础上引入其他类型的M 估计(M-estimator)算法进行稳健估计。在OpenCV 库中提供不同形式的估计函数。采用其中Huber研究的拟合函数代替离差函数ρ(r):

式中:C(C=1.345)—拟合参数,取C=1。利用OpenCV 库中的cv::fitLine 直线拟合函数对图 3(b)中所示的有用边界轮廓点进行系数拟合得到拟合直线。

(2)圆半径测量

圆半径测量先采用RANSAC[11]算法剔除干扰点再结合最小二乘法进行圆拟合得到圆半径值,其拟合流程,如图4 所示。

图4 拟合流程Fig.4 The Process of Fitting

RANSAC 思想就是从采样到的样本数据集中估计模型参数,利用所有样本点对该模型进行检验并计算模型的支持度(内点数量),最后通过迭代挑选出支持度最高的模型作为参数模型。圆半径测量的算法步骤为:

(1)设置内点所占百分比p(取为90%),以及随机选取的所有样本点均为内点的概率值η0(取为0.85),并计算迭代次数n。

(2)利用提取曲线ROI 区域中随机选取3 个不共线的采样点建立圆模型并以此初步确定圆参数。

(3)计算ROI 内提取的所有边缘点到圆模型距离,将其与圆模型相对误差小于阈值δ(取为0.02)所对应的点视为内点,并计算该圆的支持度。

(4)上述步骤123 重复n 次,确定n 个模型中支持度最大模型作为最佳模型,并计算满足模型的所有内点。

(5)对内点利用圆一般方程和最小二乘法进行系数拟合,确定最终的RANSAC 拟合圆,从而得到圆半径等相关参数值。

其中通过η0和p 以及确定圆参数至少需要的采样数目k(取k=3)可确定最少迭代次数n:

(3)平行距离测量

在ROI 内测量目标的上下(左右)边缘经直线拟合后,两条拟合直线间的平行距离为d,如图5 中L 直线所示。

C0为 P1P2在 ROI 中与中间 rows 相交的点,M1为 C0在 ROI中所对应cols 与拟合直线line1 上的交点,M2为M1投影在拟合直线line2 上的垂足点。由鼠标点击两点确定的P1,P2和拟合直线line1 可求得M1坐标。即距离d 可表示点M1到拟合直线line2的垂直距离。假设拟合直线line2 过定点(x0,y0),方向向量为(u,v),M1(x1,y1),M2(x2,y2),则有:

图5 距离测量Fig.5 Distance Measurement

3.3.3 工件位置和角度定位

系统随相机响应抓拍工件平面图像进行自动检测之前需要对工件进行定位。为了尽量避免工件被传送带送到检测位置时在ROI有效检测区域内发生较小的位置变化或波动而造成的误差,故在ROI 区域提取时可人为适当增大图3(b)中所示的ROI 纵向面积并对工件使用定位工具定位。定位工具包括位置定位和角度定位。其中位置定位跟踪水平和垂直移动,角度定位跟踪旋转;当工件发生位置和角度变化时,提取ROI 区域的点Pi都会以定位工具为参考重新计算,使检测区域与工件的相对位置保存不变同时ROI 内相关信息也会更新。一般地可利用直线工具得到某条直线并以其前后斜率值变化转化为定位角度,再以一个特征点(交点、圆心点等)作为位置定位点,并根据定位点前后位置变化得到x,y 方向的偏移量;其中交点可利用测角工具得到两相交直线交点坐标、圆心点可通过测圆工具或Hough 圆定位工具(通过矩形ROI 提取圆特征区域利用OpenCV 库中的HoughCircles 函数)获得;特殊地当工件有多个圆特征时,采用不同心的两个Hough 圆定位快速定位,以其中一个圆心作位置定位点,两圆心之间连线斜率变化值作定位角度;假设图3(a)中创建ROI 检测区域的点P 在定位前坐标为(Tx,Ty),P 定位后的坐标为(Px,Py),定位点L 坐标为(Lx,Ly),L 定位前后x,y 方向的偏移量为(ΔVx,ΔVy),定位角度为ΔθR,则有:

由此软件开发的定位工具可根据工件特征选择合适的定位工具搭配使用,利用(14)式完成定位计算。

4 实验结果与分析

由于实验条件有限,测试环境为室内,实验操作系统为Windows 10,在4GB 内存的64 位操作平台上运行,其中实验平台和设备以及测量目标,如图6 所示。

图6 实验设备和测量目标Fig.6 Experimental Equipment and Test Targets

4.1 坐标系转换测试

制作棋盘格,打印8×6 的棋盘格到A4 纸上。棋盘格方格大小为30*30mm。

图7 相机获取平面图Fig.7 Camera Grabbing Plane Image

系统驱动相机抓取平面图像,如图7 所示。以第一个黑色棋盘格的右下角角点取为世界坐标系的原点Ow,以Ow为起点,水平向右为xw的正向,垂直向下为yw的正向,轴竖直平面向上。对棋盘格中的24 个角点进行亚像素级角点检测和坐标转换计算,求得(7)式中矩阵参数如下:

m0=9.918,m1=0.040,m2=495.1,m3=0.001

m4=9.883,m5=436.0,m6=1.6×10-5,m7=3.1×10-5

为了检验转换参数的精确度,取图7 中除标定点以外的A、B、C、D 四个边角点作为校验点。根据坐标系的转换关系由图像坐标计算出校验点在世界坐标系中的位置,并用卡尺测量出A、B、C、D 角点在坐标系Owxwywzw中的实际位置坐标;再将计算出的位置坐标与实际测得的位置坐标进行比较,分别求出x、y 轴方向的相对误差,其结果,如表1 所示。从表1 中可以直观看出最大相对误差0.47%(<±1%视为有效精度),最小相对误差0%,说明坐标转换关系有效。

表1 坐标转换Tab.1 Coordinate Transformation

4.2 系统尺寸测量精度测试

完成坐标系转换后开始检验测量系统的精确性。系统在光照条件较暗情况下实验分别对不同尺寸类型的多几何工件进行平行距离测量、半径测量、角度测量,如图8 所示。图8(a)为距离测量,即对工件1 两种不同位置进行测量;图8(b)为半径测量,对四个不同位置圆孔的工件2 进行半径测量检测;图8(c)为角度测量,对常用三角尺的三个夹角进行角度测量。图8(d)的是同时对工件2 进行多种尺寸测量。

图8 尺寸测量Fig.8 Size Measurement

从表2 中可以看出,工件1 距离测量的最小相对误差为0.28%,最大相对误差为0.84%;从表3 中不难发现,工件2 的最小相对误差为0.00%,最大相对误差为0.83%;从表4 中可以得出,三角尺的最小相对误差为0.07%,最大相对误差为0.47%。综合测量结果,尺寸误差在0.10mm 以内,角度误差在0.3°以内,相对误差在±1%以内,基本满足一般工业要求。经计时,发现整个测量过程耗时均在150ms 以内。通过分析,系统的测量误差主要由测量仪器操作、相机标定、工件加工偏差或磨损、以及光照不均等因素造成,由于本系统是在工件与平台背景色差较大条件下进行的,因此为减少噪声对图像处理的干扰可根据工件颜色人为布置平台背景颜色(一般取黑色或白色)来增大色差提高测量精确度。

表2 距离测试Tab.2 Distance Test

表3 半径测试Tab.3 Radius Test

表4 角度测试Tab.4 Angle Test

4.3 系统实时检测

系统模拟生产线上工件到达指定检测区域,通过改变其工作位置进行检测。以检测工件2 的平行距离为例,考虑到工件本身特征优先采用两个Hough 圆定位。系统先对测量任务中的测量工具和定位工具进行相关参数设定和保存,分别如图9(a)、(b)所示。任务设定完成后系统随着相机抓取平面图像进行自动检测运行,如图9(c)所示。图9(d)所示的是使用定位工具,此时改变工件的位置,系统依然可以正确测量,并根据真实值所设定的误差范围进行检测判断;图9(e)所示的是在没有使用定位器情形下改变工件位置使其超出ROI 检测区域,使工件检测不到或测量值超出误差允许范围致其检测结果显示为失败。

图9 实时检测Fig.9 Real-Time Detection

5 结论

开发的基于单目视觉多种平面尺寸的规则工件测量系统尽管还没有达到千分尺等仪器的测量精度,但对精密度要求不是很高的工业应用,系统的精确度基本满足检测要求;系统设计的亮点主要体现在三方面:(1)多种平面尺寸测量。软件开发的三种测量工具可对工件使用一种工具也可同时使用几种工具进行测量;(2)简约性。系统软件部分不需要用户再进行第二次开发,直接搭建相关硬件平台就可以使用,而且QT 界面操作方便、快捷;(3)软件底层设计灵活性。系统的汇编语言采用C++语言,运用面向对象的思想,利用高级C++的Class 类进行各功能之间的融合,后期可以在此基础上开发更多其他功能的工具,如正在开发的零件计数、工件字符识别等功能。通过实验分析,测量原理和算法是实际可用的,后期将系统实践于实际工业环境中。系统的设计和软件开发对视觉测量的广泛应用有一定的研究价值和实际意义。

猜你喜欢

坐标系工件直线
独立坐标系椭球变换与坐标换算
曲轴线工件划伤问题改进研究
考虑非线性误差的五轴工件安装位置优化
画直线
解密坐标系中的平移变换
三坐标在工件测绘中的应用技巧
坐标系背后的故事
画直线
你喜欢直线吗?
一种非圆旋转工件支撑装置控制算法