blinkid / blinkid-ios Goto Github PK
View Code? Open in Web Editor NEWEverything you need to add AI-driven ID scanning into your native iOS app.
Home Page: https://microblink.com/products/blinkid
Everything you need to add AI-driven ID scanning into your native iOS app.
Home Page: https://microblink.com/products/blinkid
Does MicroBlink have ability to request the camera to refocus? If it does have, can you give an example of implementation? Thank you.
Dear Developers,
I'm having trouble with Embedding MicroBlink Frameworks into our framework for a certain project actually. The Issues came from the fact that the Client App which implement our Framework was not able to detect the MicroBlink Frameworks. The error shows as the "Module MicroBlink not found.
Hence, I was wondering if there is other way to Embed the frameworks. In addition, I also have tried to add the Framework Search Path to point to MicroBlink Frameworks, but it was not working also.
Thanks in Advance.
issued 12.10.2015 (that's the date issued it says on the passport, not sure if that means October or December)
reproduced on several iphones. The mrz font is quite thin, is that the issue?
How to support orientation changes? I found this
supportedInterfaceOrientations() -> UIInterfaceOrientationMask { return UIInterfaceOrientationMask.Landscape; }
but i don't know how to use this. And how to change scaning region after orientation change?
I'm trying to add the following block to the swift example:
do {
let ocrRecognizerSettings = PPBlinkOcrRecognizerSettings()
let ocrParcer: PPOcrParserFactory = PPOcrParserFactory()
ocrRecognizerSettings.addOcrParser(ocrParcer, name: "OCR")
// Add the recognizer setting to a list of used recognizer
settings.scanSettings.addRecognizerSettings(ocrRecognizerSettings)
}
And I'm receiving an exception when the camera is displayed with a break point in the low level call stack in the attached screen shot.
Hi,
It seems that recognition of documents like ID Card on black background doesn't work at all. On white background it always performs ok . Any change on that ? I tested on 2.4 / 2.5, same problem, but I a m quite sure that it worked before.
White background sample that works fine (masked for sharing purpose) :
Black background that doesn't work (no recognition from MRTDRecognizer) :
My code for setting the recognizer :
PPSettings *settings = [[PPSettings alloc] init];
settings.licenseSettings.licenseKey = blinkIDapiKey;
settings.metadataSettings.dewarpedImage = YES; // get dewarped image of ID documents
PPMrtdRecognizerSettings *mrtdRecognizerSettings = [[PPMrtdRecognizerSettings alloc] init];
mrtdRecognizerSettings.dewarpFullDocument = YES;
if (unparsedResults) // doesn't work if YES or NO
mrtdRecognizerSettings.allowUnparsedResults = YES;
// Add MRTD Recognizer setting to a list of used recognizer settings
[settings.scanSettings addRecognizerSettings:mrtdRecognizerSettings];
I downloaded the repo and compiling any of the sample projects gives me the following errors:
ld: warning: ignoring file ../../MicroBlink.framework/MicroBlink, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (arm64): ../../MicroBlink.framework/MicroBlink
Undefined symbols for architecture arm64:
I am using Xcode 7. Any suggestions?
Hi, i cannot scan Singapore ID.
I just use the PPSingaporeIDFrontRecognizerSettings
and PPSingaporeIDBackRecognizerSettings
as my settings.
here the sample code:
let singaporeIDFront = PPSingaporeIDFrontRecognizerSettings() settings.scanSettings.add(singaporeIDFront)
see this sample image ID link: here
Hi,
Is it possible to only allow to capture the data if the whole passport was capture, so that the return result will be the passport image with the data.
Thanks
getting this when running the BlinkID-sample from XCode 8.1, iOS 10.1.1
the OCR sample doesn't have this issue
ld: warning: ignoring file ../../MicroBlink.framework/MicroBlink, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (arm64): ../../MicroBlink.framework/MicroBlink
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_PPImageMetadata", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPCroIDFrontRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPEudlRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPUsdlRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPCroIDBackRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPViewControllerFactory", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPMrtdRecognizerSettings", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPMrtdRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPSettings", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPMyKadRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_PPCameraCoordinator", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I'm writing in regards to an error I'm getting.
In the "Getting Started" section, step 4 I'm getting an error when implementing the code.(I've already successfully installed the dependency through cocoapods)
Here's the line of code producing the error.
let scanningViewController: UIViewController = PPViewControllerFactory.cameraViewControllerWithDelegate(self, coordinator: coordinator!, error: nil)
Here's the error
/Users/a.pomales/Desktop/AppleDev/Scanner/Scanner/DetailViewController.swift:120:113: Argument type 'DetailViewController' does not conform to expected type 'PPScanningDelegate'
Any help would be greatly appreciated?
I am trying to use BlinkID since v1.3 and I've had the same issue with v1.4, 2.0 and now 2.1.
I have adapted my code to reflect the updated API as shown in the Getting Started With Swift
I'm not sure if it's related to #21...
I have tried removing and reinstalling the pod.
I have tried pod 'PPBlinkID', :git => 'https://github.com/blinkid/blinkid-ios', :branch => 'master'
and installing 'git-lfs'
I cannot get rid of these errors.
Any ideas?
doesn't scan well unless the barcode is centered, rather than the whole id card
Under the lab condition with evenly distributed lighting, the MyKad address OCR failed to extract the info correctly. We have verified that the problem comes from different devices. The rate of failing has reach to a point where we have to literally scrap the feature and request user to fill in on their own.
For card with address on iPhone 6s:
Is it posible to add 'MicroBlink' into myFramework as a sub-framework and users only need to import myFramework in their project. In other words, myFramework will work as a wrapper for 'MicroBlink'.
May I know why I cannot get the birthdate after scan the MyKad?
keep get nil and make the app crashed.
Thank you
Hello,
How can I check micro blink framework version number?
I am seeing different issues based on the version I am using.
Which is the stable version I can use?
How to dewarp passport? In yours sample apps i saw 'Detector-sample' which dewarp personal id and driver license. For passport just took a image but it doesn't dewarp. Can I do that?
Hi, may I know why after scanning the id card, it wont run this method? i want to get the image from the scanning process.
Thank you
fantastic work guys!
the built-in PPCameraOverlayViewController works great for me. Instead of building my own would it be possible to customize yours a bit more, e.g. set the width/height of the document frame, or edit the scan hint text? Or else, is the code for the PPCameraOverlayViewController available?
maybe i'm not clear on the difference between:
settings.metadataSettings.dewarpedImage = YES
and
eudlRecognizerSettings.showFullDocument = YES
i'm currently using the former, but i guess should be using both? I don't see a corresponding value for usdl. Is that because on the usdl only the barcode is scanned?
I'm using BlinkID in my swift file of ObjC project (using bridging headers)
function signature specialization <preserving fragile attribute, Arg[1] = [Closure Propagated : reabstraction thunk helper from @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> () to @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> (@out ()), Argument Types : [@callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> ()]> of generic specialization <preserving fragile attribute, ()> of Swift.StaticString.withUTF8Buffer ((Swift.UnsafeBufferPointer<Swift.UInt8>) -> A) -> A
If you bundle MicroBlink's resources into a bundle, it effectively 'namespaces' them and prevents them from overlapping with the app's own resources.
Right now, if the app has a resource called IDCard.png (for example), MicroBlink's own asset ends up interfering with it, and inconsistently your app will end up with one or the other resource.
How it can be done: http://www.mokacoding.com/blog/sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts/
Maybe not something to do with much urgency, but similarly to cocoapods, it's worth thinking about doing at some point.
Getting this error when compiling the sample project:
2015-02-26 18:47:57.466 BlinkID-sample[3712:328858] Version is 0.6.0
OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in Mat, file /Users/cerovec/Tools/opencv/modules/core/src/matrix.cpp, line 322
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /Users/cerovec/Tools/opencv/modules/core/src/matrix.cpp:322: error: (-215) 0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows in function Mat
Should read "PPScanningDelegate" not "PPScanDelegate" in section 4 of "Getting started!"
I am using sdk 1.3.0 on XCode 7.2.1. It always returns yes, even if it is pushed on to navigation view controller.
Hi BlinkId Team,
After downloading this app and running into my device it is showing the following errors. approximately i have 12 issues. I am trying to fixe those issues. but i can't . will you please help me on this.
warning: ignoring file ../../MicroBlink.framework/MicroBlink, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (arm64): ../../MicroBlink.framework/MicroBlink
Thanks in Advance.
I am trying to use BlinkID from the Podfile for a Swift project
use_frameworks! pod 'PPBlinkID', '~> 2.1.0'
but I am constantly getting the error
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_PPRecognizerResult", referenced from:
I have tried cleaning the DerivedData folder but still the same error. Any idea?
Hi
I'm testing the Templating Sample bu using the ID card which attached in the projet. but it doesn't seem to work.
Always get the same error as below, seems the location of "ID_DOCUMENT_NUMBER" is not correct or maybe i missed something else.
WTF] buildDateRegex [DateParserFactory.cpp:304] 2016-08-24 11:43:48.653 Templating-Sample[5674:3616329] Unknown date format for date parser!
[W] validateParser [TemplatingRecognitionData.cpp:85] 2016-08-24 11:44:01.027 Templating-Sample[5674:3616330] Required parser 'DocumentNumber' from parser group 'DocumentNumberNew' did not produce result!
[W] validateParser [TemplatingRecognitionData.cpp:85] 2016-08-24 11:44:01.269 Templating-Sample[5674:3616330] Required parser 'LastName' from parser group 'LastName' did not produce result!
[W] validateParser [TemplatingRecognitionData.cpp:85] 2016-08-24 11:44:01.513 Templating-Sample[5674:3616330] Required parser 'Sex' from parser group 'SexCitizenshipDob' did not produce result!
[W] validateParser [TemplatingRecognitionData.cpp:85] 2016-08-24 11:44:01.849 Templating-Sample[5674:3616330] Required parser 'Citizenship' from parser group 'SexCitizenshipDob' did not produce result!
.....
Could you please help me on this ?
Do you have any document to explain how to define the location and dewarpedHeight of ID document ?
thanks in advance for your help.
Could you add support for cocoapods please? It's pretty simple to do. I can pull request to set it up if needed.
Can you please public the v1.4.0 Podspec to CocoaPods? It still shows v1.3.0 as the latest.
Thanks! :)
Hi, may I know when will release or is it will release the iKad recognizer for ios version?
Thank you
In the wiki for getting started with swift the sample code uses this -:
func scanningViewController(scanningViewController: UIViewController!, didOutputResults results: [AnyObject]!)
while copying this gives a compilation error saying all the required function of the PPScanDelegate protocol are not being implemented.
However, changing results type from [AnyObject]! to [PPRecognizerResult]! resolves the issue and the sample works fine. Like below.
func scanningViewController(scanningViewController: UIViewController!, didOutputResults results: [PPRecognizerResult]!)
I think the wiki needs this small change.
I just loaded up the example app and the delegate method didOutputResults seems to never be called. there is no error generated either. The app runs fine and launches the scanningViewController, but then nothing. Running Xcode 7.1 - iOS 9.1 on the iPhone.
Hello BlinkID,
the Getting started with BlinkID SDK page contains an example code which cannot be compiled with library version 1.3.0.
Example code contains this check:
if ([PPCoordinator isScanningUnsupported:error]) {
return nil;
}
but compilation fails with No known class method for selector 'isScanningUnsupported:
. In 1.3.0 the correct code for this check is:
if ([PPCoordinator isScanningUnsupportedForCameraType:PPCameraTypeFront error:error]) {
return nil;
}
Your OCR samples have the results dumped to the console over and over again while the camera catches results. During this time the camera is trying to autofocus and does so several times, giving anywhere from horrible results to decent. Is there an event or a setting to tell the ocr to only return results after the camera has focused and to tell it to stop auto focusing will capturing? Any guidance to capture the best result would be helpful.
thank you!
Hi, I am using OCRRecognizerSettings and i need to scan front
and back
portion of the ID. So, i create two settings for this. One is for front and second is back.
When i added only front
it will scan.
But when i added the two settings which is front
and back
it will have error License key error
here is the logs:
[E] updateRecognizers [MasterRecognizer.cpp:60] 2017-05-03 17:53:24.513742+0800 FlexM_Wallet[970:297612] Multiple settings objects of type 'Generic BlinkOCR recognizer' found. This is not supported! [E] __38-[PPCoordinator initializeRecognizers]_block_invoke_2 [PPCoordinator.mm:314] 2017-05-03 17:53:24.513931+0800 FlexM_Wallet[970:297612] [net.photopay.frame.processing] Failed to initialize master recognizer [E] __38-[PPCoordinator initializeRecognizers]_block_invoke_2 [PPCoordinator.mm:319] 2017-05-03 17:53:24.514698+0800 FlexM_Wallet[970:297612] License error message:
Hi there,
I've been implementing ID verification for driver's licenses. After getting it to work, I'm finding that while front ID scanning doesn't work, I can get all the info I need from scanning the barcode on the back of the driver's license.
Is this expected behavior? Scanning the back of the ID is extremely quick so it's working, it's just odd that front ID scanning doesn't work.
I'm assuming all info is contained in the barcode, but I've only tried a NY state license, and am not sure if it'll differ state to state. It look like the info scanned through the barcode differs state to state so...any help would be appreciated!
Edit: I've also tried the newest version through CocoaPods, front facing scan still doesn't work through my implementation
Is it possible to add custom text on the scan screen? Using PPCameraOverlayViewController
Undefined symbols for architecture x86_64:
"gpumv::scenes::CCWBADISceneFactory::createCCWBADIScene(Refmv::PixelConverter const&, tagErrorStatus&)", referenced from:
mv::JustDewarper::JustDewarper(Refmv::PixelConverter const&, mv::RGBFactors const&) in BlinkIDFramework
"gpumv::scenes::ACSCCWBADISceneFactory::createACSCCWBADIScene(Refmv::AdapContrastDewarpParams const&, tagErrorStatus&)", referenced from:
mv::CvtColorAdapContrastDewarper::CvtColorAdapContrastDewarper(Refmv::AdapContrastDewarpParams const&, mv::RGBFactors const&) in BlinkIDFramework
"gpumv::scenes::GCSCCWBADISceneFactory::createGCSCCWBADIScene(Refmv::PixelConverter const&, tagErrorStatus&)", referenced from:
mv::CvtColorGlobContrastDewarper::CvtColorGlobContrastDewarper(Refmv::PixelConverter const&, unsigned char const_, mv::RGBFactors const&) in BlinkIDFramework
"photopay::StringValidator::isStringValid(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > const&) const", referenced from:
vtable for photopay::CountryCodeValidator in BlinkIDFramework
"typeinfo for photopay::StringValidator", referenced from:
typeinfo for photopay::CountryCodeValidator in BlinkIDFramework
"_iconv", referenced from:
pping::qrcode::DecodedBitStreamParser::append(std::__1::basic_string<char, std::__1::char_traits, std::1::allocator >&, unsigned char const, unsigned long, char const) in BlinkIDFramework
pping::aztec::Decoder::getEncodedData(pping::Refpping::BitArray, pping::ArrayRef, pping::ArrayRef<pping::ArrayRef >) in BlinkIDFramework
"_iconv_close", referenced from:
pping::qrcode::DecodedBitStreamParser::append(std::__1::basic_string<char, std::__1::char_traits, std::1::allocator >&, unsigned char const, unsigned long, char const) in BlinkIDFramework
pping::aztec::Decoder::getEncodedData(pping::Refpping::BitArray, pping::ArrayRef, pping::ArrayRef<pping::ArrayRef >) in BlinkIDFramework
"_iconv_open", referenced from:
pping::qrcode::DecodedBitStreamParser::append(std::__1::basic_string<char, std::__1::char_traits, std::_1::allocator >&, unsigned char const, unsigned long, char const*) in BlinkIDFramework
pping::aztec::Decoder::getEncodedData(pping::Refpping::BitArray, pping::ArrayRef, pping::ArrayRef<pping::ArrayRef >) in BlinkIDFramework
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Can't solve the linkage error. Help me out of this Thanks
BlinkOCR SDK can NOT coexist in the same project/workspace with BlinkID SDK. I'm downloading both SDKs via Cocoapods. The PPCoordinator class on both SDKs are different and the BlinkOCR is recognized first in Xcode over the BlinkID.
Xcode 7 has a new feature called Runtime Sanitization/Address Sanitizer. See here: https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_7_0.html#//apple_ref/doc/uid/TP40015242-SW6
It's a tool which basically keeps track of your use of pointers and alerts you when you've done something wrong (e.g. releasing memory which is still in scope).
When it is enabled, immediately after MicroBlink is initialized, the app exits. It doesn't seem to be exiting with a non-zero exit code though as Xcode does not catch any exceptions or signals.
the microblink sdk is included into the sample project in the form of an embedded framework. Embedded Frameworks apparently only work on iOS8 and up. But you state that blinkid-ios can be used starting from iOS6 and up. Do I miss something?
Showing Recent Issues
ld: warning: ignoring file ../../MicroBlink.framework/MicroBlink, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (x86_64): ../../MicroBlink.framework/MicroBlink
Undefined symbols for architecture x86_64:
"OBJC_CLASS$_PPEudlRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPUsdlRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPMyKadRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPMrtdRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPMyKadRecognizerSettings", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPEudlRecognizerSettings", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPRecognizerResult", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPUsdlRecognizerSettings", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPViewControllerFactory", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPMrtdRecognizerSettings", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPSettings", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_PPCameraCoordinator", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Trying to get my builds tested using CircleCi. They compile and pass locally, but on their server it keeps failing to compile with this error:
❌ Undefined symbols for architecture x86_64
> Symbol: _kPPCustomerFullName
> Referenced from: static Cover.LicenceInfo.initWithUSDLResult (__ObjC.PPUsdlRecognizerResult) -> Cover.LicenceInfo in LicenceInfo.o
❌ ld: symbol(s) not found for architecture x86_64
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
CircleCi has git-lfs installed already, so just to make sure, added this to the circel.yml
file:
dependencies:
override:
# Install git-lfs
- brew install git-lfs
But the test failed with:
Error: git-lfs-1.5.0 already installed
To install this version, first `brew unlink git-lfs`
So its safe to say that the error is not with git-lfs
.
Installed using:
pod 'PPBlinkID', '~> 2.4.0'
Since it compiles locally, is there any dependency that I am missing?
I've downloaded the sample project, and run it on two devices so far. The same build, when run on an iPhone 6, works perfectly and detects the ID card. When I run it on an iPad air, nothing happens. I've tried with different properties, but it never calls the method didOutputResults, nor does it call any other method or output any error. It just sits there, sometimes it shows the dots on the image that signal that it is scanning something, but that's about it.
I don't know how to debug this problem.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.