RTU UI: Implemented a new unified navigation bar; all scanners now include a camera switch button.
Document Scanner:
Added FIT_IN support for cameraPreviewMode.
Added an option to disable automatic cropping.
Image Processing:
New ColorDocumentShadowRemovalFilter capable of removing shadows from documents without damaging text, barcodes, or images.
PDF Generation:
Added a binarization option.
Document Quality Analyzer:
Added an option to explicitly enable/disable by tile processing via ProcessByTileConfiguration.
Text Pattern Scanner:
Added the option optimizeSingleLine to TextPatternScannerConfiguration. Enable this option when scanning
a single line or a single word that is hard to scan reliably. Disabled by default.
Document Data Extractor:
Introduced PersonalId common field type.
Added support for Romanian, Italian, Turkish, and Polish ID cards.
Barcode Scanner:
Added the fpsLimit property to limit the frames per second for scanning. This can be used to reduce CPU usage on low-end devices.
All 1D barcode formats can be configured with a new oneDConfirmationMode which is THOROUGH by default.
Setting it to MINIMAL or NONE could lead to higher recall in difficult scenarios, but could also cause more false positives.
π Improvements:
General:
Improved default camera selection heuristics for devices with multiple cameras.
Added explicit enum definitions for document model configuration options that accept enum values.
Document Quality Analyzer:
Tiling is now enabled by default to reduce peak memory usage.
If the provided configuration is invalid, an error will be returned instead of changing invalid fields to default values.
OCR Engine:
New model with better performance for German diacritics and the Γ character.
Added support for TR, PO, IT, and RO alphabets.
Document Data Extractor:
Reduced the likelihood of reading incorrect values for eye color on German ID cards (e.g., GRUN instead of GRΓN).
Check Scanner:
Support a wider range of USA check formats.
Barcode Scanner:
Clean barcodes (QR Code, DataMatrix, and all 1D formats) are detected faster in single-shot mode and can be detected without a quiet zone.
Improved recognition of DataMatrix codes under challenging conditions.
Significantly improved decoding performance for truncated PDF417 barcodes.
Reduced false-positives rate for Code 128.
π Bug fixes:
General:
Fixed an issue where the grace period of expired licenses was not respected.
Fixed an issue where setting the finder visibility to false in the scanner configuration did not hide the viewfinder.
Fixed an issue where a black screen was shown in case of camera permission error.
Fixed an issue where the front camera and/or external camera was not selected on some devices with multiple cameras.
Document Scanner:
Fixed the Cropping Screen image not being centered horizontally on larger screens.
Classic UI: Fixed the incorrect image being loaded from storage.
RTU UI: Fixed an issue where the scanner went into manual mode after opening the file selector dialog.
RTU UI: Fixed an issue where the underlying view could be scrolled beneath the scanner view on Safari.
RTU UI: Fixed the rotation not being applied to the detected document.
RTU UI: Fixed the incorrect "processing" state when rapidly clicking the shutter button multiple times.
RTU UI: autoRotateImages should now work properly in all cases.
PDF Generation:
Fixed an issue where empty pages were generated for images when resampling was used in certain cases.
Fixed an issue where invalid sandwich PDFs were generated.
MRZ Scanner:
Fixed a rare crash with inverted text.
Document Data Extractor:
Fixed an issue where scanning illegible documents could cause the scanner to return OkButInvalidDocument status.
Check Scanner:
Fixed an issue where scanning was not resumed after being paused.
β οΈ Breaking changes:
Image Processing:
ColorDocumentFilter: Removed unused parameters.
Document Quality Analyzer:
The minProcessedFraction, maxProcessedFraction, minNumberOfRequiredSymbols, and tileSize options are moved into the separate ProcessByTileConfiguration.
Document Data Extractor:
Document type enum values are now static properties of the document type, e.g. AAMVADocumentType is now AAMVA.DOCUMENT_TYPE.
Barcode Scanner:
RTU UI: The scanner objects now accept an entire scannerConfiguration property of type BarcodeScannerConfiguration.
Reduced the number of false-positive Codabar barcodes when scanning in live mode and the barcode is only partially visible.
Removed enableOneDBlurScanner option from common config objects.
The option enableOneDBlurScanner is now disabled by default for UPC/EAN barcodes.
The barcodeFormats property has been replaced by barcodeFormatConfigurations, which allows more fine-grained configuration of each barcode format.
Previous functionality can be replicated as follows: barcodeFormatConfigurations = [ new ScanbotSDK.Config.BarcodeFormatCommonConfiguration({ formats: ["PDF_417", ...] })].
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.
Image Processing:
Filters: The ColorDocumentFilter now works slightly differently by default. To get the previous behavior, set paperWhitening=0 and paperWhiteningBias=64.
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.