Agentic OMR for Erkan Ulu Middle School
Answer selection extraction from real exam sheets using an agentic pipeline: YOLO for answer‑row localization, a custom‑trained open‑source vision‑language model served via vLLM for option recognition, and strict post‑processing. Fully integrated into the school portal.
Project Video Coming Soon
See the agentic OMR system in action
How It Works
From a simple photo to instant, accurate results—automatically
Snap & Upload
Teachers take photos with their phones or scan answer sheets—no special equipment needed
AI Reads Everything
Vision AI detects answer rows and reads each student's selections with precision, even from imperfect photos
Instant Results
Each student's answers are instantly captured with complete processing logs for full transparency
Seamlessly Connected
Results flow directly into the school portal with role-based access and full audit trails
Under the Hood: Powered by YOLO for row detection and a custom-trained open-source vision-language model served via vLLM—cutting-edge AI that just works
The Challenge
Teachers needed a better way to process exam sheets—without the headaches
Time-Consuming
Manual entry from photos and scans created delays and inconsistencies in grading
Format Chaos
Answer sheet layouts varied by grade level and publisher—no standard format
Real-World Mess
Poor lighting, tilted photos, and stray marks made accurate reading risky and error-prone
What Was Needed
A robust AI pipeline to read answer selections reliably and at scale—automatically
The Solution
An intelligent AI agent that orchestrates specialized tools for maximum accuracy
Agentic Pipeline
An orchestrator coordinates specialized AI tools—YOLO for detection, a custom vision model for reading, plus verification and fallback strategies—ensuring reliable results even from imperfect photos.
Key Steps
- Plan: Orchestrator selects tools and strategies
- Detect: YOLO finds and crops answer rows
- Read: Vision AI extracts selected options
- Verify: Validates against expected patterns
- Recover: Retries with alternate prompts if needed
Why Agentic
Breaks a brittle end-to-end task into reliable tool invocations. Combines geometric detection with semantic reading. Self-checks reduce silent failures and create explainable logs.
Processing Flow
// high-level loop for (sheet in batch) { img = preprocess(sheet) rows = yolo_detect_rows(img) answers = [] for (r in rows) { crop = smart_crop(img, r) read = vlm_read_options(crop, prompt_schema) if (read.conf < CONF_MIN) { read = vlm_read_options(crop, prompt_alt) } answers.push(resolve(read)) } checked = verify_and_align(answers, layout_map) if (checked.status == "ok") { persist(checked, portal_api) } else { enqueue_review(sheet, checked.issues) } }
Detect → Read → Verify → Save, with automatic retries and human review fallback
Technical Architecture
Production-ready components that scale reliably
Components
- Image I/O: Mobile and scanner uploads with checksum validation and EXIF scrub
- Preprocessing: Orientation correction, deskew via Hough lines, adaptive thresholding
- YOLO detector: Classifies row bands and anchors crop windows
- VLM reader: Open-source model served by vLLM for answer extraction
- Post-processing: Confidence gating, sequence checks, tie-break rules
- Portal adapter: REST endpoints with role permissions and audit trails
- Queue system: Batch processing with retry and dead-letter queues
Data Model
sheets
— Upload metadata and statusdetections
— Row boxes, scores, versioned model idreads
— Option strings, confidences, prompts usedresults
— Per-student vectors and exceptionsaudit
— Actions, reviewers, timestampsSystem Flow
+------------------+ +------------------+ | Upload Gateway | ---> | Preprocess | | (portal, API) | | deskew/denoise | +------------------+ +------------------+ | | v v +---------------+ +---------------+ | YOLO Detector | | Crops per row | +---------------+ +---------------+ | | v v +---------------+ +-----------------+ | vLLM VLM | <----> | Agent/Verifier | | read options | | prompts, rules | +---------------+ +-----------------+ | | v v +----------+ +----------+ | Results | ----------> | Portal | +----------+ +----------+
Built for Trust & Reliability
Enterprise-grade quality controls, security, and operations
✓ Testing & Validation
- Exact-match testing: Verified accuracy per answer, per row, and per complete sheet
- Real-world scenarios: Tested against varied lighting, tilted pages, different pens, and background noise
- Continuous monitoring: Tracks performance across different publishers and grade levels over time
🛡️ Safety Controls
- Human-in-the-loop: Low-confidence cases automatically route to teachers for review
- Double-check system: Ambiguous marks get read twice with different AI approaches
- Smart validation: Cross-checks results against expected answer sheet layouts before saving
🔐 Security & Privacy
- Role-based access: Teachers, administrators, and staff each see only what they need
- Encrypted connections: All data transfers are protected with industry-standard encryption
- Privacy compliant: Data retention follows Turkish KVKK privacy regulations
- Audit trail: Every action is logged with model versions for full accountability
⚡ Production Operations
- Smart batching: Processes multiple sheets efficiently with automatic retries for temporary issues
- Complete logging: Tracks every AI tool call and processing time for troubleshooting
- Safe updates: New AI models deploy gradually with instant rollback if problems arise
What Changed
- Removal of manual entry for answer selections.
- Consistent outputs across mixed layouts and publishers.
- Traceable pipeline with explainable steps per sheet.