本文是一篇软件工程硕士论文,本文的数据集采集的是北大机器人开放实验室的数据集,然而存在数据量不足、考虑的缺陷类型少等问题。由于没有多种数据集,所以本文所有的工作都是在该数据集上进行研究,并没有在多种数据集上进行实验,可能会出现模型在其他数据集表现不好的情况,所以网络的泛化能力有待进一步的提高。
第 1 章 引言
1.1 课题研究的背景及意义
近年来,因为新兴市场经济体巨大的需求,电子行业正在快速发展。因此,很多国家大大地增加了电子行业的投资。此外,电子产品也随着全球消费者支出的增加而在加速发展,生产电子产品的国家拥有着强大的消费者基础,消费者随着经济条件的改善,对电子产品的需求日益增长。同时,越来越激烈的竞争正在压低电子产品的生产成本,使得电子产品对于个人甚至更便宜。随着经济的快速发展,中国在近些年一度成为了重要的电子产品生产强国,也成为了消费类工业电子产品的主要市场。在未来,预计亚洲市场份额会占全球市场的一半。此外,电子行业有着创新型企业发展前景[1-5],为其他行业提供设备和组件方面的支持作用也是增长的一个因素,比如汽车、计算机、手机的消费需求。据统计,截止到 2020 年底,电子产品全球价值已经超过 4500 亿美元。
电子行业的快速发展,其中就包括微电子元件。现如今,微电子元件向密度更高的方向发展,这方面的发展将会使许多传统工业的面貌焕然一新[6, 7]。随着印刷电路板制作技术的不断进步,元件密度也在变得越来越大,电路板本身也在变得越来越复杂,从早期的单层变为了如今的多层。在将电路板印刷好后,我们要将所有需要用到的元件安装到指定的位置。不管是传统的手工还是基于 SMT技术[8-12]的焊接,都会出现焊接错误的情况。如果将这些有缺陷的印刷电路板投入厂家使用,将会给厂家带来难以想象的损失。在印刷电路板的制造过程中,绝缘体和导体的宽度会因为制造缺陷而改变。印刷电路板(PCB)检验的目的是验证电路板制造的特性是否符合设计规范。在电路板制作过程中,每一道工序都非常复杂,稍有不慎,就会产生一个小小的缺陷。毫无疑问,任何小小的缺陷都会导致整个印刷电路板报废。所以,我们在生产电路板的每一道工序中,都应该进行缺陷检测,这样不仅能够及时地发现印刷缺陷,并返回给厂家进行重新修补或印刷,还能减少很多成本,提高产品质量。
1.2 国内外发展现状
1.2.1 国外发展状况
在国外,很多研究机构和科研人员在上世纪就开始了数字图像处理技术的研究,在一些发达国家,印刷电路板生产商很早就运用光学和数字图像处理技术来检测电路板缺陷。为此,他们还专门研发出了一种自动进行电路板缺陷检测的设备,这种设备能够大体上检测出缺陷。通常来说,电路板缺陷检测主要分为参考法、非参考法、混合法三种方法。参考比较方法是将测试的 PCB 图像和符合预先设计规范的 PCB 图像进行对比。基于图像比较的方法主要使用图像减法或者异或运算两种方法。图像减法是使用两幅图像逐像素相减,有正像和负像之分。而异或运算是将两幅图像中像素一样的位置变为 0,而将像素不一样的位置变为1,这样就可以轻易地得到缺陷所在的位置。不过,其中误差主要取决于两幅图像之间是否能够精确配齐。如果不能够做到精准配齐,那两幅图像差分或相减后所得的图与实际缺陷的图会有很大的出入,这也会直接导致此方法产生非常差的效果。所以,参考比较方法的难点之处在于两幅图像之间的精准配齐技术。
AAIM[28]提出了一种基于 SURF 特征和形态学运算的 PCB 自动缺陷检测实时方法,该方法提出的重要性在于它能够为各种 PCB 中的所有可能的组件建立特征描述符的字典。设计规则检测作为一种裸露 PCB 的自动检测算法,已被自动化视觉检测系统制造商提出并广为熟知。M Cacciola[29]认为使用涡流技术对导电材料进行实时无损检测和评估变得越来越重要,就提出了一种利用巨型磁阻(GMR)传感器检测印刷电路板的 ECT-NDT 系统的实时应用,并认为该系统特别适合在高密度裸露 PCB 上进行缺陷检测。Ji-Deok Song[30]和 YG Kim[31]对 PCB的缺陷进行了分类,其他算法仅集中于 PCB 缺陷检测,在缺陷检测中,知道缺陷的类型同样重要。然而,在缺陷分类中,需要获得每个缺陷的类型。首先,Ji-Deok Song 提出了一种基于区域分割和颜色特征提取的焊点检测方法,通过检查程序对各种类型的焊点进行分类。在特征提取阶段,将焊点图像划分为几个子区域,然后从几个子区域中提取各种颜色特征。最后通过训练从多个样本中提取的颜色特征来生成分类器。其次,YG Kim 通过卷积神经网络和 PCB 图像变换进行 SMD 缺陷分类,提出一种可以通过输入图像变换提取芯片区域并改善颜色分布的系统。通过垂直和水平投影提取正确的芯片区域,并且运用颜色改进局部直方图拉伸来增强芯片图像的亮度值分布。Yu-Shan Deng[32]等人设计了一种称为Auto-VRS 的自动缺陷验证系统,该系统可以进行快速电路比较,并基于深度神经网络进行缺陷分类,很好地识别了缺陷,大大降低了误报率。lhar Volkau[33]提出了一种转移学习的变体,它由 VGG16 上使用的无监督学习与 ImageNet 权重系数上的预训练组成,经过训练的模型能够在高维特征空间中表示形成的簇,并且基于与正常簇的距离来定位 PCB 图像中的缺陷板块,实验表明能够发现 90%以上的缺陷。
第 2 章 电路板缺陷识别主要技术
2.1 图像处理相关技术
2.1.1 图像预处理操作
一般来说,在电路板图像采集的过程中,可能会使图像质量下降或失真,所以首先需要对图像进行预处理操作[42-45],其中包括图像去噪、图像增强、灰度图像、图像二值化等操作。
电路板图像不进行噪声处理的话,会夹带着大量噪声信息,不利于图像分析和处理。在图像去噪处理方法上,我们可以采取常见的中值滤波、均值滤波等方法。
灰度图像的像素只会含有灰度信息,并不会涵盖其他信息。在存储空间上,相同尺寸的灰度图像比彩色图像更小,这能极大地降低运算量,处理也更迅速。转化公式如公式 2.1。
图像二值化即是将整个图像变为黑白效果图,能够明显地观察到感兴趣区域。对于电路板图像,研究人员感兴趣的是其中的小目标故障缺陷部分,为了对这些目标进行识别和分析,需要对其进行提取,图像二值化的目的是将线条从PCB 板上分离出来。
2.2 深度学习典型模型
2.2.1 卷积神经网络模型
卷积神经网络的出现[46, 47],使得深度学习又重新回到了人们的视野当中。卷积神经网络是深度神经网络中一个非常典型的神经网络,它的概念是被一位美国学者所提出。后来,一些研究学者在此基础上采用了基于误差值和梯度的算法理论来对神经网络重新设计,并加以训练发现卷积神经网络在很多复杂的环境中都有着出色的效果。
2.2.2 深度信任网络模型
深度信任网络简称 DBN[48, 49],DBN 是一种无监督的概率深度学习算法,研究者使用贪婪学习算法对 DBN 进行训练。贪婪学习算法使用逐层方法来学习自顶向下的生成权重,这些生成权重决定了一层中的变量如何依赖于上一层中的变量。然后,对模型的其余部分进行一次祖先采样,以从可见单位中抽取一个样本。通过学习,可以通过一次自下而上的遍历判断每个层中的潜在变量的值。贪婪的预训练从底层观察到的数据向量开始,使用微调在相反的方向上生成权重。
2.2.3 堆栈自编码网络模型
堆栈自定义编码网络[50]的基本结构与 DBN 类似,由若干个具有结构编码单位化的堆栈组合形成,不同的主要地方就在于它们堆栈形成的每个结构编码单位被广泛称为自定义编码网络模型,而非称为 RBM。自定义编码神经网络模型主要指的是:它是一个两层次的神经网络,第一层被广泛称为神经网络编码层,第二层被广泛称为神经网络解码层。
第 3 章 基于边缘检测的电路板缺陷识别算法的提出 ································ 19
3.1 缺陷类型 ······························ 19
3.2 缺陷定位算法 ································ 21
第 4 章 基于目标检测的电路板缺陷识别算法························ 29
4.1 YOLO 框架介绍 ······························ 29
4.2 YOLOv3 目标检测算法 ··························· 30
第 5 章 基于目标检测的电路板缺陷识别算法的改进 ····················· 44
5.1 轻量级网络 ··························· 44
5.2 DenseNet 网络结构分析 ·································· 45
第 5 章 基于目标检测的电路板缺陷识别算法的改进
5.1 轻量级网络
随着卷积神经网络的快速发展,为了提升精度,研究人员加深了卷积神经网络和模型的复杂度,使得卷积神经网络的识别精度达到最大化。然而更深的层数、更复杂的模型也就加大了模型的计算量,这会极大地降低运行速度与网络效率。在硬件设备上也是一个很大的考验。在此基础上,轻量级网络被提了出来,在保证精度不失的情况下,更快地对网络进行训练。
轻量级卷积神经网络主要是在保证精度不失的情况下,模型减少了大量的参数,相应地减少了很多卷积运算,同时也