APP下载

CNN 融合多尺度特征的PCB 裸板缺陷识别

2023-10-31李任鹏李云峰

智能计算机与应用 2023年10期
关键词:特征向量特征提取投影

李任鹏, 李云峰

(河南科技大学 机电工程学院, 河南 洛阳 471003)

0 引 言

印制电路板(Print Circuit Board, PCB)缺陷检测问题近年来备受关注。 常见缺陷检测算法主要包括基于传统机器视觉的缺陷检测、基于机器学习的缺陷检测和基于深度学习的缺陷检测算法。

王付军[1]利用信息熵来检测PCB 表面镀层缺陷,具体通过计算图像颜色变化信息熵和结构变异信息熵来检测PCB 的金手指缺陷和表面划伤缺陷。Tsai[2]等在传统模板匹配技术的基础上,提出了一种全局傅里叶图像重建方法,用于检测和定位非周期性PCB 图像中的小缺陷,该算法对平移和光照变化不敏感,能够发现各种非周期性PCB 图像中1 像素宽的细微缺陷。 李云峰[3]等提出一种基于图像边缘特征的PCB 裸板缺陷检测算法,通过提取边缘像素的梯度方向信息熵以及边缘像素密度特征,结合支持向量机分类器实现缺陷定位。 He[4]等提出了一种PCB 缺陷检测的非参考比较框架,提取PCB图像的方向梯度直方图(HOG)和局部二值模式(LBP)特征,分别放入支持向量机(SVM)中进行监督学习,得到两个独立的分类模型,并根据贝叶斯融合理论,融合两种模型进行缺陷分类,证明了融合特征在缺陷分类问题中的有效性。 王恒涛[5]等提出一种基于YOLO-v5 的轻量化PCB 缺陷检测算法,使用四尺度检测机制扩大模型检测范围,提高了对微小缺陷的检测效果,并通过FPGM 剪枝算法,对模型进行压缩,实现了模型的轻量化处理。 Shen[6]等人建立了一种轻量级的PCB 检测模型LD-PCB,在提高检测精度的同时实现了PCB 的在线监测,并提出一种字符识别模型CR-PCB,提高了不规则字符的识别精度。

PCB 裸板缺陷种类繁多,传统缺陷检测模型已无法对复杂多样的缺陷特征进行准确描述,对此本文提出了一种将多尺度浅层特征和神经网络提取的深度特征相融合的PCB 裸板缺陷检测算法。 多尺度特征相比于单一尺度特征,纹理特征更加丰富,能更好地挖掘图像细节信息,卷积神经网络(CNN)可以自动的从数据集中学习特征,自动学习特征的过程可以从新的训练数据中得到新的有效特征表示[7]。

但构建和训练一个深度学习网络模型需要大量的时间成本、较高的硬件要求和大量的标记图像[8],在缺乏大量数据集的情况下,迁移学习是一个较好的解决方案。 本文选择在ImageNet[9]数据集上训练好的VGGl6-Net 网络模型作为预训练模型,通过对模型进行微调,包括调整网络结构和网络参数,使新的网络模型可以更好地拟合目标数据集。

1 算法流程

算法可分为两个阶段。 第一阶段为缺陷特征的提取与融合。 首先,为了减少背景区域干扰像素对特征提取的影响,通过图像差分和形态学等操作,分割出缺陷区域。 接下来,提取PCB 裸板缺陷图像的多尺度灰度共生矩阵特征、多尺度方向投影特征以及多尺度梯度方向直方图特征。 然后利用VGGl6-Net 神经网络模型提取缺陷图像的深度语义特征,最后将多个算法提取的特征信息进行融合,构建新的特征向量。

第二阶段为缺陷分类识别。 将融合后的新特征向量作为训练样本,训练支持向量机模型,完成对PCB 裸板缺陷的分类识别。 算法实现过程如图1所示。

图1 算法实现过程Fig.1 Algorithm implementation process

2 图像配准与缺陷提取

本文使用图像增强和高斯滤波算法,对PCB 裸板原始图像进行预处理,以减少光照和噪声对图像的影响。 预处理之后,对采集过程中产生畸变的PCB 裸板图像进行位姿矫正,即将待测图像与模板图像进行配准,由Förstner 角点检测算法实现[10]。Förstner 算法是一种基于相关性和局部统计的图像特征点查找算法。 特征点是指图像边缘交叉点;颜色、亮度及与周围邻域不同的区域,即图像中的非均匀各向同性区域。 算法计算公式可由式(1)表示。

其中,Ix,c和Iy,c是图像的一阶导数,S表示对图像进行平滑滤波的平滑系数。

可选择高斯导数计算平滑导数,使用高斯函数作为滤波函数,高斯滤波核大小为I。 也可使用3×3 Sobel 滤波器计算平滑导数,并使用尺寸为S × S的均值滤波器进行滤波。

图像的不均匀程度可表示为

图像纹理的各向同性程度可表示为:

式中:Trace(M) 和Det(M) 分别表示矩阵M的迹和行列式。 设置用于分割图像不均匀程度的阈值Ti≥0,用于分隔误差点区域的阈值0.01 ≤Ts≤1。 提取大于或等于Ti的非均匀性,且同时具有大于或等于Ts的各向同性的像素点。 角点检测结果如图2 所示:

图2 Förstner 算法角点检测结果Fig.2 Corner detection results of Förstner algorithm

根据已知的模板图像和待测图像匹配点(PX,PY) 和(QX,QY) 确定投影变换矩阵H, 该最优矩阵应满足以下方程:

待测图像经过投影变换,完成位姿矫正和图像配准,如图3 所示。 图中矩形框表示经过模板图像和待测图像差分后得到的缺陷区域。

图3 图像配准结果Fig.3 Image registration results

最后,对PCB 裸板待测图像缺陷区域进行裁剪,为了减少干扰像素对特征提取的影响,将缺陷区域以外的图像区域,像素值设置为0。 部分缺陷图像示例如图4 所示。

图4 缺陷图像示例Fig.4 Examples of defect images

3 缺陷图像特征提取

图像识别实际上是一个分类的过程,为了识别出某图像所属的类别,就需要将不同类别的图像区分开来。 即需要对图像进行特征提取,要求选取的特征不仅要能够很好地描述图像,更重要的是还要能够很好地区分不同类别的图像。 为了增大特征信息类间差距,提高特征向量对PCB 裸板缺陷图像的分类性能,本文提出了基于多尺度特征融合的缺陷提取算法。

观察图4 可知,裁剪出的PCB 裸板缺陷图像在单一分辨率下,难以提取丰富的特征信息,故本文对缺陷图像执行下采样,基于高斯金字塔,构建多尺度缺陷图像,图像分辨率随着下采样逐渐降低,信息逐渐丰富。 对每张图像执行4 次下采样操作,构建1~4 层金字塔图像,分别对各尺度图像进行特征提取。

在特征提取之前,需对数据集归一化出力,将PCB 裸板缺陷图像每点像素值归一化至0~1 之间。

3.1 多尺度灰度共生矩阵特征提取

提取各层金字塔图像0°方向灰度共生矩阵特征。本文选择以下统计量作为灰度共生矩阵特征。

设width表示共生矩阵的宽度,cij表示共生矩阵中的项。 则

能量:

相关性:

其中,

同质性:

对比度:

分别计算1 ~4 层图像金字塔的灰度共生矩阵特征,将特征向量串联即可得到多尺度灰度共生矩阵特征向量。

3.2 多尺度方向投影特征提取

方向投影,即区域灰度值的水平投影和垂直投影。 计算公式如下:

其中,R(Region)表示目标区域;I(Image)表示区域所在图像;(r′,c′) 表示输入区域内最小的轴平行外接矩形的左上角;n(x) 表示相应行r +r′或列c +c′中的区域点数。

水平投影返回反映垂直灰度值变化的一维函数,同样垂直投影返回反映水平灰度值变化的函数。

由于方向投影函数不能较好的对缺陷形状特征进行表征,且直接将方向投影函数作为特征向量输入给分类器,可能会造成数据冗余。 已知方向投影函数是描述灰度值变化的一维曲线,而一维曲线可以看作时域空间的一维信号,故本文提取各缺陷图像的多尺度方向投影函数的时域特征作为特征向量。 时域特征表征方式如下:

均方根:

方根幅值:

偏斜度:

平均幅值:

峰值:

峭度:

波形因子:

脉冲因子:

裕度:

峰值因子:

其中,N表示像素序列数量,gi表示第i个像素序列对应的方向投影函数值。

计算1 ~4 层图像金字塔方向投影函数的时域特征,将时域特征串联即可得到图像的多尺度方向投影特征向量。

3.3 多尺度梯度方向直方图特征提取

梯度方向直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,其通过计算和统计图像局部区域的梯度方向直方图来构成特征。

首先,计算PCB 裸板缺陷图像的像素梯度,捕获轮廓信息。

其中,Gx(x,y)、Gy(x,y) 和H(x,y) 分别表示像素点(x,y) 的水平方向梯度、垂直方向梯度和像素值。 故该像素点梯度幅值和梯度方向分别为:

然后,将图像划分成8×8 单元,采用具有9 个bin 的直方图统计单元的梯度信息。 通过对单元内的每个像素用梯度方向在直方图中进行加权投影,可得到这个单元的梯度方向直方图,即该单元的特征向量。 最后,将所有单元合并成一个矩形块,并对矩形块内的像素梯度进行归一化,一个矩形块内所有单元归一化后的梯度方向直方图特征向量串联起来便构成了单一尺度的HOG 特征向量。

分别计算1 ~4 层图像金字塔的梯度方向直方图特征,将各个尺度图像的特征向量串联即可得到多尺度HOG 特征向量。

3.4 基于迁移学习的深度语义特征提取

为了进一步挖掘PCB 裸板缺陷图像的深层语义特征,本文利用卷积神经网络对数据集进行特征提取,选择VGG16-Net 网络作为预训练模型。

VGGl6-Net 模型由Simonyan[11]等提出,并在ILSVRC- 2014 图片分类比赛上获得了冠军。VGG16-Net CNN 模型由卷积层、池化层和全连接层组成,网络模型结构参数见表1。

表1 VGGl6-Net 网络结构参数设置Tab.1 VGGl6-Net network parameter settings

每个卷积层通过卷积运算,应用一系列卷积核对输入数据进行特征提取,生成特征映射集。 最大池化层通过滑动窗口对输入数据进行汇总来减少特征映射,池化操作还可以提高特征对图像的描述能力。 全连接层用来生成特征向量。 在每一层之后,还有一个非线性层ReLU,表现形式为f(x)=max (0,x) ,用来实现网络训练的快速收敛。

在迁移学习过程中,两种模型微调方案分别为:

(1)冻结预训练模型所有卷积特征提取层,只对分类层进行微调训练操作;

(2)微调预训练模型所有卷积特征提取层和分类层[12]。

由于经过预训练的VGG-16 神经网络已经对其卷积层参数进行了优化,不需要再对特征提取层进行调整,故本文选择第一种微调方案。

已知卷积层以矩阵集合的形式输出特征映射,如果将其直接转化为一维向量,则向量的维数就会非常大,易出现过拟合问题,影响分类效率[13]。 为了降低过拟合风险,减少参数数量和计算量。 本文去掉VGGl6-Net 网络模型的最后4 层(3 个全连接层和一个SoftMax 层),替换为一个全局平均池化层和一个具有512 个节点的全连接层。

全局平均池化层(Global average Pooling)的作用是将特征图所有像素值相加求平均值,并用该平均值表示对应特征图,降低了空间参数,提高了网络的鲁棒性[14]。 设计原理如图5 所示:

图5 全局池化层原理图Fig.5 Schematic diagram of the global average pooling

以全局平均池化层输出的特征映射,作为全连接层的输入,以全连接层输出的512 维特征向量作为PCB 裸板缺陷图像的深层特征。 调整后的VGGl6-Net 模型结构如图6 所示。

图6 微调后的VGGl6-Net 模型Fig.6 The VGGl6-Net model after fine tuning

3.5 特征融合

从同一张PCB 裸板缺陷图像中提取的不同语义特征反映了不同的图像信息,本文将多尺度灰度共生矩阵特征、多尺度方向投影特征、多尺度HOG特征和VGGl6-Net 神经网络模型提取到的深度语义特征进行融合,以增加特征信息的多样性。

常见的融合方式分为并行融合以及串行融合。并行融合是指将多组向量以复向量的形式合并在一起,串行融合是指将多组向量首位串接在一起。 假设有A、B两组特征向量,并行融合后的向量表现形式如式(29),串行融合的表现形式如式(30)。

由于浅层特征的向量维数和神经网络提取的深度特征向量维数并不相同,故本文采用串行融合方式,将各特征向量串接,组成新的特征向量,融合后的特征向量维度为各组特征向量维度之和。

4 实验结果及分析

4.1 实验环境

本文所进行的研究实验条件配置和所选数据集如下:

(1)软硬件环境

CPU 为Intel(R) Core(TM) i5-8300H 处理器,GPU 为 英 伟 达 GTX 1050Ti。 本 文 研 究 基 于Windows 10 系统,算法开发平台为HALCON 21.05。

(2)数据集

本文数据集选用北京大学智能机器人开放实验室提供的具有多种缺陷(漏孔、鼠咬、断路、短路、毛刺、余铜)的PCB 裸板数据集[15],可用于图像检测、分类和配准任务。 每种缺陷分布在10 种不同的PCB 裸板图像上,共690 张缺陷图像。 每张图像有2~6 处缺陷部位。 经过缺陷提取,样本数量统计见表2。

表2 缺陷样本数量统计Tab.2 Defect sample statistics

4.2 实验过程

首先,基于上文分析的特征提取方法,针对每一个PCB 裸板缺陷图像提取1~4 层高斯金字塔图像灰度共生矩阵特征向量GLCM =[Asm,Cor,Hom,Con],其中能量特征Asm =[Asm1,Asm2,Asm3,Asm4] ,相关性特征Cor =[Cor1,Cor2,Cor3,Cor4] , 同 质 性 特 征Hom =[Hom1,Hom2,Hom3,Hom4] , 对 比 度 特 征Con =[Con1,Con2,Con3,Con4] ; 1 ~4 层高斯金字塔图像梯度方向直方图特征向量HOG =[d1,d2,…,dn] ,n =36;1~4 层高斯金字塔图像方向投影特征向量pro =[XRMS,Xr,Xsk,Xmean,Xpeak,Ku,SF,IF,L,ICF]。 以上提取的特征向量有62 维,与卷积神经网络提取到的512 维特征向量串接,组成新的特征向量,共574 维。 然后将新特征向量作为SVM 输入,训练SVM 分类器模型,对PCB 裸板缺陷图像进行分类。

数据集中的70%作为训练集,10%作为验证集,20%作为测试集。 训练数据统计见表3。

表3 训练数据统计Tab.3 Training data statistics

测试集混淆矩阵见表4。

表4 混淆矩阵Tab.4 Confusion matrix

4.3 对比分析

为了验证SVM 融合多特征的分类算法对PCB裸板缺陷图像的分类效果,将本文算法与CNN 算法进行对比,分别选择AlexNet[16]、VGG-16 和ResNet-50[17]作为CNN 网络模型。 采用准确率(accuracy)、精确率(precision)、召回率(recall) 和F1 分数作为分类性能的评价指标。 对比分类结果见表5。

表5 分类对比结果Tab.5 Comparison on classification results

式中:A表示样本判别正确个数之和,B表示样本总数,Ai表示各类样本判别正确个数,Bi表示各类样本数,TP表示本类样本中判别正确个数,FP表示其它类样本误判成本类样本个数,FN表示本类样本中误判成其它类样本个数。

图7 为本文算法对不同种类PCB 裸板待测图像缺陷的检测与识别结果。 图中矩形表示短路,椭圆表示断路,菱形表示毛刺,正方形表示漏孔,圆形表示鼠咬,带圆角的正方形表示余铜。 从表5 对比实验结果可以看出,相较于传统CNN 分类算法,融合多尺度浅层特征和深层语义特征的SVM 分类算法对PCB 裸板缺陷图像分类准确率有较大提升,说明本文提出的特征提取算法可以获得更多的缺陷有效信息。 图7 说明了本文算法对不同PCB 裸板缺陷有较好的识别效果。

图7 缺陷识别结果Fig.7 Defect identification results

5 结束语

针对目前PCB 裸板缺陷检测领域存在的问题,本文提出了基于高斯金字塔的多尺度特征提取方法,提取多尺度灰度共生矩阵特征、多尺度方向投影特征和多尺度梯度方向直方图特征,并利用卷积神经网络进一步提取图像深层语义特征,使特征信息更加丰富。 此外,SVM 在处理小样本问题上有独特的优势,基于此,本文将提取到的所有特征融合成一个新的特征向量,增强了特征对图像的描述能力,将其转化为特征序列,输入给SVM 进行训练,实现PCB 裸板缺陷分类识别。 实验证明,该算法可以快速准确地对缺陷进行识别,准确率达到99%以上,且具有一定的稳定性。

虽然本研究取得了一定成绩,但还存在算法运行时间较长,检测效率有待提高,且针对的缺陷种类还不丰富,无法识别微小缺陷等问题。 下一步工作是优化本文算法,扩充数据集,改进网络模型,提高检测效率。

猜你喜欢

特征向量特征提取投影
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
基于Daubechies(dbN)的飞行器音频特征提取
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
Bagging RCSP脑电特征提取算法