WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Vision inspection system    
United States Patent4581762   
Link to this pagehttp://www.wikipatents.com/4581762.html
Inventor(s)Lapidus; Stanley N. (Bedford, NH); Dziezanowski; Joseph J. (Weare, NH); Friedel; Seymour A. (Goffstown, NH); Greenberg; Michael P. (Manchester, NH)
AbstractA vision inspection system operable with foreground illumination provides user identification of selected regions of a known object for later comparison to an unknown object. A gray scale pixel array of each selected region is processed for edges and this processed data array is stored as a template for each region. Gray scale illumination data from larger corresponding areas of the unknown object are processed for edges to form gradient maps. The first template is iteratively compared to the first gradient map. A correlation value greater than a threshold value causes the system to examine the second and possibly third gradient maps on the unknown object. Distance and angular relationships of the regions are used to both identify and orient the object under test. Once the unknown object is identified and its orientation determined, various visual attributes and measurements of the object can be determined through use of visual tools.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4581762
Vision inspection system - US Patent 4581762 Drawing
Vision inspection system
Inventor     Lapidus; Stanley N. (Bedford, NH); Dziezanowski; Joseph J. (Weare, NH); Friedel; Seymour A. (Goffstown, NH); Greenberg; Michael P. (Manchester, NH)
Owner/Assignee     Itran Corporation (Manchester, NH)
Patent assignment
All assignments
Publication Date     April 8, 1986
Application Number     06/572,570
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 19, 1984
US Classification     382/263 348/130 356/615 382/141 382/199 382/209
Int'l Classification     G06K 009/46
Examiner     Boudreau; Leo H.
Assistant Examiner     Mancuso; Joseph
Attorney/Law Firm    
Address
Parent Case    
Priority Data    
USPTO Field of Search     382/22 382/30 382/41 382/42 382/34 382/26 382/48 382/23 382/8 358/107 356/394 356/398 364/518 364/559
Patent Tags     vision inspection
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4433438
Couturier
382/266
Feb,1984

[0 after 0 votes]
4131879
Ehrat
382/135
Dec,1978

[0 after 0 votes]
3748644
Tisdale
382/201
Jul,1973

[0 after 0 votes]
3638188
Pincoffs
382/225
Jan,1972

[0 after 0 votes]
3636513
Tisdale
382/204
Jan,1972

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


Having described the invention, what is claimed is:

1. A vision inspection system for inspecting unknown objects in relationship to a known object and for performing various visual tests on the unknown object if it is recognized as corresponding to the known object, comprising:

A. vision sensing means for producing data representing the illumination values for viewed objects;

B. means for receiving data from the vision sensing means and for storing the image of objects under test;

C. means interconnected to the image storing means for viewing an imaged object;

D. means interfaced with the viewing means for selecting at least three regions of the known imaged object;

E. means interfaced with the image storing means for selecting regions on an unknown object, each region corresponding to one of the selected regions of the known object, each selected region on the unknown object having a size at least equal to the size of the corresponding region on the known object;

F. means interfaced with the image storing means for determining and storing gradient values based upon the rate of change of illumination values for each selected region of the known and unknown objects, said gradient values for each selected region of the known object called a template and for each selected region of the unknown object called a gradient map;

G. means interfaced with the gradient value determining means for determining the spatial and angular relationships between the templates;

H. means interfaced with the gradient value determining means and spatial and angular relationship determining means for overlaying the templates with the gradient maps and for determining the correlation value between each template and the corresponding gradient map, with the separation of said templates based upon the previously determined spatial and angular relationships of said templates;

I. means interfaced to the correlation value determining means for determining if each correlation value is greater than a predetermined value and if true, determining a composite correlation value of said correlation values;

J. means interfaced with the gradient value determining and storing means for moving the templates over each corresponding gradient map so that the correlation value means and composite correlation value means determine their respective correlation and composite correlation values throughout the entire area of each gradient map;

K. means interfaced with the composite correlation value determining means for determining the maximum composite correlation value, if any, and for determining the portions of each gradient map corresponding to this highest composite correlation value; and

L. input/output (I/O) means interfaced with the maximum correlation value determining means for controlling the disposition of the test object based upon the presence or absence of a maximum composite correlation value;

whereby the portions of each gradient map yielding the highest composite correlation value represent recognition of the object under test as corresponding to the known object.

2. A vision inspection system as defined in claim 1, wherein the means for determining gradient values uses a Sobel technique wherein for an array of illumination values denoted by ##STR9## the gradient is equal to

Grad=.vertline.Grad.sub.x .vertline.+.vertline.Grad.sub.y .vertline.;

where

Grad.sub.x =(c+2f+i)-(a+2d+f)

and where

Grad.sub.y =(a+2b+c)-(g+2h+i).

3. A vision inspection system as defined in claim 2, wherein the correlation value determined by the correlation means is defined by the equation:

Correlation=(Cross.times.Cross)/(AutoPatch.times.AutoTemp);

where Cross equals a number obtained by summing the results of multiplying each element in the template with the overlaid element in the gradient map and summing the products, where AutoPatch equals a number obtained by summing the results of multiplying each element in the overlaid portion of the gradient map times itself, and where AutoTemp equals a number obtained by summing the results of multiplying each element in the template with itself.

4. A vision inspection system as defined in claim 3, wherein the means for determining a composite correlation value derives a number obtained by multiplying the correlation value of the first template-gradient map pair by the other correlation values for the remaining template-gradient map pairs.

5. A vision inspection system as defined in claim 4, wherein the means for moving the templates over each corresponding gradient map executes the following steps:

1. determining the correlation value (first correlation value) between the first template and the first gradient map, starting at a first location on the gradient map and moving the template across the first gradient map until a correlation value is determined which is greater than said predetermined value,

2. determining the correlation value (second correlation value) between the second template and the second gradient map having a distance from the location of the first template at its then current position equal to the spatial distance between the first and second templates as determined on the known object, and moving this second template over the second gradient map as defined by an arc equal to this spatial distance, the arc having a predetermined angular size, until a correlation value is cbtained greater than said predetermined value,

3. determining a correlation value (third correlation value) between the third template and the third gradient map spaced and angularly positioned from the first and second templates in their then current positions as said template is spaced and angularly positioned on the known object, and if the correlation value is greater than the predetermined value, then determining the composite correlation value by said composite correlation value means,

4. continuing the movement of the second template with respect to the second gradient map throughout the entire arc length and if any correlation value is greater than the predetermined value, determining the corresponding third correlation value between the third template and the third gradient map as angularly and spatially determined by the current positions of the first and second templates, and

5. after completion of step 4, returning to step 1 and continuing steps 1-5 until the first template has been positioned over each portion of the first gradient map.

6. A vision inspection system as defined in claim 1, further comprising means for performing visual tests (representing visual tools) to a recognized test object based upon the placement and use of those visual tests on the known object.

7. A vision inspection system as defined in claim 6, wherein the input/output means further comprises means for further controlling the disposition of the test object based upon the results of the test procedures performed on the test object.

8. A vision inspection system as defined in claim 7, wherein one of the visual tests is a caliper test comprising means to allow the user to place a caliper image across two positions of an imaged known object and further comprises means for measuring the distance between corresponding positions as defined by their locations on the known object and wherein the results of this test procedure are further used as information for the input/output means for controlling the disposition of the recognized object.

9. A vision inspection system as defined in claim 7, further comprising visual tool means for determining the number of gradient values having magnitudes greater than a predetermined value within an area selected by the user with respect to the known object, wherein a corresponding area is tested on the recognized test object and wherein the number of gradient values having magnitudes greater than said predetermined value are compared to the corresponding number of gradient values for the known object and wherein the results of this test procedure are further used as information for the input/output means for controlling the disposition of the recognized object.

10. A vision inspection system as defined in claim 7, further comprising visual tool means for reading a multi-segment line display wherein said means allows the user to visually position a perimeter series of line segments (called a "jig") about the location of a multi-segment line display on an imaged known object and further wherein perpendicularly placed lines ("feelers") bisect each imaged line segment which is to be tested for presence or non-presence and wherein said visual tool means further comprises means for determining the presence or non-presence of line segments as positioned by said "feelers" on the recognized test object whose overall position on the test object corresponds to the placement of the multi-segment display on the known object and further wherein the results of this test procedure provide information to the input/output means for controlling the disposition of the recognized test object.

11. A vision inspection system as defined in claim 1, wherein the vision sensing means comprises at least one camera which images objects via frontal illumination.

12. A vision inspection system as defined in claim 11, wherein the means for viewing an imaged object comprises a monitor and wherein the means for selecting at least three regions on the known imaged object comprises a light pen, manipulatable by the user on the monitor.

13. A vision inspection system as defined in claim 12, wherein the gradient value determining means comprises an array processor for determining gradient values for the selected regions on the known and unknown objects and for determining the correlation values between overlaid portions of the templates with corresponding portions of the gradient maps.
 Description Submit all comments and votes
 


TECHNICAL FIELD

The present invention relates to a vision inspection apparatus and in particular such apparatus which can automatically determine the similarity and orientation between a known object and an object under test and can also perform various visual tests on the unknown object once it has been identified and its orientation determined.

BACKGROUND ART

A number of prior art devices have been developed to visually inspect objects so as to determine if they meet predefined criteria. Two basic types of vision inspection systems have been developed: those which use backlighting to silhouette the object and those which use frontlighting to observe the object as a variation of illumination across its surface area. The latter type of lighting produces an image, in black and white, known in the art as a gray scale since the observed image can vary in illumination throughout all shades of gray, including zero albedo (black) and 100 percent albedo (total reflectance).

Background illuminated vision systems provide for rather easy edge detection due to the rapid transition between illuminated regions outside of the object and non-illuminated silhouette regions obstructed by the object. When the edges are not so clearly distinguished, such as when an object is frontlighted, different techniques have been used on the gray scale image to develop an edge map. Such a map actually consists of a two-dimensional binary representation of the illumination level of the object. As set forth in a book entitled Basic Robotics Concepts by John M. Holland, Howard W. Sams and Company, 4300 W. 62nd Street, Indianapolis, Ind., pages 192-224, most methods for determining edges that use a gray scale image determine an edge map through use of a derivative and/or second derivative of the gray scale values in two dimensions. The use of differentiation to detect edges poses a noise problem since derivative signals are inherently susceptible to large transient values. As noted in the Holland text, E. C. Hildreth and D. Marr of the Massachusetts Institute of Technology have discovered that if the images are first smoothed through filtering at different spatial bandwidths, the resultant images when subjected to differential edge detection produce edge maps which can be correlated to find the edges of the real objects (see Hildreth, Helen C., Implementation of a Theory of Edge Detection, M.I.T. TR-579 and Marr, D. Vision, W. H. Freeman Company, San Francisco, Calif., 1981).

Another form of edge detection is known as the Sobel technique as described at page 337 of a book entitled Digital Image Processing by Gonzales and Wintz, published by Addison Wesley Company, 1977. For a 3.times.3 image defined by rows ##STR1## and the gradient at midpoint e is defined as

G=(G.sub.x.sup.2 +G.sub.y.sup.2).sup.1/2, (EQ 1-1)

or using absolute values

G=.vertline.G.sub.x .vertline.+.vertline.G.sub.y .vertline.;(EQ 1-2)

where

G.sub.x =(c+2f+i)-(a+2d+g) (EQ 1-3)

and

G.sub.y =(a+2b+c)-(g+2h+i) (EQ 1-4)

This technique for edge detection is used by the present invention. It has also been used by the General Motors Corporation in a vision inspection system called SIGHT-I, described in an article entitled "General Motors Inspects IC Chips" appearing in the May 1980 issue of Computer magazine, published by the Institute of Electrical and Electronics Engineers, Inc. (IEEE) Computer Society, Los Almitos, Calif. In the SIGHT-I system, the gradient information is only used to determine approximate rotation of an object under test and is not used as a general technique to compare two objects.

The SIGHT-I system also describes a technique for recognizing an object which is under test, in this particular case a small integrated circuit (IC) chip which has been bonded to a heat sink.

After the approximate orientation of the object is determined, the corners of the object are determined by the difference in illumination to be expected at corners; that is, the differences in illumination between darkness and lightness. Thus, for instance, the northwest corner of the chip should have white areas at its top and left sides. Four local illumination intensity templates are used to identify the characteristics of the four types of corners and are matched against each illumination pixel of the array using a weighting algorithm.

The actual corners are determined by the fixed relationship of the ob3ect since its actual shape is known. In the example with the integrated circuit chip, it is known that the corners comprise four 90.degree. angles, that the chip has specified dimensions and an approximate orientation angle. These characteristics are combined into a global template which is matched against sets of possible corners. An algorithm then calculates a "goodness of fit" figure for each set and selects the best fitting set as the actual corners.

Thus although gradient information is used to determine a probable orientation of the IC chip, illumination information is used to compare the corners of a known IC chip to potential corners of an IC chip under test. No gradient information is used to generate the corner templates nor to derive information about selected regions on the IC chip under test.

The present invention is distinguished from the GM technique since the present invention compares a known object to a test object by use of gradient information, not illumination information. By so doing, the system becomes immune to changes in ambient light or other paramenters that can affect absolute illumination values. The GM technique is not immune to such changes.

Furthermore, in the present invention, orientation of the object under test is determined by finding the angular and displacement differences between the selected points on the known object and the recognized points on the object under test. Overall gradient information of the object under test is not used, as in the GM system, to determine probable angular movement of the IC chip under test. Therefore the use of gradient information in the GM system is for a different purpose than its use in the present invention.

The present invention also provides means for using various visual tools for measuring or determining the presence of specified parameters or features on the object under test. Such parameters and features include a visual tool to measure the size of an object in a manner similar to that performed by mechanical calipers, a tool to determine an alphanumeric or other symbol displayed on an object through use of character segement recognition, a tool to locate the center of a hole within an object, a tool to measure the angle subtended by three points on an object, a tool to count the number of edges in a specified region as compared to a known object, and other tools which may be required for identification or measurement of an object typically in an industrial assembly or testing environment.

Therefore it is submitted that the present invention provides a new vision inspection system based upon the property of edges which allows for the rapid identification and orientation of an object under test as compared to a known object. By allowing the user to define the edge locations of an object for comparison to unknown objects, the system provides the flexiblility to meet the requirements of the user without being constrained by particular characteristics of the objects under test. Also, since only areas about selected locations are used in the recognition process, other areas of the object under test can vary without affecting this process. This feature of the present invention is valuable in inspection applications where only certain features of the object under test need correspond to a known object. Indeed such objects may not be subject to testing using other vision inspection techniques.

The present invention thus differs from other pattern recognition techniques including template matching in which the entire image of an object is stored in memory for comparison to images seen by the camera (see pages 205-207 of Basic Robotics Concepts, cited above). It also differs from techniques which are tolerant to orientation variations between a known object and an object under test such as those that use area, moments, and axes of minimum inertia as described in Basic Robotics Concepts, above, at pages 205-212, or through use of a technique known as moment invariants as described in Basic Robotics Concepts at pages 212-213 and the appendices thereto.

In distinction from pattern recognition techniques that use moments or moment invariants to determine a correspondence between two objects, the present invention uses points selected by the user to define those areas on a known object which characteristically represent that object. Such points are visually perceptible to the user, unlike the highly abstract nature of moments and moment invariants which have not direct visual representation.

Furthermore, by allowing points to be selected by the user on the known object, other portions of the object which may change in size or shape, can be ignored for purposes of recognition testing.

Indeed, the present invention need not know any particular information concerning the overall shape of an object provided that the object of interest can be defined by distinct edges. In many testing applications of component parts, this is all that need be performed in order to find and determine the orientation of an object under test. In most applications, however, the visual tools of the present invention are used once the object is identified and oriented. These tools provide valuable information required to perform automatic inspection. Such visual tools are a unique feature of the present invention and allow it to easily adapt to the particular needs of the user.

These visual tools and positioning locations provide a working environment that is familiar to people who traditionally use mechanical devices to measure and test objects. Thus the three positioning locations typically selected on the known object correspond to mechanical positioning pins used to orient an item to be tested. The visual tools of the present invention likewise correspond to such measuring instruments, such as calipers, used to mechanically measure objects.

It is submitted that the present invention provides a new technique and system for performing visual inspection of objects.

DISCLOSURE OF THE INVENTION

An automated vision inspection system is disclosed which allows the user to select points of a known object so as to be able to identify and orient objects under test. Once a test object is recognized and oriented with respect to the known object, desired visual measurements are automatically performed on the test object. The results of these measurements provide the means for making logical decisions regarding the ultimate disposition of the test object. The automated vision inspection system is therefore able to perform the tasks of a human inspector in a highly reliable and efficient manner.

In operation, the user first views a known object as displayed on a screen imaged by one or more video cameras. The image is stored in a frame grabber module which stores the image as pixels with six bits of illumination data. The user selects, via a light pen, three points on the imaged known object which preferably represent an abrupt surface illumination variation (i.e. rapid albedo variation) of the object. Such abrupt surface variations are generally referred to as "edges" throughout this text, and in many instances actually represent physical edges. The three selected points are used by the system in a manner analogous to positioning pins used in mechanical alignment systems. The selected points are typically located about or near the outer periphery of the known object. Such locations of rapid albedo variations are generally selected to represent a characteristic feature (i.e., edge) of the object that is independent of illumination position.

The selection of each location by the user then causes the system to store a 9.times.9 pixel region about the selected location. Based upon the illumination values of the respective pixels, the system computes the illumination gradient at each pixel within a 7.times.7 region enclosed by the 9.times.9 pixel region. The gradient value for each pixel within the 7.times.7 region represents the differential change in illumination in both Cartesian directions. This gradient information is stored and used as a template by the system since it more accurately represents the visual characteristics of the location selected by the user. The actual center point selected by the user is defined as the centroid of the template and is used to compute distances between it and two other points selected by the user. In addition, the angle subtended between the first point (centroid) and second and third points (centroids) is determined for later use in examining unknown objects. This angle in combination with the two lengths defines the vertices of the three points, which by definition, define a triangle.

Thus, once three points of a known object have been selected and their corresponding edge or gradient values determined, this information forms the basis to determine whether an unknown object corresponds to the known object.

In a typical manufacturing or inspection process, the unknown object (object under test) is viewed in an orientation substantially the same as that of the known object. This characteristic of the testing process allows the present invention's vision system to look at an enlarged pixel area typically comprising a 10% area of the unknown object as viewed by the particular imaging camera which overlaps the coordinates of the known object's computed point. This can be visualized as a rectangle having larger dimensions than the known object selected area (template). A gradient map of this larger rectangle is computed. The template of the known object is then placed over a portion of this gradient map in a manner conceptually similar to a window through which one looks at a portion of the gradient map. Once this has been done by the system, a correlation operation is performed between the template and the corresponding portion of the gradient map overlaid by the template. This process is repeated over the entire gradient map by moving the template across the larger gradient map one pixel at a time.

The greater the similarity between the template and the overlaid portion of the gradient map, the higher the correlation value. In order to normalize the computed correlation values, the square of each correlation value is divided by the auto-correlation of the template (called the Autotemp) times the auto-correlation of the overlaid gradient map (called the Autopatch, where "patch" is the patch of the gradient map overlaid by the template or "window").

If the correlation value computed is found to exceed some predetermined fractional amount of 100% correlation, then the system proceeds to determine if the distance from the center of this area equals the distance between the first and second centroids of the known object. In order to determine the direction of this line length, the first known object's second point is used as the center of an arc through which the system scans the unknown object, applying the same correlation test with the second point's template as that used for the first location. Typically this is done over a plus or minus five degree arc from the nominal position or the second point corresponding to the orientation of the second point on the known object. If a correlation for each template movement over this arc does not produce a correlation value greater than the predetermined amount, the system goes back to the first location, increments the movement of the template over the first gradient map, computes the correlation value with the first template, and continues this process until a site is found over the first gradient map which exceeds the predetermined threshold value. If such a site is located, another plus or minus five degree arc having a length equal to that between the first and second known points is used to test the second location with the second template in a manner described above.

When the second location correlation value exceeds the threshold value, two points have in essence been found on the unknown object which correspond to the known object by at least the threshold value. Since these two points are known and since the angle and distance of the third location on the known object is known with respect to the first and second points on the known object, a region on the unknown object corresponding to this second distance and angular relationship is defined. The correlation value at this region is determined with respect to the gradient values of the known object's third location template. If the correlation value exceeds the threshold value, then a composite value representing the correlation of all three determined points is computed and saved by the system. This composite value in essence represents a measure of the degree of confidence that the regions about these three points correspond to those on the known object.

In order to ensure that these three locations have the highest probability of actually corresponding to the three locations on the known object (that is, they best meet the spatial criteria of the known object), the template for the second location is incremented along the arc to determine if another location exceeds the threshold value. For each such location found, a candidate third location for the third gradient map is determined to see if it exceeds the threshold value. This process is continued for all locations along the arc in the second gradient map.

If three locations for the three gradient maps exceed the threshold value, then their composite correlation value is determined, and if greater than the previous composite value, it replaces that value along with the previous three points.

To further ensure that the three locations have the highest probability of actually corresponding to the three locations on the known object, the first template continues to be incremented over the unknown object's first location gradient map with correlation values computed. Whenever a correlation value exceeds the threshold value, the above steps are repeated. If three qualifying points are determined, a composite correlation value is computed, and if it exceeds the previously determined composite value, the latter composite value and the corresponding points are stored by the system to the exclusion of the previously computed values. The latter values in essence represent three locations on the unknown object which match those of the known object with a higher confidence factor.

This process is continued throughout the entire first gradient map. The three locations yielding the highest composite correlation value not only establish recognition of the object under test to the known object, but also establish the recognized object's orientation with respect to the known object by the angular displacement and translation of these locations from their nominal locations as viewed by the system for the known object.

In actuality the three points on the identified object provide the system with the mechanical analogy of three positioning pins which then provide the means for performing any one of a plurality of visual measurement tests (called visual tools) which the user may desire to be performed on the identified object. These tools include a visual caliper to measure the distance between two regions on the object, in a manner analogous to a mechanical caliper; a bar code reader to read a bar code on the object; a multi-segment reader to read an alphanumeric font on the object; and an area counter (also called a defect finder) to determine the number or edges (rapid albedo variations) in a defined rectangular area and to compare this number to a corresponding number for the known object. Other visual tools can be defined and implemented, including angle finders and hole center finders.

It will thus be appreciated that this vision inspection system provides the means to select characteristic points on a known object and thereby provides a more adaptable way to identify a known object. This in turn provides the means for more easily identifying and orienting an object under test in comparison to the known object.

Through use of gradient information regarding the illumination values or selected locations of both the known and unknown objects, immutable edge information is used by the system rather than the less reliable overall illumination values associated with the known and unknown objects. Under typical conditions the illumination values can readily vary due to parameters unrelated to the characteristic of the object under test, such as changes in illumination levels, changes in the positions of lights with respect to the objects, and shadows which are formed on the object under test due to outside disturbances. The present invention thereby uses gray scale information to determine gradient inrormation which represents the physical properties of the objects under test so as to facilitate comparisons of one object to another. Through use of gray scale illumination--typically in a range from 0 to 63 in overall magnitude--great variations in illumination values can be tolerated by the system while still providing reliable testing of one object vis-a-vis another object. In addition, through use of gray scale observation of an object, foreground illumination as distinguished from background illumination is used, thereby greatly reducing problems associated with test apparatus which require background silhouette illumination. These problems include the need for conveyor or other support apparatus to allow light to pass therethrough and problems due to changes in background illumination as a result of dirt or other environmental hazards.

The visual tools of the system provide the means to measure and inspect the identified objects for features or characteristics of interest. With this measurement and inspection information, the system is able to take appropriate action via an input/output module as to the disposition of the identified object.

Thus a vision inspection system is described which finds, identifies, measures, and inspects an object and takes appropriate action in response thereto in a manner analogous to a human inspector.

OBJECTS OF THE INVENTION

Therefore it is a principal object of the present invention to provide a vision inspection system that can emulate the decision-making processes and actions performable by a human inspector.

Another object of the present invention is to provide a vision inspection system of the above character that identifies a known object by the selection of three points on the known object and the determination of illumination gradient information corresponding to templates associated with each point, and using these templates and the geometric interrelationship of these points to determine if an object under test corresponds to the known object.

A further object of the present invention is to provide a vision inspection system of the above character that performs visual measurements of identified objects.

Another object of the present invention is to provide a vision inspection system of the above character in which visual measurements include visual tools that emulate mechanical measuring devices, including calipers and defect finders.

A still further object of the present invention is to provide a vision inspection system of the above character that includes a multi-segment character reader so as to read alphanumeric displays.

Another object of the present invention is to provide a vision inspection system of the above character that includes an input/output (I/O) module that controls the disposition of the object under test based upon the results of the inspection and visual tool tests.

A still further object of the present invention is to provide a visual inspection system of the above character in which the user instructs the system as to the desired test procedures through use of a light pen associated with a CRT monitor.

Another object of the present invention is to provide a visual inspection system of the above character having a tape driver for storing user test procedures and/or data on magnetic tape.

A further object of the present invention is to provide a visual inspection system of the above character which includes up to eight cameras to view various portions of a single object under test, or a plurality of objects under test.

Another object of the present invention is to provide a visual inspection system of the above character which uses an array processor to execute the majority of the mathematical computations necessary to inspect objects on a timely basis.

Other objects of the present invention will in part be obvious and will in part appear hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the nature and objects of the present invention, reference should be made to the following detailed description taken in connection with the following drawings in which:

FIG. 1 is an overall block diagram of the vision inspection system showing its interaction with a workstation where parts are visually inspected and sorted based upon the results of the inspection process;

FIG. 2 is a view of the cathode ray tube (CRT) screen showing an imaged part thereon and three points which a user has selected via the light pen shown in FIG. 1. It also shows, in phantom, the 9.times.9 pixel arrays about the selected points, search areas associated with and used in the recognition of unknown objects, and selected areas where area counter visual tests are to be performed on recognized objects;

FIG. 2A is a diagrammatic representation of a part having a light for which average intensity illumination is to be tested;

FIG. 3 is an enlarged diagrammatic representation of the 9.times.9 illumination intensity pixel array which surrounds a point selected by the user;

FIG. 4 is an enlarged diagrammatic view of the 7.times.7 template formed from the gradient computations made on the 9.times.9 pixel array shown in FIG. 3;

FIG. 5 is a diagrammatic representation of the nine illumination values whose center element is located at row 2, column 5 of the pixel array shown in FIG. 3; wherein these nine values are used in the process of determining one gradient value;

FIG. 6A is a diagrammatic representation of a search area of illumination pixel values on the unknown object used to evaluate a gradient map;

FIG. 6B is a diagrammatic representation of one of the unknown object's gradient maps derived from the illumination search area shown in FIG. 6A showing, in phantom, the movement of the template over the gradient map in the process of determining correlation values between the template and portions of the gradient map overlaid by the template.

FIG. 6C is a diagrammatic representation of the evaluation of the candidate locations on the unknown object based upon geometric information of the known object selected points;

FIG. 6D is a Cartesian diagram of the reference frames associated with the known and recognized objects.

FIG. 7 is a view of a portion of a CRT screen that has imaged a part, and also shown the user manipulating the caliper visual tool thereon;

FIG. 7A is a portion of a CRT screen that has imaged a part in which the user is manipulating the caliper tool to measure the distance between the center points of two holes;

FIG. 8 is a view of a character imaged on a CRT screen and the use of the seven-segment visual tool;

FIG. 9A is a detailed block diagram of the operations performed by the array processor shown in FIG. 1 so as to compute gradient information.

FIG. 9B is a detailed block diagram of the operations performed by the array processor so as to compute the correlation values between a template and a portion of a gradient map.

FIG. 9C shows the computed correlation values as a template moves across a gradient map.

FIG. 9D is a hypothetical representation of a template showing in phantom what the template values represent; and

FIG. 9E is a hypothetical representation of a gradient map showing in phantom what the gradient map values represent.

BEST MODE FOR CARRYING OUT THE INVENTION

As best seen in FIG. 1, vision inspection system 20 according to the present invention comprises a number of modules which interact to produce the desired result of defining, in terms of position points and visual tests (tools), a known object to form the basis for testing other (unknown or test) objects, including inspecting unknown objects to determine if they correspond to the known object, and if they do correspond (i.e., are recognized), performing the selected visual tests to those recognized objects. The system also presents output information regarding the test results of each tested object for use by external devices including controlling the disposition of the tested object.

As seen in FIG. 1, the basic blocks of the system are a frame grabber module 22, an array processor 24, a central processor unit (CPU) 26, a video output module 28, a bus 30, an I/O module 32, a programmer module 34, and a plurality of cameras 36. These modules and components are discussed in a separate section below.

Operation of the Visual Inspection System

The programmer module 34 provides the user with the necessary tools to instruct and use the overall visual inspection system 20. In this regard the module 34 comprises a cathode ray tube (CRT) 38 which displays the image 40' of part 40 as viewed by cameras 36. Part 40 corresponds to either the known object to form the basis for visual tests, or an unknown test object, to be tested for recognition, and if recognized as corresponding to the known object, visually tested with one or more visual tools. Depending upon the particular application and need for resolution, one or more cameras may be used to view part 40, up to a maximum of eight cameras. If multiple cameras are used, each camera views a different portion of the part. A light pen 42 (shown in exaggerated form in FIG. 1) is physically manipulated by the user and positioned on CRT screen 38 so as to pick out various points on the CRT image 40' of part 40 which correspond to points which are of particular interest to the user. These points are typically where an edge is located. They can also be places where the user wishes some visual test to be performed on an object. The light pen is also used to select various options displayed on CRT screen 38 which are available during the setup and operation of a test procedure.

To better understand the operation of the present invention, an example of a typical visual inspection process is presented. FIG. 2 shows one such typical application in which the visual inspection system is used to determine if a motor vehicle speedometer 47 is properly calibrated. Typical automobile production speedometers must have