InkWave

Overview

InkWave is an advanced API designed to convert handwritten text from an image into digital text. The process involves three main stages: First, a Computer Vision (CV) model transcribes the handwritten content into digital text. Next, the text undergoes cleaning and formatting through a Natural Language Processing (NLP) model. Finally, the text is passed through a Large Language Model (LLM) to reformat and restore the original structure of the content, ensuring the final output is as close to the intended format as possible.

Key Features

  • Handwriting Recognition: A robust CV model is used to accurately recognize and transcribe handwritten text from images.
  • Text Cleaning and Formatting: The transcribed text is cleaned and formatted using an NLP model to remove any inconsistencies or errors.
  • Text Restoration: An LLM is used to reformat the cleaned text, restoring the original structure and style of the handwritten document.
  • PDF Export: The final output can be exported as a well-formatted PDF document, making it easy to share and use the transcribed text.

Technologies Used

  • PaddleOCR: A powerful tool for Optical Character Recognition, used to transcribe handwritten text from images.
  • OpenAI API: Leverages GPT models to reformat and restore the structure of the text after initial transcription and cleaning.
  • Natural Language Toolkit (NLTK): Provides tools for text processing and cleaning to ensure the final output is free of errors.
  • Flask: A lightweight web framework used to build and serve the InkWave API, enabling seamless integration into other applications.

Demo

Below is a demonstration of the InkWave API in action. The demo showcases the process of uploading an image with handwritten text, the API's conversion of the image to digital text through OCR, the cleaned and formatted text using NLP, and the final AI-enhanced output.

Image Input
Handwritten Input

Original Handwritten Image

OCR Result
                  Basic Notes
                  Anng
                  10/9/12
                  StudyTips
                  Prepare before class
                  reicw nots from last class
                  look through chaer to wnderstard basiideaof
                  this class
                  May tke R0-3o mns but makes a buge differee
                  When in doubt, write it down
                  Pont wste evoythng though Main Pomts Main ldeas
                  Dont spend too long decdng F you should Wredown
                  Thin your notes
                  Don+wrk evoythngLeawe outwords
                  use abbreyiations-include a key of speciFi<-for-
                  this lecture abbreviatrons.g.A lectre about
                  Kmy Hery Vll wll requirc you t repeat his name
                  several tmes.nstad of wnty t out each
                  Hmemake a no+Km HenyVl=HOfthat
                  woul be confusedw Kmg Hory Vllabbrerat
                  it asKg HeryVl=8
                  nnow your prof
                  usethe nok-taky method that wl besthele
                  yow wth this particular prof's lectres
                  A more ocgaoiz prof works well wth the
                  Cornell style.usethe not-takn methoc
                  fc vsua leaners for a prof that jumps
                  arou an returns t pcous ponts
                  Show the prof ye nots aActhe first
                  lectre and ask if you are hithng man ponts.
                
NLP Processed Result
                  Basic Notes
                  Anng
                  10/9/12
                  Study Tips
                  Prepare before class
                  review notes from last class
                  look through chapter to understand basic idea of
                  this class
                  May take 20-30 mins but makes a huge difference
                  When in doubt, write it down
                  Don't waste everything though. Main points, main ideas
                  Don't spend too long deciding if you should write down
                  Thin your notes
                  Don't write everything. Leave out words
                  use abbreviations - include a key of specific abbreviations for
                  this lecture. E.g., A lecture about King Henry VIII will require you to repeat his name
                  several times. Instead of writing it out each time,
                  make a note: King Henry VIII = KH8.
                  That way, it won’t be confused with King Henry VII. Abbreviate
                  it as King Henry VIII = 8.
                  Know your prof
                  use the note-taking method that will best help
                  you with this particular prof's lectures
                  A more organized prof works well with the
                  Cornell style. Use the note-taking method
                  for visual learners for a prof that jumps
                  around and returns to previous points.
                  Show the prof your notes after the first
                  lecture and ask if you are hitting main points.

                
AI-Enhanced Result
                  Basic Notes
                  Anna
                  10/9/12
                  Study Tips
                  - Prepare before class
                    - Review notes from last class
                    - Look through chapter to understand basic idea of this class
                    - May take 20-30 mins but makes a huge difference
                  - When in doubt, write it down
                    - Point: write everything through Main Points Main Ideas
                    - Don't spend too long deciding if you should write down
                  - Thin your notes
                    - Don't write everything. Leave out words.
                    - Use abbreviations - include a key of specific-for-this lecture abbreviations. e.g., A lecture about King Henry VIII will require you to repeat his name several times. Instead of writing it out each time, make a note: King Henry 
                  VIII = H8. For that would be confused with King Henry VII, abbreviate it as King Henry VIII = 8.
                  - Know your prof
                    - Use the note-taking method that will best help you with this particular prof's lectures.
                    - A more organized prof works well with the Cornell style. Use the note-taking method for visual learners for a prof that jumps around and returns to previous points.
                  - Show the prof your notes after the first lecture and ask if you are hitting main points.
                

Explore the source code on GitHub:

GitHub Repository