120 likes | 145 Views
Looking for the best Data Matrix SDKs for your application, youu2019ve come to the right place. Letu2019s learn about what is Data Matrix and do a benchmark to find out which SDK is the best. To know more read this PDF or visit blog <br>https://www.dynamsoft.com/codepool/data-matrix-reading-benchmark-and-comparison.html<br>
E N D
What is Data Matrix Barcode? § Data Matrix is a type of two-dimensional code § Encode fifty characters in a symbol that is readable at 2 or 3 mm2 § Data Matrix code can be read with only a 20% contrast ratio § Often used to mark small items like electronic components § Data Matrix is the preferred code in Direct part marking (DPM)
Data Matrix Reading Benchmark and Comparison In the following slides we are going to run a benchmark based on an image data set to find out the best Data Matrix reading SDKs.
Dataset A recent study provides a public dataset to test the performance of reading Data Matrix codes § Dataset - 57 valid images with 112 Data Matrix codes § The images are put into three categories: synthetic, internet and industrial. Synthetic Internet Industrial
Evaluated libraries • Dynamsoft Barcode Reader (DBR, version: 8.8) • Libdmtx (version: pylibdmtx 0.1.9) • Google ML Kit • Apple Vision Framework • Zxing CPP (version: 1.2.0) The runtime settings are set to decode Data Matrix codes only *Check the Code snippets here
Evaluation metrics Performance is evaluated by reading rate and runtime. Reading rate can be achieved by dividing detected Data Matrix codes by total Data Matrix codes in images* Reading rate = Detected Data Matrix codes / Total Data Matrix codes The test is run on a PC device with an Intel i5-10400 CPU and 16GB memory. *More details about evaluation metrics can be found here
Evaluation results Reading rate Reading rate (detected codes number / total codes number) in percentage: Engine Reading Rate DBR 100 libdmtx 86.61 ML Kit 71.43 Apple Vision 40.18 ZxingCPP 18.75
Evaluation results Speed Runtime per image (in milliseconds): Engine Result DBR 229.14 libdmtx 3599.68 ML Kit 35.56 Apple Vision 181.30 ZxingCPP 7.40 Dynamsoft Barcode Reader decodes all the Data Matrix codes while other SDKs cannot and also maintains good balance of reading rate and runtime
How to optimize the performance of DBR With DBR rich parameters, users can customize and optimize for different usage scenarios for the best scanning performance § Some parameters related to decoding Data Matrix are 1. BinarizationModes – LOCAL_BLOCK method can be used to do adaptive thresholding which achieves a better result 2. DPMCodeReadingModes - Enable DPM mode if you need to decode DPM codes *Learn how to use BinarizationModes *Learn how to use DPMCodeReadingModes
How to optimize the performance of DBR 3. DeformationResistingModes – Malformed Data Matrix Codes are difficult to read, you can enable deformation resisting in such cases 4. ImagePreprocessingModes – Some built- in image preprocessing algorithms of DBR can smooth images with low resolution and noise to decode all the codes *Learn how to use DeformationResistingModes *Learn how to use ImagePreprocessingModes
Code snippets DBR Link of template.json ML Kit Apple Vision Zxing CPP
Links Links related to Dynamsoft Barcode Reader Download Offline SDK Get 30-day FREE Trial License Reference links • https://en.wikipedia.org/wiki/Data_Matrix • https://en.wikipedia.org/wiki/Direct_part_marking# • https://www.dynamsoft.com/barcode-reader/parameters/