基于支持向量机的印制电路板瑕疵目标检测

2021-10-23 13:16唐佳泉
电子测试 2021年18期
关键词:偏移量瑕疵类别

唐佳泉

(湖北工程学院物理与电子信息学院,湖北孝感,432000)

0 引言

印制电路板,因采用电子印刷技术制作而成故又名印刷线路板(Printed Circuit Board,PCB) 是起着至关重要的作用的电子元器件。在加工生产PCB 过程中,难免会出现各种瑕疵,这些质量问题将会影响到电子设备的性能。为了减少人工检测过程中可能出现的问题,例如容易疲劳,效率低下。开始运用基于机器视觉,数字图像处理的检测方法来提升效率和准确性。本文所研究的问题是基于机器学习的目标检测技术,设计适合于PCB 瑕疵检测任务的算法。通过目标检测技术来对给定的印制电路板进行机器识别,得到电路板上所有瑕疵的位置以及它的从属类别。在这个问题中,将会以算法的检测精度和误检率为评价指标,挑选出检测精度最高的方案。最后总结有关算法的检测瑕疵方案流程和原理,对现实中PCB 瑕疵检测问题起到帮助。

目前PCB 瑕疵检测问题得到了广泛的关注,其中Huang[1]等人提出了一个包含1386 张具有6 种缺陷的图像的HPIPCB 数据集,并提出了一种端到端的卷积神经网络来对PCB 的瑕疵进行分类。算法将预先提取出的瑕疵图片输出到卷积神经网络中,由网络给出瑕疵的分类。Tang[2]等人提出了一个包含500 个带有注释的图像的数据集DeepPCB。DeepPCB 将瑕疵分为6 种不同类型,创新的提出了一种群金字塔池化模块(Group Pyramid Pooling)能够解决不同尺度图像的特征提取问题,提升检测精度。朱[3]等人提出了基于自动光学检测的PCB 瑕疵识别算法。使用改进的Hough 变换算法检测圆形,再经过刚体变换来解决图像定位。针对PCB 质检中图像分辨率低的问题,裴[4]等人设计了一种用于PCB 瑕疵检测的图像拼接算法,进而我们能通过高分辨率的拼接图像来更好地进行瑕疵检测,提升了瑕疵检测精度。

本文旨在设计一个基于支持向量机模型(Support Vector Machine)的PCB 瑕疵检测算法来提升基准算法的检测精度以及降低误检率。首先本文对基于SVM 的检测框架进行改进,通过多个并行的SVM 提升检测精度,并且本文从负样本提取方式以及搜索框大小两个部分进行改进。

(1)我们改进负样本的提取方法,通过采取三种负样本提取方式来从数据集中提取负样本,从而提高瑕疵检测精度。

(2)本文对目标框搜索大小进行改进,利用训练集的标签信息作为目标框大小来进行检测,并且本文对比了不同目标框大小对于检测精度的影响,验证了本文算法的有效性。

本文算法在HRIPCB 数据集上进行验证,我们采用检测精度和误检率对各类算法进行评估。在实验中,本文算法得到了37.0%平均检测精度,还显著的降低了误检率。本文算法通过对SVM 进行改进,提出了一种负样本采集策略以及证明了目标框大小对基于SVM 的PCB 瑕疵检测算法有显著影响。本文算法能够帮助实现PCB 瑕疵检测自动化,并且可以广泛应用于各类PCB 瑕疵检测分类相关任务中,节省人工成本。

1 基于支持向量机的印制电路板瑕疵目标检测

现在目标检测领域已经广泛运用基于梯度直方图特征(Histogram of Oriented Gradient,HOG)[3]的SVM 优化算法[4-5]。本文算法也是基于上述框架进行改进的,算法的流程图如图1 所示。

图1 本文算法流程图

在训练阶段,首先对图像进行扫描,经过提取相应图像区域,图像预处理操作后。提取训练样本图片的HOG 特征。对这些HOG 特征分别做好标签。再使用这些提取出的HOG 特征来训练一个用于当前任务的SVM 模型,进行SVM 目标函数的优化,得到一个最优的SVM。在测试阶段,我们先进行HOG 特征提取,把定的待检测图片给划分成相同尺寸大小的样本,并依次送入训练好的的SVM 中检测,判断当前样本是否为瑕疵区域以及给出瑕疵类别,通过对所有样本的检测,并且在最后进行非极大值抑制,去除掉重合度较高的目标框,最终得到当前整张图片中的检测结果。

1.1 数据预处理

划分训练/测试集:首先我们将HRIPCB 数据集中的693 张原始图片分成训练集和测试集,训练集和测试集的比例为5:1 其中训练图片有573 张,测试图片有120 张。

提取训练样本:我们根据瑕疵标签将所有瑕疵部分裁剪下来并缩放至相同尺度(50*50)作为当前类别的正样本,并提取正样本图片。我们在所有非瑕疵区域上随机提取负样本,负样本尺度和正样本尺度相同。

1.2 特征提取

在本文算法中,我们使用HOG 特征作为PCB 瑕疵的特征表达。HOG 是一种局部特征,首先被用于行人检测问题。HOG特征提取共包含五个步骤:(1)图像先通过检测窗口,进行图像归一化,即图像灰度化和Gamma 校正。(2)计算图像梯度图,获得目标轮廓信息。(3)我们将图像分成小块(cell),并且计算每个cell 中的梯度直方图信息。得到了cell 的描述子(descriptor)。(4)对于每一个重叠块(Block)内的cell 进行对比度归一化。并将cell 的描述子连接起来得到该block 的描述子。(5)将所有block 内的梯度直方图进行连接,最终得到整张图片的HOG 特征。

HOG 特征具有尺度不变性和光照不变性的特点,能较好地提取图像的局部细节信息,在图像的几何形变、光学畸变等情况下,都具有较好的特征不变性,因此适用性广泛。是各类计算机目标检测的基础[6,7]。

1.3 本文方法

在本文中,我们使用支持向量机来对所提HOG 特征进行分类,并得到检测结果本文旨在对基于SVM 的PCB 瑕疵目标检测算法进行改进,通过改进负样本提取方式以及对目标框大小进行选取来提升检测精度并且降低误检率。

1.3.1 负样本的提取

正样本是指当前类别的目标框所包含的图像,传统方法是在检测某一类样本时候将其它类别的样本作为负样本。而由于一共包含六种不同类型的瑕疵,我们如果使用不同类的正样本作为其他类别的负样本的话会导致学习偏差,影响检测结果。

为了提高PCB 瑕疵检测的准确性,我们首先对检测框架进行优化,即利用一个独立的SVM 对每个类别的瑕疵进行单独检测。这样的话,测试过程就变成了可以通过使用多个SVM 对PCB 进行并行检测,从而得到最终包含多个类别的检测结果。

本文采取了三种不同的负样本提取方式:(1)我们在正样本附近添加一个固定的偏移量,偏移量为50,我们选择正样本:负样本数量之比为1:1。我们记这种负样本提取方式为固定偏移量。(2)我们在正样本附近添加一个随机的偏移量,偏移量范围为0-100,我们选择的正样本:负样本数量为1:1。我们记这种负样本提取方式为随机偏移量。(3)我们在正样本附近随机添加一个偏移量,偏移量的范围是0-100,并且我们增大负样本的数量来更好的学习检测模型。在此方法中,我们选择固定数量的负样本,数量为100 个/图,我们记这种负样本提取方式为随机偏移量+增加样本数量。

通过以上方法对负样本提取方式进行改进从而提高瑕疵检测的准确性。

1.3.2 目标框的选取

我们从前人的工作中得出,目标框的大小会显著影响算法的检测结果。其原因是包含部分目标或者背景区域的样本会对SVM 的分类结果产生较大影响。之前所使用的方法是采用不同尺度的目标框进行检测,这种检测方法比较费时,并且比较依赖目标框的长宽比。因此,本文利用训练集的标签信息作为目标框大小来进行检测。

文中采取了两种目标框的选取方式。其中包括,随机选取目标框大小(50*50),其次我们使用训练集中平均的尺寸作为目标框的大小。本文选取目标框大小之后,可以显著提升算法检测精度。

2 实验结果与分析

2.1 PCB 瑕疵检测数据集

HRIPCB[1]数据集是2018 年提出的,并且作为PCB 瑕疵自动检测和分类任务的训练和评估,是由北京大学深圳研究生院机械感知重点实验室提出的。HRIPCB 数据集包括1386张图片,其中包括693 张原始图片以及693 张通过旋转得到的生成图片。这些图片中共包含有孔缺失(Missing hole),鼠咬(Mouse bite),电路开线(Open circuit),短路(Short),毛刺(Spur),以及铜线毛刺(Spurious copper)这6 种有瑕疵的PCB 图像。每张图片上包括从属于一种类别的多处瑕疵。数据集中具体的图片和瑕疵数量如表1 所示。

表1 HRIPCB 数据集统计数据,包括图片数量以及瑕疵区域数量

在本文实验中,我们使用检测准确率和误检框数量来评估检测结果。

(1)检测准确率:检测准确率是指所有检测成功的目标数量与所有目标数量之比。我们认为如果目标框与检测结果的交并比(Intersection over Union,IoU)大于阈值的话,就认为当前目标框检测成功,其中阈值设置为0.5。

其中bb 为检测结果框,gt 为真实瑕疵目标框,并且Area 函数表示区域的面积。

(2)误检框数量:我们使用误检框数量来作为误检率的评价指标,其中误检框数量为所有检测结果框的数量减去检测成功框的数量。我们使用上述算法,得到的错误检测框数量,如果误检框数量越少,证明我们算法的误检率越低。

2.2 实验流程

在HRIPCB 数据集中,每张图片中只包含一个瑕疵类别,所以我们需要对6 类瑕疵进行分类处理。因此,本文对比算法包含两种框架,即通过6 分类SVM 和6 个并行2 分类SVM 进行PCB 瑕疵检测。首先,对于6 分类的SVM 来说,我们每次输入一个类型的测试图片,我们只需要对应类别的检测结果,即我们将检测结果中的其他5 个类别的检测结果过滤掉。之后,我们将对应类别的检测结果作为最后结果进行输出(其中输出结果的格式为横坐标的最小值,纵坐标的最小值,横坐标的最大值,纵坐标的最大值,检测置信度)。其中检测置信度的定义为SVM 对于当前检测结果的准确程度。置信度越高SVM 对于给出的结果越肯定。

其次,对于6 个并行的2 分类的SVM 来说,我们的分类结果只包含是否属于当前类别,所以我们对于每一个类别的图片都需要训练这样的一个2 分类SVM。我们只需要提取出当前类别的检测结果作为最终结果进行输出(其中输出结果的格式为横坐标的最小值,纵坐标的最小值,横坐标的最大值,纵坐标的最大值,检测置信度)。

2.3 实验结果

如表2 所示,我们汇报了不同算法在检测不同类别瑕疵时的检测准确率以及平均检测准确率。可以发现6 分类的SVM 在数据集上的平均结果最低。平均准确率为27.7%。证明了SVM 直接使用到PCB 瑕疵检测领域时效果较差,我们转换为6 个并行的2 分类SVM 时,效果提升了1.9%。接下来我们使用本文提出的负样本生成方式,随机偏移量的方式时,准确率进一步提升了0.5%。对于不同类别的瑕疵来说,我们的2分类SVM 在使用固定偏移量负样本采集方式时在应对孔丢失瑕疵时表现良好,检测精度为33.3%。我们的2 分类SVM 在使用随机偏移负样本采集方式时在短路和铜线毛刺瑕疵上表现最好。本文提出的随机偏移量以及增加样本数量的方式在其余3 个类别上表现突出,并且取得了最高的平均检测准确率。

表2 不同算法在HRIPCB 数据集上的检测准确率

如表3 所示,我们给出了不同算法的误检框数量,我们使用误检框的数量来代表算法误检率的高低。相比于其他算法,我们的第三种负样本生成方式获得了最低的误检率,其误检框数量为1538 个,较6 分类SVM 来说降低了一倍的误检框数量。并且2 分类SVM+随机偏移量+增加样本数量算法在电路开线,毛刺,铜线毛刺标签上得到了最低的误检率。这证明了我们的负样本生成方式不仅可以提升算法的检测精度,并且还可以大幅降低误检率,提高算法的应用范围。

表3 不同算法的误检框数量

表4 使用不同目标框大小的算法结果

接下来,我们使用不同大小的目标框进行检测,在实验中,我们采用2 分类SVM+随机偏移量+增加样本数量作为基准算法,分别使用50*50 大小目标框和训练集大小的目标框进行检测。我们将实验结果放到表3-3 中,我们发现采用训练集大小的目标框在所有标签上表现都大幅超过基准算法,并且得到了6.5%的平均检测准确率的提升。由此,我们得出目标框大小对于基于SVM 的PCB 瑕疵检测算法起着至关重要的作用。

3 结论

本文提出了一个基于SVM 的PCB 瑕疵检测算法来实现检测准确率的提高并且降低误检率。首先本文算法使用HOG特征作为分类特征并使用SVM 作为分类器。我们从两个层面对传统基于SVM 的目标检测算法进行改进,来改善PCB 瑕疵检测流程并提高了检测精度。第一,我们通过优化SVM 训练过程中的负样本提取方式,并且对比了三种不同的负样本提取方式,第二,我们利用训练集的标签信息来指导测试过程中目标框大小的选择。本文算法在PCB 瑕疵检测数据集HRIPCB上进行了验证得知,本文提出的最终算法,分类SVM+随机偏移量+增加样本数量+目标框大小选取)实现了较基准算法9.3%的平均准确率提升,达到了37.0%的检测准确率。因此可以在实际运用中作为PCB 瑕疵检测的一种参考方法,来更有效的进行PCB 瑕疵检测,提高准确率,降低人工成本。

猜你喜欢
偏移量瑕疵类别
基于格网坐标转换法的矢量数据脱密方法研究
登记行为瑕疵与善意取得排除的解释论
哦,瑕疵
哦,瑕疵
壮字喃字同形字的三种类别及简要分析
搅拌针不同偏移量对6082-T6铝合金接头劳性能的影响
基于最小二乘平差的全极化SAR配准偏移量估计方法
服务类别
毫无瑕疵的推理
多类别复合资源的空间匹配