本帖最后由 常乐的知足者 于 2016-10-10 10:42 编辑
对铝压铸件常见的缺陷形态进行分析,提出适用于铝压铸件表面缺陷的检测算法.首先,采用阈值分割与形态学相结合的方法分割出可疑区域;然后,根据基于面积、亮度均值、亮度均值差、灰度曲线分析的4个剔除原则,剔除伪缺陷的干扰.试验结果表明:文中的检测方法具有低成本、高精度、可操作性强等优点,能有效提高铝压铸件生产过程中的检测效率.
在铝压铸件生产过程中,由于种种原因,铝压铸件表面不可避免地产生气孔、裂纹、划痕等缺陷.这些缺陷严重影响产品的表面质量和物理机械性能.因此,生产过程中的缺陷检测具有十分重要的意义.目前,国内铸造生产车间多采用人工目视检测法,主要依赖于人工经验,劳动强度大且工作效率低.随着市场对压铸件质量要求的日益提高,以及企业劳动力成本的提升,依赖于人工检测的传统质量监控体系已无法适应现代生产发展的要求.在铸件的大批量生产中,基于机器视觉的实时在线无损检测成为压铸件质量检测的发展方向.国内外许多学者进行了相关研究,但针对铝压铸件表面缺陷检测的研究成果较少.由于铝压铸件形状复杂,最常见的气孔缺陷尺寸细微,难以准确分割出缺陷区域,并且在生产过程中出现的水渍、油污等易被误识为缺陷,对检测结果造成干扰.因此,本文对铝压铸件常见缺陷形态进行分析,提出适用于铝压铸件表面缺陷识别的算法.
1 检测过程
表面缺陷视觉检测流程,如图1所示.图像处理算法可分为两个步骤.1)采用较快速的算法检测到感兴趣的可疑区域,将其分割出来,保存至可疑图像缓存区.这一步骤不仅可以初步判断是否有可疑的目标,还能缩小需要后续处理的图片数据.2)对可疑图像缓存区的对象进行筛选.在铸件生产过程中出现的水渍、油污等不属于铸件缺陷,但由于其外观形貌在图像上与缺陷非常类似,易被检测系统误识为缺陷.对这些伪缺陷的处理不仅增加系统检测的负担,而且影响对严重缺陷的正确识别.因此,在判断出可疑目标的基础上,还要进一步深入研究可疑区域上是否有真实缺陷,剔除伪缺陷的干扰.
1.1 可疑区域分割
1.1.1 分割算法的选择 基于边缘检测的可疑区域分割算法和影像相减法是缺陷检测系统常用的检测算法.但这两种算法各有局限之处,并不适用于复杂形状铸件细微缺陷的检测.文中采用阈值分割和形态学相结合的方法.气孔缺陷处亮度较图片平均亮度偏暗,因此,通过阈值分割获得灰度值较低的像素点.阴影和噪声点区域的灰度值和缺陷区域相似,在分割出缺陷区域时,也分割出干扰区域.利用形态学中的膨胀技术将气孔缺陷与阴影、噪声点的特征进行区分,从而准确分割出缺陷区域.
1.1.2 阈值分割检测黑点 有气孔缺陷的汽车启动机盖图像,如图2所示.为了提高检测结果的精确性,在 RGB模型下选取一定阈值,将低于此阈值的赋值为1,其余赋值为0.RGB模型下检测黑点结果,如图3所示.由图3可知:受成像过程中出现的阴影及噪声点的影响,检测出缺陷区域的同时,也出现了大量的干扰区域.因此,需要通过后续途径去除干扰,准确分离出缺陷区域.
1.1.3 形态学图像处理 在图像获取过程中,由于相机噪声、光照不均、被测物表面细小灰尘等因素影响,获得的图像会产生一些噪声点,对正确识别出可疑区域造成干扰.将数学形态学中的灰度膨胀应用于缺陷检测算法中,可有效地去除噪声点的干扰.
数学形态学是用具有一定形态的结构元素提取和度量图像中的对应形状,以达到分析识别图像的目的.因其具有天然并行结构实现的优点,可实现处理算法和形态学的并行,进而快速提高图像分析和处理速度.数学形态学的基本运算有腐蚀、膨胀、开启、闭合等4种.
若输入图像为f(x,y),结构元素为B(i,j),则形态学膨胀定义为
(fΘB)(x,y)= min{f(x+i,y+i)-B(i,j)|(x+i,y+i)∈ Df,(i,j)∈ DB}.(1)式(1)中:Df为图像大小;DB为结构元素大小
结构元素的选取除了考虑形状的相似性及尺寸的覆盖性外,还应考虑到腐蚀的结果是否能突显出目标区域.因后续的检测方法基于连通区域的几何特征,故结构元素像素大小的选取尤为重要.若结构元素过小,则无法区分目标区域与噪声点;若结构元素过大,则目标区域与背景区域融合为同一个连通区域.经过多次实验效果比对,最终选用15个像素的方块结构元素对图像进行膨胀处理.
1.1.4 连通区域面积计算 标记连通区域,提出的算法,按列对图像进行扫描编码,每一个非零像素团记为一个run,并赋予其初始标签.记录所有run的起始行、结束行及所在列.若某一个run的相邻列存在与之在行上交叠的run,则判定两者属于同一个连通域,赋予相同标签.若某一列的第k个run与相邻前一列的n个run(n>1)都存在行上的交叠,则判定以上n+1个run都是属于同一个连通区域.
完成所有连通区域标记后,计算每个标签对应的连通区域面积,保留面积值在阈值范围内的连通块,删除其余连通块,得到缺陷掩模图像,如图4所示.将掩模图像与图2相乘,成功分割出缺陷区域,如图5所示.
通过试验验证,该算法能检测到直径为0.1mm 的气孔缺陷,平均每幅1 280px×960px的图像处理时间为0.061s,可获得准确的缺陷焦点位置,完整保存缺陷形状,以利于后续分析.
1.2 伪缺陷剔除
对从原图分割出来的可疑区域样本进行研究,可以发现:真缺陷区域大小在一定范围内,且较周围存在一定范围的亮度差,区域内部的灰度变化较均匀.
分别对气孔和油污样本的区域中心提取行灰度曲线,如图6所示.图6中:g 为灰度;s为位置.由图6可知:气孔区域中心行灰度曲线存在一个很明显的谷底,而油污的区域中心行灰度曲线则存在大量的尖峰抖动.铝压铸件气孔为一个凹坑区域,其表面的反射光线由于方向的改变,无法进入相机,在成像效果上呈现暗区域效果,相对周围像素点的灰度值有明显变化,区域内部处于一个一定范围的灰度渐变区,理论上沿任何方向扫描,其灰度曲线都能存在一个明显的山峰区域;而油污伪缺陷区域表面其实是平整的,并不存在反射光线方向的改变,其成像效果上的暗区域是由油污本身的物质结构所决定.在生产过程中,油污很少处处均匀地附着在铝压铸件表面,其区域内部的灰度值并不是有规律地均匀渐变,故提取行灰度曲线会发现存在多处尖峰抖动.
针对铝压铸件生产过程中容易出现的油污、水渍等伪缺陷,提出以下4个剔除原则.1)计算可疑区域面积,剔除在阈值范围外的区域.2)计算可疑区域亮度均值,剔除在阈值范围外的区域.3)计算可疑区域与周围背景的均值亮度差,剔除差值在阈值范围外的区域.4)用数学的方法分析气孔区域和油污区域中心行灰度曲线波形差异,计算能够表征此差异的特征值,剔除特征值在阈值范围外的区域.
图6 真伪缺陷的中心行灰度曲线
Fig. 6 Center line gray curve of true and false defect
原则4)的波形分析具体有以下5个步骤.
步骤1 对可疑区域提取中心行灰度曲线,如图7所示.
步骤2 提取灰度曲线所有极大、极小值点.将得到的行灰度曲线离散化,得到曲线的各个点为(x1,y1),(x2,y2),…,(xn,yn).其中:n>1;x,y 分别为各点的像素位置及像素值.记曲线点集为C,有
式(2)中:yi为C 集合中第i 个点的像素值.当 m>0时,所对应的点(xi,yi)为极值点,将其储存入极值点集合 M 中.
步骤3 最小二乘法拟合曲线.假设集合 M 中有m 个点,记为(ti,yi),j=1,2,…,m.通过这些数据寻找一个 m 次近似多项式,有
式(3)中:φk(t)=tk,k=0,1,…,m.求系数a0,a1,…,am,使误差的偏差平方和
最小,则 P(t)称为最小二乘拟合多项式,或称为t,r的经验公式.可用多元函数极值的方法求其最小点和最小值,得驻点方程为
即
利用内积的定义式,式(6)可写为
式(7)称为正规方程组,通过这个正规方程组解出ak的值,代入多项式 P(t)中,即可得到拟合的曲线方程.图8(a),(b)分别为图7(c),(d)的拟合结果.
步骤4 计算拟合曲线的最大曲率值为
根据式(8)计算拟合曲线上每一点的曲率,取最大值作为该样本图片的特征值.
步骤5 选取曲率阈值.真伪缺陷区域的特征曲率有着较为明显的区别,如图9所示.图9中:k为曲率;n 为样本编号.将特征值在曲率阈值以下的图片判定为伪缺陷图片,从缓存区域删除.
2 试验分析
为了验证铝压铸件缺陷检测方法的有效性,从生产车间现场采集137幅含有若干真伪缺陷的样本图像进行试验.其中,气孔缺陷区域109处,油污42处,水渍4处.具体检测结果,如表1所示.表1中:n为实际数目;n1为检出数;η1为检出率;n2为误检个数;η2为误检率.由表1可知:有102处气孔缺陷被成功检测,有4处油污被误识为缺陷,检出率和误检率分别为 93.5%,9.5%.造成漏检的原因是少部分气孔缺陷出现在很靠近边缘的区域,在区域分割时被算法判别为阴影或噪声点.在后续工作中,可通过改进图像采集平台对算法进行辅助.
气孔是铝压铸件铸造过程中最常见的缺陷,其尺寸通常在毫米以下级别.采用阈值分割和形态学相结合的方法能准确分割出气孔区域,适用于在灰度不均匀,且存在噪声干扰的图像中分割出小目标区域的情况.对于油污水渍这类伪缺陷,再通过增加4个筛选原则从可疑区域中剔除干扰,从而检测出真正的缺陷.相比于传统人工检测方法,文中的检测方法具有低成本、高精度、可操作性强等优点,能有效提高铝压铸件生产过程中的检测效率.
|