Журнал LinuxFormat - перейти на главную

LXF150:OCR

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Оптическое распознавание текста

Что написано пером, то хорошо бы прочитать компьютером. Тимур Мубаракшин рассматривает приложения, которые это умеют.

Linux не страдает от отсутствия утилит для распознавания текстов. Среди них и легкая в использовании и минималистская программа – Cuneiform-Qt, вышедшая из-под рук программиста ALT Linux Team Андрея Черепанова; и консольная утилита GOCR; и Tesseract – программа с длинной историей; и некоторые другие программы. Мы попробуем дать здесь их беглый обзор.

Сuneiform-Qt

Сuneiform-Qt имеет очень минималистский интерфейс – кому-то он может показаться даже скудным; однако это не так. У программы есть все для того, чтобы удовлетворить потребности обычного домашнего пользователя: она позволяет открыть изображение в популярных графических форматах и распознать текст в этом изображении. Распознанный текст можно сохранить в формате HTML, обычном тексте или RTF. Перед распознаванием можно выбрать язык текста и формат. Пока поддерживается лишь работа с изображениями – получить текст прямо со сканера на данный момент нельзя.

Программа написана на C++ с использованием библиотеки Qt4 под Linux; последняя стабильная версия на сегодня – 0.1.1. Выпускается Сuneiform-Qt под лицензией GPLv3.

На слабых компьютерах (768 МБ ОЗУ, процессор Intel Celeron 2400 Мгц) Cuneiform-Qt работает медленнее, чем хотелось бы, но это, видимо, особенности движка от Cuneiform, а не недостаток оболочки Андрея Черепанова. Иногда русский текст бывает нечитаемым, что, в свою очередь, можно списать на молодость версии продукта.

В целом Cuneiform-Qt производит положительное впечатление, и работает вполне сносно с небольшими объемами информации (до 10 страниц текста), так что ее можно посоветовать домашним пользователям.

GOCR

GOCR – мощная консольная утилита, способная работать со многими языками.

Разработку GOCR начал в далеком 2000 году Йорг Шуленбургом [Jo..rg Schulenburg], и в дальнейшем у проекта появилась небольшая собственная команда. Разработка GOCR идет не особенно шустро, однако основная функциональность для приложений подобного рода имеется. Для GOCR существует удобная графическая оболочка OCRFeeder, о которой речь пойдет чуть ниже.

Чтобы внести ясность, упомянем, что GOCR имеет второе название – JOCR: по словам автора приложения, так получилось потому, что на проекте sourceforge.net адрес gocr.sourceforge.net был уже занят. Но название JOCR (Jo..rg’s Optical Character Recognition – «OCR от Йорга») сейчас используется только для адреса страницы, хотя это и вносит некоторую путаницу.

GOCR полностью поддерживает импорт изображений в форматах PNM, PBM, PGM, PPM и TGA; PCX поддерживается частично. Другие форматы изображений, такие как PNG, JPG, TIFF, GIF, BMP и pnm.gz/pnm.bz2, автоматически преобразовываются (используются утилиты сжатия netpbm-progs, gzip и bzip2).

GOCR поддерживает распознавание текста на основных европейских языках, однако русского, к сожалению, среди них нет. Поэтому GOCR можно посоветовать, например, переводчикам. Процесс распознавания работает довольно быстро и не требует больших ресурсов компьютера.

Утилита может получать изображения напрямую со сканера (используя интерфейс XSane); распознанный текст может сохраняться в форматах TXT, ASC и HTML. Весь процесс распознавания будет виден в консоли.

В качестве движка для оптического распознавания текста GOCR использует некоторые консольные и графические приложения, например OCRFeeder, и выпускается под лицензией GPLv2.

Tesseract

Tesseract – свободная программа для распознавания текстов, разрабатывавшаяся компанией Hewlett-Packard с середины 1980-х по середину 1990-х, а затем 10 лет «пролежавшая на полке». В августе 2006 г. компания Google купила ее и открыла исходные тексты под лицензией Apache 2.0 для продолжения разработки. В настоящий момент программа уже работает с кодировкой UTF-8; поддержка языков (с версии 3.0 – включая русский) осуществляется с помощью дополнительных модулей.

Ядро программы Tesseract разрабатывалось в Бристольской лаборатории Hewlett Packard (Великобритания) и в Hewlett Packard Co, в г. Грили, штат Колорадо, США, в 1985 – 1994 годах. В 1996 были введены значительные изменения и подготовлен порт для Windows. Значительная часть кода изначально написана на С, но проводились доработки для совместимости и с С++.

Для Tesseract имеется также графический интерфейс, который призван упростить использование программы для не искушенных в командной строке пользователей Linux – Tesseract-GUI, построенный на Python/GTK+.

Изображения, открываемые в Tesseract-GUI для распознавания, могут быть монохромными (черно-белыми), с градациями серого и цветными. Допускаются форматы изображений PNG или JPG, но для более качественного распознавания текста рекомендуется преобразовать изображение в формат хранения растровых изображений TIFF.

Tesseract-GUI дает возможность повысить контрастность изображения и изменить угол наклона (на исходном изображении изменения не отражаются). Распознаваться может как текст на всем изображении, так и текст выделенного участка изображения.

Для корректной работы оболочки требуется библиотека приложений, анализирующих и обрабатывающих изображения – leptonica. Установка Tesseract и Tesseract-GUI в большинстве популярных дистрибутивов происходит в штатном режиме с помощью соответствующего менеджера пакетов.

Tesseract-GUI сохраняет распознанный текст в файле формата TXT, в директории с распознаваемым изображением, однако можно указать свой каталог и дать имя файлу. Если в изображении две страницы (например, это разворот книиги) то распознанный текст может быть сохранен как в одном, так и в нужном числе файлов постранично. Лицензия у Tesseract-GUI – GPLv2.

Tesseract-GUI работает очень быстро и подходит для большинства пользователей, которым требуется распознавание текстов объемом до 50 страниц. Поддержка русского языка не столь хороша, как, например, в Cuneiform, но все же имеется. Последняя стабильная версия приложения – 3.0.

OCRFeeder

OCRFeeder – удобный, написанный на Python и GTK+ графический интерфейс к нескольким консольным OCR-приложениям.

Разработка OCRFeeder начата как магистерская диссертация по специальности «Прикладная информатика» программистом Хоакимом Роча [Joaquim Rocha]. В дальнейшем приложение вошло в состав Gnome Project.

OCRFeeder автоматически определяет наличие установленных в системе OCR-приложений, а именно CuneiForm, GOCR, Ocrad, Tesseract, и использует их в качестве «движка», а для распознания структуры документа применяется собственный алгоритм распознавания.

Для поддержки распознавания языков в настройках всех перечисленных систем распознавания необходимо добавить аргумент, указывающий на этот язык. Например, для корректного распознавания текстов на русском необходимо добавить “-l rus”, а для правильной проверки русской орфографии помечать распознаваемый текст как русский. Все настройки выполняются с помощью мыши.

В OCRFeeder можно импортировать данные как из графических файлов, во множестве популярных форматов (JPEG, PNG, BMP, TIFF, GIF, PNM, PPM, PBM и прочих), так и из файлов PDF. Также поддерживается захват изображения непосредственно со сканера. Изображения могут быть добавлены простым перетаскиванием в окно приложения из файлового менеджера или из контекстного меню Nautilus, файлового менеджера Gnome.

OCRFeeder позволяет очистить исходное изображение (без коррекции оригинала), в открытом изображении задать или изменить границы распознавания и выбрать наиболее подходящий для конкретного документа «движок» распознавания символов.

Имеется также возможность скорректировать нераспознанные символы, настроить стили параграфов, применить проверку орфографии в распознанном тексте с помощью библиотеки libaspell и выбрать шрифт для сохраняемых документов.

Основным форматом для сохранения результатов распознавания в OCRFeeder является ODT (OpenDocument Format). Текст также может быть сохранен в обычном текстовом формате TXT или в HTML.

Хотя OCRFeeder разрабатывается как приложение с графическим интерфейсом, имеется возможность работы и из командной строки с помощью утилиты ocrfeeder-cli. Это может оказаться полезным для автоматической пакетной обработки документов. Лицензия OCRFeeder – GPLv3. Последняя стабильная версия на сегодня – 0.7.5. Приложение можно посоветовать всем, кому нужно использовать несколько «движков» для распознавания тестов.


ABBYY FineReader for Linux

Нельзя обойти вниманием и коммерческую утилиту для распознавания текстов под Linux – уж слишком она известна.

FineReader – система оптического распознавания символов, разрабатываемая российской компанией ABBYY – слывет лучшей OCR-системой для Windows-машин. Версия для Linux не обладает графическим интерфейсом, что выглядит немного странно, поскольку за полную версию программы приходится выкладывать € 149, и при этом количество распознаваемых страниц ограничивается величиной 12 000 в год. Имеются и более дорогие версии, в которых это количество значительно увеличено.

ABBYY FineReader for Linux – консольная утилита распознавания, пользующаяся набором подключаемых библиотек распознавания.

Приложение использует интеллектуальную OCR-систему и собственную технологию распознавания, позволяющую распознавать и воссоздавать документы со сложным форматированием.

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

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

На сайте проекта имеется также и демо-версия, позволяющая распознать 100 страниц (после регистрации на сайте и получения серийного номера для демо-версии). Установка ABBYY FineReader for Linux сводится к запуску от имени администратора двоичного файла (./abbyyocr.bin) из архива, скачанного с сайта проекта, и введению во время установки серийного номера.

Команда для запуска распознавания выглядит примерно так:

abbyyocr -rl Russian English -if test.png -f RTF -of test.rtf

ABBYY FineReader for Linux поддерживает распознавание текста (полное и частичное) на более чем двухстах языках и предусматривает множество опций командной строки для гибкой настройки параметров распознавания.

Для сохранения результатов распознавания используются проприетарные форматы хранения текстовых документов; основной формат сохранения – RTF. Лицензия программы проприетарная, а последняя версия – 9.0.

Персональные инструменты
купить
подписаться
Яндекс.Метрика