Online user interface, in an easy to access Colab notebook format
QuickOCR was built to help Charitable Analytics International leverage recent advances in deep learning and optical character recognition in order to digitize health records, quicker.
Charitable Analytics International takes images of clinical logbooks sent from the field and is developing Meza, a platform to digitize the logbooks in order to help NGOs streamline the delivery of much-needed supplies to health clinics, as well as schools and refugee camps. Meza's accuracy for optical character recognition is currently around 35%. QuickOCR is an easy to customize model to help increase Meza's accuracy. Ultimately, we hope to help Meza decrease operational costs as well as ensure judicious resource allocation to those who need it the most!
What it does
QuickOCR's online user interface is an easy to access Colab notebook that:
- Walks a user through all steps of digitizing input health records, from importing data to training and validating the model to obtaining predictions on image sets of interest.
- Allows users to upload their own training data. QuickOCR's model was trained on four datasets: (1) MNIST (70,000 labelled handwritten digits), (2) SVHN (600,000 house numbers from Google's Street View), (3) ImageNet (14 million images with bounding boxes), and (4) around 5,000 labelled images provided by Meza. As Meza grows and collects more labelled health records, these can be uploaded as additional training data, which will improve QuickOCR's accuracy.
- Allows users to customize their model architecture.
QuickOCR's user interface
How we built it
QuickOCR's model is a custom 32-layer CNN developed using transfer learning on a ResNet CNN. We used Colab's free GPU compute to train the model. The QuickOCR user application was written in Python using various libraries (Pytorch, Numpy, Pandas, scikit-learn, and fastai). We chose to use Pytorch, a flexible deep learning library, over TensorFlow to leverage the dynamic computation which restricts the freedom of the compiler to optimize, but allows our users to debug and experiment with greater ease, and hopefully will make Meza integration easier for Charitable Analytics International.
What we learned
We learned a lot about convolutional neural networks, optical character recognition, and challenges in digitizing handwritten text. Conversations with Charitable Analytic's mentors also helped us learn a lot about Meza's pain points, which we've summarized here!
What's next for QuickOCR
We'd love to work together with Charitable Analytics to help them implement QuickOCR to improve Meza's accuracy. We'd also love to work together with other NGOs to guide them through the process of building, training, and deploying their own models!