- Planning & Setup
- Explore existing
demo_omr.pyto understand layout. - Create implementation plan.
- Explore existing
- Synthetic Data Generation
- Refactor
demo_omr.pyfor reusability. - Create
src/generate_test_image.pyto create a filled OMR sheet image mimicking the PDF layout. - Verify the generated image matches constraints (dimensions, bubble positions).
- Refactor
- Documentation
- Create comprehensive
README.md.
- Create comprehensive
- OMR Scanner Implementation
- Create
src/omr_scanner.py. - Implement image loading and preprocessing (grayscale, thresholding).
- Implement ROI extraction (finding the specific question blocks).
- Implement bubble detection logic (finding marked bubbles).
- processing logic for Roll Number.
- processing logic for Subject Questions.
- Create
- Data Export & Analysis
- Implement CSV export of scanned data.
- Create
src/analyze_results.pyfor basic analysis (scoring, stats).
- Verification
- Test scanner with synthetic images.
- Verify accuracy and handle edge cases (empty bubbles, double marking).