Секреты сканирования на ПК, стр. 7

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

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

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

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

Есть две гипотезы: "l" (латинская "л") и "1" (единица). Чтобы выбрать между этими двумя гипотезами, мы должны целенаправленно проанализировать левый верхний угол изображения, где помещается та единственная деталь, по которой мы можем отличить один символ от другого. Только так возможно будет сделать окончательный вывод о том, какая гипотеза правильна. Причем тщательно исследовать эту единственную деталь мы будем только после того, как у нас останется всего две гипотезы. В этом и заключается целенаправленность предлагаемого подхода. Ибо, если мы решим с самого начала проверять все имеющиеся изображения на наличие огромного количества мелких деталей (ведь пар похожих символов достаточно много, и в каждом конкретном случае деталь, по которой их можно различить, будет меняться), то, во-первых, резко снизится скорость распознавания, а во-вторых, информация об этих мелких деталях будет «засорять» процесс распознавания и помешает опознать буквы, для которых те или иные детали не имеют значения. То есть система станет более восприимчива к помехам.

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

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

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

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

Глава 21.

Омнифонтовая OCR-система

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

Основные возможности

Программа FineReader:

• Дает возможность ввести документ в компьютер посредством нажатия всего на одну кнопку.

• Имеется возможность экспортировать распознанный текст в текстовый редактор или электронную таблицу, а также сохранить его в формате PDF или HTML.

• Имеется возможность сохранять цвета распознанного текста в форматах RTF, PDF и HTML.

• Встроенная технология «адаптивного распознавания»: Необычайно высокая точность распознанных текстов и малая чувствительность к дефектам печати.

• Распознанные страницы представляются миниатюрными изображениями.

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

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

• Программа «видит» изображения в распознаваемом макете.

• 176 языков распознавания.

• Распознавание языков программирования (Basic, Cobol, Fortran, Java, C++, Pascal).

• Распознавание подстрочных символов и вертикального текста.

• Поддержка кодировки Unicode при сохранении распознанного текста в форматах RTF, DOC, XLS, HTML, TXT и CSV.

Форматы текстовых файлов, которые поддерживает программа

FineReader может экспортировать распознанный материал в одном из следующих форматов:

• Microsoft Word Document (*.DOC).

• Rich Text Format (*.RTF).

• Adobe Acrobat Format (*.PDF)

• HTML.

• Comma Separated Values File (*.CSV).

• Простой текст (*.TXT).

• Microsoft Excel Speadsheet (*.XLS).

• DBF.

Форматы графических файлов, которые поддерживает программа

FineReader позволяет импортировать в свою систему файлы следующих форматов:

• TIFF.

• BMP.

• JPEG.

• PCX

• DCX.

• PNG.

Для работы с русскоязычной версией программы операционная система Microsoft Windows должна поддерживать русскоязычную раскладку клавиатуры (доступ в Microsoft Windows Me Millennium Edition: Панель управления к Язык и стандарты к Региональные стандарты к Язык к Русский к Страна/Регион к Россия).