The purpose of this project is to build an app for users to be able to take pictures of Columbian or Thai paper bills and the app should be able to differentiate the two and extract key information about the bill. Currency can be differentiated by the writing or symbols present on the bill. The application has three parts: an android app for front end UI (user interface), a back end for image processing using Python script, and a server that interacts with both the back end and the app. To achieve our project goals, we will use several image processing techniques to preprocess the image, segment the image into meaningful regions, and extract and process features within these regions. The final product is an Android application that allows the user to take an image of a bill and display the country, denomination, and conversion to USD of the currency back to the user.
Used Java/Android Studio to develop the main UI for the app
Also implemented the camera functionality and load image from gallery functionality
Created functions to convert jpg image on phone into base64 string that can be sent to external server via an HTTP POST request
Created backend on external server using Flask
Server decodes the base64 string it receives and passes the image through image processing and machine learning algorithms
Server extracts the currency type, currency denomination, and conversion to USD which it sends back to the app to be displayed to the user
Experimented with different implementations of kNN to assist with image classification
Below is the final report my group put together for the project and a brief video outlining what the app looks like when in use.