US12307649B2 - Method for detecting product defect in detection image, computing device, and storage medium - Google Patents

Method for detecting product defect in detection image, computing device, and storage medium Download PDF

Info

Publication number
US12307649B2
US12307649B2 US17/560,663 US202117560663A US12307649B2 US 12307649 B2 US12307649 B2 US 12307649B2 US 202117560663 A US202117560663 A US 202117560663A US 12307649 B2 US12307649 B2 US 12307649B2
Authority
US
United States
Prior art keywords
detection
flawless
product
blocks
defect
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.)
Active, expires
Application number
US17/560,663
Other versions
US20220207714A1 (en
Inventor
Jung-Hao Yang
Chin-Pin Kuo
Chih-Te Lu
Tzu-Chen Lin
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.)
Hon Hai Precision Industry Co Ltd
Original Assignee
Hon Hai Precision Industry 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 Hon Hai Precision Industry Co Ltd filed Critical Hon Hai Precision Industry Co Ltd
Assigned to HON HAI PRECISION INDUSTRY CO., LTD. reassignment HON HAI PRECISION INDUSTRY CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KUO, CHIN-PIN, LIN, TZU-CHEN, LU, CHIH-TE, YANG, JUNG-HAO
Publication of US20220207714A1 publication Critical patent/US20220207714A1/en
Application granted granted Critical
Publication of US12307649B2 publication Critical patent/US12307649B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0006Industrial image inspection using a design-rule based approach
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06T2207/30136Metal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the present disclosure relates to product quality control technology field, in particular to a product defect detection method, a computing device, and a storage medium.
  • a reconstruction error between a reconstructed image of a test product and a reference image of a perfect product is calculated for detecting defects on surfaces of the test product.
  • a detection precision of this method is not high.
  • FIG. 1 illustrates a computing device according to one embodiment of the present disclosure.
  • FIG. 2 shows one embodiment of modules of a product defect detection system of the present disclosure.
  • FIG. 1 illustrates a computing device of the present disclosure.
  • the computing device 3 includes a storage device 31 , at least one processor 32 , and a display screen 33 .
  • the storage device 31 and the display screen 33 are in electrical communication with the at least one processor 32 .
  • computing device 3 does not constitute a limitation of the embodiment of the present disclosure.
  • Other examples of computing device 3 can further include more or less other hardware or software than that shown in FIG. 1 , or the computing device 3 can have different component arrangements.
  • computing device 3 is merely an example. If another kind of computing device can be adapted to the present disclosure, it should also be included in the protection scope of the present disclosure, and incorporated herein by reference
  • the storage device 31 may be used to store program codes and various data of computer programs.
  • the storage device 31 may be used to store a product defect detection system 30 installed in the computing device 3 and implement completion of storing programs or data during an operation of the computing device 3 .
  • the storage device 31 may include Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), and Erasable Programmable Read-Only Memory.
  • EPROM One-time Programmable Read-Only Memory
  • OTPROM One-time Programmable Read-Only Memory
  • EEPROM Electronically-Erasable Programmable Read-Only Memory
  • CD-ROM Compact Disc (Compact Disc) Read-Only Memory or other optical disk storage, disk storage, magnetic tape storage, or any other non-transitory computer-readable storage medium that can be used to carry or store data.
  • the at least one processor 32 may be composed of an integrated circuit.
  • the at least one processor 32 can be composed of a single packaged integrated circuit or can be composed of multiple packaged integrated circuits with the same function or different function.
  • the at least one processor 32 includes one or more central processing units (CPUs), one or more microprocessors, one or more digital processing chips, one or more graphics processors, and various control chips.
  • the at least one processor 32 is a control unit of the computing device 3 .
  • the at least one processor 32 uses various interfaces and lines to connect various components of the computing device 3 , and executes programs or modules or instructions stored in the storage device 31 , and invokes data stored in the storage device 31 to perform various functions of the computing device 3 and to process data, for example, perform a function of detecting product defect (for details, see the description of FIG. 3 ).
  • the product defect detection system 30 can include one or more modules.
  • the one or more modules are stored in the storage device 31 and are executed by at least one processor (e.g. processor 32 in this embodiment), such that a function of detecting product defect (for details, see the introduction to FIG. 3 below) is achieved.
  • the product defect detection system 30 can include a plurality of modules.
  • the plurality of modules includes an obtaining module 301 and an execution module 302 .
  • the modules referred to in the present disclosure refers to a series of computer-readable instructions that can be executed by at least one processor (for example, the processor 32 ), and can complete functions, and can be stored in a storage device (for example, the storage device 31 of the computing device 3 ).
  • functions of each module will be described in detail with reference to FIG. 3 .
  • an integrated unit implemented in a form of a software module can be stored in a non-transitory readable storage medium.
  • the above modules include one or more computer-readable instructions.
  • the computing device 3 or a processor implements the one or more computer-readable instructions, such that the method for detecting product defect shown in FIG. 3 is achieved.
  • the at least one processor 32 can execute an operating system of the computing device 3 , various types of applications (such as the product defect detection system 30 described above), program codes, and the like.
  • the storage device 31 stores program codes of a computer program
  • the at least one processor 32 can invoke the program codes stored in the storage device 31 to achieve related functions.
  • each module of the product defect detection system 30 shown in FIG. 2 is program code stored in the storage device 31 .
  • Each module of the product defect detection system 30 shown in FIG. 2 is executed by the at least one processor 32 , such that the functions of the modules are achieved, and the purpose of detecting product defect (see the description of FIG. 3 below for details) is achieved.
  • the storage device 31 stores one or more computer-readable instructions, and the one or more computer-readable instructions are executed by the at least one processor 32 to achieve a purpose of detecting product defect.
  • the computer-readable instructions executed by the at least one processor 32 to achieve the purpose of detecting product defect is described in detail in FIG. 3 below.
  • FIG. 3 is a flowchart of a product defect detection method according to a preferred embodiment of the present disclosure.
  • the product defect detection method can be applied to the computing device 3 of FIG. 1 .
  • the computing device 3 can be directly integrated with the function of detecting product defect.
  • the computing device 3 can also achieve the function of detecting product defect by running a Software Development Kit (SDK).
  • SDK Software Development Kit
  • the method is provided by way of example, as there are a variety of ways to carry out the method.
  • the method described below can be carried out using the configurations illustrated in FIG. 1 , for example, and various elements of these figures are referenced in explanation of method.
  • Each block shown in FIG. 3 represents one or more processes, methods, or subroutines, carried out in the method.
  • the illustrated order of blocks is illustrative only and the order of the blocks can be changed. Additional blocks can be added or fewer blocks can be utilized without departing from this disclosure.
  • the example method can begin at block S 1 .
  • the obtaining module 301 obtains an image of a product to be detected and analyzed (for a clear and simple description of the present disclosure, the image of the product is hereinafter referred to as a “detection image”).
  • the product to be detected refers to a product that needs to be examined for defects.
  • the product to be detected can be a case of a mobile phone, a protective cover of a mobile phone, or any other suitable products.
  • the obtaining module 301 may use a camera (not shown in the figures) to photograph the product to be detected to obtain a detection image of the product to be detected.
  • the detection image of the product to be detected can also be stored in the storage device 31 in advance, and the obtaining module 301 can directly obtain the detection image of the product from the storage device 31 .
  • the execution module 302 cuts out a first preset number (the first preset number can be denoted as “N”) of detection blocks from the detection image.
  • detection blocks refers to blocks obtained from the detection image.
  • the execution module 302 cuts out N detection blocks from the detection image with reference to predetermined N defect patterns of the product.
  • the N defect patterns refer to appearances of defects with different shapes and/or sizes.
  • Cutting out the N detection blocks from the detection image with reference to the predetermined N defect patterns of the product includes cutting out the N detection blocks from the detection image according to a shape and a size corresponding to each of the N defect patterns.
  • cutting out the N detection blocks from the detection image according to a shape and a size corresponding to each of the N defect patterns includes copying the detection images into N copied images; and cutting out a detection block corresponding to one defect pattern from each of the N copied images according to the N defect patterns.
  • the three defect patterns include a square with a first length and a first width, a rectangle with a second length and a second width, and a rectangle with a third length and a third width.
  • the execution module 302 copies the detection image three times to obtain three copied images, the three copied images being denoted first copied image, second copied image, and third copied image.
  • the execution module 302 cuts out the square with the first length and the first width from the first copied image, cuts out the rectangle with the second length and the second width from the second copied image, and cuts out the rectangle with the third length and the third width from the third copied image.
  • the execution module 302 may determine the N defect patterns of the product according to multiple images of defective products.
  • determining the N defect patterns of the product according to multiple images of defective products includes: marking shapes and sizes of defect patterns of each of the multiple images of the defective products to obtain marked detection images; using the marked detection images as a defect sample set; and using a clustering method to obtain the N defect patterns from the defect sample set.
  • the clustering method may be a k-means clustering algorithm.
  • a parameter “k” of the k-means clustering algorithm is equal to N.
  • the execution module 302 inputs the N detection blocks into an auto-encoder (AE) to obtain N reconstructed blocks.
  • AE auto-encoder
  • the “reconstructed blocks” refer to image blocks reconstructed by the auto-encoder according to the detection blocks.
  • the auto-encoder is a neural network that uses a back propagation algorithm to render the output of the auto-encoder equal to the input.
  • a self-encoder can include an encoder and a decoder.
  • the encoder can compress the input into a latent space representation, and the output of the decoder is a reconstruction of the latent space representation.
  • the execution module 302 trains the auto-encoder before inputting the N detection blocks into the auto-encoder. That is, the N reconstructed blocks are obtained by reconstructing the trained auto-encoder based on the N detection blocks.
  • the training of the auto-encoder includes: collecting multiple images of flawless product; cutting out N blocks (“flawless blocks”) from each of the multiple images of the flawless products with reference to the N defect patterns; using the N flawless blocks corresponding to each of the multiple images of the flawless products as a flawless sample, and using all flawless samples as a flawless sample set; the auto-encoder is then trained using the flawless sample set.
  • cutting out N flawless blocks from each of the multiple images of the flawless products with reference to the N defect patterns includes: cutting out the N flawless blocks from each image according to a shape and a size according to each of the N defect patterns.
  • the execution module 302 can copy each of the multiple images of the flawless products into N flawless copied images, and cutting out a flawless block from each of the flawless copied images according to the N flaw patterns.
  • the execution module 302 can calculate a mean square error (MSE) between each flawless block and a corresponding reconstructed block, the mean square error being used as a loss function to train the auto-encoder.
  • MSE mean square error
  • the execution module 302 calculates a mean square error between each detection block and a corresponding reconstructed block, and establish an association between the mean square error and the detection block.
  • the execution module 302 determines whether the product is defective according to the mean square error corresponding to each detection block.
  • determining whether the product is defective according to the mean square error corresponding to each detection block includes: determining whether the mean square error corresponding to each detection block is greater than a preset value. When the mean square error corresponding to any detection block is greater than the preset value, determining that the product is defective, and when the mean square error corresponding to each detection block is not more than the preset value, determining that the product is flawless.
  • the preset value may be an empirical value.
  • detection blocks are cut out from the detection image with reference to the defect patterns, and accuracy of detecting defect of the product is improved.
  • the disclosed computing device and method can be implemented in other ways.
  • the embodiments of the devices described above are merely illustrative.
  • the units are divided only according to logical function, and there can be other manners of division in actual implementation.
  • modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • each functional unit in each embodiment of the present disclosure can be integrated into one processing unit, or can be physically present separately in each unit or two or more units can be integrated into one unit.
  • the above modules can be implemented in a form of hardware or in a form of a software functional unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
  • Image Processing (AREA)

Abstract

In a product defect detection method, a detection image of a product is obtained. A first preset number of detection blocks are cut out from the detection image. The detection blocks are input into an auto-encoder to obtain reconstructed blocks and a mean square error between each detection block and the corresponding reconstructed block is calculated, an association between the mean square error and the detection block being established. Whether the product carries defective is determined according to the mean square error of each detection block. The method improves accuracy of detecting defects of the product.

Description

FIELD
The present disclosure relates to product quality control technology field, in particular to a product defect detection method, a computing device, and a storage medium.
BACKGROUND
Usually, a reconstruction error between a reconstructed image of a test product and a reference image of a perfect product is calculated for detecting defects on surfaces of the test product. However, a detection precision of this method is not high.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a computing device according to one embodiment of the present disclosure.
FIG. 2 shows one embodiment of modules of a product defect detection system of the present disclosure.
FIG. 3 shows a flow chart of one embodiment of a product defect detection method of the present disclosure.
DETAILED DESCRIPTION
In order to provide a more clear understanding of the objects, features, and advantages of the present disclosure, the same are given with reference to the drawings and specific embodiments. It should be noted that the embodiments in the present disclosure and the features in the embodiments may be combined with each other without conflict.
In the following description, numerous specific details are set forth in order to provide a full understanding of the present disclosure. The present disclosure may be practiced otherwise than as described herein. The following specific embodiments are not to limit the scope of the present disclosure.
Unless defined otherwise, all technical and scientific terms herein have the same meaning as used in the field of the art technology as generally understood. The terms used in the present disclosure are for the purposes of describing particular embodiments and are not intended to limit the present disclosure.
FIG. 1 illustrates a computing device of the present disclosure.
In one embodiment, the computing device 3 includes a storage device 31, at least one processor 32, and a display screen 33. The storage device 31 and the display screen 33 are in electrical communication with the at least one processor 32.
Those skilled in the art should understand that the structure of the computing device 3 shown in FIG. 1 does not constitute a limitation of the embodiment of the present disclosure. Other examples of computing device 3 can further include more or less other hardware or software than that shown in FIG. 1 , or the computing device 3 can have different component arrangements.
It should be noted that the computing device 3 is merely an example. If another kind of computing device can be adapted to the present disclosure, it should also be included in the protection scope of the present disclosure, and incorporated herein by reference
In some embodiments, the storage device 31 may be used to store program codes and various data of computer programs. For example, the storage device 31 may be used to store a product defect detection system 30 installed in the computing device 3 and implement completion of storing programs or data during an operation of the computing device 3. The storage device 31 may include Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), and Erasable Programmable Read-Only Memory. EPROM), One-time Programmable Read-Only Memory (OTPROM), Electronically-Erasable Programmable Read-Only Memory (EEPROM), Compact Disc (Compact Disc) Read-Only Memory (CD-ROM) or other optical disk storage, disk storage, magnetic tape storage, or any other non-transitory computer-readable storage medium that can be used to carry or store data.
In some embodiments, the at least one processor 32 may be composed of an integrated circuit. For example, the at least one processor 32 can be composed of a single packaged integrated circuit or can be composed of multiple packaged integrated circuits with the same function or different function. The at least one processor 32 includes one or more central processing units (CPUs), one or more microprocessors, one or more digital processing chips, one or more graphics processors, and various control chips. The at least one processor 32 is a control unit of the computing device 3. The at least one processor 32 uses various interfaces and lines to connect various components of the computing device 3, and executes programs or modules or instructions stored in the storage device 31, and invokes data stored in the storage device 31 to perform various functions of the computing device 3 and to process data, for example, perform a function of detecting product defect (for details, see the description of FIG. 3 ).
In this embodiment, the product defect detection system 30 can include one or more modules. The one or more modules are stored in the storage device 31 and are executed by at least one processor (e.g. processor 32 in this embodiment), such that a function of detecting product defect (for details, see the introduction to FIG. 3 below) is achieved.
In this embodiment, the product defect detection system 30 can include a plurality of modules. Referring to FIG. 2 , the plurality of modules includes an obtaining module 301 and an execution module 302. The modules referred to in the present disclosure refers to a series of computer-readable instructions that can be executed by at least one processor (for example, the processor 32), and can complete functions, and can be stored in a storage device (for example, the storage device 31 of the computing device 3). In this embodiment, functions of each module will be described in detail with reference to FIG. 3 .
In this embodiment, an integrated unit implemented in a form of a software module can be stored in a non-transitory readable storage medium. The above modules include one or more computer-readable instructions. The computing device 3 or a processor implements the one or more computer-readable instructions, such that the method for detecting product defect shown in FIG. 3 is achieved.
In a further embodiment, referring to FIG. 2 , the at least one processor 32 can execute an operating system of the computing device 3, various types of applications (such as the product defect detection system 30 described above), program codes, and the like.
In a further embodiment, the storage device 31 stores program codes of a computer program, and the at least one processor 32 can invoke the program codes stored in the storage device 31 to achieve related functions. For example, each module of the product defect detection system 30 shown in FIG. 2 is program code stored in the storage device 31. Each module of the product defect detection system 30 shown in FIG. 2 is executed by the at least one processor 32, such that the functions of the modules are achieved, and the purpose of detecting product defect (see the description of FIG. 3 below for details) is achieved.
In one embodiment of the present disclosure, the storage device 31 stores one or more computer-readable instructions, and the one or more computer-readable instructions are executed by the at least one processor 32 to achieve a purpose of detecting product defect. Specifically, the computer-readable instructions executed by the at least one processor 32 to achieve the purpose of detecting product defect is described in detail in FIG. 3 below.
FIG. 3 is a flowchart of a product defect detection method according to a preferred embodiment of the present disclosure.
In this embodiment, the product defect detection method can be applied to the computing device 3 of FIG. 1 . For the computing device 3 used to detect product defect, the computing device 3 can be directly integrated with the function of detecting product defect. The computing device 3 can also achieve the function of detecting product defect by running a Software Development Kit (SDK).
Referring to FIG. 3 , the method is provided by way of example, as there are a variety of ways to carry out the method. The method described below can be carried out using the configurations illustrated in FIG. 1 , for example, and various elements of these figures are referenced in explanation of method. Each block shown in FIG. 3 represents one or more processes, methods, or subroutines, carried out in the method. Furthermore, the illustrated order of blocks is illustrative only and the order of the blocks can be changed. Additional blocks can be added or fewer blocks can be utilized without departing from this disclosure. The example method can begin at block S1.
At block S1, the obtaining module 301 obtains an image of a product to be detected and analyzed (for a clear and simple description of the present disclosure, the image of the product is hereinafter referred to as a “detection image”).
The product to be detected refers to a product that needs to be examined for defects. For example, the product to be detected can be a case of a mobile phone, a protective cover of a mobile phone, or any other suitable products.
In one embodiment, the obtaining module 301 may use a camera (not shown in the figures) to photograph the product to be detected to obtain a detection image of the product to be detected. The detection image of the product to be detected can also be stored in the storage device 31 in advance, and the obtaining module 301 can directly obtain the detection image of the product from the storage device 31.
At block S2, the execution module 302 cuts out a first preset number (the first preset number can be denoted as “N”) of detection blocks from the detection image.
It should be noted that the “detection blocks” refers to blocks obtained from the detection image.
In one embodiment, the execution module 302 cuts out N detection blocks from the detection image with reference to predetermined N defect patterns of the product.
In one embodiment, the N defect patterns refer to appearances of defects with different shapes and/or sizes. Cutting out the N detection blocks from the detection image with reference to the predetermined N defect patterns of the product includes cutting out the N detection blocks from the detection image according to a shape and a size corresponding to each of the N defect patterns.
In one embodiment, cutting out the N detection blocks from the detection image according to a shape and a size corresponding to each of the N defect patterns includes copying the detection images into N copied images; and cutting out a detection block corresponding to one defect pattern from each of the N copied images according to the N defect patterns.
For example, three defect patterns are predetermined. The three defect patterns include a square with a first length and a first width, a rectangle with a second length and a second width, and a rectangle with a third length and a third width. The execution module 302 copies the detection image three times to obtain three copied images, the three copied images being denoted first copied image, second copied image, and third copied image. The execution module 302 cuts out the square with the first length and the first width from the first copied image, cuts out the rectangle with the second length and the second width from the second copied image, and cuts out the rectangle with the third length and the third width from the third copied image.
In one embodiment, the execution module 302 may determine the N defect patterns of the product according to multiple images of defective products.
Specifically, determining the N defect patterns of the product according to multiple images of defective products includes: marking shapes and sizes of defect patterns of each of the multiple images of the defective products to obtain marked detection images; using the marked detection images as a defect sample set; and using a clustering method to obtain the N defect patterns from the defect sample set.
In this embodiment, the clustering method may be a k-means clustering algorithm. In this embodiment, a parameter “k” of the k-means clustering algorithm is equal to N.
At block S3, the execution module 302 inputs the N detection blocks into an auto-encoder (AE) to obtain N reconstructed blocks.
It should be noted that the “reconstructed blocks” refer to image blocks reconstructed by the auto-encoder according to the detection blocks.
The auto-encoder is a neural network that uses a back propagation algorithm to render the output of the auto-encoder equal to the input. A self-encoder can include an encoder and a decoder. The encoder can compress the input into a latent space representation, and the output of the decoder is a reconstruction of the latent space representation.
In this embodiment, the execution module 302 trains the auto-encoder before inputting the N detection blocks into the auto-encoder. That is, the N reconstructed blocks are obtained by reconstructing the trained auto-encoder based on the N detection blocks.
Specifically, the training of the auto-encoder includes: collecting multiple images of flawless product; cutting out N blocks (“flawless blocks”) from each of the multiple images of the flawless products with reference to the N defect patterns; using the N flawless blocks corresponding to each of the multiple images of the flawless products as a flawless sample, and using all flawless samples as a flawless sample set; the auto-encoder is then trained using the flawless sample set.
In this embodiment, cutting out N flawless blocks from each of the multiple images of the flawless products with reference to the N defect patterns includes: cutting out the N flawless blocks from each image according to a shape and a size according to each of the N defect patterns. Similarly, the execution module 302 can copy each of the multiple images of the flawless products into N flawless copied images, and cutting out a flawless block from each of the flawless copied images according to the N flaw patterns.
In this embodiment, the execution module 302 can calculate a mean square error (MSE) between each flawless block and a corresponding reconstructed block, the mean square error being used as a loss function to train the auto-encoder.
At block S4, the execution module 302 calculates a mean square error between each detection block and a corresponding reconstructed block, and establish an association between the mean square error and the detection block.
At block S5, the execution module 302 determines whether the product is defective according to the mean square error corresponding to each detection block.
In this embodiment, determining whether the product is defective according to the mean square error corresponding to each detection block includes: determining whether the mean square error corresponding to each detection block is greater than a preset value. When the mean square error corresponding to any detection block is greater than the preset value, determining that the product is defective, and when the mean square error corresponding to each detection block is not more than the preset value, determining that the product is flawless.
In this embodiment, the preset value may be an empirical value.
In this embodiment, detection blocks are cut out from the detection image with reference to the defect patterns, and accuracy of detecting defect of the product is improved.
The above description is only embodiments of the present disclosure, and is not intended to limit the present disclosure, and various modifications and changes can be made to the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and scope of the present disclosure are intended to be included within the scope of the present disclosure.
In the several embodiments provided in the preset disclosure, the disclosed computing device and method can be implemented in other ways. For example, the embodiments of the devices described above are merely illustrative. For example, the units are divided only according to logical function, and there can be other manners of division in actual implementation.
The modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
In addition, each functional unit in each embodiment of the present disclosure can be integrated into one processing unit, or can be physically present separately in each unit or two or more units can be integrated into one unit. The above modules can be implemented in a form of hardware or in a form of a software functional unit.
The present disclosure is not limited to the details of the above-described exemplary embodiments, and the present disclosure can be embodied in other specific forms without departing from the spirit or essential characteristics of the present disclosure. Therefore, the present embodiments are to be considered as illustrative and not restrictive, and the scope of the present disclosure is defined by the appended claims. All changes and variations in the meaning and scope of equivalent elements are included in the present disclosure. Any reference sign in the claims should not be construed as limiting the claim. Furthermore, the word “comprising” does not exclude other units nor does the singular exclude the plural. A plurality of units or devices stated in the system claims may also be implemented by one unit or device through software or hardware. Words such as “first” and “second” are used to indicate names, but not in any particular order.
Finally, the above embodiments are only used to illustrate technical solutions of the present disclosure and are not to be taken as restrictions on the technical solutions. Although the present disclosure has been described in detail with reference to the above embodiments, those skilled in the art should understand that the technical solutions described in one embodiment can be modified, or some of the technical features can be equivalently substituted, and that these modifications or substitutions are not to detract from the essence of the technical solutions or from the scope of the technical solutions of the embodiments of the present disclosure.

Claims (18)

What is claimed is:
1. A product defect detection method applied to a computing device, the method comprising:
obtaining a detection image of a product, and determining a plurality of defect patterns of the product, the plurality of defect patterns referring to appearances of defects with different sizes;
cutting out a first preset number of detection blocks from the detection image, comprising: obtaining a plurality of copied images of the detection image; obtaining the first preset number of detection blocks by cutting out a rectangle from each of the plurality of copied images, according to the different sizes of the plurality of defect patterns;
inputting the first preset number of detection blocks into an auto-encoder to obtain reconstructed blocks;
calculating a mean square error between each detection block and a corresponding reconstructed block, and establishing an association between the mean square error and the detection block; and
determining whether the product is defective according to the mean square error corresponding to each detection block.
2. The product defect detection method according to claim 1, wherein determining whether the product is defective according to the mean square error corresponding to each detection block comprises:
determining whether the mean square error corresponding to each detection block is greater than a preset value;
when the mean square error corresponding to any detection block is greater than the preset value, determining that the product is defective; and
when the mean square error corresponding to each detection block is less than or equal to the preset value, determining that the product is flawless.
3. The product defect detection method according to claim 1, further comprising:
determining the plurality of defect patterns of the product according to multiple images of defective products, comprising:
marking shapes and sizes of the plurality of defect patterns of each of the multiple images of the defective products, and obtaining marked detection images;
using the marked detection images as a defect sample set; and
obtaining the plurality of defect patterns from the defect sample set by using a clustering method.
4. The product defect detection method according to claim 1, further comprising:
training the auto-encoder before inputting the first preset number of detection blocks into the auto-encoder, comprising:
collecting multiple images of flawless products;
cutting out the first preset number of flawless blocks from each of the multiple images of the flawless products with reference to the plurality of defect patterns;
using the flawless blocks corresponding to each of the multiple images of the flawless products as a flawless sample, and using all flawless samples as a flawless sample set; and
training the auto-encoder using the flawless sample set.
5. A computing device comprising:
at least one processor; and
a storage device storing computer-readable instructions, which when executed by the at least one processor, cause the at least one processor to:
obtain a detection image of a product, and determine a plurality of defect patterns of the product, the plurality of defect patterns referring to appearances of defects with different sizes;
cut out a first preset number of detection blocks from the detection image, comprising: obtain a plurality of copied images of the detection image; obtain the first preset number of detection blocks by cutting out a rectangle from each of the plurality of copied images, according to the different sizes of the plurality of defect patterns;
input the first preset number of detection blocks into an auto-encoder to obtain reconstructed blocks;
calculate a mean square error between each detection block and a corresponding reconstructed block, and establish an association between the mean square error and the detection block; and
determine whether the product is defective according to the mean square error corresponding to each detection block.
6. The computing device according to claim 5, wherein the at least one processor is further caused to:
determine whether the mean square error corresponding to each detection block is greater than a preset value;
when the mean square error corresponding to any detection block is greater than the preset value, determine that the product is defective; and
when the mean square error corresponding to each detection block is less than or equal to the preset value, determine that the product is flawless.
7. The computing device according to claim 5, wherein the at least one processor is further caused to:
determine the plurality of defect patterns of the product according to multiple images of defective products, comprising:
marking shapes and sizes of the plurality of defect patterns of each of the multiple images of the defective products, and obtain marked detection images;
using the marked detection images as a defect sample set; and
obtain the plurality of defect patterns from the defect sample set by using a clustering method.
8. The computing device according to claim 5, wherein the at least one processor is further caused to:
train the auto-encoder before inputting the first preset number of detection blocks into the auto-encoder, comprising:
collecting multiple images of flawless products;
cutting out the first preset number of flawless blocks from each of the multiple images of the flawless products with reference to the plurality of defect patterns;
using the flawless blocks corresponding to each of the multiple images of the flawless products as a flawless sample, and using all flawless samples as a flawless sample set; and
training the auto-encoder using the flawless sample set.
9. The computing device according to claim 5, wherein the at least one processor is further caused to:
cut out the first preset number of detection blocks from the detection image with reference to the plurality of defect patterns.
10. The computing device according to claim 5, wherein the plurality of defect patterns comprise a square with a first length and a first width, a rectangle with a second length and a second width, and a rectangle with a third length and a third width, the plurality of copied images being denoted a first copied image, a second copied image, and a third copied image, the at least one processor is further caused to:
obtain the first preset number of detection blocks by cutting out the square with the first length and the first width from the first copied image, cutting out the rectangle with the second length and the second width from the second copied image, and cutting out the rectangle with the third length and the third width from the third copied image.
11. A non-transitory storage medium having instructions stored thereon, when the instructions are executed by a processor of a computing device, the processor is configured to perform a product defect detection method, the method comprising:
obtaining a detection image of a product, and determining a plurality of defect patterns of the product, the plurality of defect patterns referring to appearances of defects with different sizes;
cutting out a first preset number of detection blocks from the detection image, comprising: obtaining a plurality of copied images of the detection image; obtaining the first preset number of detection blocks by cutting out a rectangle from each of the plurality of copied images, according to the different sizes of the plurality of defect patterns;
inputting the first preset number of detection blocks into an auto-encoder to obtain reconstructed blocks;
calculating a mean square error between each detection block and a corresponding reconstructed block, and establishing an association between the mean square error and the detection block; and
determining whether the product is defective according to the mean square error corresponding to each detection block.
12. The non-transitory storage medium according to claim 11, wherein determining whether the product is defective according to the mean square error corresponding to each detection block comprises:
determining whether the mean square error corresponding to each detection block is greater than a preset value;
when the mean square error corresponding to any detection block is greater than the preset value, determining that the product is defective; and
when the mean square error corresponding to each detection block is less than or equal to the preset value, determining that the product is flawless.
13. The non-transitory storage medium according to claim 11, the method further comprising:
determining the plurality of defect patterns of the product according to multiple images of defective products, comprising:
marking shapes and sizes of the plurality of defect patterns of each of the multiple images of the defective products, and obtaining marked detection images;
using the marked detection images as a defect sample set; and
obtaining the plurality of defect patterns from the defect sample set by using a clustering method.
14. The non-transitory storage medium according to claim 11, the method further comprising:
training the auto-encoder before inputting the first preset number of detection blocks into the auto-encoder, comprising:
collecting multiple images of flawless products;
cutting out the first preset number of flawless blocks from each of the multiple images of the flawless products with reference to the plurality of defect patterns;
using the flawless blocks corresponding to each of the multiple images of the flawless products as a flawless sample, and using all flawless samples as a flawless sample set; and
training the auto-encoder using the flawless sample set.
15. The product defect detection method according to claim 1, wherein cutting out the first preset number of detection blocks from the detection image comprises:
cutting out the first preset number of detection blocks from the detection image with reference to the plurality of defect patterns.
16. The product defect detection method according to claim 1, wherein the plurality of defect patterns comprise a square with a first length and a first width, a rectangle with a second length and a second width, and a rectangle with a third length and a third width, the plurality of copied images being denoted a first copied image, a second copied image, and a third copied image, obtaining the first preset number of detection blocks by cutting out the rectangle from each of the plurality of copied images, according to different sizes of the plurality of defect patterns comprises:
obtaining the first preset number of detection blocks by cutting out the square with the first length and the first width from the first copied image, cutting out the rectangle with the second length and the second width from the second copied image, and cutting out the rectangle with the third length and the third width from the third copied image.
17. The non-transitory storage medium according to claim 11, wherein cutting out the first preset number of detection blocks from the detection image comprises:
cutting out the first preset number of detection blocks from the detection image with reference to the plurality of defect patterns.
18. The non-transitory storage medium according to claim 11, wherein the plurality of defect patterns comprise a square with a first length and a first width, a rectangle with a second length and a second width, and a rectangle with a third length and a third width, the plurality of copied images being denoted a first copied image, a second copied image, and a third copied image, obtaining the first preset number of detection blocks by cutting out the rectangle from each of the plurality of copied images, according to different sizes of the plurality of defect patterns comprises:
obtaining the first preset number of detection blocks by cutting out the square with the first length and the first width from the first copied image, cutting out the rectangle with the second length and the second width from the second copied image, and cutting out the rectangle with the third length and the third width from the third copied image.
US17/560,663 2020-12-29 2021-12-23 Method for detecting product defect in detection image, computing device, and storage medium Active 2043-06-16 US12307649B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011599676.9 2020-12-29
CN202011599676.9A CN114757869B (en) 2020-12-29 2020-12-29 Product defect detection method and computer device

Publications (2)

Publication Number Publication Date
US20220207714A1 US20220207714A1 (en) 2022-06-30
US12307649B2 true US12307649B2 (en) 2025-05-20

Family

ID=82117285

Family Applications (1)

Application Number Title Priority Date Filing Date
US17/560,663 Active 2043-06-16 US12307649B2 (en) 2020-12-29 2021-12-23 Method for detecting product defect in detection image, computing device, and storage medium

Country Status (2)

Country Link
US (1) US12307649B2 (en)
CN (1) CN114757869B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340781B (en) * 2020-02-26 2024-06-25 京东方现代(北京)显示技术有限公司 Method and device for reviewing defective products
CN113971650A (en) * 2020-07-22 2022-01-25 富泰华工业(深圳)有限公司 Product flaw detection method, computer device and storage medium
CN117078590B (en) * 2023-07-07 2026-01-02 三峡大学 A Crack Detection Method for Ceramic Tile Surfaces Based on Convolutional Autoencoders
CN117491391B (en) * 2023-12-29 2024-03-15 登景(天津)科技有限公司 Glass substrate light three-dimensional health detection method and equipment based on chip calculation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473767A (en) 2013-09-05 2013-12-25 中国科学院深圳先进技术研究院 Segmentation method and system for abdomen soft tissue nuclear magnetism image
WO2020031984A1 (en) 2018-08-08 2020-02-13 Blue Tag株式会社 Component inspection method and inspection system
CN111402226A (en) 2020-03-13 2020-07-10 浙江工业大学 A Surface Defect Detection Method Based on Cascaded Convolutional Neural Networks
US10803646B1 (en) * 2019-08-19 2020-10-13 Neon Evolution Inc. Methods and systems for image and voice processing
US20200364842A1 (en) 2019-05-13 2020-11-19 Fujitsu Limited Surface defect identification method and apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105044127A (en) * 2015-07-31 2015-11-11 深圳市星火辉煌系统工程有限公司 OLED micro-display defect detection device and detection method
CN105654121B (en) * 2016-04-11 2019-11-19 李云栋 A Defect Detection Method for Complex Jacquard Fabrics Based on Deep Learning
CN111383209B (en) * 2019-12-20 2023-07-07 广州光达创新科技有限公司 An Unsupervised Flaw Detection Method Based on Fully Convolutional Autoencoder Network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473767A (en) 2013-09-05 2013-12-25 中国科学院深圳先进技术研究院 Segmentation method and system for abdomen soft tissue nuclear magnetism image
WO2020031984A1 (en) 2018-08-08 2020-02-13 Blue Tag株式会社 Component inspection method and inspection system
US20200364842A1 (en) 2019-05-13 2020-11-19 Fujitsu Limited Surface defect identification method and apparatus
US10803646B1 (en) * 2019-08-19 2020-10-13 Neon Evolution Inc. Methods and systems for image and voice processing
CN111402226A (en) 2020-03-13 2020-07-10 浙江工业大学 A Surface Defect Detection Method Based on Cascaded Convolutional Neural Networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Fabric Defect Detection Based on Image reconstruction with Auto-encoder" by Ou Qing-fang and Xie Huo-sheng, published by Jisuanji Yu Xiandaihua, p. 27-32, and p. 39. Dec. 31, 2019.

Also Published As

Publication number Publication date
US20220207714A1 (en) 2022-06-30
CN114757869B (en) 2025-07-04
CN114757869A (en) 2022-07-15

Similar Documents

Publication Publication Date Title
US12307649B2 (en) Method for detecting product defect in detection image, computing device, and storage medium
CN117274133B (en) Defect detection method, electronic device and storage medium
CN111680750B (en) Image recognition method, device and equipment
US12260537B2 (en) Defect detection method, computer device and storage medium
CN113781392B (en) Glue road detection method, electronic device and storage medium
TWI748828B (en) Method for detecting defects of product, computer device and storage medium
CN112613380A (en) Machine room patrol inspection method and device, electronic equipment and storage medium
CN114663334A (en) Defect detection method, device, electronic device and storage medium
US12045970B2 (en) Method for detecting defects in product and computer device
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
CN110362481A (en) Automatic test approach and terminal device
CN114549625A (en) Method, device and storage medium for carrying out abnormity detection on longitude and latitude of equipment
CN114116485A (en) Automatic testing method and device for CAD software, storage medium and processor
CN113304482A (en) Cloud game player portrait processing method, server and medium applied to cloud computing
CN111640096A (en) Electronic product appearance detection method and device and terminal
CN114663336B (en) Model input size determination method and related equipment
TW202225674A (en) Method for detecting defects of product and computer device
CN117704997A (en) Photoresist morphology measurement method, device, equipment and storage medium
CN117333416A (en) Defect detection methods, electronic equipment and storage media
CN116804951A (en) Fault analysis method and related equipment
CN114637795A (en) Report processing method, device, equipment, medium and product
CN114022679A (en) Image segmentation method, model training device and electronic equipment
CN117112446B (en) Editor debugging method and device, electronic equipment and medium
CN112580334A (en) File processing method, file processing device, server and storage medium
CN116908134B (en) Semi-quantitative analysis method for plasticizer content and training method for analysis model

Legal Events

Date Code Title Description
AS Assignment

Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YANG, JUNG-HAO;KUO, CHIN-PIN;LU, CHIH-TE;AND OTHERS;REEL/FRAME:058470/0335

Effective date: 20211215

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCF Information on status: patent grant

Free format text: PATENTED CASE