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

用于制造测试的图像分析系统的制作方法

2022-07-24 03:22:30 来源:中国专利 TAG:

用于制造测试的图像分析系统
1.相关申请的交叉引用
2.本技术涉及于2019年11月12日提交的美国临时申请62/934,397,并且将所述申请整体并入。
技术领域
3.本发明涉及光学分析,并且更具体地涉及自动制造或检查中的图像分类。


背景技术:

4.在当前的生产环境中,高度完善的自动光学检查(aoi)算法可能使大约3-15%的板不合格。例如,aoi机器可以分析表面安装技术(smt)板上的所有组件,其中可以包含1,000到10,000多个分类。如果一个或多个分类未通过,则板被认为“异常”。所有不合格的板都需要由人类操作员进行验证,并且根据历史估计,在一些配置中,98%的不合格被操作员认为是误报。aoi机器的这种高误报率需要时间和人力来处理。另外地,在原型生产线或引入新产品的生产线上,在仅制造几百个单位的给定产品的情况下,aoi将使100%的板不合格,这是因为aoi分类规则微调得不够,从而让操作员检查板是否正确组装。
5.通常,自动光学检查训练从用于训练所有组件形状的组件模型的“黄金”印刷电路板(pcb)或印刷电路板组合件(pcba)开始。这些模型将用于确定组件是否正确安装到pcba板上。组件外观(如由制造变化造成的)、照明、背景颜色和焊接轮廓的变化通常将导致机器错误地将组件标识为“不良”,并且因此导致未通过检查,这是因为外观上的这些变化可能会违反人类指定的分类规则之一,即使对于“良好”板。随时间的推移,操作员可以手动调整分类规则以更正确地分类哪些组件外观是“良好”与“不良”,但规则和组件类型总量大,从而产生高昂的人工成本并造成高人为错误机会。
6.在不同的照明情况下,每个组件形状都具有独特的检查算法(宏/子模式/窗口)。例如,算法用于确定存在、位置、ocr/ocv、焊料和吊桥条件。
7.针对每种类型的组件,存在许多可能的不合格模式,包含芯片组件。aoi机器使用单独的例程来检查这些不合格模式中的每一个模式。为此,必须对视觉模型进行单独训练,这需要时间和人力。在生产中,如果这些测试之一因组件不合格模式之一而使其不合格,则整个板被分类为“不合格的单元”。
8.图1示出了aoi机器检查过程的现有技术工作流程。如果aoi机器认为板是良好的,因为每个组件都通过了其对应分类规则集,所述板将被指定为“经验证合格”,并且无需任何人工交互即可进入下一个组装步骤。如果机器发现至少一个组件没有通过其对应分类规则,则所述板将被路由到操作员站以供人类操作员审查。此步骤可能需要几秒钟到几分钟才能完成,这取决于所标记的组件数量。如果操作员发现所述板是良好的,标记所述板通过审查,所述板将被送到下一个组装步骤。在新产品引入阶段期间,操作员可以选择更好地调整分类规则,以防止未来冒着引入新的“漏报”的风险而出现误报。然而,更新分类规则的过程是昂贵的,并且考虑到成千上万的组件类型和每个组件的大量规则,收益会递减。在生产
加速期间的某个时候,更改分类规则变得不太常见,因为这些规则被认为“足够好”并且平衡了误报与漏报。结果是人经常不得不审查大量的板(3%到15%是很常见的)。如果板未通过操作员审查,表明所述板存在缺陷,则可以通过修理。
9.在每天构建1000个单位的大批量smt生产线上,aoi机器检查通常会在5%的板中将至少一个组件标记为不良,这意味着每天必须手动审查50个板。据统计,这些“不良”上报中有99%是不正确的,并且所述板在人工审查后是合格的。
10.在每周构建少于100个单位的新产品引入(npi)pcba生产线上,预期机器检查结果有接近100%的不合格率,即所有板都需要人工检查,因为aoi分类规则没有充分调整,并且没有足够的实例来处理小批量生产及其伴随的变化。
11.因此,现有的aoi和其它检查系统需要大量的人工干预,并且误报率极高。
附图说明
12.附图通过举例的方式而非限制的方式在附图中示出了本发明,并且其中相同的附图标记指代类似的元件,并且其中:
13.图1示出了检查过程的现有技术工作流程。
14.图2是展示工作流程的一个实施例的框图。
15.图3是展示具有再训练系统的工作流程的一个实施例的框图。
16.图4是视觉分析和验证(vav)系统的一个实施例的框图。
17.图5是设置和训练vav系统的概述流程图。
18.图6是使用三路分类器的一个实施例的流程图。
19.图7a是所关注区域定义的一个实施例的流程图,包含掩码。
20.图7b是生成板图像的一个实施例的流程图。
21.图8是聚类统计变化的一个实施例的流程图,以使得能够扩展到新的缺陷类型。
22.图9是快速反馈和再训练循环的一个实施例的流程图。
23.图10是可以与本技术一起使用的计算机系统的框图。
具体实施方式
24.检查系统,包含自动光学检查(aoi)、axi(自动x射线检查)、spi(焊膏检查)和最终目视检查是制造过程的一部分。此类机器的误报率很高,即,将组合件标记为不良,尽管其实际上是良好的。此类机器也可能有漏报,即,将组合件标记为良好,尽管其实际上是不良的。如果有任何问题,优先级通常设置为拒绝板。部分原因是漏报可能比误报更成问题,这是因为在前一种情况下没有人工检查,并且检测这些不良组合件的最后机会是在生产线末端进行在线测试(ict),此时已经为时已晚,因为不良板上的元件不能轻易重复使用。因此,系统被设置为倾向于误报(错误地拒绝一个良好板)而非漏报(错误地使一个不良板合格)。然而,即使是很小的漏报率也可能导致使许多不良装置合格。此外,在针对数百个组件充分定义有效分类规则所需的人力与手动验证被自动化系统拒绝的板所需的努力之间进行权衡,每个组件都有自己的正常制造差异。
25.作为实例,假设在一条生产线上,检查系统将5%的组件标记为不良,并且99%的标记为不良的实例实际上是良好的,并且0.1%的标记为良好的实例实际上是不良的。在一
批20k实例中,将有20k
*
0.95
*
0.001=19个不良实例合格,而通过aoi 人工检测将检测到20k
*
0.05
*
0.01=10个不良实例。这意味着系统遗漏了几乎2/3的不良实例。了解漏报率对于生产线的质量至关重要。
26.本系统是一种高级视觉分析和验证系统(vav)。vav被设计成降低漏报和误报的百分比,以使检查更准确。vav的用途可以扩展到标识先前未发现的潜在新缺陷,并且将其识别为良好,或将其标记为未知或可疑。这减少了针对每种缺陷类型提供大量实例来训练机器学习系统的需要。
27.另外,在一个实施例中,通过提供分析平台作为vav系统的一部分,当vav决策的准确度降低时,可以快速进行标识。无需等待数小时或数天,使得人类操作员检测到aoi生产决策质量差或质量下降,系统可以通过注意到与低检测准确度相关的异常检测模式来立即检测到变化。更快地标识此类问题使得更快进行补救,并且减少由系统通过的不良板。这使得能够快速检测分类准确度的漂移。因为数据是从生产线上收集的,所以所述数据可以用于对更适于当前条件的模型进行再训练。另外,在一个实施例中,如果系统标识出检测准确度的变化,则机器学习系统可以倒回到先前状态。
28.在将检查程序发布到生产组装环境之前,在当前技术中,需要训练算法以测量每个组件特性的各种模式。在现有技术中,这种方法是一个高度监督的过程(每个步骤都需要专家的输入),并且适应新条件的速度非常慢,尤其是在使用新组件时,如在新产品引入(npi)过程中时。如果组件需要新的检查算法或分类规则集,专家必须标识图像中要关注的区域、需要设置哪些阈值等。并且在将算法投入生产之后,当闪电条件发生甚至一点变化,或者当组件的特性以不影响性能的方式发生变化(如塑料着色的制造变化)时,算法可能会开始使良好的组件不合格。另外,需要针对每个组件和每个不合格模式运行许多测量。
29.在一个实施例中,使用深度卷积神经网络(cnn)来改进此过程。分类任务是cnn的关键用例之一。这些网络的优点是不需要用户设计模型用来对图像进行分类的特征。相反,构建这些模型是一个弱监督的过程。模型的输入是一组经标记的图像,图像的指示其是良好的还是不良的初始标签,以及任选地其所指示的问题类型需要由专家分配。但是专家不需要花时间来定义所关注的区域和阈值。cnn将基于所呈现的数据来构建最佳反映图像所属种类的特征。如果有足够的数据,这些方法是非常准确的。还可以扩展分类以识别一种新的缺陷类型,只需要提供足够的新缺陷实例,并且对分类器进行再训练。为了加快训练过程,可以使用对属于1000个种类的数百万张图像进行预训练的架构,这显著地减少了训练时间。
30.上述原因使cnn成为降低aoi机器误报率的有力工具的主要候选者。
31.在一个实施例中,当呈现板的图像时,模型将返回两个数字,即图像是“不良”的概率,以及图像是“良好”的概率。这两个数字加起来为一,并且在一个实施例中,图像将被分配到的默认类别是具有更高概率的种类。在一些情况下,这两个概率彼此可能真的非常接近。例如,这些概率可以是:“良好”的概率是0.51,并且“不良”的概率是0.49。在这种情况下,通常,图像将被分类为良好,但只要在训练中稍加改变,其就可以很容易地被分类为不良。为了减轻这种影响,在一个实施例中,只有当预测种类的概率为至少0.95时,才接受分类器的决策,表明系统对其预测非常有信心。实际上,分类器的阈值从0.5变为0.95。
32.阈值变化提示引入了第三种类:“未知”,因为如果两个概率都没有达到0.95的阈
值,图像将不会被分类到所述种类中的任一种类中。因此,分类器没有足够信心将其分类为“良好”或“不良”的图像被分类为“未知”种类。因此,经更新的分类器将板分类为良好、不良和未知。尽管95%的概率用于将板分类为良好或不良,但在实验评估中,仅少数板被分类为“未知”。
33.在一个实施例中,系统不按组件类型分离组件。也不考虑组件形状值。相反,机器学习系统被训练为仅定位和评估相关方面。
34.例如,对于焊料评估,ml系统可能只关注组件引线(导线)与pcb焊盘之间的焊点。这可以通过多种方式实现,如堆叠的ml系统,其中一个ml预处理组件标识焊点(所关注区域)并掩蔽其它区域(不关注区域),并且其中辅助ml系统评估局部焊点的质量(良好对不良对不确定)。堆叠的ml系统还可能包含ml分类器,所述分类器查看组件形状并标识特征(文本、条形码、色带等),以确保将正确的组件安装在正确的位置处并以正确的朝向安装。在这个实施例中,一个实施例中的系统可以分离评估焊点的ml堆叠部分,使得其不依赖于被评估的具体pcba。事实上,来自任何电路板的训练数据都可以用于未来的所有电路板。虽然评估板上呈正确朝向的正确组件类型需要板特定的训练,但pcba的大多数其它评估可以跨各种板和组件进行。
35.这允许聚合跨所有类型的组件的训练数据。在传统系统中,当板上的任何元件的形状发生变化或组件移动时,系统需要再训练,因为训练是基于组件及其周围环境的标识。然而,在一个实施例中,本发明cnn系统被训练为在评估pcba的一些方面时与形状无关。例如,焊点的检查可以与组件形状无关。在一个实施例中,系统可以包含另一个ml系统,以评估正确的组件位于正确的位置。这可以基于组件形状的评估和/或标识数据,如组件上的书面文本代码或条形码或色带。使评估中的至少一些评估与组件形状无关是有用的,因为许多组件具有各种大小,并且在单一设计的多个元件具有多种大小配置是很常见的。
[0036]“堆叠的”ml系统可以解决多个不同的问题:
[0037]

查找焊点(使用cad或视觉)
[0038]

评估/检查/分类焊点
[0039]

查找组件
[0040]

检查组件的放置和朝向以及正确组装
[0041]

检查组件的类型和外观以及部件编号等。
[0042]

检查板本身:类型、朝向、所需特征,如孔、条形码、焊接掩模、焊盘等。
[0043]
在一个实施例中,本发明vav系统可以包含用于6种检查类型中的每一种的单独的堆叠的ml系统。这些项目中的一些项目(如查找和检查焊点,以及在pcba上查找组件)可以与板无关。这意味着一旦系统针对如何查找和评估焊点进行训练,系统就无需另外的训练或再训练来评估具有不同组件或布局的新板。根据定义,存在其它板特定的步骤(#4,#5的部件,#6)。在一个实施例中,系统可以具有两种不同类型的板特定的训练:利用经标记的真实示例图像(传统ml)进行训练,以及利用cad(计算机辅助设计)文件进行训练。在一个实施例中,系统可以使用cad文件来创建由cad数据渲染的pcba的合成图像。系统可以创建带有适当标签的“良好”板和“不良”板的合成图像,并且使用这些合成图像来训练ml。
[0044]
在一个实施例中,可以使用34层卷积神经网络。在一个实施例中,这种网络的最后几层可以使用元件的图像进行再训练,以使其适应将图像分类为“良好”类别和“不良”类别
的任务。
[0045]
通过引入“未知”种类,将操作员的专业知识引导到真正具有挑战性的实例中。操作员不会在95%的情况下击中接受按钮,而是会获得更平衡的图像样品,这些样品需要他或她的专业知识才能正确分类。
[0046]
即使处理设置为使得操作员必须检查“未知”类别中的所有图像和所有分类为“不良”的图像,其也只需要检查总数据集的一小部分。在这种情况下,大多数图像都会不良,因此操作员将准备好选择所述选项。但由于修理板需要更多的时间和人力,因此操作员需要彻底检查每个样品以挑选出良好的板。
[0047]
系统的优势
[0048]
这种方法可以快速适应新缺陷、新照明条件和新部件,而无需任何手工或调整功能。唯一需要的信息是人类专家将训练图像标记为良好或不良,这通常作为生产的一部分完成。此信息还可以用于定期再训练模型,并且适应变化的条件。
[0049]
如果模型不再高度准确,其将很快被标识,这是因为模型会跟踪如人类专家所标记的“未知”决策的数量、决策的总数和“良好”标签的数量。如果分类器准确度下降,这还使得能够实现快速响应、调整、更改恢复或再训练。
[0050]
在此实验中,目的是能够检测图像中是否存在电阻器或电容器,并且定位其应放置于其上的焊盘(底座),并且组件与焊盘之间的焊点是可接受的。使用从这种识别中获得的信息,系统可以验证部件(电容器或电阻器)放置正确,并且是正确的部件类型。最终,使用这些系统的目标是能够识别部件是否丢失或倾斜、焊盘或部件本身是否出现损坏或者所拍摄的板的照片中是否存在校准错误(仅部件的一部分在照片中示出)。这些算法可以补充从良好/不良分类器获得的结果,并且允许改进aoi机器的错误检测。这种技术当然可以应用于板上的任何其它元件,无论是电阻器/电容器、散热器、处理器还是其它任何元件。所描述的改进技术将加快对板的评估,使操作员审查更有用,并且减少合格的不良板和不合格的良好板的数量。
[0051]
本发明的实施例的以下详细描述参考附图,其中相同标号指示类似元件,通过说明的方式示出实践本发明的具体实施例。这些实施例的描述足够详细以使所属领域的技术人员能够实践本发明。所属领域的技术人员理解,可以利用其它实施例,并且可在不脱离本发明的范围的情况下进行逻辑、机械、电气、功能和其它改变。因此,以下详细描述不是限制性的,并且本发明的范围仅由所附权利要求书限定。
[0052]
图2是说明本发明系统的工作流程的一个实施例的框图。基于相机的检查机器210获得板的一张或多张照片。在一个实施例中,基于相机的检查机器210可以是aoi(自动光学检查)机器、axi(自动x射线检查机器)、spi(焊膏检查机器)或另一利用视觉检查的机器。
[0053]
基于相机的检查机器210的输出是表明板没有检测到违反分类规则(错误)的“合格”,或者表明系统具有至少一个违反分类规则(错误)的“不合格”。如上所述,如由操作员所分类的,绝大多数通过基于相机的检查机器210检查不合格的板实际上是良好的。
[0054]
在一个实施例中,不合格的板转到高级视觉分析验证(vav)系统220。vav系统220利用来自基于相机的检查机器210的图像数据,并且提供高级分析,如下文所描述的。如果vav系统220确定板合格,则将所述板分析为合格,并且通过框240传递到下一步骤。
[0055]
如果vav系统220将板分类为“不良”或“未知”,则将所述板标记为经分析不合格,
并且传递到操作员验证站230。如果操作员将板标记为合格,则将所述板标记为“审查合格的”,并且通过框240传递到下一步骤。如果板被审查为“不合格”,则将所述板标记为经验证缺陷,并且标记为“不良”。然后可以将所述板送去修理270、丢弃或以其它方式处理。
[0056]
图3是展示具有再训练系统的工作流程的一个实施例的框图。所述图展示了与图2的系统相同的系统,所述系统具有包含再训练的另外的机器学习系统310。在一个实施例中,vav系统220使用由机器学习系统310训练的卷积神经网络(cnn)。在一个实施例中,cnn 310可以涵盖多个单独的机器学习。在一个实施例中,cnn实施了“堆叠的”ml系统。在一个实施例中,针对每种检查类型,可以存在单独的“堆叠的”ml系统。例如,检查类型可以包含:标识组件、验证组件放置/取向/组装、标识组件类型和验证外观、检查焊点等。
[0057]
在一个实施例中,cnn 310也被连续地或周期性地再训练。vav系统220将关于由基于相机的检查机器210检查为不合格的板,但由vav系统220分析为良好的板的数据传递到机器学习系统310。另外,操作员对分析为不合格的板的分类也被反馈到机器学习系统310中。在一个实施例中,标记为良好但未通过最终检查/测试的板的最终检查结果也被反馈到机器学习系统310中。基于操作员的专家分类和最终检查真实世界数据,可以使用此数据来更新训练数据并更新vav系统220。在一个实施例中,系统还可以基于最终检查分析提供关于操作员准确度的反馈。
[0058]
在一个实施例中,在另一个实施例中,vav系统可以替代基于相机的检查机器210。因此,框210的硬件可以集成到框220的vav系统中。在一些实施例中,当机器学习系统足够准确时,可以取消操作员验证站230。因此,最基本的是,系统包含进行基于相机的检查的硬件,以及由机器学习系统310训练的高级视觉分析验证系统220,其中如果装置被标识为不合格,则将所述装置送去修理,如果装置被标识为合格,则被传递到另外的过程。
[0059]
图4是视觉分析和验证(vav)系统400的一个实施例的框图。尽管系统以两个框展示,即作为高级视觉分析验证410和具有再训练的机器学习系统450,技术人员将理解此系统可以在基于云的系统上、在单个计算机上或在一个或多个系统上的一个或多个处理器上实施。在一个实施例中,如下图10所示,系统包含计算机系统,其包含实施分析元件的处理器。
[0060]
在一个实施例中,高级视觉分析验证410的输入是来自检查机器的图像数据。在一个实施例中,可以将来自多个检查机器的具有各种类型图像的图像数据提供到高级视觉分析验证系统410。
[0061]
在一个实施例中,图像组合器415组合图像数据。通常,光学检查机器在不同的照明条件下拍摄每个元件的多个图像。在一个实施例中,光学检查机器还从不同角度拍摄图像。光学检查机器通常不会拍摄整个板的图像,而是拍摄板上每个经标识的元件的图像。在一个实施例中,系统接收拼接在一起以获得统一图像的多个图像。在另一个实施例中,系统可以联合分析图像,而不创建统一图像。这是有利的,因为其解决了光学检查机器稍微错位的情况,并拍摄了不包含整个元件的照片或以倾斜角度拍摄的照片。通常,此类错位或局部的图像未通过检查,因为其与样品图像不匹配。然而,通过将图像集拼接在一起(或联合评估),系统可以自校正未对准。
[0062]
在一个实施例中,ocr和元件匹配425利用图像中的视觉数据和与板相关联的cad数据来创建匹配,并且标识板上的元件。对于集成电路,部件的顶部上通常存在文本,包含
可以用于确定品牌、部件编号、部件类型的信息。在一个实施例中,ocr和元件匹配425从图像中提取此数据,并且使其与描述板的配置的cad数据相关联。这使vav系统更好地了解部件是什么。在一个实施例中,这可以解决用另一个部件取代一个部件所产生的问题,所述另一个部件在视觉上看起来不同,但提供相同的功能,不会造成错误的“不良”分类。例如,取代具有相同规格的来自不同制造商的电容器不太可能被标记为“不良”。
[0063]
网格和所关注区域(roi)逻辑435用于将统一图像切割成组件图像以供检查。在一个实施例中,此上下文中的“统一图像”是彼此正确对准以提供单个统一图像的等效物的图像组合。因此,网格和roi逻辑435可以创建包含来自由检查机器所拍摄的多个图像的部分的组件图像。在一个实施例中,系统使用来自ocr和元件匹配425的cad数据以及来自图像组合器415的统一图像以创建准确的网格,从而使得能够确定物体是否正确对准,并且还确保每个图像都包含所关注区域。在一些实施例中,除了进行组件级分析之外,系统还可以创建子板级的所关注区域,而不仅仅是组件级。网格和所关注区域逻辑435使用可从统一图像和cad分析获得的另外的信息来创建更准确的所关注区域窗口以供分析。
[0064]
在一个实施例中,网格和所关注区域逻辑435通过自动板级定位(localization/positioning)或姿势确定提供改进的板位置校准。在一个实施例中,系统可以通过图像的旋转/移位来校正软件中的定位变化,或者通过移动物理板以匹配预期来校正硬件中的定位变化。
[0065]
在一个实施例中,网格和所关注区域逻辑435可以利用无cad部件或特征发现和定位。系统可以通过识别封装类型来标识板上的部件或特征,而无需cad数据。在一个实施例中,可以使用ocr和元件匹配425。在一个实施例中,系统可以标识可以用于创建所关注区域窗口的焊盘、组件或其它制造对象(孔、通孔等)。这对于测试cad不可用的板可能特别有用,例如对于先前制造的可能无法工作的部件。这还可以用于加速和增强基于cad的方法。
[0066]
深度分析430利用一系列图像,其可以包含深度图像、法线图像、多维图像、表面法线图像、多光谱图像和多个深度处的x射线图像,以创建具有堆叠的景深(dof)的一个或多个图像。在一个实施例中,可以组合不同景深处的x射线以创建组合的对焦图像。在一个实施例中,这可以基于频率分析来完成以标识组件边缘。图像可以一起创建“深度图像”,其可以匹配焊料和/或元件的3d形状和深度,以确保其正确地附接到板。这可以检测到抬起的组件,以及其它难以标识的问题。
[0067]
一旦标识了所关注区域的窗口,则可以通过掩码逻辑420来掩蔽窗口内不关注的其它元件。在一个实施例中,使用来自cad文件的数据,因为cad数据包含关于丝网刻字/附近组件的信息。此数据用于掩蔽与此所关注区域分析不相关的“预期元件”,例如装置及其焊盘之外的所有东西。通过更好地掩蔽背景,分类器可以更准确,因为所述分类器不太可能受错误/不相关数据的影响。
[0068]
经训练的分类器440利用所标识的roi将每个组件分类为良好、不良或未知。在一个实施例中,分类器440是经训练的神经网络三路分类器。在一个实施例中,神经网络是卷积神经网络(cnn)。在一个实施例中,系统生成良好或不良的分类,并且将概率附加到分类中。如果两个概率均未超过阈值,在一个实施例中,阈值是95%,则组件被分类为“未知”。预期随着所见数据集数量的增加,“未知”分类的百分比将下降。
[0069]
在一个实施例中,经训练的分类器440能够在不同的封装类型之间迁移学习。某些
类型的检查通常适用于组件,例如焊接质量与板上的大多数元件相关。某些方面是特定于组件的,例如凸出的电容器相对独特,并且其它组件没有相当的变形。在一个实施例中,系统被训练为能够针对一般方面进行超出特定部分的概括。类似地,在一个实施例中,学习在不同板和产品之间转移。这使得能够实现更小的训练图像集,因为所使用的许多训练图像可能来自不同的板或不同的部件。
[0070]
在一个实施例中,经训练的分类器440可以将其检测扩展到新的缺陷类型,而不需要针对新缺陷的显性训练。存在许多方式使组合件可以是不良的,但是存在仅非常特定的方式使组合件可以是良好的。与良好的实例的偏差通常是不良的,并且学习异常检测允许系统将其标识扩展到先前未见过的缺陷。通过对具有仍然良好的统计变化的“良好”确定进行聚类,系统可以将所有不适合良好确定及其接受的变化的特征设置为不良好,即不良。系统不需要确定其是“如何”或“为什么”是不良的。这种类型的异常检测可用于标识新的缺陷类型,而无需再训练。
[0071]
由于这种聚类,系统对环境条件、照明和位置的变化也很稳健。这意味着系统在分类时应没有或最小的基于环境变化的故障。
[0072]
在一个实施例中,存储器445存储分类,所述分类被传递到下一个处理系统和机器学习系统450两者。在一个实施例中,如上所述,包含一个或多个分类为不良的元件的板被发送给操作员进行验证。在一个实施例中,向操作员提供指示哪些元件被标识为不良的板。分类为“未知”的板也会发送给操作员进行验证。在一个实施例中,由vav系统标记的问题被标识给操作员。在另一个实施例中,所标记的元件不提供给操作员,以避免使人工审查人员产生偏见。
[0073]
提供再训练的机器学习系统(mlr)450是创建训练分类器440的系统。在一个实施例中,训练系统455创建和更新训练中的cnn 470,其用于更新高级视觉分析验证410的经训练的卷积神经网络分类器440。
[0074]
训练系统455包含具有训练数据和测试数据的存储器460、聚类系统465和训练中的卷积神经网络(cnn)470。训练中的cnn 470最初用训练数据进行训练,并且用测试数据进行测试。在一个实施例中,随后用从分类器440获得的新数据、覆盖的分类和最终测试验证数据再训练训练中的cnn 470。在一个实施例中,当系统累积足够的数据或错误率高于阈值时,由触发器485触发再训练。在一个实施例中,在新数据来自现实世界的专家标记(操作员)时,再训练是连续的。在一个实施例中,由人类操作员提供的、在由vav系统分析为不良并由操作员评估的板上的注释用于不断地再训练训练中的cnn 470。在一个实施例中,用来自训练中的cnn 470的数据周期性地更新训练3路分类器440。在一个实施例中,当训练中的cnn接收到另外的数据时,更新是连续的,并且比先前版本更准确。在一个实施例中,更新会定期发生,无论新的训练数据是否已添加到系统。在一个实施例中,手动启动更新。
[0075]
在一个实施例中,训练系统455使用弱监督学习,其中由训练中的cnn 470做出的唯一确定是组件是良好还是不良。训练数据使用来自许多板的许多情况的“良好/不良”标记的图像,以训练训练中的cnn 470。在足够多的实例的情况下,训练中的cnn 470学习什么让某事物变得良好或不良。例如,系统将“了解”焊料量、部件定位、忽略什么(如刻字)、部件存在/不存在等。在一个实施例中,系统使用来自板系列之外的训练数据,以及特定组件/封装类型、跨板和封装类型、跨公司的变化,以在引入新产品/板/组件时无需进行新工作即可
完全概括。代替所有特征都是专门修改/指定的手工策划的决策过程,系统自动创建特征并根据累积评估进行分类。这降低了对训练系统的人员的专业知识的需求。
[0076]
在一个实施例中,聚类系统465将标识为良好的元件及其统计变化聚类,这使得分类更简单。通过将标识为良好的元件集群之外的所有内容及其变化视为不良的,系统可以将其分析扩展到新的缺陷类型,而无需专门针对新缺陷的训练实例。
[0077]
错误分类确定475提供关于系统认为是不良的而操作员认为是良好的板的反馈。其利用来自vav系统的数据,以及来自操作员的覆盖分类的数据。在一个实施例中,此数据用于再训练cnn 470。然而,在一个实施例中,覆盖的分类仅在最终测试验证确认操作员的决定之后用于训练。换句话说,如果操作员覆盖vav系统分类,但最终检查表明板确实不良,则操作员的分类不用于再训练。
[0078]
在一个实施例中,操作员错误确定480使用最终测试验证数据,来验证关于vav分类为不良或未知的板的操作员决定。在一个实施例中,“黄金真理”是最终检查,其决定了端板是否良好。在一个实施例中,当板未通过最终测试时,操作员错误确定逻辑480尝试返回过程,以断定vav系统是否将板标识为不良或未知,并且人工将其清除为良好。如果板由vav系统标识为不良或未知,在一个实施例中,系统标识覆盖分类并使特定板合格的个体操作员。在一个实施例中,操作员错误确定480随时间的推移学习标识不同操作员的错误率。在一个实施例中,当特定操作员似乎对某些错误做出错误确定时,系统可能会覆盖特定操作员。在一个实施例中,如果发现一定数量的错误,系统可能会触发警报,从而建议对操作员进行再训练。在一个实施例中,可以随时间的推移对每个操作员进行评级,并且可以对低于某个评级的操作员进行再训练或以其它方式进行校正。
[0079]
过度标记触发器和警报490利用关于经训练的分类器440的输出的统计数据来确定系统的不良性能。过度标记触发器和警报490可以检测到系统正在产生质量差的检测。在一个实施例中,当多于一定百分比的被标识为不良的板是良好的时,这被认为是不良的性能。在一个实施例中,如果超过10%的标记为不良的板由操作员标识为良好,并且确认为良好,则过度标记触发器和警报490被认为过度标记。在一个实施例中,百分比可以设置介于90%与10%之间。在一个实施例中,随着用更多数据训练cnn,百分比可能针对新板调整到更高,并且随时间的推移而降低。在一个实施例中,对于标识为“未知”的板,不存在过度标记率。在另一个实施例中,过度标记率可以是90%,例如当超过90%的被标识为“未知”的板是良好的时,可以认为过度标记。
[0080]
在一个实施例中,当标识出过度标记(或检测质量差)时,过度标记触发器和警报490可以提醒生产线操作员或采取另一动作。在一个实施例中,当前结果与先前的过程相匹配,以标识正在发生的问题,并且将检测到的错误与过程步骤相匹配。在一个实施例中,提供了信息性警报。
[0081]
在一个实施例中,如果最近的再训练导致质量差,系统可能会回滚此类再训练,例如恢复经训练的分类器440的先前(更好质量)版本。在一个实施例中,如果将不良数据插入到训练/再训练数据集中,可能发生此类错误。在一个实施例中,通过在训练中维护cnn的版本管理来维护恢复早期版本的能力。
[0082]
在一个实施例中,合成训练数据生成器463可以通过概括来自现有训练数据集的数据来生成合成训练数据。例如,在一个实施例中,合成训练数据生成器463可以从查看窗
口中去除电路元件,并且创建仅“焊球”的合成训练数据。在一个实施例中,合成训练数据生成器463可以基于良好元件的聚类及其变化来创建训练数据。因此,可以创建涵盖系统实际上没有看到的变化而是在集群中标识的变化范围内的训练数据。
[0083]
以这种方式,vav系统400在需要人工输入以评估板上元件的质量之前,提供增强的二次观察。此过程还可以用于鉴定任何类型的检查中的问题,包含划痕、螺丝缺失、装配类型错误。此外,尽管在描述中使用了术语“板”和“组件”,本领域技术人员将理解这可以扩展到组装系统的任何类型的视觉检查,无论是板/组件、盒子/包装、具有多个组件的构建部件等。
[0084]
图5是设置和训练vav系统的概述流程图。所述过程开始于框510处。
[0085]
在框515处,系统获得各种板的大量经标记的图像。在一个实施例中,此数据由专家标记并验证为准确。
[0086]
在框520处,用跨所有板的经标记的数据的一部分来训练卷积神经网络(cnn)。
[0087]
在框530处,用经标记的数据的剩余部分测试系统。
[0088]
在框535处,所述过程确定系统是否准确。在一个实施例中,预期系统具有低水平的误报(被标记为不良的项目是良好的)和低水平的漏报(被标记为良好的项目是不良的)。如上所述,系统确实有第三分类,即“未知”。在一个实施例中,如果存在超过5%的误报,或5%的漏报,或5%的未知分类,则系统被认为不够准确。
[0089]
如果系统不具有适当的准确度水平,则在框540处调整特征并细化训练集。然后所述过程返回到框520,以再训练cnn。在一个实施例中,如有必要,将另外的数据添加到训练集。
[0090]
一旦系统被认为足够准确,在框535处,所述过程继续到框545。
[0091]
在框545处,将经训练的cnn提供到vav系统。如上所述,在框550处,在一个实施例中,随着系统提供真实世界数据,用另外的数据连续细化cnn。对于现实世界数据,在一个实施例中,“专家分类”是由最终的检查和测试提供的,其通过与vav分类和人类操作员审查数据相结合确定板输出是否实际上是良好的。所述过程然后在框555处结束。
[0092]
图6是使用三路分类器的一个实施例的流程图。通常,cnn分类器是双路分类器,从而将项目识别为良好或不良。然而,本技术使用三路分类器。通过为每个分类分配概率,并且将低于阈值的任何潜在分类标识为“未知”,系统可以创建更准确的最终结果。所述过程开始于框610处。
[0093]
在框620处,vav系统用于评估板上的元件是良好还是不良的概率。在一个实施例中,此评估是针对每个元件单独进行的。在一个实施例中,分类器标识元件,并且分配良好概率和不良概率。在一个实施例中,概率加起来为100%,例如,元件中98%是良好的,2%的概率是不良的。
[0094]
在框630处,可能的分类超过一定百分比的所有元件都分类到其可能的分类。例如,如果元件是良好(或不良)的概率超过95%,则元件被分类为良好(或不良)。在一个实施例中,决策阈值介于80%与98%之间。在一个实施例中,有效的良好分类或不良分类的决策阈值可以由用户设置。
[0095]
在框640处,低于阈值百分比的所有元件被分类为“未知”。换句话说,任何不能合理确定是良好还是不良的元件都被分类为“未知”。
[0096]
在框650处,在对板上的所有元件进行单独评估之后,系统确定板是否包含任何不良或未知的分类。如上所述,对板上的每个元件运行分类过程。如果板没有不良分类或未知分类,在框660处,板被分类为良好,并且传递到下一阶段,并且所述过程结束。
[0097]
如果存在至少一种不良分类或未知分类,则所述过程继续到框670。
[0098]
在框670处,将板发送给操作员以进行专家评估。在框680处,使用操作员的分类。在一个实施例中,然后将操作员的分类提供到机器学习系统以用于训练。在一个实施例中,如果由操作员将其分类为良好,则在通过最终检查验证之前不会将数据用于训练。在一个实施例中,如果操作员将vav系统的分类确认为不良,或者表明未知的经分类的元件是不良的,此数据也会提供到机器学习系统以用于训练。所述过程在框690处结束。
[0099]
图7a是所关注区域定义的一个实施例的流程图,包含掩码。所述过程开始于框710处。
[0100]
在框715处,获得具有多个照明选项的图像集。在一个实施例中,使用一个或多个基于相机的检查机器来获得图像。在一个实施例中,照明选项可以包含多种颜色、多种照明角度等。
[0101]
在框720处,将图像拼接在一起以创建统一图像。在一个实施例中,这是在板级完成的,例如创建具有分层图像的板的表示。在另一个实施例中,这是在元件级完成的,用分层图像集创建元件的表示。这种表示也可以称为“统一图像”。在一个实施例中,此统一图像包含基于多个照明选项的多层图像。
[0102]
在框725处,创建完整的板图像的网格。网格基于板的拼接在一起的多个元件的图像。在一个实施例中,网格还可以基于板的cad数据。在一个实施例中,图像可能会覆盖在cad基础上,以确保图像正确对准。
[0103]
在框730处,定义元件以供检查。在板上,可以存在数十个或者甚至数千个单独的元件,每个元件都由系统检查。每个单独的电路组件,如电阻器、电容器、集成电路或其它组件单独检查,以确保其正确放置和附接。可以通过焊接、表面安装、包裹或其它机构进行附接。
[0104]
在框735处,针对每个所关注区域定义一个窗口。所关注区域包含电路组件或元件,以及其所附接的焊盘。在一个实施例中,每个电路元件在一个或多个点处附接到板。通常,这些点是通孔(电路板上的孔)或者与元件耦接的焊盘。元件及其附件被视为所关注区域的窗口。在一些实施例中,还可以存在全局所关注区域,其检查与任何元件不相关的区域,如板上的迹线。
[0105]
在框740处,掩蔽窗口中不关注元件。这可以包含如集成电路或组件上的刻字之类等元件、其它元件的部分以及其可能在窗口内的附件等。在一个实施例中,掩码可以基于cad数据。cad数据示出板布局,包含刻字,并且所述数据也可以用于掩码。
[0106]
在框745处,分析所关注区域中的元件。在一个实施例中,可以使用上文关于图5和6描述的检查过程,以将元件分类为良好、不良或未知。所述过程然后在框749处结束。
[0107]
图7b是生成板图像的一个实施例的流程图。所述过程开始于框750处。
[0108]
在框755处,系统从成像系统接收多个图像。在一个实施例中,图像可以来自不同的角度,并且具有不同的照明。
[0109]
在框760处,系统接收多个深度的x射线图像。在一个实施例中,使用x射线成像机
器图像。
[0110]
在框765处,标识图像的焦点区域,并且基于多个图像创建统一图像。在一个实施例中,统一图像可以包含不同深度处的图像部分。在一个实施例中,多个图像组合在一起,以使每个图像都有焦点位置。在一个实施例中,将各种图像对准以创建统一图像,但没有创建实际单独的统一图像。相反,一组正确对准的图像一起被认为是统一图像。
[0111]
在框770处,执行基于图像深度的分析。基于图像的深度分析评估成像元件的形状和层数。这使得能够标识出问题,如焊料抬起,这些问题基于来自上文的图像无法视觉标识。
[0112]
在框775处,使用光学字符识别(ocr)分析图像中的任何文本。在一个实施例中,ocr数据可以与cad数据相匹配。在一个实施例中,基于ocr数据、cad数据或ocr和cad数据的组合来标识部件。
[0113]
在框780处,如果使用ocr和cad数据分析,则所述过程确定是否存在ocr与cad数据不匹配的任何部件。如果是,则在框785处,所述过程确定是否存在部件变化,例如ocr数据是否指示与cad部件匹配的取代部件。如果系统无法标识此类部件变化,则会触发警报。
[0114]
如果不存在不匹配,或者通过标识部件变化来解决不匹配,则在框790处,针对图像掩蔽文本数据,以去除与vav系统分析的不相关数据。将经处理和经掩蔽的数据提供到vav以供分析。在一个实施例中,如上文关于图5和图6所描述进行分析。所述过程然后在框795处结束。
[0115]
图8是聚类统计变化的一个实施例的流程图,以使得能够扩展到新的缺陷类型。所述过程开始于框810处。
[0116]
在框820处,获得训练图像集。在一个实施例中,训练集包含具有专家分类的良好元件与不良元件的多个图像。在一个实施例中,训练集包含系统被设计成标识的多种类型的“不良”元件。
[0117]
在框830处,关于训练图像对cnn系统进行训练。虽然cnn系统被设置为分类为三个类别(良好、不良和未知),但训练只包含良好图像和不良图像。
[0118]
在框840处,将统计模型拟合到训练数据中的良好图像,这使用其统计特性形成集群。这种聚类的目的是提供特定元件的“良好”版本的“范围”。
[0119]
在框850处,模型基于“不良”图像与良好图像集群的统计属性的距离来标识不良图像。用户可以设置与良好图像集群的确定系统何时开始将图像确定为不良图像的距离阈值。
[0120]
在框860处,不匹配现有良好分类的异常被设置为“未知”。在一个实施例中,异常是既不匹配分类为良好的图像,也不匹配分类为不良的图像的配置。如上文所讨论的,将包含被分类为不良或未知的元件的板发送给操作员以进行审查。
[0121]
在框870处,基于操作员标识和最终测试结果对系统进行再训练。在一个实施例中,除了将“未知”分类的元件标记为良好之外,操作员还可以指示异常的来源。例如,如果元件被替代,系统可能将其指示为异常。操作员可以指示板是好的,并且使得替代是触发未知分类的原因。这使得能够更快地进行再训练,因为已标识了问题的原因。在一个实施例中,可以针对此类场景立即触发再训练。在一个实施例中,仅在获得一定数量的经审查的板的数据之后才能触发再训练。所述过程然后在框880处结束。
[0122]
图9是快速反馈和再训练循环的一个实施例的流程图。所述过程开始于框910处。
[0123]
在框915处,vav系统对图像进行分类。如上所述,每个元件的分类是良好、不良或未知(dnk)。
[0124]
在框920处,对于具有一个或多个分类为不良或未知的元件的每个板,系统将其发送给操作员。操作员可以确认不良分类或将其更改为良好,并且可以将未知的板分类为良好板或不良板。
[0125]
在框925处,所述过程确定是否有任何不良或未知分类的板由操作员标记为良好。这意味着操作员不同意分类。如果操作员同意部件是不良的(无论被标记为不良还是未知),所述过程在框970处结束。在一个实施例中,可以将此类确认的不良元件添加到训练数据。
[0126]
如果操作员不同意,并将部件标记为良好,则所述过程继续到框930。在框930处,所述过程确定测试是否确认了操作员的标记。在一个实施例中,组装过程结束时的测试确保板实际上是良好的。尽管测试可能会因为操作员无法标识的原因而发现板不良,例如,其中一个组件无法工作,这无法通过视觉检查确定甚至专家也无法确定,在一个实施例中,系统依赖于此最终验证来确认操作员的覆盖。
[0127]
如果最终测试发现部件不良,在框935处,在一个实施例中,将数据添加到所收集的关于操作员的统计信息。在一个实施例中,最终测试可能由于本应标识的错误(或由vav系统标识但由操作员覆盖的错误)而确认板是不良的。如果是这种情况,则可能需要对操作员进行再训练。然而,通常最终测试只报告板是否合格。在这种情况下,是否发现由操作员进行的大部分覆盖是不良的,这仅仅是统计上相关的。
[0128]
如果最终测试确认操作员是正确的并且板是良好的,那么在框940处,将来自板的数据添加到分类器的训练集中。随时间的推移,此类添加扩展到被分类为良好的外观集群。所述过程然后继续到框950。
[0129]
在框950处,所述过程确定系统是否过度标记为不良分类和/或未知分类。在一个实施例中,如果被分类为不良或未知,并且由操作员覆盖的部件的数量高于阈值,则认为是过度标记。在一个实施例中,阈值为3-5%。在另一个实施例中,阈值介于1%与10%之间。如果系统过度标记,在一个实施例中,在框960处,提供信息性错误/警报,从而标识导致错误分类的过程步骤。这可以用作再训练分类器的触发器,或稍微调整用于分类的概率范围。所述过程然后在框970处结束。
[0130]
图10是可以与本发明一起使用的计算机系统的一个实施例的框图。然而,对于所属领域的普通技术人员来说显而易见的是,还可以使用各种系统架构的其它替代性系统。
[0131]
图10所展示的数据处理系统包含用于传送信息的总线或其它内部通信装置1040,以及耦接到总线1040以用于处理信息的处理单元1010。处理单元1010可以是中央处理单元(cpu)、数字信号处理器(dsp)或另一类型的处理单元1010。
[0132]
在一个实施例中,系统进一步包含随机存取存储器(ram)或其它易失性存储装置1020(称为存储器),其耦接到总线1040,以用于存储要由处理器1010执行的信息和指令。主存储器1020还可以用于在由处理单元1010执行指令期间,存储临时变量或其它中间信息。
[0133]
在一个实施例中,系统还包括耦接到总线1040的只读存储器(rom)1050和/或静态存储装置1050,以用于存储用于处理器1010的静态信息和指令。在一个实施例中,系统还包
含数据存储装置1030,如磁盘或光盘及其对应磁盘驱动器,或者闪速存储器或其它能够在系统没有供电时存储数据的存储器。在一个实施例中,数据存储装置1030耦接到总线1040,以用于存储信息和指令。
[0134]
系统可以进一步耦接到输出装置1070,如通过总线1060耦接到总线1040的阴极射线管(crt)或液晶显示器(lcd),以用于输出信息。输出装置1070可以是视觉输出装置、音频输出装置和/或触觉输出装置(例如,振动等)。
[0135]
输入装置1075可以耦接到总线1060。输入装置1075可以是字母数字输入装置,如包含字母数字键和其它键的键盘,以用于使用户能够将信息和命令选择传送到处理单元1010。可以进一步包含另外的用户输入装置1080。一种此类用户输入装置1080是光标控制装置1080,如鼠标、轨迹球、触控笔、光标方向键或触摸屏,可以通过总线1060耦接到总线1040,以用于将方向信息和命令选择传送到处理单元1010,以及用于控制显示装置1070上的移动。
[0136]
可以任选地耦接到计算机系统1000的另一个装置是用于通过网络访问分布式系统的其它节点的网络装置1085。通信装置1085可以包含多个可商购获得的网络外围装置中的任何装置,如用于耦接到以太网、令牌环、因特网或广域网、个域网、无线网络或访问其它装置的其它方法的那些装置。通信装置1085可以进一步是零调制解调器连接,或提供计算机系统1000与外部世界之间的连接的任何其它机构。
[0137]
注意,图10中所展示的此系统的任何或所有组件以及相关联的硬件都可以用于本发明的各个实施例中。
[0138]
所属领域的普通技术人员将理解,可以根据特定实施方案以各种方式配置体现本发明的特定机器。实施本发明的控制逻辑或软件可以存储在主存储器1020、大容量存储装置1030或处理器1010本地或远程可访问的其它存储介质中。
[0139]
对于本领域的普通技术人员将显而易见的是,本文所描述的系统、方法和过程可以实施为存储在主存储器1020或只读存储器1050中并由处理器1010执行的软件。此控制逻辑或软件还可以驻留在包括计算机可读介质的制品上,所述计算机可读介质具有体现在其中的并可由大容量存储装置1030读取的计算机可读程序代码,并且用于使处理器1010根据本文的方法和教导进行操作。
[0140]
本发明还可以体现于含有上述计算机硬件组件的子集的手持式或便携式装置中。例如,手持式装置可以被配置成仅含有总线1040、处理器1010和存储器1050和/或1020。
[0141]
手持式装置可以被配置成包含一组按钮或输入信令组件,用户可以利用其从一组可用选项中进行选择。这些可以被认为是输入装置#11075或输入装置#21080。手持式装置还可以被配置成包含输出装置1070,如液晶显示器(lcd)或显示元件矩阵,以用于向手持式装置的用户显示信息。可以使用常规方法来实施此类手持式装置。鉴于如本文所提供的本发明的公开内容,本发明对于此类装置的实施对于所属领域的普通技术人员而言将是显而易见的。
[0142]
本发明还可以体现在专用器具中,所述专用器具包含上述计算机硬件组件的子集,如信息亭或车辆。例如,器具可以包含处理单元1010、数据存储装置1030、总线1040和存储器1020,并且没有输入/输出机构,或者仅基本的通信机构,如允许用户以基本方式与装置通信的小型触摸屏。通常,装置越特殊,装置运行所需的元件越少。在一些装置中,与用户
的通信可以通过基于触摸的屏幕或类似机构进行。在一个实施例中,装置可能不提供任何直接输入/输出信号,但可以通过网络装置1085通过网站或其它基于网络的连接进行配置和访问。
[0143]
所属领域的普通技术人员将理解,可以根据特定实施方案使用实施为计算机系统的特定机器的任何配置。实现本发明的控制逻辑或软件可以存储在处理器1010本地或远程可访问的任何机器可读介质上。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读介质包含只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光学存储介质、闪速存储器装置或其它可用于临时或永久数据存储的存储介质。在一个实施例中,控制逻辑可以实施为可传输数据,如电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)。
[0144]
在前述说明书中,已参考本发明的具体示范性实施例描述了本发明。然而,显而易见的是,在不脱离如所附权利要求中阐述的本发明的更宽的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献