WO2005024714A1 - Embedding data in position identification pattern - Google Patents

Embedding data in position identification pattern Download PDF

Info

Publication number
WO2005024714A1
WO2005024714A1 PCT/EP2004/051934 EP2004051934W WO2005024714A1 WO 2005024714 A1 WO2005024714 A1 WO 2005024714A1 EP 2004051934 W EP2004051934 W EP 2004051934W WO 2005024714 A1 WO2005024714 A1 WO 2005024714A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
pattern
areas
sequence
product
Prior art date
Application number
PCT/EP2004/051934
Other languages
French (fr)
Inventor
Miguel Angel Albarran
Carles Ruiz
Andrew Mackenzie
Original Assignee
Hewlett-Packard Development Company, L.P.
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 Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Publication of WO2005024714A1 publication Critical patent/WO2005024714A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding

Definitions

  • the present invention relates to images including position identifying pattern and to products which have the image on them, the position identifying pattern being made up of markings on the surface of the product, which can be detected by a suitable detection system and used to distinguish different positions on the document.
  • the product may be a document such as a form, a label or a note pad, or it may be any other suitable product such as a packaging product.
  • a pen having an imaging system such as an infra red camera
  • the pen includes a processor having image processing capabilities and a memory and is triggered by a force sensor in the nib to record images from the camera as the pen is moved across the document. From these images the pen can determine the position of any marks made on the document by the pen.
  • the pen markings can be stored directly as graphic images, which can then be stored and displayed in combination with other markings on the document. In some applications the simple recognition that a mark has been made by the pen on a predefined area of the document can be recorded, and this information used in any suitable way.
  • the present invention provides a method of embedding data within a position identifying pattern on a product, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas on the product; and applying pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
  • Each unit of information can be a symbol such as a letter or digit, and the sequence may comprise a code such as an identity code for the product, a user of the product or a printer on which the product is produced.
  • the sequence may carry instructions regarding how those other functions should be performed.
  • the information carrying areas may be defined adjacent to one another. Alternatively they can be spaced apart. In either case it is desirable that they are arranged such that a reading device, such as a digital pen, an be moved over them in the required order.
  • the information carrying areas may therefore be defined so as to form a row.
  • a plurality of information areas may be associated with each unit of information, and to represent that unit of information within the sequence, one of those areas may be selected depending on the position of the unit in the sequence.
  • the plurality of information areas associated with each unit of information may form a group and the groups be aligned in pattern space so that each of the areas within one of the groups is aligned with a respective area in each of the other groups to form an aligned set. Then one information area from each set may be selected to form the information sequence.
  • a corresponding system for producing a product having a position identifying pattern thereon, and a corresponding product having a position identifying pattern thereon, are also provided.
  • the present invention provides a method of reading an information sequence on a product comprising: identifying a plurality of pattern areas over which a reading device is passed; identifying a unit of information associated with each of the pattern areas; and combining the units of information to form the information sequence.
  • the position of the reading device within the pattern area may be monitored so that movement of the reading device between two identical pattern areas can be detected.
  • the relative positions in pattern space, of consecutive pattern areas over which the reading device is passed, may be calculated and used to determine a relationship between consecutive information units in the sequence, for example a distance, in pattern space, between said consecutive areas may be calculated and used to determine a relationship between consecutive information units in the sequence.
  • a corresponding reading system for reading an information sequence embedded in a position identifying pattern on a product is also provided.
  • Figure 2 shows schematically the application of a sequence of areas from Figure 1 to a number of documents
  • Figure 3 shows a computer system arranged according to an embodiment of the invention to read the information from, and to produce, the documents of Figure 2;
  • Figure 6 is a schematic diagram showing a method of producing a document according to a further embodiment of the invention.
  • Figure 7 is an enlarged view of part of the document of Figure 6;
  • Figure 8 is a flow diagram showing a method according to a further embodiment of the invention of reading information from the document of Figures 6 and 7.
  • a position identifying pattern 100 which is applied to documents or other products, is made up of a number of dots 102 arranged on an imaginary grid 104.
  • the grid 104 which is not marked on a document, but merely used as a reference, can be considered as being made up of horizontal and vertical lines 106, 108 defining a number of intersections 110 where they cross.
  • the intersections 110 are of the order of 0.3mm apart, and the dots are of the order of 100? m across.
  • One dot 102 is provided at each intersection 110, but offset slightly in one of four possible directions up, down, left or right, from the actual intersection 110.
  • the dot offsets are arranged to vary in a systematic way so that any group of a sufficient number of dots 102, for example any group of 36 dots arranged in a six by six square, will be unique within a very large area of the pattern.
  • This large area is defined as a total imaginary pattern space, and only a small part of the pattern space is taken up by the pattern applied to any one document.
  • a reading device can therefore be used to read a small area of the pattern 100, to identify the position within the pattern space that the pattern 100 is taken from, and to interpret that position in a suitable way.
  • An example of this type of pattern is described in WO 01/26033. It will be appreciated that other position identifying patterns can equally be used. Some examples of other suitable patterns are described in WO 00/73983 and WO 01/71643.
  • a code such as a document identity code
  • These sequences of symbols can be used for a number of purposes, for example to identify the individual documents 116.
  • the squares 112 of pattern can be read by a reading device, as described in more detail below. In order to read the code, the reading device must be move across the squares of pattern 112 in the correct order, from left to right, and therefore a human visible marking in the form of an arrow 118 is provided on the documents 116 to indicate the required type of pen stroke.
  • a very simple system for producing printed documents 116 having the position identifying pattern on them comprises a personal computer (PC) 200 and a printer 202.
  • the PC 200 has a screen 204, a keyboard 206 and a mouse 208 connected to it to provide a user interface 209 as shown generally in Figure 4.
  • the PC 200 comprises a processor 210 and a pattern allocation module 212 which is a software module stored in memory.
  • the pattern allocation module 212 includes the definition of the total area of pattern space and a record of which parts of that total area have been allocated to specific documents, for example by means of coordinate references. It also includes a definition of the areas 112 of pattern and the symbols which they represent.
  • the area of code allocated to the symbols 114 is reserved specifically for that purpose, and cannot be allocated to any other function on a document.
  • the PC 200 further comprises a printer driver 214, which is a further software module, and a memory 216 having electronic documents 218 stored in it.
  • the user interface 209 allows a user to interact with the PC 200.
  • the processor 210 retrieves an electronic document 218 from the memory 216 and sends it to the printer driver 214.
  • the electronic document 218 contains, in this case, a definition of the positions in which the pattern squares 112 are to be applied. This could instead be determined by the printer driver 214.
  • the printer driver 214 allocates a unique document identification code to the document to be printed and requests the required pattern areas 112 from the pattern allocation module 212, which communicates the details of the pattern including the positions of all the required dots, back to the printer driver 214.
  • the printer driver 214 then adds the pattern areas 112 to the electronic document to form an image which includes the pattern and the content, converts the document including the pattern areas 112 to a format suitable for the printer 202, and sends it to the printer which prints the document 116 including the pattern areas 112.
  • the various components of the system can be spread out over a local network or the internet.
  • the pattern allocation module 212 can be provided on a separate internet connected server so that it can be accessed by a number of users.
  • a pen 300 for reading the pattern areas 112 comprises a writing nib 310, and a camera 312 made up of an infra red (IR) LED 314 and an IR sensor 316.
  • the camera 312 is arranged to image a circular area adjacent to the tip 311 of the pen nib 310.
  • a processor 318 processes images from the camera 312 taken at a predetermined rapid sample rate.
  • a pressure sensor 320 detects when the nib 310 is in contact with the document 100 and triggers operation of the camera 312. Whenever the pen is being used on a patterned area of the document 100, the processor 318 can therefore determine from the pattern 108 the position within the defined pattern area of the pattern 100 over which the pen 300 is being passed.
  • the sequence of positions is saved in the pens memory 322 as pen stroke data, and can be transmitted to the PC 200 via a radio frequency transmitter 324 in the pen 300. Suitable pens are available from Logitech under the trade mark Logitech Io.
  • the pen stroke data comprises a series of positions in pattern space, as described above. There is one position for each image recorded by the camera in the pen 300. For the correct reading of an ID code, the pen nib 310 must be moved across all of the three pattern areas 112a, 112b, 112c which make up the ID pattern, in the correct direction (which in this case is from left to right) as shown in Figure 5a. Broadly speaking, the pen stroke interpretation module 224 detects the first movement of the pen nib 310 into one 112a of the pattern areas 112 and stores the symbol associated with that area as the first symbol in the sequence.
  • the pen nib 310 next moves into a second 112b of the pattern areas 112, the symbol associated with that area 112b is stored as the second symbol in the sequence, and if the pen nib 310 next moves into a third 112c of the pattern areas 112, the associated symbol is stored as the third in the sequence.
  • the sequence is stored as a document ID code.
  • an algorithm for carrying out this process starts at step 500 where the X and Y coordinates (Sx,Sy) in pattern space of the sampled pattern viewed by the pen 300 are first identified as being within one of the information areas An, corresponding to area 112a in Figure 5a, where n is the symbol value. This symbol value n is saved in a stack, and the system moves to state n.
  • the horizontal coordinate Sx is saved as Xe, being the horizontal coordinate of the point of entry 502 into the area 112a.
  • the next sampled area is selected at step 504, and analysed at step 506 to determine whether it is within the same information area 112a or not.
  • the recorded sequence of symbols in the stack is recorded as the final ID code at step 512. In the example of Figure 5a this would be when the pen nib 310 passes out of the right hand side of the third information area 112c.
  • a code of any number of symbols can be recorded.
  • a further check can be included to ensure that the correct number of symbols are saved before the code will be recognized. If, at any time before the relevant number of symbols have been stored, the pen stroke data indicates that the pen nib has moved into a pattern area which is not one of the information areas 112, then the sequence is abandoned.
  • the code identification process can be performed in the processor 318 of the pen 300. This enables the code identification to be carried out in real time as the pen 300 is being used.
  • the identification code can then be used, for example, to indicate what to do with the rest of the pen stroke data, for example to which of a number of different interpretation modules to sent it.
  • the pen can be arranged to forward the ID code with the rest of the pen stroke data it has accumulated to indicate to the interpretation module 224 how to interpret the pen stroke data.
  • a document 600 has an area of pattern space 604 allocated to it, and over most of the area of the document 600 the pattern 602 is applied as a single general pattern area 605.
  • This pattern can have a variety of functions and can be subdivided into separate areas which serve different functions, for example as a check box 605a, a free drawing area 605b, or a character recognition area 605c. These defined functions determine how pen strokes made in those areas will be interpreted.
  • individual information areas 606 are also defined. The information areas are defined independently of the other functional areas, and can overlap with them, as shown in the case of the free drawing area 605b.
  • the information areas 606 are arranged in groups 608, each group 608 comprising a horizontal row of adjacent areas 606 of equal size and shape.
  • the groups 608 are aligned with each other, one above the other, so that each area 606 in each group 608 is vertically aligned with a corresponding area 606 in each of the other groups 608 to form an aligned set 610.
  • Each group 608 is allocated a symbol, in this case numerals 0, 1, 2 etc.
  • Each set 610 is allocated to a position in an ID code sequence 612, so that the number of areas 606 in each group 608, and hence the number of sets 610, must equal at least the number of symbols in the ID code sequence 612, in this case four.
  • An area 614 on the document 600 is designated as an ID code area, and is divided into a row of adjacent symbol areas 616, one symbol area 616 for each symbol in the ID code 612.
  • an area 606 of pattern from the first set 610 is selected and copied into the first, left had, symbol area 616.
  • the first pattern area A is taken from the group representing the numeral 1 , so the first symbol in the code sequence is a 1.
  • a pattern area B is selected from the second set 610 of pattern areas and copied into the second symbol area 616.
  • the pattern area B is taken from the group representing the numeral 2, so the second symbol in the code 612 is a 2.
  • Third are fourth pattern areas C, D are copied from the third and fourth sets 610 to indicate the third and fourth symbols in the code, in this case a 1 and a 0.
  • Y m i nl is the vertical distance, in the Y direction, between adjacent groups 608 of pattern areas 606, and is therefore the minimum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608.
  • Y ma ⁇ i is the vertical distance between the top of one group and the bottom of the group below, and is therefore the maximum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608.
  • Y m i n 2 and Y maX 2 are defined in a similar way for groups 608 which are spaced apart by one other group 608.
  • Y m ⁇ n3 and Ymax3 are defined in a similar way for groups 608 which are spaced apart by two other groups. Similar distances are defined for any further groups which are used, depending on the number of possible symbols in the code, which would typically be ten for the ten digits from 0 to 9.
  • the horizontal width of each area 606 is defined as X.
  • the processor 318 in the pen 300 is arranged to monitor consecutive sampled areas of pattern, and to recognize step changes in the Y coordinate, corresponding to movements between the groups 608 of pattern areas 606, as indicative that the pen nib 310 is moving across the code area 614. From the size of the step in Y coordinate the processor can determine the change in value between one symbol and the next. Provided the code includes one known symbol, then the absolute values of all of the symbols in the code can be determined. In this case the known reference symbol is the last symbol in the sequence, which is set to be 0 in every code.
  • SxO and SyO are auxiliary variables for storing position coordinates
  • N is the number of symbols in the code
  • n is a counter for keeping track of how many symbols have been processed
  • ⁇ mi n? e xmax , e ym ⁇ n and e ymax are threshold values of displacements in the X and Y directions respectively.
  • step 626 a check, similar to that at step 622, is carried out to check whether the vertical and horizontal changes in position in pattern space of the pen nib 310 are consistent with the pen nib 310 having moved between two pattern areas 606.
  • step 626 If at step 626 it is determined that the pen nib has not moved between two pattern areas 606, then the algorithm proceeds to step 630 where the horizontal and vertical movements from the previous sampled position are compared to the threshold distances, to check whether the change in X coordinate is between the two X coordinate thresholds e xm in and e xmax , and whether the change in Y coordinate is between the two Y coordinate thresholds e ym i n and e ymax . If they are then this indicates that pen nib has moved within one of the pattern areas 606. SxO and SyO are set to the current values of Sx and Sy, and the algorithm loops back to step 626.
  • n is reset to zero, and the algorithm returns to the 'not in coding area' state and returns to the first step 622 where it will start checking for the beginning of another code sequence.
  • the pen strokes from the other areas 605a, 605b, 605c of the document are analysed and processed in the usual way, being sent by the pen to the pen stroke interpretation module 224 which interprets them and converts them to suitable inputs to the application 226.
  • the duplication of pattern between these areas 605a, 605b, 605c and the code area does not affect this processing.
  • the pattern in the code area 614 is interpreted by the pen 300 and the remaining pattern is interpreted in the separate module 224.
  • pen stroked from either area can be processed in any suitable location.
  • the information could be a code identifying a printer from which the document was printed, or a user who requested printing of the document. Alternatively it could be a code used for a security function.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

A method of embeddling data within a position identifying pattern on a product (116) comprises defining a plurality of information areas (112) within a pattern space; asscciating a unit of information (114) with each of the information areas; defining a plurality of information carrying areas (117) on the product; and applying pattern (100) from one of the information areas (112) to each of the information carrying areas (117) to define an information sequence made up of a sequence of said units.

Description

EMBEDDING DATA IN POSITION IDENTIFICATION PATTERN
FIELD OF THE INVENTION
The present invention relates to images including position identifying pattern and to products which have the image on them, the position identifying pattern being made up of markings on the surface of the product, which can be detected by a suitable detection system and used to distinguish different positions on the document. The product may be a document such as a form, a label or a note pad, or it may be any other suitable product such as a packaging product.
BACKGROUND TO THE INVENTION
It is known to use documents having such position identification markings in combination with a pen having an imaging system, such as an infra red camera, within it, which is arranged to image a small area of the page close to the pen nib. The pen includes a processor having image processing capabilities and a memory and is triggered by a force sensor in the nib to record images from the camera as the pen is moved across the document. From these images the pen can determine the position of any marks made on the document by the pen. The pen markings can be stored directly as graphic images, which can then be stored and displayed in combination with other markings on the document. In some applications the simple recognition that a mark has been made by the pen on a predefined area of the document can be recorded, and this information used in any suitable way. This allows, for example, forms with check boxes on to be provided and the marking of the check boxes with the pen detected. In further applications the pen markings are analysed using character recognition tools and stored digitally as text. Systems using this technology are available from Anoto AB and described on their website www.Anoto.com. It is known from WO 01/75781 to provide a system for interpreting lines, drawn on a document having position identifying pattern on it, as requiring an association between functions and data recorded on the document. For example drawing a line from an area of the document having an email address on it to another area of the document associated with an email function causes the creation of an email to the email address.
SUMMARY OF THE INVENTION
According to a first aspect, the present invention provides a method of embedding data within a position identifying pattern on a product, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas on the product; and applying pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
Each unit of information can be a symbol such as a letter or digit, and the sequence may comprise a code such as an identity code for the product, a user of the product or a printer on which the product is produced. Alternatively, where the pattern is used on the product for other functions than the definition of the information sequence, the sequence may carry instructions regarding how those other functions should be performed.
The information carrying areas may be defined adjacent to one another. Alternatively they can be spaced apart. In either case it is desirable that they are arranged such that a reading device, such as a digital pen, an be moved over them in the required order. The information carrying areas may therefore be defined so as to form a row. A plurality of information areas may be associated with each unit of information, and to represent that unit of information within the sequence, one of those areas may be selected depending on the position of the unit in the sequence. For example the plurality of information areas associated with each unit of information may form a group and the groups be aligned in pattern space so that each of the areas within one of the groups is aligned with a respective area in each of the other groups to form an aligned set. Then one information area from each set may be selected to form the information sequence.
A corresponding system for producing a product having a position identifying pattern thereon, and a corresponding product having a position identifying pattern thereon, are also provided.
According to a further aspect, the present invention provides a method of reading an information sequence on a product comprising: identifying a plurality of pattern areas over which a reading device is passed; identifying a unit of information associated with each of the pattern areas; and combining the units of information to form the information sequence.
The position of the reading device within the pattern area may be monitored so that movement of the reading device between two identical pattern areas can be detected.
The relative positions in pattern space, of consecutive pattern areas over which the reading device is passed, may be calculated and used to determine a relationship between consecutive information units in the sequence, for example a distance, in pattern space, between said consecutive areas may be calculated and used to determine a relationship between consecutive information units in the sequence. A corresponding reading system for reading an information sequence embedded in a position identifying pattern on a product is also provided.
Data carriers for carrying data arranged to control a product marking system, or a reading system to carry out the methods of the invention, and to operate as systems of the invention are also provided. The data carrier can comprise, for example, a floppy disk, a CDROM, a DVD ROM/RAM (including +RW, -RW), a hard drive, a non- volatile memory, any form of magneto optical disk, a wire, a transmitted signal (which may comprise an internet download, an ftp transfer, or the like), or any other form of computer readable medium.
Preferred embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows areas of pattern space allocated to respective symbols for use in a method according to an embodiment of the invention;
Figure 2 shows schematically the application of a sequence of areas from Figure 1 to a number of documents;
Figure 3 shows a computer system arranged according to an embodiment of the invention to read the information from, and to produce, the documents of Figure 2;
Figure 4 is a block diagram showing the functional units within the computer of Figure 3;
Figure 5 is a flow diagram showing a method according to an embodiment of the invention of reading the sequence of Figure 2; Figure 5a illustrates a pen stroke made across a code area of a document; .
Figure 6 is a schematic diagram showing a method of producing a document according to a further embodiment of the invention;
Figure 7 is an enlarged view of part of the document of Figure 6; and
Figure 8 is a flow diagram showing a method according to a further embodiment of the invention of reading information from the document of Figures 6 and 7.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring to Figure 1 a position identifying pattern 100, which is applied to documents or other products, is made up of a number of dots 102 arranged on an imaginary grid 104. The grid 104, which is not marked on a document, but merely used as a reference, can be considered as being made up of horizontal and vertical lines 106, 108 defining a number of intersections 110 where they cross. The intersections 110 are of the order of 0.3mm apart, and the dots are of the order of 100? m across. One dot 102 is provided at each intersection 110, but offset slightly in one of four possible directions up, down, left or right, from the actual intersection 110. The dot offsets are arranged to vary in a systematic way so that any group of a sufficient number of dots 102, for example any group of 36 dots arranged in a six by six square, will be unique within a very large area of the pattern. This large area is defined as a total imaginary pattern space, and only a small part of the pattern space is taken up by the pattern applied to any one document. A reading device can therefore be used to read a small area of the pattern 100, to identify the position within the pattern space that the pattern 100 is taken from, and to interpret that position in a suitable way. An example of this type of pattern is described in WO 01/26033. It will be appreciated that other position identifying patterns can equally be used. Some examples of other suitable patterns are described in WO 00/73983 and WO 01/71643.
As shown in Figure 1 , a number of separate information areas, in this case squares 112 of pattern 100, taken from the pattern space, are defined as being associated with respective pieces of information. In this case each of the squares 112 is associated with a symbol 114, with one square being associated with each letter from A to Z, and one with each digit from 0 to 9 one to each of four further symbols *, Λ, -, and +.
Referring to Figure 2 a number of documents 116 each have a number of the squares 112 of pattern applied to them in respective symbol areas 117, which correspond in size to the pattern areas 112. In this case three squares
112 are applied directly adjacent to one another in a row 113, representing a code, such as a document identity code, comprising a sequence of three of the symbols 114. These sequences of symbols can be used for a number of purposes, for example to identify the individual documents 116. The squares 112 of pattern can be read by a reading device, as described in more detail below. In order to read the code, the reading device must be move across the squares of pattern 112 in the correct order, from left to right, and therefore a human visible marking in the form of an arrow 118 is provided on the documents 116 to indicate the required type of pen stroke.
Referring to Figure 3 a very simple system for producing printed documents 116 having the position identifying pattern on them comprises a personal computer (PC) 200 and a printer 202. The PC 200 has a screen 204, a keyboard 206 and a mouse 208 connected to it to provide a user interface 209 as shown generally in Figure 4. As also shown in Figure 4, the PC 200 comprises a processor 210 and a pattern allocation module 212 which is a software module stored in memory. The pattern allocation module 212 includes the definition of the total area of pattern space and a record of which parts of that total area have been allocated to specific documents, for example by means of coordinate references. It also includes a definition of the areas 112 of pattern and the symbols which they represent. The area of code allocated to the symbols 114 is reserved specifically for that purpose, and cannot be allocated to any other function on a document. The PC 200 further comprises a printer driver 214, which is a further software module, and a memory 216 having electronic documents 218 stored in it. The user interface 209 allows a user to interact with the PC 200.
In order to produce the printed documents 116 the processor 210 retrieves an electronic document 218 from the memory 216 and sends it to the printer driver 214. The electronic document 218 contains, in this case, a definition of the positions in which the pattern squares 112 are to be applied. This could instead be determined by the printer driver 214. The printer driver 214 allocates a unique document identification code to the document to be printed and requests the required pattern areas 112 from the pattern allocation module 212, which communicates the details of the pattern including the positions of all the required dots, back to the printer driver 214. The printer driver 214 then adds the pattern areas 112 to the electronic document to form an image which includes the pattern and the content, converts the document including the pattern areas 112 to a format suitable for the printer 202, and sends it to the printer which prints the document 116 including the pattern areas 112.
In practice the various components of the system can be spread out over a local network or the internet. For example the pattern allocation module 212 can be provided on a separate internet connected server so that it can be accessed by a number of users.
Referring still to Figure 3, a pen 300 for reading the pattern areas 112 comprises a writing nib 310, and a camera 312 made up of an infra red (IR) LED 314 and an IR sensor 316. The camera 312 is arranged to image a circular area adjacent to the tip 311 of the pen nib 310. A processor 318 processes images from the camera 312 taken at a predetermined rapid sample rate. A pressure sensor 320 detects when the nib 310 is in contact with the document 100 and triggers operation of the camera 312. Whenever the pen is being used on a patterned area of the document 100, the processor 318 can therefore determine from the pattern 108 the position within the defined pattern area of the pattern 100 over which the pen 300 is being passed. The sequence of positions is saved in the pens memory 322 as pen stroke data, and can be transmitted to the PC 200 via a radio frequency transmitter 324 in the pen 300. Suitable pens are available from Logitech under the trade mark Logitech Io.
Referring back to Figure 4, the PC 200 further comprises a radio frequency receiver 220 and an input/output module 222 which processes the signals received by the receiver 220 and inputs them to the processor 210. It also includes a pen stroke interpretation module 224 which is arranged to interpret the pen stroke data from the pen 300 and an application 226 which uses the pen stroke data to perform a function related to the documents 116. When the pen stroke data is received, it is forwarded to the pen stroke interpretation module 224 which identifies the symbols associated with the pattern areas 112, and thereby determines the identity code which it sends back to the processor 210 which forwards it to the application.
The process by which the pen stroke interpretation module 224 interprets the pen strokes will now be described. The pen stroke data comprises a series of positions in pattern space, as described above. There is one position for each image recorded by the camera in the pen 300. For the correct reading of an ID code, the pen nib 310 must be moved across all of the three pattern areas 112a, 112b, 112c which make up the ID pattern, in the correct direction (which in this case is from left to right) as shown in Figure 5a. Broadly speaking, the pen stroke interpretation module 224 detects the first movement of the pen nib 310 into one 112a of the pattern areas 112 and stores the symbol associated with that area as the first symbol in the sequence. Then, provided the pen nib 310 next moves into a second 112b of the pattern areas 112, the symbol associated with that area 112b is stored as the second symbol in the sequence, and if the pen nib 310 next moves into a third 112c of the pattern areas 112, the associated symbol is stored as the third in the sequence. As soon as the pen stroke data shows that the pen nib 310 moved into a pattern area that is not one of the information areas 112, the sequence is stored as a document ID code.
Referring to Figure 5, an algorithm for carrying out this process starts at step 500 where the X and Y coordinates (Sx,Sy) in pattern space of the sampled pattern viewed by the pen 300 are first identified as being within one of the information areas An, corresponding to area 112a in Figure 5a, where n is the symbol value. This symbol value n is saved in a stack, and the system moves to state n. The horizontal coordinate Sx is saved as Xe, being the horizontal coordinate of the point of entry 502 into the area 112a. Then the next sampled area is selected at step 504, and analysed at step 506 to determine whether it is within the same information area 112a or not. If it is not, then the process moves to step 508 where the new sampled area is analysed to determine whether it is another of the information areas or not. If it is, as in the example shown in Figure 5a, then the system moves to a new state n=m, and the symbol value m associated with the new information area Am is stored in the stack. If, at step 506, the new sampled area is determined to be within the same information area An as in the previous sampled area, the process moves to step 510, where the horizontal coordinate of the new sampled area is compared to that Xe of the last recorded entry point into that information area An. If it is not the same, then this indicates that the pen nib 310 has moved within the information area An, and the process returns to step 504 to sample the next area. If, however, the horizontal coordinate of the new sampled area is the same as Xe, then this indicates that the pen nib 310 has passed into an adjacent information area which is the same as the last one, i.e. that the information area An has been repeated indicating a repeated symbol n in the sequence. In this case the symbol n is stored again in the stack before the system returns to step 504.
If at step 508 the new sampled area is determined not to be in any of the information areas 112, then the recorded sequence of symbols in the stack is recorded as the final ID code at step 512. In the example of Figure 5a this would be when the pen nib 310 passes out of the right hand side of the third information area 112c.
In the example described above, a code of any number of symbols can be recorded. A further check can be included to ensure that the correct number of symbols are saved before the code will be recognized. If, at any time before the relevant number of symbols have been stored, the pen stroke data indicates that the pen nib has moved into a pattern area which is not one of the information areas 112, then the sequence is abandoned.
Also, instead of being carried out in the pen stroke interpretation module 224, the code identification process can be performed in the processor 318 of the pen 300. This enables the code identification to be carried out in real time as the pen 300 is being used. The identification code can then be used, for example, to indicate what to do with the rest of the pen stroke data, for example to which of a number of different interpretation modules to sent it. Alternatively the pen can be arranged to forward the ID code with the rest of the pen stroke data it has accumulated to indicate to the interpretation module 224 how to interpret the pen stroke data.
Referring to Figure 6, in a second embodiment of the invention, a document 600 has an area of pattern space 604 allocated to it, and over most of the area of the document 600 the pattern 602 is applied as a single general pattern area 605. This pattern can have a variety of functions and can be subdivided into separate areas which serve different functions, for example as a check box 605a, a free drawing area 605b, or a character recognition area 605c. These defined functions determine how pen strokes made in those areas will be interpreted. However, within the pattern 602, individual information areas 606 are also defined. The information areas are defined independently of the other functional areas, and can overlap with them, as shown in the case of the free drawing area 605b. The information areas 606 are arranged in groups 608, each group 608 comprising a horizontal row of adjacent areas 606 of equal size and shape. The groups 608 are aligned with each other, one above the other, so that each area 606 in each group 608 is vertically aligned with a corresponding area 606 in each of the other groups 608 to form an aligned set 610. Each group 608 is allocated a symbol, in this case numerals 0, 1, 2 etc. Each set 610 is allocated to a position in an ID code sequence 612, so that the number of areas 606 in each group 608, and hence the number of sets 610, must equal at least the number of symbols in the ID code sequence 612, in this case four.
An area 614 on the document 600 is designated as an ID code area, and is divided into a row of adjacent symbol areas 616, one symbol area 616 for each symbol in the ID code 612. To make up the code sequence, an area 606 of pattern from the first set 610 is selected and copied into the first, left had, symbol area 616. In the example shown the first pattern area A is taken from the group representing the numeral 1 , so the first symbol in the code sequence is a 1. Then a pattern area B is selected from the second set 610 of pattern areas and copied into the second symbol area 616. In this case the pattern area B is taken from the group representing the numeral 2, so the second symbol in the code 612 is a 2. Third are fourth pattern areas C, D are copied from the third and fourth sets 610 to indicate the third and fourth symbols in the code, in this case a 1 and a 0.
Referring to Figure 7, while the actual pattern in each of the pattern areas 606 will depend entirely on which area of pattern space has been allocated to the document 600, the relative positions of the various pattern areas 606 is carefully defined, and is the same for each document to which a code is to be applied. As will be described below, it is the relative positions of the sequence of pattern areas 606 in the code area 614 that determine the symbol which they represent. In order to determine these relative positions, various distances within the defined pattern areas 606 are defined. Yminl is the vertical distance, in the Y direction, between adjacent groups 608 of pattern areas 606, and is therefore the minimum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608. Ymaχi is the vertical distance between the top of one group and the bottom of the group below, and is therefore the maximum vertical distance between a point in an area 606 in one group 608 and a point in an area in an adjacent group 608. Ymin2 and YmaX2 are defined in a similar way for groups 608 which are spaced apart by one other group 608. Ymιn3 and Ymax3 are defined in a similar way for groups 608 which are spaced apart by two other groups. Similar distances are defined for any further groups which are used, depending on the number of possible symbols in the code, which would typically be ten for the ten digits from 0 to 9. The horizontal width of each area 606 is defined as X. In order to read the code 612, the processor 318 in the pen 300 is arranged to monitor consecutive sampled areas of pattern, and to recognize step changes in the Y coordinate, corresponding to movements between the groups 608 of pattern areas 606, as indicative that the pen nib 310 is moving across the code area 614. From the size of the step in Y coordinate the processor can determine the change in value between one symbol and the next. Provided the code includes one known symbol, then the absolute values of all of the symbols in the code can be determined. In this case the known reference symbol is the last symbol in the sequence, which is set to be 0 in every code.
Referring to Figure 8, an algorithm for reading the code 612 from the pattern areas 606 in the code area 614 will now be described. In this example it is not permitted for two consecutive symbols in the code to have the same value. The variables used in the algorithm are defined as follows:
Sx and Sy indicate the X and Y coordinates of each new samples area;
SxO and SyO are auxiliary variables for storing position coordinates;
N is the number of symbols in the code; n is a counter for keeping track of how many symbols have been processed; and β min? exmax, eymιn and eymax are threshold values of displacements in the X and Y directions respectively.
The algorithm starts at step 620 where SxO, SyO and n are set to 0, and N is set to 3 to indicate that the code will have three useful symbols and a reference symbol. It then proceeds to step 622 where the pattern is again sampled at a new position and the coordinates Sx and Sy of that position determined. Also at this step the coordinates Sx and Sy are compared to the values of SxO and SyO, which are currently set to zero and so represent the coordinate origin, to see whether the X and Y displacements compared to the SxO and SyO values are within the range of possible values corresponding to a movement of the pen nib 310 between two of the 606 in adjacent sets 610. In this first iteration this will not be the case, so SxO and SyO are set to the current position coordinates Sx.and Sy and the algorithm returns through the 'not in coding area' state and moves on to the next sampled coordinates Sx and Sy, and repeats step 622. Now the position is compared with the previous position, which is now stored in SxO and SyO. If the X and Y displacements correspond to a move between two pattern areas 606 in adjacent sets 610, then it is determined that the pen nib 310 is possibly in a coding area, and the algorithm moves to a state 624 indicative of that. The algorithm records the vertical displacement, i.e. the difference between Sy and SyO, in a stack, resets SxO to Sx and SyO to Sy and increases n to 1 , indicating that the separation between the first and second symbols A, B has been identified. It then takes the next sample coordinates Sx and Sy moves to step 626 where a check, similar to that at step 622, is carried out to check whether the vertical and horizontal changes in position in pattern space of the pen nib 310 are consistent with the pen nib 310 having moved between two pattern areas 606. If they are, then the change in Y coordinate (Sy-SyO) is stored in the stack, SxO and SyO are set to the current Sx and Sy, n is increased by 1 to indicate that another symbol has been added to the code, and the algorithm moves to step 628 where the value of n is checked. If n equals N+l then this indicates that all of the useful symbols and the reference symbol have been detected, and the symbol values in the stack are recognized as a complete code and processed accordingly, if n is less that N+l then further symbols are needed to complete the code, and the system loops back to step 626, remaining in the 'possibly in coding area' state.
If at step 626 it is determined that the pen nib has not moved between two pattern areas 606, then the algorithm proceeds to step 630 where the horizontal and vertical movements from the previous sampled position are compared to the threshold distances, to check whether the change in X coordinate is between the two X coordinate thresholds exmin and exmax, and whether the change in Y coordinate is between the two Y coordinate thresholds eymin and eymax. If they are then this indicates that pen nib has moved within one of the pattern areas 606. SxO and SyO are set to the current values of Sx and Sy, and the algorithm loops back to step 626. If either of the X or Y coordinate displacements are outside the thresholds, then this is taken to indicate that the pen nib 310 has moved outside the coding area. The value of n is reset to zero, and the algorithm returns to the 'not in coding area' state and returns to the first step 622 where it will start checking for the beginning of another code sequence.
When the stack of Y coordinate displacements is recorded it indicates the difference in vertical position in pattern space, and hence the difference in value, between successive adjacent pairs of symbols in the code. Since the last symbol is known to be 0, the absolute values of all of the symbols can be determined.
The pen strokes from the other areas 605a, 605b, 605c of the document are analysed and processed in the usual way, being sent by the pen to the pen stroke interpretation module 224 which interprets them and converts them to suitable inputs to the application 226. The duplication of pattern between these areas 605a, 605b, 605c and the code area does not affect this processing. As mentioned above, in this case, the pattern in the code area 614 is interpreted by the pen 300 and the remaining pattern is interpreted in the separate module 224. However it will be appreciated that pen stroked from either area can be processed in any suitable location.
The use of a document identify code, or tracking code, as described above has a number of advantages. It can allow document tracking without the need to keep track of the position identifying pattern allocated to each document. It also allows the same pattern area to be used for any number of documents without the uniqueness of the code, and therefore the unique identification of each document being affected. Furthermore the code is not readily readable by the human eye.
It will be appreciated that a variety of other types of data or information can be embedded within the position identifying code on a product using the methods described above. For example, where the product is a printed document, the information could be a code identifying a printer from which the document was printed, or a user who requested printing of the document. Alternatively it could be a code used for a security function.

Claims

CLAIMS 1. A method of embedding data within a position identifying pattern on a product, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas on the product; and applying pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
2. A method according to claim 1 wherein the information carrying areas are defined adjacent to one another.
3. A method according to claim 1 or claim 2 wherein the information carrying areas are defined so as to form a row.
4. A method according to any foregoing claim wherein a plurality of information areas are associated with each unit of information, and to represent that unit of information within the sequence, one of those areas is selected depending on the position of the unit in the sequence.
5. A method according to claim 4 wherein the plurality of information areas associated with each unit of information form a group and the groups are aligned in pattern space so that each of the areas within one of the groups is aligned with a respective area in each of the other groups to form an aligned set.
6. A method according to claim 5 wherein the groups are defined so that they are spaced apart in pattern space.
7. A method according to claim 5 or claim 6 wherein one information area from each set is selected to form the information sequence.
8. A method according to any foregoing claim wherein position identifying pattern applied to one of the information areas has a further function associated with it.
9. A method according to claim 8 wherein the pattern applied to said one of the information areas is also applied to the product in two positions such that in one position it is associated with said further function and in another position it represents one of the units of information.
10. A system for producing a product having a position identifying pattern thereon, the system comprising: a memory having recorded therein a plurality of information areas from a pattern space, each of said information areas having a unit of information associated with it; pattern applying means arranged to apply pattern from one of the information areas to each of a plurality of information carrying areas on the product to define an information sequence on the product made up of a sequence of said units.
11. A system according to claim 10 wherein the pattern applying means is arranged to select the information carrying areas according to the method of claim 2 or claim 3.
12. A system according to claim 10 or claim 11 wherein the information areas are defined, and the pattern applying means is arranged to apply the pattern, according to any of claims 4 to 9.
13. A method of reading an information sequence on a product comprising: identifying a plurality of pattern areas over which a reading device is passed; identifying a unit of information associated with each of the pattern areas; and combining the units of information to form the information sequence.
14. A method according to claim 13 wherein the position of the reading device within the pattern area is monitored so that movement of the reading device between two identical pattern areas can be detected.
15. A method according to claim 13 wherein the relative positions in pattern space, of consecutive pattern areas over which the reading device is passed, is calculated and used to determine a relationship between consecutive information units in the sequence.
16. A method according to claim 15 wherein a distance, in pattern space, between said consecutive areas is calculated and used to determine a relationship between consecutive information units in the sequence.
17. A method according to claim 16 wherein a component in a predetermined direction of the distance is calculated and used to determine a relationship between consecutive information units in the sequence.
18. A reading system for reading an information sequence embedded in a position identifying pattern on a product, the system comprising sensing means arranged to form an image of an area of the product, and processing means arranged to: process images from the sensing means so as to identify, from the position identifying pattern, a series of positions on the product over which the sensing means is passed; identify a sequence of areas in pattern space associated with the series of positions; and determine an information sequence from the sequence of areas.
19. A system according to claim 18 wherein the processing means is arranged to carry out the method of any of claims 14 to 17.
20. A product having a plurality of information carrying areas thereon each having applied to it an area of a position identifying pattern from a respective area of pattern space, and each pattern area representing a unit of information such that the pattern areas define a sequence of units of information forming an information sequence.
21. A product according to claim 20 formed according to the method of any of claims 2 to 9.
22. A data carrier carrying data arranged to control a product marking system to carry out the method of any of claims 1 to 9.
23. A data carrier carrying data arranged to control a product marking system to operate as a system of any of claims 10 to 12.
24. A data carrier carrying data arranged to cause a reading system to operate according to the method of any of claims 13 to 17.
25. A data carrier carrying data arranged to cause a reading system to operate as a system according to claim 18 or claim 19.
26. A method of embedding data within an image including a position identifying pattern, the method comprising: defining a plurality of information areas within a pattern space; associating a unit of information with each of the information areas; defining a plurality of information carrying areas in the image; and inserting pattern from one of the information areas to each of the information carrying areas to define an information sequence made up of a sequence of said units.
27. A system for generating an image having a position identifying pattern thereon, the system comprising: a memory having recorded therein a plurality of information areas from a pattern space, each of said information areas having a unit of information associated with it; pattern allocation means arranged to allocate pattern from one of the information areas to each of a plurality of information carrying areas in the image to define an information sequence in the image made up of a sequence of said units.
PCT/EP2004/051934 2003-09-10 2004-08-27 Embedding data in position identification pattern WO2005024714A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0321165.3 2003-09-10
GB0321165A GB0321165D0 (en) 2003-09-10 2003-09-10 Embedding data in position identification pattern

Publications (1)

Publication Number Publication Date
WO2005024714A1 true WO2005024714A1 (en) 2005-03-17

Family

ID=29226810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/051934 WO2005024714A1 (en) 2003-09-10 2004-08-27 Embedding data in position identification pattern

Country Status (2)

Country Link
GB (1) GB0321165D0 (en)
WO (1) WO2005024714A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2425698A (en) * 2005-04-25 2006-11-01 Hewlett Packard Development Co Position encoding patterns, and systems and method using the same
US8328088B2 (en) 1999-05-25 2012-12-11 Silverbrook Research Pty Ltd System for providing information via context searching of printed substrate
US8511565B2 (en) 2006-10-17 2013-08-20 Silverbrook Research Pty Ltd Method of providing information via context searching of a printed graphic image

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001071653A1 (en) * 2000-03-21 2001-09-27 Anoto Ab Method and system for storing a coding pattern
WO2001071476A1 (en) * 2000-03-21 2001-09-27 Anoto Ab Device and method for communication
WO2003003288A1 (en) * 2001-06-28 2003-01-09 Anoto Ab Hand held drawing device capable of composing and transmitting electronic messages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001071653A1 (en) * 2000-03-21 2001-09-27 Anoto Ab Method and system for storing a coding pattern
WO2001071476A1 (en) * 2000-03-21 2001-09-27 Anoto Ab Device and method for communication
WO2003003288A1 (en) * 2001-06-28 2003-01-09 Anoto Ab Hand held drawing device capable of composing and transmitting electronic messages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8328088B2 (en) 1999-05-25 2012-12-11 Silverbrook Research Pty Ltd System for providing information via context searching of printed substrate
GB2425698A (en) * 2005-04-25 2006-11-01 Hewlett Packard Development Co Position encoding patterns, and systems and method using the same
US8511565B2 (en) 2006-10-17 2013-08-20 Silverbrook Research Pty Ltd Method of providing information via context searching of a printed graphic image

Also Published As

Publication number Publication date
GB0321165D0 (en) 2003-10-08

Similar Documents

Publication Publication Date Title
EP1532577B1 (en) Position-coding pattern
EP2056233B1 (en) Information management system
US6962450B2 (en) Methods and apparatus for generating images
US8074891B2 (en) Coding and decoding methods and apparatuses
US20020033820A1 (en) Information-related devices and methods
US20020021284A1 (en) System and method for determining positional information
US7542607B2 (en) Digital pen and paper
EP1016953A2 (en) Multi-level selection methods and apparatus using context identification
US7600693B2 (en) Information code including redundant information providing copy protection
US20090128520A1 (en) Use of physical media having the same position-identifying pattern in digital documentation production
AU2569301A (en) General information management system
WO2001075773A1 (en) Information-related devices and methods
CN103098075A (en) Dot code pattern for absolute position and other information using an optical pen, process of printing the dot code, process of reading the dot code
US20070273918A1 (en) Printing Digital Documents
WO2006135329A1 (en) On demand generation of position-coded bases
WO2005024714A1 (en) Embedding data in position identification pattern
US7559484B2 (en) Products with data encoding pattern
US8100338B2 (en) Data encoding pattern
WO2005122062A1 (en) Capturing data and establishing data capture areas
WO2005076194A2 (en) Products with position identification pattern
GB2413423A (en) Document processing device
WO2005024618A1 (en) Generation and processing of position identification pattern
WO2005024701A2 (en) Creation of documents with position identification pattern
WO2005024619A2 (en) Products with position identification pattern
GB2428502A (en) Data encoding pattern

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase