Testing the native and the web api
Nothing completed :(
Sending the photo to the backend to crunch the numbers
OCR in progress
It took about 3 seconds to extract this data :D
Verifying facial expression
Hooray, your contract is validated
The recent improvements in computational power inspired us to do a really fast and ingenious solution to identify people and sign contracts remotely.
What it does
It identifies and recognizes text fields from national identity card and matches the photo from that document with a selfie that's taken before doing the final step of the contract.
How we built it
We've written a small opencv powered algorithm that is able to identify a document card in a scene and do a perspective correction on it. We then proceed to identify the text fields using some morphological operations feeding those text areas to the tesseract api that gives us raw text data. By processing the Machine Readable Zone we're able to extract most of the information that's needed. By doing some simple string manipulation we identify the rest of the needed fields.
We've then proceeded to wrap the said C++ executable in a
node.js so that we can easily access it from our client platforms (Android, iOS) - web coming soon ;)
To eliminate most of the issues and exploits that come with image processing, we're asking the user for various random face expressions that we're matching against the image in the user's ID card. We're also doing a 'two-factor' like auth by sending the user a confirmation email that he has to open before finishing his order.
If everything goes well during those steps and we really think it's you, you're presented with a copy of your contract while also emailing you a copy of your invoice.
Challenges we ran into
Image processing algorithms may give funny results in non-ideal scenarios.
Accomplishments that we're proud of
Being able to put it all together in 24h
What we learned
More like, what computers learned ;)
What's next for MegaDetector
A really deep nap before going back to teaching machines to sign contracts.