A lightweight neural network project for recognizing handwritten text using the MNIST dataset.
Run the dataset downloader task via:
./gradlew downloadDataset -Pdataset=emnistSwitch to MNIST by using -Pdataset=mnist
The downloaded dataset is stored under app/data
For the finetune dataset variant:
./gradlew downloadFinetuneDataset -Pdataset=emnistSwitch to MNIST by using -Pdataset=mnist
The finetune dataset is stored under app/data
Train the model with:
./gradlew trainModel -Pdataset=emnistSwap to MNIST training by passing -Pdataset=mnist
Model checkpoints are written to app/models
Evaluate the model with:
./gradlew evaluateModel -Pdataset=emnistSwitch to MNIST by using -Pdataset=mnist
Resume training of the model with:
./gradlew retrainModel -Pdataset=emnist -Pepochs=2Swap to MNIST training by passing -Pdataset=mnist
Model must already exist in app/models to retrain it.
Segment an image with:
./gradlew segmentImage -Pimage=<path>
# examples
./gradlew segmentImage -Pimage=images/explain.png
./gradlew segmentImage -Pimage=images/reproduce.jpegPre-process before segmenting an image with:
./gradlew preprocessImage -Pimage=<path>
# examples
./gradlew preprocessImage -Pimage=images/explain.png
./gradlew preprocessImage -Pimage=images/reproduce.jpegRun the language model demo with:
./gradlew demoLanguageModelRun the end-to-end text recognition (defaults to EMNIST):
./gradlew recognizeText -Pimage=<path>Switch to MNIST by passing -Pdataset=mnist
# example
./gradlew recognizeText -Pimage=images/explain.png
./gradlew recognizeText -Pdataset=mnist -Pimage=images/digits.png