郭志明,李杰,李爽,刘敏,刘永鑫
1.内燃机可靠性国家重点实验室,山东 潍坊 261061; 2.潍柴动力股份有限公司,山东 潍坊 261061
铸件在发动机制造中必不可少,发动机零部件中,铸件占比为30%~40%,铸件产品质量直接影响发动机产品的性能和质量。铸件制造过程中存在许多不可控因素,铸造缺陷很难避免。目前检测铸件表面缺陷仍然以人工检查为主。由于铸件产量大、表面缺陷细微,人工检测存在质量差、效率低、成本高等缺点。
随着计算机和通信技术的快速发展,机器视觉技术取得了巨大进步,特别是机器学习算法与数字图像处理技术的结合,对于解决基于视觉的复杂检测技术提供了有力的帮助。因此,利用机器视觉技术代替人工检测铸件表面缺陷具有可行性、实用性和高效性。
铸造缺陷很难避免且种类繁多,最常见的缺陷有气孔、缩孔、裂纹等,如图1所示。
气孔是金属液体在浇注过程中产生的气体未能及时逸出而形成的孔洞。气孔缺陷通常为球形,内壁比较光滑,呈明亮或轻微氧化色,如图1a)所示。气孔周围易产生应力集中问题,降低铸件的抗疲劳性[1]。
缩孔是由于铸件结构设计不合理,或液态金属化学成分不符合要求,或浇注温度过高,在液体凝固期间收缩形成的。缩孔形状不规则、内壁比较粗糙、晶粒粗大[2],如图1b)所示。
铸件裂纹通常分为2种:冷裂纹和热裂纹。热裂纹是在凝固邻近固相线时形成的,此时大部分合金已经凝固,在结晶构架间尚存少量液体,合金强度较低,在收缩应力作用下,铸件会发生开裂;冷裂纹是铸件凝固冷却到弹性状态时,局部应力超出了合金的强度极限而产生的。热裂纹一般沿晶粒边缘产生和发展的,裂口表面呈氧化色,裂口通常为不规则曲线;冷裂纹一般为比较连续且光滑的曲线或直线,冷裂纹如图1c)所示。
a)气孔 b) 缩孔 c) 裂纹
铸件气孔、缩孔和裂纹等缺陷在形态特征上存在明显不同:气孔缺陷主要为球形,缩孔形状不规则,裂纹的形态为长条状。本文中主要依据铸件缺陷的形态特征检测和识别缺陷。
图像采集易受到电磁场、光线等诸多因素的干扰,因此图像中不可避免地产生各种噪声。在数字图像处理中,常用的降噪方法有中值滤波、均值滤波和低通频域滤波等。
中值滤波是基于数理统计理论的一种非线性平滑技术,它将每个像素点的灰度设置为该点的邻域窗口内的所有像素点灰度的中值[3-4]。经过中值滤波处理后得到中心像素的灰度
g(x,y)=Med{f(m,n)},(m,n∈S),
式中:f(m,n)是像素点(m,n)的灰度;x,y为像素点坐标,x,y= 0, 1, 2, …,N-1;S为(x,y)点邻域中像素点坐标的集合,一般采用3×3或5×5的窗格在图像中做滑动。
中值滤波算法能有效抑制脉冲噪声,算法执行效率高。中值滤波前、后铸件表面缺陷图像如图2所示。
a)椒盐噪声图像 b)中值滤波后图像
铸件缺陷图像分割就是把铸件表面缺陷部分从采集到的图像中检测和分割出来,它是由图像处理到图像分析的重要部分。常用的图像分割方法有阈值分割法、区域分割法、边缘分割法等。
2.2.1 阈值分割法
灰度阈值分割法是常用的图像分割技术之一,是利用阈值将图像二值化后实现图像分割。其数学表达式为[5]:
式中:f(i,j)为点(i,j)的原始像素灰度;T为阈值;g(i,j)=1为图像的前景数据,g(i,j)=0为图像的背景数据。
确定合适的阈值是阈值分割算法的关键,只有合适的阈值才能把铸件缺陷准确检测、分割出来。阈值处理技术有全局阈值、自适应阈值、最佳阈值等[6-8]。由于阈值分割法运算比较简单、执行效率高、响应快,因此特别适用于运算响应速度要求较高的简单场合。
2.2.2 区域生长分割法
区域生长法的原理是将具有相似特性的像素点集合而构成区域。在需要分割的区域中寻找一个种子像素点作为起点,将种子像素点周围邻域中与种子像素有相同或相似性质的像素合并到种子像素所在的区域中[9],将这些新像素当作新的种子像素重复上面的过程,直到再没有满足条件的像素可被包括进来。
区域生长法计算简单,适合分割均匀的小结构。但对噪声比较敏感,可能出现分割空洞或过分割。
2.2.3 边缘分割法
边缘分割法也是图像分割的常用方法之一。图像中边缘像素的灰度变化通常是不连续的,可以通过求导对其检测。阶跃性边缘对应一阶导数的极值点或二阶导数的过零点,因此常用微分算子对其进行边缘检测[10]。常用的微分算子有Sobel算子、Prewitt算子和LoG算子等,如图3所示。
图3 常用的边缘检测微分算子
铸件表面缺陷检测系统硬件包括HP工作站、Basler相机、镜头及相应附件等。采用Pycharm、Python3.7、OpenCV4.4开展软件功能及算法研究,并在生产环境中进行测试和应用。
铸件表面缺陷检测系统包括铸件图像采集子系统、缺陷分析子系统和缺陷响应子系统。铸件图像采集子系统主要通过生产现场的相机采集铸件表面图像信息,并将采集到的信息传送到工控机;铸件表面缺陷数据分析子系统主要采用机器视觉算法对铸件表面缺陷进行分割和检测;铸件缺陷响应子系统根据数据分析层的分析结果,对异常数据进行响应,包括铸件表面缺陷数据的存储、显示以及声光报警等。
3.2.1 检测设备及系统布置
检测设备及机器视觉系统布置如图4所示。将龙门机架安置于辊道两侧,根据待检测工件表面的高度及检测范围调整相机的安装高度。相机像素为500万、景深为20 mm,相机距铸件加工表面的高度为960 mm,采用2条平行于相机上方的条形光源进行补光。
图4 铸件表面缺陷检测系统结构
检测时,铸件由辊道输送到检测位置,机器视觉检测系统采集铸件表面图像,并传送到工控机,工控机通过机器视觉算法进行分析、运算,若发现缺陷,工控机显示缺陷并报警。
3.2.2 检测系统工作流程
铸件表面缺陷检测系统的工作流程如图5所示。1)图像拍摄。硬件成像系统采集铸件缺陷数字图像。 2)图像处理。图像数据传送到土位工控机进行图像处理,包括预处理和主处理。3)输入、输出信号控制。图像数据处理后,将结果输入运动控制执行系统。4)显示处理。从运动控制执行系统输出相应信号、动作等。
图5 铸件表面缺陷检测系统工作流程
通过对功能进行模块化编程实现的软件算法,主要分为图像预处理、数字图像二值化、缺陷面积阈值选取、图像分割识别等。
相机采用硬件触发形式,对现场的铸件表面进行图像采集。由于金属表面容易受反光的影响,易产生“竖线”噪声[11],需要进行数字滤波。针对噪声的特点,本文中提出了一种改进的滑动窗口中值滤波,改进后的中值滤波模板如图6所示,图6中A5为锚点,即待计算的像素点,其灰度为滑动窗口中9个像素点灰度的中值。通过修改滑动窗口的形状,达到滤波效果。
图6 改进后的中值滤波模板
铸件缺陷的面积越大对铸件影响越大,故本文中采用面积的大小为标准判定铸件缺陷,根据生产现场实际确定面积阈值。图像二值化后进行缺陷面积统计,结合阈值判定缺陷,完成图像分割。铸件表面缺陷检测算法实测结果如图7所示。
a)原图 b)滤波 c)二值化 d)图像分割
由图7b)可知,经过改进的中值滤波法处理后,有效的降低了铸件图像的“竖线”噪声;由图7c)、d)可知,该算法成功识别铸件表面缺陷。
从生产车间调用151件带有缺陷的样本铸件进行试验,其中,气孔缺陷109处,砂眼缺陷42处。实际检测结果为:检测出102处气孔缺陷,准确率为93.6%;检测出40处砂眼缺陷,准确率为95.2%。机器视觉铸件缺陷检测系统准确性高,能很好地适应生产现场。
造成漏检的主要原因为少部分气孔、砂眼出现在靠近边缘的区域,图像分割时被算法判别为阴影或噪声点。在后续工作中,可通过改进图像采集平台减少漏检。
本文中开发了基于机器视觉的铸件表面缺陷检测方法。针对现场环境光的变化和铸件缺陷特征,改进和优化传统算法,编写了相应的应用软件。
通过实际检测验证,基于机器视觉的铸件表面缺陷检测方法对气孔、砂眼缺陷检测准确率分别为93.6%和95.2%。机器视觉铸件表面缺陷检测方法准确性高、操作方便,能很好地应用于生产现场中,提高铸件表面缺陷检测效率。