Skip to content

Document Reader SDK 6.1 — February 1, 2022

IMPORTANT changes

  • In this version, we have updated the runner and format of the neural networks (NN) used, so this version is incompatible with resources and/or database from any previous SDK version. Make sure that you update both SDK binaries, resources, and database all together.
  • All NNs now use the same format and the same framework code for using them, that will allow us to integrate new NNs faster and more effectively.
  • Processing speed improvement: processing time is 25-30% less vs previous SDK version.
  • Reduced memory consumption by using delayed load for OCR NN only when they are needed.
  • From this version we have raised C++ dialect support to C++14. This means we will not support older compilers and older Linux versions, that do not support C++14.
  • Full support of ICAO VDS and VDS-NC implemented.
  • Minimum supported mobile versions: iOS - 11, Android - minimum API level 21.

Core SDK

Document detection and crop

  • Fixed issue with incorrect cropping of documents when MRZ is printed too close to the document edge (UZB ID).

OCR

  • Improved OCR recognition quality for Viet Nam by 70%, for Latin alphabet - by 10%.
  • Implemented logic by inserting the "?" character in positions where symbols are missing or recognition probability in result is too low. Before it was filled by "0" or "A", based on the underlying field mask.
  • Added Pashto and Sindhi alphabets to Arabic OCR NN for correct results.
  • Implemented loading of required OCR NN based on a document template on first processing of a specific language. This allows not keeping in memory all NNs when they are not used.

MRZ

  • Added new parsers:
    • Belarus Residence Permit
    • Luxembourg Id Card
    • Saint Martin (French) DL
    • Uzbekistan Passport
    • Zimbabwe Passport
  • Improvements were implemented for better MRZ detection on complex noisy backgrounds, like BW photocopy of some documents. Special parameter processParam.mrzDetectMode implemented, that if set to 1, may improve the results.

Barcode

  • Added new parsers:
    • EU Digital Green Certificate (DGC)
    • Guyana Driving License
    • Guyana Id Card
    • Guatemala Driving License
    • ICAO VDS
    • ICAO VDS NC
    • Jamaica Id Card
    • Nicaragua Id Card
    • Pakistan Id Card
    • Philippines Id Card
    • Sweden Driving License
    • UK PLF
    • Uzbekistan Id Card
  • Updated parsers:
    • AAMWA DL/ID Card
    • Mexico Consular Id Card
  • Fixed issue with incorrect behavior in some rare cases when reading damaged PDF417.
  • Fixed issue with reading PDF417 codes with many rows and columns and small size of element (Egypt ID).

Text data parsing and validation

  • Added conversion of Chinese symbols into Latin using pinyin for Chinese names. This happens only if no Latin field is present already in results.
  • Added capability to extract DOB value from other field value and perform comparison with original field (Poland).
  • Added capability to generate sex field based on the name field (Thailand).
  • Added parsing address value into separate fields like, street, city, county, postal code in all variants for UK DL.
  • Added conversion from authority code to authority name for Belarus.
  • Improved comparison of text field values of the same type but different format from different areas of the document and light sources. For example, Field type: Date of birth, UV: 01301992, Visible: 01/30/1992.
  • Updated country name for MKD: Republic of North Macedonia.
  • Fixed issue with ft_Exam_Date field not converting to date.
  • Fixed issue with converting Islamic dates to Gregorian when the date was incorrectly recognized.
  • Fixed issue with dates conversion to format Y-MM-DD.

Image QA

  • Added capability to detect whether document contains handwritten text instead of printed (Russian Domestic Passport).
  • Improved detection of moiré from display on document image.
  • Resource files are separated for more flexibility.
  • Fixed issue with colorness check.

Authenticity

  • Added new parameter processParam.authSafeMode for enabling mode with milder settings of security checks and adjusting the balance to get less False Negatives. Disabled by default.
  • Added new parameter processParam.authSafeModeSettings for configuring specific security check settings for authSafeMode if enabled. JSON object. More details in documentation.
  • Improved architecture of the hologram/kinegram check functionality to provide better results. Now using NN.

Other

  • Added new eVisualFieldType enum members:
    • ft_Payment_Period_From
    • ft_Payment_Period_To
    • ft_VaccinationCertificateIdentifier
    • ft_First_Name
    • ft_Date_of_Arrival
  • Added new diDocType enum members:
    • dtInvoice
    • dtPassengerLocatorForm
  • Added a new eImageQualityCheckType enum member:
    • IQC_Handwritten
  • Updated structure TDetailsOptical with additional member vds.
  • Implemented new storage format for NNs universal for all kinds of NNs used in product in different modules.
  • Added parameter processParam.returnPackageForReprocess that will allow to receive all result containers in response that are required to reprocess on the server side what was captured on mobile side, for example. Results will include captured images, as well as RFID reading session.
  • Added parameter processParam.documentGroupFilter that will allow recognition of document type from selected groups only. If set, should be a string with a comma separated list of document type groups from diDocType enumeration.
  • Added parameter processParam.delayedNNLoad that will speed up initialization and load NNs in background if set.
  • Added parameter processParam.respectImageQuality that will include image quality status into overall document optical status if set to True. Disabled by default.
  • Improved loading of NNs based on license capabilities. Unnecessary NNs will not be loaded anymore.
  • Improved sorting of the output document pages by photo, MRZ, and document name.
  • Improvements in processParam.config object settings. Now document ID can be set in the form of uuid, like it is seen in BSI TR-03135 XML logs.
  • Updated NN for face detection with improved detection accuracy, size, and speed.
  • For online licenses now logs are always depersonalized.
  • Fixed issue with locating reader libraries in different folder on Linux.
  • Fixed issue with case conversion using processParam.convertCase parameter: conversion is not performed for MRZ, different numbers and dates.
  • Fixed multiple issues with different filters/layers in PDF files when trying to work with images stored inside them. Added support of TIFF and Jbig2 filters in PDF files for processing.
  • Fixed issue with XML serialization that led to significant memory leak if used.
  • Fixed issue with BSI TR-03135 XML log where document series identification parameter "generation" was always 1.
  • Code quality improved with lots of small issues fixed.
  • Documentation updated.

Core RFID SDK

  • Added support for ICAO VDS and VDS NC signature validation using the existing certificate store according to ICAO 9303 8th Edition and ICAO MRTD TR VDS-NC Version 1.1.
  • Added new callback type RFID_NotifyWithContextFunc.
  • Added new exported function for setting callback with context RFID_SetCallbackWithContextFunc.
  • Added new eRFID_ResultStatus enum member:
    • RFID_ResultStatus_CardIsBusy
  • Added new eLDS_ParsingErrorCodes enum members:
    • errLDS_VDS_UnsupportedVersion
    • errLDS_VDS_Issuing_Country_Size
    • errLDS_VDS_Issuing_Country_IncorrectData
    • errLDS_VDS_Signer_Certificate_Size
    • errLDS_VDS_Signer_Certificate_Data
    • errLDS_VDS_Signature_IncorrectData
    • errLDS_VDS_NC_IncorrectData
    • errLDS_VDS_NC_MissingOrIncorrect_Data
    • errLDS_VDS_NC_MissingOrIncorrect_Header
    • errLDS_VDS_NC_MissingOrIncorrect_Type
    • errLDS_VDS_NC_MissingOrIncorrect_Version
    • errLDS_VDS_NC_MissingOrIncorrect_IssuingCountry
    • errLDS_VDS_NC_MissingOrIncorrect_Message
    • errLDS_VDS_NC_MissingOrIncorrect_Signature
    • errLDS_VDS_NC_MissingOrIncorrect_SigAlgorithm
    • errLDS_VDS_NC_MissingOrIncorrect_Certificate
    • errLDS_VDS_NC_MissingOrIncorrect_SigValue
  • Added a new eLDS_ParsingNotifications enum members:
    • ntfLDS_ICAO_Certificate_Subject_NonCompliant
    • ntfLDS_ICAO_Certificate_Subject_CommonNameNonCompliant
  • Added a new eRFID_ErrorCodes enum member:
    • R_FID_Error_NotEnoughData_
  • Added new eRFID_Commands enum member:
    • RFID_Command_CheckVDSData
  • Added new eRFID_Data_File enum members:
    • dftVDS
    • dftVDS_NC
  • Added new eRFID_CertificateType enum members:
    • ctLDS2
    • ctBCS
    • ctBCS_NC
  • Added new enums:
    • eVDS_DocFeatureDefinition
    • eVDS_DocType
  • Added new structures:
    • TRF_VDS_FEATURE
    • TRF_VDS
    • TRF_VDS_NC
  • Fixed issue with PACE with Integrated Mapping when using ECDH brainpoolP320r1.

Desktop API

  • From this version RFID SDK functionality is incorporated inside PasspR40.dll / libPasspR40.so. RFID_SDK.dll / libRFID_SDK.so are still available as separate files for backward compatibility. Incorporating all functionality inside one library allows to avoid the duplication of loaded resources, like master lists and certificates for verification of EF.SOD and VDS.

Desktop web service

  • Linux:
    • Implemented Quick boarding pass and Quick MRZ reading properties handling.
    • Implemented GetRFIDDGRawData method handling.
    • Fixed issue of IsDocumentReady property returning always False.

Hardware support

  • IMPORTANT! New firmware version 22.07. It is recommended to update your 21.x or 22.x firmware series RFID devices to this new version. Fixed issue with returning from suspend mode.
  • Updated support for 3M/Gemalto/Thales devices SDK version 3.7.1.14.
  • Improved IR and UV images capture logic for 7310 devices.
  • Improved UV image color balance in 7028M-13 devices.
  • Fixed issue with device connection regardless of SDK architecture. Before 18MP devices were not connecting at all on x86.

Mobile API

  • Added new property VDSNCData for DocumentReaderResults. The object contains information about vaccination certificate as a Visible Digital Seal.
  • Added property status DocumentReaderResultsStatus for DocumentReaderResults. The object contains information about processing result statuses as enum CheckResult, OpticalStatus and RFIDSessionDataStatus.
  • Added new configuration property isDelayedNNLoadEnabled to the initialization config. Defines whether the DocumentReader delays loading of neural networks.
  • Added new property shouldReturnPackageForReprocess for processParam. When set to true, the rawResults property of the DocumentReaderResults will contain the encrypted containers of scanning results that may be used for later reprocessing on server side.
  • Changed default value for RFIDScenario.baseSMProcedure from RFIDAccessControlProcedureTypeBac to RFIDAccessControlProcedureTypePace.
  • Updated database checksum hash validation from MD5 to SHA256.
  • iOS

    • Changed minimum supported iOS version to 11.
    • Fixed unbalanced call to the dispatch_group_leave that caused a crash upon calling [RGLDocReader.shared initializeReaderWithConfig:] method.
    • Fixed an issue when a camera preview on a DocumentReaderCameraViewController would not change the video orientation correctly if the controller was added as a child instead of being presented.
    • RFIDSessionData has deprecated RGLRFIDSessionDataStatus. The status is available with DocumentReaderResults.status.detailsRFID property.
    • DocumentReaderResults has deprecated overallResult: CheckResult. The status is available now with DocumentReaderResults.status.overallStatus property.
  • Android

    • Changed minimum API level to 21.
    • Changed native NFC tag timeout from 2 sec to 15 sec. Sometimes it could help to read the chip when it was locked during an attempt to read it with the incorrect key.
    • Multithreading moved from AsyncTask to Executors for recognition frame process.
    • Fixed CaptureActivity3 and RfidActivity state after unloading activities from memory. Finish the activity if document reader is not ready.
    • Fixed right-to-left layout for showScanner and startRFIDReader.
    • Fixed issue when user get complete state for incorrect RFID reading session.
    • Fixed issue when running RFID reading for android API 31 and above.
    • Fixed issue with set up of camera frame and aspect ratio.
    • RFIDSessionData has deprecated RFIDSessionDataStatus. The status is available with DocumentReaderResults.status.detailsRFID getDetailsRFID() function.
    • DocumentReaderResults has deprecated getOverallResult() method. The status is available with DocumentReaderResults.status.detailsRFID getOverallStatus() function.

Document Reader Application

  • Added VDS check status display if VDS was scanned. Its value also affects the overall status.
  • RFID related functionality now works via PasspR40.dll instead of RFID_SDK.dll.
  • Fixed issue with reporting log reports on x64 version due to crash.
  • Fixed issue with progress window remains visible after processing is already finished.
  • Fixed issue with RFID Trust PKD certificates option change has no effect.

COM API

  • Added property CheckStatusVDS for getting Visible Digital Seal (VDS) verification status (variant, read only).
  • Added property IsBusy to monitor whether optical scanning & processing or RFID reading is happening (bool, read only).
  • Added method SetDefaultOptions to reset all settings back to default programmatically.
  • Fixed return type for CheckStatusLiveComparison property, now it is VARIANT instead of BOOL.
  • Enums updated.
  • Documentation updated.

Installation packages

  • Windows Desktop API
    • New driver package version 1.8.18.
    • OpenCV version 4.5.3 included and required for running SDK starting from this version.
    • FaceVerificator.dll is not part of the SDK package anymore. To perform face matching you need to install Regula Face SDK (service) separately and do proper configuration.
  • Linux Desktop API
    • Repository with npm packets was updated. If you have used our packages from repository you need to run the following commands before updating to the latest version:
    yum clean all
    sudo rm -rf /var/cache/yum/*

Licensing

  • Added capability to tag transactions to be able to get usage report grouped by tag from our licensing service. These reports will be available on demand. To tag the transaction you need to add "tag": "" pair to the root of JSON request object. You may tag users, departments, customers, etc. to add another dimension to usage analytics.
  • Added capability to use Thales/Gemalto/3M device as a token for SDK licensing (by serial number).
  • Fixed issue with unnecessary call to /getPK endpoint before checking new license availability with /offlineUpdate call.
  • Fixed issue with license update on mobile platforms, where it was not applied after successful update.
  • Fixed issue with logo visibility parameter not applied for hybrid licenses on mobile.
  • Fixed issue with licensing for .wasm module and serial processing of frames from camera in browser.

PKD

  • ICAO PKD master list version 195 included.

Database

  • Fixed issues in multiple (over 110) document templates for better quality results.
  • 248 countries and territories / 10337 documents included.
  • 523 new documents added.
  • For details see the Supported documents list.