A from-scratch implementation of the CNN-RNN-CTC handwriting recognition stack — written to understand the pipeline rather than to chase a leaderboard.
Problem
OCR is usually treated as a closed API call. This project takes it apart: image preprocessing → convolutional feature extractor → recurrent sequence model → CTC alignment → decoded string, with no high-level OCR library in the path.
What I built
A PyTorch CNN-RNN-CTC implementation for IAM sentence images, with preprocessing, an evaluation harness for Character Error Rate and Word Error Rate, and a small inference web UI under OCR_WebApp/ for visual inspection.
Technical components
- Framework
- PyTorch
- Architecture
- CNN feature extractor → BiLSTM → CTC head
- Data
- IAM sentence images
- Metrics
- Character Error Rate and Word Error Rate evaluation harness
- Decoding
- Greedy CTC decoding
- Inference UI
- Web app under
OCR_WebApp/for visual prediction inspection
Evidence / outputs
TODO: publish concrete CER / WER numbers on the IAM test split, a comparison row against a CRNN baseline, model size, and average per-line inference latency. The current README ships the architecture and evaluation harness but not a results table — this page intentionally does not invent numbers.
Current status
Experimental. The architecture and evaluation harness are available, but the repository does not currently publish a reproducible checkpoint or verified CER/WER result.
Limitations
- Sentence-image recognition only — no full-page layout analysis.
- No language model fusion; the published decoder uses greedy CTC decoding.
- No published baseline comparison yet (see Evidence).