Document areas detection

A scanned image or photograph of a text document may contain a large number of blocks of various content - text paragraphs, tables, illustrations, formulas, and the like. Detecting, ordering, and classifying areas of interest on a page is the cornerstone of successful and accurate OCR. This process is called document areas detection.

Document structure analysis and recognition

Aspose.OCR offers several document areas detection algorithms, allowing you to choose the one that works best for your specific content.

Automatic areas detection

If you call setDetectAreas(true) method of recognition settings, Aspose.OCR automatically selects the optimal areas detection algorithm that suits the most common use cases.

Document areas detection uses a neural network, which requires additional time and resources on the computer running the application. You can disable it (call setDetectAreas(false)) when extracting single-line texts, or working with very simple documents without formatting and pictures. This can improve the performance of your application, especially when integrating OCR functionality into web sites and public APIs with minimal impact on the quality of recognition results.

// Create instance of OCR API
AsposeOCR api = new AsposeOCR();
// Enable automatic document areas detection
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setAllowedCharacters(CharactersAllowedType.LATIN_ALPHABET);
recognitionSettings.setDetectAreas(true);
// Extract text from image
RecognitionResult result = api.RecognizePage("source.png", recognitionSettings);
System.out.println("Recognition result:\n" + result.recognitionText + "\n\n");

Area detection modes

You can manually override the default document areas detection method if you are unhappy with the results or get unwanted artifacts.

Document structure analysis algorithm is specified using setDetectAreasMode method of recognition settings.

// Create instance of OCR API
AsposeOCR api = new AsposeOCR();
// Enable automatic document areas detection
RecognitionSettings recognitionSettings = new RecognitionSettings();
recognitionSettings.setDetectAreasMode(DetectAreasMode.DOCUMENT);
// Extract text from image
RecognitionResult result = api.RecognizePage("source.png", recognitionSettings);
System.out.println("Recognition result:\n" + result.recognitionText + "\n\n");

Aspose.OCR for Java supports the following document structure analysis methods provided in [DetectAreasMode] enumeration:

Name Value Description Use cases
DetectAreasMode.NONE 0 Do not analyze document structure. Similar to calling setDetectAreas(false) method of recognition settings. Simple images containing a few lines of text without illustrations or formatting.
Applications requiring maximum recognition speed
Web applications
DetectAreasMode.DOCUMENT 1 Detect large blocks of text, such as paragraphs and columns. Optimal for multi-column documents with illustrations.
See DetectAreasMode.DOCUMENT for additional details.
Contracts
Books
Articles
Newspapers
High-quality scans
DetectAreasMode.PHOTO 2 Finds small text blocks inside complex images.
See DetectAreasMode.PHOTO for additional details.
Driver’s licenses
Social security cards
Government and work IDs
Visas
Photos
Screenshots
Advertisements
DetectAreasMode.COMBINE 3 The combination of DetectAreasMode.DOCUMENT and DetectAreasMode.PHOTO.
See DetectAreasMode.COMBINE for additional details.
Posters
Billboards
Datasheets
Random photos
Batch recognition
DetectAreasMode.TABLE 4 Detects cells in tabular structures.
See DetectAreasMode.TABLE for additional details.
Tables
Invoices
DetectAreasMode.CURVED_TEXT 5 Auto-straightens curved lines and finds text blocks inside the resulting image.
See DetectAreasMode.CURVED_TEXT for additional details.
Photos of books, magazine articles, and other curved pages.