Reviewed security policy and updated to the new and improved wasm-unsafe-eval CSP header standard.
The more comprehensive unsafe-eval exception is no longer required.
Document Scanner:
Can now detect partially visible documents where all four corners are not visible.
Introduced a new PartiallyVisibleDocumentConfiguration object to determine how partially visible documents
are aggregated and tracked. This feature is disabled by default.
Added two new DocumentDetectionStatus values:
ERROR_PARTIALLY_VISIBLE
ERROR_PARTIALLY_VISIBLE_TOO_CLOSE
The DocumentDetectionResult now includes two new properties to indicate the direction towards the center of a partially visible document:
displacementVector
displacement
Barcode Scanner
A new algorithm is used for recognition of 1D symbologies, improving the blurred and distant barcode use cases. This feature is enabled by default, but might be disabled via the enableOneDBlurScanner on low-power devices if needed.
Added a new BarcodeScannerEngineMode: NEXT_GEN_MAX_DISTANCE, which is optimized for scanning from far distances on very high-power devices with a 4K video stream.
Introduced 4K stream support: BarcodeScannerViewConfiguration.enable4kStream. Should be enabled for high-powered
devices and complex and/or distant barcodes. Can cause memory issues on low-end devices. Disabled by default.
BarcodeItem has a new field rawBytesEncodings that contains the precise character encoding information of rawBytes.
BarcodeItem has a new field structuredAppendInfo for messages split across multiple barcodes.
BarcodeScannerConfiguration has a new field accumulationConfig which allows the accumulation of barcodes over multiple frames in live mode.
BarcodeItem has a new field globalIndex to identify a barcode across multiple frames.
MRZ Scanner:
Added a property to MrzScannerConfiguration that allows setting whether crops should be returned. (Default: false).
Document Quality Analyzer:
Added an option (inspectSmalltext property) to detect small text. Ignored by default.
Added cumulativeContrastHistogram and cumulativeTextSizeHistogram for text contrast and text size estimation.
Added orientationConfidence of the document as a new analysis property.
🚀 Improvements
General:
All OCR-based features now benefit from new OCR models that are optimized for speed and accuracy.
Improved error messages when a feature is accessed that is not available in the loaded flavor of the SDK.
The definition of DeepPartial has been improved so that it now requires _type for polymorphic types.
Document Scanner
Increased performance for Document Scanner algorithms.
Improved storage performance and reliability.
PDF Generator with OCR layer now handles non-ASCII characters correctly.
Aspect ratio scores are now symmetrical, and low scores are more consistent.
PDF Generation:
PDF generation now supports binarized images. Binarized images are stored in the PDF with an optimized compression algorithm,
PDF Generator with OCR layer now handles non-ASCII characters correctly.
resulting in extremely small file sizes.
Document Quality Analyzer:
Speed improvements. Note: document quality scores may slightly change for the same input images when compared to the previous version of the DoQA.
Barcode Scanner
Boarding pass document parser now supports up to version 8 of the IATA-BCBP standard.
vCard document parser was improved.
GS1 Composite codes are now processed faster in Scan from Image mode.
MRZ Scanner:
On US border crossing permits, the document number is now returned in the correct field.
Dates in MRZ now also support parsedData correctly.
Text Pattern Scanner:
General speed improvements.
Now supports XNNPACK for faster inference.
OCR-based features:
Improved handling of special characters like umlauts when frame accumulation is used.
🐞 Bug fixes
Document Scanner
Fixed a rare division by zero crash.
Now correctly returns ERROR_TOO_DARK when nothing is detected and the image brightness is below the threshold.
MRZ Scanner
RTU-UI v2: Fixed issue where preset overlay was not shown in some cases.
Fixed a rare division by zero crash.
Fixed an issue causing null to be returned as a confidence of empty fields.
Barcode Scanner:
The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now, all possible codewords are checked.
vCard document parser now correctly processes the FN key as FormattedName.
⚠️ Breaking Changes
General
Adopted a new API design model: Results retrieved from ScanbotSDK scanners are now suffixed with *Result.
Unified scanner view configuration's scanner configurations under *ViewConfiguration.scannerConfiguration.
Removed recognizeURL from various still image scan services. Use our new Image class API to fetch images from URLs.
Image operations (rotate, resize, crop, filter) are now located under the ImageProcessor service (sdk.createImageProcessor()).
Document Scanner
The still image detection function detectAndCropDocument returns DocumentScannerScanResponse,
which contains the original image as well as DocumentScanningResult.
Exposed the more comprehensive and unified DocumentScannerConfiguration to the corresponding classic component
instead of DocumentScannerParameters. The parameter object is now a property of the configuration object.
Renamed DocumentDetectionResult to DocumentScanningResult.
processingMode has been moved from DocumentScannerParameters to DocumentScannerConfiguration.
Deprecated CroppedDetectionResult in favor of DocumentScannerScanResponse.
Removed DocumentScannerViewConfiguration.ignoreBadAspectRatio. Please use DocumentScannerViewConfiguration's
scannerConfiguration.parameters.aspectRatios and scannerConfiguration.parameters.acceptedAspectRatioScore.
RTU-UI v2: Removed the ERROR_TOO_NOISY and OK_BUT_OFF_CENTERDocumentDetectionStatus values.
MRZ Scanner
Removed SimpleMrzRecognizer (createSimpleMRZRecognizer) in favor of the new unified MrzScanner (createMrzScannerEngine).
Added minimumInsets and preferredHeight to ViewFinderConfiguration in order to change its size and location.
RTU-UI: Added the option to insert HTML links directly into camera permission denied screen.
Added pattern grammar to pattern content validation. Selectable grammars are: WILDCARD and REGEX.
Added onComplete callback to InitializationOptions to allow better handling of deferred initialization.
Added option to programmatically cancel RTU UI controllers: await ScanbotSDK.UI.abortScanner().
🚀 Improvements:
Slightly changed ViewFinder default size and positioning in order to accommodate the aforementioned new API.
Slightly improved PDF417 barcode recognition.
RTU UI: Introduction screen is now always shown when showAutomatically is set to true.
RTU UI: Improved Barcode Scanner multi-line text handling.
🐞 Bug fixes:
Disabled Clear All button by default in sheet view of Multi Barcode Scanner.
Fixed niche iOS 16 issue where SIMD was supported but Extended Constant Expressions were not, causing the scanner to freeze.
Fixed a bug for Code 93 in case of stripCheckdigits=false (which is the new default behavior) and in case a check digit was an extension character.
RTU UI: Fixed the value of requiredAspectRatios parameter being ignored.
⚠️ Breaking changes:
Renamed the engine modes NEXT_GEN_AR to NEXT_GEN_FAR_DISTANCE and NEXT_GEN_LOW_POWER_AR to NEXT_GEN_LOW_POWER_FAR_DISTANCE.
They were already optimized to scan from far distance. Now, both have been improved so that they can also scan from a short distance.
Removed live property from Barcode Scanner and Document Scanner configs.
MrzScannerView now returns unvalidated (by frame accumulation configuration) results.
Unvalidated results can be filtered out via the success flag.