This project involves the implementation of a handwriting recognition system using a Convolutional Neural Network (CNN). The system reads images using the opencv-python library and utilizes a model defined in the following code:

Data Preprocessing

The dataset is preprocessed by splitting it into training and testing sets. The images are reshaped to a size of 28x28 pixels, and the corresponding labels are one-hot encoded.

Convolutional Neural Network Model

The CNN model is defined with three convolutional layers followed by max-pooling layers. It concludes with fully connected layers for classification.

Model Training

The model is compiled using the Adam optimizer and categorical crossentropy loss. Training is performed for a specified number of epochs.

Command Line Interface (CLI)

The project includes a CLI for convenient interaction. The CLI usage is stated below:

python recog.py [options]

Options:

--aloud: Outputs recognized words in speech form.
--show-input: Displays processed input image.
--show-sample-data: Displays sample dataset images.

Technologies Used

  • OpenCV-Python: For reading and processing images.
  • Matplotlib: For visualizing data and images.
  • NumPy: For numerical operations on data.
  • Keras: For building and training the CNN model.
  • TensorFlow: As the backend for Keras.
  • Click: For creating a Command Line Interface (CLI).