Form identification and processing system

Abstract: A method and an apparatus for identifying completed forms includes scanning a plurality of different blank forms, and creating hierarchical profiles of each scanned blank form. Each hierarchical form profile is stored in a dictionary. Once the form dictionary is created, a completed form is scanned. A hierarchical profile of the completed form is created, and the hierarchical profile of the completed form is compared with stored hierarchical form profiles. In accordance with the result of comparison, one of the stored hierarchical form profiles is identified as corresponding to the completed form hierarchical profile. Based on the identity of the corresponding hierarchical form profile, the completed form can be routed for further processing. A further aspect of the invention makes it possible to extract data from predesignated fields which may be unique to that particular form within a completed form based on the form's identity. Furthermore, by using the form dictionary, it is possible to identify a completed form, extract data from the completed form, store the data with the form's identity, and display the completed form by drawing the identified form using the vectorized data from the form dictionary and superimposing the extracted data from the completed form into respective data fields.

Description: The present invention relates to retrieval and to processing of data from completed printed forms. In particular, the present invention relates to a method and apparatus which uses feature extraction techniques to identify features in the completed forms and which, based on the features identified in the form, locates desired data, extracts the desired data, stores the desired data in memory and, if necessary, displays the extracted data to an operator for post-processing. Data entry and retrieval systems, such as a Document Image Management System, are widely used to enter data from completed printed document forms. Generally, such systems are designed to process data from various types of completed forms, such as credit forms, insurance forms, survey forms, hospital forms, etc. In order to process many different types of forms, system operators manually sort through the forms and separate the forms into batches of similar forms. Once the various types of forms have been sorted and separated into similar batches, a batch of the same type of completed form is distributed to a data entry operator for manual input of data from the completed form into a central processing system. During the data entry process, the operator reviews a completed form, determines the data which is to be manually keyed-in, and manually keys-in data from each completed form into the central processing system. In order to save time, a more sophisticated manner of paperless sorting has sometimes been adopted. Using paperless sorting, a completed form is digitally scanned and a digital image of the form is stored. Once the digital image of the completed form is stored in memory, it can be identified by either data entry operators or by an automatic sorting process which first locates a coded "indicia field" such as a bar code field on the printed form and subjects the indicia field to suitable processing. Once the completed form is recognized, the form is automatically sorted and routed to the appropriate data entry operator workstation for further processing as described above. Despite the advantages of paperless sorting, both the manual system and the paperless sorting system suffer from disadvantages in that both systems consume a great amount of time to sort and to manually enter data from the completed form. In addition, companies which utilize automatic sorting practices by scanning all completed forms utilize large amounts of mass storage. These companies are therefore limited by the amount of mass storage available for storing images of completed forms. Even though storing an entire image of a completed form cuts down on the number of man-hours used to manually sort through completed forms, the amount of mass storage increases exponentially. In this regard, since only a small portion of a completed form contains desired data, a large portion of memory is wasted by storing redundant elements in each completed form, such as the blank printed form itself, and captions like name, date, address, etc. Image data which includes unused portions, or "null fields", and "white space" waste additional mass storage as well. Thus, a large portion of mass storage is utilized for useless data and/or non-data storage. Heretofore, it has not been possible to automatically input various types of completed printed forms, extract the desired data from the completed forms and, if desired, display only the completed data to an operator. That is, conventionally, once a completed document has been sorted and stored, an entire document must be displayed to an operator so that the operator can enter the desired data from the completed form. Consequently, data entry and retrieval are both time-consuming and costly. US-A-5159667 and US-A-5054096 are examples of documents disclosing the art described hereinabove. In an anonymous article in the IBM Technical Disclosures Bulletin, Vol. 34, No. 10b, March 1992, New York, US, pages 435 to 439, there is disclosed a document recognition and retrieval system in which documents are scanned and templates are formed for blank documents. US-A-5293429 discloses a system for recognising business forms in which a scanned image of the form is processed to identify patterns of horizontal and vertical lines so as to identify the type of form. It is an object of the present invention to address one or more of the foregoing difficulties. In one aspect of the present invention, there is provided a method of using a form dictionary of hierarchical profiles of blank forms, each of said hierarchical form profiles define features of a corresponding blank form, the method comprising the step of: creating a hierarchical profile corresponding to a scanned completed form; the method being characterized by the steps of: comparing the hierarchical profiles of different blank forms to each other to determine invariant elements therebetween; discarding the invariant elements; storing remaining elements of each hierarchical profiles in the form dictionary; comparing the hierarchical profile corresponding to the completed form with the hierarchical form profiles in the form dictionary; and identifying, in accordance with the comparing step, one of the hierarchical form profiles in the form dictionary as corresponding to the hierarchical profile of the completed form. In a second aspect of the present invention, there is provided an apparatus for using a form dictionary of hierarchical profiles of blank forms, each of said hierarchical form profiles define features of a corresponding blank form, the apparatus comprising: means for creating a hierarchical profile corresponding to a scanned completed form; the apparatus being characterized by: means for comparing the hierarchical profiles of different blank forms to each other to determine invariant elements therebetween; means for discarding the invariant elements; means for storing remaining elements of each hierarchical profiles in the form dictionary; means for comparing the hierarchical profile corresponding to the completed form with the hierarchical form profiles in the form dictionary; and means for identifying, in accordance with the result produced by the means for comparing one of the hierarchical form profiles in the form dictionary as corresponding to the hierarchical profile of the completed form. blank form profile by eliminating similarities between each blank form profile, and storing the enhanced blank form profiles in a form dictionary. In the method for recognizing completed forms, a completed form is scanned and a hierarchical profile for the completed form is created using the same feature extraction techniques such as those used to create the forms dictionary. The completed form profile is compared to each of the blank form profiles in the form dictionary until such time that the hierarchical profile of the completed form is identified as one of the blank forms from the blank form dictionary. In a related aspect of the invention, there is a method for displaying data from a completed form using the same feature extraction techniques to the form dictionary. A completed printed form is scanned and a hierarchical profile for the completed form is created. The completed form profile is compared with each of plural blank form profiles in a form dictionary until the completed form is identified as one of the blank forms in the dictionary. Upon identifying the completed form, the completed form profile and the blank form profile are compared and, based on the comparison, dissimilar image data from the completed form profile is extracted and stored for display to an operator. Because only dissimilar data is displayed to an operator, the operator can more easily recognize what data is to be keyed-in. If desired, field identifiers may also be displayed. In yet another aspect of the invention, a method for storing completed portions of a form includes the steps scanning a completed printed form, creating a hierarchical profile of the completed form using the same feature extraction techniques as those used to create the form dictionary, comparing the completed form profile with stored blank form profiles, identifying a stored blank form profile as that of the completed form profile based on the results of comparison, comparing the blank form profile with the completed form profile and extracting dissimilar data from the completed form profile, storing the extracted dissimilar data, and reassembling the completed form by displaying the identified blank form and overlaying the dissimilar data at the appropriate locations within the form. Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: Figure 1 is a representational view of a network system for capturing images from completed forms; Figure 2 is a block diagram of the data entry and retrieval system of an embodiment of the present invention; Figure 3 is a functional block diagram of a method for producing a blank form dictionary in an embodiment of the present invention; Figure 4a is an example of a blank form used with Figure 4b is a topographical view of a blank form template used in feature extraction; Figure 4c is an illustration of a hierarchical form profile of vectorized data; Figure 5 is a flow chart describing the method for creating a blank form dictionary; Figure 6 is an example of a completed form used with an embodiment of the present invention; Figure 7 is a general block diagram of the process for identifying and for routing completed forms; Figure 8a is a topographical view of a completed form template of the completed form shown in Figure 6; Figure 8b, comprising 8b-1 and 8b-2, is an illustration of a computer-usable format of a vectorized version of the completed form shown in Figure 6; Figure 9 is a flow chart describing the method for retrieving desired data from the completed form shown in Figure 6; Figure 10a is a functional block diagram of a method for extracting desired data and field header information from completed forms; Figure 10b illustrates an example of extracting and displaying desired data from a completed form; Figure 11 is a general block diagram of the process for extracting and for displaying desired data from a completed form; Figure 12 illustrates a flow chart describing the method for extracting data from completed forms and displaying the extracted data with field header information to an operator in a second embodiment of the present invention; Figure 13 illustrates an example of recreating a completed form from extracted data and a stored corresponding blank form; Figure 14 is a general block diagram of the process for extracting data from a completed form, storing an indicia of a corresponding blank form, and recreating the completed form; and Figure 15 illustrates a flow chart describing the operation for extracting data from a completed form, storing the extracted data and the identity of a blank form from the form dictionary, and recreating the completed document by displaying the identified blank form superimposed with the extracted data in appropriate field locations of the form in a third embodiment of the present invention. Figure 1 illustrates a network system for extracting and for storing desired data from completed forms. As shown in Figure 1, reference numeral 1 designates a document image management system. Document image management system 1 includes document scanner 2 for scanning printed forms, including blank printed forms and completed printed forms. Document scanner 2 creates digital image data from scanned forms and outputs the image data to workstation 3. Workstation 3 includes computing equipment such as an IBM PC or PC-compatible computer 4. Workstation 3 further includes a local area network interface 6 which provides interface to the local area network, whereby workstation 3 can access image data files stored thereon. Workstation 3 can either store input image data created by document scanner 2 or downput the image data to a file server (not shown) located on the local area network. Workstation 3 also includes keyboard 8 and mouse 9 for allowing user designation of areas on display screen 5. As shown in Figure 2, PC 4 includes CPU 10 such as an 80386 processor which executes stored program instructions such as operator selected application programs that are stored on hard drive 10a. The document image data created by document scanner 2 is received by PC 4 and, prior to processing, PC 4 temporarily stores the image data in a temporary storage area, such as random access memory 10b (RAM). Upon storing the image data in RAM 10b, CPU 10 executes a feature extraction program stored in hard drive 10a. CPU 10 processes the image data in accordance with the feature extraction program. The processed data is compared with forms stored in form dictionary 20 (to be discussed below). Thereafter, the result of comparison is displayed on display screen 5. Prior to utilizing the data retrieving process from workstation 3, workstation 3 must be initially equipped with a form dictionary. That is, workstation 3 must create a form dictionary of all forms used with the system. This process of creating a form dictionary includes scanning each type of blank form used in the data retrieving system and storing a hierarchical form profile of vectorized data in the form dictionary for each form. Figures 3-5 discuss in greater detail the manner by which form dictionary 20 is created. Figure 3 is a functional block diagram illustrating the method for producing form dictionary 20. As shown in Figure 3, a plurality of blank form types (A, B, C, and D) are scanned by scanner 2 in order to input image data for processing. Since the method of producing a form dictionary is the same for each blank form type, the following description of the method for constructing form dictionary 20 will be discussed only with respect to blank form 11 shown in Figure 4a for the purposes of brevity. In Figure 4a, blank form 11 is input by document scanner 2. Document scanner 2 produces image data which is output to workstation 3. Upon receiving the image data of blank form 11, the image data is either temporarily stored to a file server on the local area network or stored in RAM 10b of PC 4. Once the entire image data of blank form 11 is received, PC 4 processes the image data in accordance with a feature extraction program, such as the feature extraction technique disclosed in EP-A-0567344, or any other suitable type of feature extraction process which creates a hierarchical profile. The stored feature extraction program is retrieved from hard drive 10a and stored in RAM 10b. Once the program is stored, CPU 10 executes the process steps from RAM 10b for execution. Upon initiation of the program, the feature extraction program designates data blocks within form 11 in order to form a blank form template of blank form 11, as shown in Figure 4b. Each data block on the blank form template is designated by an index number, (x, y) coordinates, a length measurement and a width measurement of the block. For example, the heading "Canon Information Systems: INVOICE" in Figure 4a is designated in Figure 4b as block 1.1 for "Canon Information Systems" and as block 1.2 for "INVOICE". Once the template has been created, a computer-usable format is generated from the template by the feature extraction program to create a hierarchical form profile of vectorized data. As shown in Figure 4c, the computer-usable format 11a of blank form 11 is created by identifying the block location with (x, y) coordinates, a length measurement, a width measurement, and an attribute of the block. The attribute information relates to the type of information in the block, such as text, graphics, etc. In some instances, a block, such as block 1.11, which includes both routing information and identification information, is divided into sub-blocks. For example, as shown in Figure 4b, block 1.11 is divided into several sub-blocks, such as block 1.11.3.1 which designates a customer reference number. Block 1.11.3.1 is defined in Figure 4c as x = 45, y = 198, 1 = 13, w = 435, and att = 1. Reverting to Figure 4a, hierarchical form profile 11a has been created and stored as vectorized data, several exemplary completed forms of blank form 11 are scanned and input into the system. Each exemplary completed form 12, 13, and 14 is processed by the feature extraction program in order to create a completed form profile of vectorized data for each completed form. Upon creating completed form profiles 12a, 13a, and 14a, completed form profiles 12a, 13a, and 14a are compared and invariant elements are extracted. The invariant elements are summarized to create completed form profile 11b. Blank form profile 11a of blank form 11 and completed form profile 11b are correlated to produce a blank form profile 11c. Blank form profile 11c is stored as vectorized data in form dictionary 20. In the case that more than one blank form is used in the system, the above process is repeated for each type of blank form used in the system. In the case that the system utilizes plural blank forms, the resulting form profiles (corresponding to form profile 11c) are post-processed to eliminate any ambiguities between form profiles. Once the ambiguities are eliminated, each blank form profile is stored in form dictionary 20. Upon completing blank form dictionary 20, the data entry system is prepared to identify and to store data from completed forms. The flow chart in Figure 5 illustrates in greater detail the process of constructing form dictionary 20. In step S501, a blank form is scanned and image data is created and sent to workstation 3. The image data is processed by PC 4 using the feature extraction program stored on the hard drive 10a. The feature extraction program creates a template of blank form 11 from which computer-usable vectorized data for a blank form profile can be created. As previously discussed, with respect to Figure 4c, the hierarchical form profile includes vectorized data which defines the block by an index number, (x, y) coordinates, a length measurement, a width measurement, and attribute information which defines the type of block, i.e., text, table, graphics, etc. After creating the hierarchical form profile in step S502, a plurality of exemplary completed forms 12, 13, and 14 of blank form 11 are scanned by scanner 2 in step S504. In step S505, the feature extraction program operates to create hierarchical form profiles of vectorized data for each completed form. In step S506, each completed form profile is compared and invariant elements in each completed form profile are extracted. The extracted invariant elements are correlated to create an exemplary completed form profile 11b. Blank form profile 11a and exemplary completed form profile 11b are correlated to form blank form profile 11c in step S508. In the case that more than one blank form is used in a data system, flow proceeds to step S509 in which steps S501-S508 are repeated for each blank form used in the system. In step S510, each different form profile is post-processed by removing any ambiguities between all form profiles. The resulting disambiguated hierarchical form profile is stored in form dictionary 20 in step S511. Once form dictionary 20 is complete, form dictionary 20 contains all the information required to distinguish between forms. If two different forms have the same hierarchical structure, each form is subjected to OCR processing in order to identify a feature of the form which in most cases will be different from any other form, such as a form number located at the bottom of the form. This process is usually a post-processing step which is operator assisted in order to eliminate similar features in different forms. Upon completing the foregoing steps, form dictionary 20 is complete. Once form dictionary 20 has been created, completed forms can be identified and desired data extracted from completed forms. For example, Figure 6 illustrates an example of completed form 40. As shown, only a small portion of form 40 includes desired data. That is, it is desirable, and more efficient to extract only information regarding certain items, such as invoice number, dates, description of items, quantity, and prices. The remaining information on the form is deemed to be useless data and, therefore, it is not extracted. In order to obtain and to limit the amount of data extracted, completed form 40 is subjected to an identification process. In accordance with the identity of the completed document, a data extraction process extracts preselected data fields from the completed form. Figure 7 is a general block diagram illustrating the process for identifying, extracting and routing the identified form. As shown in Figure 7, image data of completed form 40 is processed to create a hierarchical profile of vectorized data by hierarchical profile creator 41 using the same feature extraction method for creating form dictionary 20. The created hierarchical profile is compared with hierarchical profiles of forms stored in form dictionary 20 by hierarchical profile comparator 42. Hierarchical profile comparator 42 identifies a corresponding form in form dictionary 20 and, in accordance with the identity of that form, image data of completed form 40 is routed to an appropriate processing station by form router 45. In more detail, to extract desired data, the feature extraction program forms a completed form template of completed form 40 as shown in Figure 8a. The template facilitates the process for creating the vectorized data which defines the completed form in Figures 8b-1 and 8b-2. Once the completed form is identified, PC 4 determines, in accordance with the identity of the completed form, where to route the completed form for further processing. The method for identifying a completed form and extracting desired data will be discussed in greater detail with respect to the flow chart illustrated in Figure 9. In step S901, completed form 40 is scanned and image data of completed form 40 is output to workstation 3 for processing. PC 4 in workstation 3 processes the image data of completed form 40 in accordance with a stored feature extraction technique. The feature extraction program operates to divide completed form 40 into blocks and creates a hierarchical form profile in step S902. The completed form profile includes vectorized data defining the block layout of completed form 40. The completed form profile shown in Figures 8b-1 and 8b-2 is compared with blank form profiles in form dictionary 20 in step S903. Invariant elements between the completed form profile and the form profiles in form dictionary 20 are compared in step S903. In step S904, CPU 10 determines whether a predetermined level of invariant elements has been identified between the completed form profile and at least one blank form profile in form dictionary 20. In the case that the number of invariant elements does not reach the predetermined level, in step S905 the data entry operator is alerted that the form has not been identified and the completed form is rejected for manual identification by the operator or the unidentified form can be subjected to OCR. In step S906, the form is identified by either the operator or by CPU 10. That is, CPU 10 selects the blank form profile having the greatest number of invariant elements in common with the completed form profile. This blank form profile is determined to be the corresponding form to the completed form. Upon identifying the form, the completed form is routed in accordance with its particular identity in step S907. For example, a completed form may be routed to the personnel department if the form is an employment application; to the claim department if the form is an insurance claim form, etc. On the other hand, the completed form may be routed for further processing, such as extracting particular data fields from certain portions of the form and subjecting those extracted fields to optical character recognition. In addition to routing particulars, completed documents may be submitted for further processing since some completed documents contain several types of data. For example, a completed document may be a hybrid document which contains image, text, graphs, etc., and, therefore, the text portion is subjected to a different recognition process than an image. That is, text is generally subjected to optical character recognition while the image is generally subjected to half-tone processing. A second embodiment of the present invention is to be described with reference to Figures 10a and 10b. The embodiment to be described hereinbelow utilizes form dictionary 20 which has been previously described above and, therefore, details for creating form dictionary 20 will be omitted for the purpose of brevity. Referring to Figure 10a, there is illustrated a functional block diagram of a method for extracting predesignated "data fields" and for displaying only those data fields to an operator. As shown in Figure 10a, a blank form is scanned and a hierarchical profile of the form is created by feature extraction. An operator, during a preproduction phase of creating a hierarchical profile of a blank form, can designate certain data fields to be extracted from among other data fields in a completed form. In the preproduction phase, data fields within a blank form are designated by an operator for extracting data therein. The designation of each data field is stored with the blank form profile in form dictionary 20. Once the preproduction of the hierarchical form profile has been completed, completed forms are processed. Upon scanning a completed form, a hierarchical profile of the completed form is created by feature extraction techniques. The completed profile is compared with all hierarchical form profiles in form dictionary 20. Assuming that the completed form is identified as one of the blank forms in the form dictionary, a blank form profile and the completed form profile are compared and dissimilar elements in the completed form profile are extracted. In accordance with predesignated information, the dissimilar elements and the predesignated fields are compared once again. The dissimilar elements falling within the preselected fields are stored and the remaining dissimilar elements are discarded. The data within the preselected fields are either subjected to further processing or displayed to the data entry operator for manual input. For example, in Figure 10b, there is illustrated a completed form which includes, among other items, invoice number, origin and destination information, quantity information, and description information. Because these data fields were predesignated during the preproduction definition stage, data within each field is extracted from the completed form. Accordingly, in order to remove all extraneous items from the form, the form is input into the data entry and retrieval system and only the desired information is displayed to the data entry operator for manual-key input. As a result, a data entry operator can reduce the amount of time in reviewing a completed form for useful data. Thus, as shown with respect to Figure 11, image data of completed form 40 is processed to create a hierarchical profile by hierarchical profile creator 50. The profile is compared and identified as a hierarctaical form profile in form dictionary 20 by hierarchical profile comparator 51. Hierarchical profile comparator 51 compares the identified form from dictionary 20 with the hierarchical profile of completed form 40. Dissimilar data with respective field header information is extracted from the completed form by dissimilar data and field header extractor 54. The extracted data either can be stored or can be displayed immediately to an operator. Figure 12 discusses in greater detail the process of extracting desired fields from completed forms. In step S1201, a completed document is scanned and the image data is subjected to feature extraction. In step S1202, the feature extraction program creates a hierarchical form profile for the completed form using the same feature extraction techniques used to create form dictionary 20. In step S1204, a completed form profile is compared with each of the blank form profiles in the form dictionary. In step S1205, CPU 10 determines whether there is a match between one of the blank form profiles and the completed form profile. In the case that a match has not been determined, in step S1206 the data entry operator is alerted that a completed form cannot be identified and the completed form is either manually identified by the data entry operator or the completed form is routed for further processing, such as optical character recognition. In step 1207, the completed form is either identified by the operator or by CPU 10. In step S1208, if the completed form profile is matched with a blank form profile in the form dictionary, the matched blank form profile is compared with the completed form profile. In step S1209, dissimilar elements from the completed form profile are extracted with respective field header information. The extracted information and field header information are stored in memory. As described above with respect to Figure 10a, during the preproduction definition of the blank form profile, it may be desirable to predesignate certain fields from which data can be extracted. In this case, the stored data and header information from the completed document profile are compared with the predesignated listing of data fields. Any data fields designated by the predesignated listing are displayed with respective field header information to an operator for manual input. Otherwise, if no predesignated listing exists, all extracted data with respective field header information is displayed to the data entry operator for manual input. A third embodiment of the present invention is described with reference to Figures 13-15. The embodiment to be described hereinbelow utilizes form dictionary 20 which has been described above. In the third embodiment of the present invention, it is possible to display an entire completed form without having to store all the image data from the scanned completed form. For example, as shown in Figures 13 and 14, completed form 40 is input into the data entry and retrieval system. Using the same feature extraction techniques used for creating form dictionary 20, image data of completed form 40 is processed into a hierarchical form profile consisting of vectorized data and attribute data by hierarchical profile creator 60. The hierarchical profile of completed form 40 is compared with hierarchical profiles of forms stored in form dictionary 20 by hierarchical form comparator 61. Hierarchical form comparator 61 identifies the completed form as one of the forms in form dictionary 20. The corresponding form and completed form are compared and dissimilar data with respective field header information are extracted from the completed form profile by extractor 62. The extracted dissimilar data with respective header information is stored in form memory. In addition to comparing and to identifying, hierarchical profile comparator 61 sends an indicia of the corresponding form from form dictionary 20 to blank form identifier 64. Blank form identifier 64 stores the form indicia with the extracted data in form memory. In the case that a data entry operator wishes to retrieve completed form 40 from memory, CPU 10 retrieves the corresponding form from form dictionary 20. CPU 10 draws the blank form in accordance with the stored vectorized data. Upon completing the drawn blank form, extracted data is superimposed into appropriate fields within the blank form. As shown at 130 in Figure 14, data superimposed into the blank form may be skewed left, right, up or down as a result of scanning, or magnification variations caused by copying of blank forms. To correct skewing, a skewing correction program can be applied to the data before displaying the completed form. Referring to Figure 15, there is illustrated a flow diagram describing a method for identifying a completed form, extracting data from the completed form, storing the extracted data from the completed form with an indicia of a corresponding blank form in the form dictionary, and reassembling the completed form by retrieving the corresponding blank form from memory and superimposing the extracted data from the completed form into the appropriate fields within the blank form. In more detail, in step S1501, a completed form is scanned and the image data is output to workstation 3 for processing. In step S1502, the feature extraction program in workstation 3 creates a hierarchical profile of the completed form. In step S1503, the completed form profile is compared with each blank form profile in the form dictionary. CPU 10 determines whether a match between the completed profile and a blank form profile in the form dictionary has been identified in step S1505. In the case that CPU 10 determines that the completed form does not match a blank form in form dictionary 20, then in step S1506 the data entry operator is alerted that no match has been identified for the completed form and the unidentified form is rejected for manual input. In step 1507, the completed form is either identified by the operator or by CPU 10. In step S1508, the completed form profile and the matched blank form profile are compared and dissimilar elements from the completed blank profile are extracted. The extracted data from the completed form profile is stored with the field header information from which the data was extracted in step S1509. In addition to storing the extracted data and respective field header information, an indicia of the corresponding blank form in the form dictionary is stored. In step S1510, the completed form is reassembled by retrieving from memory vectorized data of the corresponding blank form in accordance with the stored indicia. The blank form is drawn line by line in accordance with the vectorized information. After the blank form is completely drawn, extracted data is superimposed with respective field header information into appropriate locations in the blank form. In step S1511, the reassembled completed form is corrected for skew and the result is displayed to the operator.

Claims: A method of using a form dictionary of hierarchical profiles of blank forms, each of said hierarchical form profiles define features of a corresponding blank form, the method comprising the step of: creating a hierarchical profile corresponding to a scanned completed form (S902; S1202; S1502); the method being characterized by the steps of: comparing the hierarchical profiles of different blank forms to each other to determine invariant elements therebetween (S509); discarding the invariant elements; storing remaining elements of each hierarchical profiles in the form dictionary (S511); comparing the hierarchical profile corresponding to the completed form with the hierarchical form profiles in the form dictionary (S903; S1204; S1503); and identifying, in accordance with the comparing step, one of the hierarchical form profiles in the form dictionary as corresponding to the hierarchical profile of the completed form (S904, S906; S1205, S1207; S1508, S1507). A method according to claim 1, further comprising the step of extracting portions of the hierarchical profile corresponding to the completed form which differ from the identified hierarchical form profile in the form dictionary (S1209). A method according to claim 2, further comprising the step of routing the extracted portions for processing in accordance with the identity of the corresponding hierarchical form profile. A method according to claim 2, further comprising the step of storing predetermine data from the extracted portions in accordance with the identity of the corresponding hierarchical form profile (S1509). A method according to claim 2, further comprising the step of causing selected data from the extracted portions to be displayed in accordance with the identity of the identified hierarchical form profile. A method according to claim 2, further comprising the step of character recognizing selected data from the extracted portions in accordance with the identity of the corresponding hierarchical form profile. A method according to claim 2, further comprising the step of causing portions of the completed form which are dissimilar to corresponding portions of the identified hierarchical form profile to be displayed using the extracted portions of the hierarchical profile of the completed form. A method according to claim 2, wherein in said extracting step the portions and respective field header information are extracted for the portions, and further comprising the step of causing the extracted portions to be displayed with the respective field header information. A method according to claim 1, further comprising the step of routing the completed form for processing in accordance with the identity of the identified hierarchical form profile. A method according to claim 1, further comprising the steps of: extracting completed portions of the completed form and respective header information which differ from the blank form corresponding to the identified hierarchical form profile (S1208); and causing the extracted completed portions and respective header information to be displayed. A method according to claim 1, further comprising the step of: creating a hierarchical profile of a scanned first blank form; creating a hierarchical profile for each of a plurality of exemplary scanned completed forms of the first blank form (S505); comparing each completed form hierarchical profile with each other completed form hierarchical profile to determine invariant elements between each completed from hierarchical profile (S506); extracting the invariant element (S506); correlating the blank form hierarchical profile with the extracted invariant elements (S508); creating a first enhanced blank form hierarchical profile based on the correlating step; and storing the first enhanced blank form hierarchical profile in the form dictionary (S511). A method according to claim 11, further comprising the steps of: creating a hierarchical profile of a second scanned blank form (S509); creating a hierarchical profile for each of a plurality of scanned exemplary completed forms of the second blank form; comparing each completed form hierarchical profile with each other completed form hierarchical profile to determine invariant elements between each completed form hierarchical profile; extracting the invariant element between the hierarchical profiles of each exemplary completed form of the second blank form (S506); correlating the second blank form hierarchical profile with the extracted invariant elements between the hierarchical profiles of each exemplary completed form of the second blank form; creating a second enhanced blank form hierarchical profile based on the correlating step; and storing the second enhanced blank form hierarchical profile in the form dictionary (S511). A method according to claim 12, further comprising the step of disambiguating (S510), wherein the step of disambiguating comprises the steps of: comparing the first enhanced blank form hierarchical profile and the second enhanced blank form hierarchical profile to determine invariant elements between the first enhanced blank form hierarchical profile and the second enhanced blank form hierarchical profile; discarding the invariant elements from the first enhanced blank form hierarchical profile and the second blank form hierarchical profile to produce disambiguated hierarchical profiles of the first and second blank forms; and storing disambiguated hierarchical profiles of the first and second blank forms in the form dictionary (S511). A method according to claim 1, further comprising the step of extracting data from the completed form based on an identification result of the identifying step. A method according to claim 14, further comprising the step of causing the extracted data superimposed on the blank form corresponding to the identified hierarchical form profile to be displayed, wherein the corresponding blank form is drawn in accordance with the hierarchical form profile of the corresponding blank form, and wherein the extracted data is superimposed into appropriate locations of the corresponding blank form (S1510). A computer program product for a computer, comprising software code portions for performing the steps of any one of claims 1 to 15 when said product is run on the computer. A computer program product according to claim 16, wherein said computer program product comprises a computer-readable medium on which said software code portions are stored. A computer program product according to claim 16, wherein said computer program product is directly loadable into the internal memory of the computer. An apparatus for using a form dictionary of hierarchical profiles of blank forms, each of said hierarchical form profiles define features of a corresponding blank form, they apparatus comprising: means for creating a hierarchical profile (41; 50; 60) corresponding to a scanned completed form (40); the apparatus being characterized by : means for comparing (42; 51; 61) the hierarchical profiles of different blank forms to each other to determine invariant elements therebetween (S509); means for discarding the invariant elements; means for storing remaining elements of each hierarchical profiles in the form dictionary (20); means for comparing the hierarchical profile corresponding to the completed form with the hierarchical form profiles in the form dictionary; and means for identifying, in accordance with the result produced by the means for comparing one of the hierarchical form profiles in the form dictionary (20) as corresponding to the hierarchical profile of the completed form. An apparatus according to claim 19, further comprising means for extracting portions of the hierarchical profile corresponding to the completed form which differ from the identified hierarchical form profile in the form dictionary (20). An apparatus according to claim 20, further comprising means for routing (45) the extracted portions for processing in accordance with the identity of the corresponding hierarchical form profile. An apparatus according to claim 20, further comprising means for storing predetermine data from the extracted portions in accordance with the identity of the corresponding hierarchical form profile. An apparatus according to claim 20, further comprising means for causing selected data from the extracted portions to be displayed in accordance with the identity of the identified hierarchical form profile to be displayed. An apparatus according to claim 20, further comprising means for character recognizing selected data from the extracted portions in accordance with the identity of the corresponding hierarchical form profile. An apparatus according to claim 20, further comprising means for causing portions of the completed form which are dissimilar to corresponding portions of the identified hierarchical form profile to be displayed using the extracted portions of the hierarchical profile of the completed form. An apparatus according to claim 20, wherein said means for extracting is arranged to extract the portions and respective field header information are extracted for the portions, and further comprising means for causing the extracted portions with the respective field header information to be displayed. An apparatus according to claim 19, further comprising means for routing (45) the completed form for processing in accordance with the identity of the identified hierarchical form profile. An apparatus according to claim 19, further comprising: means for extracting (54; 62) completed portions of the completed form and respective header information which differ from the blank form corresponding to the identified hierarchical form profile; and means for causing the extracted completed portions and respective header information to be displayed. An apparatus according to claim 19, further comprising: means for creating a hierarchical profile of a first scanned blank form; means for creating a hierarchical profile for each of a plurality of scanned exemplary completed forms; means for comparing each completed form hierarchical profile with each other completed form hierarchical profile to determine invariant elements between each completed from hierarchical profile; means for extracting the invariant element; means for correlating the blank form hierarchical profile with the extracted invariant elements; means for creating a first enhanced blank form hierarchical profile based on the correlating step; and means for storing the first enhanced blank form hierarchical profile in the form dictionary (S511). An apparatus according to claim 29, further comprising: creating a hierarchical profile of a scanned second blank form; creating a hierarchical profile for each of a plurality of scanned exemplary completed forms of the second blank form; means for comparing each completed form hierarchical profile with each other completed form hierarchical profile to determine invariant elements between each completed form hierarchical profile; means for extracting the invariant element between the hierarchical profiles of each exemplary completed form of the second blank form; means for correlating the second blank form hierarchical profile with the extracted invariant elements between the hierarchical profiles of each exemplary completed form of the second blank form; means for creating a second enhanced blank form hierarchical profile based on the correlating step; and means for storing the second enhanced blank form hierarchical profile in the form dictionary. An apparatus according to claim 30, further comprising means for disambiguating, wherein the means for disambiguating comprises: means for comparing the first enhanced blank form hierarchical profile and the second enhanced blank form hierarchical profile to determine invariant elements between the first enhanced blank form hierarchical profile and the second enhanced blank form hierarchical profile; means for discarding the invariant elements from the first enhanced blank form hierarchical profile and the second blank form hierarchical profile to produce disambiguated hierarchical profiles of the first and second blank forms; and means for storing disambiguated hierarchical profiles of the first and second blank forms in the form dictionary. An apparatus according to claim 19, further comprising means for extracting data from the completed form based on an identification result of the identifying step. An apparatus according to claim 32, further comprising means for causing the extracted data superimposed on the blank form corresponding to the identified hierarchical form profile to be displayed, wherein the corresponding blank form is drawn in accordance with the hierarchical form profile of the corresponding blank form, and wherein the extracted data is superimposed into appropriate locations of the corresponding blank form.

Inventors: LUTHER WILLIS J, WANG SHIN-YWAN, LUTHER, WILLIS J., WANG, SHIN-YWAN
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1994
Main classification: G06F17
IPC codes: G06F17, G06F3, G06T7, G06K9