Распознавание текста в Linux при помощи CuneiForm

В этой статье рассмотрим состояние дел в разработке для Linux системы по распознаванию текста CuneiForm. Ниже представлена краткая информация о проекте, основы установки, работы и некоторые практические впечатления от использования этой программы. Сразу скажу, что впечатления вполне положительные.

Несмотря на то, что весной прошлого года исходные тексты системы распознавания текстов CuneiForm были открыты под свободной лицензией, многие скептически относились к возможности появления версии для "Линукс". Проект находился в кризисном состоянии, и открытие исходников могло показаться вынужденным шагом. К тому же программа создавалась исключительно для систем Windows, и некоторые аналитики указывали на технические проблемы при портировании CuneiForm на "Линукс".

Однако проект привлёк к себе внимание свободных разработчиков. И уже летом прошлого года появилась первая версия для линуксоидов. С того момента прошло уже более чем полгода, и сейчас развитие проекта достигло версии 0.6.

Программа вполне пригодна для тестирования, а при определённых навыках и для практического использования. ЮНЕСКО включила эту OCR-систему в сборник "Свободное ПО для образования, науки и культуры".

Немного общей информации. Система оптического распознавания OCR CuneiForm создана российским разработчиком программного обеспечения Cognitive Technologies, что был организован в 1993 году на базе лаборатории искусственного интеллекта Института Системного Анализа РАН.

CuneiForm способна преобразовать сканированные бумажные документы в редактируемые текстовые форматы. CuneiForm распознает любые полиграфические, машинописные гарнитуры всех начертаний и шрифты, получаемые с принтеров, за исключением декоративных и рукописных. Также в программе используются самообучающиеся адаптивные алгоритмы распознавания, что повышают вероятность распознавания низкокачественных документов. И, конечно же, что, уверен, важно для читателей "КВ", программа распознаёт кириллицу.

Кроме непосредственно механизма распознавания, оригинальная версия для Windows имеет дополнительные сервисы - автоматический подбор оптимальных параметров, обработка изображений и т.д. Однако эти дополнительные возможности, в том числе и графический интерфейс, по мнению многих пользователей, уступают по уровню основной функции приложения.

Версия для "Линукс" этой программы на текущий момент представляет собой исключительно движок распознавания без каких-либо дополнительных сервисов и функций. Работа осуществляется через командную строку. Это, в свою очередь, даёт возможность оценить уровень именно алгоритмов распознавания.

По заявлениям разработчиков, OCR CuneiForm распознаёт русский, английский, смешанный русско-английский, украинский, немецкий, французский, испанский, португальский, итальянский, голландский, датский, шведский, финский, сербский, хорватский, польский и другие языки. Я, конечно же, все языки не проверял, но русским остался доволен.

Скачать последние версии Cuneiform для "Линукс" можно с сайта https://launchpad.net/cuneiform-linux/+download. Архив весит около 30 мегабайт.

Так как приложение не тянет за собой графический интерфейс, то проблем с разрешением зависимостей практически нет. Я успешно собирал приложение и на Suse 11.0, и на Mandriva 2009. Хотя в Сети появились и неофициальные самодельные пакеты для некоторых дистрибутивов, поэтому желающие могут поискать.

При сборке требуется использовать систему cmake. В распакованном архиве создаётся пустой каталог builddir, в котором и осуществляется сборка:

cmake -DCMAKE_BUILD_TYPE=debug ..
make
make install

В результате в каталоге builddir будут лежать исполняемые файлы и все необходимые библиотеки. Всё необходимое хозяйство совокупно будет занимать чуть более 50 мегабайт. Программу можно запускать прямо отсюда без установки в системные директории.

Как уже было сказано ранее, CuneiForm работает из командной строки. Приложению нужно указать графический файл, язык перевода и формат вывода:

$ cuneiform -l ru -f plane -o result_file image.bmp

Список поддерживаемых языков можно вывести командой cuneiform -l, а список форматов вывода - командой cuneiform -f.

Текущая версия приложения работает исключительно с изображениями документов в формате BMP. И так как функций предварительной подготовки изображений в CuneiForm пока нет, то изображения надо предварительно подготавливать самостоятельно. Недостаточно подсунуть программе просто любую картинку с текстом, а потом писать статьи, что CuneiForm распознавать не умеет.

Изображения документов перед распознаванием должны быть подготовлены по всем типовым правилам: разрешение при сканировании должно быть 300 dpi, после сканирования изображения очень желательно улучшить, например, при помощи "ScanKromsator". В этом случае распознавание будет очень успешным. Также весьма рекомендую перечитать статью С. Бесараба "Цифровое книгопечатание" ("КВ" №34/2008), чтобы обновить свои познания в области сканирования.

Некоторое количество качественных сканов типовых офисных документов, которое я пропустил через CuneiForm, распознались практически на все сто процентов.

Если же просто создать скриншот текста с экрана монитора, то CuneiForm не найдёт в этом изображении никакого текста. Изображение нужно привести к формату отсканированных бумажных документов с разрешением 300 dpi.

Например, в Gimp идём в меню "Изображения - Размер изображения" и в диалоговом окне смены размера картинки выставляем разрешение 300 dpi, а потом увеличиваем размер изображения хотя бы в два раза и применяем фильтры улучшения. Получится картинка хотя и уступающая по своим качествам правильно отсканированному документу, но вполне читаемая программой.

Так, при распознавании скриншота одной странички этой статьи, набранной шрифтом Times New Roman 12 pt, ошибочно определилось менее одного процента от всех символов - около 20 ошибок на 3000 знаков. Но текст, набранный курсивом, распознаётся немного хуже, чем обычный шрифт.

Неплохо получилось распознать несколько книжек в формате DjVu, предварительно экспортировав страницы в графический формат BMP. Создание отдельного текстового OCR - это весьма желательная процедура при создании версий книг в формате DjVu, так как позволяет осуществлять поиск и копирование текста в таких электронных книгах.

Со стандартными современными книжными шрифтами движок CunieForm справляется очень хорошо. На сканированных экземплярах книг дореволюционного периода со старой орфографией программа спотыкалась на "доисторических" буквах алфавита. Совсем плохо распознались книжки с особыми декоративными шрифтами.

Для начинающих в архиве программы в папке images имеется несколько графических примеров для тренировки, и для использования в качестве образца при подготовке собственных материалов.

Таким образом, подводя итог, могу сказать, что русскоязычных линуксоидов вполне можно поздравить с появлением качественного свободного инструмента для распознавания текста.

А также стоит, наверное, ожидать и вспомогательных сервисов в программе. Например, автоматизации подготовки изображений к распознаванию, встроенного редактора, графического интерфейса. Хотя лично для меня это второстепенные возможности. И лично я ожидаю в CuneiForm ещё большего усовершенствования самого движка распознавания.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Номер: 

09 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!