Go to DCV Architecture
Image-Processing Tasks
In the Dynamsoft Capture Vision (DCV) architecture, various image processing tasks exist, each constituting a comprehensive algorithmic procedure designed to extract specific information or to produce an improved version of the original image.
Task Types
The following are the image-processing tasks supported at present:
Task Type | Performed By | Category | Result Type |
---|---|---|---|
Read Barcodes | DBR | Image-Processing | Decoded Barcodes |
Recognize Text Lines | DLR | Image-Processing | Recognized TextLines |
Detect Document Boundaries | DDN | Image-Processing | Document Boundary Quads |
Normalize a Document | DDN | Image-Processing | Normalized Image |
Table 1: Task Types
Divide Tasks into Sections
Each image-processing task can be further divided into three sections, each of these sections constitutes a collection of relevant algorithmic proedures designed to produce the location results
Task Type | Sections |
---|---|
Read Barcodes | Region Pre-detection, Barcode Localization, Barcode Decoding |
Recognize Text Lines | Region Pre-detection, Text-line Localization, Text-line Recognition |
Normalize a Document | Region Pre-detection, Document Detection, Document Normalization |
Table 2: Tasks and Sections
In total, there are 7 unique image-processing sections, which belong to one of three steps of a task:
Step one: initial image-processing
This step tries to find parts of the image, called “regions of interest (ROI)” that exhibit distinct features that match the result we are trying to obtain. Then these regions are cropped to produce regional images as the final output of this step for the next step to process. There is only one section for this step:
- If no specific region is found, the entire image is the output.
- There can be multiple regions found which result in multiple regional images as the output.
Step two: detecting the precise location
This step tries to find the precise location, called “zones”, of the final results (a barcode, a text-line or a document) on the regional images from step one. Then these zones are cropped to produce zonal images as the final output of this step.
Step two of a task can be one of the following three sections:
- Barcode Localization
- Text-line Localization
- Document Detection (a document refers to an object with a quadrilateral boundary)
As mentioned in “Divide Sections into Stages”, each section is further divided into stages. These three sections in step two starts with the same few stages. Read more on Shared Detection.
Step three: producing the final results
Based on the zonal images, each functional product performs the last operation to obtain the final results.
Step three of a task can be one of the following three sections:
The following is a simple demonstration of the sections:
flowchart LR;
A[1.Region Pre-Detection]-->C[2.1.Shared Detection]
C---D[2.2.Barcode Localization]
C---E[2.2.Text-line Localization]
C---F[2.2.Document Detection]
D---G[3.Barcode Decoding]
E---H[3.Text-line Recognition]
F---I[3.Document Normalization]
Divide Sections into Stages
Each of the 7 sections mentioned in “Divide Tasks into Sections” can be further divided into many stages as shown below:
Stages shared by “Barcode Localization”, “Text-line Localization” and “Document Detection” are put together for the pseudo type “Shared Detection Section”. Read more on Shared Detection
Section Type | Stages |
---|---|
Region Pre-detection | IRUT_COLOUR_IMAGE, IRUT_SCALED_DOWN_COLOUR_IMAGE, IRUT_GRAYSCALE_IMAGE, IRUT_TRANSFORMED_GRAYSCALE_IMAGE, IRUT_PREDETECTED_REGIONS |
Shared Detection Section | IRUT_COLOUR_IMAGE, IRUT_SCALED_DOWN_COLOUR_IMAGE, IRUT_GRAYSCALE_IMAGE, IRUT_TRANSFORMED_GRAYSCALE_IMAGE, IRUT_ENHANCED_GRAYSCALE_IMAGE, IRUT_BINARY_IMAGE, IRUT_TEXTURE_DETECTION_RESULT, IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE, IRUT_TEXTURE_REMOVED_BINARY_IMAGE, IRUT_TEXT_ZONES, IRUT_TEXT_REMOVED_BINARY_IMAGE |
Barcode Localization | IRUT_CONTOURS, IRUT_LINE_SEGMENTS, IRUT_CANDIDATE_BARCODE_ZONES, IRUT_LOCALIZED_BARCODES |
Text-line Localization | IRUT_LOCALIZED_TEXT_LINES |
Document Detection | IRUT_CONTOURS, IRUT_LINE_SEGMENTS, IRUT_LONG_LINES, IRUT_CORNERS, IRUT_CANDIDATE_QUAD_EDGES, IRUT_DETECTED_QUADS |
Barcode Decoding | IRUT_COLOUR_IMAGE, IRUT_GRAYSCALE_IMAGE, IRUT_TRANSFORMED_GRAYSCALE_IMAGE, IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE, IRUT_COMPLEMENTED_BARCODE_IMAGE, IRUT_SCALED_UP_BARCODE_IMAGE, IRUT_DECODED_BARCODES |
Text-line Recognition | IRUT_COLOUR_IMAGE, IRUT_GRAYSCALE_IMAGE, IRUT_TRANSFORMED_GRAYSCALE_IMAGE, IRUT_RECOGNIZED_TEXT_LINES |
Document Normalization | IRUT_NORMALIZED_IMAGES |
Table 3: Sections and Stages
In total, there are 27 unique stages which are identified by the types of results they generate:
- IRUT_COLOUR_IMAGE
- IRUT_SCALED_DOWN_COLOUR_IMAGE
- IRUT_GRAYSCALE_IMAGE
- IRUT_TRANSFORMED_GRAYSCALE_IMAGE
- IRUT_ENHANCED_GRAYSCALE_IMAGE
- IRUT_PREDETECTED_REGIONS
- IRUT_BINARY_IMAGE
- IRUT_TEXTURE_DETECTION_RESULT
- IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE
- IRUT_TEXTURE_REMOVED_BINARY_IMAGE
- IRUT_CONTOURS
- IRUT_LINE_SEGMENTS
- IRUT_TEXT_ZONES
- IRUT_TEXT_REMOVED_BINARY_IMAGE
- IRUT_CANDIDATE_BARCODE_ZONES
- IRUT_LOCALIZED_BARCODES
- IRUT_SCALED_UP_BARCODE_IMAGE
- IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE
- IRUT_COMPLEMENTED_BARCODE_IMAGE
- IRUT_DECODED_BARCODES
- IRUT_LONG_LINES
- IRUT_CORNERS
- IRUT_CANDIDATE_QUAD_EDGES
- IRUT_DETECTED_QUADS
- IRUT_LOCALIZED_TEXT_LINES
- IRUT_RECOGNIZED_TEXT_LINES
- IRUT_NORMALIZED_IMAGES
These stages are the minimal processing units that can be manipulated and these results are called intermediate results. For successive stages, the result of one stage is usually the source object to be processed by the next stage. A user can register listeners to obtain the results for one or multiple stages. DCV also allows the user to manipulate the algorithmic process by changing the result in between stages. Read more on Intermediate Result Receiver and Bidirectional Interactivity with Intermediate Results.
Incomplete Task
As mentioned in Table 2 above, a task is usually complete, which means it consists of three consecutive sections. However, it is not always the case.
- An incomplete task can be a halfway task which means it starts from step two or even step three and consists of only two or even just one section. Read more about StartSection.
- An incomplete task can be a premature task which means it ends early and doesn’t produce the final results. Unlike a halfway task which must start at the beginning of a section, a premature task may end at any stage of a section. Read more about TerminateSetting.