触发式弹簧表面缺陷多角度光源补偿检测系统
2021-04-22吴定祥唐立军
樊 伟,吴定祥,唐立军+
(1.长沙理工大学 物理与电子科学学院,湖南 长沙 410114;2.长沙理工大学 近地空间电磁环境监测与建模湖南省普通高校重点实验室,湖南 长沙 410114;3.长沙亿旭智能科技有限公司,湖南 长沙 410000)
0 引 言
小型触发式弹簧由弹簧钢绕制而成,是一些机械装备的重要配件,主要起到提供恒定或可调的压紧力/支撑力、存储能量、缓冲减震等作用,其磨损、裂纹、划痕等表面缺陷[1]对触发式弹簧的力学性能有严重影响,甚至影响设备整体性能和使用寿命[2]。
然而,由于弹簧钢的弧形表面结构和自身材质具有极强的反光特性,尤其是弹簧的螺旋状立体结构,不仅增强了弹簧表面的反光特性,还遮挡自身细节部分,给缺陷检测带来了极大的难度。对触发式弹簧,常用的缺陷检测方法如磁粉检测、渗透检测、涡流检测、超声波检测[3]等,存在检测流程复杂、效率低、检测材料受限、结构复杂误差大等问题[4],难以实现检测目的。机器视觉检测的方式[5-8],对光源的依赖性大,但由于弹簧的反光特性,导致无法完全采集到弹簧表面缺陷部分的影像,造成缺陷检测不完整甚至无法检测到缺陷。为了提高触发式弹簧表面缺陷的检测精度和检测效率,探索一种多角度光源补偿的机器视觉检测方法,研究一种快速聚类弹簧表面缺陷检测算法,设计协同控制的多光源影像采集处理平台,实现实时有效的弹簧表面缺陷检测。
1 检测原理
1.1 多角度光源补偿原理
多角度光源补偿是指通过分批多分角度打光的方式实现影像采集,通过改变光源的照射角度,根据其表面反光程度的不同,采集不同程度影像,有效避免触发式弹簧表面缺陷无法完整采集的问题。若在固定的光源角度下采集弹簧表面的缺陷部分,因其材料本身的反光性及螺旋结构造成的阴影,弹簧钢的弧形表面以及缺陷部分凹凸不平,会导致光源产生的光线到达弹簧表面后,向4周折射及衍射,这时,部分表面缺陷将会被光线掩盖,从而无法采集到含有全部表面缺陷的弹簧影像,更无法进行后续的缺陷算法检测。本设计光源结构如图1所示,图1中①、②、③、④、⑤、⑥为6块可控光源。每块光源板的位置关系为互为30°,以半圆形的方式,环绕在采集平台的周围。在每次触发光源时,同步触发相机对触发式弹簧进行影像采集。在弹簧处于某一固定位置下,系统每次触发光源都选用多组光源交替打光的方式,多次触发后,可采集弹簧表面不同程度的缺陷影像,将采集影像中缺陷部分识别、提取并融合,得到触发式弹簧表面的缺陷部分。同时,多组光源交替打光的方式也可避免单一光源因打光角度过偏,而导致其它区域光照不足形成伪缺陷的问题。
图1 光源结构
1.2 触发式弹簧表面缺陷检测算法
缺陷检测算法是在影像采集平台的基础上,实现每张影像中触发式弹簧表面缺陷识别及提取。缺陷检测算法主要由影像预处理、缺陷检测两部分组成。
1.2.1 影像预处理
影像预处理是指缺陷识别前,对每张采集到的影像进行的算法处理,将弹簧所在区域从每张影像中提取出来。其目的在于降低背景环境对检测区域的干扰,规定影像中触发式弹簧的位置,减少后续缺陷检测算法的运算开销。
影像二值化及灰度化,在影像的预处理中,首先,需对采集的影像进行灰度化和二值化处理,采用加权平均的方式进行影像的灰度化,即将一张RGB格式的影像转化为灰度值0~255之间的灰度影像。通过不同的权值来提取YUV格式下R、G、B的分量,计算公式如式(1)所示
(1)
在灰度影像的基础上,对其进行二值化的处理,从而将识别目标与背景分离,采用阈值法的方式,即设定的阈值T对影像进行两个区域的分割,计算公式如式(2)所示
(2)
式中:f(x,y)为灰度影像的灰度值,g(x,y)为二值化后的灰度影像,T为阈值。因系统检测平台的采集背景为黑色,且光源强度稳定,则阈值的选取方式为T=1/3(255-0)。
目标获取,需求得触发式弹簧在影像中的位置信息。继影像灰度化和二值化之后,对其结果进行连通域的处理,可求得影像中待检测弹簧所在的目标区域。因触发式弹簧的结构为非标准结构,需通过求取最大连通域的最小外接矩,来获得检测区域的位置信息和尺寸参数。连通域通过对整幅影像的遍历方式完成,将一幅二值化影像,从左上角的顶点开始,对每个像素点及其周围像素点的像素值判断并进行标记。遍历整幅影像中所有的连通域后,从影中所有的连通域中选取最大连通域,并求取其最小外接矩,可获取最小外接矩4个顶点的坐标,即待检测区域的尺寸参数,求得弹簧在影像中的位置信息。
影像矫正及ROI提取,即为了满足后续影像缺陷融合算法的需求,以提高缺陷检测的准确性。由于待检测区域的位置在每张采集影像中并不处于规定的标准位置,所获取最小外接矩的长、宽并非与影像参考平面的X轴、Y轴相平行,如图2所示。
图2 检测区域位置
对待检测区域进行必要的矫正,计算公式如式(3)所示
(3)
x′=m11*x+m12*x+m13
(4)
y′=m21*x+m22*y+m23
(5)
式中:将(x,y)映射到(x′,y′),其中m11,m12,m21,m22为线性变化参数,m13,m23为平移参数。通过矫正算法获取所需要的结果,即将待检测区域以1∶1的比例,以影像左上角顶点为原点进行矫正,使待检测区域的长、宽分别与X轴、Y轴相平行。如图2所示,通过求取非标准位置Ⅰ的参数H,W,可计算得到矫正到标准位置的矫正参数
(6)
(7)
在对影像进行矫正后,以坐标(0,0)为顶点,以H,W为参数,将待检测区域从采集到的影像中提取出来,即可得到影像预处理后的结果。
1.2.2 缺陷识别
影像缺陷检测包括缺陷的识别、提取以及缺陷的融合。其目的,是识别弹簧是否含有缺陷,并将含有缺陷的弹簧表面中所包含的缺陷部分标记并提取出来。
弹簧缺陷的识别、标记及提取,是识别出弹簧影像中表面缺陷部分的像素点,并将缺陷部分从整幅影像中分割出来且不改变缺陷部分的位置信息。在影像预处理的结果中,由于触发式弹簧自身特殊结构,弹簧边缘轮廓与缺陷区域相互干扰。难以通过形态区域和位置提取的方式对弹簧的缺陷部分进行定位和提取。
因此,根据预处理后影像的自身特性。对影像预处理结果进行灰度值统计并分析,可发现含有缺陷弹簧表面的像素点,较弹簧无损表面的像素点和影像自身及影像采集环境背景部分的像素点相比,在灰度值的分布上具有明显的差异。因此,可通过聚类的方式,将影像预处理结果中的每个像素点的灰度值作为样本,进行聚类。根据样本的内在相似性,以迭代的方式将所有的像素点归类并标记,划分出多个簇类,通过簇类中心,识别出缺陷部分像素点所在的簇,并提取出来。
(8)
(9)
式(10)中,μy为簇y的中心,ny为簇y的样本总数。对所有的簇y=1,…,c进行计算
(10)
可得关于μ1,μ2,…,μy的凸函数,求其驻点,即最终得到的簇类中心,并将样本逐个分配到距离其最近的聚类中,并重复这个过程
(11)
在式(11)中,随着样本数的增加,其优化过程的时间呈指数级增长,为了加快聚类速度,实现快速聚类,在样本初始聚类中心的选定上,可随机选择一样本为聚类中心,进行迭代,可根据式(12)寻得下一个聚类中心,再次进行迭代,依次进行,直到寻找到设定K个簇的K个聚类中心后,进行整体迭代,调整K个聚类中心,直到再次迭代聚类中心不再变化时停止迭代,即最优解
(12)
对每张预处理后的影像进行快速聚类,可将影像标记为K个簇类,根据每个簇类中心的像素点的大小对簇类进行排序,选择缺陷部分代表的簇类,对该簇类内的像素点进行标记,同时统计该簇类内像素点的数量,通过像素点的数量来判断弹簧表面是否含有缺陷。将代表触发式弹簧表面缺陷部分簇类内所有的像素点进行提取,同时提取每个像素点对应的X轴和Y轴,即得到影像中弹簧表面的缺陷部分,并保留了弹簧缺陷部分的位置信息。
簇类K值的选取,K值为对预处理后影像进行聚类类别的个数。K值的选取基于触发式弹簧本身具有的亮度特性,主要包含以下几个方面:由于触发式弹簧自身呈螺旋上升状结构,在光照条件下,在触发式弹簧弹簧钢的拐角处,弹簧自身靠近光源的弹簧钢会对后面的弹簧钢进行遮挡,导致光源无法充分的照射到弹簧内部拐角处的弹簧钢的表面,产生较为明显的亮度变化;触发式弹簧的弹簧钢为圆柱形结构,光源的光线在照射到弹簧的边缘部分时,触发式弹簧表面的边缘部分的亮度会产生由亮到暗的变化。越靠近边缘部分,亮度越低;触发式弹簧在不受力的情况下,弹簧各个圈之间有固定的间距,在触发式弹簧的影像采集系统中,采集区域的背景部分为黑色吸光材料,因此弹簧各圈的间距部分的亮度极低且较为固定;在靠近的光源的触发式弹簧部分,其表面完整无损部分的亮度极高且较为固定;而在触发式弹簧表面的缺陷部分,缺陷部分呈现凹痕、凹凸不平的表面现象,光线经过缺陷部分时则会产生折射、反射现象,导致弹簧表面缺陷部分的亮度分布不均匀,相比于弹簧表面完整无损部分的亮度,缺陷部分呈整体较暗的现象。通过对触发式弹簧影像的采集,不同光源条件下,不同的弹簧表面下,所采集到弹簧影像的灰度值分布代表触发式弹簧表面不同的部分。因此,在对预处理后弹簧采集影像的像素点进行聚类,簇类K值的选择则根据弹簧自身不同亮度设为5类。
缺陷融合,是指将多张影像所提取的缺陷部分融合叠加,最终得到触发式弹簧完整的缺陷。弹簧影像经过预处理和缺陷检测算法后,可获取触发式弹簧表面缺陷部分的影像。但由于弹簧表面缺陷部分像素点的灰度值和弹簧部分边缘轮廓的像素点的灰度值很相近,因此,所获取的缺陷部分包含弹簧部分的像素点,在影像预处理的结果中,通过Canny边缘检测对弹簧的轮廓部分进行提取,并删除弹簧缺陷部分影像内所包含边缘部分的像素点。如式(13)所示
M(A)xorM(B)(xA=xB,yA=yB)
(13)
式中:M(A),M(B)分别为将两张图片的像素集,x,y分别表示像素点的X轴,Y轴。经过同样算法处理,在同一位置,不同光源角度下的弹簧影像进行叠加可实现弹簧表面缺陷部分的完整识别。由于影像在预处理中,含有弹簧位置矫正的算法。因此每张影像经过预处理和缺陷检测算法后,所提取到的缺陷部分的位置相对于影像中弹簧的相对位置是不变的,可直接通过影像中的或操作实现多张图片的叠加。如式(14)所示
M(A)|M(B)(xA=xB,yA=yB)
(14)
2 系统组成及实现
2.1 系统组成
触发式弹簧检测系统整体结构如图3所示,主要分为3个部分:光源控制系统、弹簧转动系统及影像采集处理平台。
图3 检测系统结构框架
影像采集处理平台的主要实现影像的采集及处理,并将处理结果在显示器界面上的显示。平台主要围绕四核ARM EXYNOS 4412设计搭建,影像采集部分的传感器选用CMOS类型数字影像传感器OV5640,像素为500万,通过MIPI接口与EXYNOS 4412进行通信。采用光电触发器产生采集起始信号,当完成触发式弹簧在某一位置下影像采集后,影像采集处理平台通过RS232与弹簧转动系统进行通信,控制滚轴带动弹簧发生位置偏移,进行下一位置的影像采集。
光源控制系统由光源驱动板和6块光源板构成,光源选用平行光源,结构如图1所示。光源驱动板由单核微处理器的控制,电路结构采用电压电流双闭环的反馈回路,实现6路光源驱动输出电路的调压恒流。光源控制系统通过调节6路PWM的占空比来实现每路光源的亮灭可控,亮度可调。由于小型触发式弹簧为圆柱形结构,在固定位置下的摄像头只能采集弹簧的正面部分,通过设计弹簧转动系统实现弹簧自身旋转,改变当前位置的目的。弹簧转动系统由电机驱动板、滚轴、42步型步进电机组成,电机带动两个滚轴经同步同方向转动,继而带动触发式弹簧转动。实现弹簧进行任意角度的旋转,从而采集到弹簧的整体表面。
2.2 系统功能实现
整个系统以四核ARM 4412为核心,多个ARM的协同控制。搭载Linux内核及ext2文件系统,将COMS摄像头OV5640的驱动挂载在I2C总线上,并配置其以视频流的方式进行采集,传输速率为30帧/s。系统监控界面及输出结果在应用层通过QT设计,并加载检测算法实现缺陷检测。
出于系统稳定性和快速响应能力,光源控制系统、影像采集处理系统以及弹簧转动系统都单独围绕一块CPU进行设计。系统的整体流程如图4所示,在光源控制系统中,微处理器输出4组不同频率和占空比的6路PWM,可得到4组不同角度的多角度复合光源,4组复合光源的组成顺序分别如图1所示结构中的:②④→③⑤→①③⑤→②④⑥,根据多角度复合光源的打光顺序依次进行4次影像采集。获取弹簧在同一位置下的一组弹簧的采集影像。然后,依靠滚轴带动弹簧转动,改变弹簧当前位置,再次进行下一组弹簧影像的采集,最终采集到触发式弹簧正反面的全部影像。
图4 系统处理流程
对采集到的每组弹簧影像依次进行算法处理,其过程如图5所示。以一组弹簧影像为例,依次对一组内的4张影像进行预处理,得到弹簧在影像中的位置参数,根据位置参数对原影像进行矫正并提取检测目标所在的区域,然后进行缺陷检测。依次将组内4张弹簧影像的表面缺陷部分提取出来,并对缺陷提取的结果进行缺陷融合,最终将检测结果显示在QT监控界面上。然后进行第二组弹簧影像的算法检测,以此类推,直至检测完所有的影像组。最终实现弹簧全部表面缺陷的检测。
图5 图像算法处理流程
3 系统测试及分析
基于多光源补偿采集系统,检测系统实物如图6所示,基于多角度光源补偿原理,选用不同角度的光源组成多角度复合光源。分别选用4组复合光源,对同一位置下的弹簧进行4次影像采集,并对每张采集影像分别进行缺陷检测算法处理,识别采集影像中弹簧位置,对其位置进行矫正并实现弹簧所在区域的ROI提取,得到弹簧所在的目标区域,通过快速聚类算法对目标区域的影像进行聚类,识别弹簧的缺陷部分并进行标记,继而实现对缺陷部分进行提取。最终将4张影像中,所提取的缺陷部分进行融合,得到弹簧在同一位置下的表面所有的缺陷部分。通过滚轴带动弹簧转动,改变弹簧的当前位置,重复上述的操作,实现弹簧整体表面缺陷的检测。
图6 触发式弹簧多光源补偿检测系统实物
3.1 实验过程
3.1.1 影像预处理实验
由于触发式弹簧结构特殊及弹簧表面的反光特性,分别选用4组多角度的复合光源,对同一位置下的触发式弹簧进行4次影像采集,可得到4张含有不同表面缺陷的弹簧影像。如图7中原图所示,在影像预处理中,通过灰度化、二值化及连通域算法处理,获取影像中弹簧所在位置并获得其位置参数。通过位置参数,对原图进行位置矫正,对标准位置进行ROI截取,得到弹簧所在的目标区域,即预处理结果。实现在保留弹簧影像自身细节的基础上,减小背景环境的影像,同时也减小了后续缺陷检测算法的运算开销。
图7 影像预处理过程
3.1.2 影像缺陷检测实验
对弹簧采集影像进行预处理后,对预处理结果进行快速聚类,并识别、标记弹簧表面的缺陷部分。根据1.2.2小节中,簇类K值的设定原理,根据弹簧在光照条件下,因其自身结构特性所反映出的采集影像像素点灰度值的分布结构。将簇类的个数K设定为5,5个簇类按照影像中像素点灰度值从低到高的分布,分别为采集环境的背景部分,弹簧拐角部分,弹簧表面缺陷部分,弹簧边缘轮廓部分以及弹簧表面完整无损的部分。如图8中K=5所示,图中不同灰度值对应的部分,表示不同的聚类像素点标记的结果。且快速聚类算法的时间与簇类K值成正比的关系,见表1。如图8中K=4所示,由于弹簧表面缺陷部分和弹簧边缘轮廓部分的像素点灰度值较为接近,将弹簧缺陷部分和边缘轮廓部分归为一类以减少快速聚类的时间,但其结果包含太多的伪缺陷,缺陷检测精确度太低。如图8中K=6所示,以增加簇类的个数来提高弹簧的检测精度,细分弹簧边缘轮廓部分的像素点。但其结果与K=5相比,结果相似且快速聚类时间较长,因此选定K=5的快速聚类方式。
表1 聚类分析
图8 快速聚类分析
通过K=5的聚类方式,对4张预处理结果图进行缺陷检测算法处理,其结果如图9所示,将每张影像中弹簧表面缺陷部分进行识别以及标记。同时根据缺陷部分像素点的位置信息,将弹簧表面的缺陷在其轮廓中定位,最终将弹簧表面缺陷部分提取出来。由于在影像预处理的过程中,对每张影像进行矫正操作,同时缺陷提取后影像均为二值化影像,因此对同一位置下,不同角度光源下的4张触发式弹簧表面缺陷提取的影像,直接进行或操作,实现弹簧缺陷部分的位置叠加,即一组弹簧缺陷影像的融合,最终得到触发式弹簧整体表面的缺陷,极大提高了触发式弹簧表面缺陷检测的精确度。
图9 缺陷提取及融合图组
3.2 系统测试结果及分析
通过100根不同缺陷的触发式弹簧对本系统进行测试,其中随机选取6根弹簧及测试结果,如图10所示,其中原图为常规灯光下所采集矫正后得到的弹簧影像,真值图为预期希望得到的弹簧表面缺陷部分,结果图为多光源补偿检测系统所检测到的表面缺陷。对真值图和结果图进行IOU计算,即计算两张图像的交并比
图10 6组弹簧系统检测结果
(15)
式中:C,G分别代表两张图像,A,B分别代表不同的集合。通过IOU可验证系统检测缺陷与预期中缺陷大小及位置关系的重合度的比例,以此来评估多光源补偿检测系统对弹簧表面缺陷的检测的准确度。并且,测量单个弹簧检测消耗的时间。如表2所示,随机选取20组弹簧,统计其IOU和算法消耗的时间,均能检测出含有缺陷的弹簧,单个弹簧检测的平均时间在15 ms左右,IOU达到0.85以上,即系统检测缺陷的准确率可达到85%以上。
表2 20组弹簧系统检测结果
4 结束语
本系统针对触发式弹簧因表面反光特性导致表面缺陷难以检测的问题,设计了一种多角度光源补偿的影像采集处理平台,研究了一种快速聚类缺陷检测算法,对目标区域的影像进行聚类,识别弹簧的缺陷,采用Linux+ARM架构,设计实现了一种弹簧表面缺陷检测系统。测试结果表明,该系统能有效识别触发式弹簧的表面缺陷并进行缺陷提取,含有缺陷弹簧的识别率在99%以上,单个弹触发式弹簧表面缺陷提取的准确率在85%以上,且检测时间在15 ms之内,系统还具有了较强的抗抖动、抗干扰能力。