Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISPLACEMENT SENSOR
Document Type and Number:
WIPO Patent Application WO/2017/142408
Kind Code:
A1
Abstract:
The invention relates to a computer-implemented method for processing images of a 2D coded mask pattern that is imaged by an optical system on an image sensor, the method comprising: multiplying an image of the 2D coded mask pattern comprising a chess board pattern by a window function to obtain an input image; applying a two-dimensional (2D) Fast Fourier Transform (FFT) to the input image to obtain a complex matrix; determining a plurality of local maxima in the absolute values of the complex matrix; performing a 2D fit of positions of the determined plurality of the local maxima to obtain a position; calculate complex arguments of the peak values using interpolation in 2D; and, calculate positions of the squares by combining the peak positions that provide the square sizes and the complex arguments that provide the shift.

Inventors:
BOUWENS BRAM THEODORUS (NL)
Application Number:
PCT/NL2017/050095
Publication Date:
August 24, 2017
Filing Date:
February 16, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FOM-NIKHEF (NL)
International Classes:
G01D5/26; G01D5/32; G01D5/34
Foreign References:
EP2538179A22012-12-26
DE102006010161A12007-08-30
EP1620828A12006-02-01
EP2083209A12009-07-29
Other References:
NIKKIE DEELEN: "NIKHEF Alignment Sensors developed for CLIC Status and Latest Results", 28 January 2015 (2015-01-28), Clic Workshop 2015, Zurich, pages 1 - 15, XP055336145, Retrieved from the Internet [retrieved on 20170117]
"Masters thesis", 2007, TU DELFT, article "FOAM: An Image Analysis Routine for the ATLAS Barrel Muon Spectrometer Alignment System"
Attorney, Agent or Firm:
DE VRIES & METMAN et al. (NL)
Download PDF:
Claims:
CLAIMS

1. A method for determining a position of a reference point on the basis of a coded mask comprising:

providing an image of part of the coded mask, the image comprising a regular chess board pattern of dark and light areas; coordinate information including linear

sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction;

determining a row and column coordinate of a reference point in the image using the coordinate information including :

forming a binary matrix comprising entries identifying dark and light areas associated with the

coordinate information, a dark area being represented by a first binary value and a light area being represented by a second binary value;

determining the row and column coordinates of a pivot point close to the reference point, including:

selecting elements in the matrix as candidate pivot points, calculating for each selected candidate pivot point a penalty score on the basis of a predetermined set of binary values in the matrix and identifying the candidate pivot points with the lowest penalty scores as the best candidate pivot points.

2. Method according to claim 1 wherein forming the binary matrix includes transforming dark and light areas in the image into first and second binary values respectively and removing binary values in the binary matrix associated with the chess board pattern using a XOR operation; and/or, wherein determining the row and column coordinate includes: using the candidate pivot point as a marker for identifying a sequence of binary values in the row and column direction and transforming the sequence of binary values into the row and column coordinate, counting discrepancies in the binary values found, adding the discrepancies to the penalty for a total discrepancy count, and selecting the candidate pivot point with the lowest total discrepancy count.

3. Method according to claims 1 or 2 further comprising :

determining a row and column offset associated with the reference point using a Fourier analysis of the regular chess board pattern in the image, the position of the

reference position being defined by the row and column coordinates and the row and column offset

4. Method according to claim 3 wherein determining a row and column offset further comprises:

determining a complex matrix by subjecting the image to a two-dimensional (2D) Fast Fourier Transform (FFT);

determining a plurality of local maxima in the absolute values of the complex matrix, the local maxima comprising the first and further harmonics of the chess board pattern;

calculating the row and column offset on the basis of the position of at least part of the plurality of local maxima and on the basis of the complex arguments associated with at least part of the plurality of local maxima.

5. Method according to claim 4 wherein the position of the local maxima provides a measure for the size of light and dark areas in the image and the complex arguments provide a shift in the row and column direction, the shift being a fraction of the size of the light and dark areas.

6. Method according to claims 3-5 wherein before performing the Fourier analysis the image is multiplied with a window function, preferably a Hann window function.

7. Method according to claims 3-6 wherein before performing the Fourier analysis the pixel values of the image are zero padded, preferably the zero padding includes adding rows and columns of zero values around the image.

8. Method according to any of claims 1-7 wherein the coded mask is optically imaged onto an image sensor using an optical mask and an optical lens system. 9. Method according to any of claims 1-7 wherein the coded mask is capacitively imaged onto a capacitive pixel sensor using a metal mask.

10. Method according to any of claims 1-9 wherein the coded mask pattern comprises coordinate areas arranged in the row and column direction, each coordinate area forming an m x n array of blocks,

a first row of squares along a first side of the coordinate area comprising a first code pattern indicative of a first coordinate;

a second row of squares along the second side of the coordinate area comprising a second code pattern

indicative of a second coordinate; and,

a pivot square located in the corner defined by the first and second side of the coordinate area.

11. A sensor system for determining a position of a reference point on the basis of a coded mask comprising:

a coded mask comprising a regular chess board pattern of dark and light areas; coordinate information including linear sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction;

a sensor for capturing an image of at least part of the coded mask; a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium and the sensor, wherein responsive to

executing the computer readable program code, the processor is configured to perform executable operations comprising:

capturing an image of part of the coded mask, the image comprising a regular chess board pattern of dark and light areas; coordinate information including linear

sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction;

determining a row and column coordinate of a reference point in the image using the coordinate information including :

forming a binary matrix comprising entries identifying dark and light areas associated with the

coordinate information, a dark area being represented by a first binary value and a light area being represented;

determining the row and column coordinates of a pivot point close to the reference point, including:

selecting elements in the matrix as candidate pivot points, calculating for each selected candidate pivot point a penalty score on the basis of a predetermined set of binary values in the matrix and identifying the candidate pivot points with the lowest penalty scores as the best candidate pivot points.

12. A sensor system for determining a position of a reference point on the basis of a coded mask comprising:

a coded mask comprising a regular chess board pattern of dark and light areas; coordinate information including linear sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction; a sensor for capturing an image of at least part of the coded mask;

a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium and the sensor, wherein responsive to

executing the computer readable program code, the processor is configured to perform executable operations comprising:

determining a row and column coordinate of a reference point in the image using the coordinate information and determining a row and column offset associated with the reference point using a Fourier analysis of the regular chess board pattern in the image, the position of the reference position being defined by the row and column coordinates and the row and column offset;

wherein before performing the Fourier analysis the image is multiplied with a window function, preferably a Hann window function and wherein the pixel values of the image are zero padded, preferably the zero padding include adding rows and columns of zero values around the image.

13. System according claims 11 or 12 wherein the coded mask is optically imaged onto an image sensor using an optical mask and an optical lens system.

14. System according to claims 11 or 12 wherein the coded mask is capacitively imaged onto a capacitive pixel sensor using a metal mask. 15. Computer program product comprising software code portions configured for, when run in the memory of a computer, executing the method steps according to any of claims 1-10.

Description:
DISPLACEMENT SENSOR

FIELD OF THE INVENTION

Generally, the invention relates to the field of displacement sensor systems. More specifically, the invention relates to methods and systems for accurately and/or reliably determining displacements.

BACKGROUND OF THE INVENTION

High-precision equipment, like translation and rotation stages, requires accurate calibration. To that end, displacement sensors are needed that are capable of

accurately monitoring the alignment of the stages in the equipment. For example, the Red Alignment System Nikhef (RASNIK) was developed in order to monitor the alignment of detectors in the ATLAS spectrometer at CERN with a resolution in the order of ten microns. Over six thousand alignment systems were needed in order to monitor the overall

structural integrity of the structure with high accuracy, so the design of the sensors should be small, simple, robust and relatively cheap.

The RASNIK system is an example of an optical system that is based on a mask that is projected by a lens onto an image sensor. The image seen by the sensor is analysed to obtain the coordinates of the mask in the mask plane, the magnification factor, the ratio between the distances of the sensor and the mask to the lens, and the relative rotations between the mask and the sensor around the optical axis. The mask was designed to optimise the total length of the contours in both directions, leading to the choice of a chess board pattern. A small shift of a chess board pattern will be detected as a shift of the black/white transitions. To detect larger shifts code fields are added into the pattern. The alignment system uses an image analysis

algorithm to find the positions of the squares. An early image analysis algorithm was based on the steepest descent method. This gave excellent measurements on ideal images, but it was too sensitive to image imperfections. These problems could be solved by application of image enhancement

techniques that are based on a 2D Fourier analysis of the checkerboard pattern. For example, M. Kea, describes in his master's thesis "FOAM: An Image Analysis Routine for the ATLAS Barrel Muon Spectrometer Alignment System" , Masters thesis, TU Delft, 2007 an algorithm which uses a 2D FFT producing a 2D spectrum with two maxima presenting the frequency and orientation of the black and white square pattern .

The used method produced measurement inaccuracies due to image imperfections that may occur during operation. In addition, a cross-correlation method based on the measured 2D FFT spectrum was used in order to determine the

translation of the chess board pattern. This method is compute-intensive and yielded measurement accuracies of around a few microns, i.e. accuracies which are still orders of magnitude higher than the accuracies that would be

theoretically possible, i.e. approx. 10 nm for a 10 cm long projective system and 100 nm for a 7 m long projective system. Furthermore, a method is desired that allows realtime applications with the FFT algorithm as the time-limiting factor and that has a reduced sensitivity to image

imperfections. This way the applications of the displacement sensor may be extended to high-performance applications such as real-time (3D) vibration analysis.

As the foregoing illustrates, current displacement sensor systems suffer from sub-optimal accuracy and

precision, are sensitive to image imperfections, and are not scalable for high performance, real-time applications. Hence, there is a need in the art for improved methods and systems for accurately and/or reliably determining displacements. SUMMARY OF THE INVENTION

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment

(including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit,"

"module" or "system." Functions described in this disclosure may be implemented as an algorithm executed by a

microprocessor of a computer. Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium (s) having computer readable program code embodied, e.g., stored, thereon .

Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor, in particular a microprocessor or central processing unit (CPU) , of a general purpose computer, special purpose

computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer, other programmable data processing apparatus, or other devices create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the

flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the

flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical

function (s) . It should also be noted that, in some

alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. It is an objective of the invention to reduce or eliminate at least one of the drawbacks known in the prior art. One aspect of the invention discloses a method for determining a position of a reference point on the basis of a coded mask comprising: providing an image of part of the coded mask, the image comprising a regular chess board pattern of dark and light areas; coordinate information including linear sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction; determining a row and column coordinate of a reference point in the image using the coordinate information including: forming a binary matrix comprising entries identifying dark and light areas

associated with the coordinate information, a dark area being represented by a first binary value and a light area being represented by a second binary value; determining the row and column coordinates of a pivot point close to the reference point, including: selecting elements in the matrix as candidate pivot points, calculating for each selected

candidate pivot point a penalty score on the basis of a predetermined set of binary values in the matrix and

identifying the candidate pivot points with the lowest penalty scores as the best candidate pivot points.

In an embodiment, forming the binary matrix

includes transforming dark and light areas in the image into first and second binary values respectively and removing binary values in the binary matrix associated with the chess board pattern using a XOR operation. In an embodiment, determining the row and column coordinate may include: using the candidate pivot point as a marker for identifying a sequence of binary values in the row and column direction and transforming the sequence of binary values into the row and column coordinate, counting discrepancies in the binary values found, adding the discrepancies to the penalty for a total discrepancy count, and selecting the candidate pivot point with the lowest total discrepancy count.

Hence, a coded mask is used to accurately determine displacements of an image of a coded mask wherein small scale displacements and rotations are determined by analysing a chess board pattern in the image of coded mask, while large scale displacements of the board pattern are determined on the basis of (coded) coordinate information embedded in the image of the coded mask. On the basis of part of an image of a coded mask, a matrix of binary values is produced wherein dark areas of the image are represented by a first binary value (e.g. a "1") and light areas are represented by a second binary value (e.g. a "0") . The information in the binary matrix representing the chess board pattern may be removed by a suitable XOR operation thereby exposing the coordinate information in the matrix including coordinate areas, each coordinate area comprising a pivot block and digital representations (bit sequences) of row and column coordinates. Then the entries in the binary matrix

representing the pivot blocks may be determined by selecting an entry in the matrix as a candidate pivot block and

determining a penalty score on the basis of the binary values in a predetermined set of entries in the binary matrix. This process may be repeated for different entries in the binary matrix, the different entries representing different

candidate pivot points. The candidate pivot points may be used as a marker for reading binary row and column

coordinates, which may contain a number of discrepancies, to be added to the penalty for the total discrepancy count. The method according to the invention allows a process for determining the coordinate information in the image that is robust against optical imperfections due to e.g. dust, blurr, moisture, etc.

In an embodiment, the method may further comprise: determining a row and column offset associated with the reference point using a Fourier analysis of the regular chess board pattern in the image, the position of the reference position being defined by the row and column coordinates and the row and column offset.

In an embodiment, determining a row and column offset further may comprise: determining a complex matrix by subjecting the image to a two-dimensional (2D) Fast Fourier Transform (FFT); determining a plurality of local maxima in the absolute values of the complex matrix, the local maxima comprising the first and further harmonics of the chess board pattern; calculating the row and column offset on the basis of the position of at least part of the plurality of local maxima and on the basis of the complex arguments associated with at least part of the plurality of local maxima.

In an embodiment, the position of the local maxima may provide a measure for the size of light and dark areas in the image and the complex arguments provide a shift in the row and column direction, the shift being a fraction of the size of the light and dark areas.

In an embodiment, before performing the Fourier analysis the image is multiplied with a window function, preferably a Hann window function.

In an embodiment, before performing the Fourier analysis the pixel values of the image are zero padded, preferably the zero padding includes adding rows and columns of zero values around the image.

Hence, using a suitable window function in combination with a zero-padding process enables accurate determination of the positions of local maxima in the complex matrix of the Fourier transform of the imaged coded mask. This way the reference position can be determined with an accuracy well below 100 nm, preferably below 60 nm.

In an embodiment, the coded mask is optically imaged onto an image sensor using an optical mask and an optical lens system. In an embodiment the coded mask is capacitively imaged onto a capacitive pixel sensor using a metallic mask, e.g. a glass plate with a metallic thin-film mask structure.

In an embodiment, the coded pattern may comprise coordinate areas arranged in the row and column direction, each coordinate area forming an m x n array of blocks, a first row of squares along a first side of the coordinate area comprising a first code pattern indicative of a first coordinate; a second row of squares along the second side of the coordinate area comprising a second code pattern

indicative of a second coordinate; and, a pivot square located in the corner defined by the first and second side of the coordinate area.

In a further aspect, the invention may relate to a sensor system for determining a position of a reference point on the basis of a coded mask, the system comprising: a coded mask comprising a regular chess board pattern of dark and light areas; coordinate information including linear

sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction;

a sensor for capturing an image of at least part of the coded mask;

a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium and the sensor, wherein responsive to

executing the computer readable program code, the processor is configured to perform executable operations comprising:

capturing an image of part of the coded mask, the image comprising a regular chess board pattern of dark and light areas; coordinate information including linear

sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction;

determining a row and column coordinate of a reference point in the image using the coordinate information including:

forming a binary matrix comprising entries identifying dark and light areas associated with the

coordinate information, a dark area being represented by a first binary value and a light area being represented by a second binary value;

determining the row and column coordinates of a pivot point close to the reference point, including:

selecting elements in the matrix as candidate pivot points, calculating for each selected candidate pivot point a penalty score on the basis of a predetermined set of binary values in the matrix and identifying the candidate pivot points with the lowest penalty scores as the most likely pivot points to yield the lowest total discrepancy count, combining the number of discrepancies in the decoded coordinate values and the penalty.

In yet a further aspect, the invention may relate to a sensor system for determining a position of a reference point on the basis of a coded mask comprising: a coded mask comprising a regular chess board pattern of dark and light areas; coordinate information including linear sequences of dark and light areas embedded in the row and column direction of the chess board pattern; and, pivot points defining crossing points of the linear sequences in the row and column direction; a sensor for capturing an image of at least part of the coded mask; a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium and the sensor, wherein responsive to executing the computer readable program code, the processor is configured to perform executable operations comprising: determining a row and column coordinate of a reference point in the image using the coordinate information and determining a row and column offset associated with the reference point using a Fourier analysis of the regular chess board pattern in the image, the position of the reference position being defined by the row and column coordinates and the row and column offset; wherein before performing the Fourier analysis the image is multiplied with a window function, preferably a Hann window function and wherein the pixel values of the image are zero padded, preferably the zero padding include adding rows and columns of zero values around the image.

In an embodiment the coded mask may be optically imaged onto an image sensor using an optical mask and an optical lens system.

In an embodiment, the coded mask may be

capacitively imaged onto a capacitive pixel sensor using a metallic mask, e.g. a glass substrate comprising a thin-film metallic mask structure.

Still other aspects of the invention relate to a computer program and a, preferably non-transitory, computer readable storage medium storing the computer program. The computer program contains instructions (software code

portions) which, when executed by a processor of a data processing system, carry out steps of one or more of the methods described above.

The present invention will further be illustrated with reference to the attached drawings, which schematically show various embodiments according to the present invention. It will be understood that the present invention is not in any way restricted to these specific embodiments. Moreover, combinations of any of the embodiments and limitations are envisioned by the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the invention will be explained in greater detail by reference to exemplary embodiments shown in the drawings, in which:

Fig. 1 depicts a schematic of a displacement sensor system according to an embodiment of the invention.

Fig. 2 depicts a schematic of a coded mask that may be used by a displacement sensor system according to the invention.

Fig. 3 depicts a 2D Fourier spectrum of a coded mask ;

FIG. 4A and 4B depict graphs that are used in accurately determining the position of peaks in the 2D

Fourier spectrum of an image of the coded mask;

Fig. 5 depicts a schematic of a code pattern that is derived from an image of a coded mask;

Fig. 6A—6C depicts the process of determining coordinates of a reference point in an image of a coded mask according to an embodiment of the invention;

Fig. 7 depicts the relative displacement of a high- precision linear stage measured by a displacement sensor according to an embodiment of the invention;

Fig. 8 provides a schematic of a data processing system operable to implement one or more aspects of the present invention.

DETAILED DESCRIPTION OF THE DRAWINGS Fig. 1 depicts a schematic of a displacement sensor system according to an embodiment of the invention. In particular, Fig. 1 depicts an optical displacement sensor system wherein an optical system projects an image of a coded mask onto the imaging plane of an image sensor, e.g. a CMOS or a CCD image sensor. The system may comprise a light source 102, such as e.g. a light emitting diode (LED) which produces light (possibly, infrared light) which, after being diffused by a diffuser 104 in order to reduce or eliminate the

imperfections of the light source 102, illuminates a mask 106. The coded mask 106 comprises a coded pattern, comprising a black and white chess-board pattern, wherein some lines and/or some columns may comprise a code. For example, the pattern may comprise one in nine lines and one in nine columns of a conventional chess board pattern having an 8-bit number encoded into it using a bit-wise XOR operation. This pattern will be referred to as a coded mask pattern.

Fig. 2A provides a schematic illustration of a part 202 of a coded mask that may be used by a displacement sensor according to the invention. The coded pattern is dominated by a chess board pattern comprising black and white areas (in this examples squares or blocks) of a particular size. The chess board pattern may be removed by an XOR operation, exposing a code pattern 204 as depicted in Fig. 2B. This code pattern comprises columns of a predetermined (linear) pattern of dark and light areas in the column direction 206i-3 and rows of a predetermined (linear) pattern of dark and light areas in the row direction 2O81-3. The columns and rows of linear block patterns cross each other thereby defining coordinate areas 212i-3 wherein each crossing point defines a pivot point 210i-6. Each pivot point of a coordinate area may be associated with a linear pattern of dark and light areas in the row direction representing a row coordinate of the coordinate area and a pattern of dark and light areas in the column direction representing a column coordinate of the coordinate area. Pivot points mark areas where the rows and columns cross each other. The linear pattern of dark and light areas in the column direction of coordinate area 212i may represent a binary code representing the row coordinate (e.g. an x coordinate) of the pivot block. Similarly, the linear pattern of dark and light areas in the row direction of coordinate area 212i may represent a binary code representing the column coordinate (e.g. an y coordinate) of the pivot block.

In Fig. 2B pivot points are located in a corner, in this case the bottom left corner, of a coordinating area. As will be described hereunder in more detail, pivot blocks may function as markers for enabling the image processing system to determine where the row and column block patterns of a coordinate area start. This way, the pattern 204

comprises rows and columns of coordinating areas having a m x n block size (in this example a 9 x 9 coordinating area), each defined by a pivot block 210i, a predefined pattern of blocks in the row direction representing a row coordinate and a predefined pattern of blocks in the column direction representing a column coordinate.

As shown in Fig. 1, the image sensor 110 may be configured to record an image of part of the coded mask 106 that is scaled, rotated and shifted with respect to a

reference pixel 116. The displacement sensor system may further include an image processing system 112 (a data processor) configured to obtain the image data from the image sensor 110, analyse the image data and determining a

displacement 114 of one of the mask 106, the lens 108, or the image sensor 110 with respect to the other two, as well as the rotation between the mask 106 and the image sensor 110. Small scale displacements and rotations are determined by analysing the chess board pattern, while large scale

displacements of the board pattern are determined on the basis of (coded) coordinate information that is embedded in the chess board pattern as described above with reference to Fig. 2A and 2B.

The steps carried out by the image processing system for analysing the image of the coded mask are key for accurate determination of the displacement. The processing of the image and the subsequent determination of the

displacement are described hereunder in more detail. The image processing system may receive one or more images of the coded mask for processing. In an embodiment, the image sensor may produce a sequence of images of the coded mask so that the displacement sensor system may

determine relative displacement and/or rotations as a

function of time. The image data may represent a pattern of dark and light areas in terms of intensity values.

The image processor may be adapted for determining a chessboard-like pattern in the image data. In particular, the processor may look for an appropriate region of interest in which the intensity values of dark and light areas provide sufficient contrast for analysis. The thus selected region of interest may comprise a m x n pixel matrix of intensity values .

The thus selected pixel data may be multiplied by a window function. In an embodiment, the pixel data may be multiplied by a Hann function. Further, in order to improve the frequency resolution in the Fourier domain, the m x n pixel matrix may be padded with zero values thereby forming an m ' x n' pixel matrix, where m ' > m and n' > n. In an embodiment, the pixel data are padded such that m'=2*m and n'=2*n. In an embodiment, the zero padding may include adding rows and columns of zero pixel values arranged around the image of the coded mask.

The data processor may select a pixel (s,t) - a reference point - near the centre of the imaging plane of the image sensor (point 116 in Fig. 1) as a reference position. The reference position may give the complex arguments of the 2D FFT transform of the image a well-defined meaning.

The thus processed matrix of pixel values may be fed to the input of the data processor that is configured to determine a 2D FFT transform. The output of the 2D FFT transform is a complex matrix. The real and imaginary

components may be squared and added in order to obtain amplitude values forming a 2D FFT spectrum. Elements that are larger than any of their neighbours may be selected as peak candidates. This way a list of peaks (local maxima) in the absolute values of the complex matrix may be determined.

The FFT result matrix represents the Fourier transform of the chess board pattern, i.e. the product of two square waves in perpendicular direction, that dominates the coded mask. Consequently, the Fourier transform is the convolution of the Fourier transform of the square wave in 2 dimensions. A square wave can be described as:

·,χ·

Sim j r(2fc -

This function exhibits maxima at the base frequency f and odd multiples of the base frequencies. For a 2D chess board pattern this implies that maxima appear at the following points for all integer values of i and j :

9{i ) i( ··· ··· 1)/ » ) wherein the primary peaks of the 2D FFT spectrum are located at P(l f l) and in frequency space and the first harmonic peaks of the 2D FFT spectrum are located at the positions T{l r +3), T (3 , +1) and T (3 , +3) in frequency space.

Fig. 3 depicts an example of part of a 2D FFT spectrum obtained by the process described above. Here, the size of the circles represents the amplitude of the peaks. The pattern comprises a main peak 300 at the origin, a pair of primary peaks^4= ?(1,1) and B = ^(1,-1) 302i, 2 . The 2D FFT results of Fig. 3 are presented in frequency space, so the primary peaks 302i,2 determine the horizontal and vertical frequency and direction f=(A+B)/2, g=(A-B)/2, as indicated by the arrows in the figure.

The data processor may be further configured to find secondary peaks as linear combinations of the primary peaks, and perform a multi-peak fit to refine the peak positions. The peaks of the first harmonics may be located at P(l,±3), P(3, ±l) and T (3, +3) 304i- 4 (i.e. further

harmonics) . A least squares fit applied to the secondary peaks refine f and g.

The angle between f and the horizontal axis represents the angle between the coded mask and the sensor. The projected square size b follows from the length of f and the image width: b = width/ (2*L(f ) ) . The projection scale r follows from the pixel size p and mask pitch m: r = b*p/m. Based on the optical formula, r is the ratio between

distances of the sensor to the lens and the lens to the mask: r = d2/di. The ratio r thus provides the longitudinal

displacement of one of S, L or M given that the other 2 are considered fixed.

At positions of the primary positions 302i,2 and the positions of the secondary peaks 304i- 4 the complex argument of the FFT peak value may be determined. The complex

arguments at the peak positions are illustrated in Fig . 3 by the half black circles. When the image is shifted

horizontally by (half) a square, the circles at

T (1, +3) T (1, 1) and P(l,-1) would rotate by 180 (90) degrees, indicating a factor -1 (i) in the FFT signal, and the circles at T (3 , +1) and T (3 , +3) would rotate by 540 (270) degrees, i.e. three times as fast. The same holds for vertical shifts.

Ideally, the peaks in the 2D FFT spectrum appear at very well determined positions. However, when imaging a part of the chess board pattern onto the imaging plane of the image sensor an amount of blurr may be introduced. Hence, for a finite size lens the original image will be convoluted with an Airy disc pattern, which in practice is very well

approximated by a convolution of the sharp image and a

Gaussian function. Hence, in order to determine the actual peak positions a fit function may be used in order to

determine an accurate position of the local maxima. For example, in an embodiment, a Gaussian or parabolic function may be used to perform a 2D fit at the local maxima. On the basis of the fitted function a position of the peak is determined .

Fig. 4A and 4B show examples of different fits without zero padding (Fig. 4A) and with zero padding (Fig.

4B) . As shown in Fig. 4A, without zero padding, the frequency resolution is too little to allow accurate estimation of the peak position on the basis of a Gaussian fit. In contrast, applying zero padding to the input signal results in twice the number of FFT bins, with a peak distributed over three entries, enabling a stable calculation of the peak position and amplitude. The detrimental effects of side bands were suppressed with a suitable window function. Comparison of the precision obtained with different values for the attenuation of the Dolph-Chebyshev window showed that 60 dB was optimal. The performance of this window function is also compared to that of a Hann window function. These two windows were found to be very similar.

Peaks at perpendicular angles in the FFT matrix and with similar distance to the reference (0,0) in the FFT matrix may be selected. These peaks may be selected taking into account the image aspect ratio. For example, a

correction factor may be applied to the vertical and/or horizontal peak coordinates because of the height/width ratio of the image (typically 640/480, 720/480, or 1920/1080) .

Alternatively, and/or in addition, - if applicable - a correction factor may be applied to the coordinates for the pixel aspect ratio.

These are all combined in a single multi-peak fit to get the most precise values for the (primary) horizontal and vertical frequency and rotation. This multi-peak fit works remarkably well on a pure chess board pattern, but when the coded lines and columns are introduced in the chess board pattern a subtle problem is observed: depending on where these are in the image, the peaks are shifted in position by approximately 1% of their width. This shift is considerably larger than the error estimate produced in the peak fit for the primary peaks, and thus does have an impact on the accuracy obtained for the magnification and rotation. To compensate an additional error of 0.0025 FFT bin is taken into account for the peak position. This value was found to be optimal when the FFT uses a Hann window. The Dolph- Chebyshev window turned out to be less well-behaved, thus the use of the Hann window is preferred.

At the peak positions the complex argument (which depends linearly on the peak coordinates) provides the shift of the pattern with respect to the reference position.

A positive and real lowest order FFT peak value indicates that the function behaves like a cosine, having a maximum centred around zero. To exploit this, a pixel in the middle of the image is taken as the reference position, so that positive real values (so the complex argument is 0) at the primary peaks would indicate that this pixel is exactly in the middle of a white square of the pattern, and other values of the complex argument reflect the shift of the pattern (modulo 2 times the block size) . To obtain the complex argument of a peak, the real and imaginary values may be determined by a parabolic interpolation between the nearest FFT bin and its 4 nearest neighbours. (Alternatively, one may interpolate the arguments per bin, provided the jump at +/- n is taken into account.) This way, the primary peaks may provide a first estimate for the phases by which the pattern is shifted. This first estimate is then used to calculate the expected arguments at the harmonic peaks. The offsets are put into a 2-dimensional linear fit to refine the original estimate, yielding a phase shift in the X/Y of cp x and cp y .

Hence, as described above, the accurate

determination of the peak positions in the 2D Fourier

spectrum results in an accurate measurement of the size of squares of the imaged chess board pattern in the f and g direction and the complex arguments at the peak positions relate to a relative shift of the pattern with respect to the reference position. The accurate determination of the peak positions in the 2D Fourier spectrum is a result of a

balanced combination of window function (e.g. a Hann or a 60 dB Dolph-Chebyshev window function) and padding. In the prior art a strong 100 dB Dolph-Chebyshev window function was used in order to produce a peak in the FFT wide enough to find the peak position to some precision, however such approach heavily interferes with the complex arguments so that no reliable information can be derived from these values. In contrast, as will be shown hereunder in more detail, the balanced combination of window function (e.g. a Hann window function) and padding results in an accuracy better than 60 nm .

The dimensions of the areas (the blocks) forming the chess board pattern may be determined on the basis of the image width divided by twice the length of f, and the image height divided by twice the length of g. From the peak and phase fit on the FFT data the horizontal and vertical frequency of the pattern, the rotation angle, and the phases at the reference position near the middle of the image are determined. This information is sufficient to calculate the centre of all blocks of the pattern.

In each block a centre pixel region, e.g. a 3 x 3 pixel region, is summed in order suppress noise effects.

Thereafter, the sum is compared to the values of its closest neighbours, e.g. its eight closest neighbours. A first digital value, e.g. a zero ("0"), or a second digital value, e.g. a one {"1") value, is assigned to a block depending on whether the sum is closest to the lowest value or highest value. This way a matrix of binary values is formed wherein each entry in the matrix is associated with a block in the image. An entry may have a first binary value (e.g. one) in case the block is determined to be a dark block and a second binary value (e.g. a zero) in case the block is determined to be a light block. The global chess board pattern that dominates the coded mask may be removed from the binary matrix using an XOR operation (i.e. by flipping all the values that were

predicted to be 'light' according to the FFT result) . Such operation exposes a binary pattern in the matrix that

corresponds to the code pattern described with reference to Fig. 2B. After the XOR operation, the binary matrix comprises mostly zero values, except for the "ones" representing (dark) pivot points and the dark areas of the linear patterns of dark and light areas.

In order to determine the start of the code

patterns in the rows and column direction, the locations of the pivot blocks need to be determined.

Fig. 5 depicts a schematic of a code pattern that is derived from an image of a coded mask as described with reference to Fig. 2. The code pattern is subsequently

transformed in a binary matrix as described above. When the mask is mounted in its normal orientation, the information representing the column (X) coordinate may be obtained by analysing the entries in the binary matrix corresponding to the row of dark and light areas 508i along the bottom side of a coordinate area 504 in the code pattern 502 . Starting from an entry in the binary matrix representing the pivot square S 506 a row or column of binary values in the binary matrix.

Hence, in Fig. 5 , the column coordinate of the 9 x

9 coordinate area 504 may be represented by the bit sequence 00010001 in the binary matrix (wherein the pivot square 506 is used to mark the start of the row) . Similarly, the column of squares 5082 along the left side of the coordinate area 504 may be represented by a bit sequence of 00001011 in the binary matrix. In case the mask is either rotated left by 90°, equivalent to a rotation by 180° around the y axis, the row numbers will need to be read right to left, while the column numbers will decrease from left to right. Similar logic applies when the mask is rotated over 90° or 180°. In a perfect image every code line in the binary matrix has at least 2 out of every 9 values being "1" (one code bit and the pivot), while the other lines have at most 1 (column code bit); the same holds for the columns. In

practice however noise, light and dark pixels and pieces of dust on both the sensor and the mask may introduce "error bits" in the binary matrix.

In order to cope with these errors, the image processor may execute an algorithm that takes all blocks of the image into account, i.e. not only the blocks on the code lines/columns but also blocks that were erroneously

identified. Hence, for each of the 9 x 9 possible pivot positions of a coordinate area in the binary matrix a penalty is calculated for the number of "wrong" bits (wrong blocks) outside the rows and columns in which the code block patterns are located. First the number of "1" and "0" bits are counted per position (mod 9) : for all i , j do

if b [ i , j ] then

ones [i mod 9, j mod 9] ++

else

zeros [i mod 9, j mod 9] ++

end if

end for

Then, the penalty for a certain choice is the number of zeroes on that spot, plus the number of ones outside its row and column: p[i,j] = zeros [i,j] + ∑£2≠£ 2 ;(o n es [ i2 , j 2 ] ) .

The process of determining the pivot of a coordinate area and the associated lines and columns that comprise the coded coordinates are schematically depicted in Fig. 6A—6C. The processor may analyse part of the binary matrix wherein each grid block may either be represented by a zero (light area 602) or a one (dark area 604) . As shown in Fig. 6A, when the correct set of pivot blocks 606 is

determined, a coordinate area 608 does not comprise any error bits so that sum of the bits is zero. Image imperfections

610i,2 however may cause a number of error bits. These error bits that are located outside the code lines/columns (which should be 0) and on their crossings (which should be 1) are first counted for every 9 x 9 choices for the lines /columns .

The processor may determine a penalty score by considering each or at least a substantial part of the elements in the binary matrix as a candidate pivot point. Fig. 6B and 6C illustrate how a penalty score is determined for a possible pivot point. For example, in Fig. 6B,

selecting squares 6Ο62 (mod 9) as a set of candidate pivot points, the algorithm sums all "1" in the 8 x 8 areas of the binary matrix, i.e. 32 "1" associated with blocks of

neighbouring coordinate areas and two or three "1" associated with optical imperfections 6IO1 and 6IO2; additionally 4 pivot candidates have a "0" instead of "1", adding another 4 to the penalty, for a total of 38 or 39.

In a similar way, in Fig. 6C the processor may determine 20 or 21 "1", eighteen "1" and again two or three "1" associated with the optical imperfections adding up to 24 or 25. Hence, the set(s) of candidate pivot points that have the lowest penalty score (s) may be considered as the pivot points that need to be used as markers for reading out the row and column coordinates. The processor may determine the most probable set of pivot points in the image as the set of pivot points associated with the lowest penalty: this is added to the number of discrepancies found when looking up the code bits to find the total discrepancy count. Hence, the processor scans from the lowest to highest penalty, until a solution is found having a total discrepancy count lower than the next lowest penalty. Thereafter, the processor may use the best

candidate pivot points in order to determine first bit sequences represented by block patterns in the row direction and second bit sequences represented by block patterns in the column direction. Each of the first and second bit sequences may be decoded into row and column coordinates. The processor may then check the decoded information for correctness. For example, in an embodiment, it may check whether bit sequences associated with pivot points in a row direction relate to the same row coordinate. Similarly, in an embodiment, it may check whether bit sequences associated with pivot points in a higher (lower) row relate to a higher (lower) row coordinate. For example, it will find the range of row coordinates having the least number of mismatching code bits on the code lines. These mismatching code bits may be referred to as

discrepancies. Alternatively, and/or in addition, in an embodiment, it may check whether bit sequences associated with pivot points in a column direction relate to the same column coordinate.

Hence, the best candidate pivot points may be used as a marker for identifying a sequence of binary values in the row and column direction. This process may include transforming the sequence of binary values into the row and column coordinates, counting discrepancies in the binary values found, adding the discrepancies to the penalty for a total discrepancy count, and selecting the candidate pivot point with the lowest total discrepancy count.

When the number of discrepancies in the row and column coordinates, plus the penalty for the choice of the pivot points is larger than the penalty of an alternative set of pivot points, the latter may be considered.

As shown in Fig. 6A—6C, the algorithm is robust against optical imperfections as "false scores" due to such optical imperfections are taken into account in the

calculation . Hence, as described above, a coded mask is used to accurately determine displacements of the coded mask pattern wherein small scale displacements and rotations are

determined by analysing the chess board pattern, while large scale displacements of the board pattern are determined on the basis of (coded) coordinate information embedded in the coded mask pattern.

On the basis of part of an image of a coded mask, a matrix of binary values is produced wherein dark areas of the coded mask pattern are represented by a "1" and light areas are represented by a "0". The binary chess board pattern in the matrix may be removed by a suitable XOR operation thereby exposing the coordinate information in the matrix including coordinate areas, each coordinate area comprising a pivot block and digital representations (bit sequences) of row and column coordinates. Then a pivot block of a coordinate area may be determined by selecting a candidate pivot block and determining a penalty score on the basis of the number of dark blocks {"1") in a coordinate area associated with the candidate pivot block. This process may be repeated for each position within an area comprising a coordinate area. The candidate pivot block associated with the smallest penalty score is determined as the pivot block associated with a coordinate area. This pivot block is used as a marker for reading binary row and column coordinates.

Thereafter, the block in which the reference pixel is located may be calculated on the basis of the column number u, column offset i and row number v, row offset j the block number as follows: (9*u+i, 9*v+j) . These values are multiplied with the known block size thus obtaining the (x,y) position. The reference pixel (s,t) on the sensor and the lens optical centre is now aligned with the position (9*u+i+ φχ/π, 9*v+j+ cpy/π) in mask coordinates. This value may be multiplied by the mask pitch in order to get the (x,y) position in regular units. Depending on the configuration of the sensor, lens and mask (x,y) may have the following meaning :

— When the sensor and lens are considered stable, (x,y) is the offset of the mask in the perpendicular, and di - (d2/r) in the longitudinal direction wherein r is the projection scale as described in more detail with reference to Fig. 1.

— When the mask and sensor are considered stable, (x,y) may be multiplied by r/ (1+r) in order to obtain the offset of the lens in the perpendicular. Similarly, (di * r - d2) / (r + 1) provides the offset in the longitudinal direction.

— When the mask and lens are considered stable, (x,y) may be multiplied by r in order to obtain the offset of the sensor in the perpendicular direction. Similarly, (di * r - d2) provides the offset in the longitudinal direction. Fig. 7 depicts the relative movement of a high- precision linear stage measured by a displacement system sensor according to an embodiment of the invention. This figure shows that residuals of the x 0 measurement as a function of x mod 20 μπι exhibits a very strong systematic deviation, with an amplitude of 0.26 μπι. The remaining spread is 0.06 μπι. Hence, from the above it follows that the

invention allows displacement monitoring with accuracies below 100 nm using a very simple optical sensor system. The improved precision makes it possible to use the displacement sensor system for calibration of high-precision equipment, like translation and rotation stages.

Further, its reduced sensitivity to image imperfections extends the applications to low budget gap monitors for home use and long range monitoring, where a coded mask is

monitored by a long range camera. Further, its high performance scalability allows uses for (3D) vibration analysis .

It is submitted that the invention is not limited to optical sensors. For example, instead of an optical system, a well-known microchip capacitive pixel array may be used to obtain an image of a coded mask. For example, such capacitive pixel array may be positioned with extreme

precision over glass substrate comprising a metal mask that is shaped according to a coded mask as described in this disclosure.

Fig. 8 provides a schematic illustration of a data processing system 800 operable to implement one or more aspects of the present invention. As shown, the system xOO includes a block diagram illustrating an exemplary data processing system that may be used in as described in this disclosure. Data processing system 800 may include at least one processor 802 coupled to memory elements 804 through a system bus 806. As such, the data processing system may store program code within memory elements 804. Further, processor 802 may execute the program code accessed from memory

elements 804 via system bus 806. In one aspect, data

processing system may be implemented as a computer that is suitable for storing and/or executing program code. It should be appreciated, however, that data processing system 800 may be implemented in the form of any system including a

processor and memory that is capable of performing the functions described within this specification.

Memory elements 804 may include one or more physical memory devices such as, for example, local memory 808 and one or more bulk storage devices 810. Local memory may refer to random access memory or other non-persistent memory device (s) generally used during actual execution of the program code. A bulk storage device may be implemented as a hard drive or other persistent data storage device. The processing system 800 may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from bulk storage device 810 during execution.

Input/output (I/O) devices depicted as input device 812 and output device 814 optionally can be coupled to the data processing system. Examples of input device may include, but are not limited to, for example, a keyboard, a pointing device such as a mouse, or the like. Examples of output device may include, but are not limited to, for example, a monitor or display, speakers, or the like. Input device and/or output device may be coupled to data processing system either directly or through intervening I/O controllers. A network adapter 816 may also be coupled to data processing system to enable it to become coupled to other systems, computer systems, remote network devices, and/or remote storage devices through intervening private or public

networks. The network adapter may comprise a data receiver for receiving data that is transmitted by said systems, devices and/or networks to said data and a data transmitter for transmitting data to said systems, devices and/or

networks. Modems, cable modems, and Ethernet cards are examples of different types of network adapter that may be used with data processing system.

As pictured in FIG. 8, memory elements 804 may store an application 818. It should be appreciated that data processing system 800 may further execute an operating system (not shown) that can facilitate execution of the application. Application, being implemented in the form of executable program code, can be executed by data processing system 800, e.g., by processor 802. Responsive to executing application, data processing system may be configured to perform one or more operations to be described herein in further detail.

It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Moreover, the invention is not limited to the embodiments described above, which may be varied within the scope of the accompanying claims.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a, " "an, " and "the" are intended to include the plural forms as well, unless the context clearly indicates

otherwise. It will be further understood that the terms

"comprises" and/or "comprising," when used in this

specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the

invention for various embodiments with various modifications as are suited to the particular use contemplated.