An android app for recognizing persian numbers with Tensorflow and android studio written in kotlin
Number 1 | Number 3 | Number 4 |
---|---|---|
![]() |
![]() |
![]() |
Just clone the project.
If you want to build your own image classifier you shoud install Tensorflow on your pc furthermore you need your own dataset. Note: python (version 3.+) required.
this command are for windows users:
C:\> pip3 install --upgrade tensorflow
To install the GPU version of TensorFlow, enter the following command:
C:\> pip3 install --upgrade tensorflow-gpu
Installing with Anaconda:
C:> conda create -n tensorflow pip python=3.5
C:> activate tensorflow
(tensorflow)C:> # Your prompt should change
(tensorflow)C:> pip install --ignore-installed --upgrade tensorflow
To install the GPU version of TensorFlow, enter the following command (on a single line):(tensorflow)C:> pip install --ignore-installed --upgrade tensorflow-gpu
for more help visit this website.
Flow of the app is pretty simple:
The app consists of two main components:
MainActivity
which is responsible for taking a photo.ImageClassifier
which classifies the photo.ImageClassifier
properties:
inputName
- the name of the classifier's input (the photo pixels goes in there),outputName
- the name of the classifier's output (the results can be found there),imageSize
- the size of the photo,labels
- the list of the labels (in our case "hot" and "not"),imageBitmapPixels
- the array with bitmap pixels (int values before normalization),imageNormalizedPixels
- the array with normalized pixels,results
- the list with the results,tensorFlowInference
- the TensorFlow API object (which is used for inference).For classifying photos the app is using retrained MobileNet model. The model can be found inside the assets
folder together with the labels file.
Before classification the photo needs to be prepared to fit the input of the classifier which is 224x224 pixels. Because of that the photo is resized and cropped which is happening inside the ImageUtils
.
Prepared photo is passed to the ImageClassifier
. The class responsibilities are as follows:
preprocessImageToNormalizedFloats()
method.tensorFlowInference.run(arrayOf(outputName), ENABLE_LOG_STATS)
tensorFlowInference.fetch(outputName, results)
The results are then passed to the MainActivity and shown on the screen (including probability).
Special thanks to @makorowy
Easy-to-use cryptocurrency trading strategy simulator and backtester
Computer vision and Deep learning
A collection of ML related stuff including notebooks, codes and a curated list of various useful resources such as books and softwares. Almost everything mentioned here is free (as speech not free food) or open-source.
Multi-class confusion matrix library in Python
Makeup with Deep Learning, Apply different hair/lipstick color on your face! (WebApp)
Android Persian Calendar / تقویم فارسی اندروید
🇮🇷 PrettyPersianNumbers is an Android library for converting a number to word for Persian/Farsi language written in Kotlin
YASAN Development Kit for Android.