15 03 16 TiMo talk Adrian Cuzman TheMakingOfMTGScanner

Magic: The Gathering (MTG) is a trading card game
The "traiding" part...
Use the smartphone...
Restrictions/conditions:
• somehow to scan the card using the camera
• all the processing to be done on the device
• get the price of the card from an online source
• work with all cards from 2003 , all 14000+
Image search with OpenCV
OCR search with Tesseract
Input image
Image
Pre-process
(OpenCV)
OCR
(Tesseract)
Fuzzy search
(Lucene)
Card names
(14000+)
devovt choplain
• Supports cards in different languages
Chinese Simplified
French
German
Italian
Japanese
Korean
Portuguese (Brazil)
Russian
• Currency - change the price from USD to any
- a heroku instance is used as a cache for currency values, also the values are cached
on the local device
• Database update
- also the same heroku instance is used to deliver a new card database
as zipped
• Tesseract language files
- the apk is delivered only with the English language file for tesseract, for the
other languages the files are downloaded from the heroku instance
- if all the files are bundled in the apk, it will be> 50Mbytes
• A tutorial was necessary
Over 55k installs - ~150 / day
Changed the name from "MTGScanner" to
"MTG Magic Scanner"
• Export in different formats & save to Google Drive
- plain text, csv, mwDeck, dec
• In app bug report+ feedback option
- get the logs, zip them and attach them to an email;
• Manual search (use keyboard)
- even if the Android designed UI component for search is used, many users
don't see it...
• Decks, inventory, wishlist
- use ORMLite for persistance
- use a mix of Lucene + SQLite for card data
Use a UI KIT
• Implement a solution for old sets
(older than 2003)
• Cloud image search proof of concept
Questions?