Человечество испокон веков создавало книги и прочую письменную продукцию, надеясь на то, что потомки ее хотя бы разок прочитают. Более или менее равномерно так и происходило до середины XX века, до появления компьютеров, когда оказалось, что будущее все же за электронными книгами. Сейчас, с началом XXI века, это предположение похоже на правду – бумажными книгами интересуются все меньше, а электронные представлены в самом широком спектре. Некоторые писатели даже изначально пишут онлайн-версии книг, а только потом начинают продавать бумажные варианты. У Стивена Кинга, правда, не получилось…

Но суть не в этом. То, что уже было написано, требовалось превратить в электронный вид. Так как желающих набирать все это заново не находилось, программистам пришлось писать программы распознавания текста. Именно тогда прославилась программа FineReader, хотя были программы и до нее, и после нее тоже будут. Идея программы проста – загоняем в сканер лист с текстом, а затем получаем ее оцифрованное изображение. Изображение поступает в программу, которая «ищет систему», выделяет символы, абзацы, таблицы и рисунки. Текстовая составляющая прогоняется через алгоритм распознавания образа и превращается в компактный код, которому придается то же оформление, что и оригиналу. Интересно, как развивалась история этих алгоритмов. Сначала, в древних программах, алгоритм мог распознавать лишь те виды шрифтов, которые хранились в него в базе. Грубо говоря, это были образцы шрифта печатных машинок, типичные шрифты газет и книг. Символы определялись по ключевым точкам, методом наложения и пересечения шаблонов. Приемы были грубоваты, и им мешало все – цвет букв, курсив и подчеркивание, искажение шрифта. Зато такие программы работали быстро, подбирая символы по принципу «похоже – не похоже». Но шрифтов стало много, и поэтому такие программы перестали справляться с работой, уступив место «интеллектуальным». Те тоже проводили предварительные работы с изображением символа, но уже другого плана – в основном, чистили «шум», а затем пытались преобразовать графику в векторы, а векторы – в набор формул или уравнений. Особенно интересно смотрится такая подготовка в книгах Д. Кнута о программе TEX, где приведена теория сплайнов и их расчетов. Таким образом, программе становится неважно, как именно искажен шрифт – она ищет не ключевых точки, а систему и допуски на ошибку. И об ошибках – долгое время программы выдавали на вывод смешанные тексты с многочисленными ошибками, пока не появились хорошие словари, позволяющие не только определять язык текста, но и автодополняющие слова, что сделало распознавание почти стопроцентным.

captcha