CN112136139A - 用于改进质量检查的方法和系统 - Google Patents

用于改进质量检查的方法和系统 Download PDF

Info

Publication number
CN112136139A
CN112136139A CN201880093473.7A CN201880093473A CN112136139A CN 112136139 A CN112136139 A CN 112136139A CN 201880093473 A CN201880093473 A CN 201880093473A CN 112136139 A CN112136139 A CN 112136139A
Authority
CN
China
Prior art keywords
test image
image
reference mark
predetermined
contours
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880093473.7A
Other languages
English (en)
Other versions
CN112136139B (zh
Inventor
刁梁
顾海松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Midea Group Co Ltd
Original Assignee
Midea Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Midea Group Co Ltd filed Critical Midea Group Co Ltd
Publication of CN112136139A publication Critical patent/CN112136139A/zh
Application granted granted Critical
Publication of CN112136139B publication Critical patent/CN112136139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/225Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • G06V10/7784Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors
    • G06V10/7788Active pattern-learning, e.g. online learning of image or video features based on feedback from supervisors the supervisor being a human, e.g. interactive learning with a human teacher
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

一种执行自动对象检查的方法包括获得多个测试图像。对于所述多个测试图像中的每个测试图像,所述方法包括定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换;以及将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向。所述方法进一步包括对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查。

Description

用于改进质量检查的方法和系统
相关申请的交叉引用
本申请要求2018年5月22日提交的申请号为15/986,702的美国专利申请的优先权,该申请的公开内容通过引用整体并入本文中。
技术领域
这通常涉及质量检查,包括但不限于在产品组装线中或在后期产品质量保证过程中视觉检查产品。
背景技术
制造商实施各种质量控制措施,以减少进入商业流的有缺陷的产品的数量。一些质量控制措施涉及人工和/或装置视觉检查产品。然而,当前的视觉检查技术用于复杂对象检查时面临着低准确性和低效率,并且还不能为用户与系统的交互提供便利。因此,在识别包括多个部件和多种类型的缺陷的复杂产品的产品缺陷时存在挑战。
发明内容
因此,需要一种用于对包括多个部件并且每个部件可能包括不同类型的缺陷的复杂产品执行有效且准确的检查的方法和系统。通过这种方式,制造商能够进一步减少进入商业流的有缺陷的产品的数量,同时还以减少制造停机时间并提高缺陷检测准确性的方式检测缺陷。
在一些实施例中,在对复合对象或配件包的部件执行视觉检查之前,检测和使用参考标记的位置和定向以标准化捕获的图像具有高度自动化过程的优点,因此更加有效且准确。此外,该系统可以容易地修改,例如,通过更新蓝图,或不断地执行机器学习以将任何更新合并到模型中,并及时识别已经有意地或无意地引入组装线的缺陷。
在一些实施例中,通过使用预分割过程,可以提高检查系统的准确性(例如,从80%-90%到99.9%)。用户可以通过选择标准图像中的分割区域来手动分割。用户在图像中选择明显的特征,该系统将使用该特征进行标准化。图像中的每一个都将被定向和缩放,因此,图像中的每一个中的检测区域将具有相同的大小和形状。用户在标准图像中定义预分割区域。以下标准化图像中的每一个都将以相同的方式进行分割。分割区域中的每一个将被训练为单个模型。该系统将在分割区域中的每一个而不是整个图像中检测对象。通过使用这些方法,检测准确性将会大大提高。
此外,通过手动选择或自动提取图像的多个信息通道,可以提高检测效率和准确性。该系统可以支持多个通道输入,例如,RGBD。它还可以扩展到超声波、红外或激光。每个通道在检测结果中具有权重。权重可以通过在多个样本中学习或在长期操作过程中进行预定义或自动提取。
该系统支持连接边缘装置和服务器系统的云计算框架,因此系统可以同时处理多个任务。通过使用利用云计算能力的服务器系统,可以降低组装线的检查成本。该系统以高计算能力进一步提高了效率。另外,该系统具有灵活性,使用来自多条组装线的更多训练数据来训练模型,以使模型适应不同的情况,或者使用来自特定组装线的训练数据来提高针对特定组装线的准确性。
当前的系统和方法可以在进入商业流之前识别有缺陷的产品。此外,可以识别并纠正缺陷的原因,从而减少系统的停机时间。此外,通过隔离相应的部件和相应的信息通道,可以更快地训练模型,并且模型可以更灵敏(例如,由于对来自其他对象或通道的不相关信息的干扰较少),从而产生更高的检查准确性。
在一些实施例中,一种执行自动对象检查的方法,包括:在具有一个或多个处理器和存储器的计算装置(例如,服务器系统152,图1B;服务器系统200,图2)处获得多个测试图像,每个测试图像捕获根据用于多个复合对象的预定的通用布局而组装的多个复合对象中的相应的复合对象。预定的通用布局为相应的复合对象的两个或更多个部件指定相应的位置,并且为相应的复合对象中的参考标记指定预定的位置和定向。每个测试图像捕获对应的复合对象的相应的部分,该复合对象包含两个或更多个部件和参考标记,并且捕获对应的复合对象的周围环境的至少一部分。对于多个测试图像中的每一个,该方法包括定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换。该方法进一步包括将相应变换的逆变换应用于测试图像的至少一部分以获得测试图像的相应的正则化版本,使得在多个测试图像的相应的正则化版本中捕获的参考标记共享与图像无关的位置和定向。该方法还包括对测试图像的相应的正则化版本的两个或更多个子部分中的每一个执行独立的自动检查。测试图像的相应的正则化版本的每个子部分对应于在测试图像中捕获的相应的复合对象的两个或更多个部件中的相应的部件。
根据一些实施例,一种系统包括一个或多个处理器,以及存储有一个或多个程序的存储器;一个或多个程序被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行本文描述的任一方法的操作的指令。根据一些实施例,非暂时性计算机可读存储介质中存储有指令,当所述指令被电子装置执行时,使得该装置执行或导致执行本文描述的任一方法的操作。
在一些实施例中,一种执行自动对象检查的方法,包括:在具有一个或多个处理器和存储器的计算装置(例如,服务器系统152,图1B;服务器系统200,图2)处,获得多个测试图像,每个测试图像捕获包括两个或更多个部件的多个复合对象中的相应的复合对象。对于多个测试图像中的每一个,该方法包括对测试图像的两个或更多个子部分中的每一个执行独立的对象检查。测试图像的每个子部分对应于在测试图像中捕获的相应的复合对象的两个或更多个部件中的相应的部件。执行独立的对象检查包括将测试图像分割成测试图像的至少第一子部分和测试图像的第二子部分,测试图像的第一子部分包含两个或更多个部件中的第一部件但不包含两个或更多个部件中的第二部件,并且测试图像的第二子部分包含两个或更多个部件中的第二部件但不包含两个或更多个部件中的第一部件。该方法包括使用测试图像的信息通道的第一子集和在包含第一部件但不包含第二部件的第一组训练图像上训练的第一模型,对测试图像的第一子部分执行对象检查。该方法进一步包括使用与信息通道的第一子集不同的测试图像的信息通道的第二子集和在包含第二部件但不包含第一部件的第二组训练图像上训练的第二模型,对测试图像的第二子部分执行对象检查。
根据一些实施例,一种系统包括一个或多个处理器,以及存储有一个或多个程序的存储器;一个或多个程序被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行本文描述的任一方法的操作的指令。根据一些实施例,非暂时性计算机可读存储介质中存储有指令,当所述指令被电子装置执行时,使得该装置执行或导致执行本文描述的任一方法的操作。
附图说明
为了更好地理解所描述的各种实施例,应结合以下附图参照以下实施例的描述,其中,在整个附图和说明书中,相同的附图标记指代对应的部分。
图1A是根据一些实施例的在组装线上的多个边缘装置的示例性布置。
图1B是示出根据一些实施例的用于执行组装线的视觉检查的系统的示例性网络体系结构的框图。
图2是示出根据一些实施例的示例性服务器系统的框图。
图3A是示出根据一些实施例的俯视图的示例性图像,该俯视图示出了放置在组装线上的复合产品的示例性视图。
图3B-图3E是示出根据一些实施例的在组装线上检查的复合对象的各种缺陷的示例性图像。
图4A-图4F示出了根据一些实施例的对放置在组装线上用于检查的产品执行对象检测和参考标记对准的过程。
图4G-图4J是示出根据一些实施例的如图4A-4F所示的对象检测和对准的四个主要过程的流程图。
图5是根据一些实施例的包括多个信息通道的产品的示例性图像。
图6A示出了根据一些实施例的制备与用于视觉检查的产品的一个或多个部件相对应的一个或多个掩模的过程。
图6B是示出根据一些实施例的制备与用于视觉检查的产品的一个或多个部件相对应的一个或多个掩模的方法的流程图。
图6C是示出根据一些实施例的制备与用于视觉检查的产品的一个或多个部件相对应的一个或多个掩模的方法的流程图。
图7A示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件的一个或多个模型的过程。
图7B是示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件的一个或多个模型的方法的流程图。
图7C是示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件的一个或多个模型的方法的流程图。
图8A-图8B示出了根据一些实施例的使用模型执行产品检查的过程。
图8C是示出根据一些实施例的使用模型执行产品检查的方法的流程图。
图8D是示出根据一些实施例的使用模型执行产品检查的方法的流程图。
图9A是示出根据一些实施例的训练用于执行产品的视觉检查的一个或多个模型的方法的流程图。
图9B是示出根据一些实施例的使用模型执行产品检查的方法的流程图。
图10是根据一些实施例的用于用户与训练模型进行交互并且使用具有触摸屏的移动装置执行产品检查的示例用户界面。
图11A是示出根据一些实施例的在组装线上执行自动对象检查的方法的流程图。
图11B是示出根据一些实施例的在组装线上执行自动对象检查的方法的另一流程图。
具体实施方式
现在将参照实施例,附图中示出了实施例的示例。在以下说明中,阐述许多具体细节以提供对各种所描述的实施例的理解。然而,对于本领域普通技术人员而言显而易见的是,可以在没有这些具体细节的情况下实践各种所描述的实施例。在其他示例中,并未详细描述公知的方法、过程、部件、电路和网络以避免不必要地造成当前实施例的各方面含糊不清。
还应理解,尽管在一些示例中,本文使用术语第一、第二等描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离各种所描述的实施例的范围的情况下,第一边缘装置可以被称为第二边缘装置,并且类似地,第二边缘装置可以被称为第一边缘装置。第一边缘装置和第二边缘装置都是边缘装置,但它们不是相同的边缘装置。
本文对各种所描述的实施例的说明中使用的术语仅用于描述特定实施例,并不旨在进行限制。如在各种所描述的实施例和所附权利要求的说明中所使用的,除非上下文另外明确指出,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。还应理解,本文所使用的术语“和/或”是指并涵盖一个或多个相关联的所列物品的任何和所有可能的组合。应该进一步理解,术语“包括(includes)”、“包括(including)”、“包括(comprises)”和/或“包括(comprising)”当用在本说明书中时,是指存在所陈述的特征、整数、步骤、操作、元件和/或部件,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组。
如本文中使用,术语“如果”可选地被解释为表示“何时”或“在…时”或“响应于确定”或“响应于检测到”或“根据确定”,这取决于上下文。类似地,短语“如果确定”或“如果检测到[陈述的条件或事件]”可选地被解释为表示“在确定时”或“响应于确定”或“在检测到[陈述的条件或事件]时”或“响应于检测到[陈述的条件或事件]”或“根据确定检测到[陈述的条件或事件]”,这取决于上下文。
如本文中使用,术语“示例性”以“作为例子、示例或说明”的意义使用,而不是以“代表同类中最好的”的意义使用。
图1A是根据一些实施例的在组装线100上的多个边缘装置104的示例性布置。组装线100包括工作表面120(或工作平台)。在一些实施例中,工作表面120通过组装线100输送产品。在一些实施例中,工作表面120可沿特定方向连续地移动,以在组装线100上输送一个或多个产品122用于检查。可替代地,本文所描述的实施例同样适用于包装、组装或制造过程。在一些实施例中,工作表面120是固定的。例如,工作表面120可以是三维打印机、计算机数控(computer numerical control,CNC)铣床或基于制造和/或检查过程的任何其他非组装线的表面。在一些实施例中,产品122是复合产品。在一些实施例中,复合产品122包括以预定的设计彼此连接的多个部件(也称为多部件产品)。例如,复合产品122是电风扇,该电风扇包括与平台连接的头部。在一些实施例中,复合产品122是包括多个对象的配件包(例如,配件包122包括多个对象140、142和144以及参考标记146,图1A),该多个对象已经根据预定的通用布局而组装。例如,复合产品122是装有各种配件(例如,电缆、电池组、说明手册和工具套件)的配件箱。
在一些实施例中,组装线100包括位于工作表面120上方、朝向放置在工作表面120上用于检查的产品122的一个或多个边缘装置104-1、104-2、104-3、…104-n。在一些实施例中,边缘装置104-1、104-2、104-3、…104-n安装在相应的机械臂102-1…102-m上,这些机械臂被配置为调整相应的边缘装置的位置和/或定向以获得产品122的检查数据(例如,图像或其他类型的传感数据)。在一些实施例中,边缘装置104-1、104-2、104-3、...104-n包括各种传感器,这些传感器被配置为收集与组装线100上的产品122的缺陷有关的数据,并通过分析在检查期间收集的数据来执行产品122的自动对象检查(例如,包括参考图11A-图11B所讨论的步骤)。在其他一些实施例中,边缘装置104-1、104-2、104-3、...104-n收集与产品122的缺陷有关的数据,然后将检查数据传输到服务器系统(例如,服务器系统152,图1B)以执行自动对象检查(例如,如参考图11A-图11B所讨论的)。
在一些实施例中,为了检查产品122,每个边缘装置104-1、104-2、104-3、…104-n是一种传感器装置,该传感器装置被配置为捕获产品122的某些特征数据(对应于某些类型的传感数据)。例如,第一边缘装置104-1是照相机(例如,彩色照相机、黑/白照相机或红外照相机),该照相机被配置为捕获产品122的图像。例如,彩色照相机104-1包括传感器和滤色器,该传感器和滤色器被配置为获得捕获的图像的不同原色信息(例如,三种RGB原色)。捕获的图像的不同原色信息可用于训练与相应的原色相对应的单独模型,用于视觉检查以提高准确性。在一些实施例中,第二边缘装置104-2是深度传感器(例如,飞行时间照相机或距离成像照相机,诸如激光雷达(LIDAR)系统),该深度传感器通过测量边缘装置104-2与产品122的对象的表面之间的光信号的飞行时间来分辨距离。可替代地,深度传感器可以是超声传感器或任何其他合适的传感器。在一些实施例中,第三边缘装置104-3是称重传感器,该称重传感器被配置为获得产品122的重量。称重传感器可以位于工作表面120内或下方。在一些实施例中,一个或多个其他边缘装置104-4…104-n包括用于收集关于复合产品122和组装线100的状态的信息的各种其他类型的传感器(例如,触摸传感器、振动传感器、声传感器、触觉传感器、温度传感器、光传感器、运动传感器等)。在一些实施例中,第一边缘装置104-1(例如,照相机、深度照相机、摄像机或三维照相机等)用于识别第一类型的产品缺陷(例如,表面缺陷),第二边缘装置104-2(例如,红外照相机、X射线照相机等)用于识别第二类型的产品缺陷(例如,内部缺陷)。
在一些实施例中,边缘装置围绕组装线或检查台在固定位置处定位。在一些实施例中,边缘装置由一个或多个机械臂(例如,机械臂102)围绕组装线或检查台致动和定位。在一些实施例中,某个边缘装置(例如,照相机104-1)被配置为从相同位置(例如,距工作表面120的距离相同、朝向标准放置位置的角度相同以将产品122放置在工作表面上)捕获产品122的图像。尽管未示出,但是边缘装置104-1、104-2、104-3、…104-n中的每一个由支撑设备支撑或以某种其他方式安装。为便于说明,这些支撑件或安装件已经被移除。
在一些实施例中,边缘装置104-1、104-2、104-3、...104-n将在产品122的检查期间收集的数据发送到服务器系统152(图1B),以利用服务器系统152的处理能力。在一些实施例中,边缘装置104-1、104-2、104-3、...104-n在识别产品缺陷之后或在识别一些其他不规则之后以预定的间隔将数据发送到服务器系统152。服务器系统处理从边缘装置104-1、104-2、104-3、……104-n接收的数据,以潜在地记录和报告产品缺陷。在一些实施例中,在处理数据时,服务器系统分析从边缘装置104-1、104-2、104-3、...104-n中的每一个接收的产品的个体独特特征。例如,服务器系统使用从对应的边缘装置获得的训练数据来训练相应的模型,并使用相应的模型来分析从对应的边缘装置获得的测试数据,以确定产品是否包含某个缺陷。在一些实施例中,服务器系统基于在测试期间检测到的已识别缺陷来更新相应的模型。在一些实施例中,服务器系统将相应的模型发送到边缘装置104-1、104-2、104-3、...104-n,以使边缘装置在接收到检查数据后执行缺陷检查。通过这种方式,生产线100实施机器学习,使得边缘装置能够动态地识别并记录(account for)产品缺陷(例如,标记有缺陷的产品,以使该产品不进入商业流)。
图1B是示出根据一些实施例的用于执行组装线(例如,组装线100,图1A)的视觉检查的系统的示例性网络体系结构150的框图。网络体系结构150包括多个边缘装置104-1、104-2、...104-n,该多个边缘装置通过一个或多个网络106与服务器系统152进行通信。在一些实施例中,网络体系结构150还包括移动装置156,该移动装置可以由移动质量控制人员携带。例如,人员可以使用移动装置156来捕获图像或捕获产品122的任何其他类型的数据,并且捕获的图像和/或数据可以由移动装置156处理或传输到服务器系统152以检测产品是否包括任何缺陷。
在一些实施例中,边缘装置104-1、104-2、…104-n是电子装置,该电子装置可以与服务器系统152、彼此之间以及其他装置进行通信。在一些实施例中,服务器系统152是诸如计算机服务器的单个计算装置,而在其他实施例中,服务器系统152由一起工作的多个计算装置实现以执行服务器系统的动作(例如,云计算)。在一些实施例中,网络106是公共通信网络(例如,互联网或蜂窝数据网络)、专用通信网络(例如,专用局域网(LAN)或租用线路)或这些通信网络的组合。
边缘装置104-1、104-2、...104-n用于检查(例如,监测)组装线100中的产品缺陷。在一些实施例中,边缘装置104-1、104-2、...104-n监测组装线100的操作(例如,监测操作员的活动)。在一些实施例中,边缘装置104-1、104-2、...104-n监测操作对产品的影响(例如,执行质量控制)。边缘装置104-1、104-2、...104-n捕获操作的独特视角(例如,捕获产品的独特视角和/或执行操作的操作员的独特视角)。为此,边缘装置104-1、104-2、...104-n中的每一个都包括一个或多个传感器装置,例如,照相机、红外照相机、X射线照相机、深度照相机等。目标是边缘装置104-1、104-2、...104-n可以识别产品缺陷(或收集可用于识别产品缺陷的数据)并报告给系统以改进生产过程。在一些实施例中,边缘装置104-1、104-2、...104-n将捕获的数据发送到服务器系统104。
在一些实施例中,网络体系结构100还可以包括第三方服务器(未示出)。在一些实施例中,第三方服务器与第三方服务提供商相关联,该第三方服务提供商向服务器系统152提供附加数据(例如,天气数据和人员数据)。
图2是示出根据一些实施例的示例性服务器系统200的框图。在一些实施例中,服务器系统200是服务器系统154(图1B)的示例。服务器系统200通常包括一个或多个处理单元(处理器或内核)202、一个或多个网络或其他通信接口204、存储器206以及用于使这些部件互连的一个或多个通信总线208。通信总线208可选地包括将系统部件互连并控制系统部件之间的通信的电路(有时被称为芯片组)。服务器系统200可选地包括用户界面(未示出)。如果提供的话,用户界面可包括显示装置,以及可选地包括输入,诸如键盘、鼠标、触控板和/或输入按钮。可替代地或另外地,显示装置包括触敏表面,在这种情况下,该显示器是触敏显示器。
存储器206包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器装置;并且可以包括非易失性存储器,诸如一个或多个磁盘存储装置、光盘存储装置、快闪存储器装置或其它非易失性固态存储装置。存储器206可以可选地包括远离处理器202定位的一个或多个存储装置。存储器206,或可替代地,存储器206内的非易失性存储器装置包括非暂时性计算机可读存储介质。在一些实施例中,存储器206或存储器206的计算机可读存储介质存储以下的程序、模块和数据结构、或其子集或超集:
·操作系统210,所述操作系统包括用于处理各种基本系统服务和用于执行依赖硬件的任务的程序;
·网络通信模块212,所述网络通信模块用于通过一个或多个通信网络接口204(有线或无线)和一个或多个通信网络106(图1B)将服务器系统200连接到其他计算机(例如,边缘装置104-1、104-2、…104-n和/或第三方服务器),该一个或多个通信网络诸如互联网、蜂窝电话网、移动数据网、其他广域网、局域网、城域网等;
·用户输入处理模块214,所述用户输入处理模块用于接收和处理用户输入;·掩模创建模块216,所述掩模创建模块用于创建用于训练和检查过程的掩模;
·成像处理模块218,所述成像处理模块用于接收来自照相机的捕获的图像,
将图像压缩为低分辨率图像、应用掩模、并裁剪图像中的相应的部件;
·变换确定模块220,所述变换确定模块包括:
ο轮廓提取模块222,所述轮廓提取模块用于提取图像的图案的轮廓;
ο锚点识别模块224,所述锚点识别模块用于识别图像的锚点(例如,参考标记);
ο仿射变换确定模块226,所述仿射变换确定模块用于确定标准化图像的锚点与测试图像的锚点之间的仿射矩阵;以及
ο直方图分析模块228,所述直方图分析模块用于计算直方图,包括从标准图像到测试图像的平移偏移和角度移动;
·测试图像正则化模块230,所述测试图像正则化模块用于应用仿射变换的逆变换以使测试图像标准化;
·模型训练模块232,所述模型训练模块用于使用机器学习/深度学习过程来训练模型;
·分割模块234,所述分割模块用于对测试图像进行预分割以识别图像中的相应的部件;
·对象检查模块236,所述对象检查模块用于使用模型对测试图像进行检查;以及
·服务器数据库250,所述服务器数据库用于存储与服务器系统相关联的数
据,例如:
ο一个或多个掩模252;
ο一个或多个直方图254;
ο一个或多个模型256;
ο一个或多个预定的通用布局258;
ο一个或多个标准和阈值260;以及
ο内容262。
内容262可以包括从边缘装置接收的数据,例如由边缘装置捕获的独特视角。另外,内容262可以包括由服务器系统生成的模型和视图(或接收的来自于一个或多个边缘装置的模型和视图)。在一些实施例中,内容262包括文本(例如,ASCII、SGML和HTML)、图像(例如,jpeg、tif和gif)、图形(例如,基于矢量的或位图)、音频、视频(例如,mpeg)、其他多媒体和/或它们的组合。
服务器数据库250在一种或多种类型的数据库(例如,文本、图形、维、平面、分层、网络、面向对象、关系和/或XML数据库)中存储与服务器系统200相关联的数据。
在一些实施例中,服务器系统200在存储器中存储边缘装置的图形。例如,该图形识别特定生产线上的每个边缘装置以及每个边缘装置之间的连接。连接可以包括边缘装置的位置、边缘装置的定向、相邻的边缘装置等。通过支持(maintaining)该图形,服务器系统200能够确定独特视角如何彼此相关。
图3A是示出根据一些实施例的俯视图300的示例性图像,该俯视图示出了放置在组装线上的复合产品(例如,产品122)的示例性视图。在一些实施例中,当产品122放置在组装线100的工作表面120上时,俯视图300包括如图1A所示的由边缘装置104-1捕获的照相机视图302。在一些实施例中,产品122是包括多个对象140、142和144、以及参考标记146的配件包。在一些实施例中,参考标记146是预先设计为具有非对称图案并且在产品或配件箱上具有固定的位置和定向的印刷标记、孔或突起,使得一旦确定参考标记146的位置和定向,就可以准确地推断出产品或配件箱的定向和横向位置。
图3B-图3E是示出根据一些实施例的在组装线100上检查的复合产品122的各种缺陷的示例性图像。在图3B所示的一些实施例中,当对象144倒置312在产品122(例如,配件包)中时,产品122存在缺陷。在一些实施例中,因为产品122在组装后可能会掉落和/或推入照相机视图302,即使它们都平放在工作台上,它们在工作台上的横向位置和旋转角度也可能略有不同。例如,如图3C所示,当产品未对准322时(例如,相对于组装线100上的产品122的标准位置和定向倾斜放置),产品122包括缺陷。在图3D所示的一些实施例中,当对象(例如,如图3A所示的对象140)缺失332时,产品122具有缺陷。在图3E所示的一些实施例中,一个或多个对象,例如,产品122的对象142包括一个或多个表面缺陷342,诸如划痕、瑕疵、可见裂纹、磨损、腐蚀和/或碎屑。使用本文所讨论的系统和方法,一个或多个边缘装置104-1、…104-n用于检测与产品122相关联的一个或多个缺陷,以便在进入商业流之前识别出有缺陷的产品。该缺陷可以有效地且及时地被识别,从而减少停机时间和产品检查成本。
图4A-图4F示出了根据一些实施例的对放置在组装线上用于检查的产品执行对象检测和参考标记对准的过程。如图4A所示,当产品122放置在组装线上时,产品122可以从在位置402处具有参考标记的产品122的标准位置412移动和/或旋转到在位置404处具有参考标记的产品122的未对准位置414。在一些实施例中,产品122包括相对于产品122在固定位置和定向处的参考标记(例如,参考标记146,图3A)。参考标记用于确定相对于标准位置412在未对准位置414处的产品122的定向和横向位置。
图4G-图4J是示出根据一些实施例的如图4A-4F所示的对象检测和对准的四个主要过程的流程图。如图4G所示的第一过程430涉及对标准样本图像执行对象检测和对准。如图4H所示的第二过程450涉及对在组装线上捕获的测试图像执行锚点检测。如图4I所示的第三过程470涉及检测锚点轮廓上的关键点并基于检测到的测试图像的关键点确定仿射矩阵的第一方法。如图4J所示的第四过程480针对锚点轮廓和仿射矩阵计算上的关键点检测的第二种方法。在一些实施例中,图4G-图4J中所示的过程的步骤由服务器系统152执行。在一些实施例中,图4G-图4J所示的过程的一个或多个步骤由一个或多个边缘装置104和/或移动装置156执行。
在执行图4G中的过程430时,服务器系统接收(432)由边缘装置104-1捕获的标准样本图像(例如,图3A的照相机视图302)。在一些实施例中,标准样本图像示出了以预定的通用布局放置或组装的一个或多个对象。在一些实施例中,预定的通用布局是产品122的设计的蓝图。在一些其他实施例中,通用布局是由照相机捕获的图像,该照相机位于产品122的标准示例的组装线100上方,该产品放置在组装线上的标准位置412(例如,在工作台中央直立并直角地对准)处。
然后,服务器系统选择(434)锚点区域(未示出),该锚点区域在标准样本图像上包围参考标记402。在一些实施例中,服务器系统使用图像识别技术或机器学习过程来选择锚点区域。在一些实施例中,锚点区域是通过用户的手动输入选择的。例如,当来自照相机视图302的标准样本图像显示在用户的移动装置156上时,用户可以使用移动装置156的一个或多个输入装置(例如,触摸屏、键盘和输入笔等)来选择锚点区域。
服务器系统使用阈值处理将标准样本图像中的锚点区域转换(436)为二进制图片。例如,将每个像素处的锚点区域的强度值与预定的阈值进行比较。根据确定这些像素的强度值小于预定的阈值,将锚点区域中的一个或多个像素替换为黑色像素。另一方面,根据确定这些像素的强度值大于预定的阈值,将锚点区域中的一个或多个像素替换为白色像素。阈值处理可以由系统自动执行。
服务器系统进一步使用任何适当的成像处理技术来提取(438)在标准样本图像412中的位置402处的参考标记的锚点轮廓(例如,锚点轮廓416,图4B)。在确定锚点轮廓416之后,服务器系统还计算(440)锚点(例如,由参考标记的锚点轮廓所包围的区域)的面积(A)。另外,服务器系统确定并保存(442)形状特征,例如,从锚点轮廓416的中心点420到沿锚点轮廓416的每个点的局部最大距离的数量。在图4C所示的一些实施例中,服务器系统提取(444)最小包围矩形406,该最小包围矩形406包围参考标记的锚点轮廓。服务器系统进一步提取(444)矩形406的四个连续点,如图4C所示。然后,服务器系统计算(446)锚点的中心点420,如图4D所示。另外,服务器系统计算(448)距离D’(θ’)的直方图428(如图4E所示),该距离是锚点轮廓416的点420与锚点轮廓上的n个等距点(包括点i 422,4D)的序列中的每一个之间的距离(例如,相邻点相隔360/n度或360/m度,其中m>n并且n个点彼此的位置连续)。如图4D所示,θ’表示连接中心点420和点i 422的线与水平线之间的角度。
例如,如图4E所示,x轴表示(1)连接锚点轮廓上的点i 422和中心点420的线与(2)水平线之间的角度。点i 422被选择为
P训练i=(Ptxi,Ptyi) (1)
中心点420为
CP训练=(Ctx,Cty) (2)
点i 422和中心点420之间的距离为
Figure BDA0002778281600000151
Figure BDA0002778281600000152
继续进行图4H中的第二过程450,服务器系统接收(452)由组装线的边缘装置104-1捕获的测试图像。在如图4A所示的一些实施例中,测试图像包括产品122,该产品放置于在位置404处具有参考标记的未对准位置414。服务器系统将测试图像转换(454)为二进制图片。然后,服务器系统提取(456)从二进制图片识别的一个或多个图像图案的一个或多个轮廓(例如,轮廓418、419)。在一些实施例中,服务器系统支持(maintains)(456)轮廓列表,该轮廓列表包括来自二进制图片的n个(n=1、2、…)识别的轮廓。从二进值图像中提取所有轮廓后,然后,服务器系统检查n个识别出的轮廓中的每一个轮廓,以识别参考标记404的轮廓(图4A)。服务器系统通过将i设置(458)为1从第一轮廓开始,并计算(460)由轮廓列表中的轮廓i包围的区域的面积(Ai)。然后,服务器系统确定(462)测试图像的二进制图像中轮廓i的面积(Ai)与标准样本图像的二进制图像中锚点轮廓的面积(A)之间的差值(例如,在图4G的步骤440中计算)是否不大于预定的阈值(例如,预定的阈值比率d乘以A:d*A):
|Ai-A|≤d×A
根据确定该差值大于预定的阈值,服务器系统将轮廓i增加(467)1以检查下一个图案的轮廓。根据确定该差值小于或等于预定的阈值,服务器系统继续计算(464)轮廓i的形状特征Si。在本文所讨论的一些实施例中,基于从轮廓i的中心点到沿轮廓i的每一个点的局部最大距离的数量(例如,该数量代表形状的顶点的数量)来计算形状特征Si。然后,服务器系统确定(466)标准样本图像的二进制图像中的锚点轮廓的形状特征Si和形状特征S之间的紧密度(例如,在图4G的步骤442中确定)。例如,将形状特征Si和形状特征S之间的差值与预定的阈值t进行比较,以检查是否:
|Si-S|≤t
根据确定该差值小于或等于t,服务器系统确定(468)轮廓i是锚点的目标轮廓(例如,图4B中的轮廓418对应于图4A中的参考标记或锚点404)。根据确定该差值大于t,服务器系统将轮廓i增加(467)1以检查下一个图案的轮廓。
继续进行图4I中的第三过程470,如参考图4H所讨论的,服务器系统从测试图像中识别(472)目标轮廓418。然后,服务器系统确定(474)包围轮廓418的最小包围矩形408(图4C)。服务器系统确定(476)矩形408的四个连续点,如图4C所示。然后,服务器系统基于测试图像的(矩形408的)四个点和训练样本图像的(矩形406的)四个点来计算(478)仿射矩阵,如图4C所示。
继续进行图4J中的第四过程480,如参考图4H所讨论的,服务器系统从测试图像中识别(482)目标轮廓418。然后,服务器系统确定(484)目标轮廓418的中心点(例如,图D的中心点424)。然后,服务器系统计算(486)距离Di(θ)的直方图429(如图4F所示),该距离是中心点424与目标轮廓418上的一组点中的每一个之间的距离。然后,服务器系统从测试图像的目标轮廓418中选择(488)x个相邻且等间距的点(例如,相邻点的间隔为360/n度,n≥)。服务器系统从训练样本图像的锚点轮廓中选择(490)对应的x个点,设置θ=k*3。服务器系统进一步计算(492)训练样本图像中x个点与锚点轮廓的中心点420之间的距离。然后,服务器系统比较(494)训练样本图像的直方图428(图4E)和测试图像的直方图429(图4F),以识别最小距离(Δθ),并且在测试图像的锚点上的点K对应于在标准样本图像的锚点上的点O(θ=0)。
例如,如图4F所示,x轴表示(1)连接锚点轮廓上的点i 426和中心点424的线与(2)水平线之间的角度。点i 426被选择为
P测试i=(Ptexi,Pteyi) (1)
中心点424为
CP测试=(Ctex,Ctey) (2)
点i 422和中心点420之间的距离为
Figure BDA0002778281600000171
Figure BDA0002778281600000172
在一些实施例中,有三个步骤来找到关键点:
步骤1:系统从测试图片的目标锚点中选择n个点,这些点相邻且彼此等间距。两个相邻点之间的角度设置为
Figure BDA0002778281600000173
然后系统可以获得点列表:
Ptj=(Ptxj,Ptyj)(Ptj∈P训练,j∈[1,n]),以及
Figure BDA0002778281600000181
然后系统可以获得n个距离值。
步骤2:系统从样本图像中选择n个点,相邻点之间的角度与
Figure BDA0002778281600000184
相同。然后系统可以获得点列表:
Ptj=(Ptxj,Ptyj)(Ptj∈P测试,j∈[1,n]),以及
Figure BDA0002778281600000182
对于起始点,设置θ0=0。然后系统可以获得n个距离值。
步骤3:系统获得上述两个点列表之间的距离函数。设置函数为
DDk(j)=∑(Dij)-Dkj),
然后设置
Figure BDA0002778281600000183
然后系统将会找到最小值DDk(j)并且训练样本中的k个点对应于θ=0的训练样本点。在一些实施例中,在点列表中包括的点的数量被减少以节省计算时间并提高系统的效率。在一些其他实施例中,可以将一个或多个限制添加到计算中。例如,如果对象只能在-β到β之间的范围内旋转,则用于锚点检测的旋转角度也可以限制在-β到β之间的范围内,然后系统仅需要计算-β到β之间的点的距离,从而节省处理时间并提高效率。
图5是根据一些实施例的包括多个信息通道510、520和530的产品122的示例性图像500。在一些实施例中,图像500由边缘装置104-1(例如,彩色照相机)捕获。图像500可以包括多个信息通道,诸如红色通道(R)、绿色通道(G)和蓝色通道(B)。在一些实施例中,图像500可以进一步包括由深度相机捕获的深度信息(D)。在一些实施例中,单通道图像(例如,R通道图像510)在图像的每个像素位置处包括用于红色的单个值。类似地,G通道图像520在每个像素位置处包括用于绿色的单个值,而B通道图像530在每个像素位置处包括用于蓝色的单个值。在如图5所示的一些实施例中,对于同一图像500,不同的通道图像可以取决于每个部件的原始颜色信息呈现不同的图案。例如,如果部件140是红色杯子,则R通道图像510包含用于对部件140进行视觉检查的最相关的信息。另一方面,如果部件144是绿色电缆,则G通道图像520包含用于对部件144进行视觉检查的最相关的信息。
图6A示出了根据一些实施例的制备与用于视觉检查的产品122的一个或多个部件(例如,对象140、144和142)相对应的一个或多个掩模(例如,掩模610、612和614)的过程。图6B是示出根据一些实施例的制备与用于视觉检查的产品的一个或多个部件相对应的一个或多个掩模的方法的流程图。图6B的方法由三个实体执行,包括边缘装置(例如,照相机104-1)、服务器系统154和移动装置156。在一些实施例中,移动装置156的用户将命令(例如,启动掩模制备过程的“初始化”命令)发送(622)到服务器154。在接收(624)命令时,服务器将指令(例如,“捕获图像”命令)发送(626)到边缘装置(例如,照相机104-1)以捕获图像。在接收(628)捕获图像的指令时,边缘装置104-1捕获(630)图像并将捕获的图像发送到服务器154。服务器接收(632)来自边缘装置104-1的捕获的图像,并且进一步将捕获的图像压缩(634)为低分辨率版本,以节省服务器154和移动装置156之间的网络通信的带宽。然后,服务器154将压缩的图像发送(634)到移动装置156。移动装置156向用户显示图像,以使用户使用相应的多边形(例如,圆形、正方形和矩形等)来圈出一个或多个部件(例如,对象、物品和零件等)。移动装置检测(635)一个或多个用户输入,用于将产品的一个或多个部件圈出。然后,移动装置记录(636)每个多边形的坐标,并将坐标发送(636)到服务器154。服务器接收并使用(637)与用户圈出的部件相对应的每个多边形的坐标,为该用户选择的部件制作掩模矩阵。
图6C是示出根据一些实施例的制备与用于视觉检查的产品的一个或多个部件相对应的一个或多个掩模的方法的流程图。图6C的方法可以在独立装置上执行,例如,照相机连接到用于执行图像处理的控制器。该方法通过使用移动装置将用于捕获图像的初始命令发送(640)到控制器来开始。控制器接收(642)初始指令,捕获组装线上的产品的图像,并将图像压缩(644)为低分辨率版本,然后将压缩的图像发送回移动装置。移动装置显示(646)压缩的图像,并检测(646)用户输入(例如,用户用相应的多边形圈出每个对象)。移动装置记录(648)由用户输入的每个多边形的坐标,并将坐标发送到控制器。控制器接收(650)并使用与由用户圈出的部件相对应的每个多边形的坐标,以为该用户选择的部件制作掩模矩阵。
图7A示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件(例如,对象140、144)的一个或多个模型的过程。在一些实施例中,每个模型包括用于图像的相应信息通道(例如,分别为R、G、B和D通道)的多个子模型(例如,f1(x)-f2(x))。在一些实施例中,模型训练过程使用产品的蓝图示出产品中对象的预定的相应位置和定向。在一些实施例中,模型训练过程使用由产品的照相机104-1捕获的一组图像,并且该组图像反映产品中对象的标准位置和定向。
图7B是示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件的一个或多个模型的方法的流程图。在一些实施例中,图7B的方法由移动装置156、服务器系统154和边缘装置104-1执行。在一些实施例中,移动装置的用户使用移动装置156将第一请求(例如,命令“训练”)发送(720)到服务器154。第一请求与通过照相机捕获图像以用于训练的指令相关。服务器154接收(722)来自移动装置的命令,并且将第二请求(例如,命令“捕获图像”)发送(724)到边缘装置104-1。边缘装置104-1接收(726)第二请求,捕获(728)组装线上的产品122的图像,并且将捕获的图像发送(728)到服务器154。服务器接收(730)来自边缘装置104-1的捕获的图像,并将捕获的图像压缩(732)为较低分辨率的图像。然后,服务器154将压缩的图像发送(732)到移动装置156。移动装置显示(734)压缩的图像,并且检测(736)在显示的图像上接收到的用户输入是否指示捕获的图像正常(OK)。根据确定该用户输入指示图像正常(例如,用户按下“上传‘正常(OK)’样本”按钮以指示样本图像反映了对象的标准位置和定向),移动装置将消息发送到服务器154并且服务器将该图像保存(738)为正常样本以用于训练。根据确定该用户指示图像不正常(例如,用户按下“上传‘不良(NG)’样本”按钮,并且输入缺失/有缺陷的零件的序列号),例如,缺失对象或包括表面缺陷,移动装置进一步接收(740)关于检测到的缺陷的用户输入。移动装置将包括缺失/有缺陷的零件的序列号的消息发送到服务器,并且服务器将该图像标记并保存(742)为“不良”样本并且保存缺失/有缺陷的零件的序列号。系统重复步骤720-742以收集用于训练的多个图像702。在服务器154保存足够数量的训练样本图像后,移动装置156将第三请求(例如,命令“训练模型”)发送(744)到服务器154以开始训练。服务器将掩模610、612和614应用(746)于每个训练样本图像,以使用对应的部件的掩模矩阵来获得每个部件的掩模的图像。在一些实施例中,服务器使用(748)机器学习/深度学习方法,以使用对应的部件的掩模的图像为每个部件训练模型。
图7C是示出了根据一些实施例的训练用于视觉检查的产品的一个或多个部件的一个或多个模型的方法的流程图。图7C的方法可以在独立装置上执行,例如,照相机连接到用于执行图像处理的控制器。移动装置将捕获图像的命令发送(750)到控制器。控制器控制(752)照相机以捕获图像,并将捕获的图像压缩(754)为低分辨率版本,然后将压缩的图像发送回移动装置。移动装置向用户显示(756)图像,并且检测(758)关于图像是否正常的用户反馈。如果用户指示其为“正常”样本,则移动装置将“正常”符号发送给控制器。控制器将图像标记(760)为“正常”样本。如果它是“不良”样本,则移动装置接收(762)关于缺陷的用户输入(例如,输入缺失/有缺陷的零件的序列号)。移动装置将“不良”消息和序列号发送到控制器。控制器使用识别出的有缺陷的零件的序列号将图像标记(764)为“不良”样本。重复步骤750-764以收集足够的“正常”和“不良”样本。当收集到足够的样本时,移动装置将命令“训练”发送(766)到控制器以开始训练。控制器通过使用与每个零件相对应的掩模矩阵来掩模(768)样本的每个零件。控制器使用(770)掩模的“正常”样本和“不良”样本来训练模型。
图8A-图8B示出了根据一些实施例的使用从如参考图7A-7C所讨论的过程获得的模型执行产品检查的过程。在如图8A所示的一些实施例中,由照相机104-1捕获的测试图像802首先被分为与产品的相应的对象140、144和142相对应的不同子部分804、806和808。在一些实施例中,通过在显示给用户的测试图像802上接收的用户输入801来选择子部分。可替代地,系统可以执行图像识别以自动识别相应的子部分。在一些实施例中,获得用于每个子部分的多个信息通道(例如,信息通道810、812、814和816)。例如,信息通道810、812、814和816分别对应于R、G、B和D通道。对于每个子部分,使用从图7A-7C的过程中获得的对应的子模型来执行检查。例如,子模型f1(s)被应用于子部分810的R通道以获得指示对象140是有缺陷或缺失的可能性的测试结果826(将使用分别与对象140有缺陷或缺失的可能性相对应的不同子模型)。在获得子部分810的每个信息通道的测试结果826、828、830和832之后,将相应权重w1、w2、w3和w4分配给相应测试结果。相应权重可以由用户基于用户的经验进行分配,也可以由系统基于相同子部分的先前测试结果自动分配。然后可以获得最终结果833。类似地,如图8B所示,可以获得分别对应于子部分144的R、G、B和D通道的信息通道834、836、838和840。来自图7A-7C的过程的相应子模型用于执行子部分144的检查以获得测试结果850、852、854和856。将相应权重w5、w6、w7和w8分配给相应测试结果,以计算最终结果860。
图8C是示出根据一些实施例的使用模型执行产品检查的方法的流程图。在一些实施例中,图8C的方法由移动装置156、服务器系统154和边缘装置104-1执行。在一些实施例中,用户使用移动装置156将命令“检测”发送(862)到服务器154以捕获图像。服务器154接收(863)命令并且将“捕获图像”的第二请求发送(864)到边缘装置104-1。边缘装置接收(865)命令,捕获(866)图像并将捕获的图像发送(867)到服务器。服务器接收(867)捕获的图像,并通过每个部件的掩模矩阵来掩模(868)该图像。然后,服务器通过使掩模的图像通过对应的模型并计算结果,将每个模型应用(869)于掩模的图像。服务器将压缩的图像和检测结果发送(870)到移动装置。移动装置向用户显示(870)图像和检测结果。然后,移动装置通知(872)用户系统已准备好下一个测试请求,并继续返回到步骤862。
图8D是示出根据一些实施例的使用模型执行产品检查的方法的流程图。图8D的方法可以在独立装置上执行,例如,照相机连接到用于执行图像处理的控制器。移动装置将捕获图像的用户命令发送到控制器。控制器捕获(882)一个图像。控制器通过使图像通过每个训练过的模型并基于每个权重计算结果,将对应的模型应用(884)于捕获的图像。控制器将图像压缩(886)为低分辨率版本,并将检测结果和压缩的图像发送到移动装置以供用户查看。移动装置显示(888)结果和图像。系统重复步骤880至888以进行更多的检查过程。
图9A是示出根据一些实施例的训练用于执行产品的视觉检查的一个或多个模型的方法的流程图。对于图9A所示的训练过程,所有操作指令均由用户在客户端(例如,移动装置156)上给出,然后被转换到服务器端(例如,服务器154)。训练过程包括为服务器和图形用户界面(GUI)设置通信信息,然后将它们连接在一起。例如,客户端发送连接请求,并且响应于该连接请求,服务器和客户端连接。然后,客户端发送请求以捕获图像。服务器响应于该请求指示照相机捕获图像,并将捕获的图像指定为训练样本。服务器将捕获的图像发送到客户端进行显示。客户端向用户显示图像,并且用户在图像上标签目标部件的位置。用户可以进一步标签锚点位置(例如,参考标记146的位置)。客户端将位置标签信息发送到服务器。服务器格式化标签信息并将这些信息存储在服务器上。在一些实施例中,服务器捕获标准的产品和有缺陷的产品的图像和标签数据,并且有缺陷的产品可能包括不同类型的缺陷。对于不同类型的缺陷,分配了不同的标签。对于每种类型的缺陷,使用多个训练样本。
响应于从客户端接收训练请求,服务器分别用两种类型的标签加载多张图片,以为每个分类器训练两个类别的分类。即,训练中的模型可以用于识别测试样本是否有缺陷或没有任何缺陷。在一些实施例中,选择一个训练样本用于位置检测,并且将图像分割为用于缺陷区域和检测锚点的位置。服务器使用上面收集的所有数据训练分类模型,并且每次系统仅加载一种类型的缺陷图片,然后系统将训练一个二类分类器,该分类器可以对目标区域是否完美进行分类。在每个训练过程中,系统将首先仿射图片,然后从图片中裁剪目标缺陷区域,并将其转换为矢量以输入模型。在训练过程之后,二类分类器的数量将与缺陷的类型相同。在一些实施例中,系统还可以应用于对于每种缺陷的一类分类器。在训练过程之后,用于位置检测和分类的模型保存在服务器上。
图9B是示出根据一些实施例的使用模型执行产品检查的方法的流程图。检查过程包括为服务器和GUI设置通信信息,然后将它们连接在一起。例如,客户端发送连接请求,并且响应于该连接请求,服务器和客户端被连接。然后,客户端将请求发送到服务器以加载位置检测和分类模型。作为响应,服务器加载检测样本图片和分类模型。客户端发送请求执行检查。服务器指示照相机捕获测试图片以进行检查。然后,服务器使用检测方法找到关键点,计算仿射矩阵,并使用仿射矩阵转换测试图像(例如,以获得标准化图像)。服务器还从捕获的图像中裁剪目标缺陷区域,并将其转换为用于分类模型的输入矢量。服务器使用矢量与对应的分类器对裁剪的图像进行分类。然后,服务器将结果发送到客户端进行显示,并且用户可以查看结果并在客户端设备的GUI上提供反馈。
图10是根据一些实施例的用于用户与训练模型进行交互并使用具有触摸屏1022的移动装置(例如,移动装置156,图1B)执行产品的检查的示例用户界面1000。在如本公开中所讨论的一些实施例中,用户可以使用移动装置以向照相机104-1捕获的每个训练图像提供用户反馈,并且将训练用于部件(例如,零件、对象和子部分等)的相应模型的指令提供给用户。此外,用户可以为与产品的每个部件有关的每种类型的缺陷提供训练模型(例如,二类分类器模型)的指令。在一些实施例中,在启动训练过程之后,照相机104-1捕获一个或多个训练图像(例如,训练图像702,图7A)。然后,移动装置在用户界面1000上显示每个训练图像。在一些实施例中,用户界面1000包括与产品的部件(例如,对象140、144和142)相对应的多个图标1002、1004和1006。例如,当用户选择图标1002时,移动装置156将指令发送到服务器以启动对于对应的部件140的模型的训练。然后,用户可以提供关于当前显示的训练图像中的对应的部件是正常还是不正常的输入。如果用户选择正常按钮1008,则用户将指示当前训练图像中所示的对象140没有缺陷的消息发送到服务器。另一方面,如果用户选择不正常按钮1010,则用户将指示当前训练图像中的对象140有缺陷的消息发送到服务器。
在一些实施例中,在检查过程中,移动装置显示由照相机捕获的测试图像,并且用户可以选择产品的特定部件进行测试。用户可以进一步选择通过特定类型的缺陷来检查所选的部件。例如,用户可以通过按下按钮1002选择检查产品的对象140。然后,用户选择与所选的部件是否具有裂纹的测试相对应的按钮1016。如图10所示,系统还可以测试其他类型的缺陷,例如,所选的部件是否存在或缺失1012、所选的部件是否翻转1014、所选的部件是否是错误物品1018。在一些实施例中,在接收到当前测试(例如,裂纹的测试3)的结果之后,用户界面(UI)可以显示按钮1020,以供用户选择为新类型的缺陷(例如,“旋转”)添加新的测试。
图11A是示出根据一些实施例的在组装线上执行自动对象检查的方法1100的流程图。在一些实施例中,方法1100的步骤由服务于一个或多个组装线或质量保证台的服务器系统(例如,服务器系统152,图1B;服务器系统200,图2)执行。在一些其他实施例中,方法1100的步骤由移动质量保证人员携带的移动装置(例如,移动装置156,图1B)执行。在一些其他实施例中,方法1100的步骤由位于产品组装线或质量保证台处的一个或多个边缘装置(例如,边缘装置104-1、104-2、…104-n,图1A-图1B)执行。在一些实施例中,方法1100的步骤可以由一个或多个边缘装置、服务器系统和移动装置的任何组合来执行。
在一些实施例中,边缘装置104包括用于捕获组装产品或配件的图像的照相机(例如,彩色照相机、黑/白照相机、红外照相机)。在一些实施例中,边缘装置包括用于收集关于组装产品和组装线的状态的信息的各种其他类型的传感器(例如,重量传感器、触摸传感器、振动传感器、声传感器、触觉传感器、温度传感器、光传感器、运动传感器等)。在一些实施例中,边缘装置位于组装线或检查台周围的固定位置。在一些实施例中,边缘装置由一个或多个机械臂围绕组装线或检查台致动和定位。图11A的方法1100对应于存储在计算机存储器或计算机可读存储介质(例如,服务器系统200的存储器206,图2)中的指令。
在执行方法1100时,服务器系统获得(1102)由位于组装线(例如,组装线100,图1A)或质量保证台上方的边缘装置(例如,照相机104,图1A)捕获的多个测试图像(例如,包括如图4A所示的测试图像)。在一些实施例中,每个测试图像捕获多个复合对象中的相应的一个。在一些实施例中,相应的复合对象(例如,产品122,图1A)对应于多部件产品。在一些实施例中,相应的复合对象对应于包括多个对象的配件包(例如,配件包122包括多个对象140、142和144,图1A),多个对象已经根据预定的通用布局而组装。在一些实施例中,通用布局是多部件产品或配件包的蓝图。可替代地,通用布局是由照相机捕获的图像,该照相机位于多部件产品或配件包的标准示例的组装线上方,该多部件产品或配件包放置在用于多个复合对象的组装线或质量保证台上的标准位置(例如,在工作台中央直立并直角地对准)处。
预定的通用布局为相应的复合对象的多个部件指定(1104)相应的位置,以及为相应的复合对象中的参考标记(例如,参考标记146,图1A)指定预定的位置和定向。在一些实施例中,复合对象是产品,该产品包括根据预定的设计相互连接的多个零件。例如,复合对象包括电风扇,该电风扇包括与平台连接的头部。在另一个示例中,复合对象包括冰箱,该冰箱内具有保鲜盒和置物架。在一些实施例中,预定的通用布局为各种配件(例如,电缆、电池组、说明手册、工具套件等)指定相应的位置,各种配件装在配件箱(例如,配件包122,图1A)的相应的隔间中。在一些实施例中,参考标记是被设计为在产品或配件箱上具有固定的位置和定向的专门设计的印刷标记、孔或突起,使得一旦确定参考标记146的位置和定向,就可以准确地推断出产品或配件箱的定向和横向位置。在一些实施例中,对于每个测试图像,可以基于图像处理和对象识别技术(例如,参考图4A-图4J所讨论的)来确定参考标记的定向和横向位置。在一些实施例中,参考标记具有非对称的形状,使得参考标记在相应的定向上示出不同且独特的图案。
每个测试图像捕获(1106)对应的复合对象的相应的部分,该复合对象包含两个或更多个部件和参考标记,并且捕获对应的复合对象的周围环境的至少一部分。例如,每次将新组装的产品或配件包沿着组装线或质量保证台放置在工作台上时,放置在固定位置或由机械臂控制的照相机(例如,照相机104-1,图1A)会从上方捕获产品或配件包的图像。在实际的生产场景中,产品或配件包的位置和定向并不总是完全地相同。例如,产品或配件包在组装后可能会掉落和/或推入照相机视图,并且即使它们都平放在工作台上,它们在工作台上的横向位置和旋转角度也可能略有不同。如参考图3B-图3E所讨论的,在一些实施例中,通过图像检查的目的包括检查缺陷(例如,视觉缺陷或表面缺陷),该缺陷包括但不限于划痕、磨损、腐蚀、碎屑、裂纹、瑕疵、碎片。在一些实施例中,通过图像检查的目的包括检查缺失的零件,例如,在配件箱的特定孔中缺失物品,在螺钉孔中缺失螺钉。在一些实施例中,通过图像检查的目的包括检查零件的定位不准确,例如,当冰箱的置物架未正确插入滑轨时,或当电缆和电池组在配件箱中的相应的隔间中交换时。
服务器系统进一步处理多个测试图像中的每一个,如以下过程中所讨论的。在一些实施例中,将每个产品或每个配件包沿着组装线放置在检查台上并拍摄产品或配件包的图片时,可以连续地执行图像的处理。在一些实施例中,来自多个产品线的图像可以并行处理。
对于多个测试图像中的每一个,服务器系统定量地确定(1110)从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应锚点轮廓的相应变换。在一些实施例中,参考标记的预定的轮廓在产品的蓝图或配件箱的设计中指定。在其他实施例中,参考标记的预定的轮廓是基于参考标记的描述而获得,该参考标记的描述是基于机器学习从多个训练图像中提取的,每个训练图像包括样本复合产品或样本配件包上的参考标记。在一些实施例中,基于本文描述的图像处理技术,从捕获的测试图像中提取并识别相应的锚点轮廓。
在一些实施例中,定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应锚点轮廓的相应变换包括:定量地确定预定的通用布局中的参考标记与捕获的测试图像中的参考标记之间的平移偏移和旋转角度。在一些实施例中,例如,如参考图4C-图4D所讨论的,该变换被描述为在固定的外部坐标系(例如,二维坐标系)内的数学变换(例如,仿射矩阵),该坐标系的原点位于预定的通用布局中的参考标记的中心。
继续到步骤1112,对于多个测试图像中的每一个,服务器系统将相应变换的逆变换应用(1112)于测试图像的至少一部分以获得测试图像的对应部分的相应的正则化版本,使得在多个测试图像的相应的正则化版本中捕获的参考标记共享(share)与图像无关的位置和定向。例如,在将每个复合对象相对于参考标记在测试图像中预定的通用布局中的标准位置和定向所经历的相应的旋转和平移的反转之后,例如,通过将在上一步中获得的相应变换的逆变换应用于测试图像,参考标记成为锚点,通过该锚点来移动和旋转测试图像,以使复合对象的所有部件根据预定的通用布局位于相应的位置,并且可以轻松地提取以独立于其他部件进行识别。
在一些实施例中,定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换包括:(1)从测试图像中提取多个轮廓(例如,通过对测试图像进行二值化,并沿着像素值转变之间的边界识别像素);(2)计算从测试图像中提取的多个轮廓中的每一个的对应的总面积(例如,通过首先连接位于像素值转变边界处的邻近的像素,以获得用于计算总面积的封闭面积);以及(3)根据确定在预定的通用布局中的参考标记的总面积和锚点轮廓的对应的总面积之间的差值满足面积差标准,从测试图像中提取的多个轮廓中识别相应的锚点轮廓。例如,面积差标准要求两个轮廓之间的总面积的差值低于阈值(例如,±10%、±5%、±1%、±0.5%、±0.2%等),以便满足面积差标准。
在一些实施例中,当复合对象是具有复杂零件的复杂对象时,将使用常规的简单轮廓检测方法在测试图像中检测出许多轮廓。在测试图像内检测到的轮廓可以对应于部件的内部结构、部件的轮廓、或阴影以及复合对象中的参考标记。使用总面积过滤出与内部结构和阴影相对应的轮廓,这些轮廓通常会形成与参考标记的大小不匹配的小轮廓或大轮廓,这是从测试图像中检测到的大量轮廓中识别参考标记的几个良好候选轮廓的快速简便方法。此外,当捕获测试图像时,总面积不受复合对象的平移和旋转的影响,并且用作更详细的图像分析的良好的首选过滤。
在一些实施例中,参考标记被设计为具有与轮廓的最常见的形状和大小不同的形状和大小,轮廓的最常见的形状和大小可能由复合对象的其他部件和结构产生。例如,在分析了样本复合对象的大量训练图像并且统计地测量了训练图像中检测到的轮廓的总面积的分布之后,设计了参考标记。在一些实施例中,参考标记可选地设计为具有总大小,该总大小与训练图像中检测到的轮廓的90%以上的大小至少相差10%。例如,阈值差可选地设置为参考标记的大小的10%的差值。在一些实施例中,通过在产品或配件箱的表面上印刷或按压标记,参考标记的大小可针对不同的复合对象进行调整。在一些实施例中,参考标记的设计基于产品或配件箱上的可用空间,具有不均匀的边缘长度的矩形形状或其他多边形形状可能是优选的,因为它易于改变大小并且易于识别形状的旋转。
在一些实施例中,从测试图像中提取的多个轮廓中识别相应的锚点轮廓进一步包括:从测试图像中提取的多个轮廓中识别满足面积差标准的两个或更多个候选锚点轮廓。例如,从测试图像中提取的所有轮廓中,识别轮廓的子集,该轮廓的子集具有的总面积与预定的通用布局中的参考标记的总面积相差10%以内,并且轮廓的子集用作候选轮廓以用于后续形状评估。
在一些实施例中,从测试图像中提取的多个轮廓中识别相应的锚点轮廓进一步包括:基于两个或更多个候选轮廓中的每一个的相应的形状特征与预定的通用布局中的参考标记的形状特征之间的相对紧密度,从两个或更多个候选轮廓中选择锚点轮廓。有一种以上的方法可以将候选轮廓的形状特征与参考标记的形状特征相匹配。在一些实施例中,确定每个轮廓的中心坐标,并且基于从中心到沿候选轮廓的每个点的局部最大距离的数量(例如,数量表示形状的顶点数量)来计算形状特征。在一些实施例中,选择具有与参考标记相同的顶点数量的形状的候选轮廓作为锚点轮廓。在一些实施例中,在计算沿轮廓的每个点与轮廓的中心之间的距离之前,首先对轮廓进行平滑(例如,用移动平均值)。在一些实施例中,基于形状模型确定形状的紧密度。例如,通过计算机使用仅包含参考标记的训练图像(例如,图像是仅包含参考标记的裁剪的图像)来学习参考标记的形状特征,并裁剪出包含候选轮廓的测试图像的部分,并将该部分用作形状识别的输入。选择通过计算机识别为参考标记的候选轮廓作为锚点轮廓。在一些实施例中,计算每个候选轮廓与预定的通用布局中的参考标记之间的形状距离,并且选择距参考标记具有最小形状距离的候选轮廓作为锚点轮廓。无论使用哪种技术从候选轮廓中识别锚点轮廓,该技术必须设计为使得即使在测试图像中的参考标记相对于预定的通用布局中指示的位置和定向发生移动和/或旋转时,也可以进行识别。
在参考图4D-图4F和图4J所讨论的一些实施例中,定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换包括:(1)获得测试图像中相应的锚点轮廓的中心坐标(例如,在识别出与测试图像中捕获的参考标记相对应的相应的锚点轮廓之后);(2)计算测试图像中相应的锚点轮廓的中心坐标与预定的通用布局中参考标记的中心坐标之间的平移偏移(例如,变换的平移部分);(3)生成距离的第一直方图Di(西塔’(Theta’,θ’)),该距离是相应的锚点轮廓的中心坐标与围绕相应的锚点轮廓的n个等距点的序列中的每一个之间的距离(例如,相邻点相隔360/n度或360/m度,其中m>n并且n个点彼此的位置连续)(例如,图4E);(4)生成距离的第二直方图Di(西塔(Theta,θ)),该距离是参考标记的中心坐标与围绕预定的通用布局中指定的参考标记的轮廓的n个等距点的序列中的每一个之间的距离(例如,图4F);(5)确定第一直方图上的角度移动(Δθ),这将导致该直方图与第二直方图完全对准(例如,当连续360度范围内的第一直方图与第二直方图之间的距离达到最小值,并且该角度移动应用于第一直方图时);以及(6)使用平移偏移和角度移动作为从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换。
服务器系统进一步对测试图像的相应的正则化版本的两个或更多个子部分中的每一个执行(1114)独立的自动检查。在一些实施例中,测试图像的相应的正则化版本的每个子部分对应于在测试图像中捕获的配件包的两个或更多个对象中的相应的复合对象的两个或更多个部件中的相应的一个。在一些实施例中,使用对应于子部分的掩模(例如,掩模602、604和606,图6A)提取测试图像的每个子部分。掩模开口具有坐标,该坐标与预定的通用布局中的参考标记(例如,参考标记的中心)之间偏移了预定的距离(例如,在x和y方向上)。测试图像的提取部分使用独立的图像分析模型进行处理,根据生产线的要求,这些模型经过专门训练以识别部件或部件存在/不在,或检查部件的状态或缺陷等。一旦对测试图像的相应的正则化版本的两个或更多个子部分中的每一个进行独立的图像分析,则将图像分析的结果整合以生成报告。例如,如果基于与为容纳该特定配件而设计的隔间相对应的测试图像的部分的图像分析而确定配件箱的一个隔间中缺失特定的附件,则生成错误报告,指示与当前分析的测试图像相对应的配件包的配件箱中缺失的配件的类型。一旦生成报告,配件箱就可以由机械臂或工人拿起进行补救,例如,添加所需的配件。如果关于测试图像的所有子部分的图像分析看起来一切正常,则生成报告,指示与当前测试图像相对应的复合对象已通过检查。
在一些实施例中,定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换包括:在识别出与测试图像中捕获的参考标记相对应的相应的锚点轮廓之后,获得测试图像中的相应的锚点轮廓的最小边界矩形(例如边界框或包络线)的关键坐标(例如,四个角)的有序序列(例如,顺时针或逆时针序列)(例如,图4C)。在一些实施例中,可以使用任何已知的用于确定二维对象(例如,锚点轮廓)的最大延伸的方法来获得最小边界矩形。在一些实施例中,服务器系统还获得预定的通用布局中的参考标记的最小边界矩形的关键坐标的有序序列(例如,图4C)。在一些实施例中,基于用于预定的通用布局中的参考标记和测试图像中的锚点轮廓的最小边界矩形的关键点的有序序列,服务器系统确定从预定的通用布局中的参考标记的最小边界矩形到相应的锚点轮廓的最小边界矩形的相应仿射变换(例如,仿射变换是从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的相应变换)。
在一些实施例中,将相应变换的逆变换应用于测试图像的至少一部分以获得测试图像的相应的正则化版本,使得在多个测试图像的相应的正则化版本中捕获的参考标记共享与图像无关的位置和定向,进一步包括:将仿射变换的逆变换(如上所述)应用于测试图像的至少一部分。例如,仿射变换的逆变换应用于最小边界矩形,该最小边界矩形是基于测试图像中锚点轮廓的最小边界矩形的位置定义,该测试图像基于预定的通用布局中列出的位置和尺寸包括复合对象的所有部件和参考标记。在一些实施例中,测试图像的部分包括参考标记和复合对象的两个或更多个部件。
在一些实施例中,对测试图像的相应的正则化版本的两个或更多个子部分中的每一个执行独立的自动检查包括:对于多个测试图像中的每一个的相应的正则化版本,(1)根据在预定的通用布局中指定的第一部件的位置,在与两个或更多个部件中的第一部件相对应的位置处提取测试图像的相应的正则化版本的第一子部分;(2)根据在预定的通用布局中指定的第二部件的位置,在与两个或更多个部件中的第二部件相对应的位置处提取测试图像的相应的正则化版本的第二子部分;(3)基于在包含第一部件但不包含第二部件的训练图像上训练的第一模型,对测试图像的相应的正则化版本的第一子部分执行对象检查;以及(4)基于在包含第二部件但不包含第一部件的训练图像上训练的第二模型,对测试图像的相应的正则化版本的第二子部分执行对象检查。在一些实施例中,测试图像的相应的正则化版本的第一子部分或第二子部分的提取包括使用具有窗口(例如,分别用于第一部件或第二部件的最小封闭矩形,图6A-图6C)的相应的掩模,该窗口根据第一部件或第二部件在预定的通用布局的位置,在与第一部件或第二部件的相应位置相对应的位置处。可选地,裁剪正则化版本的副本,以仅保留图像中用于第一部件或第二部件的最小封闭矩形。下面参考图11B的方法1150讨论关于自动检查的更详细的讨论。
图11B是示出根据一些实施例的在组装线上执行自动对象检查的方法1150的流程图。在一些实施例中,方法1150的步骤由服务于一个或多个组装线或质量保证台的服务器系统(例如,服务器系统152,图1B;服务器系统200,图2)执行。在一些其他实施例中,方法1150的步骤由移动质量保证人员携带的移动装置(例如,移动装置156,图1B)执行。在一些其他实施例中,方法1150的步骤由位于产品组装线或质量保证台处的一个或多个边缘装置(例如,边缘装置104-1、104-2、…104-n,图1A-图1B)执行。在一些实施例中,方法1150的步骤可以由一个或多个边缘装置、服务器系统和移动装置的任何组合来执行。
在一些实施例中,边缘装置104包括用于捕获组装产品或配件的图像的照相机(例如,彩色照相机、黑/白照相机、红外照相机)。在一些实施例中,边缘装置包括用于收集关于组装产品和组装线的状态的信息的各种其他类型的传感器(例如,重量传感器、触摸传感器、振动传感器、声传感器、触觉传感器、温度传感器、光传感器、动传感器等)。在一些实施例中,边缘装置在围绕组装线或检查台的固定位置处定位。在一些实施例中,边缘装置由一个或多个机械臂(例如,机械臂102)围绕组装线或检查台致动和定位。图11B的方法1150对应于存储在计算机存储器或计算机可读存储介质(例如,服务器系统200的存储器206,图2)中的指令。
在执行方法1150时,服务器系统获得(1152)多个测试图像(例如,包括测试图像802,图8A)。在一些实施例中,测试图像由位于组装线(例如,组装线100,图1A)或质量保证台上方的一个或多个边缘装置104(例如,照相机104-1,图1A)捕获。在一些实施例中,每个测试图像捕获多个复合对象中的相应的一个。在一些实施例中,相应的复合对象(例如,产品122,图1A)对应于多部件产品。在一些实施例中,相应的复合对象对应于包括多个对象的配件包(例如,配件包122包括多个对象140、142和144,图1A),多个对象已经根据预定的通用布局而组装。在一些实施例中,通用布局是多部件产品或配件包的蓝图。可替代地,通用布局是由照相机捕获的图像,该照相机位于多部件产品或配件包的标准示例的组装线上方,该多部件产品或配件包放置在组装线或质量保证台上用于多个复合对象的标准位置(例如,在工作台中央直立并直角地对准)处。
在一些实施例中,预定的通用布局为相应的复合对象的多个部件指定相应的位置,并且为相应的复合对象中的参考标记(例如,参考标记146,图1A)指定预定的位置和定向。在一些实施例中,用户输入用于识别不同的对象。在一些实施例中,参考标记不一定包括在布局中。在一些实施例中,复合对象是产品,该产品包括根据预定的设计相互连接的多个零件。例如,复合对象包括电风扇,该电风扇包括与平台连接的头部。在另一个示例中,复合对象包括冰箱,该冰箱内具有保鲜盒和置物架。在一些实施例中,预定的通用布局为各种配件(例如,电缆、电池组、说明手册、工具套件等)指定相应的位置,各种配件装在配件箱(例如,配件包122,图1A)的相应的隔间中。
在一些实施例中,每个测试图像捕获对应的复合对象的相应的部分,该复合对象包含两个或更多个部件和参考标记,并且捕获对应的复合对象的周围环境的至少一部分。例如,每次将新组装的产品或配件包沿着组装线或质量保证台放置在工作台上时,放置在固定位置或由机械臂控制的照相机(例如,照相机104-1,图1A)会从上方捕获产品或配件包的图像(例如,如图1A所示)。在实际的生产场景中,产品或配件包的位置和定向并不总是完全地相同。例如,产品或配件包在组装后可能会掉落和/或推入照相机视图,并且即使它们都平放在工作台上,它们在工作台上的横向位置和旋转角度也可能略有不同。如参考图3B-图3E所讨论的,在一些实施例中,通过图像检查的目的可选地包括检查缺陷(例如,视觉缺陷或表面缺陷),该缺陷包括但不限于划痕、磨损、腐蚀、碎屑、裂纹、瑕疵、碎片。在一些实施例中,通过图像检查的目的包括检查缺失的零件,例如,在配件箱的特定孔中缺失物品,在螺钉孔中缺失螺钉。在一些实施例中,通过图像检查的目的包括检查零件的定位不准确,例如,当冰箱的置物架未正确插入滑轨时,或当电缆和电池组在配件箱中的相应的隔间中交换时。
服务器系统进一步处理多个测试图像中的每一个,如以下过程中所讨论的。在一些实施例中,将每个产品或每个配件包沿着组装线放置在检查台上并拍摄产品或配件包的图片时,可以连续地执行图像的处理。在一些实施例中,来自多个产品线的图像可以并行处理。
对于多个测试图像中的每一个,服务器系统对测试图像(或其相应的正则化版本)的两个或多子部分中的每一个执行(1154)独立的对象检查。在一些实施例中,测试图像的每个子部分对应于在测试图像中捕获的相应的复合对象的两个或更多个部件中的相应的一个。
在执行测试图像的独立的对象检查时,服务器系统将测试图像(例如,测试图像802,图8A)分割(1156)成测试图像的至少第一子部分(例如,子部分804,图8A)和测试图像的第二子部分(例如,子部分806,图8A)。在一些实施例中,测试图像的第一子部分包含两个或更多个部件(例如,对象140、142和144,图8A)中的第一部件(例如,对象140,图8A)但不包含该两个或更多个部件中的第二部件(例如,对象144,图8A)。在一些实施例中,测试图像的第二子部分包含两个或更多个部件中的第二部件(例如,对象144,图8A)但不包含该两个或更多个部件中的第一部件(例如,对象140,图8A)。
服务器系统使用测试图像的信息通道(例如,信息通道810、812、814和816,图8A)的第一子集和在包含第一部件(例如,对象140)但不包含第二部件(例如,对象144)的第一组训练图像(例如,训练图像702,图7A)上训练的第一模型,对测试图像的第一子部分(例如,子部分804,图8A)执行(1158)对象检查。
服务器系统使用与信息通道的第一子集不同的测试图像的信息通道(例如,信息通道834、836、838和840,图8B)的第二子集和在包含第二部件(例如,对象144)但不包含第一部件(例如,对象140)的第二组训练图像上训练的第二模型,对测试图像的第二子部分(例如,子部分806,图8B)执行(1160)对象检查。
在一些实施例中,将测试图像分割成测试图像的至少第一子部分和测试图像的第二子部分包括:(1)检测分别指向测试图像中的第一位置(例如,圆形606,图6A)和测试图像(例如,测试图像602,图6A)中的第二位置(例如,正方形608,图6A)的用户输入(例如,用户输入604,图6A);(2)为测试图像创建第一掩模(例如,掩模610,图6A),以根据第一位置提取测试图像的第一子部分(例如,子部分804,图8A);(3)为测试图像创建第二掩模(例如,掩模612,图6A),以根据第二位置提取测试图像的第二子部分(例如,子部分806,图8B);以及(4)分别使用第一掩模和第二掩模提取测试图像的第一子部分和测试图像的第二子部分(例如,图8A)。在一些实施例中,服务器系统还检测测试图像中第一位置周围的第一部件(例如,对象140)的轮廓,以及测试图像中第二位置周围的第二部件(例如,对象144)的轮廓。在一些实施例中,服务器系统在训练过程(例如,图7A-图7C)和测试过程(例如,图8A-图8D)之前,执行初始化过程(例如,图6A-图6C)以基于相应的子部分的坐标来创建掩模。
在一些实施例中,在执行将测试图像分割成测试图像的至少第一子部分和测试图像的第二子部分之前或同时,服务器系统将相应变换应用于测试图像,以对准在测试图像中捕获的参考标记和在多个复合对象的预定的通用布局中指定的对应参考标记,如参考图4A-图4J和图11A所讨论的。例如,在一些实施例中,计算机定量地确定从预定的通用布局中的参考标记的预定的轮廓到与测试图像中捕获的参考标记相对应的相应的锚点轮廓的仿射变换。然后,计算机将仿射变换的逆变换应用于测试图像的至少一部分以获得测试图像的相应的正则化版本,使得在多个测试图像的相应的正则化版本中捕获的参考标记共享与图像无关的位置和定向。通过将在上一步(例如,图4A-图4J和图11A)中获得的仿射变换的逆变换应用于测试图像,参考标记成为锚点,通过该锚点来移动和旋转测试图像,以使复合对象的所有部件根据预定的通用布局位于相应的位置,并且可以轻松地提取以独立于其他部件进行识别。
在一些实施例中,在将相应变换应用于测试图像之后,服务器系统根据在多个复合对象的预定的通用布局中指定的第一部件的位置来提取(例如,使用掩模(例如,掩模610)或数学方法指定最小边界框)测试图像的第一子部分(例如,子部分804,图8A)。服务器还根据在多个复合对象的预定的通用布局中指定的第二部件的位置来提取(例如,使用掩模(例如,掩模612)或数学方法指定最小边界框)测试图像的第二子部分(例如,子部分806,图8A)。
在一些实施例中,使用测试图像的信息通道的第一子集和在包含第一部件但不包含第二部件的第一组训练图像上训练的第一模型,对测试图像的第一子部分执行对象检查,包括将测试图像分为与测试图像的多个信息通道相对应的相应的单通道图像。对应地,测试图像的每个子部分也被分为用于多个信息通道的测试图像的单通道子部分的对应集合。对于信息通道的第一子集的每个信息通道,服务器系统获得与所述每个信息通道相对应的相应的单通道图像的第一子部分。在一些实施例中,相应的单通道图像的第一子部分对应于包含第一部件的测试图像的第一子部分。在一些实施例中,服务器系统使用在用所述每个信息通道捕获的第一部件的单通道训练图像上训练(例如,图7A-图7C)的第一模型的相应的单通道子模型(例如,子模型f1(x)、f2(x)、f3(x)和f4(x),图7A和图8A),对与所述每个信息通道相对应的测试图像的相应的单通道图像的第一子部分执行对象检查。
在一些其他实施例中,服务器系统首先将测试图像分割(例如,图8A和图11B的步骤1156)成多个子部分,包括第一子部分804和第二子部分806。然后,服务器系统将每个子部分分为与测试图像的每个子部分的多个信息通道相对应的相应的单通道子部分(例如,单通道子部分810、812、814和816,图8A)。然后,服务器系统使用在用所述每个信息通道捕获的第一部件的单通道训练图像上训练(例如,图7A-图7C)的第一模型的相应的单通道子模型(例如,子模型f1(x)、f2(x)、f3(x)和f4(x),图7A和图8A),对与所述每个信息通道相对应的相应的单通道子部分执行对象检查。
例如,在测试图像包括代表三个颜色通道(RGB)和一个深度通道(D)的四个信息通道(RGBD)的示例场景中,测试图像首先被分为四个单通道图像,每个图像分别对应于四个通道中的一个。每个通道的单通道图像在测试图像的每个像素位置处都包括用于该通道的单个值。对于信息通道的第一子集的每个信息通道(例如,分别为R通道和D通道),使用在该通道的第一部件的单通道训练图像(例如,分别是第一部件的R通道图像和第一部件的D通道图像)上训练的第一模型的单通道子模型(例如,分别是R通道的子模型和D通道的子模型),对测试图像的对应单通道图像(例如,分别用于R通道和D通道的单通道图像)的第一子部分执行对象检查。在一些实施例中,使用测试图像的信息通道的第二子集和在包含第二部件但不包含第一部件的第二组训练图像上训练的第二模型,对测试图像的第二子部分执行对象检查,包括:在将测试图像分为与测试图像的多个信息通道相对应的相应的单通道图像之后,对于与信息通道的第一子集不同的信息通道的第二子集的每个信息通道:获取与所述每个信息通道相对应的相应的单通道图像的第二子部分,其中,相应的单通道图像的第二子部分与包括第二部件的测试图像的第二子部分相对应;使用在用所述每个信息通道捕获的第二部件的单通道训练图像上训练的第二模型的相应的单通道子模型,对与所述每个信息通道相对应的测试图像的相应的单通道图像的第二子部分执行对象检查。继续以四个通道的测试图像为例,对于信息通道的第二子集的每个信息通道(例如,分别为G通道和D通道),使用在该通道的第二部件的单通道训练图像(例如,分别是第一部件的G通道图像和第一部件的D通道图像)上训练的第二模型的单通道子模型(例如,分别是G通道的子模型和D通道的子模型),对测试图像的对应单通道图像(例如,分别用于G通道和D通道的单通道图像)的第二子部分执行对象检查。
在一些实施例中,复合对象是配件箱122,该配件箱在第一圆形隔间中包含红色杯子(例如,对象140),在第二方形隔间中包含绿色电缆(例如,对象144)。捕获复合箱的测试图像经过预处理,以使测试图像中隔间的位置与预定的布局对准(例如,基于复合箱上参考标记的位置,如参考图4A-图4J和图11A所讨论的)。测试图像的第一子部分804对应于第一隔间140,测试图像的第二子部分806对应于第二隔间144。由于第一隔间中关注的部件是红色杯子,因此与检查最相关的通道(例如,部件存在或不在,杯子是否已正确地插入隔间)是R通道和D通道,而G和B通道在检查测试图像的第一个子部分时几乎没有包含相关信息。类似地,第二隔间中关注的部件是绿色电缆,因此与检查最相关的通道是G通道和D通道,而R和B通道在检查测试图像的第二个子部分时几乎没有包含相关信息。
在一些实施例中,当处理测试图像的第一子部分时,用于R通道的单通道图像的第一子部分由单通道子模型(例如,f1(x))处理,该模型在第一隔间中红色杯子的训练图像上训练,而不会干扰第二隔间或绿色电缆上的图像数据,也不会干扰来自GBD通道的数据。另外,用于D通道的单通道图像的第一子部分由单通道子模型(例如,f4(x))处理,该模型在第一隔间中红色杯子的训练图像上训练,而不会干扰第二隔间或绿色电缆上的图像数据,也不会干扰来自RBD通道的数据。当处理测试图像的第二子部分时,用于G通道的单通道图像的第二子部分由单通道子模型(例如,f6(x))处理,该模型在第二隔间中绿色电缆的训练图像上训练,而不会干扰第一隔间或红色杯子上的图像数据,也不会干扰来自RBD通道的数据。另外,用于D通道的单通道图像的第二子部分由单通道子模型(例如,f8(x))处理,该模型在第二隔间中绿色电缆的训练图像上训练,而不会干扰第一隔间或红色杯子上的图像数据,也不会干扰来自RGB通道的数据。通过隔离相应的部件和相应的信息通道,模型更简单,更快,更灵敏(例如,由于对来自其他对象或通道的不相关信息的干扰较少),从而产生更高的检查准确性。
在一些实施例中,使用测试图像的信息通道的第一子集和在包含第一部件但不包含第二部件的第一组训练图像上训练的第一模型,对测试图像的第一子部分执行对象检查,包括通过将来自信息通道的第一子集的相应的信息通道的检查结果与相应的信息通道的对应权重组合,生成指示复合对象中第一部件的存在或位置中的至少一个的检查结果。
在一些实施例中,基于对复合对象的不同部件在不同通道上执行的训练,基于每个不同通道的相对识别准确性,将权重分配给不同通道,以检查复合对象的不同部件。在一些实施例中,权重由用户分配,该用户已经在视觉上检查了复合对象的部件并且知道哪些通道在检查复合对象的每个部件时最有效。在一些实施例中,用于第一部件的相应的通道的权重可不同于分配给第二部件的相应的通道的权重。
例如,对于第一部件,来自R通道的结果表明在测试图像的第一隔间中存在第一部件的可能性为50%,并且来自D通道的结果表明第一隔间已填充40%,分配给第一部件的R通道和D通道的权重分别为0.7和0.3,因此组合结果表明第一隔间未正确填充(例如,0.5*0.7+0.4*0.3=0.47<阈值得分)。然而,如果来自R通道的结果表明在测试图像的第一隔间中存在第一部件的可能性为80%,并且来自D通道的结果表明第一隔间的填充不足40%,因此组合结果表明第一隔间已正确填充(例如,0.8*0.7+0.4*0.3=0.70>阈值得分)。
对于第二部件,对于结果的组合,权重可能会不同(例如,D通道导入较少),因为部件的特性会不同。例如,分配给第一部件的G通道和D通道的相应的权重分别为0.9和0.1。来自G通道的结果表明在测试图像的第二隔间中存在第二部件的可能性为50%,并且来自D通道的结果表明第二隔间已填充40%,因此组合结果表明第二隔间未正确填充(例如,0.5*0.9+0.4*0.1=0.49<阈值得分)。然而,如果来自G通道的结果表明在测试图像的第二隔间中存在第二部件的可能性为80%,并且来自D通道的结果表明第一隔间的填充不足40%,因此组合结果表明第一隔间已正确填充(例如,0.8*0.9+0.4*0.1=0.76>阈值得分)。
在以上示例中,部件是纯色的,并且通道信息由一个颜色通道控制。在更常见的使用场景中,每个通道将具有与检查结果相关的一些信息内容,并基于对复合对象的不同部件在不同通道上执行的训练,基于每个不同通道的相对识别准确性来选择通道。
在一些实施例中,计算装置是与边缘装置或外围装置(例如,一个或多个照相机被配置为在组装线上捕获复合对象的图像)通信并且与用户装置(例如,移动装置被配置为接收用户输入并向用户显示图像)通信的服务器。在一些实施例中,服务器系统接收用于训练第一模型的用户指令。根据接收的用于训练第一模型的用户指令,服务器系统使用边缘装置训练图像。在一些实施例中,服务器系统还接收标记训练图像的相应的第一部分和训练图像的第一部分的对应标签的用户输入。在一些实施例中,对应标签包括用于在训练图像中捕获的第一部件的第一分类器和第二分类器。在一些实施例中,第一分类器和第二分类器是用于检查第一部件的第一参数的通过(P),不通过(NP)标签(例如,第一参数可以是对象存在、对象位置、对象无缺陷等)。在一些实施例中,服务器系统还基于训练图像的相应的第一部分和用户输入中提供的对应标签来生成第一模型。在一些实施例中,基于训练图像的多个信息通道中的每一个的单通道图像的第一部分来执行第一模型的训练。训练会导致第一模型的多个单通道子模型具有不同的检查准确性。子模型的相对准确性用于为不同的信息通道分配不同的权重,并选择最相关的信息通道用于后续检查测试图像。
在一些实施例中,根据确定第一模型的模型准确性满足第一阈值准确性,服务器系统在用户装置上呈现指示第一模型的训练完成的通知。例如,一旦用户知道第一模型的训练已经完成,则用户可以将自己的时间和精力集中在训练其他类型的检查问题或训练尚未完成的复合对象的其他部件上。
尽管各种附图中的一些以特定顺序示出了多个逻辑阶段,但是不依赖于顺序的阶段可以重新排序,并且其他阶段可以组合或分解。虽然特别地提到了一些重新排序或其他组,但是其他的对于本领域普通技术人员而言将是显而易见的,因此,本文提出的排序和组并非详尽的替代方案的列表。此外,应当认识到,这些阶段可以以硬件、固件、软件或它们的任何组合来实现。
出于解释的目的,已经参考特定实施例描述了上述说明。然而,以上说明性讨论并非旨在穷举或将权利要求的范围限制为所公开的精确形式。根据以上教导,许多修改和变化是可能的。所选择的实施例是为了最好地解释潜在的权利要求的原理及其实际应用,从而使本领域的其他技术人员能够最好地使用如适于所预期的特定用途的实施例及各种修改。

Claims (20)

1.一种执行自动对象检查的方法,所述方法包括:
在具有一个或多个处理器和存储器的计算装置处:
获得多个测试图像,每个测试图像捕获根据用于多个复合对象的预定的通用布局而组装的所述多个复合对象中的相应的复合对象,其中:
所述预定的通用布局为相应的复合对象的两个或更多个部件指定相应的位置,并且为所述相应的复合对象中的参考标记指定预定的位置和定向,以及
每个测试图像捕获对应的复合对象的相应的部分,所述复合对象包含所述两个或更多个部件和所述参考标记,并且每个测试图像捕获所述对应的复合对象的周围环境的至少一部分,以及;
对于所述多个测试图像中的每个测试图像:
定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换;以及
将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向;以及
对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查,其中,所述测试图像的所述相应的正则化版本的每个子部分对应于在所述测试图像中捕获的所述相应的复合对象的所述两个或更多个部件中的相应的部件。
2.根据权利要求1所述的方法,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
从所述测试图像中提取多个轮廓;
计算从所述测试图像中提取的所述多个轮廓中的每个轮廓的对应的总面积;以及
根据确定在所述预定的通用布局中的所述参考标记的总面积和所述锚点轮廓的对应的总面积之间的差值满足面积差标准,从所述测试图像中提取的所述多个轮廓中识别所述相应的锚点轮廓,其中,所述面积差标准要求两个轮廓之间的总面积的差值低于阈值,以便满足所述面积差标准。
3.根据权利要求2所述的方法,其中,从所述测试图像中提取的所述多个轮廓中识别所述相应的锚点轮廓进一步包括:
从所述测试图像中提取的所述多个轮廓中识别满足所述面积差标准的两个或更多个候选锚点轮廓;以及
基于两个或更多个候选轮廓中的每个候选轮廓的相应的形状特征与所述预定的通用布局中的所述参考标记的形状特征之间的相对紧密度,从所述两个或更多个候选轮廓中选择所述锚点轮廓。
4.根据权利要求1所述的方法,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
在识别与所述测试图像中捕获的所述参考标记相对应的所述相应的锚点轮廓之后,获得用于所述测试图像中的所述相应的锚点轮廓的最小边界矩形的关键坐标的有序序列;
获得用于所述预定的通用布局中的所述参考标记的最小边界矩形的关键坐标的有序序列;以及
基于用于所述预定的通用布局中的所述参考标记和所述测试图像中的所述锚点轮廓的所述最小边界矩形的关键点的所述有序序列,确定从所述预定的通用布局中的所述参考标记的所述最小边界矩形到所述相应的锚点轮廓的所述最小边界矩形的相应仿射变换。
5.根据权利要求4所述的方法,其中,将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向,包括:
将所述仿射变换的逆变换应用于所述测试图像的至少一部分,其中,所述测试图像的所述部分包括所述复合对象的参考标记和两个或更多个部件。
6.根据权利要求5所述的方法,其中,对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查包括:
对于所述多个测试图像中的每个测试图像的所述相应的正则化版本:
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第一部件的位置,在与所述第一部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第一子部分;
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第二部件的位置,在与所述第二部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第二子部分;
基于在包含所述第一部件但不包含所述第二部件的训练图像上训练的第一模型,对所述测试图像的所述相应的正则化版本的所述第一子部分执行对象检查;以及
基于在包含所述第二部件但不包含所述第一部件的训练图像上训练的第二模型,对所述测试图像的所述相应的正则化版本的所述第二子部分执行对象检查。
7.根据权利要求1所述的方法,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
获得所述测试图像中的所述相应的锚点轮廓的中心坐标;
计算所述测试图像中的所述相应的锚点轮廓的中心坐标与所述预定的通用布局中的所述参考标记的中心坐标之间的平移偏移;
生成第一直方图Di(西塔’),所述第一直方图是所述相应的锚点轮廓的所述中心坐标与围绕所述相应的锚点轮廓的n个等距点的序列中的每个点之间的距离的直方图;
生成第二直方图Di(西塔),所述第二直方图是所述参考标记的所述中心坐标与围绕所述预定的通用布局中指定的所述参考标记的轮廓的n个等距点的序列中的每个点之间的距离的直方图;
确定所述第一直方图上的角度移动,这将导致所述直方图与所述第二直方图完全对准;以及
使用所述平移偏移和所述角度移动作为从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换。
8.一种服务器系统,所述服务器系统包括:
一个或多个处理器;以及
存储器,所述存储器用于存储一个或多个程序,所述一个或多个程序由所述一个或多个处理器执行,所述一个或多个程序包括以下指令:
获得多个测试图像,每个测试图像捕获根据用于多个复合对象的预定的通用布局而组装的所述多个复合对象中的相应的复合对象,其中:
所述预定的通用布局为相应的复合对象的两个或更多个部件指定相应的位置,并且为所述相应的复合对象中的参考标记指定预定的位置和定向,以及
每个测试图像捕获对应的复合对象的相应的部分,所述复合对象包含所述两个或更多个部件和所述参考标记,并且每个测试图像捕获所述对应的复合对象的周围环境的至少一部分,以及;
对于所述多个测试图像中的每个测试图像:
定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换;以及
将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向;以及
对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查,其中,所述测试图像的所述相应的正则化版本的每个子部分对应于在所述测试图像中捕获的所述相应的复合对象的所述两个或更多个部件中的相应的部件。
9.根据权利要求8所述的服务器系统,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
从所述测试图像中提取多个轮廓;
计算从所述测试图像中提取的所述多个轮廓中的每个轮廓的对应的总面积;以及
根据确定在所述预定的通用布局中的所述参考标记的总面积和所述锚点轮廓的对应的总面积之间的差值满足面积差标准,从所述测试图像中提取的所述多个轮廓中识别所述相应的锚点轮廓,其中,所述面积差标准要求两个轮廓之间的总面积的差值低于阈值,以便满足所述面积差标准。
10.根据权利要求9所述的服务器系统,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到测试图像中捕获的与所述参考标记相对应的相应的锚点轮廓的相应变换包括:
从所述测试图像中提取的所述多个轮廓中识别满足所述面积差标准的两个或更多个候选锚点轮廓;以及
基于两个或更多个候选轮廓中的每个候选轮廓的相应的形状特征与所述预定的通用布局中的所述参考标记的形状特征之间的相对紧密度,从所述两个或更多个候选轮廓中选择所述锚点轮廓。
11.根据权利要求8所述的服务器系统,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
在识别与所述测试图像中捕获的所述参考标记相对应的所述相应的锚点轮廓之后,获得用于所述测试图像中的所述相应的锚点轮廓的最小边界矩形的关键坐标的有序序列;
获得用于所述预定的通用布局中的所述参考标记的最小边界矩形的关键坐标的有序序列;以及
基于用于所述预定的通用布局中的所述参考标记和所述测试图像中的所述锚点轮廓的所述最小边界矩形的关键点的所述有序序列,确定从所述预定的通用布局中的所述参考标记的所述最小边界矩形到所述相应的锚点轮廓的所述最小边界矩形的相应仿射变换。
12.根据权利要求11所述的服务器系统,其中,将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向,包括:
将所述仿射变换的逆变换应用于所述测试图像的至少一部分,其中,所述测试图像的所述部分包括所述复合对象的参考标记和两个或更多个部件。
13.根据权利要求12所述的服务器系统,其中,对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查包括:
对于所述多个测试图像中的每个测试图像的所述相应的正则化版本:
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第一部件的位置,在与所述第一部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第一子部分;
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第二部件的位置,在与所述第二部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第二子部分;
基于在包含所述第一部件但不包含所述第二部件的训练图像上训练的第一模型,对所述测试图像的所述相应的正则化版本的所述第一子部分执行对象检查;以及
基于在包含所述第二部件但不包含所述第一部件的训练图像上训练的第二模型,对所述测试图像的所述相应的正则化版本的所述第二子部分执行对象检查。
14.根据权利要求8所述的服务器系统,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
获得所述测试图像中的所述相应的锚点轮廓的中心坐标;
计算所述测试图像中的所述相应的锚点轮廓的中心坐标与所述预定的通用布局中的所述参考标记的中心坐标之间的平移偏移;
生成第一直方图Di(西塔’),所述第一直方图是所述相应的锚点轮廓的所述中心坐标与围绕所述相应的锚点轮廓的n个等距点的序列中的每个点之间的距离的直方图;
生成第二直方图Di(西塔),所述第二直方图是所述参考标记的所述中心坐标与围绕所述预定的通用布局中指定的所述参考标记的轮廓的n个等距点的序列中的每个点之间的距离的直方图;
确定所述第一直方图上的角度移动,这将导致所述直方图与所述第二直方图完全对准;以及
使用所述平移偏移和所述角度移动作为从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换。
15.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储一个或多个程序,所述一个或多个程序被配置为由服务器系统的一个或多个处理器执行,所述一个或多个程序包括以下指令:
获得多个测试图像,每个测试图像捕获根据用于多个复合对象的预定的通用布局而组装的所述多个复合对象中的相应的复合对象,其中:
所述预定的通用布局为相应的复合对象的两个或更多个部件指定相应的位置,并且为所述相应的复合对象中的参考标记指定预定的位置和定向,以及
每个测试图像捕获对应的复合对象的相应的部分,所述复合对象包含所述两个或更多个部件和所述参考标记,并且每个测试图像捕获所述对应的复合对象的周围环境的至少一部分,以及;
对于所述多个测试图像中的每个测试图像:
定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换;以及
将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向;以及
对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查,其中,所述测试图像的所述相应的正则化版本的每个子部分对应于在所述测试图像中捕获的所述相应的复合对象的所述两个或更多个部件中的相应的部件。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
从所述测试图像中提取多个轮廓;
计算从所述测试图像中提取的所述多个轮廓中的每个轮廓的对应的总面积;以及
根据确定在所述预定的通用布局中的所述参考标记的总面积和所述锚点轮廓的对应的总面积之间的差值满足面积差标准,从所述测试图像中提取的所述多个轮廓中识别所述相应的锚点轮廓,其中,所述面积差标准要求两个轮廓之间的总面积的差值低于阈值,以便满足所述面积差标准。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,从所述测试图像中提取的所述多个轮廓中识别所述相应的锚点轮廓进一步包括:
从所述测试图像中提取的所述多个轮廓中识别满足所述面积差标准的两个或更多个候选锚点轮廓;以及
基于两个或更多个候选轮廓中的每个候选轮廓的相应的形状特征与所述预定的通用布局中的所述参考标记的形状特征之间的相对紧密度,从所述两个或更多个候选轮廓中选择所述锚点轮廓。
18.根据权利要求15所述的非暂时性计算机可读存储介质,其中,定量地确定从所述预定的通用布局中的所述参考标记的预定的轮廓到与所述测试图像中捕获的所述参考标记相对应的相应的锚点轮廓的相应变换包括:
在识别与所述测试图像中捕获的所述参考标记相对应的所述相应的锚点轮廓之后,获得用于所述测试图像中的所述相应的锚点轮廓的最小边界矩形的关键坐标的有序序列;
获得用于所述预定的通用布局中的所述参考标记的最小边界矩形的关键坐标的有序序列;以及
基于用于所述预定的通用布局中的所述参考标记和所述测试图像中的所述锚点轮廓的所述最小边界矩形的关键点的所述有序序列,确定从所述预定的通用布局中的所述参考标记的所述最小边界矩形到所述相应的锚点轮廓的所述最小边界矩形的相应仿射变换。
19.根据权利要求18所述的非暂时性计算机可读存储介质,其中,将所述相应变换的逆变换应用于所述测试图像的至少一部分以获得所述测试图像的相应的正则化版本,使得在所述多个测试图像的所述相应的正则化版本中捕获的所述参考标记共享与图像无关的位置和定向,包括:
将所述仿射变换的逆变换应用于所述测试图像的至少一部分,其中,所述测试图像的所述部分包括所述复合对象的参考标记和两个或更多个部件。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,对所述测试图像的所述相应的正则化版本的两个或更多个子部分中的每个子部分执行独立的自动检查包括:
对于所述多个测试图像中的每个测试图像的所述相应的正则化版本:
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第一部件的位置,在与所述第一部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第一子部分;
根据在所述预定的通用布局中指定的所述两个或更多个部件中的第二部件的位置,在与所述第二部件相对应的位置处提取所述测试图像的所述相应的正则化版本的第二子部分;
基于在包含所述第一部件但不包含所述第二部件的训练图像上训练的第一模型,对所述测试图像的所述相应的正则化版本的所述第一子部分执行对象检查;以及
基于在包含所述第二部件但不包含所述第一部件的训练图像上训练的第二模型,对所述测试图像的所述相应的正则化版本的所述第二子部分执行对象检查。
CN201880093473.7A 2018-05-22 2018-11-23 用于改进质量检查的方法和系统 Active CN112136139B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/986,702 2018-05-22
US15/986,702 US10733723B2 (en) 2018-05-22 2018-05-22 Methods and system for improved quality inspection
PCT/CN2018/117261 WO2019223275A1 (en) 2018-05-22 2018-11-23 Methods and systems for improved quality inspection

Publications (2)

Publication Number Publication Date
CN112136139A true CN112136139A (zh) 2020-12-25
CN112136139B CN112136139B (zh) 2023-05-23

Family

ID=68614755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880093473.7A Active CN112136139B (zh) 2018-05-22 2018-11-23 用于改进质量检查的方法和系统

Country Status (3)

Country Link
US (1) US10733723B2 (zh)
CN (1) CN112136139B (zh)
WO (1) WO2019223275A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113212606A (zh) * 2021-05-07 2021-08-06 湖南文理学院 一种新能源汽车报废回收动力电池包自动拆卸方法及系统
CN113820254A (zh) * 2021-08-30 2021-12-21 中国石油大学(北京) 微颗粒质量确定方法、装置、电子设备及存储介质

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6333871B2 (ja) * 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
US11468553B2 (en) * 2018-11-02 2022-10-11 Kla Corporation System and method for determining type and size of defects on blank reticles
JP7435464B2 (ja) * 2018-11-21 2024-02-21 ソニーグループ株式会社 ワーク判別システム、ワーク判別装置及びワーク判別方法
IL263399B (en) * 2018-11-29 2022-09-01 Inspekto A M V Ltd Centralized analyzes of multiple devices for visual inspection of a production line
US10481579B1 (en) * 2019-02-28 2019-11-19 Nanotronics Imaging, Inc. Dynamic training for assembly lines
US11543364B2 (en) 2019-05-16 2023-01-03 General Inspection, Llc Computer-implemented method of automatically generating inspection templates of a plurality of known good fasteners
US11162906B2 (en) 2019-05-16 2021-11-02 General Inspection, Llc High-speed method and system for inspecting and sorting a stream of unidentified mixed parts
US11045842B2 (en) * 2019-05-16 2021-06-29 General Inspection, Llc Method and system for inspecting unidentified mixed parts at an inspection station having a measurement axis to identify the parts
US11301804B2 (en) * 2019-09-23 2022-04-12 Coupang Corp. Systems and methods for simulation of package configurations for generating cost optimized configurations
US11042953B1 (en) * 2019-12-23 2021-06-22 Shopify Inc. Methods and systems for detecting errors in kit assembly
US11481857B2 (en) 2019-12-23 2022-10-25 Shopify Inc. Methods and systems for generating a product packaging model
WO2021183468A1 (en) * 2020-03-09 2021-09-16 Nanotronics Imaging, Inc. Systems, methods, and media for manufacturing processes
CN111401384B (zh) * 2020-03-12 2021-02-02 安徽南瑞继远电网技术有限公司 一种变电设备缺陷图像匹配方法
KR20210147405A (ko) * 2020-05-28 2021-12-07 삼성전자주식회사 객체 인식을 수행하는 전자 장치 및 이의 동작 방법
CN111932515B (zh) * 2020-08-10 2022-04-29 成都数之联科技股份有限公司 产品残留类缺陷的短路检测方法及系统及缺陷分类系统
US20220198632A1 (en) * 2020-12-23 2022-06-23 Transportation Ip Holdings, Llc Systems and methods for equipment inspection
JP2022113345A (ja) * 2021-01-25 2022-08-04 株式会社荏原製作所 加工面判定装置、加工面判定プログラム、加工面判定方法、加工システム、推論装置、及び、機械学習装置
US20230011330A1 (en) * 2021-07-09 2023-01-12 At&T Intellectual Property I, L.P. Device condition determination
WO2023195107A1 (ja) * 2022-04-06 2023-10-12 日本電気株式会社 対象物評価装置、対象物評価方法、及び記録媒体

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050226489A1 (en) * 2004-03-04 2005-10-13 Glenn Beach Machine vision system for identifying and sorting projectiles and other objects
CN102270342A (zh) * 2010-06-01 2011-12-07 西门子公司 用于检查图像数据中的结构的分割的方法
AU2013245477A1 (en) * 2013-10-16 2015-04-30 Canon Kabushiki Kaisha Method, system and apparatus for determining a contour segment for an object in an image captured by a camera
US20170169554A1 (en) * 2015-12-09 2017-06-15 Applied Materials Israel Ltd. System and method for patch based inspection
CN107110642A (zh) * 2014-12-22 2017-08-29 庞巴迪公司 用于在线视觉检查的参考系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60307967T2 (de) * 2002-07-26 2007-01-25 Matsushita Electric Works, Ltd., Kadoma Bildverarbeitungsverfahren für die untersuchung des erscheinungsbildes
US8131055B2 (en) * 2008-01-31 2012-03-06 Caterpillar Inc. System and method for assembly inspection
JP5865707B2 (ja) 2012-01-06 2016-02-17 株式会社キーエンス 外観検査装置、外観検査方法及びコンピュータプログラム
US8559698B2 (en) * 2012-03-09 2013-10-15 National Applied Research Laboratories Method of inspecting chip defects
CN105074896B (zh) 2013-02-20 2018-04-27 株式会社日立高新技术 图案测定装置以及半导体测量系统
US9846934B2 (en) * 2015-04-13 2017-12-19 Anchor Semiconductor Inc. Pattern weakness and strength detection and tracking during a semiconductor device fabrication process
US11144889B2 (en) * 2016-04-06 2021-10-12 American International Group, Inc. Automatic assessment of damage and repair costs in vehicles

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050226489A1 (en) * 2004-03-04 2005-10-13 Glenn Beach Machine vision system for identifying and sorting projectiles and other objects
CN102270342A (zh) * 2010-06-01 2011-12-07 西门子公司 用于检查图像数据中的结构的分割的方法
AU2013245477A1 (en) * 2013-10-16 2015-04-30 Canon Kabushiki Kaisha Method, system and apparatus for determining a contour segment for an object in an image captured by a camera
CN107110642A (zh) * 2014-12-22 2017-08-29 庞巴迪公司 用于在线视觉检查的参考系统
US20170169554A1 (en) * 2015-12-09 2017-06-15 Applied Materials Israel Ltd. System and method for patch based inspection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113212606A (zh) * 2021-05-07 2021-08-06 湖南文理学院 一种新能源汽车报废回收动力电池包自动拆卸方法及系统
CN113820254A (zh) * 2021-08-30 2021-12-21 中国石油大学(北京) 微颗粒质量确定方法、装置、电子设备及存储介质
CN113820254B (zh) * 2021-08-30 2022-06-21 中国石油大学(北京) 微颗粒质量确定方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20190362480A1 (en) 2019-11-28
WO2019223275A1 (en) 2019-11-28
US10733723B2 (en) 2020-08-04
CN112136139B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN112136139B (zh) 用于改进质量检查的方法和系统
CN112136154B (zh) 用于改进质量检查的方法和系统
CN112950667B (zh) 一种视频标注方法、装置、设备及计算机可读存储介质
CN111710055A (zh) 便携式电力巡检设备及电力巡检方法、电力巡检系统
CN110189322B (zh) 平整度检测方法、装置、设备、存储介质及系统
US9165365B2 (en) Method and system for estimating attitude of camera
WO2014045508A1 (ja) 検査装置、検査方法、および検査プログラム
US10997702B2 (en) Inspection apparatus, inspection method, and computer readable recording medium storing inspection program
EP4009038A1 (en) Method and device for detecting mechanical equipment parts
CN111681220B (zh) 缺陷检测模型的构建方法、装置、系统及存储介质
CN111814739A (zh) 快递包裹体积的检测方法、装置、设备及存储介质
CN114581760B (zh) 一种机房巡检的设备故障检测方法及系统
Mukhopadhyay et al. PCB inspection in the context of smart manufacturing
CN113269234B (zh) 一种基于目标检测的连接件装配检测方法和系统
CN114821274A (zh) 一种用于识别分合指示牌的状态的方法和设备
CN110596118A (zh) 印刷图案检测方法及印刷图案检测装置
CN117218633A (zh) 一种物品检测方法、装置、设备及存储介质
WO2023188671A1 (ja) 点検支援システム、点検支援方法、及び、点検支援プログラム
CN112308848A (zh) 一种废钢货车挡板状态识别方法、系统、电子设备及介质
CN111860035A (zh) 图书封面检测方法、装置及存储介质和电子设备
CN115082395A (zh) 一种航空行李自动识别系统及方法
JPH1021412A (ja) 部品画像のエッジ検出方法および部品形状認識装置
AU2018204115B2 (en) A method for automatic material classification and texture simulation for 3d models
KR20190075283A (ko) 금속입자 검출 시스템 및 방법
CN115473998B (zh) 检测社交距离的摄影装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant