You can improve text recognition accuracy by narrowing the range of characters valid for recognition. This way the recognition engine doesn't always have to choose its solutions from all 500 characters in the recognition engine's Total Character Set. The multi-lingual omnifont MOR recognition module supports all of these characters; other recognition modules recognize fewer of them. Broadly, the set is compiled as follows:
This involves selecting one or more of the 114 available languages with the LanguageEnabled Property and optionally additional characters validated individually with the LanguagesPlus Property. Selecting only needed language(s) has a major impact. For example, selecting German only immediately INVALIDATES the Cyrillic and Greek alphabets and over 150 other unneeded accented letters.
Defining a recognition module for processing a zone may also restrict the available languages or characters within the Language environment.
The SDK provides filters (ImGearRecFilter Enumeration) to further narrow down the Character Set, by enabling only certain character classes, e.g., digits, uppercase letters, etc. The value ALL means no filtering.
An application may require exceptions to the filter rule. The most flexible way to re-expand the Character Set with individual characters after filtering is to specify them with the FilterPlus Property and validate them with the PLUS flag in the required zones.
In addition to the global, page-level definition of the Character Set, the choice of Recognition module, filling method, filtering and use of the expansion string can be fine-tuned on a local, zone level. Auto-located zones will be set to take the global filter settings. Manually created or modified zones may contain zone-level settings. Local filtering and expansion (with PLUS) can be set in the zone's Filter Property. The possible local filter values are the same as the global ones, with an extra one: DEFAULT. If this is the only one set, the zone inherits the global filter setting.
To summarize, the Character Set for each zone was:
In the following example, the default recognition module (omnifont, unless specifically changed) will be assigned to all zones, as will the filter value DEFAULT, i.e., there is no local modification of the Character Set.
You can specify a character set with no language selection: "a, A, b, B, c, C, d, D, e, E" as the only validated characters. This example illustrates a rare case, such as you have a page containing zones with a very restricted number of characters to be recognized, e.g., in recognizing forms or multiple-choice test papers. In this case the application doesn't enable any language, but instead defines the few characters necessary as LanguagesPlus characters. This means there is no language selection and the Language environment consists solely of the individually defined LanguagesPlus characters. Also note that there is no filtering and no locally (zone) validated FilterPlus characters, in this case, the Language environment fully defines the Character Set and it will be valid for the defined zone, and for others inserted with an identical zone structure.
In the above case the zone list is not empty, so the Recognize Method will not perform auto-decomposition (auto-zoning), but will act on the inserted zone(s).
This example demonstrates reading a printed page in Hungarian, in which a Croatian town name appears repeatedly, containing the character "z-hacek" in lower and uppercase. The Windows Eastern Europe Code Page (1250), is needed as the current Code Page (and for export). The page includes a table containing numbers, which should be zoned separately for digits-only recognition.
In this example the Language environment is formed from the language selection (Hungarian) plus the two additional LanguagesPlus characters "z-hacek" and "Z-hacek". There is no global filter, but there is a local one, DIGIT, defined for one zone.
To read a page from a Luxembourgian newspaper, in which articles on a single page appear in French, German, and Luxembourgian. The page contains six zones. The text contains no miscellaneous characters (mathematical symbols, etc.). Zone 5 contains uppercase letters only, with no digits, and only three punctuation characters: the comma, the period (full-stop), and a question mark. Zone 6 presents a currency conversion table containing the digits, the comma, and the currency codes of Luxembourg and its neighbors: LUF, FRF, DEM, BEF, and EUR.
The language selection is set to French, German, and Luxembourgian. The DefaultFilter property is used to specify the global filter, to filter out only the 30 miscellaneous characters:
ALPHA | PUNCTUATION | DIGIT.
A local filter is defined for zone 5:
UPPERCASE | PLUS.
A different local filter is defined for zone 6:
DIGIT | PLUS, or simply NUMBERS.
These have the same effect.
The FilterPlus property is set to validate the FilterPlus characters needed in zone 5 and zone 6:
The comma, the period, the question mark, and the currency letters, B D E F L M R U.