1.本发明涉及计算机视觉领域,具体涉及一种基于卷积神经网络的焊点检测方法。
背景技术:2.近年来,人们对网络的需求快速增长,互联网流量快速增长,从而也大大拉动了电子制造产业需求的增长,让电子制造产业成为当今世界最重要的战略性产业之一。在互联网时代,电子产品不仅应用于计算器、移动电话以及电脑等产品,在人工智能设备、大型工业设备、汽车以及航空设备等产品上也应用广泛。电子制造业是体现一个国家的生产力水平的重要要素,也是区分发展中国家和发达国家的重要因素。我国的电子制造业规模在近年来一直呈平稳增长的态势,电子制造业已然成为了国民经济的重要支柱产业。
3.表面组装技术(surface mounted technology,smt)是电子制造组装行业里最流行的一种技术和工艺。smt技术可以实现对一些印刷电路板(printed circuit board,pcb)“自动化、高科技”加工。在近十年来,smt技术在中国已经浸透到各个行业,各个领域,发展神速,应用范围十分广泛。虽然smt技术有其自身的特点和优势,但是在电子制造组装业中除了有标准的元器件外,还有很多的非标准元器件,由于它们的结构外型特殊,导致很难实现全自动焊接。
4.尽管目前现代化企业已经普遍使用自动插装、自动焊接的生产工艺,但对一些非标元器件目前还采用手工焊接的方法,所以目前还没有任何一种焊接方法可以完全取代手工焊接。手工焊接这种传统的基于人工焊接的方式,不仅生产效率低,劳动强度大,而且对工人经验要求高,易受情绪影响等,因此人工焊接无法保证产品交付时间以及产品质量。
5.当pcb板焊接完成后,需要对其进行故障检测,而进行故障检测的重要前提就是对于待检测焊点的精确识别。传统方法主要是目测法,但其易受主观因素影响、不稳定、速度慢以及效率低下,容易影响产品的市场竞争力。为了助力实现自动焊接,可以使用计算机视觉等技术自动识别焊点位置。
技术实现要素:6.本发明为了精准识别pcb上的焊点并定位其位置,提出了一种基于卷积神经网络的焊点检测方法。
7.为了实现这一目的,本发明的技术方案,包括以下步骤:
8.步骤1、采集pcb焊点数据集并对数据进行预处理,然后对数据进行标注、保存。
9.步骤2、基于计算机视觉,建立卷积神经网络模型。
10.步骤3、利用焊点数据训练集对建立的卷积神经网络模型进行训练,并使用焊点数据测试集对建立的模型进行测试。
11.上述步骤1中,采集焊点数据集并对数据进行预处理、标注以及保存,具体实施步骤如下:
[0012]1‑
1.数据采集,首先,利用aoi自动光学检测设备对pcb印制电路板进行原始图像
采集。对每一块pcb电路板,相机拍摄多个局部视场,再通过图像拼接的方法拼接成一张完整的图像。
[0013]1‑
2.数据预处理,由于原始图像尺寸太大,而焊点太小,所以为了保证能够精确检测定位到焊点位置,将图像统一分割成416
×
416大小。
[0014]1‑
3.数据标注,由于训练卷积神经网络模型训练需要大量图片数据,将预处理后的图像使用标注工具labelimg进行人工标注,使用其矩形框标注出图像焊点目标。
[0015]1‑
4.数据保存。在使用labelimg标注工具标注后,将生成一个.xml文件,其中保存的关键信息有目标名name,目标框的坐标xmin,xmax,ymin,ymax。标注完的数据格式按照voc数据格式存储,一张图像对应一个标签文件,图像保存格式为.jpg,标签文件保存格式为.xml。
[0016]
所述步骤2中基于计算机视觉,建立卷积神经网络模型,具体实现如下:
[0017]
使用卷积神经网络模型作为焊点检测模型进行焊点的检测和定位。针对焊点检测这种小尺度目标检测,该模型在现有yolov3的基础上进行了多尺度检测的改进,并使用了基于残差神经网络改进的darknet53网络作为特征提取器,使得改进后的卷积神经网络模型能够更好的检测小目标。
[0018]
所述的步骤3利用焊点数据集对所述的卷积神经网络模型进行训练的过程包括如下步骤:
[0019]3‑
1.划分数据集。将采集到的数据集按照7:3的比例划分成训练集和测试集。
[0020]3‑
2.网络输入和数据增强。由于在卷积神经网络模型中有5次下采样过程,即25=32,因此网络输入图像应该是32的倍数。将训练集每幅图像分割为13
×
13个单元格。因为13
×
32=416,因此最后要求输入图像尺寸为416
×
416。
[0021]
对有限的训练集进行数据增强,所述的数据增强包括对训练集图片进行水平翻转、垂直翻转、随机旋转、色彩抖动。
[0022]3‑
3.网络结构。所述的卷积神经网络模型的骨干网络(backbone)采用了darknet53的网络结构,将整个卷积神经网络模型的特征层分为5个尺度,这5个尺度生产的特征图像尺寸分别为13
×
13、26
×
26、52
×
52、104
×
104、208
×
208。所述的卷积神经网络模型使用这5个不同尺度的特征图像能够更好的与小尺度目标进行局部特征交互。
[0023]3‑
4.网络输出。训练集上使用了k
‑
means聚类方法获取了15个锚框(anchor boxes),输出时将选取一个与真值(ground truth)的iou最大的锚框作为预测框。针对一个输入图像,所述的卷积神经网络模型会将其映射到5个不同尺度的输出张量,代表图像各个位置存在目标的概率。对于一个416
×
416的输入图像,每一个预测是一个4+1+1=6维向量,这个6维向量分别包含一个预测边界框坐标(c
x
,c
y
,p
w
,p
h
)、边框置信度以及目标类别的概率,其中c
x
,c
y
是预测边界框在特征图像上的中心坐标,p
w
,p
h
是预测边界框在特征图上的宽和高。当边框置信度高于0.3则会被判定为一个疑似目标,当两个预测框的交并比大于设定阈值时,则认为两个预测框标注的是同一个目标,此时通过非极大值抑制(non
‑
maximum suppression,nms)方法来选中置信度最高的预测框作为最后的结果,输出其坐标信息和类别信息。
[0024]3‑
5.损失函数。损失函数由四个部分组成,为loss
all
=loss
xy
+loss
box
×
loss
wh
+loss
conf
+loss
cls
。其中loss
xy
表示坐标x和坐标y的位置偏移产生的损失,loss
wh
表示目标框
的高和宽的误差损失,loss
conf
表示目标框置信度的损失,loss
cls
表示分类类别损失,最后引入了loss
box
,其作用是在计算目标框高和宽的过程中放大小尺度目标框的回归损失,使小目标的高宽损失在总损失函数中占比更大,更利于小目标的检测。
[0025]
损失函数具体计算如下所示:
[0026][0027]
其中,参数定义如下:
[0028]
s2:总共有s
×
s个网络单元
[0029]
b:每个网络单元中都有b个预测框
[0030]
取值为0或1。当网络单元i中存在目标,则取值1证明第j个预测框预测有效;当网络单元i中不存在目标,则取值为0。
[0031]
取值为0或1。其含义与相反。当网络单元i不存在目标,则取值0;当网络单元i中存在目标,则取值为1。
[0032]
x,y:预测边界框的中心位置
[0033]
实际边界框的中心位置
[0034]
w,h:预测边界框的宽和高
[0035]
实际边界框的宽和高
[0036]
c:表示置信度得分,用来表示存在一个目标的概率大小
[0037]
预测边界框与实际边界框的交集部分
[0038]
λ
coord
:坐标预测权重,一个可调权重参数,用于调节各部分损失函数在总损失函数中占的比重
[0039]
λ
noobj
:置信度预测权重,用于平衡存在目标的置信度损失和不存在目标的置信度损失
[0040]
λ:一个可调节权重系数,用于调节loss
box
在总损失函数中占的比重
[0041]
p
i
(c):预测的目标类别
[0042]
实际的标签类别
[0043]3‑
6.测试模型。使用测试集对训练好的模型进行测试。使用多个评估参数,包括精确率(precision)、召回率(recall)、f1值以及交并比(iou)。另外,还使用帧率(fps)来检测模型的检测速度。
[0044]
计算上述五个参数的公式如下所示:
[0045]
精确率:precision=tp/(tp+fp)
[0046]
召回率:recall=tp/(tp+fn)
[0047]
f1值:f1=2*precision*recall/(precision+recall)
[0048]
交并比:
[0049]
帧率:
[0050]
其中,tp是真正例,表示预测为1且真实值也为1的样本数,fp是假正例,表示预测为1但真实值为0的样本数,fn是假负例,即预测为0但真实值为1的样本数。交并比iou就是模型输出的预测框dr(detection result)与原有的真实标注框gt(ground truth)的交叠率,最理想的情况是二者完全重叠,此时iou为1。最后本文使用了帧率fps来评价本算法处理图像的速度,n是处理图像总数,t为处理所需时间,其单位是帧每秒(f/s)。
[0051]
本发明相对于现有技术具有如下的优点及效果:
[0052]
1.改进了yolov3网络结构,通过5个不同尺度的特征检测层来检测焊点目标,提高了目标检测网络对小尺度目标的检测效果。
[0053]
2.改进了损失函数。本发明所述的卷积神经网络的损失函数由四部分组成,通过使用多损失函数进行约束可以在不同方面对结果进行优化,保证模型具有很高的精度。
[0054]
3.本发明所述的卷积神经网络在保证准确率的同时,能够达到实时检测,满足工厂实际生产需求。
附图说明
[0055]
图1是基于计算机视觉的焊点检测方法流程图。
[0056]
图2是aoi自动光学检测设备采集到的原始图像。
[0057]
图3是分割成416
×
416的数据集图像。
[0058]
图4是需要检测出的焊点目标。
[0059]
图5是卷积神经网络模型结构图。
[0060]
图6是模型在416
×
416图像中识别的结果。
[0061]
图7是vedai数据集的原始图像及目标。
[0062]
图8是卷积神经网络模型在1024
×
1024图像中识别的结果。
[0063]
具体实施方法
[0064]
以下结合附图与实施例对本发明方法进行进一步描述。
[0065]
图5是卷积神经网络模型结构图;原有的yolov3模型,由于输入为416
×
416尺寸的图像,而其三层特征层产生的特征图像尺寸分别为13
×
13、26
×
26和52
×
52。可以看出三个特征图像的尺寸比输入图像分别缩小了32倍、16倍和8倍。其中8倍降采样的感受野最小,适合检测小目标,最小能检测的目标尺寸为8
×
8。为了更好的检测小目标,本发明改进了yolov3模型,添加了两层特征层,其产生的特征图像尺寸分别为104
×
104和208
×
208。新增的两个特征图像的尺寸只比输入图像缩小了4倍和2倍,这样最小能检测的目标尺寸就变成2
×
2,可以更好的获取小目标的特征,从而将其识别和定位。
[0066]
本发明为了精准识别pcb上的焊点并定位其位置,提出了一种基于卷积神经网络模型的焊点检测方法。
[0067]
如图1所示,为了实现这一目的,本发明的技术方案,包括以下步骤:
[0068]
步骤1、采集pcb焊点数据集并对数据进行预处理,然后对数据进行标注、保存。
[0069]
步骤2、基于计算机视觉,建立卷积神经网络模型。
[0070]
步骤3、利用焊点数据训练集对建立的卷积神经网络模型进行训练,并使用焊点数据测试集对建立的模型进行测试。
[0071]
上述步骤1中,采集焊点数据集并对数据进行预处理、标注以及保存,具体实施步骤如下:
[0072]1‑
1.数据采集,首先,利用aoi自动光学检测设备对pcb印制电路板进行原始图像采集。对每一块pcb电路板,相机拍摄多个局部视场,再通过图像拼接的方法拼接成一张完整的图像。采集后的图像如图2所示,尺寸大小为5182
×
2697。
[0073]1‑
2.数据预处理,由于原始图像尺寸太大,而焊点太小,所以为了保证能够精确检测定位到焊点位置,我们将图像统一分割成416
×
416大小,分割后的图像如图3所示。
[0074]1‑
3.数据标注,由于训练神经网络模型训练需要大量图片数据,将预处理后的图像使用标注工具labelimg进行人工标注,使用其矩形框标注出图像焊点目标,如图4所示。
[0075]1‑
4.数据保存。在使用labelimg标注工具标注后,将生成一个.xml文件,其中保存的关键信息有目标名name,目标框的坐标xmin,xmax,ymin,ymax。标注完的数据格式按照voc数据格式存储,一张图像对应一个标签文件,图像保存格式为.jpg,标签文件保存格式为.xml。
[0076]
所述步骤2中基于计算机视觉,建立卷积神经网络模型,具体实现如下:
[0077]
使用卷积神经网络模型作为焊点检测模型进行焊点的检测和定位。针对焊点检测这种小尺度目标检测,该模型在现有yolov3的基础上进行了多尺度检测的改进,并使用了基于残差神经网络改进的darknet53网络作为特征提取器,使得改进后的卷积神经网络能够更好的检测小目标。所述的卷积神经网络模型结构如图5所示。
[0078]
所述的步骤3利用焊点数据集对所述的卷积神经网络模型进行训练的过程包括如下步骤:
[0079]3‑
1.划分数据集。将采集到的数据集按照7:3的比例划分成训练集和测试集。
[0080]3‑
2.网络输入和数据增强。由于在卷积神经网络模型中有5次下采样过程,即25=32,因此网络输入图像应该是32的倍数。这里将训练集每幅图像分割为13
×
13个单元格。因为13
×
32=416,因此最后要求输入图像尺寸为416
×
416。
[0081]
为了保证训练出来的模型不过拟合,即有足够的泛化性,就需要有足够多的训练集来训练模型。本方法对有限的训练集进行数据增强,所述的数据增强包括对训练集图片进行水平翻转、垂直翻转、随机旋转、色彩抖动等。对有限训练集进行数据增强就能产生大量未采集到并符合实际的图片,提高模型泛化性。
[0082]3‑
3.网络结构。所述的卷积神经网络模型的骨干网络(backbone)采用了darknet53的网络结构,darknet
‑
53一方面采用了全卷积,另一方面又引入了残差(residual)结构,这样在网络层数较深的情况下就能避免产生梯度消失和梯度爆炸等问题,可以更好的提取输入图像的特征。将整个卷积神经网络模型的特征层分为5个尺度,这5个尺度生产的特征图像尺寸分别为13
×
13、26
×
26、52
×
52、104
×
104、208
×
208。所述的卷积神经网络模型使用这5个不同尺度的特征图像能够更好的与小尺度目标进行局部特征交互。
[0083]3‑
4.网络输出。训练集上使用了k
‑
means聚类方法获取了15个锚框(anchor boxes),输出时将选取一个与真值(ground truth)的iou最大的锚框作为预测框。针对一个输入图像,所述的卷积神经网络模型会将其映射到5个不同尺度的输出张量,代表图像各个位置存在目标的概率。对于一个416
×
416的输入图像,每一个预测是一个4+1+1=6维向量,这个6维向量分别包含一个预测边界框坐标(c
x
,c
y
,p
w
,p
h
)、边框置信度以及目标类别的概率,其中c
x
,c
y
是预测边界框在特征图像上的中心坐标,p
w
,p
h
是预测边界框在特征图上的宽和高。当边框置信度高于0.3则会被判定为一个疑似目标,当两个预测框的交并比大于设定阈值时,则认为两个预测框标注的是同一个目标,此时通过非极大值抑制(non
‑
maximum suppression,nms)方法来选中置信度最高的预测框作为最后的结果,输出其坐标信息和类别信息。
[0084]3‑
5.损失函数。由于相比较大尺度目标,小尺度目标检测的检测框的宽和高更加重要,性能提升也更加困难。同时由于在预测小尺度目标框时产生的偏差对于该小目标本身的精度影响很大,但在改进前的yolov3网络总损失函数中占比很低,导致网络训练过程中损失函数的收敛对于小目标不敏感。因此,在本方法中,为了改善这个问题,设计出一个新的损失函数。该损失函数由四个部分组成,为loss
all
=loss
xy
+loss
box
×
loss
wh
+loss
conf
+loss
cls
。其中loss
xy
表示坐标x和坐标y的位置偏移产生的损失,loss
wh
表示目标框的高和宽的误差损失,loss
conf
表示目标框置信度的损失,loss
cls
表示分类类别损失,最后本方法引入了loss
box
,其作用是在计算目标框高和宽的过程中放大小尺度目标框的回归损失,使小目标的高宽损失在总损失函数中占比更大,更利于小目标的检测。通过定义该损失函数,可以从不同方面对结果进行优化,使结果更加精确。
[0085]
损失函数具体计算如下所示:
[0086][0087][0088]
其中,参数定义如下:
[0089]
s2:总共有s
×
s个网络单元
[0090]
b:每个网络单元中都有b个预测框
[0091]
取值为0或1。当网络单元i中存在目标,则取值1证明第j个预测框预测有效;当网络单元i中不存在目标,则取值为0。
[0092]
取值为0或1。其含义与相反。当网络单元i不存在目标,则取值0;当网络单元i中存在目标,则取值为1。
[0093]
x,y:预测边界框的中心位置
[0094]
实际边界框的中心位置
[0095]
w,h:预测边界框的宽和高
[0096]
实际边界框的宽和高
[0097]
c:表示置信度得分,用来表示存在一个目标的概率大小
[0098]
预测边界框与实际边界框的交集部分
[0099]
λ
coord
:坐标预测权重,一个可调权重参数,用于调节各部分损失函数在总损失函数中占的比重
[0100]
λ
noobj
:置信度预测权重,用于平衡存在目标的置信度损失和不存在目标的置信度损失
[0101]
λ:一个可调节权重系数,用于调节loss
box
在总损失函数中占的比重
[0102]
p
i
(c):预测的目标类别
[0103]
实际的标签类别
[0104]
训练完成后的网络模型识别的结果如图6所示。
[0105]3‑
6.测试模型。使用测试集对训练好的模型进行测试。为了衡量模型的好坏,本方法使用了多个评估参数,包括精确率(precision)、召回率(recall)、f1值以及交并比(iou)。另外,还使用帧率(fps)来检测模型的检测速度。
[0106]
计算上述五个参数的公式如下所示:
[0107]
精确率:precision=tp/(tp+fp)
[0108]
召回率:recall=tp/(tp+fn)
[0109]
f1值:f1=2*precision*recall/(precision+recall)
[0110]
交并比:
[0111]
帧率:
[0112]
其中,tp是真正例,表示预测为1且真实值也为1的样本数,fp是假正例,表示预测为1但真实值为0的样本数,fn是假负例,即预测为0但真实值为1的样本数。交并比iou就是模型输出的预测框dr(detection result)与原有的真实标注框gt(ground truth)的交叠率,最理想的情况是二者完全重叠,此时iou为1。最后本文使用了帧率fps来评价本算法处理图像的速度,n是处理图像总数,t为处理所需时间,其单位是帧每秒(f/s)。
[0113]
基于计算机视觉的焊点检测方法,是通过运行照相机和计算机来检测在印制电路板pcb上是否有焊点以及精确定位焊点信息的技术。本发明基于计算机视觉的焊点检测方法流程图如图1所示。
[0114]
本发明的模型具体效果通过以下实验进一步说明。
[0115]
本发明的实验环境和条件如下:
[0116]
cpu:core i7 i7
‑
9700k 3.60ghz
[0117]
gpu:nvidia geforce rtx 2080ti
×2[0118]
内存:32gb
[0119]
操作系统:ubuntu 18.04.4 lts
[0120]
实验所用数据集来自同一台aoi自动光学检测设备,每张图像尺寸统一为416
×
416,在训练后,可以从表1看出检测性能较好。使用模型检测的结果如图6所示。
[0121]
表1
[0122]
size精确率(%)召回率(%)f1值(%)iou(%)帧率(f/s)416
×
4168997.793.285.65420.515
[0123]
为了进一步证实本方法对小尺度目标检测性能的提升,使用一个公开的小目标数据集对模型进行性能测试。vedai数据集图像尺寸为1024
×
1024大小,是一个航拍数据集,数据集中目标非常小,原图及目标如图7所示。本实验在vedai数据集中选取大约1200张含车辆和飞机的航拍图作为数据集,以该数据集做实验以证明本发明方法改进后的卷积神经网络模对小尺度目标检测性能的提升。实验结果如表2所示。使用改进后的卷积神经网络模型检测结果如图8所示。从表2的实验结果中f1值的变化可以看出改进后的卷积神经网络对小尺度目标检测性能提升较为显著。
[0124]
表2
[0125]