This patent document contains information subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Patent Office files or records but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
Aspects of the present invention relate to machine vision inspection. Other aspects of the present invention relate to creating geometric object models for use in machine vision inspection systems.
2. Description of Background Information
For purposes of the disclosure contained herein, a geometric model of an object comprises parameter representations of the geometry of the object. For example, a geometric model of an object may comprise a set of geometric elements, each element comprising an arc or a line defining a substantial part of the object's geometry. Such models have many useful applications. For example, in machine vision inspection, a geometric model of an object can be compared to an object image to facilitate the alignment of the object (e.g., the precise positioning of a surface mount device (SMD) for insertion into a printed circuit board), to check if the object is within specified dimensional tolerances, and to check for other defects. If the inspected object deviates from the geometric model of the object by more than a predefined inspection threshold, that may indicate that the object is defective. Geometric models may be used in other situations. For example, they also may be used to create synthetically animated objects such as those used in video games. A geometric model can be either two dimensional or three dimensional.
In the past, geometric models of objects have been created manually. The process of manually constructing a geometric model of an object may involve entering information concerning the size, the dimension, and the shape of the object. The model may need to be refined before it is used in an inspection process. The refinement process is tedious, labor intensive, and time consuming. For an application in which the objects to be modeled change from time to time, such a manual modeling process is expensive and impractical.
There are commercial products that allow a user to create models of SMDs from their images. A user may manually place features such as corners (e.g., by moving a cursor along the edges at the corner) or leads (e.g., by manually “dragging” a cursor manipulated marquee box) on top of an image of the part to be modeled so that the shape of the parts becomes more evident in the image.
An object of the invention is to provide processes and mechanisms that allow a user to generate accurate geometric models of objects. Such processes and mechanisms may be designed so that geometric models are generated directly from object images, and may be provided with features that ensure the quality of the generated models.
Methods and apparatuses may be provided for creating geometric models of objects directly from object images, and they may incorporate an effective testing phase within the model creation process to ensure the quality of the geometric models created.
The present invention is further described in the detailed description with follows, by reference to the noted drawings by way of non-limiting exemplary embodiments, in which like reference numerals represent similar parts throughout the several views of the drawings, and wherein:
An embodiment of the invention is illustrated that is to be used to create a geometric model of an object from one or more images of the object. The illustrated embodiment allows a user to quickly create and test geometric models using manual, graphical, and/or automatic tools. The geometric models may be used in machine vision inspection systems.
In
This may be illustrated by an example.
In
Once a geometric description for an object is generated, object modeling system 12 activates a machine vision inspection system 22 to test the quality of the generated geometric description (i.e., the object model). The object models are stored in object model storage mechanism 18. The testing is performed by machine vision inspection system 22 on one or more test images retrieved from a test image storage mechanism 20. The test images that are used for testing an object model for a particular object are the images of the object. Based on the geometric description for the object, generated by object modeling system 12, a machine vision inspection tool may be configured, in machine vision inspection system 22, and then be used to perform machine vision inspection on the test images that represent the object.
Each test image may associate with some known inspection measurements. The inspection, performed by machine vision inspection system 22 on the test images of the object, produces inspection results. Expected inspection results are retrieved from test image storage mechanism 20, and they are compared with the actual inspection results produced by machine vision inspection system 22. The extent to which the expected results match the actual results is indicative of the quality of the geometric description of an object, generated by object modeling system 12. If the discrepancy between the known and the corresponding actual inspection results is with acceptable limits, the geometric description may be considered as satisfactory. Object modeling system 12 may iteratively refine the object model until it is assessed as satisfactory in the testing phase.
Testing image storage mechanism 20 may include, for example, a database, a medium (such as hard disk) management system, and a search engine for retrieving the information stored in the database. The test images and their associated information may be stored on such medium that random access is possible. Such medium may include, e.g., hard disk, computer memories, or CD-ROM.
Similarly, object model storage mechanism 18 may include, for example, a database, a medium (such as hard disk) management system, and a search engine for retrieving the information stored in the database. The test images and their associated information may be stored on such medium that random access is possible. Such medium may include hard disk, computer memories, or CD-ROM. Mechanisms 18 and 20 may or may not reside at a same physical location.
The calibrated input image of an object, acquired by the image acquisition unit 210, is fed into object modeling system 12 which comprises, as illustrated in
There may be different types of interactions between part modeling unit 220 and part model refinement unit 225. For example, referring back to
Another alternative is to generate the models for the leads from all four sides of SMD 100 before refining them all at once. Yet another alternative is not to apply refinement to the part models generated. In this case, object model generation unit 230 is invoked immediately after the part models are generated at part modeling unit 220.
The object model generation unit 230 takes a set of part models as input and creates a geometric description for the entire object. As mentioned earlier, such description may include the information about the dimension and the position of the object as well as the spatial relationships among different parts of the object. Using SMD 100, illustrated in
Based on the geometric description or the object model created by object model generation unit 230, machine vision inspection system 22 performs testing inspection on test images of the object to assess the quality of the object model. In
A configured inspection tool is applied, by testing unit 240, to one or more test images, retrieved from testing image storage mechanism 20. Each test image represents the object whose model is being tested. In addition, each test image is associated with some known inspection measurements, retrieved, together with the test images, from testing image storage mechanism 20.
The known inspection measurements associated with each test image provide a ground truth for an inspection tool. The ground truth indicates what should be detected, based on the inspection on the image, by an inspection tool. Testing unit 240 performs testing inspection by applying the inspection tool, configured by machine vision inspection configuration unit 235, on one or more test images, retrieved from testing image storage mechanism 20. The inspection tool produces testing inspection measurements that correspond to the ground truth (or known inspection measurements). Such measurements may be as simple as whether a test image passes or fails the inspection or as complex as statistics about the accuracy, the robustness, and the time of the test inspection. The two sets of measurements (ground truth and the testing inspection measurements) may then be compared to see whether the test inspection yields similar inspection measurements as what is expected from the ground truth.
The discrepancy between the two sets of measurements may be examined. If the discrepancy is small, the object model is considered to be satisfactory. If the discrepancy is substantially large, further analysis may be performed to pinpoint the cause. There may be different reasons for a large difference in two sets of measurements. For example, imprecise part models, generated by part modeling unit 220, may produce inaccurate object model and subsequently cause wrong testing inspection measurements. Once the cause is identified, certain acts, such as part model generation and all the acts following it, may be repeated, to improve the testing inspection performance.
Determining which act or acts to iterate depends on the testing inspection results produced by testing unit 230. It is possible to return back to machine vision inspection configuration so that inspection parameters can be configured more precisely. It is also possible to return to object modeling unit 230 to create an improved model for the overall object. It is also possible to return to as early as part modeling unit 220 to model some of the parts of the object if the analysis on the testing inspection results indicates that there are some missing part models. It is of course also possible to return to part mode refinement unit 225 if the analysis on the testing inspection results indicates that some part models are not accurate enough. Details to decide how to iterate is discussed later, referring to
When the two sets of inspection measurements are similar enough, the object model under testing is considered satisfactory. It may take several iterations of creating→configuration→testing, as described above, before a satisfactory geometric model for an object can be obtained. The satisfactory object model, once obtained, is stored in object model storage mechanism 18 for future inspection use.
The embodiment 200 of the present invention, illustrated in
As described earlier, creating a part model may include generating the description about the dimension (e.g., shape and size) and the position of the part (e.g., location and orientation). Descriptions about each (dimension or position) may be generated independently using different tools. For example, a user may manually enter the dimension information through a dialog box about a part and then use an automatic tool to determine the position of the part. In this case, manual editor 304 is first invoked to accept the dimension information manually entered by the user. Then the automatic locator 319 is invoked that searches the location of the part that has the given dimension in an image of the object. It is also possible that a user may draw, on a graphical editor, an object part (e.g., a rectangle) from which the shape and the size of the part may be determined and then enter the coordinate (e.g., the x and y coordinates in an image plane) of the center of the part and the orientation (e.g., the angle with respect to the X axis of the image plane) of the part. In this case, graphical editor 306 is first applied and then the manual locator 317 is applied.
In the illustration in
From rectangle 475, drawn by a user in display window 455, both dimension and position information can be extracted. First of all, by choosing a rectangular drawing tool, it indicates that the object part is a rectangle. The width, the height, the location, and the orientation of the rectangle may be computed directly from the drawing. For example, center 480 of rectangle 475 represents the center or the location of SMD 470.
Dimension and position information may also be obtained through other means. For example, import unit 308 in
Yet another approach to obtain dimension and position information is to apply an intelligent tool that automatically identifies the location of the part in the image and then computes the dimension and the position of the part automatically. Examples of such automatic tools are described in two commonly-assigned patent applications, “Methods and Apparatuses for Determining the Orientation of at Least One Object in An Image” (provisional application Ser. No. 60/147,721), herein incorporated by reference in its entirety, and “Methods and Apparatuses for Verifying Presence and Absence of Features Within An Image” (provisional application Ser. No. 60/141,442), herein incorporated by reference in its entirety. Such an automatic tool may be applied within a particular region of interest (ROI) in the input image, specified by drawing the ROI manually.
A part model generated by part modeling unit 220 may not be accurate enough. In this case, it is possible to feed the part models generated by unit 220 to part model refinement unit 225 to obtain refined or improved part models (although refinement may be a typical step, it does not have to be applied). As indicated earlier, a drawing made on top of an image of the object to be modeled may not coincide with the object precisely. In this case, the part model generated using the drawing may need to be refined.
Using manual refiner 530, a user may simply enter the corrections to the existing information. For example, corrections to the width and the height of a part of an object may be entered through dialog boxes on a user interface.
Similarly, interface 620 allows a user to refine the positional information of an object part, as indicated by the message in window 630. Edit boxes 632 and 634 are provided to allow a user to enter the adjustments (or corrections) to the existing position and orientation information. The adjustments will take effect when the user click on button 637 to save the corrections. The adjustments may also be abandoned if button 638 is clicked.
Refining a part model may also be achieved through a graphical means.
In
Part model refinement may also be achieved through an automatic means. Such automatic tools typically snap the part model to the image of the object. Examples of automatically refining the body and leads of an SMD object are described in pending patents “Method for Refining Geometric Description Models Using Images” (application Ser. No. 09/127,676), herein incorporated by reference in its entirety, and “Methods and Apparatuses for Refining a Geometric Description of an Object Have a Plurality of Extensions” (application Ser. No. 09/203,182), herein incorporated by reference in its entirety.
Based on the part models generated for some or all the parts of an object, the model for the entire object can be created by object model generation unit 230. An object model may include geometric descriptions about an object. Such geometric descriptions are usually generated with respect to a reference coordinate system. Such a reference coordinate system is also very important to an inspection system because a machine vision inspection tool may report inspection results (e.g., alignment poses) and make relative measurements, all with respect to the reference coordinate system.
It is usually desirable for object model generation unit 230 to align the reference coordinate system with a chosen part of the object and to center the reference coordinate system properly with respect to the object so that the coordinate space transformation mathematics is simplified. The part chosen to be aligned against is a reference part.
The first act to establish a coordinate system is to choose a reference. Such a reference includes an object part. That is, an object part is used as a reference to a coordinate system. For example, it is possible to align a coordinate system with a particular lead of a SMD. In
Object model generation unit 230 may be realized by a combination of manual, graphical, and automatic tools, as depicted in
The part model for the reference part, if available, may be used to assist alignment. For example, if a 2D reference coordinate system is to be aligned against a rectangular-shaped part (chosen as the reference part), the geometric description of the part, such as a rectangle, may define the orientation of 2D reference coordinate system. To manually align the 2D reference coordinate system in the orientation, extracted from the rectangle, a user may indicate, through an interface for manual aligner 720, which axis of the 2D reference coordinate system aligns with which side of the rectangle.
The alignment may also be performed through a graphical interface (not shown in
Automatic aligner 740 may also be applied to align a reference coordinate system with a reference part. In this case, aligner 740 automatically detects the precise location and the orientation of the reference part and then aligns the reference coordinate system in the detected orientation.
To center an aligned coordinate system, it is usually desirable to place the origin of the reference coordinate system at the center of mass of the object. To identify the center of mass of the object, different tools may be employed.
Graphical centering mechanism 770 may provide a graphical means to center an aligned coordinate system. In this case, a user may simply drag the aligned coordinate system to the center of the object. Automatic centering mechanism 780 may make the centering easier by automatically detecting the center of mass of the object based on the object image and then automatically translating the aligned the reference coordinate system to the detected center location.
With a (properly aligned and properly centered) reference coordinate system, descriptions about the geometry of the object may be generated with respect to the reference coordinate system. This is performed by object model description generation unit 790. Such descriptions may include both the descriptions about the parts of the object as well as the descriptions about the spatial relationship among these parts.
With all the components in system 10 (
Based on the part models, the model for the entire object is created at act 860, which includes establishing a reference coordinate system and generating the geometric descriptions about the object with respect to the reference coordinate system. Based on the object model (or geometric descriptions about the object) created at act 860, a machine vision inspection tool is configured at act 870. The configured tool is then used to perform testing inspection on one or more test images of the object at act 880.
An evaluation is also carried out at act 880, to determine whether the testing inspection yields satisfactory performance. A decision is then made based on the evaluation. If the performance is satisfactory, the object model generated is stored at act 890. If the performance is not satisfactory, (optionally) more causes (for failure of the model) may then be further identified. A cause may be used to determine which act or acts need to be repeated to obtain an improved performance.
As depicted in
If the configuration parameters are correct (determined at act 910), the accuracy of the axes of the reference coordinate system is examined at act 920. If the accuracy of the reference coordinate system is not satisfactory, it may be because the alignment or the centering is not performed to a degree of satisfaction at act 860. In this case, a decision is made at act 960 to repeat all the acts starting from act 860 in
If the accuracy of the axes of the reference coordinate system is satisfactory, the accuracy of the part models for the object is examined at act 930. When the accuracy of the part models is not satisfactory, it may indicate that the part models are not accurate enough or the part refinement performed at act 850 did not produce accurate enough part models. In this case, a decision is made at act 970 to repeat all the acts starting from act 850 in
The next examination at act 940 determines whether there is any part or parts of the object that have not been modeled. There may be different reasons for missing a part model. For example, if an automatic tool is used to generate part models, the automatic tool may not detect a part of the object from the image due to, for instance, poor resolution. If there is any part model missing, a decision may be made at act 980 to repeat all the acts in
As can be seen from
During the model creation phase (acts 810 to 860), there may be different strategies in terms of what to generate and in what order.
A different embodiment for the model creation phase is illustrated in
One advantage of this embodiment is that generating and refining some of the part models in one iteration may enhance the part model generation in the next iteration. For example, referring to
Different versions of the model for the entire object may improve with the iteration because each new version of the object model generated in each iteration is based on more part models. In addition, each version of the object model created in a particular iteration may be used to enhance the part model generation and refinement at act 1230 and 1240 in the next iteration. This is because the alignment and centering results obtained at act 1245 in one iteration may help to locate parts of the object more precisely in the next iteration. In the last iteration of the embodiment illustrated in
There may be more different strategies besides the three exemplary embodiments described in
The invention may be implemented in hardware or a combination of hardware and software. The software may be recorded on a medium for reading into a computer memory and for executing. The medium may be, but is not limited to, for example, a floppy disk, a CD ROM, a writable CD, a Read Only Memory (ROM), and an Electrically Alterable Read Only Memory (EAPROM).
While the invention has been described with reference to the certain illustrated embodiments, the words that have been used herein are words of description, rather than words of limitation. Changes may be made, within the purview of the appended claims, without departing from the scope and spirit of the invention in its aspects. Although the invention has been described herein with reference to particular structures, acts, and materials, the invention is not to be limited to the particulars disclosed, but rather extends to all equivalent structures, acts, and materials, such as are within the scope of the appended claims.
Priority is claimed to Provisional Application No. 60/205,595, filed May 17, 2000, the content of which is hereby incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4980971 | Bartschat et al. | Jan 1991 | A |
5060276 | Morris et al. | Oct 1991 | A |
5113565 | Cipolla et al. | May 1992 | A |
5226095 | Okumura et al. | Jul 1993 | A |
5268999 | Yokoyama | Dec 1993 | A |
5343028 | Figarella et al. | Aug 1994 | A |
5371690 | Engel et al. | Dec 1994 | A |
5471541 | Burtnyk et al. | Nov 1995 | A |
5495537 | Bedrosian et al. | Feb 1996 | A |
5497451 | Holmes | Mar 1996 | A |
5500906 | Picard et al. | Mar 1996 | A |
5545887 | Smith et al. | Aug 1996 | A |
5602937 | Bedrosian et al. | Feb 1997 | A |
5621807 | Eibert et al. | Apr 1997 | A |
5625715 | Trew et al. | Apr 1997 | A |
5627912 | Matsumoto | May 1997 | A |
5627915 | Rosser et al. | May 1997 | A |
5663809 | Miyaza et al. | Sep 1997 | A |
5828769 | Burns | Oct 1998 | A |
5850469 | Martin et al. | Dec 1998 | A |
5974169 | Bachelder | Oct 1999 | A |
6084592 | Shum et al. | Jul 2000 | A |
Number | Date | Country | |
---|---|---|---|
60205595 | May 2000 | US |