-
Notifications
You must be signed in to change notification settings - Fork 98
Using Detector recognizer
Detector recognizer is used to perform a detection of a document and return position of the detected document on the image or video frame.
If you completed Obtaining scanning results guide, you learned that in order to use a specific recognizer, you need to specify Recognizer Settings object in the initialization stage, and collect Recognizer Result object in the success callback.
Here we explain how to use Detector recognizer, it's settings class PPDetectorRecognizerSettings, and result class PPDetectorRecognizerResult to obtain the location of detected object.
Back to "Getting started" guide.
To activate Detector Recognizer, you need to create PPDetectorRecognizerSettings and add it to RecognizerSettings array. When creating PPDetectorRecognizerSettings, you need to initialize it with already prepared PPDetectorSettings. Check the chapter r for more information about available detectors and how to configure them.
You can use the following code snippet to create DetectorRecognizerSettings and add it to RecognizerSettings array:
private RecognizerSettings[] setupSettingsArray() { DetectorRecognizerSettings sett = new DetectorRecognizerSettings(setupDetector());
// now add sett to recognizer settings array that is used to configure
// recognition
return new RecognizerSettings[] { sett };
} Please note that snippet above assumes existance of method setupDetector() which returns a fully configured DetectorSettings as explained in chapter Detection settings and results.
This section discusses how to use MRTD detector to perform detection of Machine Readable Zones used in various Machine Readable Travel Documents (MRTDs - ID cards and passports). This detector is used internally in Machine Readable Travel Documents recognizer to perform detection of Machine Readable Zone (MRZ) prior performing OCR and data extraction.
To use MRTD detector, you need to create PPMrtdDetectorSettings and give it to appropriate recognizer. You can use following snippet to perform that:
PPDocumentDecodingInfo *mrtdInfo = [[PPDocumentDecodingInfo alloc] init];
[mrtdInfo addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:700]];
PPMrtdDetectorSettings *mrtdDetectorSettings = [[PPMrtdDetectorSettings alloc] initWithDocumentDecodingInfo:mrtdInfo];
// with following setter you can control whether you want to detect
// machine readable zone only or full travel document
mrtdDetectorSettings.detectFullDocument = NO;As you can see from the snippet, MRTDDetectorSettings can be tweaked with following methods:
detectFullDocument(BOOL)This method allows you to enable detection of full Machine Readable Travel Documents. The position of the document is calculated from location of detected Machine Readable Zone. If this is set to false (default), then only location of Machine Readable Zone will be returned.
MRTD detector produces PPMrtdDetectorResult objects. You can use isKindOfClass: method to check if obtained PPDetectorResult is instance of PPMrtdDetectorResult class. See the following snippet for an example:
The available getters of PPMrtdDetectorResults are as follows:
- Getting Started with BlinkID SDK
- Obtaining scanning results
- Using Direct Processing API
- Customizing Camera UI
- Creating customized framework
- Upgrading from older versions
- Troubleshoot