2023.1:Image Processing (Activity): Difference between revisions

From Grooper Wiki
// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Line 116: Line 116:
{|style="margin:auto" cellpadding="10" cellspacing="5"
{|style="margin:auto" cellpadding="10" cellspacing="5"
|-style="text-align:center"
|-style="text-align:center"
|style="width:400px"|'''Before''': This page is upside down. OCR will have a difficult time with this document.
|style="width:400px"|'''Before''': This page is upside down. OCR will have a difficult time with this document the way it is.
|style="width:400px"|'''After''': The page is now right-side up and readable.  
|style="width:400px"|'''After''': The page is now right-side up and readable. We should get much better OCR results with this.  
|-
|-
|[[File:2023.1 Image-Processing-(Activity) 02 How-To 01 Before-and-After 01.png|center|border]]||[[File:2023.1 Image-Processing-(Activity) 02 How-To 01 Before-and-After 02.png|border|center]]
|[[File:2023.1 Image-Processing-(Activity) 02 How-To 01 Before-and-After 01.png|center|border]]||[[File:2023.1 Image-Processing-(Activity) 02 How-To 01 Before-and-After 02.png|border|center]]

Revision as of 10:49, 18 July 2024

This article is about an older version of Grooper.

Information may be out of date and UI elements may have changed.

20252023.1

wallpaper Image Processing is an Activity that enhances contract Batch Page images and optimizes them for better OCR text recognition and data extraction results.

You may download the ZIP(s) below and upload it into your own Grooper environment (version 2023). The first contains one or more Batches of sample documents. The second contains one or more Projects with resources used in examples throughout this article.

Glossary

Activity: Grooper Activities define specific document processing operations done to a inventory_2 Batch, folder Batch Folder, or contract Batch Page. In a settings Batch Process, each edit_document Batch Process Step executes a single Activity (determined by the step's "Activity" property).

  • Batch Process Steps are frequently referred by the name of their configured Activity followed by the word "step". For example: "Classify step".

Batch: inventory_2 Batch nodes are fundamental in Grooper's architecture. They are containers of documents that are moved through workflow mechanisms called settings Batch Processes. Documents and their pages are represented in Batches by a hierarchy of folder Batch Folders and contract Batch Pages.

Batch Page: contract Batch Page nodes represent individual pages within a inventory_2 Batch. Batch Pages are created in one of two ways: (1) When images are scanned into a Batch using the Scan Viewer. (2) Or, when split from a PDF or TIFF file using the Split Pages activity.

  • Batch Pages are frequently referred to simply as "pages".

Batch Process: settings Batch Process nodes are crucial components in Grooper's architecture. A Batch Process is the step-by-step processing instructions given to a inventory_2 Batch. Each step is comprised of a "Code Activity" or a Review activity. Code Activities are automated by Activity Processing services. Review activities are executed by human operators in the Grooper user interface.

  • Batch Processes by themselves do nothing. Instead, they execute edit_document Batch Process Steps which are added as children nodes.
  • A Batch Process is often referred to as simply a "process".

Batch Process Step: edit_document Batch Process Steps are specific actions within a settings Batch Process sequence. Each Batch Process Step performs an "Activity" specific to some document processing task. These Activities will either be a "Code Activity" or "Review" activities. Code Activities are automated by Activity Processing services. Review activities are executed by human operators in the Grooper user interface.

  • Batch Process Steps are frequently referred to as simply "steps".
  • Because a single Batch Process Step executes a single Activity configuration, they are often referred to by their referenced Activity as well. For example, a "Recognize step".

Binarize: Binarize is an IP Command that converts a color or grayscale image to a bi-tonal (black and white) image using various thresholding methods.

Grooper Repository: A Grooper Repository is the environment used to create, configure and execute objects in Grooper. It provides the framework to "do work" in Grooper. Fundamentally, a Grooper Repository is a connection to a database and file store location, which store the node configurations and their associated file content. The Grooper application interacts with the Grooper Repository to automate tasks and provide the Grooper user interface.

Image Processing (Activity): wallpaper Image Processing is an Activity that enhances contract Batch Page images and optimizes them for better OCR text recognition and data extraction results.

Image Processing (Concept): "Image processing", as a general term, refers to software techniques that manipulate and enhance images. Image processing removes imperfections and adjusts images to improve OCR accuracy. In Grooper, images are processed primarily by two Activities:

  • Image Processing - This Activity permanently adjusts the image using. It is primarily used to compensate for defects produced by a document scanner (like border artifacts and skewed images). It does so by applying IP Commands in an perm_media IP Profile.
  • Recognize - This Activity performs OCR. When an library_books OCR Profile references an perm_media IP Profile, the image will be processed temporarily. A temporary image is handed to the OCR engine and discarded once characters are recognized.
  • Grooper also has "computer vision" capabilities that analyze and interpret images. These capabilities are also executed during Grooper's image processing. For example, Grooper's "Line Removal" command will locate lines on an image (computer vision), remove those artifacts to improve OCR results during Recognize (image processing) and store that data for later use in Grooper (computer vision).

IP Command: IP Commands specify an image processing (IP) operation (such as image cleanup, format conversion or feature detection) and are used to construct image IP Steps in an IP Profile. IP Commands are configured using an IP Step's Command property.

IP Profile: perm_media IP Profiles are a step-by-step list of image processing operations (IP Commands). They are used for several image processing related operations, but primarily for:

  1. Permanently enhancing an image during the Image Processing activity (usually to get rid of defects in a scanned image, such as skewing or borders).
  2. Cleaning up an image in-memory during the Recognize activity without altering the image to improve OCR accuracy.
  3. Computer vision operations that collect layout data (table line locations, OMR checkboxes, barcode value and more) utilized in data extraction.

IP Step: image IP Steps are the basic units of an perm_media IP Profile. They define a single image processing operation, called an IP Command in Grooper.

Line Removal: Line Removal is an IP Command that locates and removes horizontal and vertical lines from documents. The detected line locations are stored as part of page's layout data.

OCR Profile: library_books OCR Profiles store configuration settings for optical character recognition (OCR). They are used by the Recognize activity to convert images of text on contract Batch Pages into machine-encoded text. OCR Profiles are highly configurable, allowing fine-grained control over how OCR occurs, how pre-OCR image cleanup occurs, and how Grooper's OCR Synthesis occurs. All this works to the end goal of highly accurate OCR text data, which is used to classify documents, extract data and more.

OCR: OCR is stands for Optical Character Recognition. It allows text on paper documents to be digitized, in order to be searched or edited by other software applications. OCR converts typed or printed text from digital images of physical documents into machine readable, encoded text.

Project: package_2 Projects are the primary containers for configuration nodes within Grooper. The Project is where various processing objects such as stacks Content Models, settings Batch Processes, profile objects are stored. This makes resources easier to manage, easier to save, and simplifies how node references are made in a Grooper Repository.

Recognize: format_letter_spacing_wide Recognize is an Activity that obtains machine-readable text from contract Batch Pages and folder Batch Folders. When properly configured with an library_booksOCR Profile, Recognize will selectively perform OCR for images and native-text extraction for digital text in PDFs. Recognize can also reference an perm_mediaIP Profile to collect "layout data" like lines, checkboxes, and barcodes. Other Activities then use this machine-readable text and layout data for document analysis and data extraction.

Render: print Render is an Activity that converts files of various formats to PDF. It does this by digitally printing the file to PDF using the Grooper Render Printer. This normalizes electronic document content from file formats Grooper cannot read natively to PDF (which it can read natively), allowing Grooper to extract the text via the format_letter_spacing_wide Recognize Activity.

Review: person_search Review is an Activity that allows user attended review of Grooper's results. This allows human operators to validate processed contract Batch Page and folder Batch Folder content using specialized user interfaces called "Viewers". Different kinds of Viewers assist users in reviewing Grooper's image processing, document classification, data extraction and operating document scanners.

Scope: The Scope property of a edit_document Batch Process Step, as it relates to an Activity, determines at which level in a inventory_2 Batch hierarchy the Activity runs.

Split: Split is a Collation Provider option for pin Data Type extractors. Split separates a data instance at each match returned by the Data Type. The results are used as anchor points to "split" text into one or more smaller parts.

Split Pages: Multi-page PDF and TIF files come into Grooper as files attached to single folder Batch Folders. Split Pages is an Activity that creates child contract Batch Pages for each page in the PDF or TIF. This allows Grooper to process and handle these pages as individual objects.


About

The Image Processing Activity (generally applied via a Batch Process Step) applies a preconfigured IP Profile to a document.

An IP Profile lists a series of steps to performing Image Processing functions called "IP Commands". There are several IP Commands in Grooper, including ones that remove borders from an image, adjust the skew angle of an image, change the color format of an image, and more. For more information on configuring an IP Profile, visit the IP Profile wiki page.

Permanent vs. Temporary Image Processing

The Image Processing Activity permanently alters a document's image by applying an IP Profile. However, it is possible to temporarily clean up document images to benefit OCR results and revert back to the original document image. This needs to be done during the Recognize Activity rather than the Image Processing Activity.

For example, you may have a document where table lines are getting in the way of accurate OCR. However, if you remove these lines during the Image Processing activity, they will be permanently removed, making it difficult to review the documents in Review and changing the archival image stored later to something that no longer looks like the original document.

Instead, you can use an OCR Profile referencing an IP Profile containing a Line Removal command during Recognize. The image will be temporarily changed according to the IP Profile. Then, OCR will run on the altered image. Last, the image will revert back to its original form.

For more information on Temporary Image Processing, please see the OCR Profile, IP Profile, and Recognize wiki pages.

The Image Processing Activity

If you are more interested in making permanent changes to documents to clean up the pages and improve OCR results, then you might consider adding an Image Processing Batch Process Step to your Batch Process. The following are just a few things you can do by adding an appropriately configured IP Profile to your Image Processing step:

This page is slightly askew. A Deskew IP Step can correct this.
The off-white background of this page can make certain things hard to read. A Binarize IP Step can change the image to black and white.
This page has a dark border around it that can make OCR more difficult. The Auto Border Crop and Border Fill IP Steps can remove the border.

For more examples, instructions, and tips on setting up an IP Profile, take a look at the IP Profile wiki article.

How To

At the top of this article there are two .zip files you can download and upload to your Grooper environment to follow along with this tutorial. One of those .zip files is the Batch we will be working with containing 5 documents.

The IP Profile we will be referencing in our Image Processing activity contains the following IP Steps:

  • Normalize
  • Auto Orient
  • Auto Deskew
  • Auto Crop

Below you will see what each document looks like before and after the Image Processing step we will be configuring is run on the Batch.

Before: This page is upside down. OCR will have a difficult time with this document the way it is. After: The page is now right-side up and readable. We should get much better OCR results with this.
Before: This page is right-side up and not askew. After: Since this page was find just as it was, no changes were made.
Before: This page is right-side up and not askew. After: Since this page was find just as it was, no changes were made.
Before: This page is turned slightly askew due to how it was scanned in. After: Now the page is straight. It looks better and will be easier to perform OCR on.
Before: This page is also turned slightly askew due to how it was scanned in. After: Now the page is straight. It looks better and will be easier to perform OCR on.


Adding the Image Processing Step

The first thing we need to do is add an Image Processing Batch Process Step to our Batch Process and set the Scope at which the step will run.

  1. Right click on the Batch Process.
  2. Hover over "Add Activity", then hover over "Cleanup & Recognition". Then click on "Image Processing..."
  3. When the "Add Activity" window pops up, you can change the Step Name if you like. In this tutorial we are going to keep it as the default of "Image Processing".
  4. Click "EXECUTE" at the top right corner of the "Add Activity" window.


  1. Now you should have an Image Processing Batch Process Step in your Batch Process.
  2. By default, the Scope property is set to Page. Generally, you want to keep your Scope to a Page level for Image Processing because the step permanently edits an image and must do so at the Page level.



Configuring the Batch Process Step

Now that we have our Image Processing step in our Batch Process and have set the Scope, we need to configure the properties of the step. We will configure the properties in the right-hand property grid to give instructions to Grooper on how to execute the step.

  1. We are using an IP Profile that we have copied and pasted from the "Essentials" Project. The "Essentials" Project comes pre-installed with every Grooper Repository.
  2. Click the hamburger icon to the right of the IP Profile property.
  3. Navigate to and select the IP Profile.


  1. If you want Grooper to save an unedited copy of the file attached to the document, click the check box next to Enable Undo to set the property to True.


  1. You can click the hamburger icon to the right of the Compression property to set a custom format for this Batch Process Step. If left as the default (none), then it will use the compression settings specified on the root node of the repository.


PDF Options: Bursting vs. Rendering

The PDF Options properties only apply if you are processing PDF pages. If you are using Image Processing to process image pages (JPEGs, TIFs, etc.), you can ignore this section.

Image Processing is designed to selectively apply an IP Profile, depending on the page's type. The default settings are designed to work for most cases, without further configuration.

The Image Processing activity will conditionally apply the IP Profile, given the following:

Page Type Result Notes
JPEG pages The IP Profile will be applied in all cases, no matter what.
  • This is normal behavior for the Image Processing activity. It generally expects to process images.
Image-based PDF pages The IP Profile will only be applied if Bursting and/or Rendering are enabled.
  • The PDF will be copied over or overwritten as an image with the applied changes.
  • The image-based PDF page types are "Single Image" and "Searchable" pages. For a complete list of PDF page types, visit the PDF Page Types article.
Text-based PDF pages ONLY Orient or Auto-Orient steps will be applied if Rendering is enabled.
  • This will ONLY rotate the PDF's orientation. Since it does not need OCR, there are no other image cleanup that needs to be made.

FYI

If both Bursting and Rendering are enabled, then Bursting will always take priority over Rendering if possible. Image-Based PDFs can be burst while Text-Based PDFs cannot.

Let's take a look at 3 different scenarios: With JPEGs, image-based PDFs, and text-based PDFs.

JPEGs

Bursting Rendering Result
Enabled Enabled Image does not need to be burst or rendered because it is already an image. The whole IP Profile is applied.
Disabled Enabled Image does not need to be burst or rendered because it is already an image. The whole IP Profile is applied.
Disabled Disabled Image does not need to be burst or rendered because it is already an image. The whole IP Profile is applied.
  • There is no difference in the application of Image Processing to a JPEG if either Bursting or Rendering is enabled or disabled. A JPEG is always processed the same.
  • A JPEG does not need to be converted to an image because it already is an image.
  • The full IP Profile can be applied to the image.


Image-Based PDF

Bursting Rendering Result
Enabled Enabled PDF will use Bursting properties and will be burst into an image. The whole IP Profile is applied.
Disabled Enabled PDF will use Rendering properties and will be rendered into an image. The whole IP Profile is applied.
Disabled Disabled PDF will remain a PDF and the IP Profile cannot be applied.
  • For image-based PDFs, with either Bursting or Rendering enabled, it will convert the PDF to an image using the enabled method (with Bursting taking priority). The IP Profile can then be applied.
  • An IP Profile can only be applied to images, not PDFs. So if both properties are disabled, then the IP Profile cannot be applied.


Text-Based PDF

Bursting Rendering Result
Enabled Enabled PDF will use Rendering properties and will be rendered into an image since it cannot be burst. ONLY Orient or Auto-Orient will be applied from the IP Profile.
Disabled Enabled PDF will use Rendering properties and will be rendered into an image. ONLY Orient or Auto-Orient will be applied from the IP Profile.
Disabled Disabled PDF will remain a PDF and the IP Profile cannot be applied.
  • For Text-Based PDF, there is no reason to run any IP Profile Step other than Orient or Auto-Orient because the document is already perfect otherwise and has native text making OCR unnecessary.
  • With Rendering enabled, it will render the PDF to an image (text-based PDFs cannot be burst). Then ONLY apply Orient or Auto-Orient if present in the IP Profile.
  • Just like with Image-Based PDFs, the IP Profile can only be applied to images, not PDFs. So if both properties are disabled, then nothing from the IP Profile can be applied.