For the past few years, I have spent a surprising amount of time researching Front Royal and Warren County history through the Library of Virginia’s Virginia Chronicle. The site makes digitized historic newspapers searchable by running optical character recognition (OCR) against scanned page images and turning the results into text.
It also uses the Veridian platform, which lets the public correct that text. That small feature matters. Search is only as useful as the words the computer thinks it sees.
I have made enough corrections to reach Virginia Chronicle’s top-100 contributors list. Right now, I have 7,626 corrections. That is tiny next to the old DejaNews/Google Groups archive, whose leading contributor has made more than two million corrections, but it is still enough work to make the patterns familiar.
Reaching 7,600 didn’t require a grand project. I would find an article that interested me, read it, notice that the OCR had turned a sentence into nonsense, and correct that small section. Over time, I began recognizing the same errors before I had even read the words around them.
c,o, andeare regularly confused.i,l,1, and!trade places.bandhcan look alike in old type.n,u, andabecome one another.- Specks of dirt become punctuation.
- Rips, tears, faded ink, and line breaks keep the software from recognizing a word as a whole word.
Sometimes an ad would run weekly, a common notice would be missing obvious text, or the same story would appear in another paper, which I could use as a basis for correction or to infer missing words from the repeated version.
The image below shows what it looked like before I made any corrections.

Correction is valuable, but not always pleasant
Virginia Chronicle gives people a way to help, and most archives do not. That is genuinely valuable. The editing interface is still a little awkward when a passage is long or badly detected. Text sometimes spans multiple blocks. The site may ask whether to save before an edit is complete, and it doesn’t reassure you that every change is saved automatically as you work.
The geometry behind the transcription can be just as troublesome as the words themselves:
- Two parts of one word may be treated as separate bits of text.
- Detected regions can overlap.
- A horizontal rule can be recognized as text.
- Text can be missed entirely.
- Lines may appear in the wrong reading order.

That last problem is particularly important. An OCR engine cannot faithfully transcribe a word it has divided in half, and a person correcting the result has to understand both the newspaper’s layout and the intended reading order.
A detour through license plates
Yesterday, while experimenting with object detection (See: The Day My Raspberry Pi Started Seeing Things), I moved from detecting everyday objects to locating my car’s license plate. The natural next step was to read it. That would have been a fine technical experiment, but it also felt a little like doing a trick because the tool was available.

I have been building a distributed AI batch-processing project, and I needed to tie the experiment back to a problem that would eventually matter. I already have documents being analyzed in the background. I knew that PDFs with embedded images would eventually need to enter that pipeline, and OCR would be one of the first things they needed.
I normally use Tesseract for OCR on PDFs obtained through Freedom of Information Act requests, so I used it as my baseline. I added PaddleOCR and Surya OCR, then compared each result with a corrected Virginia Chronicle sample. I also added a display that highlighted incorrect or missing characters.
Tesseract was by far the weakest result in this test. It lit up red across the page.

OCR engines and document-aware models
I then tested models built specifically for OCR, including DeepSeek-OCR and GLM-OCR 1.1, as well as vision-capable models such as Gemma 4, Ministral 3, Ornith 1.5, and Qwen 3.8.
The results were encouraging, though not magical. In my first sample, several generative models captured 97 percent or more of the corrected text. They seem to use context that a conventional character-by-character system does not: surrounding words, sensible spelling, the type’s style, and the fact that an image is a document rather than a pile of disconnected shapes.

I set up an “engine vote,” choosing the answer most supported by the various engines. For that one sample, the vote matched my correction at 100 percent. That doesn’t mean the system has achieved universal 100-percent OCR; it is a useful signal that different approaches can catch one another’s mistakes.
Running every available model for every clipping would take a long time. Most generative models took about thirty seconds per sample. Qwen 3.8, at 27 billion parameters, took more than three minutes when it spilled from my RTX 3080 Ti to a second GPU. At that point, the older GTX 1080 Ti and the PCIe connection became part of the performance story.
The more practical local pipeline is smaller: run Surya, the strongest deterministic engine in my test, and DeepSeek-OCR independently; then give their text and the detected geometry to Ministral for a final local suggestion. On the first sample, that also matched my correction completely.

There is more testing to do. I need to run less-friendly samples through the process and see where it fails. I am also still working toward a pipeline that can create small units of work, use OCR engines and models on different devices, and consolidate the results.
Accuracy is not the whole problem
Even a nearly perfect transcription needs editorial rules. Virginia Chronicle’s correction guidance asks contributors to preserve original misspellings while adding the modern spelling in square brackets when helpful for search. Undecipherable material should be marked [illegible].
Images deserve consideration too. An image can be represented as [image], or described more usefully as something like [image Map - Main Street, Front Royal]. A future pipeline could propose those descriptions, but it would need to distinguish real images from ornaments, rules, advertisements, and photographs containing text.
Then there is the page-layout problem. I am currently making small clips by hand. A full newspaper page is not a simple page of prose: it has columns, headlines, advertisements, poems, tables, illustrations, and sometimes material that flows around other material. Feed the whole thing to an OCR engine and it may read straight across several columns, producing an accurate transcription in an unusable order. Before text recognition can be trusted, the page has to be divided into meaningful sections.
The boundary between possible and permitted
From a technical perspective, the next step seems obvious. A computer could retrieve a newspaper page, divide it into regions, run several OCR systems, compare their answers, and suggest corrections. A browser extension could even make a user-selected page feel nearly seamless: inspect the displayed page, process it locally, and show a proposed correction.
But technical capability and permission are different things.
Virginia Chronicle’s Terms of Use prohibit unauthorized mass downloading or scraping in any format. Its robots.txt file asks general web crawlers not to access certain areas, including authentication and text-correction paths. The fact that the models I am using have already been trained does not remove the practical issue. A system that routinely collected archive pages, processed them elsewhere, and fed corrections back into the site would still be automation at a scale the archive has not authorized.
That leaves me in an interesting limbo. I can see a path toward making historic newspapers substantially more searchable, and the local tests are promising. But I do not want to build something whose usefulness depends on ignoring the rules of the collection it is meant to improve.
I am not entirely dependent on the digital archive. The Warren County library has microfilm for most of the Warren Sentinel, and the Warren Heritage Society holds physical newspapers dating back into the 1800s. Access to the source material is not beyond my reach. The tradeoff is that working from those sources means another layer of manual effort: locating an issue, using the microfilm or handling the paper, producing a usable image, and organizing it before OCR can begin.
For now, I will keep refining the workflow on documents I already have permission to process: local files, FOIA records, and material I can access through those local collections. If it continues to perform well across more difficult samples, I may reach out to my contact at the Library of Virginia to ask whether there is an approved way to request page images, submit suggested corrections, or build a volunteer-assisted review tool.
That is the version of this project worth pursuing: helping more of its history become findable, whether the starting point is an online archive, a roll of microfilm, or a century-old paper in a local collection.
