-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Mobile Currency Reader
Overview
This mobile currency reader project intends to make tasks such as recognizing the values of different dollar bills easier for visually impaired people. The application will first prompt users to capture an image of the holding bill, and the captured image will be transferred to the server. Then the server will process the image in order to recognize the value of the bill. Once the value of the bill is determined, the server will select the appropriate audio file to play to the users.
It is important to note that we designed the project with the assumption that the user is aware that the bank note is a dollar bill, and has the ability to get hold of an Android phone whether through their own power or the help from others.
Pre-requisites
Android SDK starter package
Android Plugin for Eclipse - Android emulator for testing the code.
See useful links for intros on how to install these.
Technical Overview
Since Android is one of the most popular mobile phones nowadays, our group decided to code the mobile currency reader project primarily for Android platform.
Below is a simple description of the application’s major functions:
The Android phone captures an image of a bank note and writes it to buffer.
The captured image is then sent to the server.
The image is processed for recognizing the value of the bill
The result of image recognition is used to select corresponding audio file.
The chosen audio file is sent back to the phone and played to the user.
Acquiring Image from Phone and Writing to Buffer
The first step in the application is to acquire image of the bill. For our prototype, the user interface is fairly straight-forward - allowing the user to take a snap shot of a Dollar bank note. At first, we simply downloaded the code for a simple Camera Demo off the internet (see below). We soon encountered the problem that we did not know what the simulator is taking a photo of, since the simulator does not use the web cam as the actual camera of an android phone. Once the user takes the picture, the Java application turns the image into a byte array.
Recognizing the Denomination
The server matches the features of submitted images against a library of stored features of different denomination and create a score for each comparison. It will then return the comparison with the highest score. The comparison is done using the scale-invariant feature transform algorithm (SIFT). We used only object recognition and robotic mapping and navigation from SIFT in this project. These basically make all the images we take in have the same orientation, scale and rotation. Note that this takes care of possible problems such as viewing the banknote from an angle, or viewing a crumpled bill.
Outputting Text to Audio Files
Once the server determines the denomination of the bill, the next thing to do is to convert the result into audible files. Currently, we create actual audio files for each denomination of bills. This means that once the server finishes recognizing the denomination, it will then select the corresponding audio file and play it to the user.
Future Improvement
Currently, it is built primarily for Android users. In the future, it can be modified to adapt with different mobile platforms.
The application now only supports English and one voice. Support to multiple languages and various voices would be valuable to the growth of the project.
Apprarently, even though the application can detect the value of the different dollar bills, it cannot distinguish between a genuine and a fake banknote.
Useful Links
Android API
Camera Demo
Scale-Invariant Feature Transform