Introduction to Dynamsoft Capture Vision
Dynamsoft Capture Vision (DCV) is an aggregating SDK of a series of specific functional products, which cover image capturing, content understanding, result parsing, and interactive workflow.
- With the implementation of the Image Source Adapter (ISA) interface, a seamless integration with DCV is possible, allowing easy access to various image sources.
- Dynamsoft Barcode Reader (DBR), Dynamsoft Document Normalizer (DDN), and Dynamsoft Label Recognizer (DLR) play crucial roles in reading barcodes, structures, and texts from images.
- Dynamsoft Code Parser (DCP) is utilized to extract meaningful fields from text/bytes results, ensuring optimal data parsing capabilities.
- To seamlessly access intermediate and final results within the DCV SDK, the Capture Result Receiver (CRR) and Intermediate Result Receiver (IRR) interfaces are provided. After users implement these interfaces and register with DCV, they can obtain the results efficiently and conveniently.
- To view and edit the output results, Dynamsoft Camera Enhancer (DCE) provide a suite of robust viewing and editing functions.
DCV powers your software development through the following aspects:
- Simplicity with Packable Scenarios
- Scalability with Pluggable Components
- Flexibility With Customizable Workflows
- High Performance With Shared Computations
- Bidirectional Interactivity with Intermediate Results
DCV enables you to develop highly customizable applications for barcode reading, label recognition, document board detection, and result parsing. These applications offer enterprise-grade performance and can be tailored to meet your specific business needs.
Functional Products
Dynamsoft Barcode Reader
The barcode decoding feature of DCV is powered by Dynamsoft Barcode Reader (DBR). DBR is a robust SDK that enables users to quickly deploy barcode scanning functionality on all common barcodes such as 1D, QR, PDF417, etc. When working on the barcode scanning, there are various processing parameters available for users to adjust performance in different usage scenarios.
Dynamsoft Label Recognizer
DCV’s label recognition feature is powered by Dynamsoft Label Recognizer (DLR). This powerful SDK is specifically designed to recognize meaningful zonal text or symbols within an image, commonly referred to as a ‘Label’ in this context. DLR is ideal for a wide range of scenarios, including recognizing price tags in supermarkets, inventory labels in warehouses, VIN codes on car windshields, driver licenses, ID cards, and much more. With its advanced capabilities, DLR is an essential component for any application that requires accurate and reliable label recognition.
Dynamsoft Document Normalizer
Dynamsoft Document Normalizer (DDN) is a vital component of the DCV system. This powerful SDK is specifically designed to detect quadrilaterals (or “quads”) in images, such as document or table boundaries, and then perform document normalization on the images within those detected quads. Document normalization includes a range of essential functions, such as border cropping, deskewing, perspective correction, contrast and brightness adjustment, and more. The resulting normalized image can then be used for further processing, including Optical Character Recognition (OCR).
Dynamsoft Code Parser
Dynamsoft Code Parser (DCP) is an SDK that extracts meaningful fields from text/bytes, typically used for post-processing results generated by DBR/DLR. On one hand, it provides built-in support for common scenarios. For example, in the AAMVA driver license scenario, DCP receives the decoded PDF417 barcode result from DBR and then parses and extracts information such as driver’s license number, name and gender etc. In the Passport scenario, DCP receives the MRZ text recognized by DLR and then parses and extracts multiple field information such as passport ID, name, date of birth, and expiration date etc. On the other hand, it supports highly customizable parsing rules through template configuration for specific user scenarios.
Dynamsoft Camera Enhancer
Dynamsoft Camera Enhancer (DCE) is an SDK that includes camera control, camera enhancements and basic UI configuration features.
- Camera Control: The camera control features include the selection of the camera, open/close the camera, changing the resolution, etc.
- Camera Enhancements: Advanced features like sharpness filter, sensor filter, enhanced focus, etc. They either improve the quality of camera output or promote the interaction.
- UI Configuration: A build-in camera view is available for users to display and control the video streaming. Additional UI elements can be added to improve the visual effects of the output results of other Dynamsoft products. For example, the barcode decoding result can be highlighted on the camera view.
Key Features
Simplicity with Packable Scenarios
DCV’s simplicity is reflected in the large number of user scenario-based templates built into the SDK. Users can easily complete specific tasks by simply specifying the name of the built-in template when starting to capture. Some commonly used scenes and built-in template names are listed below:
Scenarios | Built-in template |
---|---|
Reading barcodes. | “ReadBarcodes_Default” |
Recognizing text on labels. | “RecognizeTextLines_Default” |
Detecting document borders. | “DetectDocumentBoundaries_Default” |
Detecting and normalize document. | “DetectAndNormalizeDocument_Default” |
By providing these pre-built templates, DCV simplifies the development process and allows developers to quickly and easily integrate these features into their applications. This makes DCV a highly accessible and user-friendly SDK for developers of all skill levels.
Scalability with Pluggable Components
DCV is not a static system. Different business solutions may require different combinations of product modules. With DCV’s template-based approach, users only need to define the tasks and dependencies in the template file according to the specified rules based on their requirements. Once the template is received by DCV, it automatically parses the template, loads the required modules, and executes the corresponding logic. DCV’s modular design allows users to focus on their specific needs without worrying about the internal details of module loading. This means that users can easily distribute their apps with only the necessary modules, resulting in reduced app size and improved performance. The following are some common requirements and product modules that need to be loaded:
Solution Requirements | Required Products |
---|---|
Capture images from a camera. | DCE |
Capture high-quality documents from a camera. | DCE + DDN |
Real-time barcode detection from a camera. | DCE + DBR |
Real-time MRZ recognition from a camera. | DCE + DLR + DCP |
Real-time Driver’s license recognition from a camera. | DCE + DBR + DCP |
Real-time recognition of form fields which include barcodes. | DCE + DDN + DLR + DBR |
Flexibility With Customizable Workflows
DCV’s flexibility is mainly achieved through customizable workflows in the template, which allow developers to configure multiple tasks and their dependencies based on their specific needs. The individual tasks supported by DCV include barcode recognition, text recognition, document detection and normalization, and result parsing. In addition, developers can accomplish more complex tasks by configuring dependencies and conditions between different tasks. If we use “->” to indicate dependencies between tasks, here are some common examples:
Requirements | Task dependencies | Task execution order description |
---|---|---|
Recognize Driver’s license | DCP’s task->DBR’s task | Read the PDF417 barcode => Parse the decoded bytes |
Recognize text around the barcode | DLR’s task->DBR’s task | Read the Barcode => Calculate the rough position of the text and recognize it |
Recognize passport MRZ | DCP’s task->DLR’s task->DDN’s task | Detect passport borders => Recognize MRZ text => Parse the MRZ text |
Overall, the ability to combine different functionalities and configure dependencies in the template makes DCV a highly adaptable SDK for creating custom solutions to meet your specific requirements.
High Performance With Shared Computations
DCV’s high performance is reflected in its ability to support parallel computing for multiple tasks, and to share computing results with the same parameters between different tasks.
DCV comes with a built-in task queue and thread pool mechanism, which allows multiple tasks to be executed in parallel as long as there are no dependencies between the tasks and there are available idle threads to use. By leveraging this mechanism, DCV can ensure that tasks are executed efficiently and without any delays, while also ensuring that resources are used effectively.
For applications that require simultaneous recognition of barcodes and text in images, most SDKs typically recognize barcodes and text independently. This means that image-processing operations such as grayscale and binary conversion need to be performed twice, which can be time-consuming and inefficient. However, DCV takes a different approach by parsing templates and executing processing steps only once for same parameters. This significantly improves efficiency and performance, as the same processing steps can be shared between both barcode and text recognition.
Bidirectional Interactivity with Intermediate Results
DCV enables bidirectional interactivity with intermediate results, allowing users to both retrieve these results during execution and modify them to meet their specific needs. DCV offers efficient and easy retrieval of various types of intermediate results, such as grayscale or binary images, detected lines, and contours, through implementation of the Intermediate Result Receiver (IRR) interface and registration with DCV. Additionally, users can make real-time modifications to intermediate results in callback functions at different stages, and the subsequent execution flow will seamlessly integrate these modifications into the DCV process.
Supported Platforms
Platforms | Languages |
---|---|
Web | JavaScript |
iOS | Swift, Objective-C |
Android | Java, Kotlin |
Windows | C++, C#, Python, Java |
Linux | C++, Python, Java |
macOS | C++, Python, Java |