1. Field
Embodiments of the present invention involve implementations of methods and systems for creating a document structure description and capturing data from a document image.
2. Related Art
Typically, data from paper documents are captured into a computer database by a data capture system, which converts paper documents into electronic form (by scanning or photographing documents) and extracts data from document fields within the document.
Many documents, for example, phone bills, invoices, or registration forms are multi-page documents in that they have more than one page (an example of a multi-page document is shown in
Sometimes, multi-page paper documents are immediately converted into multi-page electronic documents (e.g. into PDF or TIFF files), in which case a data capture system has to know in advance the pages that comprise the multi-page document. In other cases, documents are scanned page by page and appear as a sequence of individual images in the document capture system (sometimes, separator pages are used in this case to separate one document from another). In still other cases, documents of different types may be scanned one immediately after another, without any special separators. Therefore, in the general case, to capture data from a multi-page document, it is required to identify the page images that belong to a document of a certain type and then detect and extract the relevant data from the data fields.
As described in U.S. application Ser. Nos. 12/364,266 and 11/461,449, specially prepared flexible structure descriptions are used to capture data from paper documents. A flexible structure description comprises elements and relationships between the elements. A data field may be a type of element that identifies an area on the image from which data are to be extracted and the type of data that this area may contain. The positions of the fields are detected based on reference elements or anchors. An anchor corresponds to one or more predefined image elements (e.g., separator line, unchangeable text, picture) relative to which the positions of other elements are specified.
A flexible structure description may comprise an algorithm for detecting fields on semi-structured documents. Flexible structure descriptions are typically created by human experts and are loaded into a data capture system to be automatically or programmatically matched against incoming documents. However, existing techniques are inadequate for quickly and adaptively creating flexible structure descriptions for multi-page documents.
In one embodiment, a method for enabling a data capture system to capture data from a document image corresponding to a document is provided. The method comprises defining a flexible structure description for the document, the flexible structure description comprising descriptions of structures in the document and detection information to facilitate detection of said structures in the document image, wherein the detection information specifies whether a structure is to be detected with reference to its placement within a page of the document, and/or with reference to its placement within the document as a whole; and provisioning a data capture system with the flexible structure description.
In another embodiment, a method for processing a batch of scanned images is provided. The method comprises processing the scanned images into documents; for documents comprising multiple pages, maintaining a page-based coordinate system to specify a location of structures within a page and joining the pages to form a multi-page sheet having a sheet-based coordinate system to specify a location of structures within the multi-page sheet; performing a data extraction operation to extract data from each document, said data extraction operation comprising a page mode wherein structures are detected on individual pages using the page-based coordinate system and a document mode wherein structures are detected within the entire document using the sheet-based coordinate system.
Other details and features will be apparent from the detailed description.
In the following description, for purposes of explanation, numerous specific details are set forth. Other embodiments and implementations are possible.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown only in block diagram form in order to avoid obscuring the invention.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearance of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
In accordance with one embodiment of the invention, there is provided a process for creating a flexible structure description of a multi-page document. The process is performed by a data capture system such as a document scanner. Exemplary hardware corresponding to a data capture system for performing the process in illustrated in
One embodiment of the process for creating a flexible structure description is illustrated by the flowchart of
Referring to
In one embodiment, in order to enable the data capture system to identify a document automatically, at block 104 special sections are created in the flexible structure description which describe the structure of the first (Header) page and the last (Footer) page of the document. Either of these sections may occur in a flexible structure description only once. In one embodiment, each of these sections is a complete structure description in its own right which describes anchor elements, fields, image objects, spatial relationships among elements, possible search areas, possible data types, etc.
Generally, the Header section describes the structure elements of the document's title, whereas the Footer section describes the structure elements of the final part of the document. In the case of a one-page document, the Header and Footer sections may be located on one and the same page.
Besides the Header and Footer sections, a structure description for a multi-page document may include descriptions of some data fields to be detected and of some anchor elements and their relationships within the structure of documents of the given type. These descriptions are created at block 106. In one embodiment, when describing individual elements, a range of pages may be specified on which the given element may occur. For example, the structure description may specify that a Table element may be found on any page except page 1, or that a Total Amount element may be found on the last page or on the last page but one. In the general case, any element may be placed on any page of the document, and its actual position is determined by its relation to other elements in the document structure expressed as “above,” “below,” “left of,” and “right of” and by offsets relative to element boundaries.
A multi-page document may often contain repeating groups of fields. As an example, consider the document 400 shown in
Additionally, in one embodiment, the process 106 specifies a condition for searching the next instance relative to the previously detected instance. The condition may be specified as a combination of search direction (for example, by choosing from the four options: “above,” “below,” “left of,” and “right of”), the boundary of the instance relative to which the search direction is specified, and the offset of the search area relative to the boundary.
At block 108, the flexible structure descriptions of multi-page documents of different types are output. These structure descriptions are used by the data capture system to identify documents in a batch of incoming page images, to detect the relevant data fields, and extract the data contained in the data fields, as will now be described. Referring now to
If the structure description does not contain a Header section, the entire structure description is used to identify the type of a document.
Once the document type is identified and its first page is detected, the last page of the document is detected. This is done at block 206 where a search is performed for the nearest page containing the footer for the identified document type. If the exact number of pages in a document is specified (e.g. the minimum number of pages equals the maximum number of pages), the system will treat the specified number of pages following the detected first page as one document. Document boundaries may also be specified explicitly by using special separator pages or by scanning pages into a multi-page image file.
If the end of the document is not explicitly specified, the system will consider all pages starting from the very first one as possible candidates for the end of the document. To detect the last page of the document, the system matches the Footer section of the document of the selected/identified type against each page. The first page for which the Footer correspondence rating is greater than zero is considered to be the last page of the document. Thus, the last page is considered found at block 208 and processing moves to block 216 where the document itself is considered identified in the batch of page images.
If the system has examined the maximum number of pages allowed by the structure descriptions and the Footer section has not matched any of them, the system will attempt to match the pages with Headers of all document types known to it at block 210. A detected header of a different document type enables the system to consider the previous page as the last page of the document to be identified. If the system fails to detect the last page at block 212 using the Header and Footer sections of the known document types, the system assumes that the number of pages in the document equals the maximum number of possible pages specified in its structure description. Thus, to identify the multi-page document in the batch of incoming page images the system loads the maximum allowed number of pages after the Header (at block 214).
Two coordinate systems are used—a global system of coordinates (goes through the entire document) and a local one (bound to a particular page). The only difference between the global and local coordinate systems is that the global system has parallel shifts, each page having its own shift.
Let there be 3 pages in a document having the following sizes: 2500.times.3500, 2400.times.3400, and 2300.times.3300. Then the global coordinates of the pages are: [0, 0, 2500, 3500], [0, 3500, 2400, 6900], [0, 6900, 2300, 10200] (in the order [left, top, right, bottom]).
For relations between elements, the global coordinate system is used, so that the relations, such as BELOW, are interpreted correctly.
Once the page images are joined into one multi-page sheet at block 300, the flexible structure description is applied to the entire sheet at block 302 as if it were an image of a page. Next, the system tries to detect the data fields and extract the data at block 304. At block 306, a recognition technique (e.g. Optical Character Recognition (OCR)) may be used to recognize the data extracted from the fields.
When matching repeating groups against a multi-page sheet, the system takes into account the possible locations of group instances, both on individual pages and in the document as a whole. During the search, the regions of already detected group instances are removed from the search area of the next instances so that the different instances of one and the same group would not overlap. At the same time the rectangles enclosing group instances may overlap. The search for instances of a repeating group is deemed complete when the system cannot find any of the elements of the group in the search area of the next instance.
The use of a multi-page sheet (global coordinate system) together with the images of individual pages (local coordinate system) makes it possible to solve tasks as complex as capturing data from documents with multi-page tables as is the case with the document 400 of
Additionally, the concept of multi-page sheet enables the system to capture data from run-on tables with complex row structures. For example, a row may contain merged cells or may be located on more than one line (this is typical of wide tables where all columns do not fit on one line and are carried over to the next line) and flow over onto the next page. If this is the case, the row is described as a repeating group which should be detected in document mode.
The system 500 also may receive a number of inputs and outputs for communicating information externally. For interface with a user or operator, the system 500 may include one or more user input devices 506 (e.g., a keyboard, a mouse, imaging device, etc.) and one or more output devices 508 (e.g., a Liquid Crystal Display (LCD) panel, a sound playback device (e.g., speaker, ear buds)).
For additional storage, the system 500 may also include one or more mass storage devices 510, e.g., a floppy or other removable disk drive, a hard disk drive, a Direct Access Storage Device (DASD), an optical drive (e.g. a Compact Disk (CD) drive, a Digital Versatile Disk (DVD) drive, etc.) and/or a tape drive, among others. Furthermore, the system 500 may include an interface with one or more networks 512 (e.g., a local area network (LAN), a wide area network (WAN), a wireless network, and/or the Internet among others) to permit the communication of information with other computers coupled to the networks. It should be appreciated that the system 500 may include suitable analog and/or digital interfaces between the processor 502 and each of the components 504, 506, 508, and 512 as is well known in the art.
The system 500 operates under the control of an operating system 514, and executes various computer software applications, components, programs, objects, modules, etc. to implement the techniques described above. Moreover, various applications, components, programs, objects, etc., collectively indicated by reference 516 in
In general, the routines executed to implement the embodiments of the invention may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs may comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects of the invention. Moreover, while the invention has been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of computer-readable media used to actually effect the distribution. Examples of computer-readable media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative and not restrictive of the broad invention and that this invention is not limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art upon studying this disclosure. In an area of technology such as this, where growth is fast and further advancements are not easily foreseen, the disclosed embodiments may be readily modifiable in arrangement and detail as facilitated by enabling technological advancements without departing from the principals of the present disclosure.
For purposes of the USPTO extra-statutory requirements, the present application constitutes a continuation of U.S. patent application Ser. No. 12/470,425 that was filed on 21 May 2009, which is currently co-pending, or is an application of which a currently co-pending application is entitled to the benefit of the filing date. The present application also constitutes a continuation of U.S. patent application Ser. No. 12/206,067 that was filed on 8 Sep. 2008, which is currently co-pending, or is an application of which a currently co-pending application is entitled to the benefit of the filing date. The United States Patent Office (USPTO) has published a notice effectively stating that the USPTO's computer programs require that patent applicants reference both a serial number and indicate whether an application is a continuation or continuation-in-part. See Stephen G. Kunin, Benefit of Prior-Filed Application, USPTO Official Gazette 18 Mar. 2003. The present Applicant Entity (hereinafter “Applicant”) has provided above a specific reference to the application(s) from which priority is being claimed as recited by statute. Applicant understands that the statute is unambiguous in its specific reference language and does not require either a serial number or any characterization, such as “continuation” or “continuation-in-part,” for claiming priority to U.S. patent applications. Notwithstanding the foregoing, Applicant understands that the USPTO's computer programs have certain data entry requirements, and hence Applicant is designating the present application as a continuation-in-part of its parent applications as set forth above, but expressly points out that such designations are not to be construed in any way as any type of commentary and/or admission as to whether or not the present application contains any new matter in addition to the matter of its parent application(s). All subject matter of the Related Applications and of any and all parent, grandparent, great-grandparent, etc. applications of the Related Applications is incorporated herein by reference to the extent such subject matter is not inconsistent herewith.
Number | Name | Date | Kind |
---|---|---|---|
4996665 | Nomura | Feb 1991 | A |
5197121 | Miyoshi et al. | Mar 1993 | A |
5317646 | Sang, Jr. et al. | May 1994 | A |
5339412 | Fueki | Aug 1994 | A |
5422743 | Farrell et al. | Jun 1995 | A |
5428694 | Betts et al. | Jun 1995 | A |
5434962 | Kyojima et al. | Jul 1995 | A |
5459827 | Allouche et al. | Oct 1995 | A |
5555101 | Larson et al. | Sep 1996 | A |
5555362 | Yamashita et al. | Sep 1996 | A |
5633996 | Hayashi et al. | May 1997 | A |
5701500 | Ikeo et al. | Dec 1997 | A |
5727220 | Hohensee et al. | Mar 1998 | A |
5822454 | Rangarajan | Oct 1998 | A |
5848184 | Taylor et al. | Dec 1998 | A |
5848186 | Wang et al. | Dec 1998 | A |
5999664 | Mahoney et al. | Dec 1999 | A |
6002798 | Palmer et al. | Dec 1999 | A |
6400845 | Volino | Jun 2002 | B1 |
6456738 | Tsukasa | Sep 2002 | B1 |
6562077 | Bobrow et al. | May 2003 | B2 |
6941521 | Lin et al. | Sep 2005 | B2 |
6957383 | Smith | Oct 2005 | B1 |
7028250 | Ukrainczyk et al. | Apr 2006 | B2 |
7069501 | Kunitake et al. | Jun 2006 | B2 |
7149347 | Wnek | Dec 2006 | B1 |
7171615 | Jensen et al. | Jan 2007 | B2 |
7310635 | Tucker | Dec 2007 | B2 |
7346215 | Shih et al. | Mar 2008 | B2 |
7383496 | Fukuda | Jun 2008 | B2 |
7529408 | Vohariwatt et al. | May 2009 | B2 |
7653921 | Herley | Jan 2010 | B2 |
7761787 | Singleton et al. | Jul 2010 | B2 |
8056001 | Chao | Nov 2011 | B2 |
8064096 | Waara | Nov 2011 | B2 |
20020029232 | Bobrow et al. | Mar 2002 | A1 |
20020064316 | Takaoka | May 2002 | A1 |
20040153465 | Singleton et al. | Aug 2004 | A1 |
20050067482 | Wu et al. | Mar 2005 | A1 |
20070041041 | Engbrocks et al. | Feb 2007 | A1 |
20070133067 | Garg | Jun 2007 | A1 |
20070168382 | Tillberg et al. | Jul 2007 | A1 |
20080025608 | Meunier | Jan 2008 | A1 |
20080170786 | Tomizawa et al. | Jul 2008 | A1 |
20080195968 | Schacht | Aug 2008 | A1 |
20090028437 | Hirohata | Jan 2009 | A1 |
20090074296 | Filimonova et al. | Mar 2009 | A1 |
20090216794 | Saptharishi | Aug 2009 | A1 |
Number | Date | Country |
---|---|---|
11224346 | Aug 1999 | JP |
2004355528 | Dec 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20120183226 A1 | Jul 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12470425 | May 2009 | US |
Child | 13431767 | US | |
Parent | 12206067 | Sep 2008 | US |
Child | 12470425 | US |