OCR and ICR are very different things so forget what you know about OCR when you think about handwritten character or word recognition.
OCR was created over 30 years ago and has steadily been improved to the point where it can offer a high degree of accuracy for really well-formatted words and characters. The fundamental concept around OCR is that letters of a certain language, when typed, always tend to look the same.
So an “A” looks like “A”, “B” looks like “B” and so on.
Back in the days of limited fonts (enforced by typewriters or limited typesetting options), the notion of a computer taking input of characters and matching them to a library of samples was a reachable objective.
Even today with computer-based fonts that can number in the hundreds, most of the fonts resemble each other, so it is possible to create a set of standard matching rules. In this case, I can type an “A” in courier and still match it to an “A” written in Times New Roman. They have enough visual similarity that I can create a program that stores all varieties of fonts. This is called “matrix matching.” And if I can’t completely match one font to another, I can guess with high accuracy. Educated guessing is what Ray Kurzweil is known for introducing through omni-font support (even though other companies introduced it before him). Omni font uses “features” to help identify characters. These capabilities are great for all sorts of languages that use Latin-based or Germanic languages where characters are well-distinguished between each other.
But even today, OCR has a harder time with other types of characters of languages including Arabic-like languages and Slavic languages where characters can vary more slightly. And for poorly typed print such as that from older typewriters or print-outs from dot-matrix printers, even modern OCRs can have problems.
That’s where word-level recognition comes into play. With word level recognition, the output of OCR isn’t complete until it assembles individual characters into words and then matches those words with a vocabulary of words. Word level recognition provides very good performance improvements in situations where character-level OCR wouldn’t do well but matching 4 of 5 letters at the word level would.
So where does ICR come into all of this and how does it all impact language support?
Well, the primary difference is that ICR involves handwritten characters and words created by people and not machines. Fonts are to OCR what “writing styles” are to ICR.
Imagine selecting 10 people you know with the best penmanship. Have them fill-out a form. Then review those forms. It is very likely that each character of each handwritten word would vary by quite a good margin due to individual writing styles of each person. Traditional OCR might be able to deal with variety at that level if the penmanship didn’t vary too much.
Now imagine an auditorium of people each completing a form and each with their own writing style. OCR would fail miserably. Why? Because that would represent a few hundred fonts and letters and words would be spaced differently.
Finally imagine an entire country’s population; you have literally millions of different “fonts” or writing styles to deal with. And imagine not only dealing with a single language, but multiple languages.
Clearly a different way other than traditional OCR support is required.
The answer is a combination of word-level analysis and character-level feature extraction aided by very sophisticated “learning engines.” So Instead of creating a database of potential font styles and doing pattern recognition to match them, letters need to be described based upon their core characteristics. And because written letters are highly variable in spacing, shape and size, you need additional word-level analysis to aid with letters that are unreadable. Until only relatively recently, there wasn’t enough computing power to tackle this problem. But in the last 10 years, computers and operating systems have significantly improved to support handwriting recognition.
Both feature extraction and word-level analysis require a significant number of samples that reflect the larger population of writing styles in order to successfully train the software. They also require companion word databases to ensure that letters and words actually match a real word in a given language.
Combine the writing style challenge with that of language support and I hope you can see how introducing new languages for handwriting recognition is very time-consuming, very difficult, and very costly over doing the same with machine print support.
Learn more: