赞
踩
TDD-net: a tiny defect detection network for printed circuit boards
TDD-net:印刷电路板微小缺陷检测网络
//2022年6月12日下午14:15开始学习笔记
文章为了解决常用的TDD方法对于复杂多样PCB检测的局限性,提出了一种微型缺陷检测网络(TDD-NET),从而提高了PCB检测的性能。该方法使用CNN中特有的金字塔层和多尺度选项。TDD-NET网络的改进之处:1.使用k-means聚类方法得到区域建议相关的锚点;2.TDD-Net加强了不同层次特征图之间的联系;3.使用硬示例挖掘技术,更好的解决了小数据集的问题,以提高了区域建议网络的质量。
现在对PCB板的缺陷进行检测时存在的问题:
1.由于市场上存在的PCB板复杂多样,传统的对PCB板缺陷检测的方法是无法实现通用的;2.PCB板上的缺陷种类和特征是多种多样的;
3.收集大量PCB在业界是比较困难的;
本文主要研究了6种PCB板上常见的缺陷:缺孔、老鼠咬伤、断路、短路、杂散和假铜。
接着本文介绍了传统的缺陷检测方法的不足:
要求检测图像与标准样品对齐,存在对比度低,形状不规则,亮度不均匀;
作者将Faster RCNN模型在小目标检测中的不足做了说明,然后重新设计了体系结构,以适应微小目标的检测。
然后作者提出了PCB板中存在的挑战:
在CNN网络前馈传播的过程中,微小目标在特征图中的占比面积会逐渐减少甚至消失。
文章基于上述问题进行的改进:
1.使用数据增强增加数据集;
2.提出了TDD-Net,该网络架构融合了不同层次之间的关系,并从较低级的特征图层上获得缺陷的空间位置信息,从较高级别的特征图上获得缺陷语义信息;
3.同时,为了解决工厂中存在的实际问题,文章还提出了一些技巧;
本文的主要贡献:
三类PCB检测方法:非参考方法、参考方法、混合方法;
参考方法使用标准PCB图像和检查过的PCB图像之间的真实像素对像素(或特征对特征)比较。这些方法可以检测明显的缺陷,如短路、断路和缺轨。
通过异或逻辑运算,图像减法是最简单、最直接的参考方法。减法运算运行得很快,因为它只有两种类型的像素值可供比较。这种方法的优点是易于在专用硬件中实现,并允许验证PCB[15]几何结构中的总体缺陷。
异或运算的主要困难在于确定参考图像和检查图像的精确对齐。因此,特征匹配作为一种改进的经典参考方法被提出,特征匹配从整个图像中提取更健壮的特征,并建立配准映射关系。通常,提取的特征包括特定区域的点、边、轮廓和质心,如HOG、SIFT和SURF。SIFT特征对缩放、旋转、仿射和照明变化具有鲁棒性。SIFT特征匹配是目前特征检测与匹配算法中最有效的算法。
另一个重要的参考方法是相似性度量。Gaidhane等人[6]提出了一种对称矩阵,该矩阵使用两幅对比图像的伴随矩阵进行计算。然后将对称矩阵的秩作为缺陷检测的相似性度量。无缺陷图像的秩数值为零,缺陷图像的秩数值明显较大。这种方法的优点是,在不计算特征值和特征向量等特征的情况下进行相似性度量。然而,它仍然受到环境噪声的影响。
在参考方法中,有几个关键的实际问题:错位、颜色变化、反射率变化、周围变化和模糊边界缺陷分割。此外,从实际生产环境中获得这样一个完全标准的PCB图像是相对不现实的。
非参考方法基于对一般设计规则的验证。目前,利用深度神经网络进行特征学习已被应用于缺陷识别和分类。一些优秀的目标检测方法,如R-CNN系列(R-CNN【16】、Fast R-CNN【13】、Faster R-CNN【8】、DarkNet【17】、SSD【9】和R-FCN【18】,在缺陷检测方面有明显的改进。
F、 Shahrzad等人【19】提出了一种用于钢轨表面缺陷自动检测的深度学习方法。本文在经典神经网络的基础上,提出了三种DCNN(适用于小型、中型和大型)结构。苏库普。D等人[20]在金属表面缺陷的光测量立体图像数据库上训练CNN。经典的CNN已经明显优于基于模型的方法。然而,这些传统的CNN方法通常使用滑动窗口来定位缺陷,如果输入图像具有不同的大小和比例,则很难确定窗口的大小。Y、 Cha等人【21】开发了一种基于快速R-CNN的结构损伤检测方法,以检测五种类型的表面损伤:混凝土裂缝、钢腐蚀(中高水平)、螺栓腐蚀和钢分层。然而,到目前为止,几乎没有针对PCB缺陷提出的缺陷检测网络。
混合缺陷检测技术结合了参考和非参考方法。Z、 Qu等人[22]提出了一个新想法,将传统特征处理和深度学习相结合,构建一个称为PartsNet的深度卷积网络,用于汽车发动机精密零件缺陷检测。他们还构建了一个由几种典型的传统方法组成的精炼网络,以提高适应能力并实现端到端的学习。因此,PartsNet利用密度切片、区域分割和区域过滤等典型特征处理方法的优势,克服了深卷积网络在检测小缺陷区域方面的弱点。
建议的TDD网络遵循PCB缺陷检测的Fast R-CNN检测范式,但有三个新的变化,如图3所示。首先,在PCB缺陷数据集上训练快速R-CNN的CNN模型。在微调过程中,我们应用了数据增强技术并设计了合理的锚。为了提高微小缺陷的检测性能,采用了多尺度特征融合策略。在线硬示例挖掘应用于培训阶段,以提高RoI建议的质量。整个培训过程遵循端到端的培训模式,即Faster R-CNN。
受YOLO 9000【24】的启发,不是随意选择锚定尺度,而是在PCB训练集边界框上使用k均值聚类来自动找到合理的锚定尺度。带距离度量的标准k-均值使用如下[24]:
然后,具有方框区域的尺度为{152、2 52、4 02、6 02、8 02}像素,四个纵横比为{2、3、4、5}。另一方面,最近的深度学习算法的成功在很大程度上依赖于大规模的标记训练数据。相反,如果没有足够的训练样本,参数众多的CNN有过度拟合的风险。由于保密电路设计和昂贵的采集,大规模PCB缺陷数据集也是一个限制性要求。因此,有人提出了数据增强技术,以防止在丰富数据集的同时过度拟合。
在这项工作中,自然采用了六种传统的数据增强技术,包括添加高斯噪声、改变光线、旋转图像、翻转、随机裁剪和移位。添加高斯噪声或更改灯光等简单操作不需要更改边界框的值。然而,在旋转、裁剪和移动图像时,边界框的相应值已更改。
数据扩充的关键问题是在随机裁剪阶段截断的缺陷(如图4所示)。因此,我们需要设置一个阈值并丢弃这些异常的边界框。随机裁剪会导致缺陷被截断。
TDD网络采用特征金字塔结构【14】,通过自上而下的路径和横向连接,将低分辨率特征、语义强的特征与高分辨率、结构强的特征融合在一起。
TDD-Net网络进行特征融合的过程:高分辨率特征地图具有很强的结构信息,这有助于检测小对象。我们的自顶向下特征图是通过将空间分辨率向上采样2倍来构建的,为简单起见,选择了最近邻向上采样。受【14】的启发,我们建议将低级别和高级别的特征映射连接起来。因此,相应的自底向上特征映射经历1×1卷积层,以减少通道维数。然后,通过元素加法将上采样映射与相应的自底向上映射连接起来。例如,最后一层的最后一个输出特征映射{C5}经过1×1卷积层生成最粗糙的分辨率映射,然后对最粗糙的特征映射进行因子2的上采样,最后将上采样的特征映射与低级特征映射合并。最后但并非最不重要的是,在每个合并的地图上附加一个3×3卷积层以生成最终的特征地图。最后的特征地图集被表示为{P2、P3、P4、P5},分别对应于空间大小相同的{C2、C3、C4、C5}。
在将不同尺度的ROI分配给金字塔级别的阶段,特征金字塔的级别{Pk}由【14】计算:
其中,224是规范的ImageNet预训练大小,k0是目标级别,其中w×h=224^2的RoI。w是RoI的宽度,h是RoI的高度。
我们首次尝试将在线硬示例挖掘策略应用到PCB缺陷检测任务中。受[26]的启发,只读RoI网络在功能图和所有RoI上运行正向传递。然后,硬RoI模块使用这些RoI损失来选择示例。在线硬示例挖掘(OHEM)可以用于训练任何基于区域的convnet,它自动选择硬示例,而不是使用多个启发式和超参数,从而提高检测效率。
总损失是四种不同损失的加权和:rpn\u loss\u bbox、rpn\u loss\u cls、fast\u rcnn\u loss\u bbox和fast\u rcnn\u loss\u cls。快速R-CNN网络有两个同级输出层(cls分数和边界框分数)。第一个输出k+1类别上的离散概率分布(每RoI),p={p0,…,pk}。通常,k由全连接层的k+1输出上的softmax计算。第二个同级层为k个对象类中的每一个输出边界框回归偏移,tk=(tk x,tk y,tk w,tk h),按k索引。分类损失LCL是两个类(对象与非对象)的对数损失,LCL可以通过以下公式计算:
式中,pi是锚i作为对象的预测概率。pi*是ground-truth标签。
回归损失Lreg的计算方法如下:
其中R表示光滑L1函数,ti,t的定义∗ 我在第3节中介绍过。
实验在装有4个NVIDIA GeForce GTX 1080 GPU的计算机上进行。计算软件环境设置为python 2.7.12、CUDA 8.0.44和cuDNN 5.1.10。
在PCB缺陷数据集(http:\/\/robotics.pkusz.edu.cn\/resources\/dataset\/)上进行了大量实验。该数据集包含693个PCB缺陷图像和相应的注释文件。对于这个数据集,每个图像的平均像素大小是2777×21138。PCB缺陷包括6类(缺孔、老鼠咬伤、断路、短路、杂散和假铜)。一个图像包含多个缺陷。数据集的更多详细信息如表1所示。
对于这样的小数据集,在数据训练之前采用了数据扩充技术。然后将图像裁剪成600×600子图像,分别用9920和2508图像构成我们的训练集和测试集。扩充PCB缺陷数据集的更多详细信息如表2所示。
考虑两项任务:缺陷区域定位和缺陷分类。缺陷区域定位、IoU被计算。默认情况下,IoU阈值为0.5,用于确定PCB缺陷数据集上的真实正值。
其中,GT表示地面实况,DR表示检测结果。为了更好地理解,图6中有三种关于地面实况和检测结果的场景。
对于缺陷分类,计算平均精度(mAP)作为评估指标。通常,使用IoU阈值0.5的mAP报告为评估指标。
我们的实现基于TensorFlow对象检测API。对输入图像进行裁剪,使其较短的一侧有600个像素。我们使用[25]中预先训练的ResNet-101模型进行实验。同步SGD用于在1个GPU上训练模型。每个小批量每个GPU包含2个图像,每个图像包含512个ROI。使用重量衰减0.0001和动量0.9。30k小批量的学习率为0.001。整个培训在PCB缺陷数据集上大约需要7小时。
一些缺陷区域建议彼此高度重叠。为了减少冗余,根据建议区域的分类得分,对其采用非最大抑制(NMS)。NMS的IoU阈值固定为0.7,每幅图像大约保留2000个建议区域。
与最新技术的比较:我们在PCB缺陷数据集上将TDD网络与最新技术方法进行了比较。结果总结在表3和图7中,其中我们将我们的方法与主流检测网络进行了比较,例如带有主干VGG-16和ResNet-101的FasterR-CNN。当tIoU阈值为0.5时,TDD网络达到了最高mAP,证明了TDD-Net网络设计的有效性,证明合理锚设计和多尺度特征融合的重要性。
如第4.1节和第4.2节所述,快速R-CNN的锚定标度不适合检测微小缺陷。TDD-Net采用多尺度特征融合策略,可以得到结构强大的特征,这些特征对于检测微小缺陷非常重要。
然后,我们绘制精度-召回曲线来评估缺陷检测的性能。图8比较了测试集上不同缺陷类型PCB之间的检测性能。TDD网络实现了与其他最先进技术相比的优异性能。平均值和精密度为98.90%。图9给出了缺陷检查结果的示例。
消融实验:为了研究合理锚设计、多尺度特征融合和OHEM的行为,我们通过比较四个消融实验来验证设计:(i)使用ResNet-101的朴素Faster R-CNN;(ii)FasterR-CNN,使用ResNet-101并微调锚;(三)在原有设计的基础上增加多尺度特征融合;以及(iv)添加在线硬示例挖掘。
消融实验结果见表4。从表中我们可以看出,原始算法(FasterR-CNN和ResNet-101)表现最差,因为它依赖于具有更宽感受野的最后一级特征图,不适合检测小缺陷。该算法(原始+合理锚定)的性能优于原始算法,但仍存在感受野错位的问题;TDD Net(原始+合理锚定+多尺度特征融合+在线硬示例挖掘)的性能优于其他方法,因为它将结构上的强特征与语义上的强特征相结合,有助于检测微小缺陷。
本文介绍了一个TDD网络,这是一个干净、简单的网络,旨在执行PCB的质量控制。针对PCB缺陷检测效率低、误检率高、漏检率高等问题,本文首次尝试将深度学习算法与特征金字塔变换相结合,应用于PCB缺陷检测问题。TDD网络有三个新的变化,以适应微小缺陷检测。首先,实验证明,合理的锚具设计可以获得更精确的IoU分数,从而准确定位缺陷。其次,通过特征金字塔可以提取出更好的微小缺陷特征。最后,TDD网在整个训练阶段采用在线硬示例挖掘,以提高RoI建议的质量。通过这些方法,在PCB缺陷数据集上的大量实验结果表明,TDD网络比现有技术实现了98.90%的更好映射。消融研究验证了TDD网络的鲁棒性。此外,TDD网络具有很强的扩展性,可以很容易地扩展到其他领域,如织物缺陷检测和铝缺陷检测。
未来的工作将包括:(i)由于训练数据集较小,探索零炮学习方法;(ii)优化网络和后处理方法;以及(iii)将TDD网络扩展到更多类型的PCB缺陷。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。