CASE STUDY · OCR

The 25% that every other model inherited

Custom training methods that cut OCR errors by 25% — a foundation-layer win multiplied through every classifier and extractor downstream.

Damaged printed glyphs being re-traced into crisp letterforms by a green scanning beam

At a glance

role
R&D ML Engineer, Ninestars
result
25% fewer OCR errors
method
custom training methods
stage
production

Problem

OCR sits underneath everything in a document-AI stack. Classification, key-value extraction, table parsing — all of them consume OCR text, so every OCR error is paid for several times over. Off-the-shelf OCR performance left errors that downstream systems couldn’t recover from.

Approach & architecture

Rather than treating OCR as a fixed black box, I treated it as a trainable component: developing custom training methods for the OCR models against our document data. The same discipline as the other systems applied — data exploration and quality assessment to find where errors concentrated, then targeted training to remove them.

The hard part

Error reduction at the OCR layer is a moving-target problem: fixes that help one document population can regress another. Progress required honest measurement — knowing the error rate before, segmenting errors by cause, and validating that the 25% held across the production mix rather than on a friendly subset.

Result

25% reduction in OCR model errors, compounding through the classification (95%) and extraction (90%) systems that consumed its output.

Stack

  • Python
  • PyTorch
  • OCR training pipelines
  • Pandas

stack mapping from skills inventory