Fast high-accuracy multi-dimensional pattern inspection
First Claim
1. A method for interpolating a vector-valued function, the vector-valued function relating a plurality of at least two-dimensional positions to a plurality of respective displacement vectors, the method comprising:
- providing an array of grid elements, each grid element having a coordinate region, and each grid element containing at least a displacement vector magnitude and a displacement vector direction;
providing a real-valued input position vector having real-valued coordinates, the coordinates falling within the coordinate region of a grid element;
rounding the coordinates of the real-valued input position vector so as to provide an integer grid position vector;
subtracting the integer grid position vector from the real-valued input position vector to provide a sub-grid position vector;
using the integer grid position vector to access the contents of a grid element, the contents of the grid element including a displacement vector magnitude, and a displacement vector direction;
using the displacement vector direction to provide a unit vector in the displacement vector direction;
using the unit vector in the displacement vector direction and the sub-grid position vector to provide a component of the sub-grid position vector in the displacement vector direction;
subtracting the displacement vector magnitude from the component of the sub-grid position vector in the displacement vector direction to provide an interpolated displacement vector magnitude; and
combining the interpolated displacement vector magnitude, the unit vector in the displacement direction, and the displacement vector direction so as to provide an interpolated displacement vector corresponding to the real-valued input position vector.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for identifying differences between a stored pattern and a matching image subset, where variations in pattern position, orientation, and size do not give rise to false differences. The invention is also a system for analyzing an object image with respect to a model pattern so as to detect flaws in the object image. The system includes extracting pattern features from the model pattern; generating a vector-valued function using the pattern features to provide a pattern field; extracting image features from the object image; evaluating each image feature, using the pattern field and an n-dimensional transformation that associates image features with pattern features, so as to determine at least one associated feature characteristic; and using at least one feature characteristic to identify at least one flaw in the object image. The invention can find at least two distinct kinds of flaws: missing features, and extra features. The invention provides pattern inspection that is faster and more accurate than any known prior art method by using a stored pattern that represents an ideal example of the object to be found and inspected, and that can be translated, rotated, and scaled to arbitrary precision much faster than digital image re-sampling, and without pixel grid quantization errors. Furthermore, since the invention does not use digital image re-sampling, there are no pixel quantization errors to cause false differences between the pattern and image that can limit inspection performance.
-
Citations
31 Claims
-
1. A method for interpolating a vector-valued function, the vector-valued function relating a plurality of at least two-dimensional positions to a plurality of respective displacement vectors, the method comprising:
-
providing an array of grid elements, each grid element having a coordinate region, and each grid element containing at least a displacement vector magnitude and a displacement vector direction; providing a real-valued input position vector having real-valued coordinates, the coordinates falling within the coordinate region of a grid element; rounding the coordinates of the real-valued input position vector so as to provide an integer grid position vector; subtracting the integer grid position vector from the real-valued input position vector to provide a sub-grid position vector; using the integer grid position vector to access the contents of a grid element, the contents of the grid element including a displacement vector magnitude, and a displacement vector direction; using the displacement vector direction to provide a unit vector in the displacement vector direction; using the unit vector in the displacement vector direction and the sub-grid position vector to provide a component of the sub-grid position vector in the displacement vector direction; subtracting the displacement vector magnitude from the component of the sub-grid position vector in the displacement vector direction to provide an interpolated displacement vector magnitude; and combining the interpolated displacement vector magnitude, the unit vector in the displacement direction, and the displacement vector direction so as to provide an interpolated displacement vector corresponding to the real-valued input position vector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for interpolating a vector-valued function, the vector-valued function relating a plurality of at least two-dimensional positions to a plurality of respective displacement vectors, the method comprising:
-
providing an array of grid elements, each grid element having a coordinate region, and containing at least a displacement vector magnitude and a displacement vector direction; providing a real-valued input position vector having real-valued coordinates, the coordinates falling within the coordinate region of a grid element; using a unit vector in the displacement vector direction to provide an interpolated displacement vector magnitude; and combining the interpolated displacement vector magnitude, the unit vector in the displacement direction, and the displacement vector direction so as to provide an interpolated displacement vector corresponding to the real-valued input position vector. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for interpolating a vector-valued function, the vector-valued function relating a plurality of at least two-dimensional positions to a plurality of respective displacement vectors, the apparatus comprising:
-
a grid element source configured to provide an array of grid elements, each grid element having a coordinate region, and each grid element containing at least a displacement vector magnitude and a displacement vector direction; a position source configured to provide a real-valued input position vector having real-valued coordinates, the coordinates falling within the coordinate region of a grid element; an integer rounding module, cooperative with the position source, and configured to round the coordinates of the real-valued input position vector so as to provide an integer grid position vector; a first subtraction module, cooperative with the integer rounding module, and configured to subtract the integer grid position vector from the real-valued input position vector to provide a sub-grid position vector; an address generation module, cooperative with the integer rounding module and the grid element source, and configured to use the integer grid position vector to access the contents of a grid element, the contents of the grid element including a displacement vector magnitude, and a displacement vector direction; a unit vector module, cooperative with the grid element source, and configured to use the displacement vector direction to provide a unit vector in the displacement vector direction; a component extractor, cooperative with the unit vector module, and configured to use the unit vector in the displacement vector direction and the sub-grid position vector to provide a component of the sub-grid position vector in the displacement vector direction; a second subtraction module, cooperative with the component extractor, and configured to subtract the displacement vector magnitude from the component of the sub-grid position vector in the displacement vector direction to provide an interpolated displacement vector magnitude; and an output module, cooperative with the second subtraction module, and configured to combine the interpolated displacement vector magnitude, the unit vector in the displacement direction, and the displacement vector direction so as to provide an interpolated displacement vector corresponding to the real-valued input position vector. - View Dependent Claims (22, 23, 24)
-
-
25. An apparatus method for interpolating a vector-valued function, the vector-valued function relating a plurality of at least two-dimensional positions to a plurality of respective displacement vectors, the apparatus comprising:
-
a grid element source configured to provide an array of grid elements, each grid element having a coordinate region, and containing at least a displacement vector magnitude and a displacement vector direction; a position source, cooperative with the grid element source, and configured to provide a real-valued input position vector having real-valued coordinates, the coordinates falling within the coordinate region of a grid element; a unit vector module, cooperative with the grid element source, and configured to use the displacement vector direction to provide a unit vector in the displacement vector direction for use in computing an interpolated displacement vector magnitude; and an output module, cooperative with the unit vector module, and configured to combine the interpolated displacement vector magnitude, the unit vector in the displacement direction, and the displacement vector direction so as to provide an interpolated displacement vector corresponding to the real-valued input position vector. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification