Inspiration

A missing space, punctuation mark, or letter can change the meaning of a printed label or form. OCR output often looks convincing enough to copy immediately, especially when the engine reports high confidence. Moving that text into another editor also separates it from the image needed to check it.

GlyphCheck focuses on that small but consequential gap: keeping recognition and proofreading together. The aim is to make the next human check easier, rather than treat an AI score as permission to trust the result.

What it does

Open a Korean or English printed-text PNG/JPEG, or try the clearly labeled synthetic demo. GlyphCheck runs real OCR locally and presents the recognized lines with the engine's confidence scores. Selecting a line highlights a padded, approximate source region, keeping the image beside the editable text.

A reviewer can correct a line and explicitly mark it reviewed. Any subsequent edit clears that mark. Review filters help find unfinished lines, while high-confidence lines remain available for inspection.

TXT export contains the current text. JSON export retains the original OCR, edits, confidence, source hash, and review status. Exports preserve the engine's returned order, which is not a guarantee of the document's intended reading order.

How we built it

The application code, interface, adapter, and synthetic fixtures were newly written on October 9 during the hackathon's submission window. This is a solo submission by 권준. Codex AI assisted design, implementation, documentation, and tests; AI tools are not listed as human teammates.

The competition runtime uses open-source Tesseract.js and its LSTM recognition engine with pretrained Apache-2.0 English/Korean tessdata_fast models. These models were not trained by this project. Their upstream commit and complete file hashes are pinned in the repository's model source lock.

A localhost Python bridge passes uploaded image bytes in memory to a Node OCR process. After dependencies and the free model files are set up, recognition uses local files with remote fetch disabled. It requires no API key, payment card, cloud account, or metered inference service.

Challenges we ran into

Confidence was the main design challenge: a precise-looking number can encourage overtrust. GlyphCheck exposes the real engine score as a review cue, without converting it into an accuracy claim.

Bounding boxes have a similar limitation. The interface labels them approximate and provides the full source image for comparison. Another challenge was keeping review state honest: changing text must invalidate its previous reviewed status, and recognition failures must remain visible instead of producing invented fallback text.

Accomplishments that we're proud of

The working prototype connects actual OCR, source-region inspection, manual editing, explicit confirmation, and downloadable TXT/JSON in one workflow.

Observed validation includes 15 CLI cases, 9 HTTP cases, and 13 frontend logic checks, reported as separate suites. They cover the fresh six-line Korean/English sample, a blank image, bounded input and error handling, local service protections, review interactions, and real downloads. These are implementation checks, not a broad accuracy benchmark or end-user study.

What we learned

An OCR tool can be useful without promising autonomous correction. Preserving the original recognition alongside the edit makes uncertainty visible and provides a record of what was checked.

Local execution also needs concrete safeguards: pinned model sources, explicit size limits, visible errors, and a reproducible setup matter alongside the recognition engine.

What's next for GlyphCheck

Next steps are broader printed-text test cases, better handling of difficult layouts, and clearer review guidance. Any improvement would be evaluated against labeled examples before making accuracy claims.

Limitations and credits

The prototype accepts one PNG/JPEG up to 10 MiB and 16 megapixels. Handwriting, blurred text, complex columns, and other languages can fail. It does not automatically correct spelling or certify correctness. The demo uses newly drawn synthetic text, not a real user's document.

Application source is MIT licensed, except the new OCR adapter's Apache-2.0 license. External OCR libraries, sharp, and pretrained models are credited in the repository. Apple Vision is not the deployed competition runtime.

Project links

Built With

Share this project:

Updates

Submission history