A binary map of an object having edges is produced by first producing a digital grey scale image of the object with a given resolution, and processing the grey scale image to produce a binary map of the object at a resolution greater than said given resolution. Processing of the grey scale image includes the step of converting the 2-dimensional digital grey scale image with a filter function related to the second derivative of a Gaussian function forming a 2-dimensional convolved image having signed values. The location of an edge in the object is achieved by finding zero crossings between adjacent oppositely signed values. Preferably, the zero crossings are achieved by an interpolation process that produces a binary bit map of the object at a resolution greater than the resolution of the grey scale image. The nature of the Gaussian function whose second derivative is used in the convolution with the grey scale image, namely its standard deviation, is empirically selected in accordance with system noise and the pattern of the traces on the printed circuit board such that the resulting bit map conforms as closely as desired to the lines on the printed circuit board.
The convolution can be performed with a difference-of-two Gaussians, one positive and one negative. It may be achieved by carrying out a one-dimensional convolution of successive lines of the grey scale image to form a one-dimensional convolved image, and then carrying out an orthogonal one-dimensional convolution of successive lines of the one-dimensional convolved image to form a two-dimensional convolved image. each one-dimensional convolved image may be formed by multiple convolutions with a boxcar function.
|
0. 28. A method for inspecting a patterned surface, comprising:
forming a digital grey scale image of the patterned surface, said digital grey scale image having a given grey scale image spatial resolution; determining locations of edges within pixels in said digital grey scale image; producing a digital map of said electrical circuit with reference to said edges, said digital map having a digital map spatial resolution which is greater than said given grey scale image spatial resolution; and analyzing the digital map to detect defects in the patterned surface.
0. 23. A method for automated optical inspection of an electrical circuit, comprising:
forming a digital grey scale image of an electrical circuit, said grey scale image having a given grey scale image spatial resolution; determining locations of edges within pixels in said digital grey scale image; producing a digital map of said electrical circuit with reference to said edges, said digital map having a digital map spatial resolution which is greater than said given grey scale spatial resolution; and analyzing the digital map to detect defects in said electrical circuit.
0. 33. A process for analyzing a patterned surface, comprising:
developing a first collection of data elements, each data element therein representing one of a plurality of areas of said surface; and processing at least some data elements in said first collection in accordance with an optical characteristic of areas adjacent, in at least two non-parallel directions, to the area represented by a data element being processed to provide a second collection of data elements, each data element in said second collection representing a spatial location within one of said plurality of areas of said surface.
0. 36. A process for manufacturing an electrical circuit substrate, comprising:
depositing at least one conductive member on a surface of an electrical circuit substrate; forming a digital grey scale image of said electrical circuit substrate, said digital grey scale image having a given grey scale image spatial resolution; determining locations of edges within pixels in said digital grey scale image; producing a digital map of said electrical circuit substrate with reference to said edges, said digital map having a digital map spatial resolution which is greater than said given grey scale spatial resolution; and analyzing said digital map to detect defects in said electrical circuit substrate.
0. 17. A process for analyzing a surface, comprising:
developing a first collection of data elements, each data element in said first collection of data elements representing optical characteristics of one of a plurality of areas of a surface to be analyzed; modifying at least some of said data elements in said first collection of data elements in accordance with optical characteristics of areas adjacent, in at least two non-parallel directions, to the area represented by the data element being modified; and processing at least some of said modified data elements to provide a second collection of data elements each data element in said second collection representing a spatial location within one of said plurality of areas of said surface.
1. A process for producing a binary map of an object having a surface each elemental area of which has one or the other of two properties, said process comprising:
a) scanning said surface to obtain data representative of a grey scale image of said surface with a given spatial resolution; b) processing said data representative of said grey scale image to produce data representative of a map of said object having signed values that identify adjacent elemental areas of said surface having different properties, said map having the same spatial resolution as said grey scale image; and c) converting said data representative of a map of said object having signed values to a binary map of said surface with a spatial resolution higher than the spatial resolution of said grey scale image.
0. 37. A process for manufacturing an electrical circuit substrate, comprising:
depositing at least one conductive member on a surface of an electrical circuit substrate; developing a first collection of data elements, each data element wherein representing one of a plurality of areas of said surface; processing at least some data elements in said first collection in accordance with an optical characteristic of areas adjacent, in at least two non-parallel directions, to the area represented by a data element being processed to provide a second collection of data elements, each data element in said second collection representing a spatial location within one of said plurality of areas of said surface; and analyzing said second collection of data elements to detect defects in said electrical circuit substrate.
0. 35. A process for manufacturing an electrical circuit substrate, comprising:
depositing at least one conductive member on a surface of an electrical circuit substrate; developing a first collection of data elements, each data element therein representing one of a plurality of areas of said surface; modifying at least some of said data elements in said first collection of data elements in accordance with optical characteristics of areas adjacent, in at least two non-parallel directions, to the area represented by the data element being modified; processing at least some of said modified data elements to provide a second collection of data elements each data element in said second collection representing a spatial location within one of said plurality of areas of said surface; analyzing said second collection of data elements to detect defects in said electrical circuit substrate.
15. A process for producing a binary map of an object having a surface each elemental area of which has one or the other of two properties, said processing comprising:
a) scanning said surface to obtain data representative of a grey scale image of said surface with a given resolution; b) convolving said data representative of said grey scale image to produce a convolution map of said object having signed values; c) producing from said data representative of said grey scale image, a binary gradient-enable map for identifying pairs of contour pixels which are pixels homologous to elemental areas of said surface having different properties, and a binary adjacency map for identifying pixels whose neighboring pixels have a grey level gradient exceeding a threshold; and using said gradient-enable map and said adjacency map to create a binary of said surface with said given resolution; and e) interpolating said binary map to form a binary map of said object with a resolution higher than the resolution of said grey scale image.
16. A process for off-line production of a threshold function comprising:
a) scanning an object having a surface each elemental area of which has one or the other of two properties to obtain data representative of a grey scale image of said surface; b) processing said grey scale image to obtain data representative of a binary image in which pixels homologous to elemental areas of said surface at which transitions of said properties occur have a given state and the remaining pixels have the opposite state; c) convolving said data representative of said grey scale image to produce a convolution score image in which the value of each pixel is dependent on the value of its eight neighbors as determined by a look-up table; d) identify contours in said convolution score image; e) classify each contour as being good, bad, or unsure; f) calculate for each pixel in the grey scale image, an ordered pair of numbers; g) plot the ordered pair of numbers for each contour pixel that in not classified as being unsure; h) compute a threshold function from the plotted ordered pairs of numbers as a function that minimizes both the number of points associated with pixels from good contours that are below the threshold function, and the number of points associated with pixels from bad contours that are above the threshold function.
2. A process according to
3. A process according to
data includes convolving with a filter function that approximates the second derivative of a Gaussian function.
4. A process according to
5. A process according to
8. A process according to
9. A process according to
10. A process according to
11. A process according to
12. A process according to
13. A process according to claim i 1 wherein the process of converting data to said binary map includes assigning states to those binary map pixels whose states are capable of being classified unambiguously, including those binary map pixels that are homologous to elemental areas of said surface identified in step (b) of
14. A process according to
0. 18. The invention of
creating a grey scale bitmap of said surface.
0. 19. The invention of
applying a filter function to said some of said data elements in said first collection.
0. 20. The invention of
interpolating between said modified data elements to locate said boundaries.
0. 21. The invention of
developing a plurality of binary data elements for each of some of said data elements.
0. 22. The invention of
developing a bitmap of said surface, each element of said bitmap representing one of said spatial locations.
0. 24. A method for inspecting an electrical circuit according to
0. 25. A method for inspecting an electrical circuit according to
0. 26. A method for inspecting an electrical circuit according to
0. 27. A method for inspecting an electrical circuit according to
0. 29. A method for inspecting a patterned surface according to
0. 30. A method for inspecting a patterned surface according to
0. 31. A method for inspecting a patterned surface according to
0. 32. A method for inspecting a patterned surface according to
0. 34. A process for analyzing a patterned surface according to
|
This application is a continuation-in-part of application Ser. No. 061,344 filed May 17, 1993, now U.S. Pat. No. 5,774,572, which is a continuation of application Ser. No. 961,070 filed Oct. 14, 1992 (now abandoned), which is a continuation of application Ser. No. 804,511 filed Dec. 10, 1991 (now abandoned), which is a continuation of application Ser. No. 684,583 filed Dec. 20, 1984 (now abandoned). The subject matter in the parents of the present application is hereby incorporated by reference.
This invention relates to automatic visual inspection systems, and more particularly to systems for inspecting printed circuit boards, hybrid boards, and integrated circuits.
In its simples form, a printed circuit board or panel comprises a non-conductive substrate on one or both surfaces of which are deposited conduit tracks or lines in a pattern dictated by the design of the electronic equipment supported by the board. More complex boards are constructed by laminating a number of single panels into a composite or multi-layered board; and the use of the latter has increased dramatically in recent years and an effort to conserve space and weight.
As component size has shrunk, component density on boards has increased with the result that line size and spacing have decreased over the years. Because of the "fine geometry" of modern boards, variations in line width and spacing have become more critical to proper operation of the boards. That is to say, minor variation in line thickness or spacing have a much greater chance to adversely affect performance of the printed circuit board. As a consequence, visual inspection, the conventional approach to quality control, has employed visual aids, such as magnifiers or microscopes, to detect defects in a board during its manufacturer. Such defects would include line width and spacing, pad position relative to hole location, etc. Unfortunately, visual inspection is a time consuming, tedious task that causes operator fatigue and consequential reduction in consistency and reliability of inspection, as well as throughput.
Because multi-layered boards cannot be tested electrically before lamination, visual inspection of the component panels of a multi-layered board before lamination is critical. A flaw in a single layer of an assembled board can result in scrapping of the entire board, or involve costly, and time consuming rework. Thus, as board complexity and component density and production requirements have increased, automation of manufacturing processes has been undertaken. However, a larger and larger fraction of the cost of producing boards lies in the inspection of the boards during various stages of manufacture.
Automatic visual inspection techniques have been developed in response to industry needs to more quickly, accumulately and consistently inspect the printed circuit boards. Conventional systems include an electro-optical sub-system that intensely illuminates a board being inspected along a narrow strip perpendicular to the linear displacement of the board through the system, and a solid state camera that converts the brightness of each elemental area of the illuminated strip, termed a pixel, to a number representative of such brightness; and the number is stored in a digital memory. Scanning of the entire board is achieved by moving the board relative to the camera. The result is a grey scale image of the board, or part of the board stored in memory. A relatively small number in a cell of the memory represents a relatively dark region of the object (i.e., the substrate), and a relatively large number represents a brighter portion of the object, (i.e., a conductive line).
The contents of the memory are processed for the purpose of determining the location of transitions between bright and dark regions of the object. Such transitions represent the edges of lines and the processing of the data in the digital memory is carried out so as to produce what is termed a binary bit map of the object which is a map of the printed circuit board in terms of ZERO's and ONE's, where the ONE's trace the lines on the printed circuit board, and the ZERO's represent the substrate. Line width and spacing between lines can then be carried out by analyzing the binary map.
The time required to scan a given board, given a camera with a predetermined data processing rate, typically 10-15 MHz, will depend on the resolution desired. For example, a typical camera with an array of 2048 photodiodes imaging a board is capable of scanning a one inch swarth of the board in each pass if a resolution of ½ mil is required. At 0.5 mil resolution, a swath one inch wide is composed of 96 million pixels. Assuming camera speed of 10 MHz, about 10 seconds would be required for completing one pass during which data from one swath would be acquired. If the board were 18 inches wide, then at least 18 passes would be required to complete the scan of the board. More than 18 passes is required, however, to complete a scan of the board because an overlap of the passes is required to insure adequately covering the "seams" between adjacent passes. Combined with overhead time required, e.g., the time required to reposition the camera from swath to swath, data acquisition time becomes unacceptably large under the conditions outlined above.
The basic problems with any automatic visual inspection system can be summarized in terms of speed of data acquisition, amount of light to illuminate the board, and the depth of field of the optical system. Concomitant with increased requirements for reducing pixel size (i.e., increasing resolution) is an increase in the amount of light that must be supplied to a pixel to maintain the rate of data acquisition. Physical constraints limit the amount of light that can be concentrated on the printed circuit boards so that decreasing the pixel size to increase resolution and detection variations in line width or spacing of "fine geometry" boards, actually slows the rate of data acquisition. Finally, decreasing pixel size, as resolution is increased, is accompanied by a reduction in the depth of field which adversely affects the accuracy of the acquired data from board to board.
It is therefore an object of the present invention to provide a new and improved automatic visual inspection system which is capable of acquiring data faster than conventional automatic visual inspection systems, and/or reducing the amount of illumination required for the board, and increasing the depth of field.
It is a further object of the present invention to provide a new and improved automatic visual inspection system which is capable of accurately interpreting information when the object being inspected has regions of different contrast, precision of focus, and other surface conditions.
According to the present invention, a binary map of an object having edges is produced by first producing a digital grey scale image of the object with a given resolution, and processing the grey scale image to produce a binary map of the object at a resolution greater than said given resolution. If the ultimate resolution required is, for example, one mil (0.001 inches), then, the resolution of the digital grey scale image can be considerably less than one mil, and may be, for example, three mils. The larger than final pixel size involved in acquiring data from an object permits objects to be scanned faster, and either reduces the amount of light required for illuminating the objects or permits the same amount of light to be used thus decreasing the effect on accuracy of noise due to statistical variations in the amount of light. Finally, increasing the pixel size during data acquisition improves the depth of field and renders the system less sensitive to variations in the thickness of the boards being tested.
Processing of the grey scale image includes the step of convolving the 2-dimensional digital grey scale image with a filter function related to the second derivative of a Gaussian function forming a 2-dimensional convolved image having signed values. The location of an edge in the object is achieved by finding zero crossings between adjacent oppositely signed values. Preferably, the zero crossings are achieved by an interpolation process that produces a binary bit map of the object at a resolution greater than the resolution of the grey scale image. The nature of the Gaussian function whose second derivative is used in the convolution with the grey scale image, namely is standard deviation, is empirically selected in accordance with system noise and the pattern of the traces on the printed circuit board such that the resulting bit map conforms as closely as desired to the lines on the printed circuit board.
The convolution can be performed with a difference-of-two-Gaussians, one positive and one negative. It may be achieved by carrying out a one-dimensional convolution of successive lines of the grey scale image to form a one-dimensional convolved image, and then carrying out an orthogonal one-dimensional convolution of successive lines of the one-dimensional convolved image to form a two-dimensional convolved image. Each one-dimensional convolved image may be formed by multiple convolutions with a boxcar function.
Detection of the presence of lines less than predetermined minimum width can be accomplished, independently of the attitude of the lines in the bit map by superimposing on an edge of a line, a quadrant of a circle whose radius is the minimum line thickness. By ANDing he contents of pixels in the bit map with ONE's in the corresponding pixels in the superposed quadrant the production of a ZERO indicates a line width less the predetermined width. A similar approach can be taken to detect line spacings less than a predetermined minimum. One quadrant is used for lines and spaces whose are oriented on the board lies between 0°C and 90°C, and another quadrant is used for orientations between 90°C and 180°C.
The processing of the grey scale image by convolving with the filter function of the present invention produces a binary map of the object in terms of transitions between brighter and dimmer elements in the object. To complete the map, the non-transition pixels must be assigned binary values that match the nature of the homologous pixels in the object. That is to say, all of the pixels that define traces should have the same binary value, and all of the pixels that define the substrate have the opposite binary value.
The present invention utilizes a threshold function in establishing an attribute of each pixel in the grey scale object. Such attribute assists in the assignment of binary values to the pixels in the binary map of the object. In one aspect of the invention, the threshold function is a constant function of grey level and is location independent, and in another aspect of the invention, the threshold function is a non-constant function of grey level and is location dependent.
An embodiment of the present invention is shown in the accompanying drawings wherein:
Referring now to the drawing, reference numeral 10 designates a conventional printed circuit board comprising substrate 11 on one surface of which are deposited conductive tracks or lines 12 in a manner well known in the art. A typical board may have 3 mil lines, and spacing between lines of a comparative dimension.
As is well known, the technique of depositing lines 12 on substrate 11 involves a photographic and etching process which may produce a result shown in
The photoetching process involved in producing lines on a printed circuit board sometimes results in the spacing s being less that the design spacing. In such case, quality control should reject the board or note the occurrence of a line spacing less than the specified line spacing.
In order to achieve these and other ends, conventional automatic visual inspection systems will produce the results shown in FIG. 4. That is to say, a greyscale image of the printed circuit board will be obtained and stored in a digital memory, the resolution of the grey scale image being selected to be consistent with the accuracy with which measurements in the image are to be made. Thus, if the requirements is for measuring the edge 13 of a trace to within say 1 mil, then the resolution of the grey scale image should be less than that, say 0.5 mil.
Curve 14 in
Conventionally, an algorithm is used for the purpose of determining within which pixel an edge will fall and this is illustrated by the assigned pixel values in vector 18 as shown in FIG. 4. That is to say, value 15a is assumed to exceed a predetermined threshold; and where this occurs, a bit map can be established based on such threshold in a manner illustrated in FIG. 4. Having assigned binary values to the bit map, the edge is defined as illustrated by curve 16 in FIG. 4.
One of the problems with the approach illustrated in
In other words, for a given pixel size, identifying the transition as occurring at location 17 in the bit map rather than at adjacent location 21, depends upon the selected threshold. Note that the pixel size of the grey scale image in the prior art is the same as the pixel size in the bit map.
The present invention contemplates using larger pixels to acquire the grey scale image of the printed circuit board than are used in constructing the bit map while maintaining resolution accuracy. Using relatively large pixels to acquire the data increases the area scanned by the optical system in a given period of time as compared to the approach taken with a conventional device. This also increases the amount of light incident on each pixel in the object thus decreasing the effect of noise due to statistical variations in the amount of light incident on the pixel. Finally, this approach also increases the depth of field because of the larger pixel size accommodating larger deviations in board thickness.
Apparatus in accordance with the present invention is designated by reference numeral 30 and is illustrated in
Linear light source 36, shown in cross-section in
The output of circuit 45, which is serial, is a representation of the grey scale image of the object, namely surface 39 of board 31. This grey scale image is developed line by line as board 31 is moved with respect to the electro-optical sub-system 32. The function of preprocessor 70 is deferred; and at this time, it is sufficient to state that the digital values of the brightness of the elemental areas of the object are stored in a digital memory that is a part of convolver 47 whose operation is detailed below.
Referring at this time
Convolver 47 carries out, on the digital data representative of the grey scale image of the printed circuit board, a two-dimensional convolution with the second derivative of a Gaussian function, or an approximation thereof, producing in the associated memory of the convolver, a convolved image of the object having signed values.
The precise location of the zero crossing need not be determined, only the pixel within which the crossing occurs is necessary. In order to make a direct comparison with the conventional technique illustrated in
Reference is now made to
where where the quantity A represents the magnitude of the convolved image at 54, B represents the magnitude of the convolved image at data point 53, a represents the dimension of a pixel, and b represents the distance of the zero crossing from data point 54. The object of this exercise is to assign a binary value to bits associated with data points 53 and 54, as well as the two interpolated data points 58 and 59. The binary values for data points 54 and 53 are known and they are ZERO and ONE respectively as shown in FIG. 7. What is unknown is the value associated with the interpolated data points 58 and 59, these values being indicated by the quantities x1 and x2. By inspection of Eq. (1), one can see that if b lies within the interval between zero and a as shown in
Below curve 56 in
In actual practice, a two-dimensional convolution of the grey scale image with a two-dimensional second derivative of a Gaussion is carried out. The result is a two-dimensional convolved image of signed values; and interplation is carried on this convolved image as indicated in
Returning now to
As indicated previously, the signed values of the convolved image are different from essentially zero only in the vicinity of transitions or edges in the object image. No information is contained in the convolved image by which a determination can be made that a pixel containing an essentially zero value is derived from a pixel associated with the substrate or from a pixel associated with a line. Thus, the edges of lines can be accurately determined by the process and apparatus described above, but the attribute of pixels remote from an edge (e.g., pixels farther than the radius of the derivative of the Gaussian operator) is unknown. The purpose of pre-processor 70 is to furnish an attribute to interpolator 65 to enable it to assign a binary value to each bit of the bit map in accordance with whether its corresponding pixel is located in a line or in the substrate. Thus, pre-processor 70 applies to each pixel in the grey scale image a threshold test and stores in associated memory 71 a record that indicates whether the threshold is exceeded. The threshold will be exceeded only for pixels located in a line on the printed circuit board. When convolver 47 produces the convolved image of the grey scale image of the board, the address of each pixel lying in a line on the board is available from memory 71. Thus, the attribute of each pixel in the bit map can be established. It is determined directly by the convolution sign near a zero-crossing, and by the threshold test farther away from the zero-crossing. This is because unavoidable variations in contrast which always exist cause the threshold test to be inaccurate. This is particularly true near an edge transition where large variations in contrast exist. In the method described here, therefore, the threshold test is used only for pixels completely surrounded by dark or light areas. The attributes of pixels near the transition are determined, on the other hand, directly by the convolution sign.
The present invention also contemplates determining whether any line on the board has a portion with a thickness less than a predetermined value, regardless of the orientation of the line relative to the axes defining the pixel orientation. This result is achieved in the manner illustrated in
In practice, analysis of line width can be carried out automatically by sequentially applying the principles set forth above to each point on the edge of a line. A record can be made of each pixel in the bit map at which a ZERO detection occurs in the offset address, and hence the coordinates of each point on the board having too narrow a line can be determined and stored. It should be noted that the technique disclosed herein is applicable to any line on the board at any orientation.
The principles described above are equally applicable to determining whether the spacing between lines is less than a predetermined minimum. In this case, however, the imaginary cycle is placed at at edge of a line such that it overlies the substrate, and the presence of a ONE in the offset addresses indicates reduced spacing.
The convolution function used in the present invention need not be a 2-dimensional function, and the convolution operation need not be carried out in one step. Rather, the function may be the difference of Gaussian functions, one that is positive, and one that is negative. The convolution operation can be carried out in two steps: convolving with the positive Gaussian function, and then convolving with the negative. Implementing this, the effect of convolution can be achieved by multiple convolving a a line of data in the grey scale image with a boxcar function in one dimension, and then convolving the 1-dimensional convolved image with a boxcar function in an orthogonal direction.
In order to facilitate two dimensional filtering, or the convolution operation as described above, apparatus 100 shown in
The operation of apparatus 100 is based on a mathematical theorem that states that a 1-dimensional convolution of a given function with a Gaussian function can be closely approximately by multiple 1-dimensional convolutions of the given function with a boxcar function (i.e., a function that is unity between prescribed limits and zero elsewhere). This procedure is described in Bracewell, R. N. The Fourier Transform and Its Applications, McGraw-Hill Inc., 1978, chapter 8. Application of this theorem and its implementation to the grey-scale image of the board is achieved in the present invention by apparatus 100 which comprises a plurality of identical convolver unit modules, only one of which (designated by numeral 101) is shown in detail. Each module accepts a stream of values from a scanned two dimensional function, and performs a partial filtering operation. The output of that module is then fed to the next module for further filtering.
Each module contains a shift register made of many (e.g., 2048) cells which are fed sequentially with a stream of grey level values from the camera. Under control of pulses from a clock (not shown), the contents of each cell is shifted (to the right as seen in
Another embodiment of convolver, shown in
The horizontal block of apparatus 110 contains m units, each of which performs partial horizontal filtering or convolution. Two adjacent samples in cells 112 and 113 are summed by adder 114 which represent here the boxcar function. The output of the adder is fed into output cell 115. Cascading many horizontal units performs a 1-dimensional horizontal filtering. The output of the horizontal block is then fed into the vertical block.
The vertical block is made of identical units, each of which performs partial vertical filtering. Apparatus 116 shows one vertical unit. The signal is fed into the input cell 117. The output of that cell is down shifted along the shift register 118. Adder 119 adds the output of the shift register and the output of cell 117. The output of module 116 is fed into the input of the next module. The vertical modules perform a 1-dimensional convolution on the output of the horizontal module, completing in this manner a 2-dimensional convolution on the grey-scale image. All memory cells in the vertical or horizontal units as well as all shift registers are pulsed by a common clock (not shown) feeding the value of each cell into the adjacent cell.
The above described apparatus performs repeating convolutions with a boxcar function comprised of two adjacent pixels, the convolution can be achieved using a boxcar function comprising more than two adjacent pixels. This can be achieved, for example, by increasing the number of sampling cells and the number of shift registers, and consequently also increasing the number of inputs entering the adders per module.
As previously indicated, the convolution process requires a 2-dimensional convolution with the differences between Gaussian functions and this can be achieved in the manner indicated in
Finally, while the invention has been described in detail with reference to optical scanning of printed circuit boards, the inventive concept is applicable to other optical scanning problems, and more generally, to any 2-dimensional convolution problem. For example, the invention can be applied to inspecting hybrid boards as well as integrated circuits.
As described above, compensation circuit 45 supplies information to pre-processor 70 and memory 71 in order to effect conversion of the convolution sign map in interpolator memory 65 to a binary map of an object (e.g., a printed circuit board) in binary bit map 34 in order to accurately depict edges or contours (e.g., tracks in the case of printed circuit boards). The is process of conversion, called "binarization" of the pixels, may assign the value "ONE", for example, to pixels associated with metal traces, and the value "ZERO" to pixels associated with the substrate.
In the embodiment shown in
With many printed circuit boards, binarization using a fixed threshold applied globally will produce satisfactory results. However, as printed circuit boards become larger and more complex, and substrate material more exotic, it sometimes occurs that the grey scale value of a pixel from a metal element in one portion of a printed circuit board will have a value not significantly different from that of a pixel from a substrate element in another portion of the board. That is to say, if a single board has regions where the contrast between the tracks and the substrate differs, different thresholds would be required for the regions in order to obtain the proper attributes that would accurately reproduce all of the tracks on the board. The same situation occurs when the precision of focus of the optical system is different in different regions of a printed circuit board. Additionally, the problem is present when a single board contains regions of many fine, closely spaced tracks, and regions where the width of and spacing between the tracks are greater.
Reference is made to
Under the conditions described above, when fixed thresholding will not produce satisfactory results, a second embodiment of the present invention can be utilized. In this embodiment, a two-step binarization process is employed for classifying pixels as "white" (i.e., metal), or "black" (i.e., substrate).
In the first of the two-step process, those pixels capable of being classified unambiguously as either "white" or "black" are so classified, and the remaining pixels are tentatively classified as "other". The second step (called "painting") classifies each of the "other" pixels as either "white" or "black" by extending regions of pixels previously unambiguously classified as being "white" or black" according to present rules.
Unambiguous classification of pixels is achieved in two ways. One way involves identifying pixels near an edge or contour using grey-level data obtained by scanning. The other way involves identifying pixels that are surrounded by very high, or very low, grey-level values, and applying of-line calibration information in deciding the classification.
Pixels near an edge can be identified based on large scale transitions in grey scale values of adjacent pixels. Where such transitions occur in adjacent pixels, pixels with higher value grey scale values would be classified unambiguously as "white". Those with lower values would be classified unambiguously as "black".
For example, the grey scale map may contain a region where the grey scale level of the pixels changes abruptly from a low value, say 40-50 units, to a high value, say 80-90 units which indicates an edge. In this region, pixels with values in excess of 80 units would be classified as "white", and pixels with lower vales values would be classified as "black". In another region of the map, the grey scale level of the pixels may change abrubptly from a relatively higher value, say 70-80 units, to an even higher value, say 120 units of more indicating an edge. Insuch case, pixels with values of 80-120 units would be classified as "black", and pixels with values of 120 units or more would be classified as "white", etc.
As described in detail below, the first step in binarization according to the present invention involves comprising as ordered pair of numbers termed grey-level and grey-level differences for each pixel, and looking for sharp transitions. At locations where they occur, pixels are classified as "black" and "white" unambiguously based on the convolution values obtained as described previously. Negative convolution values permit unambiguous classification of the pixels as "black"; and positive convolution values permit unambiguous classification of the pixels as "white".
Pixels surrounded by very high, or very low, grey-level values can be identified directly from the grey-level values themselves. By carrying out an off-line calibrations that involves scanning a representative printed circuit board, the highest value of any substrate pixel can be determined. Any pixel, and its 3×3 neighbors, with an on-line grey level value in excess of this calibration value, can be classified unambiguously as "white". Similarly, any pixel, and its 3×3 neighbors, with an on-line grey level below the calibration value can be classified unambiguously as "black".
By following the first classification step of the present invention, all of the pixels are classified into unambiguous "white", unambiguous "black", and "other" categories. The second classification step of the present invention extends the regions of the previously classified "black" and "white" pixels using a number of preset rules. For example, if a pixel p is classified as "other", but its grey-level is lower than the grey level of a neighboring pixel q that is already classified as "black", then pixel p will be classified as "black", etc.
The largest of the four absolute value difference identifies the direction of greater change in grey level about the selected pixel "A". In this direction, the average grey-level of the appropriate two pixels is computed as (gavg)A, and the difference between the grey levels of these pixels is computed as (dmax)A. By following this procedure, an ordered pair of numbers gavg, dmax can be computed for each pixel in the grey level map. The ordered pair of numbers so obtained for each pixel is plotted against a threshold function (T.F.) obtained by a calibration process that is described on detail below. By its nature, the T.F. is dependent on the grey level of a pixel and its location. As shown in
where Dmin, Dmax, and the step variation are determined according to an off-line calibration process described below.
Point 321 represents the point on the grey-level/grey-level-difference plane associated with pixel "A". Because this point lies above the threshold function 322, pixel "A" represents part of a track, and would be assigned the value ONE in what is termed a gradient-enable binary map. On the other hand, point 323, based on some other pixel, lies below curve 322; and the value ZERO would be assigned to the pixel associated with point 323 indicating this pixel represents the substrate.
The threshold function for a given printed circuit board is not arbitrary, but is closely related to the particular board and the configuration of the tracks thereon. That is to say, the threshold function is determined from an off-line calibration process based on analyzing one, but preferably, a number of identical actual boards to be inspected. The procedure to obtain the threshold function for a particular board is listed in
As indicated in
For the purposes of calibration, the convolution sign image is processed in step 326 to obtain a convolution score image or map in which the value of each pixel in the convolution sign map is evaluated by taking into account the convolution signs of its eight neighbors to the end that the pixel in the convolution score map reflects the a priori probability that the pixel is part of a valid edge neighborhood. This is implemented in a look-up table whose address is the nine bits of the convolution sign on the 3×3 matrix of pixels. The contents of the look-up table is computed in a different off-line process that is done beforehand by human judgment and evaluation of all possible 29 combinations. The judgment may be biased on the following criteria: if the 3×3 neighborhood can be partitioned into two connected regions, one with positive convolution signs and the other with negative convolution signs, then the configuration represents a valid edge neighborhood. FIGS. 16(a)-(c) represent some configurations for valid edges. Representative configurations that are not valid edge neighborhoods are illustrated in FIGS. 17(a)-(c).
After step 326 is carried out, contours in the convolution score map are evaluated as indicated in step 327. A contour in this context, is composed of pairs of connected pairs of contour pixels. A pair of contour pixels is a pair of adjacent pixels of opposite sign. Pairs of contour pixels are connected if their pixels are adjacent at four sides.
Each of
The calibration process involve grading the contours after they are located and the connected pairs of pixels are identified. The grading is a score assigned to the collection of pixels that make up a contour according to the probability that the contour is a contour in the object. The score is based on a ratio of contour length (in pixels) to "bad" indications along the contour. The "bad" indications are described below, suffice it to say at this point that, after the contours have been scored, they are divided into three groups according to their score. "Good" contours are contours with high scores; "bad" contours are contours with low scores; and "unsure" contours are contours with intermediate scores. Contour 328 in
All the pixels have ordered pairs of numbers associated therewith according to step 324. Only those pixels associated with "good" and "bad" contours are mapped into points in the grey-level-difference/grey-level plane as shown in FIG. 20. However, the mapping is done so that "good" contour pixels are separately identified from "bad" contour pixels. This is shown in
A threshold function is then plotted having the form:
More specifically, the threshold function is one that minimizes both the number of points associated with pixels from good contours that are below the threshold function, and the number of points associated with pixels from bad contours that are above the threshold function. Points associated with pixels from good contours which fall below the threshold function, and points associated with pixels from bad contours which fall above the threshold function, are termed pixels violations; and the threshold function that is selected is one that minimizes the number of pixel violations. In this manner, the values of Gmin, Gmax, Dmin, Dmax, and the step variation between Gmin, Gmax are determined.
As indicated above, the procedure for scoring contours during the calibration process is based on determining the ratio of contour length in pixels to bad indications along the contour. A bad indication may be one of the following: (a) a junction, which is a place where the contour crosses itself as shown in
Apparatus for taking into account objects with location dependent threshold functions is shown in
The convolver circuit, as described above, processes the grey level image and produces, for each pixel, a convolution value which is a signed number. In the preferred embodiment, the signed number is a 9-bit signed integer lying between -256 and +258. The map may be an implementation of difference-of-Gaussians (DOG) computation, which roughly speaking, shows the amount of total curvature of the grey-level image when considered as a topological surface.
Pre-processor 70a operates on the same input as the convolver, and produces, for each input pixel, two maps: a gradient-enable map, and an adjacency map, both of which are described in detail below. The two computation are carried out in the same circuit for reasons of convenience, because they share common tasks, mainly the task of determining the four gradients around a given pixel.
Computation of the gradient-enable map is described with reference to FIG. 22. The first task is to compute the absolute values of differences of grey-levels along the two principal principle and the two diagonal directions, and from this information, the coordinates gavg and dmax for each pixel can be computed as described in connection with FIG. 14. Pixels that are mapped into a point above the threshold function graph are designated as gradient-enable pixels; and all others as gradient-disable pixels. The gradient-enable map so obtained is stored in memory 71.
Threshold register 201 in
Computation of the adjacency map is described with reference to
The input to convolution processor 200 consists of several image maps as detailed below; and additional maps are computed during its operation. The final output of processor 200 is a revised convolution map that agrees with the original convolution map produced by circuit 47 as to contour pixels, to allow proper interpolation and precise localization of the contours, and may have revised values in other areas of the image. The nature of these computations and the resulting maps will now be explained with reference to
The inputs to circuit 200 are: a convolution map from 2D-convolver 47, gradient-enable and adjacency maps from memory 71, a corrected grey-level map from compensation circuit 45, and thresholds from threshold register 201. In subsequent stages of the computation, more maps are computed. The nature of each map and its derivation procedure are explained below.
The convolution-sign map 251 is produced by simply copying the sign bit from the convolution map.
Contour map 253 shown in
The optional filtered-contour map 254 (
The high-sure/low-sure map (
Mask-image map 255 (
The next stage, as shown in
The operation of painting stages 256 is now described. There are three types of painting procedures: adjacency paint ("A"), majority paint ("M"), and tow paint ("T"). The precise sequence of steps is application dependent and is empirically determined. In the preferred embodiment, about 10 A steps followed by 2 M steps terminated by one T step are used. Common to all steps is the following operation: a pixel of class "OTHER" will be changed into one of class "BLACK" or "WHITE" provided that one of its eight neighbors is of this class and that another specific condition is met. This is described in FIG. 26. The specific test conditions for each of the three paint types is now discussed.
For the adjacency, or "A" type pain step, the condition is as follows: if a neighbor is "WHITE" and the grey level gradient in the direction of this neighbor is smaller then some (empirically) predefined constant (negative) number, a "WHITE" recommendation is issued. Similarly, if a neighbor is "BLACK" and the grey level gradient in the direction of this neighbor is higher than one (empirically) predefined constant (positive) number, a "BLACK" recommendation is issued. The reason here is that if, for example, a neighbor is "white", and the current pixel is lighter than this neighbor (in the grey-level map), then it must be "white" also. Finally, if the recommendations of all four directions are unanimous, then they are adopted and the class of the pixel is changed accordingly. If there is no recommendation, or else, if there are conflicting recommendations, the test is considered failed and the pixel remains of class "OTHER".
For the majority, or "M" type paint step, the condition for "WHITE" is this: the number of white neighbors should be larger than that of black neighbors. The condition for "BLACK" in the reverse condition.
For the tow, or "T" paint step, the resulting pixel will always be classified as either "BLACK" or "WHITE". The determination of the class is by the color of the top three neighboring pixels, which have already been processed in this step. Thus, out of the three there must be a majority of at least two "WHITE" or two "BLACK" pixels. The class of the majority determines the class of the current pixel.
Once painting is completed, revision of the convolution map is the next (and last) step to be carried out prior to interpolation. The procedure is detailed in FIG. 27. If the paint map color agrees with the convulsion sign, then the original value of the convolution map is output. Otherwise, the output is +1 for a "WRITE" "WHITE" pixel in the paint map, and -1 for a "BLACK" pixel.
The advantages and improved results furnished by the method and apparatus of the present invention are apparent from the foregoing description of the preferred embodiment of the invention. Various changes and modifications may be made without departing from the spirit and scope of the invention as described in the claims that follow.
Caspi, Amiram, Smilansky, Zeev, Lapidot, Zvi
Patent | Priority | Assignee | Title |
7991221, | Mar 06 2006 | Data processing system utilizing topological methods to manipulate and categorize n-dimensional datasets |
Patent | Priority | Assignee | Title |
4041286, | Nov 20 1975 | Roberts Sinto Corporation | Method and apparatus for detecting characteristic features of surfaces |
4048485, | Apr 16 1975 | International Business Machines Corporation | Digital filter generating a discrete convolution function |
4097847, | Jul 10 1972 | SCAN-OPTICS, LLC | Multi-font optical character recognition apparatus |
4115803, | May 23 1975 | Artek Systems Corporation | Image analysis measurement apparatus and methods |
4183013, | Nov 29 1976 | Coulter Electronics, Inc. | System for extracting shape features from an image |
4259661, | Sep 01 1978 | Unisys Corporation | Apparatus and method for recognizing a pattern |
4303947, | Jun 21 1978 | Xerox Corporation | Image interpolation system |
4330833, | May 26 1978 | IMAGE ASSOCIATES, INC , 12196 ATRIUM DR , SARATOGA, CA 95070 A CORP OF CA | Method and apparatus for improved digital image processing |
4399554, | Aug 21 1980 | General Motors Corporation | Method and apparatus for inspecting engine head valve retainer assemblies for missing keys |
4424530, | Sep 17 1981 | Harris Corporation | Log surface determination technique |
4442542, | Jan 29 1982 | Sperry Corporation | Preprocessing circuitry apparatus for digital data |
4472786, | Apr 23 1982 | NAVY, THE UNITED STATES OF AMERICA AS REPRESENTED BY THE SECRETARY OF THE | Analog Gaussian convolver |
4493420, | Jan 29 1981 | Sortex Limited | Method and apparatus for detecting bounded regions of images, and method and apparatus for sorting articles and detecting flaws |
4519041, | May 03 1982 | Honeywell Inc. | Real time automated inspection |
4532650, | May 12 1983 | KLA Instruments Corporation | Photomask inspection apparatus and method using corner comparator defect detection algorithm |
4547897, | Feb 01 1983 | Honeywell Inc. | Image processing for part inspection |
4555770, | Oct 13 1983 | United States of America, as represented by the Secretary of the Air Force | Charge-coupled device Gaussian convolution method |
4570180, | May 28 1982 | International Business Machines Corporation | Method for automatic optical inspection |
4578812, | Dec 01 1982 | NEC Corporation | Digital image processing by hardware using cubic convolution interpolation |
4581762, | Jan 19 1984 | ACUITY IMAGING LLC | Vision inspection system |
4589140, | Mar 21 1983 | NIKON CORPORATION, A CORP OF JAPAN | Method of and apparatus for real-time high-speed inspection of objects for identifying or recognizing known and unknown portions thereof, including defects and the like |
4658372, | May 13 1983 | SCHLUMBERGER SYSTEMS AND SERVICES, INC | Scale-space filtering |
4685143, | Mar 21 1985 | Texas Instruments Incorporated | Method and apparatus for detecting edge spectral features |
4692943, | Dec 30 1983 | PIETZSCH AKTIENGESELLSCHAFT | Method of and system for opto-electronic inspection of a two-dimensional pattern on an object |
4750180, | Jul 24 1986 | WESTERN ATLAS INTERNATIONAL, INC , A CORP OF DE | Error correcting method for a digital time series |
4758888, | Feb 17 1987 | Orbotech Ltd | Method of and means for inspecting workpieces traveling along a production line |
4783829, | Feb 23 1983 | Hitachi, Ltd. | Pattern recognition apparatus |
4817184, | Apr 14 1986 | Vartec Corporation | Electronic inspection system and methods of inspection |
4950296, | Apr 07 1988 | RTI BIOLOGICS, INC | Bone grafting units |
5003615, | Dec 01 1988 | Intersil Corporation | Optoelectronic system for determining surface irregularities of a workpiece having a nominally plane reflective surface |
5086478, | Dec 27 1990 | International Business Machines Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Finding fiducials on printed circuit boards to sub pixel accuracy |
5146509, | Aug 30 1989 | Hitachi, Ltd.; Hitachi Video Engineering, Inc. | Method of inspecting defects in circuit pattern and system for carrying out the method |
5204910, | May 24 1991 | Freescale Semiconductor, Inc | Method for detection of defects lacking distinct edges |
5432712, | May 29 1990 | MILLENNIUM VENTURE HOLDINGS LIMITED | Machine vision stereo matching |
5434802, | Jun 09 1992 | YOZAN BUILDING | Method of detecting the inclination of an IC |
5495535, | Jan 31 1992 | Orbotech Inc. | Method of inspecting articles |
5513275, | Jan 12 1993 | Board of Trustees of the Leland Stanford Junior University | Automated direct patterned wafer inspection |
5570298, | May 25 1994 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Dot pattern-examining apparatus |
5586058, | Dec 04 1990 | Applied Materials Israel Ltd | Apparatus and method for inspection of a patterned object by comparison thereof to a reference |
5619429, | Dec 04 1990 | Applied Materials Israel Ltd | Apparatus and method for inspection of a patterned object by comparison thereof to a reference |
5754690, | Oct 27 1995 | Xerox Corporation | Position sensitive detector based image conversion system capable of preserving subpixel information |
5774572, | Dec 20 1984 | Orbotech Ltd | Automatic visual inspection system |
5774573, | Dec 20 1984 | Orbotech Ltd | Automatic visual inspection system |
5796868, | Dec 28 1995 | Cognex Corporation | Object edge point filtering system for machine vision |
5943441, | Dec 06 1995 | Cognex Corporation | Edge contour tracking from a first edge point |
5987172, | Dec 06 1995 | Cognex Corporation | Edge peak contour tracker |
6005978, | Feb 07 1996 | COGNEX CORPROATION | Robust search for image features across image sequences exhibiting non-uniform changes in brightness |
6141040, | Dec 19 1997 | Agilent Technologies Inc | Measurement and inspection of leads on integrated circuit packages |
EP594146, | |||
WO11454, | |||
WO19372, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 18 2001 | CASPI, AMIRAM | Orbotech Ltd | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011603 | /0659 | |
Feb 19 2001 | SMILANSKY, ZEEV | Orbotech Ltd | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011603 | /0659 | |
Feb 21 2001 | LAPIDOT, ZVI | Orbotech Ltd | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011603 | /0659 |
Date | Maintenance Fee Events |
Dec 02 2005 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Feb 01 2010 | REM: Maintenance Fee Reminder Mailed. |
Jun 25 2010 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 27 2007 | 4 years fee payment window open |
Jan 27 2008 | 6 months grace period start (w surcharge) |
Jul 27 2008 | patent expiry (for year 4) |
Jul 27 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 27 2011 | 8 years fee payment window open |
Jan 27 2012 | 6 months grace period start (w surcharge) |
Jul 27 2012 | patent expiry (for year 8) |
Jul 27 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 27 2015 | 12 years fee payment window open |
Jan 27 2016 | 6 months grace period start (w surcharge) |
Jul 27 2016 | patent expiry (for year 12) |
Jul 27 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |