Abstract:
Local data maps of an optical imaging system are stitched together into a composite global data map based on a merit function supporting closed-form processing. Overlapping regions of the local data maps are defined as difference maps that are given a parametric description. Corrective orientations of the local data maps are derived by collectively matching parametric descriptions of the corrective orientations for the overlapping local data maps to the parametric descriptions of the corresponding difference maps.

Description:
TECHNICAL FIELD  
       [0001]     The invention relates to digital image processing, particularly for purposes of optical metrology, in which data sets from multiple images are combined to form a composite image. The combination of adjacent images allows smaller or more practically sized optics to be used for extending high-resolution imaging over larger fields of view.  
       BACKGROUND OF INVENTION  
       [0002]     Test objects larger than the field of view of optical measuring instruments, such as interferometers, can be measured by combining individual optical measurements, referred to as “sub-aperture measurements”, for constructing a composite optical measurement of the test object, presumably a “full-aperture measurement”. The process of combining the individual optical measurements is referred to as “stitching”. Data is typically collected from the individual measurements in the form of local data maps, which are “stitched” together to form a composite global data map. Two main approaches to “stitching” are used, both based on exploiting redundant data within regions of overlap between adjacent measurements.  
         [0003]     One of the two main approaches to “stitching” starts with a first local data map and determines differences from an adjacent second local data map within a region of overlap between the two local data maps. The orientation of the second local data map is adjusted with respect to the first local data map to minimize differences within the overlap region. Any remaining differences within the overlap region are averaged to complete a junction between the two local data maps and create a combined map. The local data maps collected by additional measurements are similarly joined to the combined data map, one at a time, to produce a composite global data map. The sequential assembly of the composite global data map leads to cumulative errors, which propagate through assembly generations, and the results are dependent on the order at which the local data maps are stitched together.  
         [0004]     The other of the two main approaches provides for collectively minimizing differences within all of the regions of overlap between the local data maps by iterating over ranges of possible individual local data map orientations. The progress of each iteration is checked against the resulting changes to the differences within the overlap regions. The iterative solution specifies orientations of each of the local data maps for assembling a composite global data map. Although good results are possible, processing time, particularly for large numbers of measurements, can exceed reasonable wait times for measuring parts in succession. Some iterative stitching solutions can require one hour or even several hours of processing.  
       SUMMARY OF INVENTION  
       [0005]     Improved processing times for combining high resolution images can be achieved in accordance with the invention using closed-form solutions. In one or more of the preferred embodiments, differences between adjacent local images within regions of overlap are given parametric descriptions that provide a basis for a merit function to evaluate similar parametric descriptions of orientation or form variations among the local images. High-resolution data within the local images is maintained while collectively assembling the local images into a composite global image. The orientation variations calculated for assembling the composite global images collectively minimize residual errors within the regions of overlap measured according to the merit function as a departure from a null or other specified condition regarding the parametric descriptions of the overlap regions.  
         [0006]     One version of the invention as a method of relating local data maps for forming a composite global data map starts by evaluating overlapping regions of local data maps to define a plurality of difference maps. A set of parameters is fit to the difference maps to quantify initial differences between the overlapping regions of the local data maps. A corresponding set of parameters is defined, which can be varied in value for altering orientations of the local data maps. A set of linear equations is solved to determine the parameter values of the local data maps that satisfy a merit function incorporating the parameter values of the difference maps.  
         [0007]     The set of parameters fit to the difference maps can, for example, include coefficients of a difference surface. The set of parameter values that alter orientations of the local data maps can include similar surface coefficients. The solution of the related linear equations determines the surface coefficients of the local maps required to compensate for the surface coefficients fit to the difference maps. The differences between surface coefficients of the overlapping local data maps can be collectively estimated by way of a linear regression against the surface coefficients of the corresponding difference maps. Most advantageously for minimizing processing time, the surface coefficients of the local data maps are estimated from a closed set of linear equations.  
         [0008]     Examples of the parameters for fitting the difference maps include piston and tilt terms of difference surfaces. Corresponding piston and tilt terms can be used for estimating the orientations of the local data maps as surfaces of orientation. Differences between the individual terms of the overlapping local data maps can be matched to the individual terms of the corresponding difference maps, and any residual errors can be collectively distributed among the matches. For example, a least squares regression analysis can be used for minimizing the residual errors. The matches can also be weighted for unevenly distributing the residual errors among the matches based on characteristics of the overlapping regions. One preferred approach weights the matches according to sizes of the overlapping regions. Alternatively, the local data maps can overlap each other through similarly sized and shaped regions of overlap to equalize or eliminate the weighting.  
         [0009]     The manipulation of parameters, such as piston and tilt, is based on an assumption that the local data sets themselves are subject to such errors. Accordingly, the alteration of the local data sets to reflect different values of these parameters for the purpose of stitching does not involve a significant loss of information. Higher order terms such as power, a measure of curvature, can also be used for matching issues of form, where the local data sets themselves are subject to such errors.  
         [0010]     Another version of the invention as a method of stitching together overlapping measurements of a test object starts with acquiring overlapping images of different portions of the test object as a plurality of local data maps encoding imaging information about the test object. Differences are described between overlapping regions of the local data maps as oriented difference surfaces. Relationships are established among the local data maps as oriented local surfaces. Descriptions of the oriented local surfaces are determined based on collectively matching differences between the oriented local surfaces of overlapping local data maps and the oriented difference surfaces of the corresponding overlapping regions. The local data maps are combined into a composite data map based on the descriptions of the oriented local surfaces.  
         [0011]     Preferably, the differences between overlapping regions are described as coefficients of the difference surfaces. The relationships established among the local data maps preferably include a definition of terms for describing relative orientations among the local data maps. The descriptions of the oriented local surfaces preferably include coefficients of the local surfaces that correspond to the coefficients of the difference surfaces. The local data maps can be combined by altering the local data maps according to the descriptions of corresponding local surfaces.  
         [0012]     Linear equations in a closed form are preferably solved to collectively determine one or more descriptions of the oriented local surfaces. The differences between the oriented local surfaces of overlapping local data maps and the oriented difference surfaces can be associated with residual errors that are collectively minimized according to a regression algorithm. The residual errors can be weighted to accommodate different overlapping regions. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]      FIG. 1  is a schematic depiction of an optical measuring system in which a test object is mounted on a translatable stage beneath an imaging device for moving a test surface of the test object across a field of view of the imaging device.  
         [0014]      FIG. 2  is a plan view of a pattern of local data maps captured by the imaging device at different locations across the test surface, which overlap at their edges to provide information for assembling a composite global map of the test surface.  
         [0015]      FIG. 3  is an edge view of an image plane of the imaging device taken as a cross section through one row of the local data maps showing the local data maps variously offset and inclined to the image plane.  
         [0016]      FIG. 4  is a perspective view showing the misorientation of local data maps projected above a reference plane as well as their intended overlap within the reference plane.  
         [0017]      FIG. 5  is a plan view of an alternative pattern of local data maps captured by the imaging device at different locations across the test surface, including an underlying layer of substantially contiguous local data maps and an overlying layer with local data maps centered at the corner junctions of the underlying layer data maps. 
     
    
     DETAILED DESCRIPTION  
       [0018]     The invention is preferably practiced with a digital image processing system having a field of view that is limited with respect to the intended field to be imaged. Digital images are taken from different relative positions so that the images collectively cover the intended field.  
         [0019]      FIG. 1 , by way of example, depicts a digital image processing system  10 , incorporating digital imaging device  12  in the form of an interferometric measuring instrument, for measuring surface features of a test surface  14  on a test object  16 . Such interferometers can be arranged to operate at normal or grazing incidence over the limited field of view using coherent or non-coherent light. In the embodiment shown, the light source is a laser  18 , which illuminates a portion of the test surface  14  for gathering topographical information. A digital camera  20  having a limited field of view with respect to the test surface  14  captures interferometric images of portions of the test surface  14  as local data maps containing topographical information.  
         [0020]     The test object  16  is mounted on a motion stage  22  that controls relative motion of the test object  16  with respect to the digital imaging device (interferometer)  12  for measuring different portions of the test surface  14 . The motion stage  22  has two orthogonal linear axes of motion; one along an “X” coordinate axis and one along a “Y” coordinate axis. A first translation stage  24  moves the test object  16  along the X coordinate axis under the control of a first drive  26 , which is instrumented to provide position feedback information for measuring motion of the stage  24  along the X coordinate axis. A second translation stage  28  moves the test object  16  along the Y coordinate axis under the control of a second drive  30 , which is instrumented to provide position feedback information for measuring motion of the stage  28  along the Y coordinate axis. The two translation stages  24  and  28  are stacked together on a common base  30  that also supports the digital imaging device  12  within a common enclosure.  
         [0021]     A controller  34 , under the instruction of a computer processor  36 , controls operation of the motion stage  22  providing desired translations of the test object  16  through a succession of positions along the two coordinate axes X and Y. The associated instrumentation of the coordinate axes X and Y provides position feedback information that can be used for better controlling the movements of the translation stages  24  and  28  through successive positions at which images recorded as the local data maps overlie the entire area of the test surface  14  intended for measurement. The X-Y coordinate information also serves to locate the individual measurements of the test surface  14  with respect to each other.  
         [0022]     Although the motion stage  22  is shown with two rectilinear axes for translating the test surfaces  14  through the field of view captured by the digital camera  20 , other relative motions can also be used for capturing successive images of different portions of the test surface  14 . For example, one or more rotational motions can be used alone or in combination with translational motions to stepwise capture different portions of the test surface  14 . Motion can be imparted to the test part  14 , to the digital imaging device  12 , or to both the test part  14  and the digital imaging device  12  to effect the desired relative motion.  
         [0023]     An array of overlapping local data maps  40   a  through  40   p  is depicted in  FIG. 2  as an example of pattern of the views that can be captured by the digital camera  20  for covering the desired area of the test surface  14 . Each of the local data maps overlaps with at least three other local data maps. For example, the local data map  40   a  overlaps with the local data map  40   b  within an overlap region AB, overlaps with the local data map  40   e  within the overlap region AE, and overlaps with the local data map  40   f  within the smaller overlap region AF.  
         [0024]     The digital image processing system  10  is presumed to accurately locate each of the local data maps  40   a - 40   p  along the X and Y coordinate axes of the motion stage  22  for which feedback is available. However, the local data maps  40   a - 40   p  are subject to some translational variation along an orthogonally related “Z” coordinate axis, referred to as “piston”, as well as some angular variation with respect to the Z axis as referenced in the X-Z and Y-Z planes, referred to as “tilt”.  
         [0025]      FIG. 3  depicts exaggerated piston and tilt variations among the local data maps  40   a - 40   d  as seen in the X-Z plane. The local data map  40   a  has a positive piston variation displaced slightly above a theoretical image plane  42  coincident with an X-Y plane. The local data map  40   b  has a tilt variation inclined positively with respect to the Z-axis. The local data map  40   c  has a negative piston variation and a negative tilt variation. The local data map  40   d  has a positive piston variation and a positive tilt variation.  
         [0026]     Generally, for purposes of “stitching”, i.e., combining the local data maps together to form a composite global data map, the image plane  42  is not available as an absolute reference. However, the regions of overlap can be defined as difference surfaces that quantify the differences between the overlapping portions of the local data maps. The invention also provides in its preferred form for parametric descriptions of the difference surfaces in terms of such variables as piston and tilt through which the local data maps are subject to variation.  
         [0027]     For purposes of calculation, a set of K total local data maps m 1 , m 2 , . . . m K  corresponding, for example, to the local data maps  40   a - 40   p  are collected, overlapping each other through N overlapped regions designated as p 1 , p 2 , . . . p N . A set of N total difference maps d 1 , d 2 , . . . d N  are calculated from the differences between the overlapping data maps, e.g., m 2 -m 1 , within the overlapped regions, e.g., p 1 . Ignoring noise, the difference maps d 1 , d 2 , . . . d N  should represent oriented planes, which can be described by a set of piston terms dp 1 , dp 2 , . . . dp N , representing displacement of the planes along the Z axis, a set of X-tilt terms dx 1 , dx 2 , . . . dx N , representing tilt of the planes in the X-Z plane, and a set of Y-tilt terms dy 1 , dy 2 , . . . dy N , representing tilt of the planes in the Y-Z plane. Conventional first-order fitting techniques can be used to derive the piston dp 1 , dp 2 , . . . dp N  term, the X-tilt term dx 1 , dx 2 , . . . dx N , and the Y-tilt term dy 1 , dy 2 , . . . dy N  from the difference maps d 1 , d 2 , . . . d N .  
         [0028]     A preferred approach to stitching the local data maps m 1 , m 2 , . . . m K  together involves determining the corresponding piston and tilt terms through which the local data maps can be relatively oriented so that the piston and tilt terms dp 1 , dp 2 , . . . dp N , dx 1 , dx 2 , . . . dx N , and dy 1 , dy 2 , . . . dy N  of the remaining difference maps d 1 , d 2 , . . . d N  are as small as possible. For example, considering a difference map d 1  constructed from the difference between local data maps m 2  and m 1  within the overlapped region p 1 , the X-tilt term dx 1  of the difference map d 1  can be minimized by relatively inclining the local data maps m 1  and m 2  by a corresponding amount. Referencing, for example, the X-tilt values superimposed upon the local data maps as mx 1 , mx 2 , . . . mx K , the difference between the superimposed X-tilt values of overlapping local data maps, e.g., mx2-mx1, should match the value of the X-tilt term, e.g., dx 1 , of the difference map, e.g., d 1 . Thus, the X-tilt terms dx 1 , dx 2 , . . . dx N  that are fit to the difference maps d 1 , d 2 , . . . d N  provide merit values against which corresponding changes mx 1 , mx 2 , . . . mx K  to the local data maps m 1 , m 2 , . . . m K  can be collectively assessed. Similarly, the piston terms dp 1 , dp 2 , . . . dp N  and the Y terms dy 1 , dy 2 , . . . dy N  also provide merit values against which corresponding piston changes mp 1 , mp 2 , . . . mp K  and corresponding Y-tilt changes my 1 , my 2 , . . . my K  to the local data maps m 1 , m 2 , . . . m K  can be collectively assessed.  
         [0029]     For example, a least squares regression can be constructed as follows:  
       T   =       ∑     n   =   1     N     ⁢       (       tx   n     -     mx   i     +     mx   j       )     2           
 
 where mx i  and mx j  are the X-tilt values for the overlapping local data maps corresponding to the difference map described by the X-tilt value dx n  and T is the sum of the remaining X tilts of the difference maps d 1 , d 2 , . . . d N  after having adjusted the local data maps m 1 , m 2 , . . . m K  by the X-tilt changes mx 1 , mx 2 , . . . mx K . The sum T is minimized to determine optimized orientations of the local data maps with respect to each other for combining the local data maps into a composite global data map. 
 
         [0030]     Each of the terms can be differently weighted by a coefficient W N  to relatively adjust the significance of the individual difference maps d 1 , d 2 , . . . d N  according to one or more criteria as follows:  
       T   =       ∑     n   =   1     N     ⁢         W   n     ⁡     (       tx   n     -     mx   i     +     mx   j       )       2           
 
         [0031]     For example, the terms can be weighted according to the amount of area occupied by the difference maps, by the locations of the difference maps, or by the number of difference maps associated with each of the local data maps m 1 , m 2 , . . . m K . The weighting coefficient could also be based on a measure of the reliability of the data or the uncertainty of the data. This could be a statistical measure, such as variance or standard deviation, or an independently measured value, such as contrast or average modulation.  
         [0032]     For minimizing T, a set of conditions can be established, including:  
           2   ⁢     ∂   T         ∂     f   k         =   0       
 
 where k ranges from 2 to K. 
 
         [0033]     Considering individual data maps m k  can be overlapped by q other maps, i.e., m k1  to m kq , then the above expression can be expanded into the following linear equation: 
 
2·δ k     —k1     ·tx   k     —k1   + . . . +2·δ k     —     ki   ·tx   k     —ki   + . . . +2·δ k     —     kq   ·tx   k     —     kq +2· q·mx   k −2· mx   k1 −2· q·mx   ki − . . . 2· mx   kq =0 
 
         [0034]     Balancing terms, the equation can be rewritten as: 
 
δ k     —k1     ·tx   k     k1   + . . . +δ k     ki     ·tx   k     —     ki + . . . +δ k     —     kq   ·tx   k     —     kq   =−q·mx   k   +mx   k1   + . . . +mx   ki   + . . . +mx   kq  
 
 where k i  varies from 1 to q, indicating the number i map overlapped with the number k map. The value of δ k     —     ki  is either 1 or −1, depending on the order of overlap. 
 
         [0035]     Adding the above-mentioned weight coefficient W, the linear equation can be rewritten as:  
           ∑     ki   =   1     q     ⁢       W   k_ki     ·     δ   k_ki     ·     tx   k_ki         =         -     (       ∑     ki   =   1     q     ⁢     W   k_ki       )       ·     mx   k       +       ∑     ki   =   1     q     ⁢     (       W   k_ki     ⁢     mx   ki       )             
 
         [0036]     Since the values of mx 1  . . . mx k  are not independent, mx 1  is chosen as a known value, preferably zero for easy computation. The set of conditions:  
           ∂   T       ∂     f   k         =   0       
 
 where (k=2, K) provide K−1 closed linear equations for K−1 unknowns and can be solved using a conventional linear system solver. 
 
         [0037]     The weight coefficient W N  can be based on a number of factors, as explained above, and can also be related to a threshold for such purposes of reducing the influence of noise. For example, if the overlapped size or other chosen factor is less than a particular value, the weight can be set to zero for disregarding unreliable data. Areas of overlap occupying at least 20 percent of the individual data maps are preferred.  
         [0038]     Weighting can also be applied in other ways, influencing different stages of the calculations. For example, the accuracy of individual pixel values can be assessed by attendant measures of contrast, and the individual pixels that contribute to the parametric descriptions of the difference maps d 1 , d 2 , . . . d N  can be weighted according to their contrast. The values of higher contrast pixels are generally regarded as more accurate than the values of lower contrast pixels. At the edges of measurement, contrast drops to zero, indicative of the relative lack of information (e.g., interferometric information) expressed by the pixels.  
         [0039]     Since the values of many more pixels are generally available than needed for parametrically defining the difference maps d 1 , d 2 , . . . d N , the parametric definitions can be based on a fewer number of higher contrast pixels or the pixels with higher contrast can be weighted progressively more than the pixels with lower contrast. The difference maps d 1 , d 2 , . . . d N  are based on the differences between overlapping pixels of the local data maps m 1 , m 2 , . . . m K , and each pixel pairing can be weighted according to the contrast of is lowest contrast pixel member.  
         [0040]     Phase measuring interferometry (PMI) and other techniques for converting intensity data into measures of optical path length dependent variables, such as height or distance, vary measuring conditions through one or more cycles of constructive and destructive interference. For example, the test object  16  can be relatively tilted or translated through the one or more cycles of constructive and destructive interference, or the laser source  18  can be varied in frequency to accomplish a similar result. The interference cycle provides a context within which pixel intensity values can be converted into such measures as height or distance. The amplitude of the interference cycle, also referred to as the amplitude of pixel intensity modulation, is a measure of contrast that affects how accurately pixel intensity values can be converted into the measures of height or distance. The greater the amplitude of pixel intensity modulation over a given range of optical path length variation (typically one-half the wavelength for normal incidence interferometry), the more accurately the intensity values can be converted into the measures of height or distance.  
         [0041]     Thus, each pixel intensity value together with its amplitude of modulation can be converted into a measure of surface height along with a measure of its relative accuracy. The pixel modulation amplitudes can be used as weighting factors for determining the relative contribution of individual pixel measurement values to collective assessments based on a set of the pixels. For fitting a difference surface (e.g., a plane) to the difference data maps d 1 , d 2 , . . . d N , the individual pixel difference pairings can be weighted unequally, based, for example, on the lower of the two modulation amplitudes of each pixel pairing.  
         [0042]     Modulation amplitudes can also be used as one of the factors for the weight W N  in the above calculations based, for example, on an overall averaging of the modulation amplitudes that contribute to each of the difference map d 1 , d 2 , . . . d N . Each pixel pairing relied on for parametrically defining the difference maps d 1 , d 2 , . . . d N , can be assigned one modulation amplitude according to the lower of its two modulation amplitudes, and the overall average of the assigned modulation amplitudes can be interpreted as a factor for weighting the difference map d 1 , d 2 , . . . d N .  
         [0043]     After correcting for the parametrically defined values of piston dp 1 , dp 2 , . . . dp N  and tilt dx 1 , dx 2 , . . . dx N  and dy 1 , dy 2 , . . . dy N , the remaining differences within the regions of overlap can be more accurately resolved by weighting the overlapping pixels before choosing representative values. Within the regions of overlap, the pixels of two or more of the reoriented local data maps overlie each other, but only one value for each pixel location enters the composite global data map. For choosing the one value at each pixel location, the modulation amplitudes associated with the original pixel values can be used to differentially weight the overlapping pixels before averaging or otherwise choosing the one value for the composite global data map.  
         [0044]     Amplitude modulation (i.e., contrast) can also be used as a weighting factor for pixels within conventional “stitching” routines for combining overlapping local data maps into a composite global data map. For example, one known iterative routine that converges toward minimal value difference maps weights the pixel pairing differences unevenly based on measures of statistical variation. More than one reading is taken for each pixel, and the variation among the readings is treated as a measure of reliability, with lower variation associated with higher reliability. A measure of contrast, such as amplitude modulation, could be used as an alternative pixel weighting in the conventional routines so that pixel pairings based on more accurate measures are weighted more heavily toward minimizing the difference maps. The measures of pixel contrast can be applied on a pixel-by-pixel basis or more broadly over an array of pixels as collective weights for assessing contributions from local or difference data maps.  
         [0045]     Each parameter, including piston, X tilt, and Y tilt as well as any others defining the expected errors in the difference maps d 1 , d 2 , . . . d N  can provide a basis for directly calculating corresponding parameter values mp 1 , mp 2 , . . . mp K , mx 1 , mx 2 , . . . mx K , and my 1 , my 2 , . . . my K  for altering the relative orientations of the local data maps m 1 , m 2 , . . . m K . For example, curvature can be included among the parameters if the data maps m 1 , m 2 , . . . m K  are subject to such errors. Alternative parameter representations of the difference maps d 1 , d 2 , . . . d N  can also be made. For example, Zernike or other polynomial functions can also be fit to the difference maps to provide appropriate parametric descriptions.  
         [0046]     A schematic depiction of the stitching process is shown in  FIG. 4 . The relative image orientation of three local data maps  50   a ,  50   b , and  50   c  is shown above a reference plane  52 . After making the parametric adjustments to the orientations of the local data maps  50   a ,  50   b , and  50   c , the three local data maps  50   a ,  50   b , and  50   c  all lie together on the same reference plane  52 , which can be coincident with the original orientation of one of the local data maps, e.g., map  50   a . Once oriented to the reference plane  52 , data within the overlapping regions AB, BC, and CA on the reference plane  52  can be averaged together. Weighting can also be applied between the local data maps or to individual pixels within the local data maps to reduce the influence of noise. For example, data well within one local data map can be favored over overlapping pixels taken from an edge of another data map.  
         [0047]     The local data maps can be captured in patterns that reduce the need for applying weightings among the difference maps. For example,  FIG. 5  shows a pattern of underlying data maps  60   a  through  60   p  arranged contiguously or minimally overlapping each other. An overlying pattern of data maps  62   r  through  62   z  locates the overlying data maps  62   r  through  62   z  in positions that overlap equal portions of the underlying data maps  60   a  through  60   p . Thus, all of the areas of overlap are equally sized. For example, the size of the overlap areas AR, BR, ER, and FR are all equal.  
         [0048]     Although the above-described data maps take a rectangular form, the data maps can be similarly collected and processed in a variety of different forms. For example, some digital imaging systems produce images (interpretable as local data maps) in a circular form. Other variations such as in the digital imaging system, the relative motion effector, the merit parameters, and the closed-form processing algorithms, can be made in accordance with the overall teaching of the invention.