一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种PCB元器件缺陷检测的方法

2023-04-05 02:47:54 来源:中国专利 TAG:

一种pcb元器件缺陷检测的方法
技术领域
1.本发明涉及缺陷检测技术领域,特别涉及一种pcb元器件缺陷检测的方法。


背景技术:

2.电子行业的飞速发展推动了电子科学技术和电子产品的不断更新迭代,使得pcb(print circuit board)往高密度、小体积、元件数量大、种类多的方向发展。为了避免不合格的pcb电路板流入生产线或进入更深一步的制作流程而影响生产效率,人们需要对贴片后的pcb板进行缺陷检测。
3.传统的pcb缺陷检测方法有人工目视和电气检测,人工目视虽然操作简单只需要工人用眼检查,但其因检测效率低、误检率高、主观性较强以至于不能准确检测缺陷类型等问题已不能满足流水线生产使用;电气检测需要检测电路是否通路来对电路板是否合格做出判断,但其存在可能损坏电路板、成本较高等问题。近年来随着计算机视觉的发展,人们开始采用计算机视觉方法检测pcb元器件缺陷,特别的是使用传统图像处理,用有缺陷的pcb图像和没有缺陷的pcb图像进行模板匹配或进行信息比对以获取缺陷信息,但该方法精度低且需要一个一模一样的正常无缺陷pcb板,厂家在生产pcb板的时候,受限于经济成本原因也很难做到同样的样本生产多个来进行对比检测,此方法缺少正常板则无法做比对分析,这大大增加了成本和降低了实用性。


技术实现要素:

4.本发明的目的是提供一种pcb元器件缺陷检测的方法,该方法能够解决解决人工目视带来的检测效率低、误检率高和电气检测带来的高成本、有损样本等问题,可以在实现pcb无损检测的同时完成高精度高效率速度快的实时检测。
5.本发明提供的一种pcb元器件缺陷检测的方法,包括:
6.采集pcb图像并处理;
7.利用训练好的神经网络对pcb板图像进行检测获取pcb图像的元器件坐标和种类信息;
8.获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息;
9.将检测的pcb元器件的种类信息、字符信息和字符区域信息和标准pcb元器件的种类信息、字符信息和字符区域信息对比,判断元器件是否出现缺陷。
10.采集pcb图像并处理包括:
11.采用不重叠拍摄方式用相机最小物距来采集图像,获取样本,把接收的图像统一转化为预设分辨率的图像;
12.对pcb样本图像采用pytorch的transforms模块和opencv进行随机裁剪、翻转、旋转、提升图片对比度、添加椒盐噪声的数据增强操作。
13.采集pcb图像并处理之后,包括对神经网络进行训练,具体包括:
14.将采集的pcb样本图像分为训练集和验证集;
15.对yolov5进行改进,引入空间和通道混合注意力机制cbam,将yolov5的backbone中的c3全部替换成cbam,并添加小目标检测层和使用转置卷积代替最近邻插值法,将yolov5中的聚类算法k-means改成k-means ,增加了图像拼接模块和分割检测模块;
16.对改进后的yolov5网络进行迭代训练直至神经网络收敛。
17.神经网络进行训练之后,包括对采集的pcb图像进行图像拼接后,采用分割检测的方式检测pcb图像,具体包括:
18.对相邻的两幅局部pcb元器件图像获取其公共区域roi,得到最佳匹配位置后计算x和y方向需要平移的像素距离,生成拼接图像;
19.将经过pcb元器件图像数据集训练后得到的yolov5神经网络,检测待测pcb元器件图像时对pcb元器件图像进行图像分割,再逐一输入到yolov5神经网络中检测,输出元器件的候选框概率和位置信息,检测后再根据相对坐标回收所有pcb元器件图像。
20.获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息,包括字符坐标信息提取具体为:
21.使用opencv east字符检测模块检测元器件中字符所在区域,截取字符所在区域的特征图片后使用opencv对特征图片进行二值化和像素取反变白字黑底处理;
22.将处理后的特征图片通过膨胀和最大连通区域操作以增强字符相对于特征图片的背景的显示性;
23.计算增强后的非平行字符的最小边框的旋转角度,再根据角度执行仿射变换将增强后的非平行字符调整至水平状态。
24.获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息包括字符信息识别,具体为:
25.使用ppocrlabel对paddleocr预测有误的字符进行纠正,同时对于一些颠倒的字符图片,纠正为旋转180度后的正向字符;
26.将纠正后的正向字符输入paddleocr网络中训练至paddleocr网络收敛;
27.将pcb图像放入训练后的paddleocr网络中检测,输出识别结果。
28.对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括判断电阻是否错装,具体为:
29.判断电阻:根据电阻存在转换公式ab*10c,a和b为字符中除最后一位外的所有字符,c为字符中最后一位字符,电阻检查方式为,在相同坐标下先比对种类是否为电阻,如不是,则为错装;如是,进行字符判断,如字符不一致,则为错装。
30.对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括判断电容是否错装,具体为:
31.判断电容:电容分为普通无字符电容和带字符电容,对于普通无字符电容,如判断普通无字符电容和普通无字符电容间是否错装,因相同电容不存在差异问题,故不需要判断,如判断普通无字符电容和其他元件是否错装,只需要比对其是否种类一样即可,如判断普通无字符电容与带字符电容是否错装,只需要比对其是否有字符;
32.对于带字符电容,如判断带字符电容和带字符电容间是否错装,根据电容法拉第f转换公式,电容有两个值,对于f,转换公式为ab*10-c
f,ab为前两个字符,c为最后一个字符;
对于电压v,可直接进行对比,电容检查方式为,在相同坐标下先比对种类是否为电容,如不是,则为错装;如是,比对字符,如两者有一不存在字符,则为错装;如均存在字符,设置循环搜索csv中的字符在元件中的位置,比对符合转换公式判断是否错装。
33.对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括判断芯片、二极管、电感是否错装,具体为:
34.判断芯片、二极管、电感:芯片、二极管和电感均是有字符的,直接将元件的字符信息与csv中的信息进行比对,芯片、二极管、电感的检查方式为,在相同坐标下先比对种类是否为此类元器件,如不是,则为错装;如是,进行字符判断,如字符不一致,则为错装。
35.对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括判断测试点、输出端、直插插座是否错装,具体为:
36.判断测试点、输出端、直插插座:这些均是没有字符的,只需要对其种类进行比对,测试点、输出端、直插插座为,在相同坐标下元件种类和csv中种类是否一致来判断是否错装。
37.本发明通过使用图像采集系统采用不重叠拍摄的方式采集pcb样本图像,对得到的图像做裁剪,裁剪为分辨率是32的倍数的图像。对裁剪得到的图像构建数据集,对标签少的数据进行数据增强,对图像进行元器件标注和锡珠短接、漏装缺陷标注,得到有元器件标签和坐标信息。将数据集输入到yolov5网络中进行训练迭代,得到训练好的权重文件。训练好的网络对图像拼接后的pcb板图像进行图像分割检测,可实现锡珠短接检测和元器件漏装检测。获取检测后的pcb元器件预测框样本,得到元器件图像和坐标种类信息。对元器件图像使用opencv进行预处理,使用opencv east字符检测模块检测元器件中字符所在区域。使用paddleocr字符识别网络,制作字符数据集自训练模型来纠正模型准确度使其能满足检测需求,使用ocr识别元器件上的字符,与csv对应坐标上的元器件种类、字符对比,设置一定阈值判断其是否存在错装的情况。能够解决解决人工目视带来的检测效率低、误检率高和电气检测带来的高成本、有损样本等问题,可以在实现pcb无损检测的同时完成高精度高效率速度快的实时检测。
附图说明
38.此处的附图被并入说明书中并构成本说明书的一部分,标示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
40.图1为本发明提出的一种pcb元器件缺陷检测的方法的流程图;
41.图2为本发明提出的一种pcb元器件缺陷检测的方法的神经网络训练流程图;
42.图3为本发明提出的一种pcb元器件缺陷检测的方法的ocr字符识别流程图;
43.图4为本发明提出的一种pcb元器件缺陷检测的方法的本发明中元器件检测结果和对元器件漏装的检测结果图;
44.图5为本发明提出的一种pcb元器件缺陷检测的方法的本发明中元器件字符识别结果图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
47.另外,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一种该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
48.本发明提供的一种pcb元器件缺陷检测的方法,包括:
49.s100,采集pcb图像并处理;
50.s200,利用训练好的神经网络对pcb板图像进行检测获取pcb图像的元器件坐标和种类信息;
51.s300,获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息;
52.s400,将检测的pcb元器件的种类信息、字符信息和字符区域信息和标准pcb元器件的种类信息、字符信息和字符区域信息对比,判断元器件是否出现缺陷。
53.本发明通过使用图像采集系统采用不重叠拍摄的方式采集pcb样本图像,对得到的图像做裁剪,裁剪为分辨率是32的倍数的图像。对裁剪得到的图像构建数据集,对标签少的数据进行数据增强,对图像进行元器件标注和锡珠短接、漏装缺陷标注,得到有元器件标签和坐标信息。将数据集输入到yolov5网络中进行训练迭代,得到训练好的权重文件。训练好的网络对图像拼接后的pcb板图像进行图像分割检测,可实现锡珠短接检测和元器件漏装检测。获取检测后的pcb元器件预测框样本,得到元器件图像和坐标种类信息。对元器件图像使用opencv进行预处理,使用opencv east字符检测模块检测元器件中字符所在区域。使用paddleocr字符识别网络,制作字符数据集自训练模型来纠正模型准确度使其能满足检测需求,使用ocr识别元器件上的字符,与csv对应坐标上的元器件种类、字符对比,设置一定阈值判断其是否存在错装的情况。能够解决解决人工目视带来的检测效率低、误检率高和电气检测带来的高成本、有损样本等问题,可以在实现pcb无损检测的同时完成高精度高效率速度快的实时检测。
54.s100采集pcb图像并处理包括:
55.采用不重叠拍摄方式用相机最小物距来采集图像,获取样本,把接收的图像统一转化为预设分辨率的图像;
56.对pcb样本图像采用pytorch的transforms模块和opencv进行随机裁剪、翻转、旋转、提升图片对比度、添加椒盐噪声的数据增强操作。
57.采用不重叠拍摄方式可以防止数据冗余,防止数据采集到相同的样本,提高模型的工作效率和训练速度,以工业相机最小物距来采集图像,获取最清晰的样本,也有助于拍摄更多的数据,裁剪为32倍数分辨率的图像有助于神经网络获取图像的全部信息且防止数据丢失,裁剪的时候尽量保持图片的分辨率的多样性,若图片中存在大分辨率的元器件,则把图片裁剪成32倍数的大图片,若图片中只有小分辨率的元器件则把图片裁剪成32倍数的小图片。图片大小不同可以发挥yolov5候选框多样性且不会影响大元器件的识别精度。裁剪的时候应保持大元器件的完整性,统一大小的输入图片则可能会导致元器件信息丢失。
58.s100采集pcb图像并处理之后,包括s110对神经网络进行训练,具体包括:
59.s111将采集的pcb样本图像分为训练集和验证集;
60.s112对yolov5进行改进,引入空间和通道混合注意力机制cbam,将yolov5的backbone中的c3全部替换成cbam,并添加小目标检测层和使用转置卷积代替最近邻插值法,将yolov5中的聚类算法k-means改成k-means ,增加了图像拼接模块和分割检测模块;
61.在本步骤中,因为对大分辨率图像进行检测时,由于小目标如元器件,分辨率很小导致anchor可能搜索不到小目标或检测置信度降低,故可以采用对大图像分块局部检测再融合的思想进行检测;滑动窗口方式可以保证局部图像拼接的完整性,设置重叠区域的原因是pcb存在大元器件,如果刚好裁剪的是大元器件的区域会导致大元器件完整性缺失,设置30%重叠区域有助于保证大元器件检测完整性;nms可以解决图像拼接时重叠区域的问题,nms可以对重叠区域根据置信度降序排列候选框列表,设置0.5的置信度阈值,通过对比iou(预测框与真实框的重叠程度)值不断循环直到获取到最佳的拼接效果。
62.同时,在yolov5中引入cbam,使得网络更关注目标区域的特征,同时抑制其他无关信息,降低背景对检测结果的影响;由于yolov5下采样倍数较大,较深的特征图很难学习到小目标的特征信息,因此可以添加小目标检测层使得浅层特征图和深层特征图拼接。
63.先给yolov5增加小目标检测层再改进自动聚类的双重机制,在开始训练前会对数据集中标注信息进行核查,计算此数据集标注信息针对默认锚定框的最佳召回率,当最佳召回率大于或等于0.98,则不需要更新锚定框;如果最佳召回率小于0.98,则需要重新计算符合此数据集的锚定框能有效保证能提取到有用的候选框,k-means缺点是在初始化聚类中心时是在最小值和最大值之间随机取一个值作为其聚类中心,这样的随机取值会导致聚类中心选的不好影响最后的结果,特别对于本实例中存在特别多的小元件且每个小元件长相都比较相似,使得采用k-means时簇之间的相似度较高。而k-means 使初始聚类中心之间相互距离尽可能远,这降低了各簇之间相似性。
64.s113对改进后的yolov5网络进行迭代训练直至神经网络收敛。
65.神经网络进行训练之后,包括对采集的pcb图像进行图像拼接后,采用分割检测的方式检测pcb图像,具体包括:
66.对相邻的两幅局部的pcb元器件图像获取其公共区域roi,得到最佳匹配位置后计算x和y方向需要平移的像素距离,生成拼接图像;
67.使用nms(非极大值抑制)处理重叠区域,生成拼接图像。生成拼接图像后对其进行基于统计特征的评价,主要包括信息熵、空间频率、平均梯度、均值、标准差等方式,来判断拼接图像是否达到质量要求而类似的发明专利采用的是以sift特征点匹配算法完成图像拼接,此方法比基于sift、surf的特征匹配拼接更快速,操作更方便简单实用,且待拼接图
像无明显尺度变换和畸变。
68.将经过图像拼接后的pcb元器件图像输入训练得到的yolov5神经网络,输出元器件的候选框概率和位置信息,yolov5神经网络检测待测pcb元器件图像时对pcb元器件图像进行图像分割再逐一输入到yolov5神经网络中检测,检测后再根据相对坐标回收所有pcb元器件图像。
69.增加分割检测模块,由于图像分辨率较大,检测待测图像时对图像进行图像分割再逐一输入到网络中检测,检测后再根据相对坐标回收所有图像,在yolov5头部增加一层上采样模块,由于yolov5对分辨率大的图像下采样倍数过快会导致小目标信息丢失,故增加一层上采样模块可以获取更大的小目标特征图
70.s300获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息,包括s301字符坐标信息提取具体为:
71.使用opencv east字符检测模块检测元器件中字符所在区域,截取字符所在区域的特征图片后使用opencv对特征图片进行二值化和像素取反变白字黑底处理;
72.将处理后的特征图片通过膨胀和最大连通区域操作以增强字符相对于特征图片的背景的显示性;
73.计算增强后的非平行字符的最小边框的旋转角度,再根据角度执行仿射变换将增强后的非平行字符调整至水平状态。
74.因提取出的元器件预测框中会含有其他干扰的背景项,采用east检测模块可以快速筛选出字符所在区域,且east学习模型是端到端的,可以避开其他文本检测器应用的计算成本高的子算法,且本发明中元器件字符通常偏短,能很好的解决east感受野不足导致无法识别长文本的问题。因在实际pcb板中会存在垂直放置的元器件,而垂直放置的元器件不利于ocr字符识别提取,故可以通过计算其字符旋转角度再执行仿射变换对其调整至水平状态。
75.s300获取pcb图像的字符所在区域并利用字符识别网络识别pcb图像的元器件的字符信息包括s302字符信息识别,具体为:
76.使用ppocrlabel对paddleocr预测有误的字符进行纠正,同时对于一些颠倒的字符图片,纠正为旋转180度后的正向字符;
77.将纠正后的正向字符输入paddleocr网络中训练至paddleocr网络收敛;
78.将pcb图像放入训练后的paddleocr网络中检测,输出识别结果。
79.由于在pcb板中会包括正向放置的元器件和颠倒放置的元器件,对于正向放置的元器件,可以很容易地识别其字符;但对于颠倒放置的元器件,神经网络总是采用从左到右的特征提取方式提取特征信息,这样的情况下很容易导致预测错误,如正向放置的字符为104,颠倒放置变为401,如果不加纠正,神经网络会将颠倒字符其识别为h01,故采用自训练的方式改变网络识别方式。
80.s400对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括s401判断电阻是否错装,具体为:
81.判断电阻:根据电阻存在转换公式ab*10c,a和b为字符中除最后一位外的所有字符,c为字符中最后一位字符,电阻检查方式为,在相同坐标下先比对种类是否为电阻,如不是,则为错装;如是,进行字符判断,如字符不一致,则为错装。
82.例如字符上是101,则取前两位10,10*10^1=100k,如字符上是222,则取前两位22,22*10^2=2.2k,故如果在元件中心坐标完全一致的情况下,可判断电阻错装。
83.s400对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括s402判断电容是否错装,具体为:
84.判断电容:电容分为普通无字符电容和带字符电容,对于普通无字符电容,如判断普通无字符电容和普通无字符电容间是否错装,因相同电容不存在差异问题,故不需要判断,如判断普通无字符电容和其他元件是否错装,只需要比对其是否种类一样即可,如判断普通无字符电容与带字符电容是否错装,只需要比对其是否有字符;
85.对于带字符电容,如判断带字符电容和带字符电容间是否错装,根据电容法拉第f转换公式,电容有两个值,对于f,转换公式为ab*10-c
f,ab为前两个字符,c为最后一个字符;对于电压v,可直接进行对比,电容检查方式为,在相同坐标下先比对种类是否为电容,如不是,则为错装;如是,比对字符,如两者有一不存在字符,则为错装;如均存在字符,设置循环搜索csv中的字符在元件中的位置,比对符合转换公式判断是否错装。
86.例如:csv中字符为47μf/10v,而元件字符为586/10v,则为错装;如为47μf/10v,而元件字符是476/10v,因为47*10-6
=47μf,10v=10v,则为错装。
87.s400对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括s403判断芯片、二极管、电感是否错装,具体为:
88.判断芯片、二极管、电感:芯片、二极管和电感均是有字符的,直接将元件的字符信息与csv中的信息进行比对,芯片、二极管、电感的检查方式为,在相同坐标下先比对种类是否为此类元器件,如不是,则为错装;如是,进行字符判断,如字符不一致,则为错装。
89.s400对比元器件中种类、字符和坐标信息,判断元器件是否出现缺陷包括s404判断测试点、输出端、直插插座是否错装,具体为:
90.判断测试点、输出端、直插插座:这些均是没有字符的,只需要对其种类进行比对,测试点、输出端、直插插座为,在相同坐标下元件种类和csv中种类是否一致来判断是否错装。
91.本发明通过使用图像采集系统采用不重叠拍摄的方式采集pcb样本图像,对得到的图像做裁剪,裁剪为分辨率是32的倍数的图像。对裁剪得到的图像构建数据集,对标签少的数据进行数据增强,对图像进行元器件标注和锡珠短接、漏装缺陷标注,得到有元器件标签和坐标信息。将数据集输入到yolov5网络中进行训练迭代,得到训练好的权重文件。训练好的网络对图像拼接后的pcb板图像进行检测,可实现锡珠短接检测和元器件漏装检测。获取检测后的pcb元器件预测框样本,得到元器件图像和坐标种类信息。对元器件图像使用opencv进行预处理,使用opencv east字符检测模块检测元器件中字符所在区域。使用paddleocr字符识别网络,制作字符数据集自训练模型来纠正模型准确度使其能满足检测需求,使用ocr识别元器件上的字符,与csv对应坐标上的元器件种类、字符对比,设置一定阈值判断其是否存在错装的情况。能够解决解决人工目视带来的检测效率低、误检率高和电气检测带来的高成本、有损样本等问题,可以在实现pcb无损检测的同时完成高精度高效率速度快的实时检测。
92.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献