Skip to content

RivoLink/text-recognition

Repository files navigation

Text Recognition v1.0.0

A lightweight neural network project for recognizing handwritten text using the MNIST dataset.

Dataset Download

Run the dataset downloader task via:

./gradlew downloadDataset -Pdataset=emnist

Switch to MNIST by using -Pdataset=mnist
The downloaded dataset is stored under app/data

For the finetune dataset variant:

./gradlew downloadFinetuneDataset -Pdataset=emnist

Switch to MNIST by using -Pdataset=mnist
The finetune dataset is stored under app/data

Model Training

Train the model with:

./gradlew trainModel -Pdataset=emnist

Swap to MNIST training by passing -Pdataset=mnist
Model checkpoints are written to app/models

Model Evaluation

Evaluate the model with:

./gradlew evaluateModel -Pdataset=emnist

Switch to MNIST by using -Pdataset=mnist

Model Retraining

Resume training of the model with:

./gradlew retrainModel -Pdataset=emnist -Pepochs=2

Swap to MNIST training by passing -Pdataset=mnist
Model must already exist in app/models to retrain it.

Image Segmentation

Segment an image with:

./gradlew segmentImage -Pimage=<path>

# examples
./gradlew segmentImage -Pimage=images/explain.png
./gradlew segmentImage -Pimage=images/reproduce.jpeg

Image Pre-processing

Pre-process before segmenting an image with:

./gradlew preprocessImage -Pimage=<path>

# examples
./gradlew preprocessImage -Pimage=images/explain.png
./gradlew preprocessImage -Pimage=images/reproduce.jpeg

Language Model Demo

Run the language model demo with:

./gradlew demoLanguageModel

Text Recognition Pipeline

Run 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

About

A lightweight neural network project for recognizing handwritten text using the MNIST dataset.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages