基于机器视觉的VVT发动机转子缺陷检测系统设计
2022-01-10张爱云王吉华张美娟
张爱云,王吉华,高 崴,张美娟
(1.无锡职业技术学院汽车与交通学院,江苏无锡 214121;2.中国第一汽车股份有限公司无锡油泵油嘴研究所,江苏无锡 214063)
VVT(variable valve timing,可变气门正时)发动机转子是VVT系统的重要组成部分,其通过粉末冶金工艺制造而成[1]。在制造过程中,转子凸台的外边缘易产生磕碰点和被过度打磨,以及其端面上易产生划痕、划伤等缺陷(随机出现在端面的任意位置),这均会对转子的工作性能产生影响。目前,行业内大部分工厂使用卡尺来测量转子的外径,同时采用人工目检或具备放大功能的简易视觉系统来检测转子的端面缺陷,但该方法的检测效率低且易受人为因素干扰,从而产生过判和漏判。机器视觉技术具有自动化程度高、检测精度高等优点[2],其广泛应用于在线检测和测量领域[3-4]。例如:张玉纲等[5]提出了一种高精度圆柱直径大量程在线测量系统,其重复精度可达0.4 μm,绝对测量精度在3 μm之内,在满足实际测量精度要求的同时提升了工作效率;赵萍[6]提出了一种装载视觉模块的砂轮廓形测量系统,通过将砂轮廓形复映样板作为媒介实现了对砂轮廓形的高精度测量,该系统的测量精度能够达到±5μm,可满足工业生产的实际需求。同样的,基于机器学习的缺陷分类算法也广泛应用于在线检测领域[7]。例如:常发亮等[8]提出了一种基于高斯颜色模型和SVM(support vector machine,支持向量机)的交通标志检测算法,该算法先使用高斯颜色模型对经直方图修正后的交通标志图像进行分割并进行形态学处理,再结合交通标志图像的 HOG(histogram of oriented gradient,方向梯度直方图)描述子训练SVM分类器并进行检测,结果表明,该检测算法在光照、旋转和部分遮挡等不良条件下仍有较优的稳定性和准确性,且满足实时性要求;熊惠江[9]提出了一种由平均灰度差、RGB(red green blue,红绿蓝)直方图以及均匀度组成的多维特征描述子,其先通过学习多幅合格产品图像的多维特征描述子来建立样本的特征集合,再利用相似度对比来判断待加工产品中的缺陷件。
但是,由于VVT发动机转子的凸台中心存在凹槽,传统的边缘提取算子无法准确地筛除凹槽轮廓点,同时凸台外边缘磕碰区域的不规则外形也会干扰轮廓点的提取,从而影响转子外径的测量精度。此外,转子端面上的划痕、划伤等缺陷的位置、形状和尺寸具有随机性,传统的定尺度类缺陷匹配算子无法满足检测要求。基于此,笔者拟设计一种基于机器视觉的VVT发动机转子缺陷检测系统,以解决上述问题。
1 缺陷检测系统整体方案
VVT发动机转子的外观如图1所示,其主体为圆柱形,四周有4个等间隔的凸台。在铸造成型时,转子凸台外边缘可能会存在一定的打磨偏差;在不同工位间传输时,转子凸台外边缘易产生磕碰点;在切削时,转子端面上可能会产生划痕、划伤等缺陷。上述缺陷均会对转子的实际使用产生较大的影响。
图1 VVT发动机转子的外观示意Fig.1 Schematic diagram of VVT engine rotor appearance
为同时满足VVT发动机转子的外径测量精度和端面缺陷检测准确度的要求,基于机器视觉技术设计了缺陷检测系统(如图2所示),并对系统中用于图像采集的相机和光源进行了设计选型。根据检测需求,选择分辨率为(5 120×5 120)像素的工业面阵相机,其检测视野为40 mm×40 mm,像素分辨率为0.007 mm/像素,能够满足测量精度要求;考虑到转子端面的反光可能会对缺陷检测结果造成干扰,经试验后选用碗形光源。
图2 基于机器视觉的VVT发动机转子缺陷检测系统结构示意Fig.2 Structure diagram of VVT engine rotor defect detection system based on machine vision
基于机器视觉的VVT发动机转子缺陷检测系统的工作流程(见图3)如下:
图3 基于机器视觉的VVT发动机转子缺陷检测系统的工作流程Fig.3 Work flow of VVT engine rotor defect detection system based on machine vision
步骤1 上料装置将转子运送至检测平台后,向工业计算机发送到位信号。
步骤2 工业计算机接收到上料装置发送的到位信号后,向工业面阵相机发送图像采集信号。
步骤3 工业面阵相机完成转子图像采集,并将图像数据发送至工业计算机。
步骤4 工业计算机接收到图像数据后,对图像进行处理以完成转子的外径测量和端面缺陷检测。
步骤5 工业计算机输出最终的测量和检测结果,并向下料装置发送下料信号,下料装置完成转子下料作业。
2 缺陷检测方法设计
目前,VVT发动机转子的外径通常用卡尺来测量。但是,工作人员一般只对部分区域进行测量,这样容易使外径测量结果受局部偏差的影响,从而产生测量误差。此外,转子的凸台外边缘经常出现磕碰点,如图4所示。从图4中可以看出,不同转子凸台外边缘磕碰点的大小及位置等均有差异。但是,传统的特征检测算法无法实现磕碰点的精确筛选,如:基于外形与颜色的特征检测算法会产生较高的漏检率;基于位置的特征检测算法不易检测出部分较小的磕碰点。
图4 正常和边缘磕碰的VVT发动机转子示意Fig.4 Schematic diagram of normal and outer edge bumped VVT engine rotors
VVT发动机转子端面上的划痕、划伤缺陷如图5所示。因工艺要求,转子端面上刻画了一些标识符号,如字符、圆弧和矩形等,这些符号的存在会对端面缺陷检测造成干扰,须在检测前进行筛除。但在上料过程中,由于转子的角度无法确定,不能通过简单的形状和位置特征识别来筛除这些标识符号。
图5 VVT发动机转子端面上的标识符号及缺陷示意Fig.5 Schematic diagram of identification symbols and defects on the end face of VVT engine rotor
基于上述问题,提出了一种VVT发动机转子缺陷检测方法,具体流程如图6所示。针对转子凸台外边缘的磕碰干扰,利用基于梯度特征和位置序列的磕碰点检测算法来筛选并去除磕碰点,并采用最小二乘法对筛选后的轮廓点进行圆弧拟合,以实现外径的精确测量;针对转子端面上的标识符号和划痕、划伤等缺陷,利用基于改进HOG特征的SVM分类算法来筛选并去除端面上的标识符号,以实现划痕、划伤等缺陷的有效检测。
图6 VVT发动机转子缺陷检测流程Fig.6 VVT engine rotor defect detection process
2.1 基于梯度特征和位置序列的磕碰点检测
首先,对采集的VVT发动机转子图像T(x,y)进行预处理和连通域分析;然后,按照面积大小对各联通域进行排序,其中面积最大的连通域的轮廓点集合即为转子的轮廓点集合最后,采用离散点集最小包围圆拟合算法[10]对轮廓点集合P进行拟合,得到外接圆 ⊙0(x0,y0,r0),如图 7所示。其中,x0、y0为外接圆⊙0的圆心坐标,r0为外接圆⊙0的半径。通过距离公式计算转子所有轮廓点与外接圆⊙0圆心的像素距离,保留距离大于ra的轮廓点,得到转子凸台外侧(部分)、外边缘和凹槽的轮廓点(下文简称为凸台轮廓点)集合N={N1,N2,N3,N4},如图7中加粗部分所示。
图7 VVT发动机转子凸台轮廓点筛选结果Fig.7 Screening results of contour points of VVT engine rotor boss
2.1.1 基于梯度特征和位置序列的磕碰点搜索
基于图7所示的筛选结果,分别对转子的每个凸台的轮廓点进行标注:任选曲线的一端为起始点,沿顺时针方向对每一个轮廓点进行标注,得到标注后的轮廓点集合其中,xk、yk为各轮廓点的坐标。
通过计算转子凸台轮廓点的距离D和梯度Δf来检测凸台外边缘的磕碰点,其计算式如下:
式中:t为计算梯度时轮廓点的采样间隔,其取值根据实际的检测效果进行调整。
选取转子中某个外边缘带有磕碰点的凸台的轮廓点集合(如N1),对采样间隔t进行寻优,结果表明t=10时检测效果最佳,由此得到该凸台轮廓点的距离-位置序列、梯度-位置序列曲线,如图8所示。
图8 VVT发动机转子某凸台轮廓点的距离-位置序列和梯度-位置序列曲线Fig.8 Distance-position sequence and gradient-position sequence curves of contour points of a certain VVT engine rotor boss
从图8中可以看出,转子凸台外侧、外边缘和凹槽这3个区域的轮廓点的距离D和梯度Δf随位置序列的变化呈规律变化。其中:凸台外侧的轮廓点位于位置序列的首尾两段(0%~15%和85%~100%),其距离D线性增大(首)或减小(尾),而梯度Δf几乎稳定不变;凸台外边缘的轮廓点位于位置序列的15%~30%和70%~85%两区间,其中正常轮廓点的距离D和梯度∆f均稳定不变且符合圆弧点的梯度变化,而磕碰点的距离D和梯度∆f与正常轮廓点的差异较大;凹槽的轮廓点位于位置序列的30%~70%区间,其距离D呈增大—不变—减小的变化趋势,而梯度变化较为散乱。基于此,得到转子凸台各区域的分类方法,具体如下:
式中:L0、L1、L2、R0、R1和R2分别为转子凸台各区域临界处对应位置序列的阈值;D0、D1、D2和D3分别为对应的距离阈值;Δf0、Δf1分别为对应的梯度阈值。
经过一定样本的测试优化后,最终得到上述各参数的值,为:
从结果上来看,由计算得到参数值构成的区间并没有完全囊括转子凸台外侧、外边缘和凹槽这3个区域的所有轮廓点。这是为了避免转子凸台不同区域临界部分的轮廓点对检测结果造成干扰,这些临界的轮廓点处于过渡区域,其距离和梯度易产生突变,从而导致过检。
2.1.2 基于最小二乘法的圆弧直径拟合
筛除转子凸台外边缘的磕碰点后,得到4个凸台的正常轮廓点集合。根据这些轮廓点的坐标,利用最小二乘法拟合外接圆。其中外接圆的方程为:
则式(3)可转换为:
最小二乘法的拟合准则是距离的平方和最小,构建函数K(a,b,c):
在拟合之前,先根据拉伊达准则对偏移较大的轮廓点进行剔除。然后,根据剩余轮廓点分别求解K(a,b,c)关于a、b、c的偏导,从而得到拟合圆的圆心坐标和半径。最后,将求得的半径与像素分辨率相乘,得到转子的实际半径r1。
2.2 基于改进HOG特征和SVM的端面缺陷检测
在基于面积特征分析并得到VVT发动机转子轮廓点集合P后,先对其进行图像填充,结果如图9(b)所示;然后对填充图像与原始二值图进行差减运算,得到包含缺陷的转子端面待测区域图像,如图9(c)所示。
图9 VVT发动机转子端面待测区域提取Fig.9 Extraction of area to be measured on the end face of VVT engine rotor
在进行缺陷检测之前,对转子端面待测区域中的每一个缺陷进行框选处理,得到由若干张缺陷图像组成的缺陷集合E,然后选取1个特征向量来描述缺陷集合E中的各个元素。常用的特征分为纹理特征、颜色特征和形状特征三类[11]。其中,纹理特征主要包含 LBP(local binary patterns,局部二值模式)特征[12-13]、灰度共生矩阵[14]和HOG特征[15-16]等;颜色特征主要包含颜色直方图[17]、颜色矩[18]等;形状特征主要包括长度、宽度和角度等几何尺寸。本文检测的是划痕、划伤等缺陷,其尺寸和颜色均随机变化,因此无法采用颜色特征和形状特征来进行分类。鉴于HOG特征广泛用于人体、人脸检测,其可清晰地反映检测目标的纹理特征,本文选择HOG特征对分类算法进行优化。在分类算法的选择上,考虑到实用性以及实际应用效果[19-21],本文选择SVM来进行分类[22]。
在利用SVM对图像样本进行训练和分类之前,须确保图像样本的尺寸一致,则应对图像样本进行缩放处理。但是,在缩放过程中,图像样本的长度、宽度特征发生了改变,而长度和宽度是区分缺陷的重要参数。基于此,本文对传统的HOG特征进行增维,即将其与归一化处理后的长度、宽度进行合并,再进行SVM分类器的训练与缺陷检测。
基于改进HOG特征和SVM的VVT发动机转子端面缺陷检测步骤如下:
步骤1 在生产现场按1∶1的比例收集若干张正常转子和缺陷转子的图像,并将其中的90%作为训练图像集,10%作为测试图像集。
步骤2 对训练图像集中的转子图像进行填充、差减运算和缺陷框选等处理,得到各转子图像对应的缺陷集合E。
步骤3 将缺陷集合E中每张缺陷图像统一灰度化并缩放至(128×128)像素。
步骤4 利用式(5)对缺陷集合E中每张缺陷图像的长度和宽度进行归一化处理,得到ẇ和ḣ。
式中:w和h分别为缺陷图像的原始长度和宽度。
步骤5 提取缺陷集合E中每张缺陷图像的HOG特征描述向量H0,H0=[ ]v0v1…vg。
步骤6 将归一化处理后的ẇ和ḣ合并到H0中,得到改进后的HOG特征描述向量H1,H1=
步骤7 基于得到的改进HOG特征,对SVM分类器进行训练。
步骤8 对测试图像集进行步骤2至步骤6所对应的处理,得到各测试图像的改进HOG特征,然后利用训练好的SVM分类器对其进行分类。
3 VVT发动机转子缺陷检测实验
为验证本文所设计的VVT发动机转子缺陷检测系统的测量精度和缺陷检测有效性,开展转子的外径测量实验和端面缺陷检测实验。
3.1 外径测量实验
以外径为38 mm的VVT发动机转子为测量对象,挑选20个凸台外边缘存在磕碰点的转子进行图像采集,并对所有磕碰点进行标记,用于验证本文方法的准确性。利用所设计的缺陷检测系统来检测转子凸台外边缘的磕碰点,部分结果如图10所示。分别将20个转子的凸台轮廓点按顺序进行标注,并求解各转子凸台轮廓点的平均距离和梯度,结果如图11所示。
图10 VVT发动机转子凸台外边缘磕碰点检测结果(部分)Fig.10 Detection results of bump points on the outer edge of VVT engine rotor boss(part)
图11 VVT发动机转子凸台外边缘磕碰点的平均距离和梯度Fig.11 Average distance and gradient of bump points on the outer edge of VVT engine rotor boss
从图11中可以看出,经过批量检测后得到的平均距离和梯度可以准确地将磕碰点与正常轮廓点区分开来,所有磕碰点的距离和梯度都在预先划分好的区间内。此外,对所有已标记的磕碰点的位置序列进行统计,发现位置序列属于18%~28%和73%~81%区间的磕碰点占总数的95%以上,其余磕碰点位于凸台外侧,不在检测区域内。
根据上述VVT发动机转子凸台外边缘磕碰点检测结果,基于最小二乘法拟合得到20个转子的外径。然后,使用卡尺对20个转子进行多次规范测量并求得外径平均值。对转子外径的拟合值和实测值进行做差处理并求绝对值,结果如图12所示。
图12 VVT发动机转子缺陷检测系统的外径测量绝对精度Fig.12 Absolute accuracy of outer diameter measurement of VVT engine rotor defect detection system
实验结果表明,本文算法对转子的外径测量具有较高的精度,绝对测量精度能够达到0.01 mm,满足实际测量的要求。
3.2 端面缺陷检测实验
首先,在生产现场采集正常转子的图像(2 387张)和缺陷转子的图像(2 235张),利用获取的传统HOG特征和改进HOG特征分别对SVM分类器进行训练。然后,采集100个端面上有划痕、划伤等缺陷的转子的图像作为测试样本,使用本文方法提取每个转子端面待测区域的缺陷集合,共提取到1 297个样本,其中134个为缺陷样本,1 163个为正常样本,对各样本提取传统HOG特征和改进HOG特征后,使用对应的SVM分类器进行分类,结果如图13(部分)和表 1所示。图 13中:“OK”表示正常,“NG”表示缺陷。
图13 VVT发动机转子端面缺陷检测结果(部分)Fig.13 Detection results of end face defect of VVT engine rotor(part)
表1中:缺陷总数nmax表示检测结果为缺陷的样本总数,缺陷数n0表示在缺陷总数中实际为缺陷的样本数量;正常总数Ymax表示检测结果为正常的样本总数,正常数Y0表示正常总数中实际为正常的样本数量。过检率η1和漏检率η2的计算式[23]为:
表1 基于不同方法的VVT发动机转子端面检测结果对比Table 1 Comparison of end face detection results of VVT engine rotor based on different methods
式中:Z为实际的缺陷样本数量,在本文中Z=134。
从表1的结果中可以发现,基于传统HOG特征进行分类的效果较差。对缺陷样本进行复查后发现,部分正常区域的形状呈直线形,在尺度归一化后其与划痕的HOG特征相似,因此造成了误判。而改进HOG特征添加了额外的长度和宽度参数,能够在一定程度上将二者区分开来。
4 结语
为解决VVT发动机转子缺陷人工检测方式存在的效率低、精度低的问题,基于转子外观缺陷的检测要求,开展了以下工作:
1)针对VVT发动机转子凸台外边缘存在的磕碰点,提出了一种基于梯度特征和位置序列的磕碰点检测算法,通过分析轮廓点的距离-位置序列和梯度-位置序列曲线来筛选并去除凸台外边缘上的磕碰点。
2)针对转子凸台的分布特点和形状特征,采用最小二乘法进行圆弧拟合,实现外径测量。
3)针对转子端面上的划痕、划伤等缺陷,提出了一种基于改进HOG特征的SVM分类算法,先采用连通域分析方法得到待检测的目标区域,再对每个目标区域的改进HOG特征进行提取,并用SVM进行分类,从而实现缺陷的检测。
实验结果表明,所设计的缺陷检测系统能够准确地测量VVT发动机转子的外径,对于凸台外边缘磕碰点和端面缺陷具有较高的识别率,能够满足工业生产需求。