The present invention relates to self-learning machine vision systems and methods.
Machine vision systems have many applications including security systems, process automation systems, quality control systems such as automated inspection systems, smart devices, robotics, navigation systems, and the like.
Automated inspection is vital component to manufacturing. Inspection using machine vision allows for early detection of errors and high throughput. Additionally, unlike human operators, machine vision systems tend to be more consistent and are not prone to fatigue, illness, and other human maladies that may impact performance.
Embodiments of the invention include systems and methods relating to self-learning machine vision systems. In an embodiment, the invention includes a self-learning machine vision system including a video input; a processor in communication with the video input; and a video output in communication with the processor. The processor is configured to process video data from the video input and identify a number of repeating units within the video data. The processor is further configured to identify repeating units that deviate from the other repeating units. The system can further display an image of the repeating units through the video output with indicia to indicate identified deviant repeating units.
In an embodiment, the invention includes a method of identifying defects in a stream of produced items including processing video data from a video input with a computing system; identifying a number of repeating units within the video data; identifying repeating units that deviate from the other repeating units by comparing the repeating with one another; and displaying an image of the repeating units through a video output with indicia to indicate identified deviant repeating units.
This summary is an overview of some of the teachings of the present application and is not intended to be an exclusive or exhaustive treatment of the present subject matter. Further details are found in the detailed description and appended claims. Other aspects will be apparent to persons skilled in the art upon reading and understanding the following detailed description and viewing the drawings that form a part thereof, each of which is not to be taken in a limiting sense. The scope of the present invention is defined by the appended claims and their legal equivalents.
The invention may be more completely understood in connection with the following drawings, in which:
While the invention is susceptible to various modifications and alternative forms, specifics thereof have been shown by way of example and drawings, and will be described in detail. It should be understood, however, that the invention is not limited to the particular embodiments described. On the contrary, the intention is to cover modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
The embodiments of the present invention described herein are not intended to be exhaustive or to limit the invention to the precise forms disclosed in the following detailed description. Rather, the embodiments are chosen and described so that others skilled in the art can appreciate and understand the principles and practices of the present invention.
All publications and patents mentioned herein are hereby incorporated by reference. The publications and patents disclosed herein are provided solely for their disclosure. Nothing herein is to be construed as an admission that the inventors are not entitled to antedate any publication and/or patent, including any publication and/or patent cited herein.
Embodiments herein include systems and methods relating to self-learning machine vision systems. In an embodiment, the invention includes a self-learning machine vision system including a video input, a processor, and a video output. The system is configured to process video data from the video input and identify a number of repeating units within the video data and further identify repeating units that deviate from the other repeating units. The system can further display an image of the repeating units through the video output with indicia to indicate identified deviant repeating units. In various embodiments herein, the system is self-learning in the sense that it can process video images and identify deviant repeating units without going through a training process first. This is in contrast to, and represents a significant advance over, systems that must be programmed with the correct layout of an article or portions thereof or otherwise trained in advance.
Referring now to
It will be appreciated that various video input devices can be used in accordance with embodiments herein. In some embodiments, the video input device can be a video camera. In other embodiments, the video input device can be a still-frame photographic device. In some embodiments, the video input device can be, or include, an X-ray device, a thermal sensing device, or other electromagnetic spectrum-based sensing device.
Various video resolutions can be used in accordance with embodiments herein. In general, the use of high resolution cameras provides more data regarding the work piece 114 and the repeating units 112 thereon allowing for more precise identification of repeating units and identification of deviant repeating units. In some embodiments the camera provides an image with a resolution of at least about 800×600. In some embodiments the camera provides an image with a resolution of at least about 1600×1200.
In some embodiments, a desirable camera resolution is also impacted by the distance between the video input device and the pieces to be analyzed (e.g., the repeating units). In some embodiments, the distance between the video input device and the pieces to be analyzed is between about 0.1 meters and 10 meters. In some embodiment, the distance between the video input device and the pieces to be analyzed is between about 0.1 meters and 5 meters. It will be appreciated also that a lens having various magnifications can be used with video input devices herein.
Referring now to
It will be appreciated that the systems and methods herein can be used to identify defects and/or abnormalities in a variety of different types of objects. For example, in some embodiments, the repeating units can be circuit boards, or portions thereof. For example, referring now to
In some embodiments, the repeating units can all be part of one physically attached unit or article. In other embodiments, the repeating units can all be arranged together for purposes of analysis, but can be physically separate. In some embodiments, the repeating units can be physically separate from one another and arranged on a tray or carrier for purposes of analysis in accordance with embodiments herein.
In various embodiments, the system is configured to automatically identify repeating subunits in the image data. In some embodiments, the repeating subunits can be in the Y axis (referring to
It will be appreciated that there are various techniques that can be used in order to identify repeating units. In some embodiments, identifying repeating units can include formation of a grid which separates the repeating units into segments representing equal areas of analysis. Referring now to
In some embodiments, such as in the case of analyzing items including corners, an operation of classifying corners 304 can be included. As part of this operation, optionally, feature descriptors can be calculated. Various techniques can be used to calculate feature descriptors. One approach is known as SURF (Speeded Up Robust Features). An exemplary technique is described in U.S. Publ. Pat. App. No. 2009/238460, the content of which is herein incorporated by reference.
Further, as part of this operation 304, optionally, the feature descriptors can be classified using a support vector machine. For example, if there is a large number of feature descriptors and/or key points, then a technique can be used in order to classify the same, such as using a support vector machine. In general, a support vector machine takes a set of input data and predicts, for each given input, which of two possible classes the input is a member of, which makes the SVM a non-probabilistic binary linear classifier. Given a set of training examples, each marked as belonging to one of two categories, an SVM training algorithm builds a model that assigns new examples into one category or the other. It will be appreciated that in some embodiments SVM training may only occur a single time or may never occur. In some embodiments, the equivalent of SVM training data is preprogrammed into the system and thus SVM training may never need to be performed. Referring now to
An operation of finding the edges 306 (or boundaries) of items to be analyzed, such as panels, can be included. In some embodiments, this can include locating the boundaries of the image to be analyzed. Various techniques can be used in order to identify such boundaries. In some embodiments, this can involve calculating the parameters of a line(s) that passes through certain of the feature descriptors and/or key points. For example, in some embodiments, this can involve calculating the parameters of a line(s) that passes through a plurality of corners of repeating units. In the context of a vertical line passing through multiple points, the desired line can be one that minimizes the sum of the squared horizontal distances between the line and each of the feature descriptors and/or key points to which it is being matched. Various techniques can be used to accommodate the presence of outliers. By way of example, a technique such as RANSAC (random sample consensus) can be used. RANSAC is an iterative method to estimate parameters of a mathematical model from a set of observed data which contains outliers. Referring now to
In some embodiments, a step of grid pattern extraction 308 can be performed. It will be appreciated that various techniques can be used in order to extract a grid pattern from a video image. In some embodiments, the grid can include a single column, but multiple rows. Then, each of the rows, or portions thereof, are compared against one another. In other embodiments, the grid can include a single row, but multiple columns. Then, each of the columns, or portions thereof, are compared against one another. In still other embodiments, the grid can include a multiple columns and rows. Then, each of the individual grid segments, or portions thereof, are compared against one another. Referring now to
In some embodiments, an operation of remapping component parts to be analyzed 310, such as boards, can be executed. For example, in some embodiments, after identifying the overall pattern of repeating units, the video data for each of the repeating units can be processed in order to render each of them as identically dimensioned images. In some embodiments, input can be provided to the system regarding the number of repeating units in the X axis as well as the number of repeating units in the Y axis. With this information in hand, the system can then more directly proceed to identifying an overall pattern of repeating units within the video image data.
In various embodiments, the system can identify deviant repeating units. In some embodiments, the deviant repeating units correspond to defects in the materials being analyzed. In some embodiments, background subtraction is used in order to identify defects in the panels. Specifically, background subtraction can be performed on the identified repeating units with respect to one another. It will be appreciated that there are many different background subtraction methods and/or algorithms. An exemplary background subtraction technique includes, but is not limited to, the eigenbackground technique.
In some background subtraction techniques, only a single background model should exist. There are various techniques for obtaining a single background model. By way of example, in some embodiments the first repeating unit can be used for the single background model. In other embodiments, a random repeating unit can be used for the single background model. To account for the circumstance where the particular repeating unit to be used as a background model itself contains an aberration or defect, the system can be caused to repeat the identification process using a different repeating unit for the background model if the error rate exceeds a threshold value. By way of example, if the error rate exceeds 50% then the system can automatically repeat the identification process using a different repeating unit as the background model.
Referring now to
In various embodiments, the repeating unit image can be projected onto the background model and then reprojected back to the original dimensionality. The square of the reprojection error can then be used to determine if there are deviations or defects present.
In various embodiments, the system can mark identified deviant repeating units. In some embodiments, the system can mark only the portions of the deviant repeating units that are deviant. In other embodiments, the system can mark the entire deviant repeating unit. As used herein, the term “mark” can include generation of data indicating which repeating units or portions thereof are deviant. The term “mark” can also include display of data indicating which repeating units or portions thereof are deviant. In some embodiments, a video image of the article and/or repeating units can be displayed and graphical elements can be include in order to visually indicate which of the repeating units include anomalies (aberrations or defects). In some embodiments, specific portions of the article and/or repeating units can be marked. By way of example, columns and rows, or portions thereof, can be marked if they include more than a predetermined threshold number of defects. Referring now to
It will be appreciated that system in accordance with various embodiments herein can identify units that deviate from other repeating units with no prior training step. For example, in some embodiments, systems herein can be setup and can operate to identify units that deviate without the need for a system user to interface with the system and, in effect, train the system as to what distinguishes a deviating unit from a non-deviating unit. In some embodiments, this can allow for rapid deployment of the system. In some embodiments, it can allow for successive evaluation of heterogeneous types of units without additional steps such as recalibrating or retraining the system.
It will be appreciated methods described herein can be performed on various types of computing devices. Computing devices herein can include, but are not limited to, desktop computing devices, handheld computing devices, cloud computing devices, computing devices with client-server architecture, portable computing devices. In general, virtually any computing device that can execute instructions and receive and process video data can be used in accordance with embodiments herein. Referring now to
In some embodiments one or more USB ports 1241 can be included, which are connected to bus 1230 by controller 1240. In some embodiments, a CD-ROM drive 1246 can be included, which is connected to bus 1230 by controller 1245, and a hard disk drive 1251, which is connected to bus 1230 by controller 1250. User input to the system can be provided by a number of devices. For example, a keyboard and mouse can connected to bus 1230 by keyboard and mouse controller 1255. DMA controller 1260 can be provided for performing direct memory access to system RAM 1210. A visual display is generated by a video controller 1265 or video output, which controls video display 1270. This description of elements is only provided by way of example and it will be appreciated that some computing devices may lack one or more elements illustrated in
It should be noted that, as used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the content clearly dictates otherwise. Thus, for example, reference to a composition containing “a compound” includes a mixture of two or more compounds. It should also be noted that the term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise.
It should also be noted that, as used in this specification and the appended claims, the phrase “configured” describes a system, apparatus, or other structure that is constructed or configured to perform a particular task or adopt a particular configuration to. The phrase “configured” can be used interchangeably with other similar phrases such as arranged and configured, constructed and arranged, constructed, manufactured and arranged, and the like.
All publications and patent applications in this specification are indicative of the level of ordinary skill in the art to which this invention pertains. All publications and patent applications are herein incorporated by reference to the same extent as if each individual publication or patent application was specifically and individually indicated by reference.
The invention has been described with reference to various specific and preferred embodiments and techniques. However, it should be understood that many variations and modifications may be made while remaining within the spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Application No. 61/637,059 filed Apr. 23, 2012, the contents of which are herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61637059 | Apr 2012 | US |