How adigashivani/omr-evaluation works
OMR-Evaluation reads a multiple-choice answer sheet image, identifies the paper and bubbles, compares selected bubbles with a CSV answer key, calculates a score, and presents marked results. It offers two entry points: a command-line script and a Streamlit upload interface. The processing stages are embedded in those scripts rather than separated into modules; the graph reflects their documented flow without assuming shared runtime code.
Main entry points: answer.csv Answer key · app.py CLI workflow · streamitapp.py Streamlit workflow
Components 15
User interfaces
- CLI workflow
app.py - Streamlit workflow
streamitapp.py - Score display
app.py - Result display
streamitapp.py
OMR processing
- Image input
app.py - Sheet detection
app.py - Bubble detection
app.py - Answer grading
app.py - Image upload
streamitapp.py - Sheet detection
streamitapp.py - Bubble detection
streamitapp.py - Answer grading
streamitapp.py
Answer data
- Answer key
answer.csv
Other components
- CLI user
- Web user
Connections 16
- CLI user → CLI workflow: runs
- CLI workflow → Answer key: reads
- CLI workflow → Image input: loads
- Image input → Sheet detection: prepares image
- Sheet detection → Bubble detection: warps sheet
- Bubble detection → Answer grading: selects bubbles
- Answer key → Answer grading: provides key
- Answer grading → Score display: scores and marks
- Web user → Streamlit workflow: uploads image
- Streamlit workflow → Answer key: reads
- Streamlit workflow → Image upload: decodes upload
- Image upload → Sheet detection: prepares image
- Sheet detection → Bubble detection: warps sheet
- Bubble detection → Answer grading: selects bubbles
- Answer key → Answer grading: provides key
- Answer grading → Result display: scores and marks