/whiteboard-captioning

An approach to handwriting recognition using individual Bézier curves.

Primary LanguageJupyter NotebookMIT LicenseMIT

Whiteboard Captioning

This project was developed as part of my final year MEng Computing degree project at Imperial College London (thesis). It explores an approach to handwriting recognition that leverages dynamic data from stylus or fingertip movements, and introduces two Bézier curve feature sets for the transformation of stroke points.

Prerequisites

Before you begin, ensure you have installed the following:

Getting Started

Download the IAM-OnDB dataset. Save the ascii, lineImages and lineStrokes directories under the backend/datasets/IAM folder within the repository.

Once done, ensure that you have navigated (cd) into the root of the repository.

To install all dependencies, run:

  pip install -r requirements.txt
  cd frontend && npm install
  cd ..  # Make sure to return to the root directory after installing frontend dependencies.

To ensure all start-up scripts are executable, run:

  chmod +x /backend/extract.sh   
  chmod +x /backend/start.sh 
  chmod +x /frontend/start.sh   

To extract and preprocess all data required for the application, run:

  ./backend/extract.sh 

To start the backend, run:

  ./backend/start.sh 

To start the frontend, open a new terminal session and run:

  ./frontend/start.sh 

Open your favourite browser, and go to http://localhost:3000.

Demo

Handwriting Recognition:

writing

Fitted Bézier Curves:

bezier

License

This project uses the following license: MIT