PCB缺陷检测—TDD-net论文笔记随笔

TDD-net:论文地址

0.简介

这篇论文使用深度学习-目标检测的方法对PCB的缺陷进行检测,提出了一种针对细小缺陷的TDD-net (Tiny defect detection)检测网络来对PCB中的6种缺陷(Missing hole、Mouse bite、Open circuit、Short、Spur、Spurious copper)进行检测,检测效果高达98.9%,高于其他的现存的双阶段检测网络。

与其他网络的对比

1.介绍

Faster R-CNN不适合检测小缺陷的原因是,当进行ROI pooling的时,小缺陷在低像素的特征图上所占的尺寸是非常小的相对于stride来说。

(个人感觉这个道理和标注车辆、行人时不标注远处小的目标的原因之一差不多,当目标物体太小时,可辨别性就没有那么高了。)

主要面临的两个挑战:

  1. 如何设置合理的anchors?太大的anchors不适合检测小的缺陷。
  2. 如何通过重新设计Faster R-CNN的体系结构融合多尺度特征图?细小的缺陷将会逐渐消失在卷积网络的前馈传播中。

数据方面:对数据进行数据增强来提高训练的数据量。

TDD-net加强了不同层次特征图的关系,并受益于低层次的结构信息。

最终使用一些tricks来加强检测的性能。

2.相关工作

2.1参照方法

通过与正常的图像进行比对,通过像素做差的的方式找到缺陷,然后再进行识别。主要的困难在于两张图片的对齐。因此,特征匹配的方法被提了出来,它从整张图片中提取健壮的特征,并且建立一个注册映射关系,通常提取的特征有点、边缘、特定区域的轮廓和质心。

另一个重要的参考方法是相似性度量。

这些方法所遇到的困难是错位、颜色变化、反射率变化、周围变化和模糊边界缺陷分割等,而且去获得一个标准的PCB图像从生产环境中是不现实的。

2.2非参照方法

非参照方法是基于一般的设计规则的证实。特征学习被用于深度网络对物体的检测,比如R-CNN系列、DarkNet、SS和R-FCN,都在目标检测领域有明显的改进。

2.3混合方式

Z. Qu et al.构建了一个称为PartsNet的深度卷积网络,将传统特征处理和深度学习相结合,以检测汽车发动机精密零件的缺陷。

3.faster R-CNN的概述

这一部分就不说啦,感兴趣的同学可以去搜下faster R-CNN的相关介绍嗷。

4.TDD-net

相对于faster R-CNN来说有三点新的改变。

首先,在PCB缺陷数据集上训练Faster R-CNN的CNN模型。在微调过程中,我们应用数据增强技术并设计合理的锚点。为了提高微小缺陷的检测性能,采用了多尺度特征融合策略。在线硬示例挖掘在训练阶段被应用,以提高ROI 提案的质量。整个培训过程遵循端到端的培训范式,即Faster R-CNN。

4.1合理的anchors设计和数据增强

PCB的缺陷图像不同于开源的其他数据集,它具有很大的尺寸、而缺陷部分只占图像的很小的一部分。Faster R-CNN有3种尺度(128²,256²,512²)和三种长宽比(1:1;1:2;2:1)的9个anchors在每一个滑动位置上。这样大的范围是无法检测到细小的缺陷的,为了检测到细小的缺陷,我们必须设置合理的anchors。

k-means 聚类用于 PCB 训练集边界框,以自动找到合理的anchors比例。带距离度量的标准 k-means 使用如下

在这里插入图片描述

得到的尺度为(15²,25²,40²,60²,80²),4个长宽比为(2.,3.,4.,5.).

数据量少可能导致模型过拟合,但是大量的缺陷数据在工业上是很难获取到的。因为需要进行数据增强,使用到了6种传统的数据增强的办法,添加高斯噪声、调节亮度、旋转图片、平移、随机裁剪和变换,像添加噪声这些操作是不会改变bounding boxes的值的,但是旋转、裁剪这些操作就会改变bounding boxes的值。同时随机裁剪也可能有缺陷剪成一半的情况发生,因此,我们需要设置一个阈值并丢弃这些异常边界框。

4.2多尺度的特征融合

深度学习卷积网络的不同层有不同尺度的特征图和特征像素。高分辨率的特征图语义弱,结构性强而低分辨率的特征图是强语义的。微小的缺陷检测可分为低级视觉任务,因此我们专注于多尺度特征融合。

在小目标的特征在网络卷积过程中将逐渐消失,因此高像素的特征图在检测小物体时是很重要的。TDD-Net 采用金字塔架构 ,通过自上而下的路径和横向连接将低分辨率特征、语义强特征与高分辨率、结构上强特征融合在一起。

在这里插入图片描述

  1. 使用预训练的ResNet-101作为我们的主干网络来提取特征,5个残差块的输出标记为(C2,C3,C4,C5),最后一个残块的输出被选为我们的特征图参考集,并注意它们与输入图像的步幅为 [4、8、16、32] 像素。

  2. 高像素的特征图帮助我们检测小物体,我们的自上而下特征图通过上采样的空间分辨率 2 系数来构建,为了简单起见,选择了最近的邻接采样。我们将底层的特征图和高层的特征图连接起来,因此自底向上的特征图经过1X1的卷积层为了减少维度,然后,向上采样的图与相应的自下而上地图(按元素加法)串联。

    在将不同比例的 RO 分配给金字塔级别的阶段,要素金字塔的级别 [Pk] 的计算方法为

在这里插入图片描述

在这里插入图片描述

4.3在线硬例挖掘

我们首先尝试将在线硬例挖掘策略应用于PCB缺陷检测任务。受 [26] 的启发,只读 RoI 网络在要素图和所有 RoI 上运行向前传递。然后硬 RoI 模块使用这些 RoI 损耗来选择示例。在线硬示例挖掘(称为 OHEM)可用于培训任何基于区域的 ConvNet,它会自动选择硬示例,而不是使用多个启发式和超参数,从而提高检测效率。

4.4loss和训练

总loss由不同loss 的组成:rpn_loss_bbox, rpn_loss_cls, fast_rcnn_loss_bbox, 和fast_rcnn_loss_cls.

在这里插入图片描述

5.实验与讨论

这部分简单说一下

5.1数据集

数据集的地址为http://robotics.pkusz.edu.cn/resources/dataset/,里面有693张PCB缺陷的图像,像素大小为2777*2138,缺陷的种类为6种,感兴趣的小伙伴可以下载看看。

论文中将图像切成了600*600的子图像,形成训练集,训练集和测试机的图像数为9920*2580

在这里插入图片描述

在这里插入图片描述

5.2评估指标

在这里插入图片描述

GT表示真实结果,DR表示检测结果。

6.训练细节及结果展示

训练细节小伙伴从论文中看下嗷,这里就不写了。

贴一下网络的结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分享就到这里啦,第一次写博客,有什么不对的地方还烦请大家指正,感觉有用的小伙伴点个关注吧,期待和大家一起加油!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页