OMR
- Automation , Computer vision
- May 4, 2025
This project automates the evaluation of Optical Mark Recognition (OMR) answer sheets using Python. Leveraging computer vision techniques and OCR, it reads scanned OMR forms, detects marked responses, and computes total scores. The processed results are exported in a structured CSV format.
Methodology
Image Preprocessing (OpenCV)
- Convert scanned OMR sheets to grayscale
- Apply thresholding, contour detection, and perspective transformation
- Identify answer bubbles and align sheets uniformly
Answer Detection Logic
- Locate and analyze filled bubbles via pixel intensity
- Map detected answers against the correct answer key
- Compute individual scores based on matching responses
OCR for Student Details (Tesseract)
- Extract student names or roll numbers from pre-defined fields
- Convert printed or handwritten identifiers into digital format
Result Compilation
-
Combine student identifiers with score data
-
Generate structured output in
.csvformat with fields like Name, Roll No., and Total MarksKey Features
-
Fully automated processing of scanned answer sheets
-
High-accuracy bubble detection using OpenCV
-
OCR-enabled student detail extraction with Tesseract
-
Real-time score computation
-
Exports results in clean tabular CSV format
Outcome
-
Accuracy: High detection precision in cleanly scanned sheets
-
Efficiency: Reduces manual checking time drastically
-
Output Format: CSV file with all students’ scores and identifiers
Roadmap
-
Add GUI for ease of use
-
Support batch uploads for mass evaluation
-
Integrate error correction for skewed or incomplete scans
-
Use deep learning models to enhance bubble recognition accuracy
You can find the complete source code and documentation for this project on GitHub: TestCheckerOMR