САЙТ КРЫЛОВА ПАВЛА
Главная
Схемы Ветрогенераторы Собаки Стройка Книги О сельском хозяйстве и прочем


СХЕМЫ---->
Полезная схемотехника. статьи № 1-50

FineReader - система OCR программа для оптического распознавания текста.

www.abbyy.ru — русскоязычный сайт разработчиков FineReader
www.ghostscript.com — официальная страница разработчиков GhostScript
www.twain.org — официальная страница проекта TWAIN
www.mostang.com/sane — официальная страница разработчиков SANE
http://sanetwain.ozuzo.net — страничка разработчика SaneTwain

Те, кто часто встает перед необходимостью оцифровать тот или иной текст, знают: как бы шустро не порхали пальчики над клавиатурой, намного проще переложить подобную работу на пластико-силиконовые плечи компьютера, по возможности автоматизировав работу, то есть, сведя участие homo sapiens в процессе распознания до минимума.

Для того чтобы сэкономить время и здоровье, человек разумный в ходе эволюции изобрел системы OCR, то есть программы для оптического распознавания символов, которые позволяют при помощи сканера перенести в электронный вид текст с бумаги. Давайте на примере наиболее популярного в России пакета для OCR — FineReader 6.0, рассмотрим процесс оцифровки бумажных текстов.

FineReader - система OCR программа для оптического распознавания текста. Главное окно программы FineReader.

Сканирование

Для получения изображений FineReader использует драйверы TWAIN, которые необходимы для работы сканера в среде Windows.

FineReader - система OCR программа для оптического распознавания текста. Стандартная практическая реализация TWAIN

Стандартная схема взаимодействия такова: через стандартный диалог, отображающий список доступных устройств для сканирования, вы выбираете нужное для последующего взаимодействия (пункт меню «Select Source...»). При этом происходит активация драйверов данного устройства. Затем вы делаете захват изображения (либо через меню «FiLe -> Acquire», либо нажатием на кнопку с той же надписью), вслед за чем появляется стандартный диалог для сканирования. Установив необходимые опции, вы нажимаете кнопку «Сканировать» («Scan»), после чего файл, записываемый по мере формирования во временную папку, передается программе, из которой вы инициировали сканирование.

FineReader - система OCR программа для оптического распознавания текста. Принципиальная схема функционирования TWAIN

FineReader предоставляет два способа получить изображение для сканирования. Наиболее привычным считается способ, когда вызывается стандартный для данной модели устройства диалог сканирования, при помощи которого вы можете предварительно просмотреть страницу, отметить рамкой нужную область, предназначенную для сканирования, и затем нажать кнопку «Сканировать» («Scan» — в случае с англоязычным интерфейсом). Сканируемое изображение будет перехвачено той программой, которая вызвала этот диалог (в нашем случае это FineReader), и передано ей для дальнейшей обработки.

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

FineReader - система OCR программа для оптического распознавания текста. Программа сообщает о возможных ошибках при сканировании.

Достаточно важным моментом является выбор режима сканирования относительно цветового диапазона — «черно-белый» (Black&White — 1 бит), «с оттенками серого» (Grayscale — 10 или 12 бит) или TrueСоlor (от 24 бит и выше). Определяющим фактором здесь является, во-первых, качество бумажной копии, а во-вторых, цели и задачи конкретного пользователя.



Если сохранение цветности оригинального бумажного документа является необходимым (например, если требуется перенести в цифру цветное изображение, содержащееся на бумаге), то нужно использовать режим TrueCoLor. Здесь я только упомяну о том, что вы скорее всего столкнетесь с таким явлением, как муар. Такие изображения имеет смысл сканировать с разрешением в 500-600 точек на дюйм, а затем править при помощи любого средства для снятия муара. Обычно для этого используется связка Blur & Sharpen в любом из «маститых» графических редакторов вроде GIMP, Photoshop или Photopaint.

FineReader - система OCR программа для оптического распознавания текста. Переключение типа захвата изображения.

FineReader - система OCR программа для оптического распознавания текста. Диалог захвата изображения.

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

Использовать «черно-белый» режим имеет смысл лишь в случаях работы с хорошими распечатками документов, сделанными струйным или лазерным принтером, либо книгами хорошего полиграфического качества.

Теперь еще один, несомненно, важный аспект — величина разрешения при сканировании изображения. Как известно, чем больше разрешение изображения, из которого будет извлекаться текст, тем точнее будут распознаны данные. И все же разработчиками FineReader рекомендуется сканировать изображения с разрешением в диапазоне от 300 до 600 точек на дюйм.

При количестве dpi (dots per inch — «точек на дюйм») менее 300 буквы в конечном изображении, как правило, недостаточно велики для корректного распознавания, а при dpi более 600 они попросту деформируются, что также весьма негативно влияет на результат. В любом случае, при попытке распознать изображение с dpi, находящемся вне указанного диапазона, вы будете уведомлены о возможных ошибках при распознавании.

Отдельного упоминания заслуживает функция добавления изображений в пакет. Это позволяет, к примеру, отсканировать текст на одном компьютере, на котором есть сканер, а распознать данные на другом, на котором установлена программа FineReader. Достаточно лишь через меню «Файл» добавить нужные файлы с изображениями. Есть и другой способ — файлы с отсканированными изображениями через «Проводник» добавить в папку с нужным пакетом. Разумеется, в момент добавления этот пакет должен быть открыт вне FineReader.

Не могу не затронуть и тему новой функции — распознавания текста из файлов PDF (Portable Document Format). В ходе изучения возможностей новой версии FineReader автором была выявлена небольшая ошибка, заключающаяся в невозможности слабых процессоров (200 МГц) обрабатывать файлы, содержащие более чем 30 страниц. Эта функция реализована при помощи OpenSource-коллекции программ для работы с PostScript и PDF — . GhostScript. Для обработки PDF приложение GhostScript — pdf2bmp — конвертирует многостраничный файл формата PDF во множество файлов BMP, которые затем автоматически включаются в текущий пакет и могут быть обработаны точно так же, как и обычные изображения. Сама конвертация на слабых процессорах длится непозволительно долго. На высокопроизводительных процессорах этой ошибки замечено не было.

Обработка макета страницы

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

FineReader - система OCR программа для оптического распознавания текста. Выбор языка оригинала.

FineReader умеет обрабатывать следующие типы объектов: текст, таблица, рисунок и штрих-код (в корпоративной версии пакета). Каждый объект при разметке макета страницы имеет свой порядковый номер, благодаря которому FineReader «знает», в какой очередности обрабатывать объекты. В тех случаях, когда автоматическое определение макета страницы вас не устраивает, вы можете вручную изменить порядок распознавания блоков, перенумеровав их, для чего необходимо вызвать свойства блока и изменить его номер на желаемый. После этого произойдет автоматическая пересортировка блоков. Вы также можете воспользоваться достаточно удобным инструментом, который доступен через боковую панель инструментов, — активировав инструмент, просто последовательно наводите курсор на блоки и нажимайте левую клавишу мыши.

Помимо того, каждый тип объекта имеет свой цвет рамки. Текстовый объект — серый, таблица — синий, рисунок — красный, штрих-код — коричневый. Это помогает легче ориентироваться в макете.

После того как вы определились с макетом страницы, можно приступать к следующему этапу — распознаванию. Но предварительно необходимо сделать еще одну вещь — указать язык распознаваемого текста. Разработчики FineReader предусмотрели вариант, когда каждому отдельному текстовому/табличному блоку можно присвоить свой набор используемых в нем языков. Для того чтобы указать для отдельного блока свою группу языков, достаточно вызвать диалоговое окно с его свойствами и на закладке «Блок» указать группу языков.

Проверка орфографии

Немногие пользователи знают, что в FineReader интегрирован весьма продвинутый алгоритм для проверки орфографии поддерживаемых для распознавания языков. Он умеет сам определять возможные словоформы неизвестных слов и запоминать их для удобства последующей проверки документов.

FineReader - система OCR программа для оптического распознавания текста. Проверка орфографии.

В ходе работы при помощи «Мастера Scan&Read» вам будет автоматически предложено проверить корректность распознанного текста перед экспортом.

Экспорт

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

Однако все хотят сократить время обработки данных. И здесь я могу дать практические рекомендации по выбору форматов. Уже давно подмечено, что далеко не все имеют четкое представление о том, какой конечный формат лучше подойдет. Здесь вам помогут следующие две таблицы, благодаря которым можно реально оценить возможности поддерживаемых в FineReader форматов.

FineReader - система OCR программа для оптического распознавания текста. Поддерживаемые форматы.



Основные выводы, которые вы можете сделать, глядя на эти таблицы:

Для максимального контроля над содержимым желательно пользоваться одним из «больших» форматов — DOC или SXW. Конечно, вы также можете при помощи механизма OLE Automation напрямую передать текст в WordPro (из офисного пакета Lotus SmartSuite) или WordPerfect (из офисного пакета WordPerfect Office), но они распространены в России в гораздо меньшей степени, чем MS Word и StarOffice/OpenOffice.org Writer.

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

Для выкладывания материалов в Интернете желательно пользоваться HTML или PDF. HTML — потому что это основа Web, PDF — опять же из-за свободной переносимости формата. Теперь давайте отдельно рассмотрим опции экспорта. Прежде всего обратим внимание на закладку «Форматирование» в общем диалоге настроек программы.

FineReader - система OCR программа для оптического распознавания текста. Расширенные настройки форматирования при экспорте.

При использовании этого диалога вы можете ограничить степень сложности форматирования конечного текста — от полного копирования макета сканируемой страницы до сохранения данных в виде «плоского текста». Вариант первый больше подходит тем, кто не хочет заниматься дополнительной обработкой конечного документа. Вариант второй представляет собой компромиссный вариант — сохраняется только основная разметка. Вариант третий больше устроит тех, кто хочет переверстать оригинал по-своему.

На этой же закладке можно вызвать еще один диалог настройки, при помощи которого задаются более точные опции форматирования данных при экспорте в различные форматы —от RTF и HTML до XLS.

Еще один совет: используйте горячие клавиши. Их применение поможет существенно увеличить скорость обработки документа. Вот пара-тройка нескольких наиболее часто используемых модификаторов:

Alt+Enter — отобразить свойства блока;
Ctrl+E — автоматический анализ макета страницы;
Ctrl+Shift+E — автоматический анализ макета всех страниц;
Ctrl+O — добавление изображения к пакету;
Ctrl+Del — удалить блоки и текст;
Ctrl+Shift+B — распознать блок.

Возможности автоматизации OCR

И напоследок об автоматизации. Разумеется, в корпоративных масштабах идеальным вариантом является использование FineReader Scripting Edition — средства разработки программного обеспечения, которое позволяет создать собственную систему обработки данных, использующую средства FineReader. Это дает возможность получить максимально гибкую систему, идеально приспособленную для решения конкретных задач, тем более что начиная с версии Corporate Edition поддерживается экспорт в ODMA (Open Document Management Access — международный стандарт передачи данных в корпоративные информационные системы).

Что касается обычных пользовательских версий, то автоматизация ввода реализована пока что за счет применения одних и тех же настроек в ходе так называемой пакетной обработки серии изображений. Таким решением является «Мастер Scan&Read», который фактически проводит пользователя через все этапы процесса — от сканирования бумажной копии до экспорта в тот или иной формат.

Итоги

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

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

Александр Прокудин

Рекомендации

Сканирование,

Какой вариант сканирования предпочтительнее — через стандартный для используемого сканера интерфейс или же вариант со сканированием графическими средствами самой программы FineReader?

Прежде всего, это зависит от того, насколько удобен пресловутый графический интерфейс для захвата изображений. Эту статью я писал, имея под рукой HP ScanJet 4400с — достаточно распространенную модель популярной линейки сканеров этой фирмы. Однако продуктивной работы с HP PrecisionScan у меня не получилось — программа никак не хотела запоминать новые значения разрешения и все время норовила использовать автоматическое определение режима, поэтому в результате я перешел на сканирование средствами FineReader, о чем ни разу не пожалел.

В остальном, с «фирменными» интерфейсами для сканирования работать намного приятнее, потому что они дают дополнительный доступ к наст/ройкам изображения — балансу, гамме и т. д.

Новшества в версии 6.0

Новая, шестая по счету версия этого известного продукта была представлена пользователям в начале апреля 2002 года. На текущий момент данная версия распространяется в двух комплектациях: Professional Edition и Corporate Edition. Отличие корпоративной версии от версии профессиональной заключается в том, что, во-первых, используется иная политика лицензирования, оптимизированная для корпоративных пользователей (к примеру, теперь вы можете купить лишь десяток лицензий, установив программу для полусотни пользователей), а во-вторых, в корпоративную версию входит FormFiller — приложение, при помощи которого можно быстро отсканировать бланк, заполнить его поля и вывести на печать/послать документ факсом.

Остановимся на основных функциональных особенностях этой версии FineReader. Мастер распознавания снова обновлен — внешне он стал очень похож на Мастеры из MS Office. Теперь работать с FineReader действительно может даже абсолютно неопытный пользователь, хотя я все же рекомендую прочитать как минимум первую часть руководства для пользователя.

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

В этой версии разработчики наконец-то воплотили полную поддержку Unicode, которой так не хватало при экспорте в файлы форматов MS Office и в HTML. Теперь у вас не возникнет никаких проблем ни при чтении файлов MS Word, сохраненных при помощи FineReader, ни при необходимости сохранить распознанный многоязычный текст в файл формата HTML.

Достаточно заметно улучшение работы с форматом PDF. Во-первых, появилась возможность распознавать текст, содержащийся в таких документах (а он далеко не всегда может быть вытащен оттуда через Буфер обмена). Во-вторых, наконец-то по-человечески заработал экспорт распознанного текста в этот формат. Несмотря на то, что официально использование свободной разработки GhostScript декларируется как основа распознавания текста из PDF, мне почему-то кажется, что GhostScript имеет непосредственное отношение и к улучшению экспорта в PDF.

Пакеты в FineReader

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

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

Что входит в пакет? Во-первых, это файлы изображений. Они хранятся в формате TIFF и нумеруются как 00.tif, 01.tif, 02.tif и т. д. Результаты анализа макета страницы сохраняются в файлы формата FRF и нумеруются относительно соответствующих им изображений.

В ОС Windows NT/2000/XP пакеты по умолчанию сохраняются в папке «Имя_диска\Documents and Settings\ имя_пользователя\Аррliсаtion Data\ Abbyy\FineReader\6.00\Batches», а в линейке ОС Windows 9х — в папке «Имя_диска\Program Files\ABBYY FineReader 6.0\Batches».

Немного о стандартах

TWAIN является наиболее распространенным в ОС Windows и Mac OS стандартом на получение изображений от сканирующих устройств и цифровых камер. Работа над стандартом началась в 1992 году, когда ведущие производители (Adobe Systems, Digimarc, Eastman Kodak, Fujitsu Computer Products of America Inc., JFL Peripheral Solutions, Ricoh Corporation и Xerox Corporation) решили объединиться во имя разработки общего API для работы со сканирующими устройствами.

В настоящее время фактически все модели наиболее распространенных сканирующих устройств (сканеров и слайд-сканеров), а также цифровых (фото) камер распространяются с драйверами TWAIN.

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

Этого недостатка лишен другой стандарт — SANE, который более распространен на UNIX-подобных платформах. Основной недостаток SANE — спектр поддерживаемых устройств, который сейчас хоть и достаточно обширен, но все же не так, как в случае с TWAIN. К тому же поддержка устройств, подключаемых к СОМ-порту, находится на уровне беты.



Соединительным мостиком между TWAIN и SANE является разработка SaneTwain, могущая заинтересовать тех, кто хочет использовать в Windows сканер, подключенный к Linux-серверу.
altay-krylov@yandex.ru