激光刻写零件瑕疵图像在线检测算法

2020-03-19 12:26李德平
计算机集成制造系统 2020年2期
关键词:阶跃轮廓灰度

雷 泰,柳 宁,李德平,王 高

(暨南大学 信息科学技术学院,广东 广州 510632)

0 引言

近年来激光刻写技术大量应用生产,激光雕刻以及激光标识都要求对其刻线进行质量检测,而针对零件表面的激光刻线检测方法少有研究。

作为激光刻线检测相近的领域,印制电路板(Printed Circuit Board, PCB)和柔性印刷电路板(Flexible Printed Circuit Board, FPC)的线性轮廓图像质量检测在学术界有着较为丰富的研究。美国的Griffin等[1]采用基于形态学的改进方法,能够检测开断路、线路残缺、线距过小等缺陷,但是不能有效地检出目标整体缺失;台湾的Rau等[2]将现场拍摄的待测板图片和标准板图片进行差运算后获取缺陷,再通过计算连通域和边界变换数对缺陷进行分类,但是需要手动选定参考点进行配准,自动化程度偏低;熊邦书等[3]通过解析Gerber文件获取精确的标准线路图,再与待检图像进行比较,进一步提高了匹配精度,然而其在对缺陷的判断上采用面积法、连通域法和缺陷边缘邻域法相结合的分类法过于耗时,无法满足检测的实时性;郭民等[4]提出基于轮廓对比的数据处理方法进行检测,但是该方法对光照均匀性和图像配准有较高要求,而且需要人工对特定区域进行图像裁剪,无法快速大批量进行产品检测;张静等[5]将Gerber文件进行分层处理,得到PCB不同区域的具体位置后,再采用窗口划分的方式对表面缺陷进行分类,该方法仅针对平滑面域进行检测,不适用于细线边缘的处理;乔凯等[6]采用超像素分割的方法对PCB导线进行目标分割并识别,具有较高的检测精度和抗干扰能力,但是没有考虑导线的缺陷识别问题。

PCB基板颜色均匀、背景没有纹理,电路轮廓边缘毛刺较少,激光刻写时,不同材料的表面纹理差别很大,金属表面可能有刀痕纹理,木质板材表面有自然纹理;另外,激光在木板上刻写时,轮廓边缘会生产毛刺。图1所示为PCB轮廓图与木板上激光刻写图的比对,可见后者的检测复杂程度更高。

传统PCB视觉检测方法并不完全适用于激光刻写领域,本文提出利用矢量图对图像轮廓质量进行检测的方法,检测内容包括线宽、线路的连通性和毛刺情况以及面域(焊盘)的缺损情况,实时性、正确率和检测算法的鲁棒性是此类检测应用的关键性能指标。本算法除应用于激光刻写的零件刻线检测外,亦适用于电路板导线质量检测。

2 导向线检测方法设计

2.1 算法设计

本算法的指导思想是分析矢量文件,区分线路矢量与区域矢量,根据线路矢量特性形成导向线文件;根据导向线映射跟踪图像中的轮廓,在导向线上生成采样点,通过轮廓检测模板,在采样点上分析图像轮廓的线宽和连通性,评价轮廓的毛刺;根据区域矢量映射到图像的面域位置,采用检测模板检测面域的残留和缺失。

算法流程如图2所示。首先分析矢量文件生成导向线,将导向线矢量文件与待测图片配准,然后根据抽样规则沿导向线获得采样点,进而使用基于梯度算子的双阈值边缘检测算法对滤波后的局部图像进行轮廓质量检测及缺陷判断。

2.2 导向线的生成

线路是两点之间的通路,面域是一组首尾相联的通路围成的区域,可以根据该特征将面域和线路区分开。以激光切割机常用的惠普图形语言(Hewlett-Packard Graphics Language,HP-GL)为例,该语言有占用系统资源少、标刻效率高的特点,为目前激光刻写的主要描述语言[7],其部分指令如表1所示,表中:LT为线型与线宽指令;SP为选笔指令;PU和PD为抬笔、落笔指令,其后为路径坐标。一个由PU开头经过若干PD并以PD截止的一系列数据点称为一个数据段,如图3a的第3行~第6行为一个数据段。

表1 HP-GL部分指令集

图3a所示为绘制一个以(150,350)为顶角坐标点的等腰三角形和边长为250的正方形所需的基本HP-GL语句,其中第一个数据段所代表的等腰三角形由(150,350)起笔,经过(200,100),(100,100)两点,再回到起始点;后一个数据段表示正方形的绘制坐标。所绘图形如图3b所示。

导入HP-GL格式的矢量文件后,逐行读入数据,将数据段末尾的PD与段首的PU点进行比较,若两者坐标相等,则将后者标记为区域的边缘轮廓,表示该数据段内所有坐标全部为面域属性;否则标记为线点,表示数据段内所有坐标全部为线属性。

2.3 导向线与图像配准

通过仿射变换将矢量数据坐标投射到待测图像坐标系[8],以进行图像线路和面域检测,配准策略是获取待测图片的4个直角顶点来求解仿射变换矩阵,并根据该矩阵变换导向线数据。

为了提高配准精度,采用行列扫描方法获得边缘线的点,拟合直线后去除距离直线最大的若干点,然后再次拟合边缘直线,具体步骤如下:

步骤1边缘取点。使用行列扫描的方法获得边缘点上的灰度突变像素点,如图4a所示。

步骤2第一次拟合直线。由步骤1获得X和Y方向上的边缘点集,使用最小二乘法分别拟合直线[9]。

步骤3去除奇异边缘点。分别计算各点到直线的距离,然后排除距离最大的1/4的点。

步骤4第二次拟合直线。对去除奇异点之后的点集再次拟合直线。

步骤5求交点。提取图片4个角上的局部图像,分别执行步骤1~步骤4,对X和Y方向上的两条直线求交点,如图4b所示。

仿射变换又称仿射映射,指在几何中一个向量空间进行一次线性变换和一个平移。

(2)

其中:式(1)表示旋转和放缩的线性变换,式(2)表示平移的向量形式。

(3)

通过图像上4个配准点坐标与导向线图4个顶点坐标的对应关系求出变换矩阵,然后对采样点集数据进行转换与配准,匹配效果如图5所示。

2.4 拐角提取及采样点生成

经与图像配准后,导向线已经贴合线路,下一步对导向线进行提取拐角、生成采样点、密度分层和保存检测文件4个操作。

在后续使用边缘检测模板进行处理时,若采样点过于靠近拐角,则会出现误判,如图6a所示。一般通过判断连续3个点坐标的夹角来选择导向线中的拐角,若其夹角小于等于90°,则将夹角点判定为拐点,如图6b所示。

然而,为了使拐角处过渡圆滑,部分轮廓用若干连续的短线代替简单的直角,如图7a所示。此类拐角虽然过渡圆滑,但是也需作为拐点处理,本文采用提取短线集的方法处理该情况。在遍历导向线中的坐标时,若两点距离小于采样的生成步长,则将其标记为短线集数据点,如图7b所示。当一段短线集标记结束后,将短线集的端点标记为拐角点,然后在线段集内插入采样点。拐点提取情况如图8a所示。

数据段内每个相邻PU或PD两点之间按照指定步长生成采样点,若不足步长距离,则与后一点距离进行累加,直至该累加长度大于所需步长或已累加至数据段末尾。生成效果如图8b所示。

对于一些比较复杂的图像轮廓,其采样点高达3 000~4 000个,考虑到实时性的要求,采取采样点分层的策略来提高效率。

对生成的所有采样点隔3取1作为第1层,其余作为第2层。若第1层的缺陷点数超过阈值,则直接判为不合格板,不再判别剩余的3/4采样点,如图8所示。

为了适应产品的批量检测,采样点集被保存成检测文件,同一批产品只需与所拍摄的待测图片配准即可检测,不用每次计算生成采样点。

2.5 图像预处理

考虑到目标区域主要以线条为主,选用保边去噪性能较好的滤波手段。本文采用高斯滤波、中值滤波、双边滤波和导向滤波4种[10-11]常用的保边滤波算法进行了实验,测试发现在轮廓较为密集时,前两种算法的边缘信息流失较为严重,后两种算法保边效果较好,但是在信噪比相同时导向滤波的效率更优,因此选用导向滤波算法。通过导向滤波处理,背景图像的纹理和噪声得到了较好的抑制。

为了提高灰度图像的对比度,采用非线性拉伸[12],原理如图9所示。原图像f(x,y)灰度直方图的灰度级集中分布在[HSF,Hsc],将其拉伸到[HEF,HEC]区间,其中:HSF和Hsc分别为原图片感兴趣区域灰度值的上限和下限,HEF和HEC分别为所要拉伸到的灰度值的上限和下限。导向滤波图及最后的拉伸结果如图10b与图10c所示。

经过导向滤波和非线性拉伸处理,将待测图像的线段和面域轮廓从复杂背景中凸显出来。

1.6 采样点和拐点检测

通过分析采样点所在区域的图像特征,本文提出基于梯度算子的双阈值边缘检测算法对采样点所在的局部图像进行表观缺陷检测,即使用自适应的区域生长模板在每个采样点沿轮廓的法线方向进行检测,然后进行缺陷判断和分类。

受待测样本实际尺寸偏差和匹配误差等因素的影响,采样点在个别区域会出现覆盖偏移,导致检测模板不能完全覆盖轮廓,因此采用区间可变的自适应检测模板。区域生长的基本原理是以一组“种子”为起点,将与其性质相似或符合规则的邻近像素附加到生长区域的种子点上[13],设检测模板两端点PL和PR为种子点。

(4)

检测模板生长算法流程如图11所示,具体步骤如下:

步骤3分别判断两个种子点PL,PR的四连通域内法线方向的灰度值GL和GR是否大于HSF,若GL

步骤4将标记点组成的TDextr与基础模板TDbase按顺序重新排列,并退出生长过程。

经大量实验测试,LB和LE分别取经验值11和10。

通过上述基于区域生长的自适应检测模板,采样点所在的线性轮廓得到了较好的描述,下面配合本文提出的基于梯度算子的双阈值边缘检测算法对线性轮廓进行缺陷判断与分类。

因为线路轮廓和面域轮廓分别属于脉冲状边缘和阶梯状边缘,上升沿和下降沿变化都比较明显(如图12b),所以考虑采用梯度算子对采样点所在模板进行检测。

梯度算子的定义如下,其中I(x,y)为在点(x,y)处的梯度函数:

(5)

在数字图像中常用一阶差分运算替换一阶微分运算来提高运算效率[14]:

ΔxI(i,j)=I(i,j)-I(i-1,j);

(6)

ΔyI(i,j)=I(i,j)-I(i,j-1)。

(7)

为了判断采样点所在模板是否存在阶跃以及阶跃是否符合规则,设定阈值判别模板梯度值。因此,在得到模板的梯度值之后,对其取绝对值,其绝对梯度如图12c所示。

采用强调波谷(valley-emphasis)的最大类间方差法[15-16]获取分割阈值,目标函数为

O(t)=(1-pt)(ω1(t)μ21(t)+ω2(t)μ22(t))。

(8)

(9)

判断梯度的最大值ΔImax和最小值ΔImin是否分别达到相应的正负t*阈值,合格模板如图12d所示。

对于轮廓缺失的检测,即模板完全处于亮色产品背景或暗色工作台背景的情况,需要通过模板TD中的最大最小灰度值来判断,其中最大灰度值Gmax=maxTD,最小灰度值Gmin=minTD。

对于有污迹浸蚀或由于存在木节而着色不均的模板,其灰度变化要大于图12c呈现的两个波峰,因此对梯度阶跃所在位置及梯度的正负变化做出限定。其中正阶跃波峰P+和负阶跃波峰P-的定义如式(10)和式(11)所示,分别表示最大正阶跃和最小负阶跃所在的一维坐标:

(11)

因为检测模板已将采样点所在的图像抽离成一维信息量,所以只需考虑单方向的梯度信息。

最后根据获得的模板信息,以及以下5个检测规则对其缺陷情况进行判断:

case1Gmax>HSF,即模板中的最大灰度值应大于非线性拉伸的谷底值。

case2Gmin

case3ΔImax>t*,即最大正阶跃应大于正的分割阈值。

case4ΔImin<-t*,即最小负阶跃应小于负的分割阈值。

case5P-

case6模板中相邻梯度的正负值最多只能变化一次。

检测的伪代码表示如下,其中∧,∨,,⊕分别表示与、或、非和异或:

(1)对于线路检测

if (case3∧case4)

then return 零件缺失或短路

else if case2

then return 采样点断路

else if case1∨( case5∧ case6)

then return 着色不均

else

then return 采样点合格

(2)对于面域检测

if case1

then return 面域缺损

else if case2

then return 面域漏刻

else if (case3⊕case4)

then return 面域残留

else

then return 采样点合格

对合格线采样点的最大最小阶跃坐标进行求差,可得该采样点所在线段的法线方向线宽的数值,然后去除该线段上所有采样点线宽的最大最小值,再取均值并将该均值作为该段线路的宽度,若宽度过大或过小,则对该线段进行标记。

对于连通性检测,在采样点分布足够密集的情况下,曲线上两采样点之间可视为直线,为了消除由于畸变及配准精度的影响,采样点偏离线路中线致使连通性检测不佳的情况,本文对导向线上每两数据点之间的检测区域所在的局部图像,以两点中心为圆心,旋转两点的倾斜角到水平,再沿线段法线方向进行浮动检测,上下各取d条大小为1×n的灰度样本。若所检测样本中全为断路,则判断该处出现断路,并标记这两点,如图13所示。

为了评价轮廓的边缘毛刺情况,本文通过统计线路上所有采样点的方差δ来判断其线宽的离散程度,进而对其毛刺情况做出评价。若该线段上的采样点线宽方差δ小于阈值,则判定该线路的毛刺情况良好,否则判为毛刺情况突出,并将所有采样点进行标记。

对拐点采用SUSAN算子[17-18],在拐点坐标处使用像素个数为37的圆形模板,对模板中各像素的灰度值与中心的核像素逐一求差,将差值集合使用强调波谷的最大类间方差法求出阈值,实验显示,当差值集合中大于阈值的数目超过总数的3/4或小于1/4时,判定为不合格拐点。

3 实验设计及结果分析

3.1 实验条件

本文实验采用台湾研华科技IPC-610L工控机,CPU为Intel® CoreTMi5-3210M 2.50 GHz,内存为4 G的DDR2 800。开发环境使用Visual Studio 2013,视觉算法库为OpenCV 2.4.10版本,框架采用微软基础类库(Microsoft Foundation Classes, MFC)搭建,软件界面如图14所示。

光源布局采用下部放置条形组合光源进行低角度打光,上部放置中孔背光源;工业相机为映美精DMK 33GP031,解析度为2 592 pixel×1 944 pixel;工业镜头采用Computar M1214-MP2,焦距为12 mm。实验平台如图15所示。

3.2 实验结果及分析

实验样本为车间现场采集的199幅产品图片,其中缺陷图137张,完好图62张。

线性轮廓缺陷检测如图16所示,其中图16a~图16c分别为零件缺失、断路和着色不均3种线路缺陷的原图,图16d~图16f为检测结果放大图。

面域缺陷如图17所示,其中图17a~图17c分别为面域漏刻、缺损和残留3类面域缺陷的原图,图17d~图17f为检测结果放大图。需要指出的是,图17d为圆形面域漏刻处的缺陷标记,图17e为作为面域处理的木板外围边框的缺陷标记。可见,本方法能够准确检出线性轮廓和面域缺陷。

为了验证系统的可靠性,本文对所有199幅样本进行了两次测试,每张样本图片的分辨率均为2 592pixel×1 944pixel。其中第1次测试取消了采样点分层,无差别地对所有采样点进行检测,结果统计如表2所示。可见,本系统的缺陷检出率达到97.6%,漏检率为2.4%,总误判率低于0.1%,从而验证了其良好的检测精度。

表2 准确度分析

检测中的误判原因为个别区域的线路互相交叉以及面域与相邻线路过于靠近,漏检原因主要为图像预处理对缺陷信息的干扰,致使个别缺陷采样点的灰度值符合判断标准。

线性轮廓的连通性、线宽和毛刺检测如图18所示,对于这3类情况的检测,算法均准确标记出了相应的不良线段。

本文对比了文献[3-4]对缺陷的检测效果,如图19所示。由图19b可见,文献[3]能够较好地检测出大面积的面域缺失,但是以线条为主的轮廓缺陷因受开运算影响较大而效果不理想。

文献[4]采用轮廓对比的检测手段,由图19c可见,该方法受配准精度和标准图像线宽影响较大,轮廓检测效果较差且无法检测出面域轮廓缺陷。然而由图19d可见,本文方法对缺陷均能准确检出。

为了检验算法的鲁棒性,本文对复杂纹理背景下的轮廓检测进行了对比实验。如图20b所示,文献[3]在待测图片与标准图片光照存在较大差异以及待测照片背景复杂时,几乎无法检测出缺陷;如图20c所示,虽然文献[4]对复杂背景有较强的抗干扰能力,但是其对轮廓缺陷的检测仍然存在较大误差;如图20d所示,本文方法在复杂背景条件下仍然能准确对缺陷进行标记,其鲁棒性得到验证。

为了检验算法的实时性,本文对比了与文献[3-4]的检测用时,此次测试启用了采样点分层,样本图片检测用时结果如表3所示。

表3 实际检测效率

在效率上,因为本文算法涉及大量数据计算,所以相对于其他两种算法而言耗时略多,但是从实际需求出发,每张图片的平均检测用时低于200 ms,完全满足对检测效率的要求。其中合格板的平均用时略长于缺陷板,原因为合格板在第1层采样点合格后继续进行第2层检测,而缺陷板往往在完成第1层检测后就已判定为缺陷板并退出检测,故其平均用时较少。

4 结束语

本文提出一种沿导向线生成采样点检测激光刻写零件轮廓瑕疵的新方法,可对两类共6种线路和面域缺陷进行快速检测和精确识别,缺陷检出率大于97%,并且能够准确检出轮廓的连通性、线宽及毛刺的不良情况。相比于传统的灰度和轮廓差分检测方法,本文方法以导向线为引导路径,只检测模板所在的局部图像,因此在光照不均及复杂背景条件下有很强的鲁棒性和准确度,虽然因涉及大量运算而耗时略多,但是相比于目前普遍采用的人工检测在实时性方面仍然具有较大的优势。除激光刻写零件的检测外,所提检测算法亦适用于以线性图像轮廓为主要特征的工业产品检测,如PCB和纹织等的质量检测。与此同时,该系统的整个检测流程被集合成一套操作简单、界面友好的软件,在实际使用中有较大的应用和推广前景。

猜你喜欢
阶跃轮廓灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
探讨单位阶跃信号的教学
LCSR法响应时间原位测量装置的设计与实现
高速公路主动发光轮廓标应用方案设计探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于像素重排比对的灰度图彩色化算法研究
晶体管驱动的阶跃二极管大幅度窄脉冲源