130 likes | 147 Views
<br>PDF417 is a stacked linear barcode format used in a variety of applications such as transport, identification cards, and inventory management. We can find it on a boarding pass, driveru2019s license, patient wristband, etc.<br>To know more read the doc or visit blog<br>https://www.dynamsoft.com/codepool/pdf417-reading-benchmark-and-comparison.html<br>
E N D
What is PDF417 barcode? PDF417 is a stacked linear barcode format used in a variety of applications such as transport, identification cards, and inventory management, most commonly found on a boarding pass, driver’s license, patient wristband, etc. PDF417 on a US driver’s license: § A PDF417 has five parts: start pattern, left row indicator, data codewords, right row indicator and stop pattern.
PDF417 Reading Benchmark and Comparison In the following slides we are going to run a benchmark based on image data set to find out the best SDKs for reading PDF417.
Dataset A recent study provides a public dataset using semantic segmentation to detect barcodes § Dataset - 921 real images and 30,000+ synthetic images with different barcode types (Code128, EAN13, DataMatrix, Aztec, QR, PDF417, and many more) § Benchmark is run on real images with readable PDF417 § Final PDF417 subset contains 78 images with 88 PDF417 codes on bottles, boarding passes and scanned documents
Evaluated libraries § Dynamsoft Barcode Reader (DBR iOS, version: 8.8) § Commercial SDK A (version: 6.10.0) § Google ML Kit § Apple Vision Framework § ZXing Objective-C (version: 3.6.4) The runtime settings are set to decode PDF417 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 PDF417 codes by total PDF417 codes in images* Reading rate = Detected PDF417 codes / Total PDF417 codes The test is run on an iOS simulator. The host has 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 Result DBR 92.05% ML Kit 63.64% Commercial SDK A 52.27% Apple Vision 48.86% ZXingObjC 27.27%
Evaluation results Speed Runtime per image (in milliseconds): Engine Result DBR 466.29 ms ML Kit 126.44 ms Commercial SDK A 1380.24 ms Apple Vision 349.85 ms ZXingObjC 302.18 ms Dynamsoft Barcode Reader has the highest reading rate and its speed is fairly good. This is only when it uses its default settings.
Further optimize the performance of DBR With DBR, reading rate can reach 100% if speed is sacrificed a little § Some parameters can be used so that DBR can read the failed images 1. ImagePreprocessingModes JSON template to use this mode: Some images have a lot of noise. IPM_GRAY_SMOOTH can be used to reduce noise. • This is similar to median blur in OpenCV.
Further optimize the performance of DBR 2. Scan Region • Some images have low contrast and it is difficult to locate the barcodes • Scan region can be set so that DBR can locate the barcodes in an interactive scenario *Learn more about how to set up a scan region here
Code snippets DBR Commercial SDK A: Apple Vision:
Code snippets ML Kit ZXing Objective-C:
Links Links related to Dynamsoft Barcode Reader Download Offline SDK Get 30-day FREE Trial License Reference links • https://en.wikipedia.org/wiki/PDF417 ↩ • https://www.dynamsoft.com/barcode-reader/parameters/ ↩