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

LXF150:OCR

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «==Оптическое распознавание текста== {{Врезка|right|Заголовок=Наш эксперт|Содержание=Тимур М…»)
 

Текущая версия на 15:30, 29 августа 2014

Содержание

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

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

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.

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