周 晓,谢明棚
(武汉理工大学 机电工程学院,湖北 武汉 430070)
小型油泵叶片具有精密微小的小薄片结构,广泛应用于各类油泵设备中,其尺寸是否合格会直接影响到油泵的整机性能。在生产现场中,对该叶片的检测一般是人工用高精度卡尺,判断其尺寸是否合格,但由于人工检测易受工作环境、情绪、检测方法等多种因素的影响,不能保证检测质量的一致性。近年来,随着计算机视觉检测技术以及图像处理算法的不断发展和成熟,基于计算机检测技术的非接触式测量逐渐替代了传统的接触式测量,有效提高了检测精度以及检测效率,减少了人工检测带来的误差。
对于工件二维尺寸测量,尚小燕等[1]通过对轴类零件的边缘点进行最小二乘拟合,计算零件的尺寸。为了在不提高硬件成本的情况下,提高测量精度,亚像素边缘检测被广泛应用。目前常用的方法主要包括:基于小波变换的亚像素边缘检测、基于插值的亚像素边缘检测、基于拟合的亚像素边缘检测以及基于矩的亚像素边缘检测技术。俞甫等[2]先校正相机的畸变,获取相机内参,然后利用基于Zernike矩的亚像素边缘检测算法获取边缘,计算小型连接件的尺寸。任永强[3]则提出了一种基于RANSAC(random sample consensus)拟合缸套亚像素轮廓的内外径尺寸测量方法。但是传统的最小二乘拟合和全局相机标定无法满足本文中的叶片尺寸检测精度要求。
针对传统相机标定和最小二乘拟合工件边缘的不足,笔者采用对相机视野进行分区域标定校正畸变,使用基于Sigmoid函数拟合的亚像素边缘检测算法提高边缘检测精度;使用基于距离的最小二乘方法剔除异常边缘点,提高直线拟合精度,实现了油泵叶片的高精度、非接触测量。
本系统需要测量的叶片尺寸为24.940 mm×11.960 mm,其测量原理如图1所示。
图1 测量系统工作原理
该测量系统中,由光源和照明方式组成的照明系统是获取高质量图像的关键,需要尽量突出被测工件的边缘轮廓,故选择使用平行光源。由于油泵叶片不透光,采用背向照明方式,利用从被测工件背面射过来的均匀平行光,采集边缘轮廓对比度高的工件图像,方便后续的边缘提取。为减少获取图像的畸变,采用物方远心和像方远心的双远心镜头,其型号为ESCM05-110D111-S2,放大倍数为0.5x。同时为提高图像分辨率,采用高分辨率的CMOS(complementary metal oxide semiconductor)相机,其型号为海康MV-CH120-10UMUC相机,分辨率为4 096×3 000,像元尺寸为3.45 μm,成像芯片大小为14.08 mm×10.56 mm。该相机搭配镜头,可见视野尺寸为27.5 mm×20.2 mm,满足测量叶片视野要求。通过图像采集系统得到的图像,在计算机中进行算法处理:首先对成像系统进行标定,获取CCD(charge compled device)各像素校正畸变后的实际坐标,然后采用Canny算子检测叶片的边缘,最后采用基于Sigmoid函数拟合边缘模型,得到叶片边缘的亚像素坐标位置,计算尺寸。
目前传统的标定方法可分为3种类型:线性标定方法、非线性优化标定方法以及两步标定法[4]。线性标定方法忽略摄像机镜头的非线性畸变并且把透视变换矩阵中的元素作为未知数来求解摄像机的参数,运算速度快,但是该方法的标定精度不高;非线性优化标定方法包括拟线性化方法和完全非线性方法,考虑成像过程中的各种因素,标定精度高,但模型比较复杂,无法实时取得标定结果;两步标定法则是先利用线性标定方法得到相机内参,再以该参数作为初始值考虑畸变,优化标定结果,具有较高的标定精度。以上方法都是对相机的畸变进行全局参数标定,在进行高精度的尺寸测量中,无法将单个亚像素点准确对应到真实物理坐标中。因此,本系统采用分区域标定相机,并将标定板中的每个角点对应到实际物理坐标中,以此进行畸变校正。
为解决标定结果无法实时获取的问题,采用先标定,并将其标定结果写入文件,形成索引的形式,在检测过程中直接链接坐标索引,以此提高测量速度。标定过程中,高精度标定板[5]外形尺寸为100 mm×100 mm×3 mm。由于标定特征尺寸很小,为避免光照不均而导致标定特征不明显,设计的标定板形状如图2所示。中间为棋盘格分布,棋盘格每个格子的尺寸为10 μm×10 μm,图形尺寸为100 μm×100 μm,整体精度尺寸为±0.5 μm。检测的角点为标定板图案的黑色边缘交点位置,即标定特征为十字网格的横线和竖线,线与线之间距离为100 μm,每条线的宽度为10 μm。
图2 标定板
为减少误差累积,将标定板分为16个不同区域分别进行校正。标定板单个区域如图3所示。
标定过程中,以各区域中的左上角交点为每个区域的坐标原点,依次完成各区域的标定。其原理为:认为标定板是理想无误差的,根据标定板上角点位置坐标及其在像素坐标系中的坐标,确定其对应关系[6]。
进行相机标定前,需要对各区域建立像素尺寸对应的实际尺寸之间的关系。设CMOS像元尺寸为p,镜头放大倍数为β,每个像元尺寸对应的几何尺寸为l,每两个标定板坐标交点距离的几何尺寸为d,则每两个坐标交点之间的像素数m可表示为:
m=(l×β)/p
(1)
本系统采用双远心镜头,其放大倍数为0.5x。在理想情况下,采用的海康相机像元尺寸为3.45 μm×3.45 μm,每个坐标交点距离的几何尺寸为d=100 μm,可得m≈14.493。但由于相机存在畸变,无法采集理想情况下的值,各区域需要根据各角点的像素坐标位置和实际物理坐标位置确定该区域的标定尺寸。
单个区域中标定算法的步骤如下:
(1)分别利用水平和竖直方向的Sobel算子提取图像区域中的水平线和竖直线。
(2)分别对提取到的水平线和竖直线投影,统计各处直线投影的像素点坐标和频率,计算各自方向上各条线段之间相隔的平均像素个数,进行尺寸标定。
(3)对提取到的水平线以及竖直线做图像乘法操作,得到图像中两线的交点,作为有畸变的角点特征。
(4)根据标定板图形每条线间隔实际物理距离以及步骤(2)中的标定尺寸,确定理想情况下的角点真实位置。
(5)以步骤(3)和步骤(4)中得到的角点位置为参考点,确定一个100 μm×100 μm区域中的映射关系,利用三次多项式拟合可得:
x′=a0+a1x+a2y+a3xy+a4x2+
a5y2+a6x2y+a7xy2+a8x3+a9y3
y′=b0+b1x+b2y+b3xy+b4x2+
b5y2+b6x2y+b7xy2+b8x3+b9y3
(2)
式中:(x,y)为畸变像素坐标;(x′,y′)为真实位置;a0~a9为x方向拟合多项式参数;b0~b9为y方向拟合多项式参数。
计算该区域中映射关系,认为位于该区域中的像素点或亚像素点的畸变参数一致。标定过程如图4所示。
图4 标定过程
依次对分割得到的16个区域进行如上标定过程,得到各100 μm×100 μm区域中的畸变参数,将其写入索引文件中,后续可根据式(1)及索引文件计算得到真实像素坐标。
为消除获取的图像中的无关信息以及噪声,保留图像中所需要的特征信息,提高后续图像处理的效率,需对图像进行预处理和图像分割[7]。首先通过最小外接矩形获取叶片边缘点的边界,并采用Canny算子提取叶片像素级边缘轮廓点,通过边界排除由于毛刺-油污等带来的异常边缘点以及确定边界起始点,其次根据基于Sigmoid函数的亚像素边缘提取算法计算叶片边缘亚像素点位置,最后拟合边缘,计算叶片尺寸。叶片尺寸测量的流程如图5所示。
图5 叶片边缘检测流程图
由于叶片的加工工艺导致的毛刺和油污等噪声,在提取叶片边缘的过程中存在伪边缘。同时叶片四周为圆角过渡,为确定叶片轮廓的4条边的起始位置和终止位置,通过叶片图像的最小外接矩形进行处理。
在求取最小外接矩形前,由于叶片的微小缺陷以及图像采集过程中的各环节噪声的加入,会影响叶片最小外接矩形的面积大小,需要对其进行滤波和平滑处理,减少噪声干扰。对于获得的叶片图像,其噪声近似于高斯噪声,采用3×3的高斯滤波核进行滤波。
二值化叶片图像可以凸显叶片边缘特征,其核心就是确定一个阈值,将高于该阈值的像素灰度值置于255,而其它情况的像素灰度值置于0。本系统中,测量条件保持不变,光照均匀,通过统直方图统计各灰度值,得到最佳阈值,其值为30。
为进一步减少无用的图像片段,消除一些孤立的异常点,对二值化之后的图像先腐蚀后膨胀,由于叶片边缘清晰,轮廓整齐,使用5×5的值全为1的核进行操作。最后得到叶片的边缘位置。图像预处理结果如图6所示。
图6 图像预处理局部结果
根据预处理之后的二值图像,查找叶片的最小外接矩形[8],确定叶片轮廓的边缘查找时的边界。具体步骤为:
(1)根据Xc=(∑xi)/n,Yc=(∑yi)/m,计算叶片中心,其中(xi,yi)为叶片成像的像素坐标,n,m为叶片像素在两个方向上的个数。同时记录叶片的左上角和右下角两点坐标,用于求取矩形边界。
(2)将水平主轴每次以一定角度α旋转并求出该角度下的外接矩形,计算该矩形面积。取面积最小的矩形即为该叶片图像的最小外接矩形。
笔者使用Canny边缘检测算子[9]对叶片进行边缘检测得到其像素级位置坐标,其具体步骤为:
(1)查找叶片的最小外接矩形,记录最小外接矩形的4个顶点,计算该外接矩形对应4条边的直线表达式;
(2)利用Canny边缘检测算子获取叶片边缘,保存边缘点;
(3)依次从最小外接矩形的顶点开始,寻找步骤(2)中的边缘点,若边缘点超出最小外接矩形边界或者距离过远,则将该边缘点删除;若矩形边界周围一定像素范围内没有边缘点,则认为此处无边缘点。
(4)将查找到的叶片边缘点分别保存到4个向量序列中。
在得到了叶片粗边缘后,利用基于Sigmoid函数拟合的亚像素边缘检测算法[10]提取图像的边缘亚像素点,该算法认为图像的边缘可以用Sigmoid曲线拟合,其边缘模型为:
(3)
式中:a为边缘的最大和最小灰度值的差值;b为相距最远的两拟合点之间的坐标差值;c为边缘的倾斜程度,一般取0.5;d为边缘的最小灰度值。
亚像素点的位置是对式(3)求导取导数为0时,即边缘斜率变化最快的地方,为f(x)=d+a/2。为求取合适的Sigmoid函数参数,定义误差函数为:
(4)
式中:f(i)为根据拟合函数得到的估计灰度值;yi为图像中的灰度值;σi为第i个点上的标准差。
使式(4)最小,即可得到了亚像素点的位置。
根据图像边缘特点,计算亚像素算法流程为:
(1)逐个取像素级坐标,计算左右各10个像素点的灰度值,计算这21个像素点的最大灰度值与最小灰度值的差,作为a的初值代入,像素级坐标的横坐标代入b,c以0.5代入,d以最小灰度值代入。
(2)将该像素级坐标左右的各10个像素点的灰度值进行滤波,使其符合Sigmoid函数曲线;
(3)利用Levenberg-Marquardt梯度下降法[11]求解误差函数使其最小,得到参数(a,b,c,d),根据f(x)=d+a/2,求得亚像素点位置为x=b;
(4)对得到的亚像素点进行处理,利用最小二乘法将亚像素点拟合,排除异常的亚像素点。
(5)根据式(1)以及校正索引文件,计算得到亚像素点畸变校正后的真实物理坐标。
为了计算叶片的轮廓尺寸,在采集到的图像中获得了边缘点的坐标,通过相机标定将像素坐标转换为真实物理坐标。由于叶片的轮廓特征为直线类特征,采用最小二乘原理[12],将叶片的实际轮廓进行拟合,得到一条理想的直线轮廓,通过计算另一轮廓边缘上的亚像素点到该直线的距离,即可得到工件尺寸。
一组亚像素边缘点的坐标为(xi,yi)(i=1,2,…,n),拟合的直线可表示为:
y=kx+b
(5)
式中:k为该直线的斜率;b为该直线的截距。拟合直线的目标为输入点到拟合直线的距离和最小化,即:
(6)
当式(5)对k和b求一阶偏导且为0时,函数值最小,可求得k和b。
(7)
将拟合直线转为直线的一般式:Ax+By+C=0,其中当k=-A/B,b=-C/B所求尺寸的两拟合直线垂直于x坐标轴时,直接进行坐标之间相减。否则,分别计算另一直线上点到该直线距离d。
(8)
计算时,按以下步骤进行:
(1)利用式(7)对直线进行拟合,得到初始拟合直线;
(2)对初始拟合的直线计算各点到该直线的距离平均值,根据平均值设定一个阈值T,如果点到直线的距离小于T,则保留该点;如果该点到直线的距离大于T,则将该点剔除。
(3)对得到的点运用最小二乘法拟合直线方程。
(4)根据式(8)取一拟合直线上一点计算该点到另一直线的距离,即为最终计算的尺寸。
为了验证本文提出的测量方法的有效性,搭建了如图7所示的测量系统。
图7 测量系统
利用该系统对油泵叶片进行测量试验,采用重复性精度和绝对偏差测试,由于相机的各处畸变有所区别,对同一个叶片在不同位置进行多次图像采集,分别得到叶片的长和宽尺寸。笔者对5个叶片分别采集7个位置图像进行尺寸测量,其真实尺寸由精度为0.5 μm的比较仪测得,结果如表1所示。
表1 叶片尺寸测量结果 μm
测量结果表明,叶片测量结果满足±2 μm的测量重复精度和±15 μm的绝对精度的要求。
(1)硬件误差。在采集图像过程中,由于光学元件和感光芯片的影响,使采集到的图像存在噪声,在图像处理过程中不能完全消除。
(2)软件误差。在进行相机畸变校正时,无法做到微米级的点对点校正,认为一小块区域中的畸变参数相同而导致亚像素坐标对应到物理坐标时有所偏差;同时拟合直线以及计算时都是取平均,带来一定的误差。
(3)对焦误差。由于镜头景深很小,放置叶片和标定板时,无法做到处处对焦完全一致,从而对校正和边缘点的提取带来一定误差。
设计了一套针对小型油泵叶片尺寸的视觉测量系统,针对高精度要求,采用了分区域标定校正相机畸变算法以及利用基于Sigmoid函数的亚像素边缘拟合算法。最后利用最小二乘法建立油泵叶片的边缘,计算尺寸。试验表明,所提出的叶片视觉测量系统具有较高的测量精度,其精度为±15 μm。在小型工件的尺寸测量领域具有较好的应用前景。