WO2017142408A1 - Displacement sensor - Google Patents

Displacement sensor Download PDF

Info

Publication number
WO2017142408A1
WO2017142408A1 PCT/NL2017/050095 NL2017050095W WO2017142408A1 WO 2017142408 A1 WO2017142408 A1 WO 2017142408A1 NL 2017050095 W NL2017050095 W NL 2017050095W WO 2017142408 A1 WO2017142408 A1 WO 2017142408A1
Authority
WO
WIPO (PCT)
Prior art keywords
row
image
column
coordinate
dark
Prior art date
Application number
PCT/NL2017/050095
Other languages
French (fr)
Inventor
Bram Theodorus BOUWENS
Original Assignee
Fom-Nikhef
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fom-Nikhef filed Critical Fom-Nikhef
Publication of WO2017142408A1 publication Critical patent/WO2017142408A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/26Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/26Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light
    • G01D5/32Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/26Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light
    • G01D5/32Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light
    • G01D5/34Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable characterised by optical transfer means, i.e. using infrared, visible, or ultraviolet light with attenuation or whole or partial obturation of beams of light the beams of light being detected by photocells

Definitions

  • 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.
  • RASNIK Red Alignment System Nikhef
  • 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
  • the used method produced measurement inaccuracies due to image imperfections that may occur during operation.
  • a cross-correlation method based on the measured 2D FFT spectrum was used in order to determine the
  • 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
  • circuit (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 processor
  • 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 .
  • 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 or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical
  • 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
  • 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
  • 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.
  • 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.
  • 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
  • the candidate pivot points may be used as a marker for reading binary row and column
  • 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.
  • 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.
  • 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.
  • 2D Fast Fourier Transform
  • 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.
  • the image before performing the Fourier analysis the image is multiplied with a window function, preferably a Hann window function.
  • a window function preferably a Hann window function.
  • the zero padding includes adding rows and columns of zero values around the image.
  • the reference position can be determined with an accuracy well below 100 nm, preferably below 60 nm.
  • the coded mask is optically imaged onto an image sensor using an optical mask and an optical lens system.
  • 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.
  • 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
  • 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
  • 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
  • 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 including:
  • determining the row and column coordinates of a pivot point close to the reference point including:
  • the coded mask may be optically imaged onto an image sensor using an optical mask and an optical lens system.
  • the coded mask may be any coded mask.
  • the coded mask may be any coded mask.
  • 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
  • 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
  • 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.
  • Fig. 1 depicts a schematic of a displacement sensor system according to an embodiment of the invention.
  • 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 LED 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 LED 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
  • 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.
  • 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.
  • 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.
  • 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.
  • pivot points are located in a corner, in this case the bottom left corner, of a coordinating area.
  • 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
  • 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.
  • 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
  • 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
  • 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 image processing system may receive one or more images of the coded mask for processing.
  • the image sensor may produce a sequence of images of the coded mask so that the displacement sensor system may
  • 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.
  • 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.
  • the pixel data may be multiplied by a Hann function.
  • 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.
  • 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 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:
  • Fig. 3 depicts an example of part of a 2D FFT spectrum obtained by the process described above.
  • the size of the circles represents the amplitude of the peaks.
  • 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
  • the angle between f and the horizontal axis represents the angle between the coded mask and the sensor.
  • the complex argument of the FFT peak value may be determined.
  • 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.
  • the peaks in the 2D FFT spectrum appear at very well determined positions.
  • an amount of blurr may be introduced.
  • the original image will be convoluted with an Airy disc pattern, which in practice is very well
  • 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).
  • 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) .
  • a correction factor may be applied to the coordinates for the pixel aspect ratio.
  • 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.
  • 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) .
  • the real and imaginary values may be determined by a parabolic interpolation between the nearest FFT bin and its 4 nearest neighbours.
  • 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 .
  • the balanced combination of window function e.g. a Hann or a 60 dB Dolph-Chebyshev window function
  • window function e.g. a Hann or a 60 dB Dolph-Chebyshev window function
  • padding e.g. 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.
  • the balanced combination of window function e.g. a Hann window function
  • 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.
  • a centre pixel region e.g. a 3 x 3 pixel region, is summed in order suppress noise effects.
  • a first digital value e.g. a zero ("0")
  • a second digital value e.g. a one ⁇ "1
  • a first digital value is assigned to a block depending on whether the sum is closest to the lowest value or highest value.
  • 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
  • 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.
  • 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
  • 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.
  • 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) .
  • 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.
  • 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°.
  • 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.
  • 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
  • Fig. 6A—6C 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
  • a coordinate area 608 does not comprise any error bits so that sum of the bits is zero.
  • 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,
  • 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.
  • 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.
  • 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
  • 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
  • it may check whether bit sequences associated with pivot points in a column direction relate to the same column coordinate.
  • 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.
  • a coded mask is used to accurately determine displacements of the coded mask pattern wherein small scale displacements and rotations are
  • 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.
  • 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.
  • 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.
  • lens and mask (x,y) may have the following meaning :
  • (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.
  • (x,y) may be multiplied by r/ (1+r) in order to obtain the offset of the lens in the perpendicular.
  • (di * r - d2) / (r + 1) 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 ⁇ .
  • 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.
  • the invention is not limited to optical sensors.
  • a well-known microchip capacitive pixel array may be used to obtain an image of a coded mask.
  • capacitive pixel array may be positioned with extreme
  • Fig. 8 provides a schematic illustration of a data processing system 800 operable to implement one or more aspects of the present invention.
  • 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.
  • the data processing system may store program code within memory elements 804.
  • processor 802 may execute the program code accessed from memory
  • 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
  • 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.
  • I/O devices depicted as input device 812 and output device 814 optionally can be coupled to the data processing system.
  • input device may include, but are not limited to, for example, a keyboard, a pointing device such as a mouse, or the like.
  • 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
  • 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
  • Modems, cable modems, and Ethernet cards are examples of different types of network adapter that may be used with data processing system.
  • 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.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Length Measuring Devices By Optical Means (AREA)

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.

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 -
Figure imgf000016_0001
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(lfl) and in frequency space and the first harmonic peaks of the 2D FFT spectrum are located at the positions T{lr+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 cpx and cpy.
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;(ones [ 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 x0 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.

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.
PCT/NL2017/050095 2016-02-19 2017-02-16 Displacement sensor WO2017142408A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL2016286A NL2016286B1 (en) 2016-02-19 2016-02-19 Displacement sensor.
NL2016286 2016-02-19

Publications (1)

Publication Number Publication Date
WO2017142408A1 true WO2017142408A1 (en) 2017-08-24

Family

ID=56852329

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/NL2017/050095 WO2017142408A1 (en) 2016-02-19 2017-02-16 Displacement sensor

Country Status (2)

Country Link
NL (1) NL2016286B1 (en)
WO (1) WO2017142408A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114544052A (en) * 2022-01-19 2022-05-27 清华大学 Touch sensor, robot, and method and device for realizing touch information acquisition
CN116912476A (en) * 2023-07-05 2023-10-20 农芯(南京)智慧农业研究院有限公司 Remote sensing monitoring rapid positioning method and related device for pine wood nematode disease unmanned aerial vehicle
CN116980659A (en) * 2023-09-22 2023-10-31 深圳市雅源光电科技有限公司 Intelligent encryption method for optical lens image

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1620828A1 (en) * 2003-04-29 2006-02-01 Anoto IP Lic HB Methods, apparatus, computer program and storage medium for position decoding
DE102006010161A1 (en) * 2006-02-28 2007-08-30 Dr. Johannes Heidenhain Gmbh Code structure for object position measurement device, has code traces arranged such that absolute position of scanning device is determined, from combination of position measurement values obtained by scanning structure section
EP2083209A1 (en) * 2008-01-28 2009-07-29 Sick Ag Security system for contactless measurement of paths and/or speeds
EP2538179A2 (en) * 2011-06-24 2012-12-26 Canon Kabushiki Kaisha Two-dimensional absolute encoder and scale therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1620828A1 (en) * 2003-04-29 2006-02-01 Anoto IP Lic HB Methods, apparatus, computer program and storage medium for position decoding
DE102006010161A1 (en) * 2006-02-28 2007-08-30 Dr. Johannes Heidenhain Gmbh Code structure for object position measurement device, has code traces arranged such that absolute position of scanning device is determined, from combination of position measurement values obtained by scanning structure section
EP2083209A1 (en) * 2008-01-28 2009-07-29 Sick Ag Security system for contactless measurement of paths and/or speeds
EP2538179A2 (en) * 2011-06-24 2012-12-26 Canon Kabushiki Kaisha Two-dimensional absolute encoder and scale therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Masters thesis", 2007, TU DELFT, article "FOAM: An Image Analysis Routine for the ATLAS Barrel Muon Spectrometer Alignment System"
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 <URL:https://indico.cern.ch/event/336335/contribution/789071/attachments/657794/904371/CLICWorkshop.pdf> [retrieved on 20170117] *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114544052A (en) * 2022-01-19 2022-05-27 清华大学 Touch sensor, robot, and method and device for realizing touch information acquisition
CN116912476A (en) * 2023-07-05 2023-10-20 农芯(南京)智慧农业研究院有限公司 Remote sensing monitoring rapid positioning method and related device for pine wood nematode disease unmanned aerial vehicle
CN116912476B (en) * 2023-07-05 2024-05-31 农芯(南京)智慧农业研究院有限公司 Remote sensing monitoring rapid positioning method and related device for pine wood nematode disease unmanned aerial vehicle
CN116980659A (en) * 2023-09-22 2023-10-31 深圳市雅源光电科技有限公司 Intelligent encryption method for optical lens image
CN116980659B (en) * 2023-09-22 2024-01-30 深圳市雅源光电科技有限公司 Intelligent encryption method for optical lens image

Also Published As

Publication number Publication date
NL2016286A (en) 2017-08-24
NL2016286B1 (en) 2017-09-20

Similar Documents

Publication Publication Date Title
KR101974651B1 (en) Measuring method of 3d image depth and a system for measuring 3d image depth using boundary inheritance based hierarchical orthogonal coding
KR101733228B1 (en) Apparatus for three dimensional scanning with structured light
US20180306577A1 (en) System and Methods for Shape Measurement Using Dual Frequency Fringe Pattern
JP2008123141A (en) Corresponding point search method and three-dimensional position measurement method
WO2007015059A1 (en) Method and system for three-dimensional data capture
US8582824B2 (en) Cell feature extraction and labeling thereof
EP2069713A1 (en) Photogrammetric system and techniques for 3d acquisition
JP6598673B2 (en) Data processing apparatus and method
AU2013260650B2 (en) Rotational phase unwrapping
JP2006266848A (en) Distance measuring device
WO2017142408A1 (en) Displacement sensor
US20150292875A1 (en) Systems, methods, and media for performing shape measurement
JP2004317245A (en) Distance detection device, distance detection method and distance detection program
CN112233139A (en) System and method for detecting motion during 3D data reconstruction
Thiruselvam et al. Feature‐assisted stereo correlation
CN104200456A (en) Decoding method for linear structure-light three-dimensional measurement
CN117606386A (en) Spatial phase unwrapping method and device, electronic equipment and storage medium
KR100914033B1 (en) Method And System Of Structural Light Based Depth Imaging Using Signal Separation Coding and Error Correction Thereof
CN109859313B (en) 3D point cloud data acquisition method and device, and 3D data generation method and system
CN116558445A (en) Phase decoding method of stripe projection and computer readable storage medium
Gupta Gray code composite pattern structured light illumination
JP2004192506A (en) Pattern matching device, pattern matching method, and program
Raj et al. A comparison of FFT and DCT based Phase Correlation function for focused and defocused images
De Villiers et al. Effects of lens distortion calibration patterns on the accuracy of monocular 3D measurements
Cavaturu Motion correction structured light using pattern interleaving technique

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17710068

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17710068

Country of ref document: EP

Kind code of ref document: A1