This application is designed for visually impaired people that suffer difficulties recognizing face values of cashes. By showing target cash to the camera one by one, the application reads out the face value of the cash on recognition.
This application targets Android mobile devices, with version of Android 5.0 (Lollipop) to Android 12.0 (S).
Image recognition model was implemented using Tensorflow library. Training data was retrieved by taking 20 photos following Korean cashes, respectively.
- 50,000KRW banknote
- 10,000KRW banknote
- 5,000KRW banknote
- 1,000KRW banknote
- 500KRW coin
- 100KRW coin
- 50KRW coin
- 10KRW coin
Two models, binary classifier and label classifier, were generated by training data. Both classifiers accepts array of float32
s, each 3 elements describing normalized RGB values of image data. Outputs of each classifiers are
- Binary classifier
0
: non-cash image1
: cash image
- Label classifier
0
: 10KRW coin1
: 100KRW coin2
: 1,000KRW banknote3
: 10,00KRW banknote4
: 50KRW coin5
: 500KRW coin6
: 5,000KRW banknote7
: 50,00KRW banknote
See noparkee/Capstone-Design for more details.
Mobile application was implemented using Xamarin for Android platform. The application uses image recognition model implemented from above, and voice synthesis service provided by kakao developers.
Project requires an API key for voice synthesis service. Create an app, issue a REST API key <kakao-rest-api-key>
from kakao developers. Then, provide it to the app by storing at the file "MoneyDetector/appsettings.json" as
{
"TTS_API_KEY": "<kakao-rest-api-key>"
}
You can see a demo of the application here. The application recognizes cashes well, and also recognizes the background as non-cash on 00:24.
The project was for COSE489 Capstone Design course, and is no longer maintained.
- Relatively low accuracy on 50,000KRW banknotes, 100KRW coins, 50KRW coins, 10KRW coins.
- Possible solution is more and more training data sets
- Unable to recognize multiple cashes at once
- Possible solution is to use libraries such as OpenCV.
- Unable to use on other platforms
- The application has too many platform-dependent codes, which causes too much overhead using Xamarin framework.
- Camera preview on screen is not fullscreen, which is thought to be a minor problem since the actual users of this application has high possibility of having difficulty to see the screen.
Image recognition model used by the application was implemented by @noparkee