Сканирование и распознавание образов

Сканирование  и распознавание  образов

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

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

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

     Однако  сканеры с автоподатчиками страниц гораздо более дорогие, чем обычные сканеры, и вследствие этого менее распространены. Однако и на обычном сканере без автоподатчика можно производить пакетное сканирование страниц документа – лишь бы используемое программное обеспечение позволяла выполнять сканирование такого типа (роль ADF-устройства в этом случае придется играть сканировщику).

     Кроме таких особенностей, как наличие  или отсутствие автоподатчика, у сканеров различают следующие основные характеристики:

  • Интерфейс (способ подключения к компьютеру) (в порядке возрастания производительности): LPT, USB, FireWare, SCSI;
  • Максимальное разрешение отсканированного изображения и глубина цветов;
  • Среднее время сканирования одной страницы (очень часто зависит от предыдущих  характеристик). 

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

Пакет сканирования и распознавания  текста FineReader.

Итак, как уже  отмечалось, неважно какой сканер у нас имеется – главное  чтобы он был, так как основная тяжесть работы ляжет на плечи  программы сканирования. По этому желательно, чтобы программа сканирования умела:

    1. производить пакетное сканирование изображений
    2. автоматически производить первичную обработку изображений
    3. производить распознавание отсканированного текста электронного документа с последующим сохранением его

     В качестве такой программы рассмотрим программу сканирования и распознавания  текста FineReader компании ABBYY Software (демо-версию программы можно взять с сайта компании: http://www.abbyy.ru), которая является одной из лидирующих на рынке программных продуктов для сканирования и распознавания документов.

Рассмотрим основные шаги при сканировании и распознавании  документа.

Создание  нового пакета изображений

     Перед сканированием нового документа  для него рекомендуется создать  так называемый «пакет», в котором  будут храниться как отсканированные  изображения документа, так и  все настройки относящиеся к  этому документу. Для этого необходимо после запуска программы FineReader выбрать в меню команду [Файл→Новый пакет…] и в появившемся окне указать в каком каталоге будет располагаться новый пакет.

Настройка параметров сканирования

     Теперь  необходимо настроить параметры  сканирования изображений. Для этого  необходимо выполнить команду меню [Сервис→Опции…] и в появившемся  окне выбрать закладку [Сканирование/открытие]:

     Если  в поле [TWAIN-драйвер сканера] еще не указан сканер, с которым будет работать программа, то его нужно указать при помощи кнопки [Выбрать драйвер]. После этого нужно указать [Использовать интерфейс FineReader], чтобы была возможность включения режима пакетного сканирования.

В секции [Обработка  изображений] доступны следующие опции  сканирования:

    • Инвертировать – преобразование изображение в свой негатив;
    • Очистить от мусора – изображение будет «почищено» от дефектов сканирования (рекомендуется включить);
    • Делить разворот книги – рекомендуется при сканировании книг, брошюр, журналов, т.к. при сканировании книг обычно сканируется «разворот книги» (сразу две страницы раскрытой книги), и при этом логичнее разделить такие изображения на два (левую и правую страницы);
    • Уменьшать разрешение цветного/серого изображения до 100 dpi – если сканер настроен сканировать изображения как цветные/серые, то для уменьшения их объема и экономии места на жестком диске можно воспользоваться данной опцией;
    • Приводить цветное/серое изображение к черно-белому – если текст простой и не сдержит значимых картинок (например репродукций с картин художников), то для для уменьшения объема изображений и экономии места на жестком диске можно воспользоваться данной опцией.  

      Следующую опцию стоит указывать если предполагается не только сканирование страниц, но и распознавание текста (например, если наша цель подготовить электронный документ не в формате DjVU, а, например, в RTF или PDF)

    • Определить ориентацию страницы – во время распознавания программой будет произведена попытка определить, как нужно развернуть изображение текста, чтобы он принял удобочитаемый (а значит и удобо-распознаваемый) вид.

   Теперь  нужно настроить сам сканер, для  этого нужно нажать на кнопку [Настройки  сканера] в секции [Сканер] текущего окна, и в появившемся диалоговом окне указать следующие параметры:

    • Ориентация изображения – книжная или альбомная;
    • Единицы измерения – сантиметры или дюймы (рекомендуется указать сантиметры);
    • Размер бумаги – размер сканируемой области документа. Можно указать либо стандартный размер (например, A4), либо определить свой собственный;
    • Отступы, размер – манипулируя данными параметрами можно избавиться от ненужных полей в отсканированном изображении документа, что в свою очередь экономит пространство на жестком диске;
    • Подбор яркости – позволяет указать яркость сканируемых страниц:
      • Автоматический – яркость подбирает FineReader (использовать при неоднородном распределении яркости на странице – например при больших перегибах страниц возле корешка);
      • Средствами сканера – яркость подбирает сканер (использовать при неоднородном распределении яркости на странице – например при больших перегибах страниц возле корешка);
      • Ручной – яркость указывает пользователь (убыстряет процесс сканирования, использовать при однородном распределении яркости на странице).
    • Режим сканирования – указывает, как будут сканироваться изображения страниц документов – как цветные, серые или черно-белые;
    • Разрешение – с каким разрешением сканировать изображения страниц (обычно хватает 300 dpi)
    • Загружать страницы из автоподатчика бумаги (ADF) – данная опция доступна если есть возможность воспользоваться автоподатчиком бумаги у сканера;
    • Пауза между страницами – позволяет указать паузу в секундах (обычно около 5 секунд), которую будет делать программа, прежде чем автоматически начать сканирование следующей страницы в режиме «Сканировать несколько страниц» (см. ниже).
    • Останавливаться между страницами – если нужно производить контроль качества отсканированных изображений, то следует выбрать этот параметр (тогда по окончанию сканирования страницы будет появляться диалог с вопросом о продолжении сканирования).

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

Сканирование  документа 

     Для начала необходимо проверить, насколько  соответствуют наши настройки сканирования документу, который мы собираемся сканировать. Для этого можно сделать пробное  сканирование при помощи команды  меню [Файл→Сканировать изображение]:

 

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

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

Распознавание документа.

     Если  мы решили создавать электронный  документ в формате, подразумевающем  хранение текста как набора букв и  цифр (т.е. не в формате DjVU), то после сканирования необходимо произвести распознавание текста, хранящегося в изображениях документа.

     Настройку параметров распознавания текста можно  произвести при помощи команды меню [Сервис→Опции…] (закладка [Распознавание]):

где указать  основные характеристики распознаваемого  текста. 

Запуска процесса распознавания можно воспользоваться  командой меню [Процесс→Распознать] (распознается только текущее изображение) или [Процесс→Распознать все] (распознаются все нераспознанные изображения пакета):

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

Рабочая область  FineReader приобретет следующий вид:

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

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

после чего необходимо произвести распознавание повторно.

Исправление ошибок  распознавания

     При всем качестве распознавания, FineReader не дает 100% точного распознавания документа (участки, в точности распознавания которых программа не уверена, выделяются  цветом в окне, где показывается результат распознавания – см. рис. выше). Поэтому после сканирования и распознавания документа необходимо производить проверку документа. Проверку и исправление ошибок распознавания можно производить как непосредственно в FineReader-е перед сохранением электронного документа, так и после его сохранения в редакторе, соответствующем формату хранения электронного документа (например, при помощи Word для форматов RTF и DOC).

В FineReader-е  «работа над ошибками» начинается с команды меню [Сервис→Проверка]:

после чего в интерактивном режиме обработать неуверенно распознанные участки документа:

Сохранение  документа

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

     Для этого сначала нужно определить при помощи команды меню  [Сервис→Опции…] (закладка [Форматирование]) как мы желаем сохранить текст – либо сохранить  полное оформление документа,  либо сохранить только начертание и размер шрифта, либо не сохранять оформление документа, а так же сохранять  или нет картинки:

     После того, как мы определились с этими  параметрами, можно либо сохранить  документ (или его часть) в файле  нужного формата при помощи команды  меню [Файл→сохранить текст как]:

либо  при помощи команды [Файл→Передать все страницы] (или [Файл→Передать выбранные страницы]) передать распознанный документ (или его часть) в соответствующую программу:

после чего будет запущена выбранная программа  с нашим документом в качестве  редактируемой (рабочей) информации.

Обработка сканированных изображений

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

      Как уже отмечалось, в качестве графического редактора для обработки отсканированных  изображений предлагается использовать пакетный графический редактор “ImageMagick”, дистрибутив которого можно получить на сайте компании ImageMagick (http://www.imagemagick.com/).

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

      Утилита “Mogrify” предназначена для однотипного преобразования нескольких изображений – для нее указываются преобразования и список изображений, над которыми нужно произвести эти преобразования. Преобразованные изображения будут сохранены в файлах, в которых были исходные изображения (т.е. старые изображения будут заменены новыми).

      Утилита “Convert” предназначена для разнотипного преобразования нескольких изображений – для нее указываются список файлов и к каждому файлу указывается преобразования, которые нужно провезти над изображением в файле. Так же указывается файл, в который будет сохранено преобразованное изображение.

      Обычно  над отсканированными изображениями  необходимо произвести следующие действия:

  1. поворот некоторых отсканированных изображений – это иногда требуется в силу неверного позиционирования сканируемого документа на стекле сканера;
  2. удаление пустых полей у отсканированных изображений.

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

      Поворот отсканированных  изображений

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

      Поворот изображения можно сделать при  помощи утилиты “Convert”, для этого необходимо:

  1. в каталоге с отсканированными изображениями выявить те изображения, что требуют поворота;
  2. запустить какой-нибудь файловый менеджер, поддерживающий запуск приложений при помощи командной строки (например, “Far” – для пользователей из стран бывшего СССР, в число которых входит и Россия, эта программа является бесплатной и последнюю ее версию можно получить с сайта http://www.rarsoft.com, но можно воспользоваться и командным интерпретатором, который входит в состав любой ОС Windows);
  3. перейти в каталог с отсканированными изображениями;
  4. Если требуется повернуть каждое изображение, помеченное для этого в п.1, на разный угол, то это можно сделать при помощи  утилиты “Convert”  используя следующий формат командной строки:  
    convert <что_поворачивать> -rotate <градусы> <куда_записать> 
    где:
    • что_поворачивать – файл с изображением, которое нужно повернуть
    • градусы – на сколько градусов повернуть изображение (положительное значение – поворот будет произведен по часовой стрелке, отрицательное – против);
    • куда_записать – куда записать обработанное изображение (можно указать имя исходного файла, тогда новое изображение заменит старое).
 

  1. Если требуется  повернуть каждое изображение, помеченное для этого в п.1, на один и тот  же угол, то это можно сделать  при помощи  утилиты “Mogrify”  используя следующий формат командной строки:  
    mogrify - rotate <градусы> <что_поворачивать> где:
    • что_поворачивать – файл с изображением, которое нужно повернуть
    • градусы – на сколько градусов повернуть изображение (положительное значение – поворот будет произведен по часовой стрелке, отрицательное – против).

Удаление  пустых полей у  изображений

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

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

Формат  командной строки утилиты “Mogrify”:

mogrify –crop <X>x<Y>+<dX>+<dY> <список файлов>

где:

  • X – ширина будущей картинки по X
  • Y – высота будущей картинки по Y
  • dX – ширина удаляемого левого поля
  • dY –  высота удаляемого верхнего поля

Сканирование и распознавание образов