РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ СОЦИАЛЬНЫЙ УНИВЕРСИТЕТ
Контрольная работа
по предмету «Информатика»
на тему: «Этапы развития и сравнительный анализ программ оптического распознавания »
Студентка Ильина О.О.
Тольятти, 2010
Введение
оптическое распознавание коррекция ошибка
При работе с первоисточниками (или, как принято говорить при описании офисных технологий, с исходными документами) наиболее оптимальным может оказаться ввод какой-либо первичной текстовой информации без помощи клавиатуры. Такой способ может быть реализован получением данных из глобальных или локальных компьютерных сетей, посредством распознавания речи или оптического распознавания текста. В данной статье пойдет речь о последнем из названных способов.
Имея текст, напечатанный в типографии, на пишущей машинке, на принтере, копировальном аппарате, в факс-машине, то есть буквально текст любого происхождения, теперь - даже написанным от руки, Вы можете без помощи клавиатуры получить его в электронном виде для последующего редактирования, перевода или хранения на компьютере. Для этого Вам потребуются сканер и программа, называемая системой оптического распознавания - OCR. Каждый такой программный продукт имеет простейший автоматический режим "сканируй и распознавай", реализованный с помощью одной кнопки. Однако для того, чтобы достигнуть лучших из возможных для данной системы результатов, желательно (а нередко и обязательно) предварительно заниматься "ручной" настройкой системы распознавания на конкретный вид текста, а точнее на способ и качество начертаний букв и других знаков. Чтобы проделывать такие настройки, в меню программ обязательно отражены соответствующие регуляторы, но пользоваться ими удобнее при некотором знакомстве с принципами оптического распознавания.
Как работает система оптического распознавания
Фактически, когда Вы читаете (например книгу), то не представляете, какую работу делает Ваш мозг, чтобы преобразовать образцы чернильных или типографских меток в осмысленный текст. Компьютеры, однако, еще борются за решение этой одной из основных задач при создании машинного интеллекта.
Современное состояние OCR отвечает уровню, при котором довольно много систем могут быть весьма надежны, когда они имеют дело с чистым четким текстом, однако компьютерным программам все же еще далеко до того, чтобы предложить пользователю такую же безупречную точность, как предлагает другой помощник мозга человека - калькулятор. Большинство систем OCR работают с растровым изображением, которое получено через факс-модем или сканер. Для тех, кто никогда не видел OCR, обозначим скороговоркой этапы распознавания отсканированной страницы с точки зрения манипуляций над изображением текста. Делая "первый шаг", OCR должен разбить страницу на блоки текста, основанного на особенностях правого и левого выравнивания и наличия нескольких колонок. Потом эти блоки разбиваются в индивидуальные метки чернил (типографской краски и т.п.), которые, как правило, соответствуют отдельным буквам. Алгоритм распознавания делает предположения относительно соответствия чернильных меток символам; а затем делается выбор каждой буквы и цифры. В результате страница восстанавливается в символах текста (причем, в соответствующем оригиналу формате).
OCR-системы могут достигать наилучшей точности распознавания свыше 99 процентов для качественных изображений, составленных из обычных шрифтов. Хотя это число кажется почти совершенным, уровень ошибок все же удручает, потому что, если имеется приблизительно 1500 символов на странице, то даже при коэффициенте успешного распознавания 99,9% получается одна или две ошибки на страницу, требуя человеческого контроля результатов для гарантирования правильности соответствия оригиналу. Встречающиеся в жизни тексты порой весьма далеки от совершенных, и процент точности распознавания для "плохих" текстов часто недопустим для большинства приложений. Грязные изображения - здесь наиболее очевидная проблема, потому что даже малые пятна могут затенять определяющие части символа или преобразовывать один в другой.
Если документ был ксерокопирован, нередко возникают разрывы и слияния символов (такие тексты нередко возникают и при сканировании). Любой из этих эффектов может заставлять ошибаться, потому что некоторые из OCR систем полагают, что каждая соединенная черная метка должна быть одиночным символом.
Страница, расположенная с нарушением границ или перекосом, создает немного искаженные символьные изображения, которые могут путать программное обеспечение распознавания. Даже, когда изображения - чистые, странные или декоративные начертания могут вызывать проблемы, потому что они растягивают символы в различные формы для художественного эффекта. Кроме того буквы могут иметь вариации среди начертаний того же самого наименования шрифта, когда, к примеру, символы, воспроизведенные принтером HP DeskJet, отличны от символов, которые напечатаны на Apple LaserWriter.
Разработка алгоритмов, которые позволяют распознавать символы, несмотря на эти проблемы - трудная задача. Разработчики должны сбалансировать потребность в гибкости ПО с требованием его точности. Если программное обеспечение не достаточно гибко, то оно будет неточно сегментировать символ, когда будет сталкиваться с различными вариациями начертания. С другой стороны, слишком много гибкости может также вызывать ошибки. К примеру, отличие между "b" и "h" в нижнем регистре не очень большое, и гибкий алгоритм может спутать их.
Деление текста на символы
Одна из наиболее недорешенных задач в OCR - сегментация отдельных символов. Это происходит потому, что границы между буквами часто нечеткие, штрихи соседних букв соприкасаются, и это мешает делить слова на символы. Например, две или более буквы распознаются как одна, или одна - как две или три. Существуют шрифты, у которых, несмотря на общее хорошее качество печати, встречаются склейки (например, в шрифте Tense). Порою, увидев отсканированное изображение, в котором буквы сливаются на большей площади листа с текстом, можно заранее сказать, что данный текст не распознается корректно, и сэкономить свое время, даже не запустив программу на распознавание.
Образ страницы и распознавание по шаблонам
Программное обеспечение OCR обычно работает с большим растровым изображением страницы из сканера. Изображения со стандартной степенью разрешения получаются сканированием с точностью 300x300 пикселей на дюйм. Изображение бумажного листа формата A4 (11 формата) при этом разрешении занимает около 1 Мбайт памяти. Изображения c более тонким разрешением возможны с применением более дорогих сканеров, но они часто непрактичны для OCR-приложений из-за большой требуемой памяти для изображений или длительности самого процесса сканирования. Кроме того, увеличение разрешения сканера не приносит пользы, если качество оригинала недостаточно хорошее. Анализируя изображения, исходящие из факсимильных машин, подбирают разрешение, проверяя отличия от имеющихся шаблонов символов (самая маленькая их величина при самом близком соответствии).
По этой причине, большинство систем имеет шаблоны, созданные для различных начертаний. После нескольких слов, программное обеспечение определяет основное используемое начертание и ищет соответствующие пары только с этим начертанием. В некоторых случаях программное обеспечение использует численные значения частей символа (пропорций), чтобы определить новый шрифт. Это может улучшать эффективность распознавания до других стилей печати, типа курсива или жирного начертания слова, найденного на странице.
Таким образом, при распознавании по шаблонам представление описания похоже на представление входных объектов, и описание сравнивается с ними непосредственно.
Программа распознавания TypeReader фирмы ExperVision использует машинно-зависимые алгоритмы, чтобы найти наиболее важные пиксели для различения символов. Берется 30 различных вариантов символа (которые исходят из 30 различных документов) и в каждом из этих примеров анализируется по 100 пикселей, чтобы определить то, какие из них наиболее вероятно должны быть характеристикой для специфического символа (к примеру, пиксели на нижней части "A" всегда чисты и т. д.). Краевые элементы изображения вдоль границ символа часто исключаются этим анализом, потому что они могут быть темны в чистых изображениях, но чисты в страницах с пониженной четкостью. Машинный алгоритм ранжирует 100 пикселей от более до менее непротиворечивых для каждого из символов.
Однако этого шага не достаточно из-за подобия между буквами. Например, в нижнем регистре "h", "k", "f", "l", и "t" имеют общие длинные вертикальные штрихи слева, и пиксели вдоль этого штриха не будут передавать различия этих символов. По этой причине, программное обеспечение фирмы ExperVision находит 24 пикселя, которые являются наиболее непротиворечивыми у всех символов в алфавите, и удаляет их из списка для индивидуальных символов. Пиксели, которые оставлены, должны с наибольшей вероятностью быть уникальными.
Таким образом, требуется создать шаблон целостного описания символа, так чтобы любое изображение буквы в него попадало, а любые допустимые изображения других букв - нет. В чистом виде шаблонное описание может применяться только для распознавания печатных символов. Заметим, что рукописные шрифты тоже распознаются с применением шаблонов (только "более хитрых"), но одновременно со структурным подходом.
Структурный подход
Самая продаваемая в мире система OCR - Caere OmniPage Professional использует алгоритм, который не должен настраиваться на индивидуальное начертание, потому что он основан на нахождении общих специфических особенностей символов. Эта система содержит 100 различных "экспертных систем", которые в действительности являются только алгоритмами для идентификации 100 различных символов: верхнего и нижнего регистра от "A" до "Z", записи чисел и символов пунктуации. Каждая из этих экспертных систем ищет "особенности" начертаний типа "островов", "полуостровов", точек, прямых оттисков и дуг. Экспертные системы также рассматривают горизонтальные и вертикальные проекции оттисков буквы и обращают внимание на основные особенности в созданных кривых, суммируя в них число темных пикселей.