ABBYY FlexiCapture Technology
How FlexiCapture Studio Works
ABBYY FlexiCapture Studio is a flexible tool in which FlexiLayouts, logical definitions of data layout, can be created in two ways. The user can either write descriptions using the special FlexiCapture language or make the necessary settings in the program's dialog boxes. This means that even a person who has had no programming experience can create a FlexiLayout.
The user has to teach the data capture program how to find specific fields on the forms. For this purpose, he creates a formalized description defining the possible locations of each field through the locations of its neighboring elements — titles, pictures, separators, spaces, etc. FlexiCapture Studio will use this FlexiLayout to look for candidate objects on the form and to select the best matches. If all the fields on the sample forms are detected correctly, the FlexiLayout can be exported into FormReader or the FineReader Engine.
When creating a FlexiLayout, first you create a project, elements and blocks. Then you need to adjust your FlexiLayout and, finally, export your FlexiLayout into FormReader or the FineReader Engine.
Creating the Project
First, the user creates a project where form samples and the FlexiLayout will be stored. Usually, the user will need several dozen sample forms — the more forms are used to test the FlexiLayout on, the better FormReader or the FineReader Engine will extract data from similar forms.
Next, the images are pre-recognized in fast mode to detect such objects as text, separators, pictures, and barcodes. A “map” of each image is created so that the user can view all the detected objects “in the mass” or separately by type.
The user checks that the text is recognized correctly and singles out elements which are regularly encountered on the images at hand — these elements will serve as starting points for looking for other, less predictable, objects. The user is advised to select the most typical form image that contains all of the characteristic objects and all or most of the fields, and start creating a FlexiLayout for this image.
Creating Elements and Blocks
A FlexiLayout consists of blocks and elements. Blocks describe the fields from which FormReader must extract data, and elements describe the form objects on which FormReader will rely when looking for the fields. The location of each block is described through its neighboring objects, which are usually titles, pictures, lines, and spaces.
Therefore, before the program can start looking for the fields, it has to find these reference objects. For each reference object the user specifies the coordinates of the search area where this object is likely to be found. Alternatively, the user can specify the search area relative to other objects. The user also specifies the quantitative and qualitative characteristics of each object, and allowed or forbidden characters for text blocks. Mutual relationships between the objects are then established (e.g. object A is always to be found to the left of object B, object A is the closest object to object B, compound object A consists of objects B and C). The program automatically detects errors in the definitions of the elements and displays appropriate warning messages.
The created FlexiLayout is then tested to check that the required fields are found on all the sample forms.
The program uses the FlexiLayout to detect several possible locations of the objects. The maximum number of possible locations for each object is determined by the user. For each possible location, the program advances a hypothesis, i.e. an assumption that the detected object corresponds to a specific element described in the FlexiLayout. The degree of correspondence between the detected object and its FlexiLayout counterpart determines the quality of the hypothesis. The quality coefficient lies within the range from 0 to 1. If the detected object does not meet certain conditions imposed by the FlexiLayout, the quality of the hypothesis is downgraded by a certain number of penalty points. Then the program chooses the hypothesis with the highest quality coefficient. If this hypothesis selects the right object, the user starts describing the other blocks and elements.
As result, the user will have a FlexiLayout for the first selected form image which tells the program what kinds of blocks can be found on the form and how to look for them relying on their neighboring objects. If the created FlexiLayout perfectly matches with the fields on the first image, it can be tested on all the other sample images.
Adjusting the FlexiLayout
It is very likely that the created FlexiLayout will not work equally well for all the images. FlexiCapture Studio offers advanced tools and techniques for improving the FlexiLayout.
For example, the user can create a reference layout for each sample image by drawing blocks manually. FlexiCapture Studio will highlight the discrepancies between the reference layout and the FlexiLayout. Objects not found by the current FlexiLayout will also be highlighted.
Hypotheses are classified in accordance with their status (found/not found) and the types of elements to which they relate. The advanced hypotheses are arranged in a tree-like structure, each type of hypothesis having its own icon, so that the user can easily find his way among the many variants suggested by the program.
|
Before the user starts making any adjustments, the program saves the FlexiLayout and all the FlexiLayout matching results, so that the user can always return to the previous FlexiLayout. The adjusted FlexiLayout is also tested, first on one form, then on all the sample forms. The resulting FlexiLayout should provide the best results for all the sample forms.
The next step is to “train” the FlexiLayout on as many forms as possible. The user gradually adds new forms to the batch and tries matching the FlexiLayout with all the forms in the batch. |
 |
Exporting the FlexiLayout
Once the FlexiLayout has been tested, it is exported into ABBYY FormReader or application, based on FineReader Engine 7.1 SDK. These programs will use the FlexiLayout to extract data from the unstructured forms that the FlexiLayout describes, no matter how complex their layout may be.
If you are interested in more detailed information about FlexiCapture Studio please find it in ABBYY White Paper "About ABBYY FlexiCapture Technology".
|