Comparison of image shapes based on near neighbor data
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to techniques for analyzing a body of data. More specifically, the invention relates to techniques that analyze an image by finding near neighbors of pixels in the image. 
     Burr, D. J., &#34;A Dynamic Model for Image Registration,&#34; Computer Graphics and Image Processing,&#34;15, 1981, pp. 102-112, describes an iterative technique for updating the local registration of two images. The introduction indicates that nearest neighbor correspondences become better registration indicators as misregistration decreases. Section 3 on pages 104-106 describes the use of a sum of nearest neighbor edge element distances as a spatial distance measure. FIG. 1 shows vectors indicating nearest neighbors for two overlaid images. 
     Ullman, S., &#34;An Approach to Object Recognition: Aligning Pictorial Descriptions,&#34; A.I. Memo No. 931, December 1986, M.I.T. Artificial Intelligence Laboratory, Cambridge, Mass., describes a two stage recognition process. The first stage determines the transformation in space that is necessary to bring the viewed object into alignment with possible object-models. The second stage determines the model that best matches the viewed object. Page 7 describes a typical similarity measure used in associative memories called the Hamming distance, defined for two binary vectors as the number of coordinates in which they disagree. Section 4, beginning on page 20, describes an alignment approach that searches a space of all stored object-models and all of their possible views for a particular model and a particular transformation that maximizes some measure of fit between the object and the model. Page 48 discusses general requirements of measures of the degree of match. 
     SUMMARY OF THE INVENTION 
     One aspect of the invention is based on the recognition of problems in measuring similarity between shapes in an image. Some conventional techniques produce a list of pairs of corresponding points on the boundaries of two shapes being matched, then sequentially produce a measure of similarity using the distances between corresponding points. But shapes in an image often lack continuous boundaries, and pairs of shapes may have boundaries for which it is difficult to find corresponding points. 
     This aspect of the invention is based on the discovery that near neighbor techniques can measure similarity yet avoid these problems. Near neighbor distance data can be produced for each pixel in one of the images being compared, indicating a distance to a near neighbor. Then, the near neighbor distances for each black pixel in the other image can be summed to produce a measure of dissimilarity. 
     These steps can be implemented in parallel, with a processing unit for each pixel position at which a pixel of one image maps onto a respective pixel of the other image. Hierarchical near neighbor operations can label each pixel with one or more distance values to near neighbors, by storing appropriate data in the local memory of the respective processing unit. If more than one distance value is produced for each pixel, each pixel&#39;s processing unit can produce its near neighbor distance data from the pixel&#39;s distance values, such as by selecting the smallest distance value. Then, an upward hierarchical pass can produce the sum of near neighbor distances that measures similarity. 
     To compare images in this manner, it is necessary to normalize them. For example, one of the images may be treated as a template, and the other image may be realigned prior to comparing. Or both images may be converted into a canonical form to facilitate comparison. 
     The following description, the drawings, and the claims further set forth these and other objects, features and advantages of the invention. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flow diagram showing a sequence of arrays illustrating shape comparison according to the invention. 
     FIG. 2 is a flow chart showing general steps in obtaining a measure of similarity between two images according to the invention. 
     FIG. 3 is a flow chart showing steps in obtaining a measure of similarity between two images. 
    
    
     DETAILED DESCRIPTION 
     A. Conceptual Framework 
     The following conceptual framework is helpful in understanding the broad scope of the invention, and the terms defined below have the meanings indicated throughout this application, including the claims. This conceptual framework is an extension of that set forth in the copending, coassigned U.S. patent applications Ser. No. 07/535,796, entitled &#34;Dense Aggregative Hierarchical Techniques for Data Analysis&#34; (&#34;the architecture application&#34;), and Ser. No. 07/535,438, entitled &#34;Exhaustive Hierarchical Near Neighbor Operations on an Image&#34; (&#34;the linking application&#34;), which are both incorporated herein by reference in their entireties. 
     A &#34;data processor&#34; or &#34;processor&#34; is any component, combination of components, or system that can process data, and may include one or more central processing units or other processing components. A &#34;processing unit&#34; is a processor that is a component within another processor. Two processing units are &#34;connected&#34; by any combination of connections between them that permits communication of data from one of the processing units to the other. 
     &#34;Memory&#34; is any component, combination of components, or system that can store data, and may include local and remote memory and input/output devices. 
     A processor &#34;accesses&#34; data by any operation that retrieves or modifies the data, such as by reading or writing data at a location in memory. A processor can be &#34;connected for accessing&#34; data by any combination of connections with memory that permits the processor to access the data. 
     A processor &#34;operates on&#34; data by performing an operation that includes obtaining a logical or numerical result that depends on the data. 
     To &#34;obtain&#34; or &#34;produce&#34; data is to perform any combination of operations that begins without the data and that results in the data. Data can be &#34;obtained from&#34; or &#34;produced from&#34; other data by any combination of operations that obtains or produces the data by operating on the other data. 
     Data &#34;indicates&#34; an attribute when the data indicates the presence of the attribute or a measure of the attribute. 
     A &#34;hierarchy&#34; of data items includes data items, each of which is at one of a series of levels within the hierarchy. To &#34;produce&#34; a hierarchy of data items is to perform a combination of operations that begins without the complete hierarchy of data items and that includes the production of all of the data items of the hierarchy that are not present at the beginning. In other words, a hierarchy may be produced by a combination of operations that ends when all of the data items of the hierarchy have been produced, whether or not all of the data items are still stored. All of the data items of all of the levels could still be stored at the end of the operations, but the hierarchy is produced even though some of the data items are not stored after being used to produce data items at a higher level. 
     A &#34;hierarchical operation&#34; is a combination of operations that sequentially produce a hierarchy of data items or that make an upward or downward pass through a hierarchy of data items. 
     Data &#34;indicates&#34; an attribute when the data indicates the presence of the attribute or a measure of the attribute. 
     An &#34;image&#34; is a pattern of light. Data &#34;defines&#34; an image or another signal when the data includes sufficient information to produce the image or signal. 
     Each location in an image may be called a &#34;pixel.&#34; In an array defining an image in which each item of data provides a value, each value indicating the color of a location may be called a &#34;pixel value.&#34; 
     A &#34;connected component&#34; or &#34;blob&#34; is a set of pixels in an image, all of which have pixel values that meet a criterion and all of which are pairwise connected through an appropriate rule such as that the pixels in a pair are connected by a chain of neighbors within the set. For example, a connected component of a binary form of an image can include a connected set of pixels that have the same binary value, such as black. 
     The &#34;relative orientation&#34; between two pixels in an image is a measure of the direction within the image from one of the pixels to the other. 
     The &#34;distance&#34; between two pixels in an image is a measure of the number of pixels between them, assuming generally uniform pixel size and shape. In a two-dimensional image, for example, the distance between two pixels can be measured by x- and y-offsets, and distances can be compared by taking the sums of squares of the offsets. Two pixels are &#34;near&#34; when the distance between them is relatively small, considered in some context. 
     A &#34;near neighbor pixel&#34; or a &#34;near neighbor&#34; for a given pixel in an image is a pixel in the same image that meets a criterion, referred to herein as a &#34;near neighbor criterion,&#34; and which is near to the given pixel when considered in relation to other pixels that meet the criterion. For example, the criterion could be that the near neighbor pixel must be a black pixel, in which case the near neighbors of the given pixel would be nearby black pixels. The determination of which pixels are near may be made in any appropriate way, unless otherwise specified. 
     &#34;Near neighbor attribute data&#34; is data indicating an attribute relating to a near neighbor pixel. For example, near neighbor attribute data could be &#34;near neighbor distance data&#34; indicating a distance, &#34;near neighbor orientation data&#34; indicating an orientation, or any data indicating an attribute for the near neighbor pixel. Near neighbor attribute data need not uniquely identify a near neighbor pixel, and may relate to a set of more than one near neighbor pixels. 
     A &#34;near neighbor link&#34; is the relationship between a pixel, called an &#34;owner,&#34; and a near neighbor pixel, called a &#34;neighbor.&#34; Therefore, near neighbor attribute data can provide information about a near neighbor link. 
     B. General Features 
     FIGS. 1-2 illustrate general features of the invention. FIG. 1 shows a sequence of arrays in comparing shapes based on near neighbor data. FIG. 2 shows general steps in measuring dissimilarity between images by obtaining a sum of near neighbor distances. 
     FIG. 1 shows pixel array 10, which includes a shape formed by five black pixels. Array 12 is an array of near neighbor data produced by operating on the data in array 10 to obtain, for each pixel, a sum of squares distance to the nearest black pixel. For each black pixel position in array 10, the distance in array 12 is zero. For each white pixel position, the distance in array 12 is greater than zero, being the sum of squares of the x- and y-coordinate offsets to the nearest black pixel. Operations like those described in the linking application could be performed to produce array 12 from array 10. 
     Pixel array 14 shows a second shape formed by five black pixels, while pixel array 16 shows a third shape formed by seven black pixels. As shown, if the distances in array 12 for each black position in array 14 are totalled, the sum is one. But the sum for array 16 is five, indicating that array 16 is more dissimilar from array 10 than array 14. 
     FIG. 2 shows general steps in measuring similarity between images based on near neighbor distances. The step in box 30 stores pixel values of a first image in memory. The step in box 32 produces near neighbor distance data for each pixel in the first image, indicating the distance to a near neighbor pixel that meets a criterion, such as a black pixel. The step in box 34 stores pixel values of a second image in memory. The step in box 36 then sums the distances for pixels in the second image that meet the criterion, such as black pixels, to produce a measure of similarity. In the method shown in FIG. 2, the step in box 34 could be performed at any point prior to the step in box 36. 
     C. An Implementation 
     FIG. 3 shows how a vision system can perform shape matching based on boundaries, using near neighbor data. The step in box 60 begins by storing a first image of a boundary so that each processing unit&#39;s local memory contains the respective pixel&#39;s value. 
     The step in box 62 begins an iterative loop that, for each quadrant, finds the near neighbor and its distance, in box 64. When all the near neighbors have been found, the step in box 66 obtains near neighbor data indicating the distance to the nearest of the near neighbors. 
     The step in box 68 could be performed somewhat independently of the preceding steps, since it involves normalizing a second image to be compared with the first image and then storing the normalized second image so that each processing unit&#39;s local memory contains the respective pixel&#39;s value. 
     The normalization could, for example, produce a figure whose bounding rectangle is identical to that of a figure in the first image. The step in box 70 determines, at each processing unit, whether its respective pixel in the normalized second image is black. If not, its distance from box 66 is cleared for purposes of the step in box 74, which sums the remaining distances hierarchically over all the processing units to obtain a measure of the difference in shape between the boundaries in the first and second images. 
     The operation described above could be used in template matching, with the first image being a prototype and the second image being compared to the prototype by a process involving two simple stages. The first stage is a normalization or alignment process, which transforms a given plane figure into a canonical form, essentially undoing allowed variations in shape due to viewing position, physical deformations of the viewed object, and so on. The second stage, the template matching, compares the normalized figure to the prototype by obtaining a sum as described above in relation to box 74. 
     An advantage of near neighbor links over representations of near-neighbor distance alone for boundary-based shape matching is that other relevant information associated with corresponding boundary locations, such as orientation and curvature, can be included in the similarity measure. In this case, at each black pixel in the normalized second image, the relevant properties are read from the neighbor location and included in the overall measure in some fashion. 
     D. Source Code Appendix 
     Appendix A is *Lisp source code implementing some of the features described above. The source code in Appendix A may differ in some respects from the above description, but execution of the source code in Appendix A on a Connection Machine provides substantially all the features described above. In some cases, the code has been optimized or includes additional features. Source code implementing other features is included in copending coassigned U.S. patent application Ser. No. 07/535,438, entitled &#34;Exhaustive Hierarchical Near Neighbor Operations on an Image&#34; and Ser. No. 07/535,796, entitled &#34;Dense Aggregative Hierarchical Techniques for Data Analysis,&#34; both of which are incorporated herein by reference in their entireties. 
     The following are included in Appendix A: 
     The function ADD-MODEL produces a map indicating, for each pixel of a model image, a near neighbor distance. 
     The function MATCH-FIGURE produces a sum of near neighbor distances from the map produced by ADD-MODEL by adding the distance at each pixel location where an image being matched has a different pixel value than the model image. 
     E. Miscellaneous 
     The invention has been described in terms of operations on binary images, but could be applied to images of all types and, more generally, to bodies of data that map into arrays similar to those described. 
     Although the invention has been described in relation to various implementations, together with modifications, variations and extensions thereof, other implementations, modifications, variations and extensions are within the scope of the invention. The invention is therefore not limited by the description contained herein or by the drawings, but only by the claims. 
     ® 1990 Xerox Corporation. All rights reserved. ##SPC1##