Code to Enhance Card.io so it can recognize Vertical Credit Card Formats from Capital One
This GitHub repository integrates with the existing Card.io open source to allow it to recognize several of the new vertical credit card formats from Capital One. [see image file "Supported COF Cards.jpg" ] This code easily integrates with the existing card.io source and is subject to any issues and limitations of the card.io base functionality.
The architecture for this source is built to intercept card images that are rejected by Card.io and then re-analyzes them with an additional neural processor. When the card can be recognized by the new code, the captured card information is passed back to the normal card.io process and then handled in the normal fashion. Similarly, cards that cannot be processed by the new code are handled in the normal Card.io failed recognition steps. The new neural processor has initially been trained to recognize 4 Capital One vertical credit cards. Sample images for the 4 supported card formats are shown below. A high level process map is pictured in image file "COF Vertical Card process map.jpg" with a more detailed map of the neural recognition process described in the image " Detailed Process Map.jpg":
In addition to the enhanced neural processor, the new code includes credit card definitions file that assists the neural processor. The definitions file describes the characteristics of each known card and where information can found in its layout. The definitions data is used in instances where fonts, colors, and other complicating issues reduce neural processor accuracy. The database allows a developer to updated the system with new card formats and higher accuracy rates without requiring a re-compile of the complete code.
The source also includes optional code to allow a developer to store copies of each scanned card image in the IOS device photo library. These can images can be useful for analysis of failures. Instructions for compiling this code with card.io can be found in the file "Environment Configurations.pdf"
Note: branch structure is subject to change for master release. The dev branch is currently stable.
Current Directory description:
SampleCollector: Prefab card.io iOS project designed to collect frames from the video stream for training or adding new definitions.
android-src: Contains Android specific changes to card.io Android repo.
ios-src: Contains iOS specific changes to card.io iOS repo.
dmz-src: Contains dmz changes for card.io dmz repo.
lib-src: Contains resources for compiling libraries for iOS/Android
prebuilt: Contains iOS/Android WIP projects with dmz changes for development and testing.
tessdata: Precompiled trained data for recognizing capital one format cards with tesseract. Additional trained data can be added here.
Current File description:
Environment_Configurations_iOS.pdf: Contains install instructions for iOS project.
Environment_Configurations_Android.pdf: Contains install instructions for Android project.
Adding_new_card_definitions: Contains instructions for collecting new samples and adding card definitions.
To be added: -Libraries Compile Instructions -Tesseract training instructions