一种基于持续学习的PCB板缺陷检测方法及装置

未命名 08-26 阅读:124 评论:0

一种基于持续学习的pcb板缺陷检测方法及装置
技术领域
1.本发明属于pcb板缺陷检测领域,具体涉及一种基于持续学习的pcb板缺陷检测方法及装置。


背景技术:

2.随着经济和科技的迅速发展,电子产品逐渐趋向于智能化、便捷化,人们对它们的需求量也大大上升。作为电子产品重要的部件,印刷电路板(printed circuit board,pcb)扮演着非常重要的角色,可以说pcb板的生产质量直接关联着电子产品的品质。基于此,pcb板的缺陷检测成为了生产线中不可缺少的一道关键步骤,同时也是保证电子制造业稳定发展的基石。
3.传统的pcb板缺陷检测方法包括人工目测和图像处理两种方法。其中人工目测的方法需要工人手动挑选出含有瑕疵的印刷电路板,这种方式耗时耗力,并且随着工作时间的增加,工人的工作效率也会直线下降从而大大影响生产效率。基于图像处理的缺陷检测方法尽管不需要人主动地检测,但是需要预先手动设计图像特征,同时模型计算量大,耗时久。近年来,随着深度学习技术的不断进步,其在计算机视觉领域的应用也变得越来越广泛。不少厂家也将深度学习技术运用到pcb板缺陷检测中,相较于传统的pcb板缺陷检测方法而言,采用深度学习的缺陷检测方法不仅降低了人工成本,而且大大提升了检测效率和检测精度。
4.虽然现有的pcb板缺陷检测方法已经取得了非常可观的检测性能,但是这些方法只针对于封闭式的检测场景,而无法应对增量式的检测场景,即现有的检测模型只能检测出在训练过程中出现的pcb板缺陷类型。对于未知的缺陷类型,即该缺陷类型在训练过程中并未出现,检测模型则无法给出相应的检测结果。随着工业制造过程的发展,电子产品的种类会不断增加,因此pcb板的缺陷类型也会随之增加,可见未知缺陷类型在实际生产中是一种常见的现象。
5.针对新出现的缺陷类型,一种传统的解决方法是使用已知缺陷类型数据和新缺陷类型数据一起重新训练一个缺陷检测模型使得检测模型能够同时检测已知和新缺陷类别,然而当新缺陷类型不断增加时,利用这种方法训练检测模型的时间成本和数据集的存储成本也会随之增加,且当任意已知缺陷类型训练数据丢失时,则无法使用该方法训练检测模型。另一种传统的解决方法是针对每一种新出现的缺陷类型都单独为其训练一个检测模型,这种方法的缺点是每出现一种新的缺陷类型,就需要训练并存储一个检测模型,从而在实际检测中就需要针对性地挑选检测模型来进行缺陷检测,浪费存储资源的同时大大降低了检测效率。


技术实现要素:

6.本发明的目的是为克服现有技术中的不足之处,提出一种基于持续学习的pcb板缺陷检测方法及装置。本发明在无法获得已知缺陷类型训练数据的情况下,不仅能够实现
对已知缺陷类型的检测同时也能够增量式地学习并检测新的缺陷类型,弥补了现有的pcb板缺陷检测模型只能检测封闭式场景下的缺陷类型的短板,大大提高了检测模型的适用性和拓展性。
7.本发明第一方面实施例提出一种基于持续学习的pcb板缺陷检测方法,包括:
8.获取pcb板的缺陷部位图像作为待检测图像;
9.将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。
10.在本发明的一个具体实施例中,所述待检测图像的缺陷检测结果包括所述待检测图像中所有缺陷的预测框位置信息和每个预测框对应的缺陷类型。
11.在本发明的一个具体实施例中,所述pcb板缺陷检测模型采用yolox目标检测网络作为主体网络,该主体网络的输出连接一个预测结果解码模块;其中,所述yolox目标检测网络网络包括:一个cspdarknet主干子网络、一个fpn特征金字塔子网络和三个相同的yolohead检测头子网络;所述cspdarknet主干子网络的输出连接所述fpn特征金字塔子网络的输入,所述fpn特征金字塔子网络的输出分别连接三个所述yolohead检测头子网络的输入,三个所述yolohead检测头子网络的输出分别连接所述预测结果解码模块的输入,所述预测结果解码模块输出对应输入图像的缺陷预测结果。
12.在本发明的一个具体实施例中,在所述获取pcb板的缺陷部位图像作为待检测图像之前,所述方法还包括:
13.利用已知缺陷类型的pcb缺陷图像训练所述pcb板缺陷检测模型;
14.所述利用已知缺陷类型的pcb缺陷图像训练所述pcb板缺陷检测模型,包括:
15.1)构建pcb板缺陷检测训练数据集;
16.所述pcb板缺陷检测训练数据集中的训练图像为与所述待检测图像尺寸一致的pcb板缺陷图像,每张训练图像中只包含一种缺陷类型,且该缺陷类型在该训练图像中至少一处位置出现;对每张训练图像进行标注,得到每张训练图像中缺陷框的位置及对应缺陷类型的标注结果;将每张训练图像及其对应的标注结果组成一个训练样本,所有训练样本构成pcb板缺陷检测训练数据集;
17.2)构建所述pcb板缺陷检测模型;
18.3)利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型,得到训练完毕的pcb板缺陷检测模型。
19.在本发明的一个具体实施例中,在所述利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型之前,所述pcb板缺陷检测模型中的yolox目标检测网络载入预训练权重。
20.在本发明的一个具体实施例中,所述利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型的损失函数采用yolox目标检测网络损失函数。
21.在本发明的一个具体实施例中,所述利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型,包括:
22.1)将所述未识别图像添加至初始为空的未知缺陷数据集;
23.2)当所述未知缺陷数据集中的图像数量达到设定的数值时,利用所述未知缺陷数据集构建新的pcb板缺陷检测训练数据集,包括:
24.对所述未知缺陷数据集中的每张图像进行标注,得到每张图像中缺陷框的位置及对应缺陷类型的标注结果;将所述未知缺陷数据集中的每张图像及其对应的标注结果组成一个新的训练样本,所有新的训练样本构成新的pcb板缺陷检测训练数据集;
25.3)利用新的pcb板缺陷检测训练数据集训练当前pcb板缺陷检测模型,得到更新后的pcb板缺陷检测模型;具体包括:
26.复制当前pcb板缺陷检测模型,将两个当前pcb板缺陷检测模型分别记为教师模型a和学生模型b;根据新的pcb板缺陷检测训练数据集的标注结果,扩充学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数,使得学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数与增加后的缺陷类型总数一致;
27.将新的pcb板缺陷检测训练数据集的图像同时输入教师模型a和学生模型b中,每训练一轮计算总损失函数l
all
,表达式如下:
28.l
all
=l
yolox
+λl
dist
29.式中,l
yolox
为目标检测损失函数,l
dist
为蒸馏损失函数,λ为平衡因子用来控制目标检测损失和蒸馏损失的权重;
[0030][0031]
式中,f
reg
为均方误差损失函数,f
cls
为带蒸馏温度t的交叉熵损失函数,i为当前训练图像,n为当前训练数据集中所有训练图像的数量;和分别为教师模型a中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出;和分别为学生模型b中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出;
[0032]
训练时,更新学生模型b的参数,不更新教师模型a的参数;训练完毕后,得到更新后的学生模型b作为新的当前pcb板缺陷检测模型,并清空未知缺陷数据集。
[0033]
本发明第二方面实施例提出一种基于持续学习的pcb板缺陷检测装置,包括:
[0034]
图像采集模块,用于获取pcb板的缺陷部位图像作为待检测图像;
[0035]
缺陷检测模块,用于将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。
[0036]
本发明第三方面实施例提出一种电子设备,包括:
[0037]
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
[0038]
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置
为用于执行上述一种基于持续学习的pcb板缺陷检测方法。
[0039]
本发明第四方面实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述一种基于持续学习的pcb板缺陷检测方法。
[0040]
本发明的特点及有益效果:
[0041]
1.本发明采用yolox单阶段目标检测算法,在保持高精度检测结果的同时也拥有较快的推理速度,大大提高了pcb板缺陷检测的效率。其次,在pcb板缺陷检测模型中加入持续学习策略,使得检测模型能够应对增量式的检测场景,进一步提高pcb板缺陷检测模型的适用性。当面对增量式的检测场景时,相较于传统解决方法中花费大量时间训练一个统一的pcb板缺陷检测模型或训练并存储多个pcb板缺陷检测模型,本发明在硬件部署时有效减少了存储资源的浪费,同时大大节省了检测模型训练时的时间成本和人力成本。
[0042]
2.本发明拓宽了缺陷检测领域的方向,将缺陷检测领域从封闭式的检测场景过渡到增量式的检测场景,从而更加适应各种实际工业缺陷检测任务。本发明通过引入持续学习策略,使得检测模型能够不断学习并检测新的缺陷类型,进一步拓展了模型的检测场景,从而更好地保证生产过程中每一件产品的质量。
[0043]
3.本发明所能应用的领域包括但不限于:1)无人机巡逻领域,在该领域中要求无人机能够在不同环境下能够有效地检测出所需检测的物体,不同的环境下会有不同的检测目标,倘若用固定检测数据训练检测模型显然不能适应新的环境,因此将本发明运用到无人机巡逻领域可以增量式地检测新的目标,从而适应不同的检测环境。2)人脸检测领域,人脸检测的应用十分广泛,比如工作打卡,安防监控等等。这些应用场景显然是不固定的,随着时间的增长会不断有新的人脸样本检测需求,因此将本发明运用到人脸检测领域可以大大拓展检测模型的适应性,从而能够增量式地进行人脸检测。3)自动驾驶领域,汽车在自动驾驶地过程中需要不断检测各种目标来进行下一步的决策,在不同的道路上行驶会遇到各种各样新的目标,同时自动驾驶检测模型需要能够检测出这些新的目标,因此将本发明运用到自动驾驶领域可以使模型增量式地学习新的目标,进一步提高汽车自动驾驶的安全性。
附图说明
[0044]
图1为本发明实施例的一种基于持续学习的pcb板缺陷检测方法的整体流程图。
[0045]
图2为本发明一个具体实施例中的pcb板缺陷检测模型的结构示意图。
具体实施方式
[0046]
本发明提出一种基于持续学习的pcb板缺陷检测方法及装置,为了使本发明的目的、技术方案以及优点更加清楚明确,下面结合附图和具体实施方式对本发明进行进一步详细说明。应当理解此处所描述的实施方式仅用于解释本发明,并不用于限定本发明。
[0047]
本发明第一方面实施例提出一种基于持续学习的pcb板缺陷检测方法,包括:
[0048]
获取pcb板的缺陷部位图像作为待检测图像;
[0049]
将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输
出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。
[0050]
在本发明的一个具体实施例中,所述一种基于持续学习的pcb板缺陷检测方法,整体流程图如图1所示,包括以下步骤:
[0051]
1)构建pcb板缺陷检测训练数据集。
[0052]
本实施例中,所述训练数据集应根据实际生产线进行现场采集,要求为带有缺陷的pcb板俯视平面图,缺陷类别为当前实际生产线中所需检测的所有种类。然后对采集到的带有缺陷的pcb板俯视平面图按照设定的尺寸进行裁剪,使得裁剪后的图像包含该pcb板的完整的缺陷部分,将裁剪后的图像作为一张pcb板缺陷训练图像,其中,裁剪后的图像尺寸不低于500
×
500,一张训练图像中只能包含一种缺陷类型,且该缺陷类型在该训练图像中至少一处位置出现。本实施例中获得的每种缺陷类型的训练图像数量应该不少于200张,且每种缺陷类型的图像数量应该根据对应缺陷的复杂程度线性增加。
[0053]
在本发明的一个具体实施例中,首先通过相机拍摄带有缺陷的pcb板俯视平面图,针对pcb板上的缺陷进一步裁剪后,获得了1200张带有4种不同缺陷类型(缺孔、异物、短路、开路)的pcb板缺陷训练图像,通过裁剪后每张图像大小为1080
×
720。然后对这1200张pcb板缺陷训练图像进行人工标注,标记出缺陷框的位置并注明相应的缺陷类型,每张pcb板缺陷训练图像对应一个标注文件,标注文件格式为.xml格式。为了更好的让检测模型学习pcb板缺陷的特征表示,本实施例还使用水平翻转、随机旋转和增强亮度等一系列数据增强策略来进一步扩充训练数据集,针对水平翻转和随机旋转两种增强策略,标注文件中的缺陷框位置也会随之发生改变,对于增强亮度策略,标注文件则不需要任何改变。最终得到6000张pcb板缺陷训练图像以及6000个对应的标注文件,将每张pcb板缺陷训练图像及其对应的标注结果组成一个训练样本,所有训练样本构成最终的pcb板缺陷检测训练数据集。
[0054]
2)构建pcb板缺陷检测模型,利用步骤1)得到的训练数据集训练该pcb板缺陷检测模型,得到训练完毕的pcb板缺陷检测模型。
[0055]
本实施例中,所述pcb板缺陷检测模型的结构示意图如图2所示。所述pcb板缺陷检测模型采用yolox目标检测网络作为主体网络,该主体网络的输出连接一个预测结果解码模块;其中,所述yolox目标检测网络网络包括:一个cspdarknet主干子网络、一个fpn特征金字塔子网络和三个相同的yolohead检测头子网络。cspdarknet主干子网络的输出连接fpn特征金字塔子网络的输入,fpn特征金字塔子网络的输出分别连接三个yolohead检测头子网络的输入。三个yolohead检测头子网络的输出分别连接所述预测结果解码模块的输入,所述预测结果解码模块输出对应输入图像的缺陷预测结果。
[0056]
训练时,首先将任一训练图像通过缩放操作调整为设定的尺寸,本发明一个具体实施例中将训练图像尺寸调节为640
×
640大小;然后,将调节后的训练图像输入yolox目标检测网络的cspdarknet主干子网络进行连续的下采样特征提取操作,本发明一个具体实施例中通过下采样特征提取分别得到对应输入图像的80
×
80
×
256、40
×
40
×
512和20
×
20
×
1024三个不同尺度的初步特征;将cspdarknet主干子网络输出的初步特征同时输入fpn特征金字塔子网络中,该子网络通过对不同尺度的初步特征进行融合增强特征表示,从而进一步丰富图像特征中所包含的有用信息,该子网络输出与输入尺度相同的三个不同尺寸的
融合增强后的特征。将融合增强后的三个特征分别送入三个结构相同的yolohead检测头子网络中,该子网络根据输入的特征分别进行缺陷位置框的回归参数预测、框内包含物体的概率预测以及缺陷类型的分类预测,本实施例中三个yolohead检测头子网络输出的不同尺度特征分别为80
×
80
×
(4+1+num_classes)、40
×
40
×
(4+1+num_classes)和20
×
20
×
(4+1+num_classes),其中(4+1+num_classes)中的数字“4”代表每个预测框的4个回归参数数值,数字“1”代表每个预测框包含物体的概率,“num_classes”代表每个预测框对应的缺陷类别预测值,预测值的个数及“num_classes”大小与训练数据集中包含的缺陷类别数量一致。本实施例中,“num_classes”为4,对应训练数据集中的4种缺陷类型。接着,将三个yolohead检测头子网络的输出依次送入预测结果解码模块中进一步处理,该模块首先进行第一步操作:根据当前尺度特征中的4个预测框回归参数计算出所有预测框的具体位置信息,接着将每个预测框的缺陷类别预测值中最大的数值所对应的缺陷类别作为当前预测框的缺陷类别。最后将每一个预测框的缺陷类别预测最大值与该框包含物体的概率相乘得到该框的置信度得分。然而进行第二步操作:根据第一步中得到的结果筛选出置信度得分满足阈值设定的所有预测框,并对这些预测框进行非极大值抑制操作得到当前尺度特征下所有的预测框信息。最后进行第三步操作:将所有尺度特征经过解码模块后的结果进行整合,最终输出对应输入图像的所有缺陷的预测框位置信息和每个预测框对应的缺陷类型。(需要说明的是,yolox目标检测网络的输出为所有缺陷位置的预测框回归参数以及每个预测框对应的所有类别预测值,将这些输出送入解码模块后,解码模块根据预测框回归参数计算出具体的预测框位置信息,同时将每个预测框所有预测值中最大的那个值所对应的类别作为该预测框的缺陷类别,这些是最终的输出。)将所有的预测结果和该图像对应的标注内容输入yolox目标检测网络损失函数l
yolox
中计算损失值,接着优化器根据损失值对整个缺陷检测模型进行优化迭代。直到遍历完所有训练数据,即为完成一轮训练过程。
[0057]
在本发明的一个具体实施例中,使用步骤1)中获得的6000个训练样本来训练所述pcb板缺陷检测模型,在训练开始前为所述pcb板缺陷检测模型中的yolox目标检测网络载入在coco目标检测数据集上的预训练权重,使得pcb板缺陷检测模型在训练阶段能够更快的收敛。训练时,使用adam优化器,动量数值为0.9,学习率大小为1e-3,学习率衰减策略为余弦退火衰减,训练数据批数量大小为16,训练60轮后检测模型达到收敛,得到训练完毕的pcb板缺陷检测模型。
[0058]
需要说明的是,本实施例的pcb板缺陷检测模型中除yolox目标检测网络外也可采用其他单阶段目标检测网络作为该检测模型的主干部分,然后在主干部分之后连接所述预测结果解码模块,同样可以实现对于pcb板图像的缺陷检测。
[0059]
3)利用步骤2)中训练完毕的pcb板缺陷检测模型进行缺陷检测;具体步骤如下:
[0060]
3-1)获取一张pcb板的缺陷部位图像作为待检测图像,所述待检测图像的尺寸与训练集图像一致。本发明的一个具体实施例中,所述待检测图像的尺寸为1080
×
720。
[0061]
实际应用时,待检测图像采集自与训练集图像相同环境下且该图像包含缺陷。
[0062]
在本发明的一个具体实施例中,通过相机重新拍摄2000张含有缺陷的pcb板图像作为检测数据集,检测数据集中图像大小与步骤1)中的训练数据集中的图像大小相同。检测数据集中图像的缺陷类型除了步骤1)所构建的训练集中包含的缺陷类型外,检测数据集中还额外包括刮伤和沾金两种新的缺陷类型。在检测阶段,按照顺序依次从检测数据集中
取出一张图像作为待检测图像。
[0063]
3-2)将3-1)获得的待检测图像输入当前pcb板缺陷检测模型。
[0064]
本发明一个具体实施例中,待检测图像输入当前pcb板缺陷检测模型前,该待检测图像的尺寸应按照yolox目标检测网络的要求调节为640
×
640大小。
[0065]
若该待检测图像的缺陷类型为已知缺陷(即该图像的缺陷类型已经用于训练当前pcb板缺陷检测模型),则该待检测图像为可识别图像,当前pcb板缺陷检测模型输出该待检测图像中所有缺陷的预测框位置信息和每个预测框对应的缺陷类型即为该待测图像的缺陷检测结果,检测完毕。本发明一个具体实施例中,根据当前pcb板缺陷检测模型的输出结果,利用python脚本文件将检测模型输出的预测框位置信息和每个预测框对应的缺陷类型绘制在原待测图像上,从而更加直观地展示图像中所包含的缺陷。
[0066]
若待检测图像的缺陷类型为未知缺陷(即该图像的缺陷类型未用于训练当前pcb板缺陷检测模型)),则该待检测图像为未识别图像,当前pcb板缺陷检测模型不会产生任何相应的输出值,因此使用python脚本文件将检测模型的输出结果绘制在原待测图像上时,不会显示出任何信息,此时将该待检测图像添加至一个初始为空的未知缺陷数据集中,然后进入步骤3-3);
[0067]
3-3)对未知缺陷数据集中的图像数量进行判定:若未知缺陷数据集中的图像达到设定的数量,则进入步骤4);否则,重新返回步骤3-1)。
[0068]
本实施例中,当未知缺陷数据集中图像(即包含刮伤和沾金两种新的缺陷类型的图像)数量达到600张时,进入步骤4)。
[0069]
4)利用未知缺陷数据集训练当前pcb板缺陷检测模型,得到更新后的pcb板缺陷检测模型;具体步骤如下:
[0070]
4-1)利用步骤3)得到的未知缺陷数据集构建新的pcb板缺陷检测训练数据集。
[0071]
本实施例中,利用步骤3)得到的未知缺陷数据集(该数据集中的图像包含刮伤和沾金两种新的缺陷类型)构建新的pcb板缺陷检测训练数据集:对未知缺陷数据集中的每张图像进行人工标注,画出缺陷框的位置并给出相应的缺陷类型,每张图像对应一个标注文件,标注文件格式为.xml格式;将未知缺陷数据集中的每张图像及其对应的标注结果组成一个新的训练样本,所有新的训练样本构成新的pcb板缺陷检测训练数据集。
[0072]
进一步地,使用水平翻转、随机旋转和增强亮度等一系列数据增强策略来进一步扩充训练数据集。本实施例中,经过数据增强扩充后的新的pcb板缺陷检测训练数据集包含刮伤和沾金两种缺陷类型的训练图像共1000张,同时对应1000个标注文件。
[0073]
4-2)利用步骤4-1)的新的pcb板缺陷检测训练数据集训练当前pcb板缺陷检测模型,得到更新后的pcb板缺陷检测模型;具体包括:
[0074]
在当前pcb板缺陷检测模型的基础上复制一份相同的模型,这时应该有两个相同的pcb板缺陷检测模型。将这两个pcb板缺陷检测模型分别记为教师模型a和学生模型b。
[0075]
本实施例中,由于yolox目标检测网络的yolohead检测头子网络中的类别预测卷积神经网络层的通道数与缺陷类别数量对应,因此,根据新的pcb板缺陷检测训练数据集的标注结果,针对新出现的缺陷类别应该相应地扩充学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数,使得学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数与增加后的缺陷类型数量一致。本发明一个具体实
施例中,最初的pcb板缺陷检测训练数据集有4种缺陷类型因此每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数也相应为4,现在增加了两种新的缺陷类型,那么通道数就要扩充到6,这样既能识别出以前的4种缺陷类型,也能识别出新的缺陷类型。将学生模型b中所有yolohead检测头子网络中的类别预测卷积神经网络层的原通道数4扩充为6,对应在原有的4种缺陷类型基础上增加2种新的缺陷类型,教师模型a保持原有通道数不变。
[0076]
本发明实施例所采取的持续学习策略本质上是通过知识蒸馏损失函数来使得在利用新的缺陷类型数据训练检测模型时能够保留检测模型已经学习过的缺陷类型知识,从而使得一个检测模型在学习新的缺陷类型知识以后能够同时检测所有学习过的缺陷类型(本实施例中,所有缺陷类型为缺孔、异物、短路、开路、刮伤和沾金)。针对yolox目标检测网络的预测框回归参数输出和缺陷类型分类输出两部分构建蒸馏损失函数,具体如下:
[0077][0078]
式中,f
reg
为均方误差损失函数,f
cls
为带蒸馏温度t的交叉熵损失函数,i为当前训练图像,n为当前训练数据集中所有训练图像的数量。和分别为教师模型a中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出,同时它们被当作蒸馏损失函数的软标签。和分别为学生模型b中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出。蒸馏损失的目的是为了将教师模型中的已学知识迁移到学生模型中,由于学生模型b扩充了类别预测层的通道数,因此分类蒸馏损失应该只针对于已学缺陷类别,即应该与教师模型a中的类别预测层的通道数相一致。本实施例中,的特征通道数为4,的特征通道数为6,因此在计算f
cls
时应该取前4个特征通道的数值,对应已学的4种pcb板缺陷类别,蒸馏温度t取2。
[0079]
则用于更新当前pcb板缺陷检测模型的最终的总训练损失函数为:
[0080]
l
all
=l
yolox
+λl
dist
ꢀꢀꢀ
(2)
[0081]
式中,l
yolox
为目标检测损失函数,l
dist
为蒸馏损失函数。λ为平衡因子用来控制目标检测损失和蒸馏损失的权重,本实施例中数值取0.5。
[0082]
本发明一个具体实施例中,利用步骤4-1)得到的1000张新训练图像训练学生模型b。训练过程中,训练数据集的图像同时输入教师模型a和学生模型b中,每训练一轮(训练集的所有训练图像输入一次为一轮)计算总损失函数l
all
,其中蒸馏损失l
dist
用来保留已学pcb板缺陷类型知识,目标检测损失l
yolox
用来学习新的pcb板缺陷类型。使用adam优化器(只更新学生模型b的参数,不更新教师模型a的参数),动量数值为0.9,学习率大小为1e-3,学习率衰减策略为余弦退火衰减。训练60轮后学生模型b达到收敛,此时的学生模型b即为更新后的pcb板缺陷检测模型(本实施例中,得到的更新后的pcb板缺陷检测模型能够检测所有6种pcb板缺陷类型)。
[0083]
5)将步骤4)得到的更新后的pcb板缺陷检测模型作为新的当前pcb板缺陷检测模型,然后清空未知缺陷数据集,重新返回步骤3)。
[0084]
为实现上述实施例,本发明第二方面实施例提出一种基于持续学习的pcb板缺陷检测装置,包括:
[0085]
图像采集模块,用于获取pcb板的缺陷部位图像作为待检测图像;
[0086]
缺陷检测模块,用于将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。
[0087]
需要说明的是,前述对一种基于持续学习的pcb板缺陷检测方法的实施例解释说明也适用于本实施例的一种基于持续学习的pcb板缺陷检测装置,在此不再赘述。根据本发明实施例提出的一种基于持续学习的pcb板缺陷检测装置,通过获取pcb板的缺陷部位图像作为待检测图像;将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。由此可实现在无法获得已知缺陷类型训练数据的情况下,不仅能够实现对已知缺陷类型的检测同时也能够增量式地学习并检测新的缺陷类型,弥补了现有的pcb板缺陷检测模型只能检测封闭式场景下的缺陷类型的短板,大大提高了检测模型的适用性和拓展性。
[0088]
为实现上述实施例,本发明第三方面实施例提出一种电子设备,包括:
[0089]
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
[0090]
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述一种基于持续学习的pcb板缺陷检测方法。
[0091]
为实现上述实施例,本发明第四方面实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述一种基于持续学习的pcb板缺陷检测方法。
[0092]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0093]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例的一种基于持续学习的pcb板缺陷检测方法。
[0094]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0095]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0096]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0097]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0098]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他
合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0099]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0100]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0101]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0102]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种基于持续学习的pcb板缺陷检测方法,其特征在于,包括:获取pcb板的缺陷部位图像作为待检测图像;将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。2.根据权利要求1所述的方法,其特征在于,所述待检测图像的缺陷检测结果包括所述待检测图像中所有缺陷的预测框位置信息和每个预测框对应的缺陷类型。3.根据权利要求2所述的方法,其特征在于,所述pcb板缺陷检测模型采用yolox目标检测网络作为主体网络,该主体网络的输出连接一个预测结果解码模块;其中,所述yolox目标检测网络网络包括:一个cspdarknet主干子网络、一个fpn特征金字塔子网络和三个相同的yolohead检测头子网络;所述cspdarknet主干子网络的输出连接所述fpn特征金字塔子网络的输入,所述fpn特征金字塔子网络的输出分别连接三个所述yolohead检测头子网络的输入,三个所述yolohead检测头子网络的输出分别连接所述预测结果解码模块的输入,所述预测结果解码模块输出对应输入图像的缺陷预测结果。4.根据权利要求3所述的方法,其特征在于,在所述获取pcb板的缺陷部位图像作为待检测图像之前,所述方法还包括:利用已知缺陷类型的pcb缺陷图像训练所述pcb板缺陷检测模型;所述利用已知缺陷类型的pcb缺陷图像训练所述pcb板缺陷检测模型,包括:1)构建pcb板缺陷检测训练数据集;所述pcb板缺陷检测训练数据集中的训练图像为与所述待检测图像尺寸一致的pcb板缺陷图像,每张训练图像中只包含一种缺陷类型,且该缺陷类型在该训练图像中至少一处位置出现;对每张训练图像进行标注,得到每张训练图像中缺陷框的位置及对应缺陷类型的标注结果;将每张训练图像及其对应的标注结果组成一个训练样本,所有训练样本构成pcb板缺陷检测训练数据集;2)构建所述pcb板缺陷检测模型;3)利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型,得到训练完毕的pcb板缺陷检测模型。5.根据权利要求4所述的方法,其特征在于,在所述利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型之前,所述pcb板缺陷检测模型中的yolox目标检测网络载入预训练权重。6.根据权利要求4所述的方法,其特征在于,所述利用所述pcb板缺陷检测训练数据集训练所述pcb板缺陷检测模型的损失函数采用yolox目标检测网络损失函数。7.根据权利要求6所述的方法,其特征在于,所述利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型,包括:1)将所述未识别图像添加至初始为空的未知缺陷数据集;2)当所述未知缺陷数据集中的图像数量达到设定的数值时,利用所述未知缺陷数据集构建新的pcb板缺陷检测训练数据集,包括:
对所述未知缺陷数据集中的每张图像进行标注,得到每张图像中缺陷框的位置及对应缺陷类型的标注结果;将所述未知缺陷数据集中的每张图像及其对应的标注结果组成一个新的训练样本,所有新的训练样本构成新的pcb板缺陷检测训练数据集;3)利用新的pcb板缺陷检测训练数据集训练当前pcb板缺陷检测模型,得到更新后的pcb板缺陷检测模型;具体包括:复制当前pcb板缺陷检测模型,将两个当前pcb板缺陷检测模型分别记为教师模型a和学生模型b;根据新的pcb板缺陷检测训练数据集的标注结果,扩充学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数,使得学生模型b中每个yolohead检测头子网络中的类别预测卷积神经网络层的通道数与增加后的缺陷类型总数一致;将新的pcb板缺陷检测训练数据集的图像同时输入教师模型a和学生模型b中,每训练一轮计算总损失函数l
all
,表达式如下:l
all
=l
yolox
+λl
dist
式中,l
yolox
为目标检测损失函数,l
dist
为蒸馏损失函数,λ为平衡因子用来控制目标检测损失和蒸馏损失的权重;式中,f
reg
为均方误差损失函数,f
cls
为带蒸馏温度t的交叉熵损失函数,i为当前训练图像,n为当前训练数据集中所有训练图像的数量;和分别为教师模型a中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出;和分别为学生模型b中所有检测头子网络对第i张输入图像的预测框回归参数输出和缺陷类别预测值输出;训练时,更新学生模型b的参数,不更新教师模型a的参数;训练完毕后,得到更新后的学生模型b作为新的当前pcb板缺陷检测模型,并清空未知缺陷数据集。8.一种基于持续学习的pcb板缺陷检测装置,其特征在于,包括:图像采集模块,用于获取pcb板的缺陷部位图像作为待检测图像;缺陷检测模块,用于将所述待检测图像输入预设的pcb板缺陷检测模型;若所述待检测图像对应的缺陷类型已用于训练所述pcb板缺陷检测模型,则所述待检测图像为可识别图像,所述模型输出所述可识别图像的缺陷检测结果;若所述待检测图像对应的缺陷类型未用于训练所述pcb板缺陷检测模型,则所述待检测图像为未识别图像,利用所述未识别图像训练所述pcb板缺陷检测模型,以得到可识别新的缺陷类型的更新后的所述pcb板缺陷检测模型。9.一种电子设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述权利要求1-7任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7任一项所述的方法。

技术总结
本发明提出一种基于持续学习的PCB板缺陷检测方法及装置,属于PCB板缺陷检测领域。其中,所述方法包括:获取PCB板的缺陷部位图像作为待检测图像,将待检测图像输入预设的PCB板缺陷检测模型;若待检测图像对应的缺陷类型已用于训练PCB板缺陷检测模型,则该模型输出该图像的缺陷检测结果;若待检测图像对应的缺陷类型未用于训练PCB板缺陷检测模型,则利用该图像训练PCB板缺陷检测模型,以得到可识别新的缺陷类型的更新后的PCB板缺陷检测模型。本发明在无法获得已知缺陷类型训练数据的情况下,可实现对已知缺陷类型的检测同时也能够增量式地学习并检测新的缺陷类型,大大提高了PCB板缺陷检测模型的适用性和拓展性。PCB板缺陷检测模型的适用性和拓展性。PCB板缺陷检测模型的适用性和拓展性。


技术研发人员:刘华平 吴瑞林 葛泉波
受保护的技术使用者:清华大学
技术研发日:2023.05.29
技术公布日:2023/8/23
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐