Skip to content

Commit

Permalink
Merge pull request #326 from BlinkID/release/v6.8.0
Browse files Browse the repository at this point in the history
Release/v6.8.0
  • Loading branch information
medvedecrobertmb authored Jun 6, 2024
2 parents 59a4f15 + 335aeb2 commit 0714420
Show file tree
Hide file tree
Showing 41 changed files with 1,720 additions and 732 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ protected void extractLocationsResultsFromVizResult(VizResult result) {
addLocation(R.string.PPDocumentOptionalAdditionalNumber, result.getDocumentOptionalAdditionalNumber());
addLocation(R.string.PPPersonalAdditionalNumber, result.getAdditionalPersonalIdNumber());
addLocation(R.string.PPIssuingAuthority, result.getIssuingAuthority());
addLocation(R.string.PPDocumentSubtype, result.getDocumentSubtype());
DriverLicenseDetailedInfo driverLicenseInfo = result.getDriverLicenseDetailedInfo();
if (!driverLicenseInfo.isEmpty()) {
addLocation(R.string.PPRestrictions, driverLicenseInfo.getRestrictions());
Expand Down Expand Up @@ -278,6 +279,7 @@ protected List<StringResult> getAllStringResultsFromVizResult(VizResult result)
allStringResults.add(result.getDocumentOptionalAdditionalNumber());
allStringResults.add(result.getAdditionalPersonalIdNumber());
allStringResults.add(result.getIssuingAuthority());
allStringResults.add(result.getDocumentSubtype());
DriverLicenseDetailedInfo driverLicenseInfo = result.getDriverLicenseDetailedInfo();
if (!driverLicenseInfo.isEmpty()) {
allStringResults.add(driverLicenseInfo.getRestrictions());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,10 @@ private void extractMixedResults(BlinkIdMultiSideRecognizer.Result result) {
add(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
add(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());

add(R.string.MBDocumentFrontImageBlurred, result.getFrontImageAnalysisResult().isBlurred());
add(R.string.PPDocumentSubtype, result.getDocumentSubtype());

add(R.string.MBDocumentFrontImageBlurred, result.getFrontImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentFrontImageGlareDetected, result.getFrontImageAnalysisResult().isGlareDetected());
add(R.string.MBDocumentFrontImageColorStatus, result.getFrontImageAnalysisResult().getDocumentImageColorStatus().name());
add(R.string.MBDocumentFrontImageMoireStatus, result.getFrontImageAnalysisResult().getDocumentImageMoireStatus().name());
add(R.string.MBDocumentFrontImageFaceStatus, result.getFrontImageAnalysisResult().getFaceDetectionStatus().name());
Expand All @@ -205,7 +208,8 @@ private void extractMixedResults(BlinkIdMultiSideRecognizer.Result result) {
add(R.string.MBDocumentFrontImageCardOrientation, result.getFrontImageAnalysisResult().getCardOrientation().name());
add(R.string.MBDocumentFrontImageCardRotation, result.getFrontImageAnalysisResult().getCardRotation() != null ? result.getFrontImageAnalysisResult().getCardRotation().name() : "null");

add(R.string.MBDocumentBackImageBlurred, result.getBackImageAnalysisResult().isBlurred());
add(R.string.MBDocumentBackImageBlurred, result.getBackImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentBackImageGlareDetected, result.getBackImageAnalysisResult().isGlareDetected());
add(R.string.MBDocumentBackImageColorStatus, result.getBackImageAnalysisResult().getDocumentImageColorStatus().name());
add(R.string.MBDocumentBackImageMoireStatus, result.getBackImageAnalysisResult().getDocumentImageMoireStatus().name());
add(R.string.MBDocumentBackImageFaceStatus, result.getBackImageAnalysisResult().getFaceDetectionStatus().name());
Expand Down Expand Up @@ -294,7 +298,10 @@ private void extractMixedNonEmptyResults(BlinkIdMultiSideRecognizer.Result resul
addIfNotEmpty(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
addIfNotEmpty(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());

add(R.string.MBDocumentFrontImageBlurred, result.getFrontImageAnalysisResult().isBlurred());
addIfNotEmpty(R.string.PPDocumentSubtype, result.getDocumentSubtype());

add(R.string.MBDocumentFrontImageBlurred, result.getFrontImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentFrontImageGlareDetected, result.getFrontImageAnalysisResult().isGlareDetected());
addIfNotEmpty(R.string.MBDocumentFrontImageColorStatus, result.getFrontImageAnalysisResult().getDocumentImageColorStatus().name());
addIfNotEmpty(R.string.MBDocumentFrontImageMoireStatus, result.getFrontImageAnalysisResult().getDocumentImageMoireStatus().name());
addIfNotEmpty(R.string.MBDocumentFrontImageFaceStatus, result.getFrontImageAnalysisResult().getFaceDetectionStatus().name());
Expand All @@ -304,7 +311,8 @@ private void extractMixedNonEmptyResults(BlinkIdMultiSideRecognizer.Result resul
addIfNotEmpty(R.string.MBDocumentFrontImageCardOrientation, result.getFrontImageAnalysisResult().getCardOrientation().name());
addIfNotEmpty(R.string.MBDocumentFrontImageCardRotation, result.getFrontImageAnalysisResult().getCardRotation() != null ? result.getFrontImageAnalysisResult().getCardRotation().name() : "null");

add(R.string.MBDocumentBackImageBlurred, result.getBackImageAnalysisResult().isBlurred());
add(R.string.MBDocumentBackImageBlurred, result.getBackImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentBackImageGlareDetected, result.getBackImageAnalysisResult().isGlareDetected());
addIfNotEmpty(R.string.MBDocumentBackImageColorStatus, result.getBackImageAnalysisResult().getDocumentImageColorStatus().name());
addIfNotEmpty(R.string.MBDocumentBackImageMoireStatus, result.getBackImageAnalysisResult().getDocumentImageMoireStatus().name());
addIfNotEmpty(R.string.MBDocumentBackImageFaceStatus, result.getBackImageAnalysisResult().getFaceDetectionStatus().name());
Expand Down Expand Up @@ -372,6 +380,8 @@ private void extractVisualResults(VizResult result) {
if (!driverLicenseInfo.isEmpty()) {
addIfNotEmpty(R.string.PPDriverLicenseDetailedInfo, driverLicenseInfo.toString());
}

addIfNotEmpty(R.string.PPDocumentSubtype, result.getDocumentSubtype());
}

private void extractMrzResults(MrzResult result) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,10 @@ private void extractMixedResults(BlinkIdSingleSideRecognizer.Result result) {
add(R.string.PPClassInfoIsoNumericCountryCode, classInfo.getIsoNumericCountryCode());
add(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
add(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());
add(R.string.PPDocumentSubtype, result.getDocumentSubtype());

add(R.string.MBDocumentImageBlurred, result.getImageAnalysisResult().isBlurred());
add(R.string.MBDocumentImageBlurred, result.getImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentImageGlareDetected, result.getImageAnalysisResult().isGlareDetected());
add(R.string.MBDocumentImageColorStatus, result.getImageAnalysisResult().getDocumentImageColorStatus().name());
add(R.string.MBDocumentImageMoireStatus, result.getImageAnalysisResult().getDocumentImageMoireStatus().name());
add(R.string.MBDocumentImageFaceStatus, result.getImageAnalysisResult().getFaceDetectionStatus().name());
Expand Down Expand Up @@ -262,7 +264,10 @@ private void extractMixedNonEmptyResults(BlinkIdSingleSideRecognizer.Result resu
addIfNotEmpty(R.string.PPClassInfoIsoAlpha2CountryCode, classInfo.getIsoAlpha2CountryCode());
addIfNotEmpty(R.string.PPClassInfoIsoAlpha3CountryCode, classInfo.getIsoAlpha3CountryCode());

add(R.string.MBDocumentImageBlurred, result.getImageAnalysisResult().isBlurred());
addIfNotEmpty(R.string.PPDocumentSubtype, result.getDocumentSubtype());

add(R.string.MBDocumentImageBlurred, result.getImageAnalysisResult().isBlurDetected());
add(R.string.MBDocumentImageGlareDetected, result.getImageAnalysisResult().isGlareDetected());
addIfNotEmpty(R.string.MBDocumentImageColorStatus, result.getImageAnalysisResult().getDocumentImageColorStatus().name());
addIfNotEmpty(R.string.MBDocumentImageMoireStatus, result.getImageAnalysisResult().getDocumentImageMoireStatus().name());
addIfNotEmpty(R.string.MBDocumentImageFaceStatus, result.getImageAnalysisResult().getFaceDetectionStatus().name());
Expand Down Expand Up @@ -323,6 +328,7 @@ private void extractVisualResults(VizResult result) {
if (!driverLicenseInfo.isEmpty()) {
addIfNotEmpty(R.string.PPDriverLicenseDetailedInfo, driverLicenseInfo.toString());
}
addIfNotEmpty(R.string.PPDocumentSubtype, result.getDocumentSubtype());
}

private void extractMrzResults(MrzResult result) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@
<string name="PPIdCode">ID Code</string>
<string name="PPVersionNumber">Version number</string>
<string name="PPCharacterSet">Character set</string>
<string name="PPDocumentSubtype">Document subtype</string>

<string name="MBRecognitionStatus">Recognition status</string>
<string name="MBFullDocumentImage">Full document image</string>
Expand Down Expand Up @@ -355,11 +356,16 @@
<string name="MBDocumentFrontImageCardRotation">Front image card rotation</string>
<string name="MBDocumentBackImageCardRotation">Back image card rotation</string>

<string name="MBDocumentImageBlurred">Image blurred</string>
<string name="MBDocumentFrontImageBlurred">Front image blurred</string>
<string name="MBDocumentBackImageBlurred">Back image blurred</string>
<string name="MBDocumentFirstSideImageBlurred">First side image blurred</string>
<string name="MBDocumentSecondSideImageBlurred">Second side image blurred</string>
<string name="MBDocumentImageBlurred">Image blur detected</string>
<string name="MBDocumentImageGlareDetected">Image glare detected</string>
<string name="MBDocumentFrontImageBlurred">Front image blur detected</string>
<string name="MBDocumentBackImageBlurred">Back image blur detected</string>
<string name="MBDocumentFirstSideImageBlurred">First side image blur detected</string>
<string name="MBDocumentSecondSideImageBlurred">Second side image blur detected</string>
<string name="MBDocumentFrontImageGlareDetected">Front image glare detected</string>
<string name="MBDocumentBackImageGlareDetected">Back image glare detected</string>
<string name="MBDocumentFirstSideImageGlareDetected">First side image glare detected</string>
<string name="MBDocumentSecondSideImageGlareDetected">Second side image glare detected</string>

<string name="MBAdditionalProcessingInfo">Additional processing info</string>
<string name="MBFrontAdditionalProcessingInfo">Front additional processing info</string>
Expand Down
2 changes: 1 addition & 1 deletion BlinkIDSample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ allprojects {
// versions of libraries that all modules require

project.ext {
blinkIdVersion = '6.7.0'
blinkIdVersion = '6.8.0'
compileSdkVersion = 34
targetSdkVersion = 34
appCompatVersion = '1.6.1'
Expand Down
Binary file modified LibBlinkID-javadoc.jar
Binary file not shown.
Binary file modified LibBlinkID.aar
Binary file not shown.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Add _BlinkID_ as a dependency and make sure `transitive` is set to true

```
dependencies {
implementation('com.microblink:blinkid:6.7.0@aar') {
implementation('com.microblink:blinkid:6.8.0@aar') {
transitive = true
}
}
Expand All @@ -127,7 +127,7 @@ Android studio should automatically import javadoc from maven dependency. If tha

1. In Android Studio project sidebar, ensure [project view is enabled](https://developer.android.com/studio/projects#ProjectView)
2. Expand `External Libraries` entry (usually this is the last entry in project view)
3. Locate `blinkid-6.7.0` entry, right click on it and select `Library Properties...`
3. Locate `blinkid-6.8.0` entry, right click on it and select `Library Properties...`
4. A `Library Properties` pop-up window will appear
5. Click the second `+` button in bottom left corner of the window (the one that contains `+` with little globe)
6. Window for defining documentation URL will appear
Expand Down Expand Up @@ -1356,7 +1356,7 @@ Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
> 2 files found with path 'lib/arm64-v8a/libc++_shared.so' from inputs:
- <path>/.gradle/caches/transforms-3/3d428f9141586beb8805ce57f97bedda/transformed/jetified-opencv-4.5.3.0/jni/arm64-v8a/libc++_shared.so
- <path>/.gradle/caches/transforms-3/609476a082a81bd7af00fd16a991ee43/transformed/jetified-blinkid-6.7.0/jni/arm64-v8a/libc++_shared.so
- <path>/.gradle/caches/transforms-3/609476a082a81bd7af00fd16a991ee43/transformed/jetified-blinkid-6.8.0/jni/arm64-v8a/libc++_shared.so
If you are using jniLibs and CMake IMPORTED targets, see
https://developer.android.com/r/tools/jniLibs-vs-imported-targets
```
Expand Down
43 changes: 36 additions & 7 deletions Release notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Release notes

## v6.8.0

### New Features
- **Glare detection**
- We’ve introduced glare detection to BlinkID, which removes occlusion on document images caused by glare. You can control the strictness of glare detection with three options (relaxed, normal, and strict) to suit your use case.
- Real-time feedback during scanning includes a new UI message to help users position the document correctly and reduce glare.
- **Improved blur detection**
- We’ve raised the threshold for our blur model, making it stricter. This improvement ensures that sharper images are accepted for processing. You can now control the strictness of blur detection with three options (relaxed, normal, and strict).
- Real-time feedback during scanning includes a new UI message to help users position the document optimally for a clear image.
- **Support for extracting the subtypes of US driver’s licenses & ID cards**
- BlinkID now extracts precise information about subtypes of driver’s licenses and ID cards (e.g., conditional driver’s license, learner’s permit, provision, enhanced, etc.). This information is included in the scanning results, allowing you to tailor workflows or processes based on document limitations.
- **Classifier improvements**
- We upgraded our classifier model to prevent double-capturing of the front side of a document, ensuring the front and the back sides are captured correctly. If the back side of a document is not detected, the processing status will return `UnsupportedClass`.
- **Option to anonymize barcode data**
- You can now anonymize specific fields in the barcode results from an identity document, in addition to the anonymized fields already supported in the Visual Inspection Zone (VIZ).
- **Accessibility and UI improvements**
- UI has now been improved to work better with a wide range of system font and UI elements sizes.
### Breaking API changes
- Changes to the `BlinkIdSingleSideRecognizer` and `BlinkIdMultiSideRecognizer` settings:
- renamed `allowBlurFilter` to `enableBlurFilter`
### Minor API changes
- Added a new result member `documentSubtype` in `BlinkIdSingleSideRecognizer.Result`, `BlinkIdMultiSideRecognizer.Result,` and `VIZResult` to include subtype information for US driver’s licenses or ID cards (commercial, provisional, etc.)
- Changes to the `BlinkIdSingleSideRecognizer` and `BlinkIdMultiSideRecognizer` settings:
- added `enableGlareFilter` which is set to `true` by default
- added `blurStrictnessLevel` which is set to `Normal` by default (`Strict`, `Normal`, or `Relaxed`)
- added `glareStrictnessLevel` which is set to `Normal` by default (`Strict`, `Normal`, or `Relaxed`)
- Changes to the `ImageAnalysisResult`:
- renamed `glare` to `glareDetected`
- renamed `blurred` to `blurDetected`
- Changes to the `ClassAnonymizationSettings`:
- `FieldType` array may now be empty when using Builder pattern
#### Bug Fixes
- Fixed data match for Paraguay ID 2023 to cover inconsistencies between the MRZ and Visual Inspection Zone (VIZ)

## v6.7.0

### New Features
Expand All @@ -20,6 +54,7 @@
- This status is triggered once the barcode was not found on the image. This processing status can only occur if the document has the mandatory barcode.
- Added new boolean member `realIdDetectionStatus` to the `ImageAnalysisResult`. If `true`, Real ID symbol is present, `false` otherwise.
- Added new member `documentNumberAnonymizationSettings` to the `ClassAnonymizationSettings` for seamless integration with the document number anonymization feature.
- Deprecated `DocumentScanUISettings`, please use `BlinkIdUISettings`

### Bug Fixes
- Updated internal mapping for Myanmar passports to display nationality as "Myanmarese" instead of "Burmese" on Myanmar passports.
Expand All @@ -31,7 +66,7 @@

- fixed URL of the server performing online license check when it's enabled
- in v9.1.1 the URL depended on the `BUILD_TYPE` property, pointing to production server only when `BUILD_TYPE` was set to `distribute`. However, apparently the `BUILD_TYPE` is not a compile-time property on Android like it's on other platforms and native code, so it was affected by the setting of the app that was integrating the SDK and that caused the SDK to call to a dev server which is unavailable from the external network
- added `android.permission.INTERNET` permission to the manifest of `LibBlinkID`
- added android.permission.INTERNET permission to the manifest of LibBlinkCard
- this permission is needed in order to correctly perform license key validation for licenses that require that

## v6.6.0
Expand Down Expand Up @@ -147,12 +182,6 @@
#### Deprecated Functionality:
- `IdBarcodeRecognizer` is now marked as deprecated. We recommend transitioning to `BlinkIdMultiSideRecognizer`, which not only covers the functionality of `IdBarcodeRecognizer` but also offers additional features.

#### Breaking changes
- Add `shouldShowTorchButton` and `shouldShowCancelButton` to `ReticleOverlayView` constructor.
- Splitting up `Image` class to `Image` and `InputImage`.`InputImage` is to be used as an input to the recognizers. `Image` will be the result of recognizer processing.

#### Bugfixes
- Fixed `Background ANR at jdk.internal.misc.Unsafe.park` that would happen in rare cases

## v6.5.1
- Improved scanning of Bolivia IDs by addressing cases where the expiration date is covered by a signature, allowing the completion of the scanning process.
Expand Down
2 changes: 1 addition & 1 deletion builtFromCommit.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Built from commit 70b0b6218e381450956e41273eefb0354a25d3d1
Built from commit fc0f7c7dce922b28526734398a9336d9bf7b1c86
Loading

0 comments on commit 0714420

Please sign in to comment.