Method of recognizing patterns

Abstract: In a method of identifying an object from a digitized image that is particularly applicable to the classification of aircraft, the digitized image (152) of an unknown object is represented as a set of radial vectors (150₁, 150₂, ..). The vectors (150) are normalized and then compared with a library (18) containing normalized digitized images of known objects. The unknown object is thereby identified as being similar to the known object corresponding to the library image most closely matching the image of the unknown object. A score for the comparison of the unknown object silhouette with a known silhouette is obtained by subtracting the radial vectors of the known silhouette from those of the unknown silhouette, and summing the differences. The closest match is the smallest sum of difference.

Description: This invention pertains generally to pattern recognition, and in particular to a method of classifying objects by matching the silhouette of an unknown object to the silhouette of a known object. Object recognition may be performed using any distinctive characteristic of the object. One such characteristic useful in many cases is the silhouette of the object as recorded by a device sensitive to visible light or infrared radiation. If the silhouette of an unknown object-can be matched to the silhouette of a previously identified object, it may be concluded that the unidentified object is of the same class as the known object. Since the silhouettes are equivalent to two-dimensional patterns, any known pattern-matching technique may be used. In one known technique, the silhouettes are divided into small elements, or "pixels". The known and unknown silhouettes are deemed to be matched if the contents of a predetermined percentage of corresponding pixels are the same. The technique being discussed, though computationally simple, performs poorly if the silhouettes being compared are not in registration one with the other. The technique also performs poorly if the image of the unknown object is a different size than that of the image of the known object (as might be the case if the images were made by devices at different distances from the object). Another technique, which involves comparing two-dimensional Fourier transforms of a known image with the transform of an unknown image, operates well even if the known and unknown silhouettes are oriented differently. However, such a technique requires substantially more computation. US-A-4 573 197 describes a method of automatically recognising objects by using Fourier coefficients. In an article entitled "Shape description via the use of critical points" by H. Freeman, at pages 168 to 174 in the IEEE Proceedings of the Conference on Pattern recognition and Image processing, New York, 6th-8th June 1977, there is described a method of representing the shape of a blob in an orientation and scale invariant manner by means of a centroidal profile, which is a normalized plot of the distance from the boundary of the blob to the centroid of the blob as a function of distance along the boundary. A blob has a boundary which is a closed curve. The coordinates of the centroid are determined by calculating the ratio of first order moments to enclosed area. The boundary or profile of the blob is described as a chain. The distances from the centroid to each chain node in sequence is calculated. Although Euclidean distance could be used, the residue-chain length is used, this being the standardized chain of minimum length connecting the two points in question. The coordinates of the centroid are quantized to the nearest grid node. The choice of initium in the profile is arbitrary but is cyclically shifted to the chain node most distant from the centroid. If there is no unique maximum distance, any one is chosen. Dependence on scale is removed by dividing all length values by the maximum. The maximum distance around the profile, corresponding to one complete trace around the blob boundary, is normalized to 100 and all other values adjusted accordingly. Profile values corresponding to clockwise angular rotation about the centroid are designated positive values, and those corresponding to counter-clockwise angular rotation are designated negative values. The distance around the profile from the initium represents a normalized link-index parameter of the boundary chain. It does not represent uniform angular rotation about the centroid. Also, no account is taken of the actual lengths of the links of the chain. For shape matching, the variation in link length, initial chain-generating quantization, and node-quantization of the centroid must be small. If, alternatively, the centroidal profile is generated by plotting the distance from the centroid to boundary chain node against the angle this vector makes with an x axis, and using the Euclidean distance from the true centroid rather than the node nearest the centroid, there is a considerable increase in processing cost. The shapes of two blobs can be compared by comparing their centroidal profiles by forming the integral of the differences between the two profile functions and the integral of the squared differences. If one or both profiles have a maximum that is not well defined, or have multiple maxima, comparison is to be effected by conventional signal cross-correlation. In an article entitled, "A Versatile-Machine Vision System for Complex Industrial Parts" by M. Yachida and S. Tsuji, at pages 11 to 18, no. 2, March/April 1976, Vol. 7, Systems, Computers, Controls, Washington, U.S., a vision system is described for learning the structure of complex industrial parts and recognising them on the basis of the learning. A set of models of objects is learnt by generating for each object a model composed of extracted features. Each extracted feature is associated with lists of measured characteristics. In the recognition process, the features of the contours of the input object are extracted and examined for degree of similarity with those of the models, and a number of candidate models is selected. Then a "most promising" model is selected. Finally, a detailed comparison of the features of the input object and those of the most promising model is carried out. In this process, the shape of a contour is expressed in polar coordinates with the centre of gravity as origin. The distance r(ϑ) between the centre of gravity and the contour is calculated for discrete values of ϑ, and the results converted into a graph of r against ϑ with both taking discrete values from 0 to 120. In comparing two contours, the distances between the two graphs r₁(ϑ) and r₂(ϑ) are defined by where ϑ s in the angle of shift to the right of the graph r₂(ϑ) relative to the r₁(ϑ). Two contours have similar shapes when D(ϑ s ) has a deep valley. It is a purpose of this invention to provide a means for classifying objects by matching an image containing the silhouette of an unknown object to an image containing the silhouette of a known object. It is a further purpose of this invention to provide an object classification technique which is computationally simple, yet robust enough to operate effectively when the silhouettes are not precisely registered or differ in size, by means of a process comprising the steps of creating a silhouette of an unknown object from a digitized picture, normalizing the silhouette of the unknown object to a form for comparison with reference silhouettes of known similarly normalized objects comparing the normalized image of the unknown object to a normalized reference. According to the present invention there is provided a method of comparing a digitized image of a silhouette of an unknown object with each one of a plurality of digitized images of silhouettes of known objects for the purpose of identifying the unknown object, comprising the steps of: (a) representing the digitized image of the silhouette of the unknown object as a set of radial vectors; (b) forming a normalized set of radial vectors by dividing each radial vector in the set by a scale factor; (c) rotating the normalized set of radial vectors until the largest radial vector is the first vector in the set; (d) so comparing the rotated normalized set of radial vectors with each one of a plurality of rotated, normalized sets of radial vectors representing the said digitized images of silhouettes of known objects as to compute a score for each one of the comparisons, such score equalling the summation of the absolute values of the difference between each radial vector in the rotated normalized set of the unknown silhouette and the corresponding radial vector in the respective rotated normalized set of the known silhouette; (e) identifying a peak, if present, in the rotated, normalized set of the unknown silhouette, a peak being a radial vector which satisfies several criteria: (i) a peak radial vector is larger than the radial vectors preceding and following it; (ii) the magnitude of a peak radial vector is larger than a first predetermined threshold ; (iii) the magnitude of the peak radial vector must be larger than the radial vector in the preceding "valley" by a second predetermined threshold, where a valley is a radial vector smaller than the radial vectors preceding and following it; and (iv) the magnitude of the radial vector following the peak is less than the magnitude of the peak radial vector by a predetermined percentage; (f) further rotating the rotated normalized set of the unknown silhouette until the peak is the first radial vector in the set; and (g) so comparing the further rotated normalized set of radial vectors with each one of the plurality of rotated normalized sets of radial vectors representing digitized images of silhouettes of known objects as to compute a score for each one of the comparisons, such score equalling the summation of the absolute values of the difference between each radial vector in the further rotated normalized set of the unknown silhouette and the corresponding radial vector in the respective rotated normalized set of the known silhouette. The invention will be more fully understood from the following more detailed description when taken in conjunction with the accompanying drawings in which: FIG. 1 is a sketch useful in understanding a system in which the invention might be employed; FIG. 2 is a flow chart of an object identification process related to but not embodying the present invention; FIG. 3 is a sketch useful in understanding how an image is represented by vertical vectors. FIG. 4 is a flow chart for an object identification process embodying the invention; FIG. 5 is a sketch useful in understanding how an image is represented by radial vectors. The process described hereinafter with reference to FIGS. 1, 2, and 3 is also described in GB-A-2 210 488 and French patent no. 8 812 763 (FR-B-2 621 148). Pattern recognition techniques have numerous applications. The patterns are herein depicted as representing images containing silhouettes of ships or airplanes. One skilled in the art will recognise that the source of the patterns is illustrative only and that the processes described operate regardless of particular types of patterns being recognized. Referring now to FIG. 1, an imaging device 10 is shown focused on an unknown ship 14. The imaging device 10 may be any known device for forming an image using visible light or infrared radiation. The image of the unknown ship 14 is digitized by a digitizer 20. The digitized image is transferred to digital computer 12 wherein processing is accomplished according to the method shown in FIG. 2 and described below. As part of the processing, the digitized image is compared with silhouettes of known ships stored in memory 18. The results of the comparisons are sent to a utilization device 11 such as a cathode ray tube (CRT), allowing a human operator to read the results. The imaging device 10, the image digitizer 20, the digital computer 12, and memory 18 could be any devices known in the art for obtaining and processing images. Referring now to FIG. 2, it should be noted that the processing in FIG. 2 here is implemented by programming a general purpose digital computer such as a VAX 11/780 manufactured by Digital Equipment Corporation, Maynard, Massachusetts. The rectangular elements in the flow diagram of FIG. 2, typified by element 30 and hereinafter denoted as "processing blocks," represent a single instruction or group of computer software instructions for the general purpose digital computer 12 (FIG. 1) to execute. The diamond-shaped elements typified by element 44 and hereinafter denoted "decision blocks," represent groups of computer software instructions which evaluate some condition and effect the order of execution of the processing blocks of the condition. The elements with curved bottoms, typified by memory 18, represent information stored in hardware memory accessible by the general purpose digital computer 12 (FIG. 1). Memory is only shown explicitly where large amounts of information are stored. The usages of memory common to most computer software programs, such as the storage of program variables, are not explicitly shown. It will be noted by one skilled in the art that initialization of variables and loops (and other standard elements of computer software programs) is not explicitly shown. At processing block 30 the silhouette of the unknown ship 14 (FIG. 1) is extracted according to any known algorithm, or combination of algorithms. For example, the algorithm for edge enhancement described at pages 322 to 326 of Digital Image Processing by William K. Pratt, published by John Wiley & Sons, Inc., 1978 and the algorithms for edge segmentation described at pp. 542-545 of the same reference may be used. However, one skilled in the art will recognize that any other algorithms could be used to extract the silhouette of the unknown ship 14 (FIG. 1). At processing block 32 the silhouette is vectorized to form a set of vertical vectors 74, as shown in FIG. 3. FIG. 3 shows exemplary ones of a set of N vertical vectors 74 which describe the silhouette 72 of the unknown ship 14 (FIG. 1) in a field of view. Each vertical vector 74 is described by a pair of numbers representing an X and a Y value. As can be seen in FIG. 3, the vertical vectors 74 extend from the bottom to the top of the silhouette 72. It should be noted in FIG. 3 that the vertical vectors 74 begin at equidistant intervals in the X direction. Because the vertical vectors 74 are evenly spaced in the X direction, the total number N depends on the extent of the silhouette in the X direction. The height of the vectors, i.e., the lengths of the vertical vectors, depends on the distance between the top and the bottom of the silhouette 72 at each X location. At processing block 34 in FIG. 2, the vertical vectors 74 (FIG. 3) describing the silhouette of the unknown ship 14 (FIG. 1) are adjusted to represent only variations along the top edge of the silhouette, here the superstructure of the unknown ship. At processing block 34, the minimum midship vector 76 (FIG. 3), hereinafter also denoted VN, is identified as the shortest of all vertical vectors (excluding the few vertical vectors, say four percent, on the left side of the image and the few vertical vectors, say four percent, on the right side of the image). All of the vertical vectors are then adjusted by subtracting the magnitude of VN. Each member of the set of adjusted vectors is hereafter denoted U(X). Alternatively, the processing as done at processing block 34 may be omitted and the normalized vertical vectors 74 used in subsequent processing. At processing block 36 of FIG. 2, the width of the silhouette is normalized by using only every CINT (N/100) th vector where CINT is a function rounding the value in parentheses to the nearest integer. The resulting image will always contain, therefore, 100 vertical vectors. At processing block 38 the height of the vectors is normalized such that the silhouette occupies a predetermined area. The normalization is achieved according to the formula H(x) = U(X)/(MSV/8) where H(X) is the normalized height of vector X, U(X) is the unnormalized, adjusted height of vector X, and MSV is the average of the set of adjusted vectors. At processing blocks 40, 41, and 42, the normalized image of the unknown ship's silhouette is compared to stored silhouettes of known ships. The silhouettes of the known ships are stored before operation in memory 18 in a vectorized, normalized form corresponding to the form of the silhouette to be recognized after passing through processing blocks 30, 32, 34, 36 and 38. Memory 18 contains images for every class of ship the processing can identify. In addition, the memory 18 preferably contains several images for each class, representing the ship viewed from several, here four, different aspects. At processing block 40 one vector of the reference image, i.e., the known silhouette of a particular class of ships, is subtracted from the corresponding vector of the received, normalized and vectorized silhouette. Because the bow of the unknown ship might be at either side of the image, a second difference is computed at processing block 41. At processing block 41, the difference is computed by selecting a reference vector as if the reference image had been formed by a ship headed in the opposite direction, i.e., when the first reference vector is used at processing block 40, the last is used at processing block 41; when the second is used at processing block 40, the second to last is used at processing block 41; and so on. At processing block 42 the absolute values of the differences computed at processing blocks 40 and 41 are accumulated. Decision block 44 causes processing blocks 40, 41, and 42 to be repeated for the next vector in the silhouette of the unknown ship, as determined at processing block 46, until each vector in the received, vectorized, normalized silhouette has been subtracted from the corresponding vector in the reference image then being taken out of the memory 18. The resulting summations of the absolute values of the differences are denoted as the "scores" of the reference image, one for the unknown compared to the reference and the other for the unknown compared to the reference in reverse. At processing block 48 the scores for the reference ship computed at processing blocks 40, 41 and 42 are stored in memory 50. One skilled in the art will recognize that processing block 48 might alternatively process the scores in some way, such as only storing the lowest scores, to reduce the amount of information stored in memory 50. The comparison process is repeated until the silhouette of the unknown ship is compared to each reference image stored in memory 18 as controlled by the loopback path containing processing block 58. After the silhouette of the unknown ship is compared to all the reference images stored in memory 18, the reference image with the lowest score is selected at processing block 54. The reference ship corresponding to the lowest score "matches" the unknown ship. The processing thus recognizes the unknown ship as belonging to the same class as the selected reference ship. Alternatively, a thresholding function might be employed such that no classification would be assigned to the unknown ship unless the lowest score obtained for all reference silhouettes is lower than some predetermined value. Radial Vector Embodiment The foregoing algorithm for identifying objects using vertical vectors is well suited for use on images which have a flat bottom. For example, ships generally appear to have flat bottoms because the portions of the ship below the waterline are not visible. A radial vector algorithm such as the one used in the present invention is more suited for use with objects which have structural variations on both their top and bottom edges. For example, airplanes are such objects. FIG. 4 shows processing to be performed on images using the radial vector algorithm. Processing block 30A first extracts the outline of the object in the same fashion as processing block 32 (FIG. 2). Processing block 100 forms radial vectors of the outline according to a method which can be better understood by reference to FIG. 5. FIG. 5 depicts the outline 152 of an unknown aircraft. It should be noted that each point on the outline has an "X" coordinate and a "Y" coordinate. In determining the radial vectors, the centroid, C, of the outline is first computed. Here, a value for the centroid is approximated by averaging the X coordinates and Y coordinates of all points in the outline. Averaging the coordinates yields a value which equals the centroid for symmetrical images. Approximating the centroid by averaging simplifies the required processing and results in vectors which have lengths invariant with the orientation of the object. Each radial vector has a magnitude reflecting the distance between the centroid C and a point on the outline 152. It is not necessary to compute a radial vector for each point on the outline. A different number, say N, of radial vectors might be computed. To select those N points, a ratio R is computed and is equal to the total number of points on outline 152 divided by N. Here, N has a value of 36, but other values can be used. A first point on outline 152, having a particular X and Y coordinate, is selected. The magnitude of the first radial vector 150₁ is equal to the square root of the sum of the squared differences between the X and Y coordinates of the point and the centroid C. A second point on outline 152 is selected as being R points from the first point. Since R is a ratio, it will not always be an integer. Where R is not an integer, the X and Y coordinates of the two points closest to R points from the first point are determined and the coordinates of the second point are determined by interpolating between those values. Based on the interpolated coordinates, a value for the second radial vector 150₂ is computed. Values for the rest of the radial vectors 150₃...150 N are computed in a like manner. Because of processing to normalize the radial vectors described below, any point can be chosen to compute the first radial vector. Likewise, points for computing the successive radial vectors can be taken either clockwise or counterclockwise along outline 152. Referring again to FIG. 4, the set of radial vectors is normalized at processing block 102. The average of the values of the radial vectors in the set is computed. The average is divided by some constant, say 15, to compute a scale factor. Each of the radial vectors in the set is divided by the scale factor to produce a set of normalized radial vectors. The normalized vectors are then "rotated" by processing block 104 until the largest vector occupies the first position. For example, if the largest vector is the fifth vector, the set of vectors will be rotated so that the fifth vector becomes the first vector, the sixth vector becomes the second vector, and so on. Additionally, the vectors "wrap around" when rotated so that the fourth vector is rotated to become the last vector, the third vector is rotated to become the second to last vector, and so on. By rotating the vectors, an unknown object will produce the same set of radial vectors regardless of the orientation of the object when the image was made of it. The radial vectors of the unknown object are compared to images of known objects or references at processing block 39A. Here processing block 39A is like processing block 39 (FIG. 2). The known sets of vectors stored in memory 18, of course, represent aircraft or other objects instead of ships. Additionally, the known sets of vectors are derived from images according to the processing described at processing blocks 30A, 100, 102 and 104 (FIG. 4) rather than according to processing shown in FIG. 2. Once a score is computed for each reference in memory 18 (FIG. 2), processing proceeds to decision block 108. It will be recalled that comparison to the references was made with the set of radial vectors of the unknown object rotated so that the largest vector is the first vector of the set. The references in memory 18 (FIG. 2) were similarly rotated so that the largest vectors in the sets are compared. If, however, the point on the unknown object giving rise to the largest radial vector does not correspond to the point on the known objects giving rise to the largest radial vector in the references, the comparison will be inexact. For example, noise when the image of the unknown object is formed may cause a radial vector to appear as the largest vector though in the absence of noise some other vector would be the largest. To reduce the possibility of an inexact comparison, the radial vectors from the unknown images are rotated so that other vectors which are close to the largest are the first radial vector in the set. As seen in FIG. 4, decision block 108 checks for "peaks" in the set of radial vectors. A peak is a radial vector which satisfies the following several criteria: (i) a peak radial vector is larger than the radial vectors preceding and following it; (ii) the magnitude of a peak radial vector is larger than a first predetermined threshold, say 18; (iii) the magnitude of the peak radial vector must be larger than the radial vector in the preceding "valley" by a second predetermined threshold, (where a valley is a radial vector smaller than the radial vectors preceding and following it); and (iv) the magnitude of the radial vector following the peak is less than the magnitude of the peak radial vector by a predetermined percentage. When decision block 108 identifies another peak in the set of radial vectors, processing proceeds to processing block 106 where the set of vectors is rotated until the peak is the first vector in the set. New scores are then computed at processing block 39A for the rotated set of radial vectors. When decision block 108 determines that all the peaks in the set have been rotated to the first position, processing proceeds to processing block 54A. Processing block 54A, like processing block 54 (FIG. 2), selects the lowest score computed at processing block 39A. The unknown object is deemed to match the reference set of vectors used to compute that score.

Claims: A method of comparing a digitized image of a silhouette of an unknown object with each one of a plurality of digitized images of silhouettes of known objects for the purpose of identifying the unknown object, comprising the steps of: (a) representing (100) the digitized image of the silhouette of the unknown object as a set of radial vectors; (b) forming (102) a normalized set of radial vectors by dividing each radial vector in the set by a scale factor; (c) rotating (104) the normalized set of radial vectors until the largest radial vector is the first vector in the set; (d) so comparing (39A) the rotated normalized set of radial vectors with each one of a plurality of normalized, rotated sets of radial vectors representing the said digitized images of silhouettes of known objects as to compute a score for each one of the comparisons, such score equalling the summation of the absolute values of the difference between each radial vector in the rotated normalized set of the unknown silhouette and the corresponding radial vector in the respective rotated normalized set of the known silhouette; (e) identifying (108) a peak, if present, in the rotated normalized set of the unknown silhouette, a peak being a radial vector which satisfies the following criteria: (i) a peak radial vector is larger than the radial vectors preceding and following it; (ii) the magnitude of a peak radial vector is larger than a first predetermined threshold ; (iii) the magnitude of the peak radial vector must be larger than the radial vector in the preceding "valley" by a second predetermined threshold, where a valley is a radial vector smaller than the radial vectors preceding and following it; and (iv) the magnitude of the radial vector following the peak is less than the magnitude of the peak radial vector by a predetermined percentage; (f) further rotating (106) the rotated normalized set of the unknown silhouette until the peak is the first radial vector in the set; and (g) so comparing (39A) the further rotated normalized set of radial vectors with each one of the plurality of rotated normalized sets of radial vectors representing digitized images of silhouettes of known objects as to compute a score for each one of the comparisons, such score equalling the summation of the absolute values of the difference between each radial vector in the further rotated normalized set of the unknown silhouette and the corresponding radial vector in the respective rotated normalized set of the known silhouette. A method according to claim 1, characterised in that the plurality of digitized images representing known objects includes silhouettes formed by airplanes at various aspect angles. A method according to claim 1 or 2, characterised in that, in representing (100) the digitized image of the said unknown silhouette as a set of radial vectors, the centroid (C) of the silhouette is determined by averaging orthogonal coordinates of all points in the outline (152) of the silhouette, and the respective magnitude of each radial vector represents the distance between the centroid (C) and a respective point (150) on the outline (152). A method according to claim 3, characterised in that the said magnitude is equal to the square root of the sum of the squared differences between the respective orthogonal coordinates of the said respective point (150) and the centroid (C) (Euclidean distance measure).

Inventors: TERZIAN JOHN, TERZIAN, JOHN
Applicants: RAYTHEON CO, RAYTHEON COMPANY
Application year: 1989
Main classification: G06K9
IPC codes: G06T7, G06K9