An Optical Mark Recognizing (Image Processing) desktop application created using C#.Net & Matlab for correcting exam answer sheets filled by students using Computer
- Schools
- Colleges
Optical Mark Recognition is the process of capturing human marked information from physical documents into a digital form through the use of computers often using an Image Processing Library.
The User first loads the physical filled OMR answer sheet into the scanner. He then proceeds to press the 'scan sheet' button, which would generate a digital copy of that image. The user now presses the 'Read OMR Sheet Button'.
The process of OMR sheet detection to bubble detection to answer checking required a very high level of accuracy. In order to address those concerns Matlab was used to verify the process of initial preprocessing and custom OMR sheets were designed to provide maximum bubble detectability.
There were multiple challenges associated with this development. The major challenge was to address the errors that could be introduced either by the scanner or the test takers. If the OMR sheet was scanned upside down and/or slant, it would be very difficult for the application to detect the filled bubbles. Apparently the test taker could have used a light pencil for filling the bubbles and this could also add up to the difficulty.
In order to address these issues, I used geometric quadrant calculations and incorporated them within the flattening phase so that the post processed image was always available as correctly oriented. Now, to address the light pencil problem, I applied a second pre-processing phase on the image to further darken the bubbles. This functionality skyrocketed the detection rates even handling the worst case scenarios to 100% true detection.
Hence, The software is able to:
- Detect answers on upside down OMR sheet
- Detect answers on slant OMR sheet
- Detect answers on lightly filled OMR sheet
The Pre Processing consists of three parts:
-
Pre Processing phase 1 In this phase, the OMR sheet was converted to gray scale image. Two filters were then applied to the gray scale image. The first was Invert filter and second was threshold filter. This image was now supplied for the flattening phase.
-
Image Flattening At this phase quadrant calculations are done. A sub image is extracted which is always correctly oriented. This image is now returned back to the main algorithm for a second round of preprocessing.
-
Pre Processing phase 2 A second preprocessing same as the above is applied once again on the flattened image in order to darken up the light bubbles which the test taker might have filled. The resulting image is now returned back to the main algorithm for answer (i.e. bubble) detection.
Sample Images: