前面分享了机器视觉在汽车行业与交通行业的应用,其实机器视觉在工业上的应用是最广泛也是最具挑战性的,其中PCB板缺陷检测一直是机器视觉待攻克的难题。印刷电路板(PCB)是电子零件的基板,需求量极大,承载着电路元件和导线的布局,其优良与否对电子产品的质量有着重要影响。本篇论文从传统图像处理方式、传统机器学习及深度学习3大维度全面回顾了近 10 年基于机器视觉的PCB 缺陷检测算法,并分析其优缺点;介绍了9个PCB数据集,给出了评价 PCB 缺陷检测算法的性能指标,且在PCB数据集及流行的小目标数据集上分别对典型的算法进行了对比分析;最后指出了PCB缺陷检测算法目前存在的问题,展望了未来可能的研究趋势。
0 引 言
随着电子制造业的发展,电子产品趋向于多功能化、智能化、小型化。 作为电子产品重要的精密零部件,印刷电路板(printed circuit board, PCB) 扮演着骨架的角色, 承载着电路元件和导线的布局,可以说 PCB 及其上焊接的组件的质量与产品性能是唇齿相依的。随着集成电路 (integrated circuit, IC)封装技术的飞速发展,电子产品也逐渐变得轻薄、精小,同时这也使得 PCB 上的布线越来越拥挤,因此,对PCB的质量要求也越来越高。为了保证电子设备的性能,PCB 缺陷检测技术已成为现代电子产品行业中一项非常关键的技术。在印制 PCB 时,需要经过十几道复杂的工序,但即使严格把控每一道工序,也无法保证百分之百的良品率, PCB 上可能会存在诸多缺陷,如:“missing hole(缺孔)”、 “mouse bite (鼠咬)”、 “open circuit ( 开 路)”、“short (短路)”、“spur (毛刺)”、“spurious copper (假铜)”。 PCB 作为载体用于电子产品时,常采用表面贴片安装技术( surface mount technology, SMT) ,贴片元器件往往体积较小,但焊接的密度很大,这一过程常会存在以下问题:使用真空吸盘将 IC 放置在正确的位置上焊接时导致组件缺失(真空吹掉组件) ;涂抹锡膏等焊接操作导致的一系列焊点缺陷;机械性能差异等引起的组件位置偏移。如今,根据PCB缺陷的类型,已经研究与开发出了一些符合工业生产要求的检测方法,如人工目视法、仪器线上检测法、功能测试法、视觉检测法。其中视觉检测法包含:自动光学检测技术[2](automated optical inspection, AOI)、机器视觉检测技术[3](machine vision inspection, MVI)、自动视觉检测技术(automated visual inspection, AVI)。以上方法各有千秋,但显然传统的目视方法已经不能满足现代化产业的需求,其存在诸多主观不足因素,如疲劳、速度、成本等;线上检测法成本低,易操作,但编程调试异常耗时;功能测试法需在生产线中、末端配备专门的测试设备,且编程复杂,难推广;基于上述方法的局限性,视觉检测技术因其成本低、效率高已作为眼下PCB质检的主流方式。本文主要综述各种先进的基于机器视觉的 PCB 缺陷检测方法。鉴于国内关于PCB的缺陷检测方法的综述文章极少,本文对近十年来的文献进行了分析归纳。与文献不同的是,本文不仅总结了国内外PCB缺陷检测 的相关文献,还给出了公开的PCB数据集及算法评估指标,并针对典型的PCB数据集分析了经典算法性能,探讨了算法在检测柔性印刷电路板( flexible printed circuit board, FPCB)上缺陷时的性能,同时研究了一些典型算法在流行的小目标数据集上的性能。
1 基于传统图像处理方式的 PCB 缺陷检测方法
在机器学习方法流行以前,对于PCB缺陷检测问题主要应用传统的图像处理方式进行检测,这些方式 主要包含4种:傅里叶变换、主成分分析、小波变换、图像模式匹配。这4种方法并非相互独立,它们相互结合,相互渗透,共同组成了基于非分类器的PCB缺陷检测方法,其 中最常见的是,将其他方法融合在图像模式匹配中进行PCB的质量检测。从文献综述中可以看出,图像模式匹配方法主要分为:基于区域的匹配和基于特征的匹配。图像序列中对应像素差的绝对值( sum of absolute differences, SAD) 或平均绝对差值(mean absolute error, MSE)、图像的相关性(normalized cross correlation, NCC)和相位相关是基于区域匹配的典型度量。傅里叶变换、Hausdorff 距离和尺度不变特征变换 ( scale invariant feature transform, SIFT)是基于特征的匹配方式。
Cho等为了识别不正确装配的 PCB 组件,使用了 一种模式匹配方法,利用离散小波变换缩小 PCB 组件标准图像的尺寸,缩短了计算时间,实验表明采集图像时光线变化对该方法的影响较小,但对于一些纹理丢失图像的检测结果不佳。 Hagi 等利用相位相关对 PCB 裸板 进行对齐,然后应用图像相减法识别缺陷。Loch 等、 Szymanski 等 PCB 电子元器件缺陷的 SIFT 进行了评估,但实时性不佳。Dai 等使用了SIFT提取算法,并结合了粒子群优化,对传送带上的 PCB 图像进行匹配, 实验证明,该算法具有更强的鲁棒性和效率。
Wang 等提出一种局部信息 NCC 来检测 IC 图像 缺陷,其仅使用邻域窗口中的显著点来计算 NCC,较好地降低了误报率。Su 等先使用NCC定位倒装芯片焊接凸点的中心,然后提取了焊接凸点的特征进行缺陷检测, 得到较优的检测性能。然而,NCC 虽被广泛应用于机器视觉的工业检测中,但其计算量大,难以实现实时检测, 针对此缺点,Annaby 等提出了一种改进的低复杂度 NCC 用以定位PCB上缺失的IC,匹配时将二维子图像转换为一维特征描述符,并对生成的特征描述符进行离散余弦变换(discrete cosine transform, DCT),在变换域实现 NCC,不仅提高了计算速度,而且对噪声具有鲁棒性。Tsai 等提出了一种图像对齐的E-M ( expectation- maximization)方法用于 PCB 的质量检测,与传统的NCC使用窗口遍历整幅图像相比,该方法只需将待测图像的窗口固定在与模板相同的位置即可,减小了计算成本,且 该算法对旋转角度的变化非常敏感,增加了寻找旋转角度的计算过程。随后2019年,Tsai 等又提出了全局傅里叶图像重建方法,用来检测和定位PCB、IC这类非周 期模式图像中的微小缺陷,该方法改进了传统模式匹配 需依赖局部像素和傅里叶变换仅用于周期纹理的情况, 并且克服了旋转问题, 对光照变化不敏感, 可以检测1 pixel宽的微小缺陷。
Xie等提出了一种检测焊点的统计外观模型 (statistical appearance model, SAM)。 首先,利用单一高斯模型对合格焊点图像进行训练,建立统计模板;然后, 将焊点图像与模板逐像素进行匹配,得到差值图像,最后,通过计算差值图像中不匹配像素的个数来识别缺陷。 实验结果表明,该模型效率较高,但是,这种方法只使用 一个固定模板,导致焊点的检测性能不理想。为了解决这一问题, Cai 等提出了一种基于ViBe ( visual background extraction)算法的 IC 焊点检测方法。 通过对合格的 IC 焊点图像进行训练,建立了6个ViBe 固定模板,然后将输入图像与模板进行比较,检测 IC 焊点图像中潜在的缺陷, 实验结果表明,该方法具有合理的执行 时间和较高精度。 除此以外,Cai 等在中,建立了混合高斯模型(Gaussian mixture model, GMM)来模拟合格焊点图像中像素的真实分布,与文献[25] 不同的是,他们 通过混合几种高斯分布,对 SMT 焊点图像序列中每个像 素位置的变化值进行建模,实验表明,基于 GMM 的检测 方法在 SMT 焊点检测中也取得了令人满意的效果。 虽 然文献[25]和[26]中基于统计建模的方法对焊点的检 测性能较好,但它们没有探索任何先验知识,这对于基于 视觉的方法来说往往是很重要的。 随后,Cai 等[27] 将 IC 焊点检测定义为一个优化问题,使用基于鲁棒主成分分 析(robust principal component analysis, RPCA) 对焊点的 低秩分量进行分解,并结合了感兴趣区域的位置先验知 识,以便更好地检测 IC 焊点质量,然而,众所周知,RPCA 是一种非常复杂的数学方法,比较耗时且难以理解,目前 还没有关于 RPCA 在实际工业中的应用的报道。 虽然文 献[25]中使用了多个模板,一定程度地改善了 IC 焊点检 测的性能,但固定模板问题仍然存在,由于有限的固定模 板很难表征 IC 焊点的所有外观,影响检测精度,因此,与 文献[27]相似,Ye 等[28]也使用了优化问题的思想,使构 造的模板可以自适应地表征每个 IC 焊点,该优化问题由 弹性网络解决。 受文献[25]启发,针对其存在的固定模 板问题,Li 等[29]利用更多的 ViBe 模板对合格的 IC 焊点 图像进行统计模型训练,然后,结合模板聚类和随机模板 策略,构造一个均衡的潜在缺陷图像 ( potential defect image, PDI)的评价集,使用优化后的 PDI 对 IC 焊点图 像质量进行评估。
由上可以看出,在工业检测应用中传统的模板匹配 方法对平移和光照敏感,只能检测较大尺寸的缺陷,基于 傅里叶的特征提取和图像重建技术只能检测均匀纹理或 周期性图案表面的局部缺陷,基于小波的缺陷检测方法 也主要关注均匀纹理表面的缺陷检测。 因此在实际检测 中可结合各种方法的特点,以提高 PCB 缺陷检测算法的性能。综上,主要方法对比如表 1 所示:
2 基于机器学习的 PCB 缺陷检测方法
采用基于机器学习的方法对 PCB 进行缺陷检测时, 可分为传统的机器学习方式和深度学习的方式。
2.1 基于传统机器学习的 PCB 缺陷检测方法
采用传统的机器学习方式时,一般先对 PCB 图像进 行特征提取,如灰度、颜色、几何形状等特征,缺陷特征提 取环节主要是为后续分类提取出一些特征,并且在某些 情况下带来更好的可解释性[30] ,然后再将这些特征输入 分类器进行分类。 常用的 PCB 机器学习分类器包括支 持向量机(support vector machine, SVM)和各种传统的神 经网络。
Jiang 等[31]提出了一种基于颜色生物特征的 PCB 锡 膏缺陷检测方法,使用生物启发颜色特征( biologically inspired color feature, BICF) 来描述锡膏图像,然后引入 了 一 种 名 为 PNDA ( positive-negative discriminative analysis)的子流形学习( sub-manifold learning,SML)方法 提取嵌入在外部高维空间中的本征低维 BICF 流形。 PNDA 既保留了局部的几何结构,又保留了整体的鉴别 特性,并 且 可 将 焊 锡 膏 分 为 高 质 量 和 低 质 量 两 类。 Xue 等[32]通过颜色特征对 PCB 板缺陷点进行定位、检 测。 Kumar 等[33]在 PCB 板的非铜件检测部分,使用 3D 非均匀颜色直方图进行缺陷检测,取得了较好的检测结 果。 但因为颜色特征易受光照影响,使得该类方法的适 用范围较小。 Wu 等[34] 从焊点图像中提取了 IC 焊点的 形状特征、数字特征和逻辑特征,用于检测 PCB 上回流 后的 IC 焊点缺陷。 实验结果表明,该方法能够有效地识 别出 IC 的焊点缺陷,如多焊点、缺焊点、无焊点、引线抬 起、引线弯曲、移位、桥接和伪接头等。 Hua 等[35] 采用特征跟踪角检测器和快速鲁棒特征描述子( speeded up robust feature descriptor, SURF) 描述符进行图像特征的 提取,解决了哈里斯(Harris)拐角检测中拐角信息丢失、 位置偏移等问题,进而提高 PCB 板缺陷检测效率、精度。 苑玮琦等[36]利用几何特征在柔性 PCB 板进行走线凸起缺 陷检测,有效地屏蔽噪声干扰,对 FPCB 图像凸起的走线进 行有效检测。 Zhong 等[37] 先对柔性 IC(flexible integrated circuits, FICS)图像的背景与缺陷之间(即边缘区域)的每 个像素背景特征进行概率计算,然后实现包含黄色电路背 景、带斑点的薄膜背景和黑色背景的 FICS 图像缺陷分类。
文献[38-39]根据先验知识将 SMT 电路板焊点划分 为若干子区域,然后提取每个子区域的各种特征,利用 AdaBoost 算法对特征进行最优选择,最后采用基于分类 回归树(classification and regression trees, CART) 将缺陷 检测定义为一种二叉决策树来确定最终的类型,实验表 明,该方法提高了检测速度。 Wu 等[40] 提出了一种带有 特征选择方法的两阶段(贝叶斯和 SVM) 分类器来检测 焊点。 实验结果表明,该方法减少了需要提取的特征数 量、提高了精度。 在提取了 PCB 焊点颜色及几何特征的 基础上,Wu[41]又提出了一种随机森林集成的方法,对缺 陷进行分类, 实验结果表明, 该 方 法 精 度 较 高。 Mak 等[42]提出了一种基于贝叶斯的面向焊锡喷射球头部框 架装配过程的 AOI 专家系统,该系统由 3 个增强的朴素 贝叶斯网络概率分类器、一个检查分类器和一种图像处 理技术组成。 他们提出的系统可以达到 91. 52% 的准确 率。 Tao 等[43]提出了一种新型的级联自动编码器体系结 构,可用于缺陷的分割和局部化。 Acciani 等[44] 的从输入 的焊点图像中提取几何特征,并将其送入多层感知机 (multilayer perceptron, MLP),用以检测焊点的质量,为了 达到更好的准确性,Acciani 等[45] 在文献[44]的研究基础 上进行了进一步的研究,提取 10 个几何特征和 8 个小波特 征作为 MLP 的输入,用于区分 5 种焊点缺陷。 实验结果证 明,该方法虽然能取得较好的检测性能,但特征提取时,对 于焊点图像中的重要特征提取还是存在困难的。
在图像识别和目标检测中,神经网络已经取得了非 常优秀的结果[46] 。 Meyer 等[47] 建立了一个神经网络框 架,包括反向传播( back propagation, BP) 神经网络和径 向基函数神经网络来预测球栅阵列焊点的质量和可靠 性。 Wu[48]采用基于 Levenberg Marquardt 反向传播神经 网络的截面积、湿润高度和接触角特征对焊点进行检测。 上述基于分类器的方法成功地检测了一些类型的片状元 件,如片状电容器,但对于 SMT 焊点这类小尺寸缺陷时, 检测精度不高。 Wu 等[49] 提出了一种基于 BP 神经网络 和遗传算法的 SMT 印刷电路焊点缺陷诊断方法,在对特 征进行分类前,引入遗传算法来选择和去除冗余的输入 特征,以此避免神经网络过拟合问题,实验结果表明,输 入特征的数量减少,检测速度提高。 综上,主要方法对比如表 2 所示:
2.2 基于深度学习的 PCB 缺陷检测方法
对于 SMT 焊点缺陷小的特点,Cai 等[26] 提出了一种用 于自适应学习焊点图像感兴趣区域(region of interest, ROI) 的级联卷积神经网络。 该方法将学习到的 ROI 和 SMT 焊点图像输入至两个卷积神经网络( convolutional neural network, CNN),然后,通过级联学习的 CNN 得到了较优 的检测结果。 随后,Cai 等[50] 提出了一种使用了 3 个 CNN 的级联网络用于检测 SMT 焊点,一个 CNN 进行自 适应的学习图像 ROI,然后与输入图像一起送入其他两 个 CNN 中,该方法不需要提取底层特征,且精度高,具有泛化性,可适应于其他目标检测任务中。 Park 等[51] 针对 检测图像小于训练图像而导致的 CNN 性能下降问题,设 计了 MarsNet,该网络通过改进膨胀残留网络( dilated residual network, DRN)获得更高分辨率的特征图,并设 计了水平垂直池化(horizontal vertical pooling, HVP)收集 特征图中的位置信息,提高了池化效率,且采用多标签评 分模块和阈值估计模块实现多标签分类,最后在锡膏检 查(solder paste inspection, SPI)图像上验证了网络具有 良好的性能。 同年,Park 等[52] 针对焊膏缺陷( defective solder paste pattern, DSPP)图像(从 SPI 图像中获得)的 稀疏性、大小不一、数据集有限等原因,对传统 CNN 进行 改进,提出了一种双层缺陷检测点网 D3PointNet 检测 DSPP 图像上的锡膏打印缺陷。 该网络从 DSPP 图像中 提取点云特征,然后在微观和宏观两个语义层次上进行 缺陷检测,在微观层面上,通过分割来识别每个点的缺陷 类型,在宏观层面上,采用多标签分类方法对 DSPP 图像 中出 现 的 各 种 打 印 机 缺 陷 进 行 识 别。 与 上 文 中 的 MarsNet 及其他 CNN 模型相比,D3PointNet 对输入数据 的稀疏性和大小变化具有更强的鲁棒性。 Chan 等[53] 对 IC 焊接质量进行检测时,提出了一种结合机器学习和人 类判断的检测框架,该检测框架结合了 CNN、SVM 和圆 形霍夫变换( circle Hough transform, CHT) 算法,并设定 阈值切换使用人工检测。 实验结果表明,与经典的 CNN 和其他常用的分类器相比,所提出的框架分类结果更佳。 针对 FPCB 缺陷的非显著性且不同种类之间的相似性, Luo 等[54]提出了一种基于 CNN 解耦框架,其中定位任务 和分类任务通过两个特定模块进行解耦。 并为了有效地 定位非显著性缺陷,在定位时,提出了一种多层聚合块作 为定位特征增强模块,同时,为了准确分类相似的缺陷,在 缺陷分类任务中提出局部非局部块作为 SEF 增强模块。 与现有的表面缺陷检测网络相比,该框架的平均精确度 (mean average precision, mAP)达到了 94. 15% 。
Wu 等[55]提出了一种使用 Mask RCNN 进行焊点缺 陷识别的方法,可同时实现焊点缺陷的分类、定位和分 割。 在训练骨干网络时,加入了迁移学习的方法,使用小 目标数据集( MS-COCO) 进行初始化训练,实验结果表 明,该方法可达到 100% 的分类正确率,以及 90% 以上的 分割正确率。 同年 Wu 等[56] 为了更快地生成 SMT 焊点 掩膜,以便高效且低成本的对 SMT 焊点缺陷进行定位, 使用一种新方法对 Mask RCNN 进行训练,可半自动的生 成掩膜。 该方法使用基于图割的图像分割输出像素级的 结果,然后通过图像变换获得图像掩膜。 该方法可以应 用于自动光学检测设备,也可以很容易地扩展到其他训 练中需要图像标注的领域。
针对 PCB 缺陷检测误检率和漏检率高、效率低的 问题,Ding 等[57]在 Faster R-CNN 的基础上提出了微小缺陷检测网络( tiny defect detection network, TDD-Net) , 该网络采用 ResNet-101 作为骨干,通过特征金字塔网 络( feature pyramid networks, FPN) 进行特征融合,使用 多种 PCB 缺陷“ anchor”尺寸(152、252、402、602、802) , 并在公共 PCB 缺陷数据集上取得了较好的检测结果, 实验 证 明, 该 网 络 具 有 较 强 的 鲁 棒 性 和 泛 化 性。 Hu 等[58] 在 Faster RCNN 的 基 础 上 进 行 改 进, 使 用 GARPN 代 替 区 域 生 成 网 络 ( region proposal network, RPN) ,自适应地生成锚点,且为了加快网络速度,结合 了 ShuffleNetV2 中的剩余单元,实验结果表明,改进后 的模型 mAP 及检测速度均有所提高。 Li 等[59] 在检测 PCB 双列直插式组件缺陷时将 Faster RCNN 和 YOLOv2 集成起来,并安装在 AOI 上,提高了检测率并降低了误 报率。 然而,当该方法应用于其他生产线时,由于环境 的变化,如光照、进样方向、机械偏差等,导致检测性能 下降。 次年,Li 等[60]针对上述问题,提出了一种重新训 练机制,直接从异常中进行学习,并成功应用于 3 条生 产线,实现了各生产线 PCB 板焊接缺陷的高效检测、异 常数据采集和检测模型优化。
针对 PCB 缺陷小且对比度低的特点,Lin 等[61] ,设计 了边缘多尺度反向注意网络(edge and multi-scale reverse attention network, EMRANet),在特征提取过程中,设计了 一种新的金字塔边缘模块和一种可以获得不同尺度和分 辨率特征的多尺度融合(multi-scale fusion, MSF) 模块。 此外, 在 特 征 融 合 过 程 中, 设 计 了 尺 度 模 块 ( spatial channel domain reverse attention)模块和两个专门提取微 小和低对比度缺陷的新模块,融合了局部和全局特征。 实验表明,EMRANet 的性能优于现有的方法。 Li 等[62] 提出了一种扩展 FPN 的检测模型,该模型融合了高层与 底层语义信息,并引入了焦损函数。 实验表明,该方法具 有良好的可移植性,准确率达到了 96. 2% ,但其虽然在人 工标记的 PCB 缺陷数据集上平均精度得到了提高,在面 对实际的工业生产(噪声干扰、曝光等) 时,该网络性能 并不是最佳的。
综上,主要方法对比如表 3 所示。 至此可以看出, 传统图像处理方式,如模板匹配方法只能对对象的位 置进行匹配,而传统的分类方法,如传统的机器学习方 法,只能对缺陷类型进行分类,但一些基于深度学习的 方法,如实例分割网络可同时对缺陷进行分类、定位和 分割。
3 数据集和性能评价指标
3.1 PCB 缺陷数据集
数据集在对象检测中发挥了关键作用,因为它们能 够在不同竞争算法之间进行标准的比较,并为解决方案设定目标。 现已发布了一些关于 PCB 的公开数据集包 括 PCB Defect[63] 、 PCB Defect-Augmented[57] 、 FICS- PCB[64] 、PCB DSLR[65] 、 PCB-METAL[66] 、DEEP PCB[67] 、 HRIPCB[68]等,详见表 4。 图 1 展示了 PCB Defect 数据集 中的缺陷类型。
图一 略。
3.2 性能评价指标
1)精度、查全率和平均精确度评价 PCB 缺陷检测的 性能时有 3 个常用的指标, 即精 度 ( precision)、 查 全 率(recall)和平均精确度( mAP)。 Precision 是检测到的 正确结果与所有实际检测到的结果间的比率,Recall 是 检测到的正确结果与所有应检测到的结果间的比率, mAP 是各类预测正确的结果占总样本数的平均值。
式中:n 为总样本数,m 为类别数,其余参数定义如表 5 所示。
mAP 是许多目标检测数据集常用的评价指标。 在 PASCAL-VOC 中 mAP 为 重 叠 度 ( intersection over union, IoU)等于 0. 5 时的值;在 MS-COCO 数据集中,以 0. 05 为间隔计算[0. 5,0. 95] 间 10 个不同 IoU 的 mAP, 且在 MS-COCO 中还分别计算了小型、中型和大型目标的 精确度(average precision, AP);KITTI 数据集中计算了不 同检测难易度的 mAP。 具体指标如表 6 所示。
2)ROC、AUC 和 IoU 接 受 者 操 作 特 性 曲 线[69] ( receiver operating characteristic, ROC)曲线和曲线下的面积[70] ( area under curve, AUC)也被用于测试检测性能。 ROC 曲线描述 TP 与 FP 间的关系。 图 2 为两条 ROC 曲线,ROC 曲线越接 近左上角,说明 FP 越低,TP 越高,模型越好。 AUC 为评 价 ROC 曲线的指标,即 ROC 曲线下的面积。 在使用 SSD 等模型的对象检测中,通常使用 IoU 来判断对象是否被 正确 检 测。 IoU 表 示 模 型 给 出 的 边 界 框 ( detection result, DR)与真值( ground truth, GT) 边界框间的重叠 率。 如果 IoU 大于预定义的阈值(通常为 0. 5),则认为 对象检测成功。
4 PCB 缺陷检测算法性能评估
本文从传统图像处理方式和机器学习两大维度总结 了 PCB 缺陷检测的方法。 基于对 PCB 缺陷检测算法的 分类,分别在表 7 和 8 中展示了一些最先进的机器学习 算法在 PCB Defect 数据集上的检测结果,表 9 展示了一 些算法在 FPCB 数据集[71] 上的性能比较,表 10 和 11 中 展示了一些算法在公共数据集 MS-COCO 和 PASCAL- VOC 上的性能对比。
如表 7 所示,列出了一些算法在 6 种缺陷上测得的 AP和 mAP。 在监督学习部分,HOG + SVM 、LBP +SVM 和 SIFT + BOW +SVM 算法对于多类缺陷的识别准确率 较低,这些基于浅层特征的方式所得的 mAP 值要明显低 于使用深度特征的方法(第 2,3,4,5 行),以“Mouse bite” 为例,基于 AlexNet+SVM 方法的 AP 要比其他 3 种至少 高出一倍多,对于这样显著地增长,可说明深度特征学习 的性能更好。 6 种缺陷中,“Missing hole” 类别较容易检 出,MLDN 的 AP 最高达到 99. 6,而“Open circuit”类别特 征不容易捕获,特征较少,因此 AP 最高达到 97. 3。 由于 PCB 这几种缺陷都较小,文献[78]中结合偏振信息和红 外信息的模型获得了较高的 mAP。 对比各种骨干网络 发现“ResNet101 + FPN”表现最佳在 PCB defect 数据集 上 mAP 为 96. 2% 。
表 8 参考于文献[62],比较了一些网络在不同 IoU 下的性能。 表中 MLDN [78]在 Faster RCNN 的基础上扩展 了 FPN,其 mAP 值为 96. 2% ,比 Faster RCNN 高 5. 4% , 比 UF-Net 高 0. 6% ,这是因为 Extended FPN [62]扩展了 FPN 网络,融合了多尺度的特征,提高了网络性能,如表 8 中所示,使用了 FPN 的网络与原网络相比性能得到了 提升,但耗时会增加,即 FPS 会变小,如 Extended FPN (ResNet-101-FPN) 的 FPS 为 13. 5, 原 Faster RCNN 的 FPS 为 39. 7。 MLDN 在 MobileNet 的基础上进行改进,性 能与 Thundernet 相似,但因为 Backbone 中融合了 MSAM 和 C-PAnet,所以其精度更高,而 YOLOv3-tiny 的速度优 势显著,但精度相较于其他网络较低。 对于工业上的 PCB 缺陷检测来说,速度是一项需要考虑的重要指标,但 精度问题则更为迫切。
表 9 引自文献[54],文中使用了 FPCB 数据集,给出 了宝贵 的 实 验 结 论。 由 表 9 中 可 以 看 出, FPCB 中 “Scratch” 类型缺陷较难检测,SOTA 与 Cascade RCNN、 Libra RCNN 在此类缺陷上性能较优,“Open”类型缺陷检 出率很高,检测起来最为容易。 在表 9 中,突出了部分经 典网络添加 FPN 模块后的性能变化,这些网因融合了多 尺度特征或上下文语义信息性能皆有所提升。 除此外, 还可以看出在相同的网络中使更强的 Backbone,mAP 值 也会相应增加,如 Faster RCNN、Cascade RCNN 及 Libra RCNN,Backbone 升级为 ResNet-101 后,mAP 分别提升了 0. 4% ,0. 5% 和 0. 8% 。
表 10 中反应的是,在 80 个类别的 MS COCO 数据集 上所总结的一些典型分类器的检测性能,在大、中、小这 3 类检测物体中,大物体检测性能( APL ) 最佳,中物体 (APM )次之,小物体(APS )最差,这也说明了对于 PCB 缺 陷检测这类小目标物体检测的难度。 其中 RetinaNet、 RefineDet512+ +、M2Det800、M2Det800 + +、Faster RCNN、 Libra RCNN 、Mask RCNN、R-FCN++、Grid RCNN、SNIP、 SNIPER 的 APS 都达到了 20% 以上。 RefineDet512++与 M2Det800++通过对 FPN 进行改进使特征更加融合,分别 将 APS 由 16. 6% 、 22. 1% 提 升 至 25. 6% 、 29. 2% 。 而 SNIPER 使用了多尺度特征,APS 提高至 29. 6% 。 此外Faster RCNN 与 Mask RCNN 通过使用更强大的 Backbone 对 APS 都有一定的提升。
在表 11 中,总结了一些典型的分类器在 VOC2007 数据集上的性能。 对比表 10 与 11 可以看出 MS-COCO 数据集的检测难度远大于 PASCAL-VOC 数据集[106] 。 这 可能是 因 为 MS-COCO 数 据 集 的 每 类 图 像 数 量 大 于 PASCAL-VOC 数据集,图像背景复杂,每张图片的目标 多[107] ,且与 PASCAL-VOC 数据。
5 存在的问题及展望
从上文可以看出,PCB 缺陷检测仍有广阔的发展空 间。 虽然目前已经提出了许多先进的算法,但由于 PCB 自身的属性,对于其缺陷的检测,仍存在一些难以避免的 问题,具体如下所示:
1)小目标问题。 对于 PCB 缺陷检测,首先要面对的 问题就是小目标问题,PCB 上的缺陷及一些元器件都是 极小的,尤其对于裸盘上一些线路缺陷如开路、短路等都 是毫米级缺陷。 但目前的目标检测算法大抵是针对大中 物体的,对于小目标检测效果不佳。 一方面因为,PCB 缺 陷本身背景很复杂,不易将缺陷与背景分开,另一方面对 于所有的小目标物体来说,精确定位的要求更高。 所以 对于 PCB 缺陷这类微小物体的检测,一直存在有技术 瓶颈。
2)小样本问题。 工业生产中可以提供的缺陷样本有 限,例如上述数据集中,许多缺陷种类是人工合成的,且 数量很有限,如 FICS-PCB 数据集仅从 31 个 PCB 样本上 采集。 如今,很多检测网络都是在通用数据集上进行测 试的,这使得在面对实际问题时网络性能往往不佳。 目 前对于小样本的问题有一些解决思路,如迁移学习将其 他一些目标检测网络迁移到 PCB 检测中;数据增强策略 通过数据增强弥补数据量不足的问题;多模态策略可融 合其他模态信息增强模型;无监督学习帮助算法摆脱对 数据集的依赖。 虽然有以上诸多解决思路,但在 PCB 缺 陷检测中该问题仍旧存在,其可用的数据集很有限,且在 工业流水线上可采集到的缺陷类型和数量更有限,因此 小样本是 PCB 缺陷检测中一个亟待解决的问题。
3)复杂背景问题。 前文中提到 PCB 的制作越来越 精良,追求精小、轻薄,以至于其上的布线及焊接密度都 非常的大,PCB 缺陷又极小,这使得缺陷背景与前景难区 分,面临着复杂背景的问题。
4)实时性问题。 由于 PCB 缺陷目标小且背景复杂, 常采用高分辨率相机进行采集,得到的图片像素数目很 多,且对于目标小且背景复杂的物体,为了提高精度网络 结构容易过大,这些因素都会对工业流水线上的 PCB 质 检实时监控效率产生影响。
综上,虽然最近在 PCB 缺陷检测领域取得了可喜的 进展,但与人类认识水平相比,仍存在很大差距,需要做 的工作还很多,如以下几个方面:
数据集更新策略及其他。 文中介绍了相关数据集, 根据文献情况可知,较为流行的数据集为 PCB Defect 与 DEEP PCB,但这些数据集中的图像数量及缺陷种类都很 有限,为提高 PCB 缺陷检测算法的精度,使算法更有通 用性,有必要研究一种大规模的数据集,当然这也是小目 标类检测的一个共同的发展方向。 再者未来也可以研究 无监督学习,以减少对数据集的依赖。 除此之外,迁移学 习和 GAN( generative adversarial network) 也是一个不错 的选择。
多标签分类问题中的标签之间的相关性[114] 。 多标 签分类又称多目标分类,用于 PCB 缺陷检测中时,既可 以预测输入图像中缺陷的类型,又可以预测该缺陷的严 重程度等属性。 近年来,理解多标签问题中标签之间的 相关性已成为一个重要的研究方向。 因此,在未来的工作中,可利用图像中出现的标签之间的相关性来提高检 测算法的性能[51] 。
模型再训练策略。 有时在一条固定的生产线上训练 好的模型,一旦更换了生产线或改变了 PCB 上的排线布 局,模型的性能就会有波动,因此面对此类问题时,可考 虑使用再训练机制,如何在模型中加入再训练机制,以及 如何在一个系统上启动多个再训练过程,都是值得思考 的。 此外,该怎样维持训练策略与实时性检测间的平衡 也是引人深思的[60] 。
多任务联合学习及多尺度特征融合策略。 对于 PCB 这类目标较小的缺陷,可结合不同检测方法以提高检测 性能,且在特征提取时可以采用多尺度特征融合,以提高 小目标检测精度。 具体来说,当同一个网络同时联合多 个任务,如目标检测、语义分割等,可大幅提高单任务算 法性能;众所周知,不同尺度的特征适合处理不同大小的 目标,多尺度融合对于缺陷较小的 PCB 来说是一个不错 的选择。 所以多任务联合学习及多尺度特征融合也是 PCB 缺陷检测算法发展的一个不错的方向。
6 结 论
PCB 缺陷检测由于其目标较小、背景复杂、数据集有 限在机器视觉领域中是一个具有挑战性的问题。 本文从 传统图像处理方式、传统机器学习及深度学习 3 大维度 全面回顾了基于机器视觉的 PCB 缺陷检测算法。 搜集 了 9 个公开数据集,并在 PCB Defect 数据集上做了全面 的算法比较,除此以外还在目前比较流行的小目标数据 集如 PASCAL-VOC、MS-COCO 上对比分析了一些经典的 目标检测算法。 旨在能够为研究人员提供便利,可以快 速地了解 PCB 缺陷检测这一课题的研究现状及一些先 进的算法。
参考文献
略。
感兴趣的同学可以在知网上下载此论文
文章来源:吴一全,赵朗月,苑玉彬,杨洁. 基于机器视觉的 PCB 缺陷检测算法研究现状及展望 [J]. 仪器仪表学报, 2022,43(8)
这篇论文可以说是把PCB缺陷检测算法近几年的研究都概述的很透彻了,在做机器视觉这块研究的同学可以去搜一搜这篇论文。