一种基于自学习的自动焊接及缺陷检测方法
技术领域
本发明涉及机器视觉领域,具体涉及一种基于自学习的自动焊接及缺陷检测方法。
背景技术
电子制造产业持续增长,成为当今世界最重要的战略性产业之一。在信息化时代,电子产品不仅应用于小型计算器、移动电话、笔记本电脑,在大型工业设备、汽车、军事武器系统和航空设备领域也应用广泛。电子制造业已成为衡量一个国家经济发展、科技进步和综合国力的重要标志。近年来,我国电子信息制造业以每年20%以上的速度逐年增长,已经成为了国民经济的支柱产业。
表面贴装技术(Surface Mount Technology,SMT)作为电子制造组装行业的基础技术,在近年得到了迅猛提升,中国的SMT技术及其整个产业的规模已经跃居全球的首位。到目前,在中国拥有超过15000条SMT自动生产线,成为世界上最大和最重要的SMT市场。然而,在电子制造组装业中除了标准的可以自动贴片的元器件外,还有很多其他非标元器件,由于其结构外型的特殊性,至今仍无法实现全自动焊接。
大量印刷电路板(Printed Circuit Board,PCB)在执行SMT自动贴片后,必须由人工完成非标元器件的手工焊接。这种传统的基于人工焊接的方式,不仅生产效率低、耗费时间长,容易使大量的贴片半成品产生堆积,延迟产品交付时间;而且劳动强度大、质量无法保证。特别是基于人工目检的质量检测与个人的主观经验有关,而人在工作时容易疲劳,受情绪影响大,因此检测效率偏低。
多年来,我国电子制造组装企业将数字化生产线建设作为企业信息化重点,并初见成效,特别是对于标准器件的全自动SMT贴片焊接,已经改变了传统的生产制造模式,有力保障了PCB产品的生产。但由于非标元器件形状各异、品种繁多等特点,以及客户需求高度定制化,在建设面向PCB非标元器件“数字化、网络化、智能化”的全自动电子装配生产线的过程中,仍存在以下两大问题:
(1)焊接需求高度定制化。非标元器件形态各异、尺寸不一,并且不同PCB板采用的非标元器件种类和排版位置也差异很大。采用传统高机械化工艺设计的焊接生产线并不能满足创新化、个性化和多样化的产品需求,矛盾日益激烈。
(2)焊接质量在线实时检测。现有焊接质量检测装备通常与焊接机械手臂工艺分离,而且需要人工辅助操作。这种通过人工目检完成焊接缺陷判断的方式,无法满足智能焊接生产线高度自动化、自学习、自进化的需求。
发明内容
本发明为了满足PCB非标元器件的柔性焊接生产要求,实现真正意义上的智能化全自动焊接,提出了一种基于自学习的自动焊接及缺陷检测方法。
为了实现这一目的,本发明的技术方案,包括以下步骤:
步骤1、采用基于先验知识的焊点粗定位,并规划焊接最优路径,为视觉系统和机械臂提供运行方向。
步骤2、基于机器视觉的焊点细定位,并判断焊点类型,精确引导机械臂找到焊点位置,针对性实施自动焊接。
步骤3、采用基于在线深度强化学习的焊点缺陷检测,自动检测焊点缺陷及判断类型,为同工位二次补焊提供依据和指导。
上述步骤1中,基于知识的焊点粗定位及焊接最优路径规划,具体实施步骤如下:
1-1.首先建立非标元器件知识库,库内包括所有种类非标元器件的名称、信息及焊接手段。读取PCB文件后,得到所需焊接元器件及焊点信息,利用知识库,识别PCB板中所有非标元器件的焊点。建立自定义PCB坐标系,标注所有非标元器件焊点,使每个焊点获得唯一的坐标信息,完成焊点粗定位。
1-2.为了最小化总工作时间,多焊接路径进行规划,搜索视觉系统相机移动的最优路径。PCB板中焊点分布密集,为了防止其他焊点对于目标非标元器件焊点的干扰,需要确定目标焊点的唯一视场(Field of Vision,FOV)。视场是一个相机在单次拍照可以获得的最大图像区域。PCB板进板并固定后,相机首先移动到全板MARK点(用铜印刷在电路板上的标记),作为PCB板上相机寻点路径的初始点。
1-3.按照规划的路径顺序移动到目标视场区域。焊点顺序访问的问题建模为一个标准的旅行商问题。以焊点的坐标信息为依据,使用Hopfield神经网络获得最优路径,自动规划焊点焊接顺序,如图2所示。
所述的步骤2中基于机器视觉的焊点细定位及焊点形状判别,具体实现如下:
使用YOLOv3作为目标检测模型进行目标的细定位,该目标检测模型在YOLOv2的基础上进行了应用性的改进,包括多尺度检测、多标签分类等,并使用基于残差神经网络改进的Darknet53网络作为特征提取器,使YOLO系列方法不擅长检测小物体的缺陷得到了改善,该算法也成为了目前为止最优秀的目标检测算法之一。
基于机器视觉的焊点细定位包括如下步骤:
数据集制作、网络模型训练、过滤识别结果并输出。
所述的数据集制作包括如下步骤:
2-1-1.数据采集,本发明所用数据来自一台AOI自动光学检测设备拍摄PCB电路板的原始图像,对每一块PCB电路板,相机拍摄多个局部视场,在通过图像拼接的方法拼接成一张完整的图像,如图3所示。
2-1-2.数据预处理,YOLOv3在网络输入时将图像统一为416×416大小,为了保证图像在这一过程中不失真,我们将图像都分割成416×416大小,再进行人工标注。
2-1-3.数据标注,神经网络训练需要大量的图像数据,随机选取了一部分图像使用标注工具LabelImg进行人工标注,标出其中的接插件焊点目标,如图4所示。
2-1-4.数据保存,标注完的结果生成一个.xml文件,其中保存的关键信息有目标类别name,目标框的四个端点坐标xmin,xmax,ymin,ymax。标注完的数据按照VOC数据格式存储,一张图像对应一个标签文件,图像保存格式为.img,标签文件保存格式为.xml。
所述的网络模型训练的过程包括如下步骤:
2-2-1.网络输入,数据增强。在YOLOv3中有5次下采样过程,25=32,因此网络输入图像大小为32的倍数,YOLOv3把输入图像分割为13×13的栅格,因此输入图像大小要求为32×13=416。
要保证训练出的模型要足够的泛化性,需要保证有足够多的数据来进行训练,需要对有限的数据进行数据增强。本方法中用到的数据增强方法有翻转变换、随机修剪、色彩抖动、平移变换、尺度变换、对比度变换、噪声扰动和旋转变换。
2-2-2.网络结构。在图像特征提取方面,YOLOv3采用了Darknet-53的网络结构,它借鉴了残差网络的做法,在一些层之间设置了快捷链路。从0层一直到74层,含有53个卷积层,其余为res层。从75到105层为YOLOv3网络的特征交互层,分为三个尺度,每个尺度内,通过卷积核的方式实现局部的特征交互,作用类似于全连接层但是通过卷积核(3×3和1×1)的方式实现特征图之间的局部特征交互。
2-2-3.网络输出。对于一个输入图像,YOLOv3将其映射到3个尺度的输出张量,代表图像各个位置存在各种对象的概率。对于一个416×416的输入图像,在每个尺度的特征图的每个网格设置3个先验框,总共有13×13×3+26×26×3+52×52×3=10647个预测。每一个预测是一个4+1+1=6维向量,这个6维向量包含边框坐标(4个数值),边框置信度(1个数值),对象类别的概率(该方法中只设一类目标类别)。
2-2-4.损失函数。损失函数由4部分组成,xy_loss:中心点的损失值;wh_loss:宽高的损失值;confidence_loss:框的损失值,其中框的损失值由两部分组成,第1部分是存在物体的损失值,第2部分是不存在物体的损失值;class_loss:类别损失值。将各部分损失值的和除以均值,累加,作为最终的图片损失值。
损失函数计算如下所示:
其中,参数定义如下:
S2:总共S×S个网络单元(i=0,...,S2)
B:每个单元格里的都有B个预测框(j=0,...,B)
定义为1或0,1:网络单元i中存在目标,则第j个预测框预测有效;0:网络单元中不存在目标时。
x,y:预测边界框的中心位置
w,h:预测边界框的宽高数据
c:表示置信度得分
λcoord:坐标预测权重
λnoobj:置信度预测权重
pi(c):预测的类别
训练完成后的网络模型识别的结果如图6所示。
所述的网络模型结果过滤并输出的步骤如下:
2-3-1.输出坐标与类别。对于每一个预测框有一个置信度,预设置信度高于0.3为一个疑似目标,当两个预测框交并比大于一个阈值时,则认为两个预测框标定的是同一个目标,对同一个目标一般存在多个预测框,在这些预测框中选取置信度最高的框作为最后的结果。输出其坐标信息和类别信息。
2-3-2.K-means聚类出阈值分布。由于焊点一般为较为规则的尺寸大小。因此如果输出过大或过小的预测框,则基本为无效的识别结果。因此本方法对训练集中焊点尺寸使用了K-means聚类,结果作为焊点大小输出的阈值。实验结果表明,改进阈值有效的提升了识别精度。
阈值的变化影响识别精度变化如图7所示。
所述的步骤3中,基于在线深度强化学习的焊点缺陷检测,具体实现如下:使用在线深度强化学习训练大量焊点数据,对模型进行连续更新,每次训练只利用当前的样本更新模型,从而降低学习复杂度。不同的焊点缺陷在RGB三色光源下呈现不一样的颜色分布特征。预设主要焊点类别有正常、多锡、假焊、少锡、桥连、虚焊。对步骤二提取到的单个焊点图片输入到用于缺陷检测的分类网络中,提取焊点特征,经过分类器之后一张图像可以用一个固定维度的向量进行描述,输出每个焊点对于六种焊点类型的得分,选择得分最高的作为该焊点的类型输出。
深度学习的“深度”是相对于传统机器学习的“浅层”而言的,常见的浅层学习方法包括逻辑回归(LR),提升方法(boosting),支持向量机(SVM)等。这些方法在深度学习诞生之前都被广泛研究应用并取得了显著成效。然而浅层学习的模型架构一般只包含单层隐层节点甚至没有隐层节点,这种简单的结构使得模型对于复杂函数的拟合能力十分有限。另一方面,浅层学习的输入是人工设计的特征,算法的效果很大程度上受手工特征选择的影响,这就需要研究人员具备相应的领域知识以及丰富的经验,因此有很大的局限性。
深度学习技术以其强大的特征表示能力,已经广泛应用在计算机视觉领域。深度Q网络(Deep Q-Network,DQN)模型结合使用卷积神经网络和Q学习算法,是首个在基于视觉感知的大规模状态空间任务中取得显著效果的深度强化学习方法。DQN模型架构的输入是经过预处理后的图像,该输入经过卷积层和全连接层的非线性变换,变换成低维的、抽象的特征表达,并最终在输出层产生每个动作对应的Q值函数。DQN模型架构如图8所示。
基于DQN模型的深度强化学习方法设计的详细架构图如图9所示。与普通强化学习方法相比,DQN模型在两个方面进行了优化。该方法结合了经验重放的思想,即迭代过程建立一个重放经验池,将每次学习到的经验保存起来,下次训练时随机选择一个经验进行训练。同时,模型中加入一个与深度价值网络结构相同的目标价值网络,打破了模型训练时状态的连续性。该思想相对于普通强化学习主要优势在于打破数据之间的相关性,降低数据更新的不确定性,并能有效避免算法收敛时造成局部最优的恶劣情况。基于DQN模型的深度强化学习使焊接生产线具有自学习性,提高缺陷检测的准确率,其模型学习流程图如图10所示。
基于在线深度强化学习的焊点缺陷检测方法,通过经验重放机制训练检测模型,通过数据量的增加不断优化检测模型。经验重放机制的主要作用是为了克服经验数据的关联性和非平稳分布问题。在具体的模型训练过程中,做法是从以往的状态经验中随机采样进行训练,优点是使焊点缺陷检测模型在训练中数据的利用率更高,降低连续样本的相关性。在线深度强化学习提高了海量数据的学习效率,在线学习训练模型是连续更新的,每次训练只利用当前的样本更新模型,从而降低学习复杂度。
本发明基于在线学习的自动焊接及缺陷检测技术路线图如图1所示。
本发明相对于现有技术具有如下的优点及效果:
1、自动规划焊接路径,采用路径规划算法优化相机与机械臂的焊接路径从而提高生产效率;
2、对于图像特征的提取,使用了融合多层特征的深度神经网络,有利于焊点众多小目标场景的检测;
3、优化训练过程,对于单类目标,提高坐标损失的权重,提高定位精度;
4、对结果进行阈值过滤,筛选掉干扰目标,提高识别精度。
5、在线深度强化学习提高了海量数据的学习效率,在线学习训练模型是连续更新的,每次训练只利用当前的样本更新模型,从而降低学习复杂度。
附图说明
图1是基于自学习的自动焊接及缺陷检测技术路线图。
图2是焊接路径自动规划示意图。
图3是AOI自动光学检测设备拍摄拼接的原始图像,大小为4863×2874像素。
图4是需要被识别的接插件焊点目标类型。
图5是YOLOv3的网络结构图。
图6是本方法在416×416分辨率下的识别结果。
图7是本方法在不同阈值大小下的识别结果比较。
图8是DQN模型架构图。
图9是DQN模型的深度强化学习架构图。
图10是基于深度强化学习的焊点检测模型学习流程图。
具体实施方法
本发明为了满足PCB非标元器件的柔性焊接生产要求,实现真正意义上的智能化全自动焊接,提出了一种基于自学习的自动焊接及缺陷检测方法及系统。
为了实现这一目的,本发明的技术方案,包括以下步骤:
步骤1,采用基于知识的焊点粗定位,并规划焊接最优路径,为视觉系统和机械臂提供运行方向。
步骤2,基于机器视觉的焊点细定位,并判断焊点类型,精确引导机械臂找到焊点位置,针对性实施自动焊接。
步骤3,采用基于在线深度强化学习的焊点缺陷检测,自动检测焊点缺陷及判断类型,为同工位二次补焊提供依据和指导。
上述步骤1中,基于知识的焊点粗定位及焊接最优路径规划。
在本实施例中,具体实施步骤如下:
1)首先建立非标元器件知识库,库内包括所有种类非标元器件的名称、信息及焊接手段。读取PCB文件后,得到所需焊接元器件及焊点信息,利用知识库,识别PCB板中所有非标元器件的焊点。建立自定义PCB坐标系,自动标注所有非标元器件焊点,使每个焊点获得唯一的坐标信息,完成焊点粗定位。
2)为了最小化总工作时间,多焊接路径进行规划,搜索视觉系统相机移动的最优路径。PCB板中焊点分布密集,为了防止其他焊点对于目标非标元器件焊点的干扰,需要确定目标焊点的唯一视场(Field of Vision,FOV)。视场是一个相机在单次拍照可以获得的最大图像区域。PCB板进板并固定后,相机首先移动到全板MARK点(用铜印刷在电路板上的标记),作为PCB板上相机寻点路径的初始点。
3)按照规划的路径顺序移动到目标视场区域。焊点顺序访问的问题建模为一个标准的旅行商问题。以焊点的坐标信息为依据,使用Hopfield神经网络获得最优路径,自动规划焊点焊接顺序,如图2所示。
上述步骤2中,基于机器视觉的焊点细定位及焊点形状判别。
在该实施例中,使用YOLOv3作为目标检测模型进行目标的细定位,该模型在YOLOv2的基础上进行了一些应用性的改进,包括多尺度检测、多标签分类等,并使用基于残差神经网络改进的Darknet53网络作为特征提取器,使YOLO系列方法不擅长检测小物体的缺陷得到了改善,该算法也成为了目前为止最优秀的目标检测算法之一。
基于机器视觉的焊点细定位包括如下步骤:
数据集制作、网络模型训练、过滤识别结果并输出。
在该实施例中,数据集制作包括如下步骤:
1)数据采集,本发明所用数据来自一台AOI自动光学检测设备拍摄PCB电路板的原始图像,对每一块PCB电路板,相机拍摄多个局部视场,在通过图像拼接的方法拼接成一张完整的图像,如图3所示。
2)数据预处理,YOLOv3在网络输入时将图像统一为416×416大小,为了保证图像在这一过程中不失真,我们将图像都分割成416×416大小,再进行人工标注。
3)数据标注,神经网络训练需要大量的图像数据,随机选取了一部分图像使用标注工具LabelImg进行人工标注,标出其中的接插件焊点目标,如图4所示。
4)数据保存,标注完的结果生成一个.xml文件,其中保存的关键信息有目标类别name,目标框的四个端点坐标xmin,xmax,ymin,ymax。标注完的数据按照VOC数据格式存储,一张图像对应一个标签文件,图像保存格式为.img,标签文件保存格式为.xml。
在该实施例中,网络模型训练的过程包括如下步骤:
1)网络输入,数据增强。在YOLOv3中有5次下采样过程,25=32,因此网络输入图像大小为32的倍数,YOLOv3把输入图像分割为13×13的栅格,因此输入图像大小要求为32×13=416。
要保证训练出的模型要足够的泛化性,需要保证有足够多的数据来进行训练,需要对有限的数据进行数据增强。本方法中用到的数据增强方法有翻转变换、随机修剪、色彩抖动、平移变换、尺度变换、对比度变换、噪声扰动和旋转变换。
2)网络结构。在图像特征提取方面,YOLOv3采用了Darknet-53的网络结构,它借鉴了残差网络的做法,在一些层之间设置了快捷链路。从0层一直到74层,含有53个卷积层,其余为res层。从75到105层为YOLOv3网络的特征交互层,分为三个尺度,每个尺度内,通过卷积核的方式实现局部的特征交互,作用类似于全连接层但是通过卷积核(3×3和1×1)的方式实现特征图之间的局部特征交互。
3)网络输出。对于一个输入图像,YOLOv3将其映射到3个尺度的输出张量,代表图像各个位置存在各种对象的概率。对于一个416×416的输入图像,在每个尺度的特征图的每个网格设置3个先验框,总共有13×13×3+26×26×3+52×52×3=10647个预测。每一个预测是一个4+1+1=6维向量,这个6维向量包含边框坐标(4个数值),边框置信度(1个数值),对象类别的概率(该方法中只设一类目标类别)。
4)损失函数。损失函数由4部分组成,xy_loss:中心点的损失值,wh_loss:宽高的损失值。confidence_loss:框的损失值。两部分组成,第1部分是存在物体的损失值,第2部分是不存在物体的损失值,class_loss:类别损失值。将各部分损失值的和,除以均值,累加,作为最终的图片损失值。
损失函数计算如下所示:
该实施例的效果可以通过以下实验进一步说明:
本发明的实验环境和条件如下:
CPU:Core i7 i7-8700K Hexa-core 3.70GHz
GPU:NVIDIA GeForce GTX 1080 Ti 11G
内存:32G
软件环境
操作系统:Ubuntu 16.04 LTS
实验所用图像数据与训练所用的图像来自与同一台AOI自动光学检测设备。为了比较模型对于不同分辨率大小的图片的识别效果,将一张大小为4863×2874的原始图像分割为3个不同的分辨率,分别为416×416、832×832、1024×1024。数量分别为126张、48张和35张。然后对这三种图片进行焊点目标人工标注,人工标注结果作为Ground Truth。模型识别结果与Ground Truth进行比较,计算模型识别准确度。
实验结果用五组参数来进行衡量,公式如下:
对于模型的性能评价主要有两个方面,识别准确性和识别效率,本发明中用交并比mIOU、精度P、召回率R和F1分数评价模型的识别准确性,用帧率fps来评价模型的识别效率。
其中:TP为真正例,即预测为1真实值也为1的样本,FP为假正例,即预测为1真实值为0的样本,FN为假负例,即预测为0而真实值为1的样本。交并比IOU是模型产生的预测框DT(Detection Result)与原标记框GT(Ground Truth)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1。本文使用了帧率fps评价算法处理速度的指标,n是处理图像的总量,T为所耗的总时间,结果为算法每秒处理的图像数量,其单位为帧每秒(f/s)。
从表1可以看到,416×416尺寸的测试图片精度97.348%、召回率90.813%、F1score 93.967%。在832×832尺寸下测试时,精度、召回率、F1 score都有所下降,精度下降了1.72%、召回率下降了1.249%、F1 score 1.47%。832×832的测试图片相比较于416×416的测试图片,图片规模的原来的四倍,需要检测的目标也是原来的4倍,因此帧率也有所下降。
表1
Size |
P/% |
R/% |
F1/% |
mIOU/% |
帧率f/s |
416×416 |
97.348 |
90.813 |
93.967 |
75.699 |
27.108 |
832×832 |
95.628 |
89.564 |
92.497 |
76.266 |
16.489 |
1024×1024 |
79.953 |
97.977 |
88.052 |
64.424 |
13.961 |
模型识别结果如图6所示。
在该实施例中,网络模型结果过滤并输出步骤如下:
出坐标与类别。对于每一个预测框有一个置信度,预设置信度高于0.3为一个疑似目标,当两个预测框交并比大于一个阈值时,则认为两个预测框标定的是同一个目标,对同一个目标一般存在多个预测框,在这些预测框中选取置信度最高的框作为最后的结果。输出其坐标信息和类别信息。
K-means聚类出阈值分布。由于焊点一般为较为规则的尺寸大小。因此如果输出过大或过小的预测框,则基本为无效的识别结果。因此本方法对训练集中焊点尺寸使用了K-means聚类,结果作为焊点大小输出的阈值。实验结果表明,改进阈值有效的提升了识别精度。
阈值的变化影响识别精度变化如图7所示。
上述步骤3中,基于在线深度强化学习的焊点缺陷检测。
不同的焊点缺陷在RGB三色光源下呈现不一样的颜色分布特征。
深度学习的“深度”是相对于传统机器学习的“浅层”而言的,常见的浅层学习方法包括逻辑回归(LR),提升方法(boosting),支持向量机(SVM)等。这些方法在深度学习诞生之前都被广泛研究应用并取得了显著成效。然而浅层学习的模型架构一般只包含单层隐层节点甚至没有隐层节点,这种简单的结构使得模型对于复杂函数的拟合能力十分有限。另一方面,浅层学习的输入是人工设计的特征,算法的效果很大程度上受手工特征选择的影响,这就需要研究人员具备相应的领域知识以及丰富的经验,因此有很大的局限性。
深度学习技术以其强大的特征表示能力,已经广泛应用在计算机视觉领域。深度Q网络(Deep Q-Network,DQN)模型结合使用卷积神经网络和Q学习算法,是首个在基于视觉感知的大规模状态空间任务中取得显著效果的深度强化学习方法。DQN模型架构的输入是经过预处理后的图像,该输入经过卷积层和全连接层的非线性变换,变换成低维的、抽象的特征表达,并最终在输出层产生每个动作对应的Q值函数。DQN模型架构如图8所示。
基于DQN模型的深度强化学习方法设计的详细架构图如图9所示。与普通强化学习方法相比,DQN模型在两个方面进行了优化。该方法结合了经验重放的思想,即迭代过程建立一个重放经验池,将每次学习到的经验保存起来,下次训练时随机选择一个经验进行训练。同时,模型中加入一个与深度价值网络结构相同的目标价值网络,打破了模型训练时状态的连续性。该思想相对于普通强化学习主要优势在于打破数据之间的相关性,降低数据更新的不确定性,并能有效避免算法收敛时造成局部最优的恶劣情况。基于DQN模型的深度强化学习使焊接生产线具有自学习性,提高缺陷检测的准确率,其模型学习流程图如图10所示。
基于在线深度强化学习的焊点缺陷检测方法,通过经验重放机制判断焊点检测结果质量,不断优化检测模型。在线的自动检测焊点缺陷及判断类型,提高缺陷检测的准确率,使焊接生产线具有自学习性,并且为机械臂在焊接工位实施二次补焊提供前提条件。