INFORMATION-RELATED DEVICES AND METHODS
TECHNICAL FIELD
The present invention relates to devices and methods related to surfaces which are provided with an informa- tion-coding pattern.
BACKGROUND
In many situations it is desirable to be able to determine an absolute position on a surface. One example is the recording and digitization of documents such as drawings, maps etc. Another one is if it is desired to create an electronic version of handwritten information.
In these and other situations, where position-determination is carried out, it is often desirable to facilitate for, for example, a computer program in cooperation with an input device to carry out calculations which are related to the position-determination and, in particular, to provide the possibility of being able to read and process both position information and other information which, for example, can be related to the absolute posi- tions read and determined.
US 5,852,434 describes a device for determining an absolute position. The device comprises a writing surface which is provided with a position-coding pattern by means of which X-Y coordinates can be determined, a detector which can detect the position-coding pattern and a processor which can determine the position of the detector in relation to the writing surface on the basis of the detected position-coding pattern. The device makes it
possible for a user to input handwritten and hand-drawn information into a computer at the same time as the information is written/drawn on the writing surface.
One shortcoming of the prior art summarized above is that it does not facilitate for, for example, a computer program in cooperation with an input device to carry out calculations which are related to position determination since only position information is handled.
A further shortcoming of the known pattern is that it is made up of complex symbols, the information content of which relates to the positions themselves. The smaller the symbols are the more difficult it is to produce the patterned writing surface and the greater the risk of incorrect position determinations, but the larger the symbols are the worse is the position resolution.
It is thus a problem to enable a large amount of information to be read and processed from surfaces provided with coding patterns.
SUMMARY OF THE INVENTION It is an object of the present invention to remedy said problems. This is achieved by a product according to claim 1, a method and a computer program according to claims 17 and 31, respectively, and a method, a computer program and a device according to claims 32, 37 and 38, respectively.
A first aspect of the invention is a product which has a surface provided with a first coding pattern and a second coding pattern. The coding patterns comprise symbols each of which represents at least two different values. Each symbol in the first coding pattern comprises one raster point and at least one marking, the raster point being
included in a first raster which extends over the surface. Each symbol in the second coding pattern also comprises one raster point and at least one marking, the raster point being included in a second raster. This second raster is displaced in relation to the first raster and also has a different spatial scale than the first raster. In a preferred embodiment, each symbol in the first and the second pattern has a value which is indicated by the location of the marking belonging to the respective symbol in relation to a raster point in the first and respectively second raster. Another preferred way of indicating the values of the symbols comprises varying the size of the markings as is described in Applicant's International Patent Application WO 00/73983. Moreover reference is also made to PCT/SE00/01895 and WO 01/16691, the contents of which are included by reference .
By determining the displacement between the first and the second raster, the distance between the raster points in the first raster and the distance between the raster points in the second raster so that they do not have a common denominator greater than one, an advantage is achieved in that unnecessary visual interference effects are avoided when printing the pattern. Certainly, said markings which are included in the symbols can be configured more or less arbitrarily. However, it is preferred that the markings are of the simplest possible configuration, for example round dots as shown in the detailed description below. The effect which is achieved with a coding-patterned product according to the above is that information can be stored on the product in the form of, on the one hand,
absolute-position information and, on the other hand, other information of a more or less arbitrary nature. The different coding patterns can be displaced in relation to one another by a more or less optional distance and be of different spatial scales. The result is that the different patterns do not coincide with one another. It should be pointed out that a product according to the above can certainly be provided with a plurality of different coding patterns, for example three, in which the mutual dis- placements between the patterns should certainly differ from one another. Such a patterned product has the advantage in comparison with the prior art according to the above that the information density is greater and, in practice, only limited by the nature of the surface of the product and the printing technique which is used for the application.
Examples of other information which is stored in an information-coding pattern can be found in Applicant ' s Swedish Patent Application 0000947-2. It is also advantageous that information is coded in different patterns since this entails simple distinguishing between different types of information such as distinguishing between position information and other information which can be descriptive of the product to which the coding pattern is applied.
However, according to the prior art, each position is coded with a complex symbol which requires recognition of many different elements and which, therefore, is sensitive to interference. According to the invention, a symbol is used instead, the value of which is specified by the location of a marking in relation to a raster point. There is thus one type of symbol for each value.
A device which will carry out reading, position determination and information decoding therefore only needs to detect the occurrence of one marking and does not need to be able to differentiate between different elements such as the different lines in a bar code in order to determine the value of the symbols. The detection thus becomes simpler and less sensitive to interference.
As mentioned, in the prior art, each position is coded with a single symbol which, therefore, must be rather complex. According to the invention, each position can instead be coded with a plurality of symbols. Each individual symbol can thus be made less complex and simpler to detect with greater reliability. Furthermore, in the prior art, each position is coded with a symbol which is "isolated" from the symbols of surrounding positions. This limits the position resolution of the surface occupied by the symbol for a position. The position-coding pattern according to the invention can be made up in corresponding manner, each position being coded by an "isolated" group of symbols. In a preferred embodiment of the invention, however, each symbol contributes to the coding of more than one position. In this manner, a "floating" transition between different positions is created. In other words, each position is coded partly by the same symbols as the adjoining positions. The floating coding is advantageous since it makes it possible to increase the position resolution. Furthermore, it is possible to reduce the relationship between, on the one hand, the number of symbols which a position-deter- mining device must register in order to be able to carry out a position determination reliably and, on the other hand, the number of symbols which code a position.
In a preferred embodiment, each symbol contributes to the coding of both a first and a second position coordinate.
Thus, different symbols are not needed for the different coordinates, which makes the position code simpler and the position resolution better. The coordinate system can be suitably Cartesian but other types of coordinate systems are also conceivable.
Furthermore, the value of each symbol can be advantageously translatable into at least one first digit which is used for coding the first coordinate, and at least one second digit which is used for coding the second coordinate, the symbols in the position-coding pattern together representing a first position code for the first coordinate and a second position code for the second coordinate. The two coordinates can then be coded independently of one another which makes the coding simpler when the coding is "floating". Preferably, the value of the symbol is represented in a binary manner, a first bit being used for the coding of a first coordinate and a second bit for the coding of a second coordinate.
The position-coding pattern is advantageously based on a first cyclic, preferably binary, number series which has the characteristic that no sequence with a first predetermined number of digits appears more than once in the number series. Due to the fact that the position-coding pattern is built up in this manner, it will contain inherent information about the positions so that the coordinates can be calculated according to predetermined rules. This is advantageous in that it means that the decoding of the position-coding pattern can be implemented in an efficient manner in, for example, software. Besides, it will be much simpler to produce the position-coding pat-
tern in this way compared with trying to randomly generate an unambiguous position-coding pattern of a floating type .
In an advantageous embodiment, the product can comprise a plurality of writing surfaces, each of which comprises the position-coding pattern. For example, the product can consist of a notepad with a plurality of sheets. The position-coding patterns then differ for the different writing surfaces by the sequence in the cyclic number series with which a predetermined column or row begins. The "same" pattern can thus be used for a plurality of writing surfaces which can be separated from or integrated with one another by allowing, for example, the first column to begin in different positions in the num- ber series.
Although the coding patterns have been discussed above in terms of a separate position-coding pattern and a pattern coding other information, it is possible that both coding patterns encode position information. In such a case the first position-coding pattern encodes positions from a first region or area and the second position-coding pattern encodes positions from a second region or area. Needless to say, more than one position coding patterns will also increase the total size of the region available for use.
The coding patterns can be implemented with any parameter whatever which can be used for producing symbols of the above-mentioned type which can be detected by a detector. The parameter can be electrical or chemical or of another type. However, the pattern is preferably optically readable which makes it simpler to apply to the surface. The pattern should thus be able to reflect or absorb
light but the light does not need to lie within the visible range.
The raster and/or the raster points can be implemented on the surface. In a preferred embodiment, however, the raster and the raster points are virtual. Thus, the raster is not marked on the surface at all but only constitutes an imaginary raster which forms the base of the coding but which can be located from the location of the markings. A second aspect of the invention is to produce by means of a method a position- and an information-coding pattern on a surface. The coding patterns comprise symbols, each of which represents at least two different values, the values depending on position information and other information for the position- and the information-coding pattern, respectively. The method includes determining a first raster with raster points and a second raster with raster points. The second raster is displaced in relation to the first raster and has a different spatial scale than the first raster. In a preferred embodiment, furthermore, the configuration of the symbols in both coding patterns is determined, each symbol in the position-coding pattern comprising one raster point in the first raster and at least one marking and each symbol in the second coding pattern comprising one raster point in the second raster and at least one marking, by displacing, in dependence on the value of the respective symbol, the location of the markings in relation to each respective raster point in the first and, respectively, second raster.
The method is suitable for implementation in the form of a computer program which is implemented, with the skilled
person's detailed knowledge in programming, for example in a personal computer.
A method according to the above thus makes it possible for information about absolute positions on the surface of a product to be applied, together with any other information in a second coding pattern which is displaced and provided with a different spatial scale compared with the position-coding pattern.
An advantage of the method is that the different coding patterns do not necessarily have to be applied on the surface of a product on the same occasion. Instead, the times of applying the different patterns can be separated and also be carried out by means of different application devices. One example of such an advantageous situation is to provide a sheet of paper with a background pattern in the form of a position-coding pattern after which the sheet of paper is used, for example, in a laser printer coupled to a personal computer which prints an arbitrary number of other position-coding patterns with mutually varying displacements between their respective rasters.
One example of the utilization of a combined position- and information-coding pattern can be in the form of blank forms where a position-coding pattern is printed on a sheet of paper. The sheet of paper is provided by a user with an information-coding pattern and other graphical information such as, for example, a grid pattern, figures etc. where information in the form of, for example, sequences of digits which represent data which is related to the grid pattern or the graphical figures is coded with the aid of the symbols in the information-coding pattern. When the combined position- and information- coding pattern is read, both position-information and the
data which is related to the graphical figures which are printed on the sheet of paper with the position-coding pattern are obtained.
A third and a fourth aspect of the present invention shows a method and a device, respectively, for reading a position- and an information-coding pattern on a surface. The coding patterns comprise symbols each of which represents at least two different values, the values depending on position information and other information for the position- and information-coding patterns, respectively. The method includes reading a part of the surface and storing the information read in the form of an image. A first and a second virtual raster which contain raster points are determined from the image, the rasters being associated with the position- and information-coding patterns, respectively. The rasters are displaced in relation to one another and have different spatial scales. A plurality of symbols is located in both the position- and the information-coding patterns. After that, the value of each of the symbols is determined, each symbol in the position-coding pattern comprising one raster point in the first raster and at least one marking and each symbol in the second coding pattern comprises one raster point in the second raster and at least one marking, by deter- mining, in a preferred embodiment, a displacement of the location of the markings with respect to each respective raster point in the first and the second raster, respectively. The position-coding pattern in the image is separated into a first position code for a first coordinate for the partial surface and a second position code for a second coordinate for the partial surface by translating the value of each symbol into at least one first digit for the first position code and at least one second digit
for the second position code. The first coordinate is calculated by means of the first position code and the second coordinate is calculated by means of the second position code. In the case both coding patterns encode position information, the first position-coding pattern encodes positions from a first region or area and the second position-coding pattern encodes positions from a second region or area. When reading symbols from a product provided with such a combination of two position-coding patterns, coordinates will be simultaneously read from the two regions. This fact that coordinates from different regions have been encountered can be interpreted, e.g., as a particular event which may trigger actions in the controlling software in the reading device or in a computer with which the device communicates. Moreover, the fact that coordinates from different regions are read simultaneously may be used to infer a more general association or link between the two regions.
The method is advantageously implemented in the form of a computer program which is implemented with the skilled person's detailed knowledge in programming in, for example, a reading device in pen format which includes a computer.
A central part of a reading method according to the above is to separate the different coding patterns into the input images of a partial surface. This is advantageously done by means of image-processing software in an input device, or software in a computer connected to an input device. The image-processing software has the capacity to transfer image information from a spatial domain to a
spatial frequency domain and to analyze the distribution of the spatial frequencies in the input image. This frequency distribution provides information about distances between frequency peaks in the frequency domain and thus also information about each spatial resolution level, i.e. what different patterns and phase differences, i.e. rotations between patterns, are found in the image. The information obtained is then used for determining coordinates of each of the, preferably vir- tual, raster points in the patterns and thus makes it possible to determine the displacement of each marking in relation to the raster point in the symbols which make up the pattern.
Further objectives, features and advantages of the invention will become apparent from the following detailed description of embodiments of the invention with reference to the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 schematically shows an embodiment of a product which is provided with a position-coding pattern. Figs 2a-2d schematically show how the symbols can be configured in an embodiment of the invention.
Fig. 3 schematically shows an example of 4x4 symbols which are used for coding a position.
Fig. 4 schematically shows a device according to the present invention.
Fig. 5 schematically shows a position-coding pattern and an information-coding pattern.
Fig. 6 schematically shows a power spectrum for spatial frequencies of an image with two coding patterns.
DESCRIPTION OF PREFERRED EMBODIMENTS
For the sake of clarity, the detailed description of the invention below has been divided into a number of part- descriptions. By way of introduction, a position-coding pattern will be presented separately with reference to Figs 1, 2a-d and 3, without being combined with another coding pattern. The purpose of this is to clarify and exemplify the principle of coding information in the form of patterns consisting of symbols. After the presentation of the position-coding pattern, a device is then presented in connection with Fig. 4, which is intended to read the pattern. After that, with reference to Fig. 5, it is shown how a combined position- and information- coding pattern can be arranged. Fig. 6 then illustrates a distribution of spatial frequencies for an input image of a partial surface on which two coding patterns have been applied. In connection with Fig. 6, it will also be discussed how reading and interpreting of a coding- patterned surface is carried out according to the invention. Fig. 1 shows a part of a product in the form of a sheet of paper 1 which, on its surface 2, is provided with an optically readable position-coding pattern 3 which enables position determination to be performed. The position-coding pattern consists of symbols 4 which are systematically arranged over the surface 2 so that it has a "patterned" appearance. The symbols comprise markings which, for the sake of clarity, are round and with constant size in Fig. 1.
The sheet of paper has an x coordinate axis and a y coordinate axis. In this case, position determination can be carried out on the surface of the whole product. In
other cases, the surface provided with a position coding pattern may consist of a smaller part of the product.
The position-coding pattern comprises a virtual raster which thus is neither visible to the human eye nor can be detected directly by a device which is to determine positions on the surface, and a plurality of symbols 4 each being able to assume one of four values "i"-"4" as will be described in the text that follows. In this context, it should be pointed out that the position-coding pattern in Fig. 1 has been greatly enlarged for the sake of clarity. It is also shown only a part of the paper.
The position-coding pattern is arranged in such a manner that the position of a partial surface on the writing surface is coded by the symbols on this partial surface. A first and a second partial surface 5a, 5b are shown by dashed lines in Fig. 1. The part of the position-coding pattern (in this case 4 x 4 symbols) which is located on the first partial surface 5a codes a first position, and the part of the position-coding pattern which is located on the second partial surface 5b codes a second position. The position-coding pattern is thus partially common to the adjoining first and second positions. Such a position-coding pattern is designated as "floating" in this application. Figs 2a-d show an embodiment of a symbol which can be used in the position-coding pattern according to the invention. The symbol comprises a virtual raster point 6 which is represented by the intersection between the raster lines, and a marking 7 which has the form of a dot. The value of the symbol depends on where the marking is located. In the example in Fig. 2, there are four possible locations, one on each of the raster lines extend-
ing from the raster points. The displacement from the raster point is equal for all values. In the text which follows, the symbol has the value 1 in Fig. 2a, the value
2 in Fig. 2b, the value 3 in Fig. 2c and the value 4 in Fig. 2d. In other words, there are four different types of symbol.
Each symbol can thus represent four values "1-4". This means that the position-coding pattern can be divided into a first position code for the x coordinate, and a second position code for the y coordinate. The dividing is done in accordance with the following:
Symbol value x code y code
1 1 1
2 0 1
Thus, the value of each symbol is translated in a first digit, in this case bit, for the x code and a second digit, in this case bit, for the y code. In this manner, two completely independent bit patterns are obtained. The patterns can be combined into a common pattern which is coded graphically with the aid of a plurality of symbols according to Fig. 2.
Each position is coded by means of a plurality of symbols. In this example, 4x4 symbols are used for coding a position in two dimensions, i.e. an x coordinate and a y coordinate.
The position code is built up by means of a number series of ones and zeros which have the characteristic that no sequence of four bits occurs more than once in the series. The number series is cyclic, which means that the characteristic also applies if the end of the series is coupled together with its beginning. Thus, a sequence of four bits always has an unambiguously determined position in the number series.
The series can be maximally 16 bits long if it is to have the characteristic for sequences of four bits described above. In this example, however, only a seven-bit-long series according to the following is used:
"0 0 0 1 0 1 0"
This series contains seven unique sequences of four bits which code a position in the series according to the following:
Position in this series Sequence
0 0001
1 0010
2 0101
3 1010
4 0100
5 1000
6 0000
For coding the x coordinate, the number series is written sequentially in columns over the entire surface that is to be coded. The coding is based on the difference or
position displacement between numbers in adjoining columns. The magnitude of the difference is determined by the position in the number series at which the column is allowed to begin (i.e. with which sequence). More specifically, taking the difference modulo seven between, on the one hand, a number which is coded by a four-bit sequence in a first column and which thus can have the value (position) 0-6, and, on the other hand, a corresponding number (i.e. a sequence on the same "level") in an adjoining column, the result will be the same independently of where along the two columns the comparison is made. Using the difference between two columns, an x coordinate can thus be coded which is constant for all y coordinates. Since each position on the surface is coded with
4x4 symbols in this example, three differences (having the value 0-6) are available according to the above for coding the x coordinate. The coding is then carried out in such a manner that of the three differences, one will always have the value 1 or 2 and the other two will have the value in the interval 3-6. Thus, no differences will be zero in the x code. In other words, the x code is constructed in such a manner that the differences will be as follows : (3-6) (3-6) (1-2) (3-6) (3-6) (1-2) (3-6) (3-6) (1-2) ...
Each x coordinate is thus coded with two numbers between 3 and 6 and a subsequent number which is 1 or 2. If three is subtracted from the high numbers and one from the low one, a number in mixed base will be obtained which directly provides a position in the x direction, from which the x coordinate can then be determined directly as shown in the example below.
Using the principle described above, it is thus possible to code x coordinates 0,1,2... by means of numbers which represent three differences. These differences are coded with a bit pattern which is based on the above number series. Finally, the bit pattern can be coded graphically with the aid of the symbols in Fig. 2.
In many cases, when reading 4x4 symbols it will not be possible to get a complete number which codes the x coordinate but parts of two numbers. Since the least sig- nificant part of the numbers is always 1 or 2, however, a complete number can be reconstructed in a simple manner.
The y coordinates are coded in accordance with the same principle as used for the x coordinates. The cyclic number series is written repeatedly in horizontal rows over the surface which is to be position-coded. Exactly as in the case of the x coordinates, the rows are allowed to begin at different positions, i.e. with different sequences, in the number series. However, it is not differences which are used for the y coordinates, but the coordinates are coded with numbers which are based on the starting position of the number series in each row. When the x coordinate for 4x4 symbols has been determined, it is, in fact, possible to determine the starting position in the number series for the rows which are included in the y code in the 4x4 symbols. In the y code, the most significant digit is determined by allowing this to be the only one that has a value in a specific interval. In this example, one row of four is allowed to begin at position 0-1 in the number series to indicate that this row relates to the least significant digit in a y coordinate, and the other three begin at positions 2-6. In
the y direction, there is thus a series of numbers as follows:
(2-6) (2-6) (2-6) (0-1) (2-6) (2-6) (2-6) (0-1) (2-6) ...
Each y coordinate is thus coded with three numbers between 2 and 6 and a subsequent number between 0 and 1.
If 0 is subtracted from the low number and 2 from the high ones, a position in the y direction in mixed base is obtained, in the same manner as for the x direction, from which the y coordinate can be determined directly. With the above method, it is possible to code
4 x 4 x 2 = 32 positions in the x direction. Each such position corresponds to three differences, giving
3 x 32 = 96 positions. Furthermore, it is possible to code 5 x 5 x 5 x 2 = 250 positions in the y direction. Each such position corresponds to 4 rows, giving
4 x 250 = 1000 positions. Together, it is thus possible to code 96000 positions. Since the x coding is based on differences it is, however, possible to select the position at which the first number series begins. Taking into consideration that this first number series can begin at seven different positions, it is possible to code 7 x 96000 = 672000 positions. The starting position of the first number series in the first column can be calculated when the x coordinate has been determined. The above-mentioned seven different starting positions of the first series can code different sheets or writing surfaces on a product.
To further illustrate the invention according to this embodiment, a specific example follows here which is based on the embodiment of the position code described.
Fig. 3 shows an example of an image with 4x4 symbols which are read by a device for position determination.
These 4x4 symbols have the following values:
4 4 4 2 3 2 3 4
4 4 2 4
1 3 2 4
These values represent the following binary x and y codes :
x code: y code:
0 0 0 0 0 0 0 1
1 0 1 0 0 1 0 0
0 0 0 0 0 0 1 0
1 1 0 0 1 0 1 0
The vertical x sequences code the following positions in the number series: 2 0 4 6. The differences between the columns will be -2 4 2, which modulo 7 gives 5 4 2, which, in mixed base codes position (5-3) x 8 + (4-
3) x 2 + (2-1) = 16 + 2 + 1 = 19. Since the first coded x position is position 0, the difference which lies in the interval 1-2 and which appears in the 4x4 symbols is the twentieth such difference. Since, furthermore, there are a total of three columns for each such difference and there is a start column, the farthest vertical sequence to the right in the 4x4 x code belongs to the 61st column in the x code (3 x 20 + 1 = 61) and that farthest to the left belongs to the 58th.
The horizontal y sequences code the positions 0 4 1 3 in the number series. Since these series begin in the 58th column, the starting position of the rows are these numbers minus 57 modulo 7, providing the starting positions 6 3 0 2. Translated into digits in the mixed base, this becomes 6-2, 3-2, 0-0, 2-2 = 4 1 0 0, where the third digit is the least significant digit in the number in question. The fourth digit is then the most significant digit in the next number. In this case, it must be the same as in the number in question. (The exception is when the number is question consists of the highest possible digits in all positions. It is then apparent that the beginning of the next number is one greater than the beginning of the number in question) . The position of the four-digit number becomes 0x50 + 4x10 + 1x2 + 0x1 = 42 in the mixed base.
The third row in the y code is thus the 43rd which has starting position 0 or 1, and since there are four rows in total in each such row, the third row is number 43x4=172.
Thus, in this example, the position of the top left-hand corner for the 4x4 symbol group is (58,170).
Since the x sequences in the 4x4 group begin in row 170, the x columns of the entire pattern begin at positions ((2 0 4 6) -169) modulo 7 = 1 6 3 5 of the number series. Between the last starting position (5) and the first starting position, the numbers 0-19 are coded in mixed base and by adding together the representations for numbers 0-19 in mixed base, the total difference between these columns is obtained. A primitive algorithm for doing this is to generate these twenty numbers and directly add together their digits. The sum obtained is
called s. The sheet of paper or writing surface is then given by (5-s) modulo 7.
In the example above, an embodiment has been described in which each position is coded with 4 x 4 symbols and a number series with 7 bits is used. Naturally, this is only an example. Positions can be coded with more or fewer symbols. The number of symbols does not need to be the same in both directions. The number series can have different lengths and do not need to be binary but may be built on another base. Different number series can be used for coding in the x direction and coding in the y direction. The symbols can have different numbers of values .
In the example above, furthermore, the marking is a dot. Naturally, it can have a different appearance. For example, it may consist of a polygon.
In the example above, the symbols are used within a square partial surface for coding a position. The partial surface can have another form, for example hexago- nal. Neither do the symbols need to be arranged in rows and columns at an angle of 90 degrees with respect to one another but can also be arranged in other configurations.
For the position code to be detectable, the virtual raster must be determined. In the case of only one pat- tern, this can be done by studying the distance between different markings. The shortest distance found between two markings must originate from two adjoining symbols having the value 1 and 3 so that the markings are located on the same raster line between two raster points. When such a pair of markings has been detected, the associated raster points can be determined with knowledge of the distance between the raster points and the displacement
of the markings from the raster points. Once two raster points have been located, further raster points can be determined by means of measured distances to other markings and with knowledge of the relative distances of the raster points. With two or more superimposed coding patterns, the process of identifying the patterns is somewhat different, as will be described in greater detail below in connection with Figs 5 and 6.
An embodiment of a device for position determination is shown schematically in Fig. 4. It comprises a casing 11, which has the approximate format of a pen. In a short end of the casing, there is an opening 12. The short end is intended to bear against or be held at a short distance from the surface from which information is to be fetched. The casing mainly accommodates an optical part, an electronics part and a power supply.
The optical part comprises at least one light-emitting diode 13 for illuminating the surface which is to be imaged and a light-sensitive area sensor 14, for example a CCD or CMOS sensor for registering a two-dimensional image. The device may also contain a lens system.
The power supply for the device is obtained from a battery 15 which is mounted in a separate compartment in the casing. The electronics part comprises an image-processing means 16 for determining a position on the basis of the image registered by the sensor 14 and, more specifically, a processor unit with a processor which is programmed for reading images from the sensor and carrying out position determination and information decoding on the basis of these images.
In this embodiment, the device may also comprise a pen point 17 by means of which it is possible to write normal pigment-based writing on the surface on which the position determination is to be carried out. The pen point 17 can be retracted and extended so that the user can control whether or not it is to be used. In certain applications, the device does not need to have any pen point at all.
The device also comprises buttons 18, by means of which the device is actuated and controlled. It also has a transceiver 19 for wireless transmission, e.g. by means of IR light or radio waves, of information to and from the device. The device can also comprise a display 20 for showing positions or registered information. Applicant's International Patent application WO 98/20446 describes a device for registering text. This device can be used for position determination and information reading/decoding if it is programmed in a suitable manner. It if it to be used for pigment-based writing, it must also have a pen point.
The device can be divided into different physical casings, a first casing containing components which are necessary for obtaining images of the coding pattern and for transferring them to components which are located in a second casing and which carry out the calculations on the basis of the registered image or images.
As mentioned, calculations are carried out by a processor which thus must have software for locating and decoding the symbols in an image and for determining the positions from the codes thus obtained. On the basis of the above example, an expert can design software which carries out
position determination on the basis of an image of a part of a position-coding pattern.
In the above embodiment, the pattern is optically readable and the sensor is thus optical. As mentioned, the pattern can be based on a parameter other than an optical parameter. In such a case, naturally, the sensor must be of the type which can read the parameter in question.
In the above embodiment, the raster is a grid network. It can also have other forms.
In the embodiment above, it is not the longest possible cyclic number series which is used. This provides a certain redundancy which can be used, for example, for checking the rotation of the group of symbols read. Fig. 5 shows a position-coding pattern combined with an information-coding pattern. The position-coding pattern in Fig. 5 comprises a number of symbols of which markings 502 are shown together with a first raster comprising a number of raster lines 501. The information-coding pattern in Fig. 5 also comprises a number of symbols, of which markings 504 are shown together with a second raster comprising a number of raster lines 503. Both patterns are thus of the same type as the position-coding pattern described in detail above, which is why no detailed description will be given with respect to how information is coded by means of the location of the markings with respect to each respective raster. Note, however, that the markings 502,504 are not located along the raster lines as in the example described above. Rather, the markings 502,504 are located in the respective quadrant defined by the intersections of the raster lines .
As has been discussed above, both coding patterns may in fact encode position information. In such a case the first position-coding pattern encodes positions from a first region or area and the second position-coding pattern encodes positions from a second region or area, thus increasing the total size of the region available for use.
As mentioned above, the raster lines 501, 503 can advantageously be virtual ones, i.e. invisible on the product on which the pattern is applied. The raster lines in Fig. 5 are thus shown only to increase clarity.
The rasters with raster lines 502, 504 have a first spatial scale 505 and a second spatial scale 506 respectively and are displaced with respect to one another by a displacement distance 507. The patterns in Fig. 5, like the above illustrations, have certainly been exaggerated in scale to increase clarity in these illustrations.
The different coding patterns can be displaced in relation to one another by a more or less optional dis- tance and can be of different spatial scales. The result is that the different patterns do not coincide with one another. It is preferred that the displacement between the first and the second raster, the distance between the raster points in the first raster and the distance between the raster points in the second raster are related such that interference effects are avoided. For example, the distances may not have a common integer denominator which is greater than one. It should also be pointed out that a product can certainly be provided with a plurality of different coding patterns, for example three, in which the mutual displacements between the patterns differ from one another. Such a patterned
product can also be provided with patterns with an information density which is only limited by the nature of the surface of the product and the printing technique used for the application. The coding patterns may of course be applied to the product at different instances in time. For example, a product may be provided for sale having only a first position-coding pattern applied on it's surface. A user of the product may subsequently apply, i.e. print, a second coding pattern on the product, and thereby providing the product with further encoded information. Products, e.g. sheets of paper, may be provided being completely covered by a first coding pattern with a very high resolution. A user subsequently applies, by using a more or less conventional laser printer, a second coding pattern on at least a part of the area already provided with the first coding pattern. This second coding pattern may have a lower resolution as compared with the first pattern, being dependent on the capability of the specific printer used, although the pattern may encode user specific information.
Although it has been described above that the two, or more, coding patterns are similar in all but scale, the two coding patterns may differ in other respects. For example, one of the coding patterns may comprise markings of different sizes where the variation in size holds the information of the pattern. It is possible to use any combination of coding patterns known in the art within the scope of the present invention. A method for reading and interpreting a patterned surface according to Fig. 5 will now be described with reference to Fig. 6. The method is advantageously implemented in an
input device such as the device described in connection with Fig. 4.
In a first step, a patterned surface is read, an image of the pattern being stored in an image memory. The image thus only comprises a dot pattern without the raster lines which are indicated in Fig. 5. In this image, the center is then determined in some sense, for example in the form of peak blackening or the like, for each dot and is described as a spike-shaped maximum at this point. An analytic two-dimensional Fourier transformation is then carried out on the data set which consists of a number of spike-shaped maxima. This operation provides a two-dimensional spectrum of spatial frequencies. Fig. 6 illustrates such a spectrum along a spatial frequency axis S where two peaks 601, 602 for two spatial frequencies SI, S2 are shown. A power axis P is shown but without any marked scale since the figure is only intended to illustrate the spectrum in qualitative terms. The peaks originate from the typical spatial distance between markings 502 in the position-coding pattern and, respectively, the typical spatial distance between markings 504 in the information-coding pattern. From a two-dimensional image of a spatial spectrum (not illustrated) , it should be possible to read off the phase differences between the peaks, these phase differences representing the rotation of the patterns.
These values, i.e. the typical spatial distance and rotations show the nature of the two patterns in terms of around which coordinates the actual dots are displaced. After that, the calculation of positions and decoding of other information from the two patterns are carried out as described above.