Jeremy Neely Text Jeremy

Documents & OCR · Beta

OCR Watch

Reads handwritten parts sheets on the PC and flags only uncertain entries.

Built for: A manufacturing and distribution company whose staff record parts by hand on paper

A sample handwritten sheet and the structured result OCR Watch writes for it.
A sample handwritten sheet and the structured result OCR Watch writes for it.

The problem

Staff write part numbers, codes and quantities by hand on paper sheets, two columns a page, with crossed-out lines and scribbled-over digits. Someone then retypes every sheet. Generic OCR read only about half the part numbers on a sample correctly, and a tool that quietly writes wrong part numbers is worse than none.

What I built

I built a Windows folder watcher that reads every line with a handwriting model running locally on the CPU, checks each entry against a grammar the client can edit, and asks a vision AI only about the entries it could not read. Sheets that pass are filed as finished; the rest go to a person. On one sample, correct part numbers went from 47% to 89%.

How it works

  1. Scan a sheet into the Inbox folder.
  2. Read every line locally with Microsoft's TrOCR handwriting model.
  3. Check and correct each entry against the sheet's grammar.
  4. Send only the unreadable entries to a vision AI.
  5. File passing sheets as finished and send the rest to Needs review.

Built with

  • Python
  • Hugging Face TrOCR
  • PyTorch (CPU)
  • OpenCV
  • Hatz AI vision
  • Playwright tests

More of Jeremy's work