Which way up is the page?
A reel of eighteenth-century court papers came off the scanner with many of its pages on their side. We developed an algorithm to work out which were sideways and to rotate them to their correct orientation
14 articles tagged “project-notes”.
A reel of eighteenth-century court papers came off the scanner with many of its pages on their side. We developed an algorithm to work out which were sideways and to rotate them to their correct orientation
Armenia's national poet appears on book covers as Tumanyan, Tumanean, Toumanyan and Tumanian, and all four are correct. A fold is how one search finds them all, and explaining it shows why a transliteration is for the reader and never for the index
In January 2026 ISO replaced its thirty-year-old standards for romanising Georgian and Armenian. The Georgian one now puts the apostrophe on the other letter of each pair, so text romanised under the old edition reads back wrongly under the new one, and nothing warns you
Armenian is printed in two orthographies with the same alphabet, and a book's title is no guide to which one its pages use. One letter is: the reform left ւ only one place to stand, so counting it anywhere else tells the two apart, on a page or in a single name
Our held-out registry knew every evaluation page and refused to train on any of them. It knew nothing about the other pages that print the same text: a commentary quoting the passage it annotates, a variant in another volume, an encyclopedia quoting a chronicle. An eight-word shingle check found 25 of them in the harvest, and nothing had failed
We set out to lead every Armenian OCR engine we can measure on every register. Before training anything, we found that most of the gap we were chasing was in our own metric. The rest came down to reading order, a word list and a second fine-tune: v6 now leads both means and most registers outright
We measured two compact vision-language models as candidate local backends. One is in. The other produced the best score any engine has recorded on our hardest fixture, and it did it by inventing words that were never on the page
Three weeks ago we published a cross-engine comparison with one row missing, because the model had gone and we would not guess at it. We have now downloaded it and run it over every register. It takes the mean off us, and it takes every register the previous table had given to Calfa's Tesseract model
The trainer and the EasyOCR library behind our Armenian model are public, Apache 2.0, and put together so that somebody else can pick them up — to send us a fix, add a source, or train a recogniser for a script of their own. This is a tour of what a newcomer finds: the checks that run before code can land, the release automation, and the guidance files that give a coding assistant the same orientation we have
Until now, every cross-engine number we had published for Armenian came from ten encyclopedia pages. We have now run the other engines across all eight of our evaluation registers. Our model still leads on average, but it loses one register in three, and two things we thought we knew about where the gap lives turned out to be wrong
Two days after shipping v3 we built the evaluation that showed what it could not do: read anything but the encyclopedia it was tuned on. This is the story of v5 — a corpus three times wider, a filename bug that taught a model to hedge, and the first version to read Western Armenian at all
Three training runs after a model that read a quarter of the words on a page, our Apache-licensed Armenian recogniser reads three quarters of them — and most of what we learned on the way is about Armenian itself: letters with Latin twins, a full stop that looks like a colon, and punctuation that taught our model its own bad habits
Ten human-proofread encyclopedia pages, ten OCR configurations measured against them, and the first honest numbers from a recogniser we are training ourselves — with the code, data and weights all published in the open
Opening this section with the two things it is for: the state of OCR for real archival material, and the working notes from building a tool for it.