Research on method of liner inner diameter measurement based on machine vision
-
摘要: 衬芯是汽车制动系统中连接刹车油管与制动器的重要零部件,其内径超差会严重影响车辆刹车性能. 针对人工测量衬芯内径尺寸方法效率低、精度差、检测标准不一致等问题,提出基于机器视觉的衬芯内径尺寸测量方法. 利用双边滤波、改进的Otsu阈值法和形态学方法对衬芯内径进行预处理和定位,采用一种改进的Canny边缘检测算子提取内径轮廓点,并基于Tukey权函数实现最小二乘法拟合圆以计算内径尺寸. 试验验证该检测算法的测量误差在 ± 0.01 mm之内,测量准确率为98.9%、漏检率为0、过检率为1.1%,能够满足企业的实际测量要求.Abstract: Liner is an important component connecting brake oil pipe and brake in automobile brake system, and the oversize of inner diameter will seriously affect the brake performance of vehicles. Aiming at the problems of low efficiency, poor accuracy and inconsistent detection standards in the manual measurement of liner inner diameter, a method for measuring liner inner diameter based on machine vision was proposed. The inner diameter of liner was preprocessed and located by using bilateral filtering, improved Otsu threshold method and morphological method. An improved Canny edge detection operator was used to extract the inner diameter contour points, and the least square method was used to fit the circle based on Tukey weight function to calculate the inner diameter size. The experimental verification shows that the measurement error value of the detection algorithm is within ± 0.01 mm, the measurement accuracy is 98.9%, the missing rate is 0, and the passing rate is 1.1%, which can meet the actual measurement requirements of enterprises.
-
Key words:
- machine vision /
- image processing /
- dimension detection
-
衬芯是汽车制动系统中连接刹车油管与制动器的重要零部件[1],其制造过程包括锻造、冲孔、车削、冷挤压成型等多道工序[2]. 衬芯内径超差会严重影响车辆刹车性能并导致安全事故. 目前衬芯生产为人工检测,存在效率低、精度差、检测标准不一致等问题,检测方法亟待革新.
近年来,机器视觉在工业检测中大量运用. Xiao等[3]利用Canny边缘检测算法提取圆柱旋压件边缘轮廓,与人工测量的相对误差小于10%. Sun等[4]提出一种局部Gini指数的方法从航空发动机冷却孔工件复杂纹理中精确提取边缘信息,试验表明该方法的平均绝对误差较高. Zhu等[5]利用双目立体视觉获取大型工件表面特征点的三维坐标,实现对大型工件的非接触式测量. 刘昕宇等[6]提出一种基于相对运动原理的液位高度标定测量方法,绝对测量误差不超过0.5 mm. 莫爵贤等[7]设计一种基于机器视觉、多传感器融合的机加工零件尺寸测量系统,实现对工件的在线测量. 卢清华等[8]提出一种基于边界搜索拟合动态补偿的瓷砖测量算法,实现精确获取瓷砖对角线和边长尺寸,重复精度达到0.06 mm.
本研究基于机器视觉,以一种改进的Canny边缘检测算法实现对衬芯内径边缘的精确提取,以双边滤波代替传统的高斯滤波,在此基础上以二阶有限差分式计算图像各点梯度值,经Tukey函数的最小二乘法拟合圆得出的内径轮廓点,实现衬芯内径的高效可靠测量.
1. 检测系统组成
衬芯内径检测系统主要由工控机、Gige网卡、工业相机及镜头、光源以及旋转工作台等硬件平台组成,如图1所示. 软件系统采用Visual Studio 2019开发工具、C#编程语言和Halcon视觉算法库,实现对尺寸的实时检测,检测步骤包括图像获取、图像处理与测量、结果输出.
2. 图像处理
图像处理过程包括衬芯内径图像预处理、定位、提取、测量和一维尺寸标定,如图2所示. 先采用双边滤波降噪对图像预处理,基于改进的Otsu算法实现内径定位,通过边缘检测及圆拟合实现内径测量,最后使用一维尺寸标定将像素距离转换为实际距离.
2.1 图像预处理
双边滤波是在高斯滤波的基础上加入像素灰度值权重项,计算公式为
Gi,i=e−(gray(xi,yi)−gray(xc,yc))22σ2 (1) 式中:gray(xi,yi)为当前点灰度值;gray(xc,yc)为中心点灰度值;σ为标准差. 将灰度值权重系数和距离权重系数相乘,滤波结果为
BF=1Wq∑p∈SGs(p)Gr(p)×Ip=1Wq∑p∈Sexp(−‖p−q‖22σ2s)exp(−‖Ip−Iq‖22σ2s)×Ip (2) 式中:Wq为滤波窗口内每个像素灰度值的权重项[9]. 在边缘区域,同侧的Gr值相近,且远大于边缘另一侧的Gr值,空间距离权重Gs主导滤波效果,此时另一侧像素点的权重对滤波结果几乎没有影响,边缘得到保护[10]. 图3为采用双边滤波算法对衬芯内径图像进行预处理后的结果. 其边缘处噪声减少、细节清晰,可有效提高衬芯检测精度.
2.2 内径图像定位
由于衬芯内径图像的背景灰度值不稳定,采用直方图阈值难以准确地找出所有衬芯内径的阈值区间. 因此,本研究设计一个自适应Otsu阈值算法来分割衬芯内径.
Otsu算法是在最小二乘法基础上演化而来,计算复杂度不高,且算法较稳定[11]. 图4为衬芯内径直方图. 可以看出,由于衬芯内径阈值区域与背景阈值接近且像素点相对背景较少,其直方图有一较大波峰,单独采用Otsu算法会使图像分割失败. 因此在算法前引入非线性灰度指数变换[12]予以改进. 采用Halcon软件中pow_image (Image, PowImage,γ)算子,选择图像中合适的灰度范围进行变换,缩小其他灰度范围,使图像直方图的波峰和波谷比较明显,其变换式为
g(x,y)=a[f(x,y)+ε]γ (3) 式中:γ为灰度系数;ɑ为缩放系数;
$\varepsilon $ 为补偿系数.γ<1时,将确定好的低灰度值映射到较窄的低灰度值中;γ>1时,将确定好的高灰度值映射于宽度较小的小灰度值中;γ=1时,此时为对等变换,灰度变化如图5所示. 可以看出,γ=2时图像内部灰度值变低,接近于背景,因此将γ=2时图像作为Otsu算法的输入图像,其输出区域如图6所示. 图中区域即为衬芯内径区域.
2.3 衬芯内径图像提取
使用改进的Otsu算法对衬芯内径定位,获得二值区域图,如封闭区域. 通过膨胀运算,在该封闭区域内部填充,得到填充完整区域. 然后提取该区域对应的内径灰度图,提取过程如图7所示.
2.4 衬芯内径测量
对于衬芯内径的测量,首先在图像中寻找边缘,通过改进的Canny算子对边缘进行检测,然后将提取的边缘进行拟合,最后计算拟合后的距离.
2.4.1 边缘检测
Canny算子边缘检测方法是寻找像素灰度值梯度的局部极大值,其本质是先用一个准高斯滤波进行平滑图像,然后再用一阶微分算子计算图像中灰度的梯度值[13]. 本研究使用双边滤波取代高斯滤波平滑图像,去噪同时能保留边缘. 利用Halcon中双边滤波器bilateral_filter平滑图像后,将图像fs(x,y)的梯度使用2×2一阶有限差分式替代为
{P[i,j]≈(fs[i,j+1]−fs[i,j]+fs[i+1,j+1]−fs[i+1,j])/2Q[i,j]≈(fs[i,j]−fs[i+1,j]+fs[i,j+1]−fs[i+1,j+1])/2 (4) 通过上式计算出有限差分的均值,可在图像中的同一个点计算该点的梯度值,并对所有像素灰度梯度值进行非极大值抑制,将梯度较大的像素点提取出来作为待选边缘[14]. Canny算子使用双阈值来检测图像中的强、弱边缘,可以检测边缘并将边缘连接,其计算式为
τ2=2τ1 (5) 式中:τ2为最终边缘;τ1为追踪边缘的断线. 当梯度值大于τ2时,该点为边缘点;当梯度值小于τ1时,该点不是边缘点;当梯度值在τ1和τ2之间时,根据该点的相邻点判断是否有大于高阈值的像素来决定,最终边缘检测结果如图8所示. 改进的Canny算子在边缘检测中可以很平滑地描绘出图像边缘,且边缘线条更细,在边缘提取中将会更加精确. 将检测到的边缘进行边缘提取,获得边缘轮廓,如图9所示.
2.4.2 边缘拟合
1)圆拟合
对图9所示圆的衬芯内径,由于其边缘轮廓曲折,测量值不精确,使用基于Tukey函数的圆拟合方法对边缘轮廓进行拟合,从而有效地提高测量精度. Tukey函数使用可靠的误差统计信息来估计轮廓点距离的标准偏差,从而不会偏离圆. Tukey函数对于异常值点的判断是通过计算点的权重,其权重函数为
ω(δ)={(1−(δτ)2)2,|δ|⩽ (6) 式中:τ为削波因,为离群值的标准偏差σδ的一个小倍数[15]. 该权重函数忽略了大于τ的点,对于小于等于τ的点,权重值在1到0之间. 标准偏差的计算公式为
{\sigma _\delta } = \frac{{{\rm{median}}\left| {{\delta _i}} \right|}}{{0.674\;5}} (7) 对于衬芯内壁的圆拟合同样也可使用Tukey函数去除异常值,对离散值加权,使用最小二乘法拟合,拟合方程为
{x^2} + {y^2} + ax + by + c = 0 (8) 式(8)需要通过离散值点确定a、b、c值,即通过加权的离散点可以得出a、b、c值为
\left\{\begin{aligned} & C = \left(N{\Sigma} {X_i^2 - \Sigma {{X_i}\Sigma {{X_i}} } } \right)\\& D = \left(N\Sigma {{X_i}{Y_i} - \Sigma {{X_i}\Sigma {{Y_i}} } } \right)\\& E = N\Sigma {X_i^3 + N} \Sigma {{X_i}Y_i^2 - \Sigma {\left(X_i^2 + Y_i^2\right)\Sigma {{X_i}} } } \\& G = \left(N\Sigma {Y_i^2 - \Sigma {{Y_i}\Sigma {{Y_i}} } } \right)\\& H = N\Sigma {X_i^2{Y_i}} + N\Sigma {Y_i^3} - \Sigma {\left(X_i^2 + Y_i^2\right)} \Sigma {{Y_i}} \\& a = \frac{{HD - EG}}{{CG - {D^2}}}\\& b = \frac{{HC - ED}}{{{D^2} - GC}}\\& c = - \frac{{ \Sigma {\left(X_i^2 + Y_i^2\right)} + a \Sigma {{X_i}} + b \Sigma {{Y_i}} }}{N} \end{aligned}\right. (9) 通过上式计算出a、b、c值确定拟合圆的表达式,得出圆直径D,即衬芯内壁直径. 图10为通过上述方法得出的衬芯的拟合圆结果.
2.5 一维测量尺寸标定
本研究是在一维平面内对衬芯内径进行测量,测量所得出的结果的单位均为像素单位. 根据获取图像的最小实际视野为30×30,选用20×20的光学玻璃标定板,如图11所示. 对相机进行尺寸标定,标定板参数见表1.
表 1 标定板的参数Table 1. Parameters of calibration board规格/(mm×mm) 类型 阵列 圆心间距/mm 精度/mm 圆大小/mm 20×20 实心圆点 7×7 2.5 0.001 Ф1.25 标定系数K计算公式为
K = \frac{L}{P} (10) 式中:L为标定板的实际边长,mm;P为标定板对应L的成像像素点数,pixel.
衬芯内径处于图像中间位置,可忽略图像畸变,在测量距离相等情况下,其与标定板的标定系数相等,由此可得
{L_1} = \frac{{L{P_1}}}{P} (11) 式中:L1为衬芯内径的实际尺寸;P1为衬芯内径的像素距离. 根据表1,L为20 mm,P为1667像素点数,从而获得的K值为0.012 mm/pixel. 因此实际衬芯内径计算式为
{L_1} = 0.012\;{P_1} (12) 3. 衬芯内径试验测试分析
3.1 测量输出界面设计
图12为测量输出界面,采用Visual Studio 2019集成开发工具的C#语言设计. 实际检测时,首先点击获取图像,并由相机采集显示在界面上,然后点击测量按钮,并在界面右下角显示内径测量尺寸与判断结果. 为实现全自动化,实际检测过程中无需人工参与,可自动获取图像与尺寸测量.
3.2 测量算法的误差
为验证本研究提出的测量算法误差及效果,将其与目前的Roberts算子结合最小二乘法的测量算法(简称Roberts算法)进行对比试验检测.
试验准备50个衬芯,先使用投影仪测量这些衬芯内径并记录作为实际值,然后分别用本研究提出的算法和Roberts算法对衬芯内径进行测量,结果如图13所示. 可以看出,本研究提出的算法的测量值更接近真实值. 图14为两种算法与真实值间的误差比较. 由图可见,改进的Canny算法测量误差在 ± 0.01 mm之间,而Roberts算法测量误差在 ± 0.05 mm之间.
3.3 测量算法检测试验
衬芯内径测量合格的判断标准为Ф2.50 ± 0.20 mm. 试验分3组,每组测量500个衬芯内径,分别使用本研究提出的改进Canny算法和Roberts算法进行试验,试验数据见表2.
表 2 改进Canny和Roberts算法测量结果比较Table 2. Comparison of measurement results of improved Canny and Roberts algorithms批次 检测数量 不合格数 漏检数 过检数 漏检率/% 过检率/% 准确率/% 检测时间/s Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro 1 500 25 51 0 22 6 35 0 4.4 1.2 7.0 98.8 88.6 0.226 0.155 2 500 12 47 0 30 4 24 0 6.0 0.8 4.8 99.2 89.2 0.202 0.189 3 500 17 62 0 21 7 20 0 4.2 1.4 4.0 98.6 91.8 0.241 0.175 总计 1500 54 160 0 63 17 79 0 4.2 1.1 5.3 98.9 90.5 0.223 0.173 注:Ca为改进Canny算法;Ro为Roberts算法. 对比表中试验数据可以看到,改进Canny算法在测量衬芯内径的试验中没有漏检率,且准确率较Roberts算法高. 综上所述,采用改进Canny算子进行边缘检测识别更为精确,结合基于Tukey函数的最小二乘法进行拟合圆使得计算精度更高.
4. 结 语
基于机器视觉与图像处理技术,搭建衬芯内径检测系统,在获取清晰的内径图像后,针对衬芯内径图像噪声使边缘模糊的问题,使用双边滤波有效地减小图像边缘处的噪声,并且保留了边缘细节. 此外,提出一种改进的Otsu方法对衬芯内径进行准确定位,使用改进的Canny算法结合基于Tukey函数的最小二乘法拟合圆完成对衬芯内径的检测,测量误差值为 ± 0.01mm. 最后,通过试验验证衬芯内径图像视觉检测算法的准确率、漏检率、过检率和检测时间. 目前,基于该机器视觉检测方法的全自动衬芯检测设备已成功在上海某汽车零部件制造企业投入生产运行,极大提升了经济效益.
-
表 1 标定板的参数
Table 1. Parameters of calibration board
规格/(mm×mm) 类型 阵列 圆心间距/mm 精度/mm 圆大小/mm 20×20 实心圆点 7×7 2.5 0.001 Ф1.25 表 2 改进Canny和Roberts算法测量结果比较
Table 2. Comparison of measurement results of improved Canny and Roberts algorithms
批次 检测数量 不合格数 漏检数 过检数 漏检率/% 过检率/% 准确率/% 检测时间/s Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro Ca Ro 1 500 25 51 0 22 6 35 0 4.4 1.2 7.0 98.8 88.6 0.226 0.155 2 500 12 47 0 30 4 24 0 6.0 0.8 4.8 99.2 89.2 0.202 0.189 3 500 17 62 0 21 7 20 0 4.2 1.4 4.0 98.6 91.8 0.241 0.175 总计 1500 54 160 0 63 17 79 0 4.2 1.1 5.3 98.9 90.5 0.223 0.173 注:Ca为改进Canny算法;Ro为Roberts算法. -
[1] 左东祥, 陈晓荣. 基于Halcon的刹车片尺寸和表面缺陷检测系统[J] . 电子科技,2016,29(11):78 − 80. [2] 徐志玲, 胡琳丽, 陈杨, 等. 基于尺寸公差和图像处理的刹车尺寸检测[J] . 仪器仪表学报,2017,38(9):2317 − 2325. [3] XIAO G F, LI Y T, XIA Q X, et al. Research on the on-line dimensional accuracy measurement method of cylindrical spun parts based on machine vision technology[J] . Measurement,2019,148:10688. [4] SUN W F, YI J Y, MA G. A vision-based method for dimensional in situ measurement of cooling holes in aero-engines during laser beam drilling process[J] . International Journal of Advanced Manufacturing Technology,2022,119:3265 − 3277. doi: 10.1007/s00170-021-08463-8 [5] ZHU S P, GAO Y. Noncontact 3-D coordinate measurement of cross-cutting feature points on the surface of a large-scale workpiece based on the machine vision method[J] . IEEE Transactions on Instrumentation and Measurement,2010,59(7):1874 − 1887. doi: 10.1109/TIM.2009.2030875 [6] 刘昕宇, 王雪梅, 倪文波. 基于机器视觉的连通管液位测量方法研究[J] . 电子测量技术,2021,44(16):116 − 122. [7] 莫爵贤, 王宇, 吴智恒, 等. 一种基于机器视觉的机加工件尺寸测量系统设计[J] . 机电技术,2018(3):25 − 27. [8] 卢清华, 许重川, 王华, 等. 基于机器视觉的大幅面陶瓷地砖尺寸测量研究[J] . 光学学报,2013,33(3):172 − 178. [9] 王晓杰, 莫绪涛, 陶新宇, 等. 基于机器视觉的低对比度物体尺寸测量研究[J] . 光学技术,2022,48(1):27 − 33. [10] 程敏杰, 王建文. 利用机器视觉的直齿轮在线测量方法研究[J] . 机械设计,2020,37(3):19 − 22. [11] CANNY J. A computational approach to edge detection[J] . IEEE Transactions on Pattern Analysis & Machine Intelligence,1986,8(6):184 − 203. [12] 王蒙. 基于机器视觉的微小零件检测分类[D]. 汉中: 陕西理工大学, 2020. [13] 唐松, 杨其华, 刘刚海. 基于Halcon的阀芯尺寸亚像素级测量[J] . 计算机工程与应用,2017,53(3):237 − 241. [14] 龚渠, 张伟, 李丽. 基于Halcon的拨叉脚端面尺寸测量[J] . 工具技术,2020,54(9):86 − 89. doi: 10.3969/j.issn.1000-7008.2020.09.021 [15] 邓斌攸, 潘云峰, 池志强, 等. 基于机器视觉的家具板件尺寸在线测量系统[J] . 木材科学与技术,2021,3(35):63 − 67. doi: 10.12326/j.2096-9694.2020080 期刊类型引用(0)
其他类型引用(1)
-