- Due to the onset of pandemic in 2019, all of us are now engaged in work/education remotely. Remote examination softwares are in the trend with features like automated submission, noise and object detection, proctoring etc.
- Students in such systems, are generally expected to upload images of their answer scripts, for each of the questions. Due to exam coercion and uploading device limitations (like RAM, camera quality etc.), the answer script images recieved at the evaluator's end may be blurred/shaken. This makes the evaluation process difficult and students may therefore lose deserving marks.
- The proposed system aims at developing model(s) for enhancing such images.
Although digitalisation is in the trend, handwritten examinations are comfortable. There is always a need for handwritten text recognition (HTR) models to automate evaluations. It is also challenging because of the virtually infinite number of ways a letter/word can be written by the very same person. The dataset used in the study is Kazakh offline Handwritten Text Recognition (KOHTR) dataset, which comprises of:
- 3000 handwritten exam scripts
- >140335 image segments
- ~ 922010 symbols
Paper Link: https://arxiv.org/abs/2110.04075
Dataset Link: https://github.com/abdoelsayed2016/KOHTD
Since not all images are blurred or have some distortion in them, we add Gaussian Blur manually. We have used Super Resolution Convolutional Neural Networks (SRCNN) to produce high resolution deblurred image from single low-resolution blurred image. The architecture is depicted below:
The SRCNN architecture has a total of three convolutional layers. First convolution operation has weight matrix of shape c x f1 x f1 x n1 where f1 and c refer to the number of kernels and neurons respectively. Second convolution operation has a weight matrix of shape n1 x 1 x 1 x n2. Here the kernel size is 1 x 1. Final convolution operation has a weight matrix of shape n2 x f3 x f3 x c. Among all those three convolution operations, ReLU (Rectified Linear Units) activations are applied to the first two convolution operations.
- Run the addGaussianBlur.py to add Gaussian blur to all images in the dataset. Make sure the src_dir in the code is replaced with the directory of the images of your dataset.
- Run the deblur.ipynb to produce SRCNN model. More the number of epochs will produce better results.