This is a continuation-in-part of U.S. patent application Ser. No. 09/812,906, which was filed on Mar.23, 2001, claiming priority benefits based on Swedish Patent Application No. 0001236-9, filed Apr. 5, 2000, and U.S. Provisional Application 60/208167, filed May 31, 2000, the technical disclosures of both of which are hereby incorporated herein by reference.
The invention relates generally to information processing and, more specifically, relates to data entry using optical sensor technology.
Forms and the like are used to a considerable extent in today's society. The aim of such forms is to ensure that a user fills in the correct information and that this is carried out in a structured way. Therefore, forms usually consist of a sheet of paper containing printed form layouts with instructions concerning what information is to be filled in and where.
With modern computer technology, it is possible to record automatically the information that is entered on a form. One way of doing this is with a flat-bed scanner connected to a computer system. This creates an information file in a graphical format (e.g., tiff format). Such simple recording makes it possible to create a copy of the form at a later stage. The copy can then be printed and interpreted manually.
It is also possible to process the created file by OCR technology that can recognize text both in the layout of the form and in the fields which have been filled in by a user. But doing so may require comprehensive and complicated image analysis software. Determining the identity and orientation of the form and identifying and deciphering the entries on the form may also be difficult.
Currently, if an individual does not have access to advanced flat-bed scanners and associated software that may be required for the subsequent image analysis of a scanned form, automatic form recordation may be difficult.
Generally described, the invention includes a form. The form may have a surface. The surface may have a position-coding pattern optically detectable by a pen device. It may also have a form layout indicating at least one position-coded entry field for receipt of information. The surface may also have a bar code optically detectable by the pen device and being indicative of at least one of the form layout and a unique identity of the form.
The invention may also include a method for generating a form. The printer may print, on a surface having a position-coding pattern detectable by an optical detector, a form layout indicating at least one position-coded entry field for receipt of information. Moreover, the printer may print on the surface a bar code indicative of the form layout. A computer program directing the printer to generate the form in this manner may be written in a computer-readable medium.
The invention may also include another method for generating a form. The printer may print on a surface a position-coding pattern detectable by an optical detector, and a form layout indicating at least one entry field for receipt of information. Moreover, the printer may print on the surface a bar code indicative of each individual printing of a form layout.
A computer program may process the form. To do so, it may receive from an optical position detector, position data corresponding to movement of a device containing the optical sensor over a surface having a position-coding pattern detectable by the optical position detector. It may also receive, from a bar code detector in the device, bar code data representing a bar code on the surface. The program may then determine from the bar code data a form layout printed on the surface and determine from the position data an information entry in an entry field defined by the form layout. Alternatively, the program may determine from the position data a form layout printed on the surface and determine from the bar code data an instance identifier which is indicative of an individual identity of the surface.
A pen device may be configured to capture images of a surface using an optical detector in the pen device. The pen device may also be configured to selectively activate a position detection process or a bar code detection process to operate on at least a subset of the images, the position detection process resulting in position data and the bar code detection process resulting in bar code data. The pen device with such combined bar code and position detection capability may be generally applicable to support registration of a product with is labeled with a bar code and to link the bar code, and thereby the product or information related thereto, to information entered on a position-coded form.
The foregoing summarizes only a few aspects of the invention and is not intended to be reflective of the full scope of the invention as claimed. Additional features and advantages of the invention are set forth in the following description, apparent from the description, or may be learned by practicing the invention. Moreover, both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
Generally, the invention includes a form having a form layout with at least one entry field. It may be printed on a base in the form of a sheet (or any other surface). The surface of the base may have a position-coding pattern. The entry field can be completed using a user unit that has an optical sensor to detect positions on the sheet utilizing the position-coding pattern. The optical sensor can thereby enable digital recording of the information entered in the entry field. The surface may also have an identity pattern that can identify the form layout after detection by the sensor.
Thus, the user unit may be operated to record not only position data representative of its movement over the position-coding pattern on the form, but also data representative of the identity pattern on the form. This latter identity data can be used, in a computer system associated with the user unit, to link the recorded position data to a particular database form in the computer system. Specifically, the information entered in a particular entry field can be linked to, and stored in, a particular record in the database form. The structuring of the completed information may thus be carried out automatically.
The information which is stored in the information entry may comprise output data which is generated when the computer system applies a processing rule to the recorded position data. The processing rule may be specific to the particular entry field in which the position data was recorded. The format of the output data of the processing rule may be from the group comprising: Boolean variable, integer, real number, text string or a graphical format. These formats can then be processed in various general ways by the computer system.
The computer system may be contained in the user unit. This enables both mobile recording and interpretation of information which is entered on a form. Processed data can thereafter be forwarded to other systems. Alternatively, the computer system may be contained in an external apparatus that receives recorded data from the user unit, for example a server, a personal computer, PDA (Personal Digital Assistant), a mobile phone, etc.
The above recording of data entered on a form does not require-a flat-bed scanner equipped with advanced software for image analysis. The completion.:of the form and recording of the information entered may be carried out in a single stage. The form may not need to be sent away, but can, for example, be retained as a copy of what was entered on it. Mobile recording can be carried out in the field. The computer system may be configured to process the entered information in a simple and structured way, reducing the danger of errors.
The computer system 100 may include personal computer 103 to which is connected a display 104 and a keyboard 105. However, forms may be generated and processed by both larger and smaller computer systems than those shown in
The base 101 can be a sheet of paper, but other materials such as a plastic, laminate, or other paper stock such as cardboard may provide a suitable surface on which to create a form. In such a form, the base 101 is provided with a position-coding pattern 107 (shown enlarged). The printer 106 may create the position-coding pattern 107, or the base 101 may be manufactured with the position-coding pattern.
The position-coding pattern 107 may be arranged so that if a part of the pattern of a certain minimum size is recorded optically, then this part of the pattern's position in the pattern and hence on the base can be determined unambiguously. The position-coding pattern can be of any one of various known configurations. For example, position-coding patterns are known from the Applicant's patent publications U.S. Pat. No. 6,570,104, U.S. Pat. No. 6,663,008, U.S. Pat. No. 6,667,695, U.S. Pat. No. 6,674,427, and WO 01/16691, the technical disclosures of which are hereby incorporated by reference.
In the position-coding patterns described in those applications, each position may be coded by a plurality of symbols and one symbol may be used to code a plurality of positions. The position-coding pattern 107 shown in
The position coding pattern may be of any other suitable design, for example as illustrated in
Other types of position-coding patterns are known, for example, from patent publications U.S. Pat. No. 6,330,976, U.S. 2004/0085287, and U.S. Pat. No. 5,852,434.
Returning now to
As indicated by the trace 109, the pen point 108 may deposit ink in the base 101. This writing ink is suitably of such a type that it is transparent to the optical sensor, to avoid the writing ink interfering with the detection of the pattern. Similarly, the form layout may be printed on the base in a printing ink which is invisible to the sensor, although this may not be necessary. On the other hand, the position-coding pattern is printed on the base in a printing ink which is visible to the sensor. In one embodiment, the optical sensor is designed to sense the position-coding pattern by detecting radiation in the infrared wavelength region. The identifying pattern may or may not, depending on implementation, be printed on the base in a printing ink which is visible to the sensor.
An exemplary embodiment of the user unit is further illustrated in
The power supply for the pen may be a battery 126, which alternatively can be replaced by or supplemented by mains power (not shown).
The electronics system may comprise a control device 128 which is connected to a memory block 130. The control device 128 may be responsible for the different functions in the user unit and may be implemented by a commercially available microprocessor such as a CPU (“Central Processing Unit”), by a DSP (“Digital Signal Processor”) or by some other programmable logical device, such as an FPGA (“Field Programmable Gate Array”) or alternatively an ASIC (“Application-Specific Integrated Circuit”), discrete analog and digital components, or some combination of the above. The memory block 130 may comprise different types of memory, such as a working memory (e.g. a RAM) and a program code and persistent storage memory (a non-volatile memory, e.g. flash memory). Associated user unit software may be stored in the memory block 130 for execution by the control device 128 in order to provide a control system for the operation of the user unit.
A contact sensor 132 may be operatively connected to the pen point to detect when the user unit is applied to (pen down) and/or lifted from (pen up) a base, and optionally to allow for determination of the application force. Based on the output of the contact sensor 132, the camera system 124 is controlled to capture images between a pen down and a pen up. The control unit processes the images to calculate positions encoded by the imaged parts of the position-coding pattern. Such processing can, e.g. be implemented according to Applicant's prior publications: U.S. 2003/0053699, U.S. 2003/0189664, U.S. 2003/0118233, U.S. 2002/0044138, U.S. Pat. No. 6,667,695, U.S. Pat. No. 6,732,927, U.S. 2003/0122855, U.S. 2003/0128194, and references therein. The resulting sequence of temporally coherent positions forms an electronic representation of a pen stroke.
The electronics system may further comprise a communications interface 134 for transmitting or exposing information recorded by the user unit to a nearby or remote apparatus, such as a personal computer, a cellular mobile telephone, PDA, network server etc, for further processing, storage, or transmission. The communications interface 134 may thus provide components for wired or wireless short-range communication (e.g. USB, RS232, radio transmission, infrared transmission, ultrasound transmission, inductive coupling, etc), and/or components for wired or wireless remote communication, typically via a computer, telephone or satellite communications network. The position information that is transmitted can be representative of the sequence of positions recorded by the user unit in the form of a set of pairs of coordinates, a polygon train, or in any other form. The position information may also be stored locally in the user unit and transmitted later, when a connection is established.
The pen may also include an MMI (Man Machine Interface) 136 which is selectively activated for user feedback. The MMI may include a display, an indicator lamp, a vibrator, a speaker, etc. Still further, the pen may include one or more buttons and/or a microphone 138 by means of which it can be activated and/or controlled.
The form 200 may enable collection of information. For example, the user may write text or a number in any of the entry fields 204-207. Information provided by a user may be text (e.g., a name or an address). It may also be a whole number, such as the age of a person in whole years, or a real number, such as a patient's body temperature in degrees Celsius to two decimal places. It can also be the reply to a multi-choice question. A form may enable the entry of other types of information, too.
The user may download the form layout from an Internet server. The form layout may also be stored in other computer systems, such as the user unit 102.
While an entry field 204-207 is completed by a user using a user unit 102, the user unit may record a sequence of positions corresponding to a digital record of the entered information. The recorded information can then be processed or stored locally in the user unit. Alternatively, it can be transmitted to another computer system for processing or storage. Such processing may require knowledge of the form layout.
The form 200 may also comprise an identifying pattern or identity pattern 208, which may be marked when the entry fields 204-207 of the form layout 203 are completed. The identity pattern may be marked, for example, by drawing a cross through a box defined by the pattern or circling a location defined by the pattern. The user may instead be invited to fill in a missing feature in a figure.
In
The identifying pattern 208 may also be utilized to determine the scale in which the form layout has been printed in relation to the position-coding pattern. The boxes 209-212 may be placed near the different corners of the sheet in order to facilitate this and provide higher resolution. The information can then be used to normalize the position information which arises, so that the correct position information is associated with the correct information entry.
As an alternative to this method of normalizing, a printer creating the form can be provided with a position-coding pattern reading device. This allows the printer to print the form layout at a known location relative to the position-coding pattern. Also, a printer could print the form and, during the printing process, sense the position coordinates defining the form layout and feed the position coordinates back to the computer system.
A method of generating a form may generally involve printing a form layout, comprising at least one entry field, on a surface; in connection with the printing, detecting the positions in a position-coding pattern on which the form layout is superimposed; and transferring data on the positional relationship between the form layout and the position-coding pattern to the computer system that will process form input.
The identifying pattern may be over-specified by providing more position information than what is required to identify a form layout unambiguously. This may enable recording of scale information.
A user who wants to generate a number of forms may acquire a pack of sheets which are already provided with a position-coding pattern and load a number of such sheets into his/her printer. All the sheets in such a pack can be identical, i.e. the position-coding pattern on all sheets may code the same set of positions. It is also possible for each sheet in a pack to be unique, so that the sets of positions coded by the position-coding pattern on the different sheets are mutually exclusive. The user can also in principle print the position-coding pattern himself using a printer having sufficiently high printing resolution.
The position-coding patterns described in Applicant's patent publications U.S. Pat. No. 6,570,104, U.S. Pat. No. 6,663,008, U.S. Pat. No. 6,667,695, U.S. Pat. No. 6,674,427, and WO 01/16691 are capable of defining a very large total area of positions (multiple A4-sized pages) with good resolution. The total area can be subdivided into mutually unique subareas suitable for use on form sheets. Each subarea is thus implemented on a tangible sheet as a corresponding subset of the overall position-coding pattern. The positions that are encoded on a pack of sheets that a user can acquire may be known to the system responsible for processing information entered on the form. When all the sheets in a pack are identical, the system knows where on a sheet a position in the position-coding pattern is located. If sheets are unique within the pack, the system also knows on which sheet a position in the position-coding pattern is located. This makes possible parallel recording of a plurality of forms.
Parallel recording can also be achieved for identical sheets; i.e. sheets that all encode the same set of positions, by also recording the identities of the user units so that the system can connect the information from different user units with different database forms. Alternatively, data from identical sheets can be differentiated if the user, in connection with filling-in the form, operates the user unit to mark a personal identifying pattern. The personal identifying pattern may be unique to the respective user, and may for example be implemented as a pattern encoding a dedicated set of positions, or a bar code encoding a dedicated identifier.
Parallel recording can also be achieved for identical sheets by each such sheet being provided with an identifying pattern which not only identifies the form layout but also the printed form. Thus each printed sample of the form (form instance) may be given a unique identifier with is provided on the form as an identifying pattern.
In the exemplary identifying pattern of
This principle may also be used in the embodiment of the identifying pattern 300 shown in
The skilled person will realize that the translation from absolute positions to line spacing and line width may need to take into account any misfit between the loss of position data and the actual edges of the bar code lines, e.g. caused by the fact each position-coding symbol or group symbols has a certain spatial extent and/or by the effects of error correction schemes embedded in the position-coding pattern.
In an alternative embodiment, the bar code is identified and decoded in the user unit based upon its physical features in the recorded images. The image(s) may be recorded by the camera system (124 in
In yet another embodiment, the identifying pattern comprises an identifier which is written, visibly to the user unit, in plain language on the form. Thus, the user unit may be brought to record images of this identifier and to operate optical character recognition (OCR) algorithms thereon, to derive the identifier. Such algorithms are well-known in the art. Instead of bringing the user unit to scan in the identifier, the form may prompt the user to write down, with the user unit, the identifier in one or more dedicated position-coded input fields, or to represent the identifier by marking, with the user unit, a combination of available position-coded selection fields. Each such selection field may represent a symbol, such as a character, a number, a color, etc.
A form in accordance with the present invention may be put to numerous uses, including market surveys, tests, medical records, and income-tax returns. This list is not intended to be exhaustive, and the invention is contemplated for use in connection with any form in which information is to be recorded and/or conveyed.
In
In a second entry field 402, the form layout consists of a scale 414 from 1 to 10 where a user may describe, for example, how satisfied he was with a particular product. The user has here put a line 415 slightly to the right of the center. When a rule 411 is applied to the position information which arose when the user marked the line 415, the output data 406 is a real number 6.5, which can be stored in a record of a database form.
In a third entry field 403, a user answers “yes” or “no” to a question. The form layout 416 consists of the words “yes” and “no” with associated boxes to be marked with crosses. The user has put a cross in the box signifying “no”. When a rule is applied to the position information which arose, the output data 407 may be a logical or Boolean zero.
In a fourth entry field 404, a user indicates how many items of a particular product he wants to order by marking a corresponding number of circles in box 417. The user has marked a cross in three circles. When a rule 412 is applied to the position information which arose, the output data 408 is the integer number 3.
The position-coding pattern may be arranged on the paper in advance, perhaps by an offset printer which may have a resolution above 1000 dpi. The form layout may then be printed on top of the position-coding pattern. Also, the printer may be provided with a position-coding pattern reader device in order to facilitate the printing of a form layout that is adapted to the position-coding pattern.
Alternatively, the position-coding pattern may be applied to the paper by a separate printer after printing the form layout, or with the same printer in a second run. It is also possible to use a copying machine for providing the paper with the form layout and/or the position-coding pattern.
To this end, the system of
The system also comprises a control module 720 which controls the generation of a form, based upon a form layout, and operates in relation to a first database 730. The control module 720 may be implemented by software executed on a computer. The system further comprises a user unit 740 which digitizes its handwriting motion on the form into sequence(s) of absolute positions, given by the position-coding pattern on the form. The user unit 740 is also capable of recording data indicative of the bar code 703 on the form. The system further comprises a forms data processor 750, which receives input data from the user unit 740, processes this input data to generate output data for storage in a second database 760. It should be realized that the first and second databases 730, 760 may be part of one and the same overall database. The input data may be in any format, e.g. raw images recorded by the optical sensor of the user unit, positions decoded by the control device of the user unit, the identifier encoded by the bar code, data derived by recognition processing of handwriting, wholly or partly based on knowledge of the form layout, etc. The forms data processor 750 may be implemented by software executed on a computer.
In a first variant, the bar code 703 represents an identifier of the form layout (“form identifier”). In this case, the control module 720 may allow a user, via a suitable graphical user interface (GUI), to select a form layout from the first database 730. The control module 720 may derive the form layout and its form identifier from the first database 730. The control module 720 may also be operated to connect to further databases to derive data unique to each printout or a set of printouts, e.g. a name and other particulars to be printed together with the form layout. Then, the control module 720 transfers printing instructions to the printer 710 for printing of the form layout, the bar code and any data unique to each printout. The control module 720 may also derive information on the positions encoded on the pre-encoded sheets 702 in the printer 710, either by prompting the user to input this information, or by receiving this information from a position sensor in the printer 710. This position information may then be stored in the first database 730 in association with the form layout/form identifier.
Upon receipt of input data from the user unit 740, the forms data processor 750 extracts the bar-coded form identifier, and derives, based upon the form identifier, a set of processing rules for the corresponding form layout. As discussed above, these processing rules may be dedicated to operate on data from certain entry fields on the form, the data being identified from the positions which are known to be encoded within the respective entry field. The forms data processor 750 may need to consult the first database 730 to derive data on the positions encoded on the form, and thus the positions within each entry field on the form. The forms data processor 750 also derives the handwriting data from the input data and operates the respective processing rules thereon. In an alternative, the forms data processor 750 derives the form layout from the first database 730 based upon the form identifier and then displays the handwriting data superimposed on the form layout, to enable manual interpretation by a user who then generates at least part of the output data. In either case, the resulting output data is stored in a corresponding database form in the second database 760. The database form may comprise records which correspond to the different entry fields in the form layout. If available, the forms data processor 750 may also derive the above-mentioned user unit identifier or the above-mentioned personal identifier as given by a personal identifying pattern recorded by the optical sensor in the user unit, for storage in association with the corresponding output data in the database form.
In a second variant, the bar code 703 represents an identifier of a specific form printout (“form instance identifier”). This form instance identifier may be indicative of both the form layout and of a particular form instance in the system. Again, the control module 720 may allow a user, via a suitable graphical user interface (GUI), to select and derive a form layout from the first database 730. The control module 720 then generates a unique form instance identifier for each printout to be made. This form instance identifier may include a first part which is indicative of the form layout and second part which is indicative of the printout. The control module 720 may also be operated to connect to further databases to derive data unique to each printout or a set of printouts, e.g. a name and other particulars to be printed together with the form layout and/or to be stored in association with the form instance identifier in the first database 730. Alternatively, a link to such other particulars may be stored in the database 730. Similar to the first variant, the control module 720 may also derive information on the positions encoded on the pre-encoded sheets 702 in the printer 710, and store this position information in the first database 730 in association with the form layout/form identifier or the form instance identifier. The printing of the form is executed as in the first variant.
Upon receipt of input data from the user unit 740, the forms data processor 750 extracts the bar-coded form instance identifier, and derives, based upon the form instance identifier, a set of processing rules for the corresponding form layout. As in the first variant, the forms data processor 750 may need to consult the first database 730 to derive data on the positions encoded on the form, and thus the positions within each entry field on the form. As in the first variant, the forms data processor 750 derives the handwriting data from the input data and operates the respective processing rules thereon to generate output data which is associated with the form instance identifier. For each form instance identifier, a new database form may be generated in the second database 760. If a database form already exists for a particular form instance identifier, the output data may be added to the existing database form. As in the first variant, the database form may comprise records which correspond to the different entry fields in the form layout. If available, the forms data processor may also derive the above-mentioned user unit identifier or the above-mentioned personal identifier as given by a personal identifying pattern recorded by the optical sensor in the user unit, for storage in association with the corresponding output data in the database form.
In the second variant, it should be noted that the form instance identifier need not be indicative of the form layout. Instead, the form layout may be given by the positions encoded on the printed form. Thus, the control module 720 may generate a unique form instance identifier for each printout to be made of a particular form layout, and initiate the printer to generate printouts with correspondingly unique bar codes. The same set of positions may be encoded on all instances of the form layout. The association between form layout/form identifier and encoded positions may be created and/or recorded by the control module 720 and stored in the first database 730. For example, the control module 720 may initiate the printer 710 to apply both position-coding pattern, form layout and bar codes to blank sheets, or to apply form layout and bar codes to pre-encoded sheets, or to apply bar codes to pre-encoded forms, i.e. sheets which are provided with both position-coding pattern and form layout. In either case, the control module 720 may also derive data unique to each printout or a set of printouts, e.g. a name and other particulars for printing and/or storage in association with the form instance identifier in the first database 730. Upon receipt of input data from the user unit 740, the forms data processor 750 may derive, based upon one or more positions included in the input data, a set of processing rules for the corresponding form layout. The forms data processor 750 may then operate the respective processing rules on the handwriting data to generate output data. The forms data processor 750 may also extract the bar-coded form instance identifier from the input data and store the output data in the second database 760 in association with the form instance identifier.
In should also be clear to the skilled person that the above first and second variants may be combined to provide a system that allows generation of certain forms with bar codes representing form identifiers, and other forms with bar codes representing form instance identifiers.
It should be noted that there are other potential uses for bar code reading capability in a user unit for reading off a position-coding pattern. Such a user unit may support registration of a product which is labelled with a bar code and a possibility to link the bar code, and thereby the product or information related thereto, to a position-coded form. There is an almost endless number of conceivable application examples, all capitalizing on the notorious availability of bar codes for identification of products, persons, tasks, instructions etc. In one such application example, the user unit is operated to fill in a form for stock-taking, in which the number of items in stock of specific products may be noted in dedicated position-coded fields, while the identity of the respective product is inputted by the user unit reading off a bar code from a separate bar code list or from an actual product in stock. In another implementation example, the user unit reads off a bar code that identifies a specific patient which is to be associated with position data recorded on a position-coded medical chart. In yet another application example, one of more bar codes are read off from a medical drug inventory catalogue to identify a particular drug to be associated with a position-coded prescription form.
In the following, an approach for identifying and decoding a bar code based upon its physical features in the recorded images will be described with reference to
There are several conceivable algorithms to be used in basic step 2. In one such algorithm, full resolution images, or at least image strips extending essentially along the bar code, are processed to locally detect edges in each image. These edges are then classified by their location in the image and by a probability value. The probability value may represent the image intensity at the edge. The edges may then be stitched together using error correction and dynamic programming, e.g. Viterbi algorithms, to get a complete sequence of edges representing the full bar code.
Likewise, there are several conceivable algorithms to be used in basic step 3. In one such algorithm, the white and black sections are separated based upon the sequence of edges given by step 2, whereupon a Fourier transform is operated thereon to determine the module size of the bar code. The module (also called “basic element”) denotes the smallest width of bars or spaces in a bar code. This approach to step 3 has proved to be essentially unaffected by any gain in the module size due to printing artifacts and sensor exposure effects. Then, the size of each of the bars is classified to a certain number of modules. After such module classification, decoding is straightforward, as readily understood by the skilled person.
Although being quite operable, these algorithms for basic steps 2 and 3 can be further improved with respect to stability and robustness, as will be described in the following. The algorithms for identifying and decoding of bar codes as described herein may be executed by the control device in the user unit. Alternatively, all or parts of these algorithms may be executed by a corresponding control device in an external apparatus which receives recorded data from the user unit.
In a subsequent step 802, 1 D image profiles are pair-wise correlated to detect the incremental displacement between two images. Before the actual correlation step, a number of sub-steps may be effected. A first sub-step may be to differentiate each original profile (10A in
In the actual correlation step, two consecutive differentiated, low-pass filtered profiles are correlated, as shown to the left in
Thus, the correlation step 802 results in a series of 1D image profiles and the relative displacements between them. In a subsequent step 803, the original (i.e. non-filtered) 1D image profiles are merged to form a single bar code profile. First, the length of the final resultant profile may be calculated by identifying the longest coherent sequence of displacements that results from the correlation process, and cumulatively summing up these displacements. Then, two buffers are allocated, as illustrated in
In an ensuing step 804, the bar code profile resulting from step 803 is differentiated and the result is processed to yield an edge position-weight representation. The following sub-steps may be used: (sub-step 804A) calculate a differentiated bar code profile, dn=pn+1−pn; and (sub-step 804B) for each continuous sequence m of differentiated values dn with the same sign, calculate the weight wm and center of gravity cgm as:
respectively.
The resulting edge list (wm,cgm) will have alternating signs on wm, and is sorted so that cgm is strictly increasing.
Each consecutive pair of edges in the edge list will correspond to a band or bar in the bar code, wherein a positive wm followed by a negative wm+1 represents a band brighter than the surroundings, and a negative wm followed by a positive wm+1 represents a dark bar.
Using the original (non-filtered) 1D image profiles (instead of the low-pass filtered differentiated profiles used in the correlation process) for composing the complete bar code profile ensures that all data available is used, which may be important for proper detection of all edges. However, the complete bar code profile may then also contain components of noise. High-frequency noise may generate “false” bars and bands in the edge list representation of the bar code. Low-frequency noise, which may appear in the images due to non-uniformities in the illumination of the bar code, perspective distortion in the images or non-uniformities in the printing of the bar code, will modulate the overall brightness. A step 805 may be designed to reduce any artifacts resulting from such noise. The step 805 may include eliminating from the edge list all weights wm that are less than a predetermined overall threshold value. Such an overall threshold value may be difficult to determine, since it will depend on the quality of the bar code print, the illumination, the sheet material, etc. Instead, the weights in the edge list may be examined based upon a set of rules for their mutual relations. One exemplary embodiment is based upon the following sequence of sub-steps: (sub-step 805A) find adjacent pairs of edges (i.e. bars or bands) that fulfill the relationship |wi|+|wi+1|<csmallpair(csmallpair is a constant which may be determined experimentally) and delete them from the edge list, to thereby eliminate small high-frequency noise bands; (sub-step 805B) find and delete individual edges where |wi|<ccutoff(ccutoff is a constant which may be determined experimentally, ccutoff<csmallpair/2), to thereby remove small edges resulting, i.a., from non-uniform illumination and noise; the first and last edges require special treatment (sub-step 805C), so they are checked against cborder
When a correct bar code edge list has been established, the resulting bar code can be decoded using standard reference algorithms (step 806), for example as published by EAN International, Uniform Code Council Inc (UCC) and AIM Inc. The above-described algorithm has been successfully tested for identifying and decoding of bar codes belonging to the following symbologies: EAN 8, EAN 13, Code 2/5 Interleaved, Codabar, and Code 39, but the above-described algorithms are not limited to these symbologies.
Following step 806, it may be desirable for the control device to issue a confirmation signal to the user to indicate whether the bar code has been properly decoded or not. Such a confirmation signal may be issued by activation of the user unit's MMI (136 in
An alternative technique for identifying and decoding a bar code is disclosed in international patent publication WO 01/93183, the technical disclosure of which is hereby incorporated herein by reference. It is conceivable to supplement or replace one or more of the steps of the method described above with respect to
Irrespective of the technique used to read off the bar code, it may be desirable to indicate to the user unit's control device that a bar code is to be recorded. Such an indication may set the user unit in a bar code reading mode, in which the control device executes dedicated algorithms for detection and, optionally, decoding of bar codes based upon recorded images. The indication may result from a button on the user unit being pushed, or a voice command being recorded by a microphone on the user unit.
In another embodiment, the indication results from the control device detecting a dedicated pattern in an image recorded by the camera system. For example, such a dedicated pattern may be a subset of the position-coding pattern that represents one or more dedicated positions. Since the user unit normally is operated to convert recorded images into positions, it will be capable of recording, during normal operation, a position which causes its control device to switch to the bar code reading mode. In one implementation, the user unit may be configured to enter and stay in the bar code reading mode until the end of the current pen stroke, i.e. until the user unit is lifted (pen up). The bar code scan begins by the user unit being put down on the dedicated pattern and then being drawn across the bar code in contact with the supporting base, from left to right or right to left. In another implementation, the user unit may be configured to enter and stay in the bar code reading mode until the end of the next pen stroke. This implementation allows the dedicated pattern to be separate from the bar code. In yet another implementation, the user unit may be configured to enter and stay on the bar code reading mode for a predetermined period of time.
The maximum swipe speed of the user unit when reading a bar code is directly proportional to the frame rate of the camera system. In the above method, consecutive images should preferably overlap by at least ¼, and most preferably by at least ½, in order for the correlation and merging steps (cf. steps 802-803 in
In a further embodiment, the control device of the user unit is configured to indicate to the user, by activating the user unit's MMI, whenever the swipe speed is unsuitably high. Thereby, the user can be controlled not to use excessive swipe speeds. The swipe speed could, for example, be represented to the control device by the relative displacement resulting from the correlation step (cf. step 802 in
While recording of a form created in accordance with the foregoing methods does not necessarily require a flat-bed scanner equipped with advanced software for image analysis, the invention in its broadest sense may be used in conjunction with many types of technology without departing from the scope or spirit of the invention.
The scope of protection applied for is not restricted to the embodiments described above. The invention can be varied within the scope of the appended claims.
The following U.S. patent applications were filed concurrently with the patent application on which this continuation-in part is based: Ser. Nos. 09/812,885; 09/813,115; 09/812,905; 09/812,901; 09/812,902; 09/812,900, issued as U.S. Pat. No. 6,689,966; Ser. Nos. 09/812,892; 09/813,117; 09/812,882; 09/813,116; 09/812,898; 09/813,114; 09/813,113, issued as U.S. Pat. No. 6,586,688; Ser. Nos. 09/813,112; 09/812,899; 09/812,907; and U.S. Provisional Application No. 60/277,285 entitled “Communications Services Methods and Systems”.
The technical disclosures of each of the above-listed U.S. applications are hereby incorporated herein by reference. As used herein, the incorporation of a “technical disclosure” excludes incorporation of information characterizing the related art, or characterizing advantages or objects of this invention over the related art.
In the foregoing Description of Embodiments, various features of the invention are grouped together in a single embodiment for purposes of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the following claims are hereby incorporated into this Description of the Embodiments, with each claim standing on its own as a separate embodiment of the invention.
Number | Date | Country | Kind |
---|---|---|---|
0001236-9 | Apr 2000 | SE | national |
Number | Date | Country | |
---|---|---|---|
60208167 | May 2000 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09812906 | Mar 2001 | US |
Child | 11084090 | Mar 2005 | US |