Individual handwriting varies far more than print
Aliases: writer variation · writer-dependent · handwriting variability
What it is
Print (including screen fonts) varies across a glyph mainly by size and a little weight. Handwriting, on the same glyph, changes stroke count, direction, and joins across people, occasions, and speed. Between-writer differences, and the same person’s hurried versus neat samples, dwarf a font change. That is why recognise-plus-correct-on-the-spot is the default loop: the recognizer cannot be assumed right for everyone on the first try, and leftover error cannot be left only to later proofreading. The structural difficulty of cursive is a separate layer; this claim is about scatter across people and occasions.
Why it happens
Handwriting production is unstable: start position, stroke order, joining, slant, and size drift inside a session. People also keep stable but mutually unlike allographs—one writer’s 口 is a triangle, another’s e never closes. A model trained on print or “average hand” fails in clumps on the tail of the distribution: not random scatter, but the same few glyphs for the same few people, always. That is the loop’s reason to exist. Correction fixes the current glyph and can be an adaptation signal (write the choice back into a user model). Making the model larger with no correction still fails on unseen habits; correction that assumes one distribution shows the entry by mean confidence and is too late for high-variation users. Variation also explains why “it recognised well in the demo” is not a product metric: the demonstrator is often the developer or a neat internal writer.
Studying it
On a multi-writer corpus, split within-writer and between-writer error. The same person writes neat, normal, and timed-fast. Compare a general model, per-user fine-tuning, and no fine-tune but in-place correction.
Independent variables: writer, speed/neatness, user adaptation, whether corrections write back. Dependent measures: distribution of per-person character error rate (not only the grand mean), concentration of errors in tail users, whether correction counts fall across a session.
Overall CER averages away a few people’s disasters. Report quantiles, not only the mean.
Where it stops holding
Constrained writing (character boxes, print-style instructions, block capitals) compresses variation; results do not transfer to notes and signatures. Signature verification depends on individual differences; it must not share a “more consistent is better” assumption with general recognition. Short-term adaptation written into a cloud model raises privacy and shared-account issues. Children, neurological change, and a newly learned script have different variation structure than adult note-taking corpora.
Applying it
- Quote writer quantiles (for example CER of the worst 10%), not only the overall mean.
- Treat in-place correction as adaptation: chosen glyphs rise in that user’s candidates rather than restarting from the general ranking every time.
- Demo and acceptance with people whose habits are not the developers’, including fast writing.
- How to check: at least ten external writers on the same passage; plot per-person CER. If the mean passes and the tail collapses, add correction and adaptation before more general training data. Track whether the same person’s correction counts fall on rounds two and three.