BlinkID / blinkid-android

Everything you need to add AI-driven ID scanning into your native Android app.
https://microblink.com/identity/identity-document-scanning/
438 stars 153 forks source link

Suggestion on passport recognizer in blinkID android #217

Closed phanikumar560 closed 3 years ago

phanikumar560 commented 4 years ago

Hi Team,

We have below requirements. Scan Passport of all the countries and should return all the field values along with image base64 content. Scan Emirates ID of United Arab Emirates and should return all the field values along with image base64 content.

So we have opted for BlinkID-CustomCombined Sample. If we use passport recognizer in this project scanning itself is not happening. Could you please suggest on this?

Is there any difference between passport recognizer and combined recognizer in performance?

Thanks Phani

matvidako commented 4 years ago

Hi Phani,

PassportRecognizer is a recognizer that expects face image and mrz on a single document side while MrtdCombined recognizer first scans face image and then reads mrz. The sample you're using is designed to support combined case, scanning front side and then scanning back side. As for performance, they should be about the same.

Have you tried using BlinkIdCombinedRecognizer with our default UI? It supports scanning both Emirates ID and passports.

phanikumar560 commented 4 years ago

Hi Team, Thanks for the update. Our project is developed in Kony. So we create .aar files from sample project and integrate with kony. when we tried with the BlinkIdCombinedRecognizer in the sample project it is working fine. But when integrated with main project passport scan is not happening. But in the same place emirates ID is placed scanning is happening. Could you suggest us are we missing any thing while creating aar files?

When we try to use passport recognizer scanning is not happening. When we use the below line in java file passport recognizer is working fine and even when we integrate in our project it is working fine..But here the problem is UI. UI should be like as that of Custom combined sample. ActivityRunner.startActivityForResult(this, MY_BLINKID_REQUEST_CODE, settings);

Please suggest.

Thanks Phani

matvidako commented 4 years ago

Hi,

if you're using BlinkIdCombinedRecognizer make sure that you update to BlinkID 5.5. Older versions do not support passports.

phanikumar560 commented 4 years ago

Hi Team,

I have upgraded to v5.5.0. The same code works for Emirates ID scan.But passport is not scanned when integrated in our application.

Can we use passportRecognizer in BlinkID-customCombined sample app?

Thanks Phani

mparadina commented 4 years ago

Hi @phanikumar560

Do you get any kind of warning message when you try to scan the passport? Also, do you get any kind of exceptions or nothing happens?

Regards, Milan

phanikumar560 commented 4 years ago

Hi,

I didn't get any warning message while using passportRecognizer even in the code. i didnt recieve any warnings r nothing while scanning..

Thanks Phani

mparadina commented 4 years ago

Hi @phanikumar560

Can you please contact us directly at support@microblink.com so that we can inspect the license key that you are currently using in your project? There is a chance that certain rights may not be enabled in your license key, thus resulting in unsuccessful scans with the passport.

Regards, Milan

phanikumar560 commented 4 years ago

Hi Team,

Any update on how to use passport recognizer in BlinkID-CustomCombinedSample app. I am not getting any errors in the application but when we try to scan the passport it is not happening. --------Code Snippet Starts--------

public class ScannerClass extends AppCompatActivity { //private BlinkIdCombinedRecognizer mRecognizer; private PassportRecognizer passportRecognizer; private RecognizerBundle mRecognizerBundle; public static final int MY_BLINKID_REQUEST_CODE = 123; Hashtable<String, String> tempValuesOfPassport = new Hashtable<String, String>(); Hashtable<String, String> param1 = new Hashtable<String, String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // check if BlinkID is supported on the device
    RecognizerCompatibilityStatus supportStatus = RecognizerCompatibility.getRecognizerCompatibilityStatus(this);
    if (supportStatus != RecognizerCompatibilityStatus.RECOGNIZER_SUPPORTED) {
        Toast.makeText(this, "BlinkID is not supported! Reason: " + supportStatus.name(), Toast.LENGTH_LONG).show();
    }
    //mRecognizer = new BlinkIdCombinedRecognizer();
     passportRecognizer=new PassportRecognizer();
    Log.d("mRcognizer", "arr: " + passportRecognizer);

    // bundle recognizers into RecognizerBundle
    // mRecognizerBundle = new RecognizerBundle(mRecognizer);
    mRecognizerBundle = new RecognizerBundle(passportRecognizer);

    ImageSettings.enableAllImages(passportRecognizer);
    //  ImageSettings.enableAllImages(passportRecognizer);

    Intent intent = new Intent(ScannerClass.this, CustomVerificationFlowActivity.class);

    // mRecognizerBundle = new RecognizerBundle(mRecognizer);
    mRecognizerBundle = new RecognizerBundle(passportRecognizer);
    mRecognizerBundle.saveToIntent(intent);
    Toast.makeText(this, "bundle scanned!", Toast.LENGTH_SHORT).show();

    intent.putExtra(CustomVerificationFlowActivity.EXTRAS_BEEP_RESOURCE, R.raw.beep);
    intent.putExtra(CustomVerificationFlowActivity.EXTRAS_INSTRUCTIONS_DOCUMENT_FIRST_SIDE, (Parcelable) CameraType.CAMERA_BACKFACE);
    startActivityForResult(intent, MY_BLINKID_REQUEST_CODE);
    //  BlinkIdUISettings settings = new BlinkIdUISettings(mRecognizerBundle);

    // ActivityRunner.startActivityForResult(this, MY_BLINKID_REQUEST_CODE, settings);

    Toast.makeText(this, "bundle scanned2!", Toast.LENGTH_SHORT).show();

}

--------Code snippet ends------------

It is not scanning the passport and control is not coming to the below function

protected void onActivityResult(int requestCode, int resultCode, Intent data) {}

Please review this and suggest us.

Thanks Phani

culoi commented 4 years ago

Hi @phanikumar560

As Matej mentioned above, CustomCombined will not work with the PassportRecognizer as it is made to work only with CombinedRecognizer, and it is expecting front and the back side of the document. From the passport, we only scan front side.

However, as BlinkIdCombined from version 5.5.0 support scanning of the passport internally, you can use the BlinkIdCombinedRecognizer to scan all passports and EIDA documents.

If you need a new demo license key which enables scanning of the passport from the BlinkIDCombinedRecognizer, please contact us at support@microlink.com or log in to your account on our dashboard and generate a new demo key.

Bes regards and stay safe!

phanikumar560 commented 4 years ago

HI Team,

Thanks a lot for the solution.

We have two screens one for scanning passport and the other for scanning emirates ID.

The problem is can we have to restrict the Emirates ID scan in passport scanning screen and vice versa.

Please provide us solution for this.?

Thanks Phani

i1E commented 4 years ago

Hi @phanikumar560,

But here the problem is UI. UI should be like as that of Custom combined sample.

Instead of using BlinkIdUISettings, you should use DocumentVerificationUISettings to get the same UI as in the Custom combined sample.

phanikumar560 commented 4 years ago

Hi Team, Is there any solution for this issue? https://github.com/BlinkID/blinkid-android/issues/217#issuecomment-654683246

Thanks Phani

i1E commented 4 years ago

Hi @phanikumar560,

you should set the classFilter on the BlinkIdCombinedRecognizer by using BlinkIdCombinedRecognizer.setClassFilter method. ClassFilter is used to filter out documents, based on the document's ClassInfo.

phanikumar560 commented 3 years ago

Hi Team, Could you please provide us the information on the document code of the UAE Emirates ID card & passport.

For Example : String DocumentCode=mrzResult.getDocumentCode().toString();

Just want to confirm that DocumentCode for all emirates IDs will be same and the value is "IL". Could you please confirm? Just want to confirm that DocumentCode for all passport will always start with "P". Could you please confirm?

Thanks Phani

matvidako commented 3 years ago

Hi,

if you just want to check document type, you can use getDocumentType method. For ID it should be set to MRTD_TYPE_IDENITY_CARD and for passport to MRTD_TYPE_PASSPORT.

Or do you need something else?

Regards, Matej

phanikumar560 commented 3 years ago

Hi I don't want to check document type. I Want to get documentCode for UAE emirates ID. When we scanned for some of the UAE IDs it is returning "IL" as a code will that be constant across all UAE emirates ID cards??

Thanks Phani

matvidako commented 3 years ago

Hi,

there are 2 very similar looking but different documents, resident ID card - always has "IL" document code, and ID card - always has "ID" document code.

matvidako commented 3 years ago

@phanikumar560 update: resident ID card can also have "IR" document code.

In general, according to MRTD standard, all letters except V and P are allowed after I so you should double check official documentation for the documents you are scanning.

phanikumar560 commented 3 years ago

Hi Team,

Is there a way where we have to restrict the scanning when other document is placed instead of UnitedArabEmiratesFront and UnitedArabEmiratesBack ID cards just like the old UnitedArabEmiratesFrontRecognizer & UnitedArabEmiratesBackRecognizer does?

We felt getting the documentCode and comparing with "IL" will solve our purpose.. So we just need documentCode values for only UnitedArabEmiratesCard value only.??

If not could you please provide us any unique value from MRTD recognizer results so that we can go ahead with it?

Thanks Phani

eddieAvdg commented 3 years ago

Hi @phanikumar560

You can use ClassFilter to decide which documents you want to scan. Please take a look at the documentation You will be able to filter documents by country, region and document type.

Regards, Edhem

anjapenic commented 3 years ago

Hello @phanikumar560,

Since this issue is inactive, we’re closing it. If you need any further assistance feel free to open a new issue or contact us at support@microblink.com.

Regards, Anja