Оптическое распознавание символов (OCR). OCR как предмет первой необходимости

17.07.2019

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

  • OCR (Optical Character Recognition) - технология оптического распознавания печатных символов, т.е. перевода сканированного изображения печатных символов в их текстовое представление;
  • ICR (Intelligent Character Recognition) - распознавание раздельных печатных символов, написанных от руки;
  • OMR (Optical Mark Recognition) - распознавание отметок (обычно перечеркнутые крест-накрест либо галочками квадраты или круги);
  • стилизованные цифры - распознавание рукописных цифр, написанных от руки по шаблону, как на почтовых конвертах.

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

Технология оптического распознавания символов (OCR) рассматривает сканированные изображения отпечатанного текста и преобразует их в электронные текстовые данные. Несмотря на то что самые усовершенствованные системы могут распознавать почти все виды шрифта, они работают только с печатными текстами и отклоняют рукописные. Отпечатанные буквы ровно располагаются на странице, позволяя OCR читать один символ за другим. Когда все символы в слове распознаны, слово сравнивается со списком возможных вариантов для окончательного утверждения результата. Любой текст, который не является идеальным, вызовет трудности даже у самой усовершенствованной OCR-системы, что отразится на значительном снижении точности обработки некачественных изображений. Например, когда символы разъединяются вследствие плохого качества изображения либо несколько символов сливаются из-за размытого или темного фона между ними, точность распознавания может уменьшиться на целых 20%.

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

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

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

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

Технология Parascript ICR фокусируется на строении написанного слова. Наподобие того, как люди ищут смысл, чтобы прочитать слова, в которых частично переставлены буквы (yuo спа lkiley raed tihs wthiuot a pborlem), Parascript ICR добивается подобного распознавания на основе контекстного подхода. Обрабатывая результаты во время процесса распознавания, Parascript ICR создает высокоточные ответы, которые в свою очередь приводят к более высокому уровню распознавания, чем те, которые проверяются в конце процесса.

OMR (Optical Mark Recognition) - распознавание отметок. Обычно отметками выступают перечеркнутые крест-накрест либо отмеченные галочками квадраты или круги (checkbox).

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

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

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

На стадии подготовки и обработки информации, особенно при компьютеризации предприятия, автоматизации бухучета, возникает задача ввода большого объема текстовой и графической информации в ПК. Основными устройствами для ввода графической информации являются: сканер, факс-модем и реже цифровая фотокамера. Кроме того, используя программы оптического распознавания текстов, можно вводить в компьютер (оцифровывать) также и текстовую информацию. Современные программно-аппаратные системы позволяют автоматизировать ввод больших объемов информации в компьютер, используя, например, сетевой сканер и параллельное распознавание текстов на нескольких компьютерах одновременно.

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


Потом строки разбиваются на непрерывные области изображения, которые, как правило, соответствуют отдельным буквам; алгоритм распознавания делает предположения относительно соответствия этих областей символам; а затем делается выбор каждого символа, в результате чего страница восстанавливается в символах текста, причем, как правило, в соответствующем формате. OCR-системы могут достигать наилучшей точности распознавания свыше 99,9% для чистых изображений, составленных из обычных шрифтов. На первый взгляд такая точность распознавания кажется идеальной, но уровень ошибок все же удручает, потому что, если имеется приблизительно 1500 символов на странице, то даже при коэффициенте успешного распознавания 99,9% получается одна или две ошибки на страницу. В таких случаях на помощь приходит метод проверки по словарю. То есть, если какого-то слова нет в словаре системы, то она по специальным правилам пытается найти похожее. Но это все равно не позволяет исправлять 100% ошибок, что требует человеческого контроля результатов.

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

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

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

Основное назначение OCR-систем состоит в анализе растровой информации (отсканированного символа) и присвоении фрагменту изображения соответствующего символа. После завершения процесса распознавания OCR-системы должны уметь сохранять форматирование исходных документов, присваивать в нужном месте атрибут абзаца, сохранять таблицы, графику ит.д. Современные программы распознавания поддерживают все известные текстовые и графические форматы и форматы электронных таблиц, а некоторые поддерживают такие форматы, как HTML и PDF.

Работа с OCR-системами, как правило, не должна вызывать особых затруднений. Большинство таких систем имеют простейший автоматический режим сканируй и распознавай (Scan&Read). Кроме того, они поддерживают и режим распознавания изображений из файлов. Однако для того, чтобы достигнуть лучших из возможных для данной системы результатов, желательно (а нередко и обязательно) предварительно вручную настроить ее на конкретный вид текста, макет бланка и качество бумаги.

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

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

FineReader кроме того, что знает огромное количество форматов для сохранения, включая PDF, имеет возможность прямого распознавания из PDF-файлов. Новая технология Intelligent Background Filtering (интеллектуальной фильтрации фона) позволяет отсеять информацию о текстуре документа и фоновом шуме изображения: иногда для выделения текста в документе используется серый или цветной фон. Человеку это не мешает читать, но обычные алгоритмы распознавания текста испытывают серьезные затруднения при работе с буквами, расположенными поверх такого фона. FineReader умеет определять зоны, содержащие подобный текст, отделяя текст от фона документа, находя точки, размер которых меньше определенной величины, и удаляя их. При этом контуры букв сохраняются, так что точки фона, близко расположенные к этим контурам, не вносят помех, способных ухудшить качество распознавания текста. Даже таблицы распознаются с максимальной точностью, сохраняя при этом все возможности для редактирования.

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

OCR CuneiForm способна распознавать любые полиграфические и машинописные гарнитуры всех начертаний и шрифтов, получаемые с принтеров, за исключением декоративных и рукописных. Также программа способна распознавать таблицы различной структуры, в том числе и без линий и границ; редактировать и сохранять результаты в распространенных табличных форматах. Существенно облегчает работу и возможность прямого экспорта результатов в MS Word и MS Excel (для этого теперь не нужно сохранять результат в файл RTF, а затем открывать его с помощью MS Word).

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

Readiris Pro7 профессиональная программа распознавания текста. Oтличается от аналогов высочайшей точностью преобразования обычных (каждодневных) печатных документов, таких как письма, факсы, журнальные статьи, газетные вырезки, в объекты, доступные для редактирования (включая файлы PDF). Основными достоинствами программы являются: возможность более или менее точного распознавания картинок, сжатых по максимуму (с максимальной потерей качества) методом JPEG, поддержка цифровых камер и автоопределения ориентации страницы. Поддержка до 92 языков (включая русский).

OmniPage11 - программа практически со 100% точностью распознает печатные документы, восстанавливая их форматирование, включая столбцы, таблицы, переносы (в том числе переносы частей слов), заголовки, названия глав, подписи, номера страниц, сноски, параграфы, нумерованные списки, красные строки, графики и картинки. Есть возможность сохранения в форматы Microsoft Office, PDF и в 20 других форматов, распознавания из файлов PDF, редактирование прямо в формате PDF. Система искусственного интеллекта позволяет автоматически обнаруживать и исправлять ошибки после первого исправления вручную. Новый специально разработанный модуль Despeckle позволяет распознавать документы с ухудшенным качеством (факсы, копии, копии копий ит.д.). Преимуществами программы являются возможность распознавания цветного текста и возможность корректировки голосом.

Хотя авансы, выданные искусственному интеллекту (ИИ) за последние 50 лет, ни на йоту не приблизили «умные» машины к когнитивным возможностям человека, полностью отрицать успехи в данном направлении было бы несправедливо. Наиболее очевидный и яркий пример - шахматы (не говоря уже о более простых играх). Компьютер пока не может имитировать наше мышление, но он вполне способен компенсировать данный пробел большим объемом специализированной памяти и скоростью перебора. Владимир Крамник охарактеризовал игру победившей его в 2006 г. программы Deep Fritz как «нечеловеческую» в том смысле, что она зачастую противоречила устоявшимся (человеческим) правилам стратегии и тактики.

А чуть более года назад очередное детище IBM, в свое время положившей начало триумфальным шахматным победам компьютеров (знаменитый Deep Blue), под названием Watson совершило новый прорыв, с большим отрывом победив сразу двух чемпионов популярной американской викторины Jeopardy. Показательно, однако, что хотя Watson самостоятельно озвучивал ответы, вопросы ему все же передавались в текстовом виде. Это говорит о том, что успехи во многих сферах приложения ИИ - распознавании речи и образов, машинном переводе - достаточно скромны, хотя это и не мешает нам уже сегодня применять их на практике. Наибольшие же успехи, пожалуй, демонстрируют системы оптического распознавания символов (OCR, Optical Character Recognition), с которыми наверняка так или иначе знакомы почти все пользователи ПК. Тем более, что российские разработки в данной области занимают достойное место в мире - я имею в виду ABBYY FineReader.

Немного истории

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

Год Версия Главные особенности
2003 7.0 Прирост точности распознавания до 25%. Больше всего это отразилось на таблицах, особенно сложных, с окрашенными ячейками, скрытыми разделителями и пр.
2005 8.0 Дальнейшая оптимизация алгоритмов распознавания, в первую очередь направленная на работу не со сканами документов, а с цифровыми фотографиями. Для этого появились дополнительные функции подготовки оригиналов (устранение искажений, выравнивание строк и пр.).
2007 9.0 Появление технологии ADRT, которая учитывает логическую структуру всего обрабатываемого (многостраничного) документа и умеет выделять повторяющиеся элементы (колонтитулы), соединять «перетекающие» объекты (таблицы) и пр.
2009 10.0 Дальнейшее совершенствование ADRT и алгоритмов распознавания, повышение точности обработки оригиналов с низким разрешением до 30%.
2011 11.0 Основное внимание уделено скорости работы программы. «Второе пришествие» черно-белого режима, который на оригиналах хорошего качества дает дополнительное ускорение до 30%.

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

Базовые принципы

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

  1. Целостность (integrity) - объект рассматривается как совокупность своих частей и (для зрительных образов) пространственных отношений между ними. В свою очередь и части получают толкования только в составе всего объекта. Этот принцип помогает строить и уточнять гипотезы, быстро отсекая маловероятные.
  2. Целенаправленность (purposefulness) - поскольку любая интерпретация данных преследует определенную цель, то и распознавание представляет собой процесс выдвижения гипотез об объекте и целенаправленной их проверки. Система, действующая в соответствии с этим принципом, будет не только экономнее расходовать вычислительные мощности, но и реже ошибаться.
  3. Адаптивность (adaptability) - система сохраняет накопленную в процессе работы информацию и использует ее повторно, т. е. самообучается. Этот принцип позволяет создавать и накапливать новые знания и избегать повторного решения одних и тех же задач.

FineReader - единственная в мире OCR-система, которая действует в соответствии с вышеописанными принципами на всех этапах обработки документа. Соответствующая технология носит название IPA - по первым буквам английских терминов. К примеру, согласно принципу целостности, фрагмент изображения будет интерпретироваться как символ, только если в нем присутствуют все структурные части подобных объектов, причем находящиеся в определенных взаимоотношениях. Это помогает заменить перебор большого числа эталонов (в поисках более-менее подходящего) целенаправленной проверкой разумного количества гипотез, причем опираясь на накопленные ранее сведения о возможных начертаниях символа в распознаваемом документе.

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

Такой анализ может проводиться двумя основными способами: сверху-вниз, т. е. от составных элементов к отдельным символам, или, наоборот, снизу-вверх. Чаще всего применяется один из них, но в ABBYY разработали специальный алгоритм MDA (multilevel document analysis, многоуровневый анализ документа), который сочетает оба. Вкратце он выглядит следующим образом: структура страницы анализируется методом сверху-вниз, а воссоздание электронного документа по окончании распознавания происходит снизу-вверх, однако на всех уровнях дополнительно действует механизм обратной связи. В результате резко снижается вероятность грубых ошибок, связанных с неверным распознаванием высокоуровневых объектов.

ADRT

Исторически OCR-системы развивались от распознавания отдельных символов. Эта задача и до сих пор является важнейшей и самой трудной, именно с ней связаны наиболее сложные алгоритмы. Однако вскоре стало понятно, что в ее решении может помочь более высокоуровневая информация (к примеру, о языке документа и правильности написания распознанных слов) - так появились контекстная и словарная проверки. Затем стремление сохранять форматирование и воссоздавать физическую структуру (т. е. взаимное расположение различных объектов) документа привело к необходимости подробного анализа целой страницы. Понятно, что это также заметно влияет на общее качество распознавания, поскольку помогает корректно обрабатывать многоколоночную верстку, таблицы и другие приемы «нелинейного» расположения текста.

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

Именно для этого и была разработана ADRT (Adaptive Document Recognition Technology) - технология анализа и синтеза документа на логическом уровне. В конечном итоге она помогает сделать результат работы FineReader максимально похожим на оригинал. Для этого анализируется изображение всего документа, а распознанные слова объединяются в группы (кластеры) в зависимости от начертания, окружения и местоположения на странице. Таким образом программа как бы видит «логику» разметки документа и в дальнейшем может унифицировать оформление результата.

Благодаря ADRT, FineReader, начиная с версии 9.0, научился обнаруживать, распознавать и воспроизводить следующие структурные части и элементы форматирования документа:

  • основной текст;
  • верхние и нижние колонтитулы;
  • номера страниц;
  • заголовки одного уровня;
  • оглавление;
  • текстовые вставки;
  • подписи к рисункам;
  • таблицы;
  • сноски;
  • зоны подписи/печати;
  • шрифты и стили.

Процесс распознавания

В соответствии с алгоритмом MDA, собственно распознавание начинается сверху-вниз, с уровня страницы. Понятно, что чем больше неверных решений будет сделано на ранних этапах этого процесса, тем больше будет на следующих. Именно поэтому точность распознавания так сильно зависит от качества оригиналов, но и алгоритмы их предварительной обработки могут иметь существенное значение. Так, по мере роста популярности цветных документов в FineReader появилась процедура адаптивной бинаризации (adaptive binarization, AB ). Если отсканировать сразу в черно-белом режиме документ, где присутствуют водяные знаки либо текст расположен на текстурной или цветной подложке, то на изображении неизменно появится «мусор», который затем будет довольно сложно отделить от «полезного» изображения (т. к. исходная информация о нем уже потеряна). Именно поэтому FineReader предпочитает работать с цветными или полутоновыми изображениями, самостоятельно преобразуя их в черно-белые (этот процесс и называется бинаризацией). Но и это не всё. Поскольку цвета текста и фона могут различаться в пределах страницы и даже отдельных строк, AB выделяет слова с более-менее одинаковыми характеристиками и подбирает для каждого оптимальные с точки зрения качества распознавания параметры бинаризации. Именно в этом и состоит адаптивность алгоритма, который, таким образом, является примером использования обратной связи в MDA. Понятно, что эффективность AB сильно зависит от оформления исходных документов - на тестовой базе ABBYY этот алгоритм обеспечил повышение точности распознавания на 14,5%.

Но наиболее интересное, конечно, начинается, когда процесс распознавания опускается на самые нижние уровни. Так называемая процедура линейного деления разбивает строки на слова, а слова на отдельные буквы; далее, в соответствии с принципом IPA, формирует набор гипотез (т. е. возможных вариантов того, что́ это за символ, на какие символы разбито слово и т. д.) и, снабдив каждую оценкой вероятности, передает на вход механизма распознавания символов. Последний состоит из ряда так называемых классификаторов , каждый из которых также формирует ряд гипотез, ранжированных по предполагаемой степени вероятности. Важнейшей характеристикой любого классификатора является среднее положение правильной гипотезы. Понятно, что чем выше она находится, тем меньше работы для последующих алгоритмов - к примеру, словарной проверки. Но для достаточно отлаженных классификаторов чаще всего оценивают такие характеристики, как точность распознавания по первым трем гипотезам или только по первой - т. е., грубо говоря, способность угадать верный ответ с трех или с одной попытки. ABBYY в своих системах применяет следующие типы классификаторов: растровый, признаковый, признаковый дифференциальный, контурный, структурный и структурный дифференциальный - которые сгруппированы на двух логических уровнях.

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

Признаковый классификатор (ПК ), как и следует из его названия, основывается на наличии в изображении признаков того или иного символа. Если всего таких признаков N, то каждую гипотезу можно представить точкой в N-мерном пространстве; соответственно, точность гипотезы будет оцениваться расстоянием от нее до точки, соответствующей эталону (который также нарабатывается на обучающей выборке). Понятно, что типы и количество признаков в значительной степени определяют качество распознавания, поэтому обычно их достаточно много. Этот классификатор также сравнительно быстр и прост, но не слишком устойчив к различным дефектам изображения. Кроме того, ПК оперирует не исходным изображением, а некой моделью, абстракцией, т. е. не учитывает часть информации: скажем, сам факт наличия каких-то важных элементов ничего не говорит об их взаимном расположении. По этой причине ПК используется не вместо, а вместе с РК.

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

Признаковый дифференциальный классификатор (ПДК ) также похож на ПК, однако используется исключительно для различения похожих друг на друга объектов, таких как «m» и «rn». Соответственно, он анализирует только те области, где скрываются отличия, а на вход ему подаются не только исходные изображения, но и гипотезы, сформированные на ранних стадиях распознавания. Принцип его работы, однако, несколько отличается от ПК. На этапе обучения в N-мерном пространстве формируются два «облака» (групп точек) возможных значений для каждого из двух вариантов, затем строится гиперплоскость, отделяющая «облака» друг от друга и примерно равноудаленная от них. Результат распознавания зависит от того, в какое полупространство попадает точка, соответствующая исходному изображению.

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

Структурно-дифференциальный классификатор (СДК ) первоначально применялся для обработки рукописных текстов. Его задача состоит в различении таких похожих объектов, как «C» и «G». Таким образом, СДК основывается на признаках, характерных для каждой пары символов, процесс его обучения еще сложнее, чем у ПДК, а скорость работы ниже, чем у всех предыдущих классификаторов.

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

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

РК ПК КК ПДК* СДК** СК**
Точность по первым трем вариантам, % 99,29 99,81 99,30 99,87 99,88 -
Точность по первому варианту, % 97,57 99,13 95,10 99,26 99,69 99,73

* оценка всего первого уровня OCR-алгоритма ABBYY
** оценка для всего алгоритма после добавления соответствующего классификатора

Любопытно, однако, что, несмотря на довольно высокую точность, алгоритм собственно распознавания не принимает окончательного решения. В соответствии с принципом MDA, гипотезы выдвигаются на каждом логическом уровне, и число их может расти в геометрической прогрессии. Соответственно, последовательная проверка всех гипотез вряд ли окажется эффективной, и потому в OCR-системах ABBYY применяется метод структурирования гипотез, т. е. отнесения их к тем или иным моделям. Последних существует пара десятков, вот только несколько их типов: словарное слово, несловарное слово, арабские цифры, римские цифры, URL, регулярное выражение - а в каждый может входить множество конкретных моделей (к примеру, слово на одном из известных языков, латиницей, кириллицей и т. д.).

Все финальные действия выполняются уже именно с гипотезами, построенными по моделям. К примеру, контекстная проверка определит язык документа и сразу же существенно понизит вероятность моделей с использованием неправильных алфавитов, а словарная компенсирует погрешности при неуверенном распознавании некоторых символов: так, слово «turn» присутствует в словаре английского языка - в отличие от «tum» (во всяком случае, оно отсутствует среди популярных). Хотя приоритет словаря выше, чем у любого классификатора, он не обязательно является последней инстанцией, и в общем случае не останавливает дальнейшие проверки: во-первых, как говорилось выше, имеется модель несловарного слова, во-вторых, специальная организация словарей позволяет с высокой долей вероятности предположить, может ли какое-то неизвестное слово относиться к тому или иному языку. Тем не менее, словарная проверка (и полнота словарей) оказывает существенное влияние на результат распознавания, и в тестах самой ABBYY сокращает количество ошибок практически вдвое.

Не только OCR

Печатные документы - далеко не единственные, представляющие интерес с точки зрения их оцифровки и автоматической обработки. Довольно часто приходится работать с формами, т. е. документами с предопределенными и фиксированными полями, которые заполняются вручную, но сравнительно аккуратно (так называемыми рукопечатными символами) - примером могут служить различные анкеты. Технология их обработки имеет отдельное название - ICR (intelligent character recognition) - и достаточно существенно отличается от OCR. Так, поскольку в данном случае задача состоит не в воссоздании всего документа, а в извлечении из него конкретных данных, то она распадается на две основные подзадачи: нахождение нужных полей и собственно распознавание их содержимого.

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

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

Материал из Техническое зрение

Задача распознавания текстовой информации при переводе печатного и рукописного текста в электронную форму является одной из важнейших составляющих любого проекта, имеющего целью автоматизацию документооборота или внедрение безбумажных технологий. Вместе с тем эта задача является одной из наиболее сложных и наукоемких задач полностью автоматического анализа изображений. Даже человек, читающий рукописный текст, в отрыве от контекста, делает в среднем около $4${\%} ошибок. Между тем, в наиболее ответственных приложениях OCR необходимо обеспечивать более высокую надежность распознавания (свыше 99{\%}) даже при плохом качестве печати и оцифровки исходного текста.

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

Типовые проблемы, связанные с распознаванием символов.

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

  1. разнообразие форм начертания символов;
  2. искажение изображений символов;
  3. вариации размеров и масштаба символов.

Каждый отдельный символ может быть написан различными стандартными шрифтами, например (Times, Gothic, Elite, Courier, Orator), а также - множеством нестандартных шрифтов, используемых в различных предметных областях. При этом различные символы могут обладать сходными очертаниями. Например, "U" и "V", "S" и "5", "Z" и "2", "G" и "6".

Искажения цифровых изображений текстовых символов могут быть вызваны:

  1. шумами печати, в частности, непропечаткой (разрывами слитных черт символов), "слипанием" соседних символов, пятнами и ложными точками на фоне вблизи символов и т. п.;
  2. смещением символов или частей символов относительно их ожидаемого положения в строке;
  3. изменением наклона символов;
  4. искажением формы символа за счет оцифровки изображения с "грубым" дискретом;
  5. эффектами освещения (тени, блики и т. п.) при съемке видеокамерой.

Существенным является и влияние исходного масштаба печати. В принятой терминологии масштаб $10$, $12$ или $17$ означает, что в дюйме строки помещаются $10$, $12$ или $17$ символов. При этом, например, символы масштаба $10$ обычно крупнее и шире символа масштаба $12$.

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

Структура систем оптического распознавания текстов.

Системы OCR состоят из следующих основных блоков, предполагающих аппаратную или программную реализацию:

  1. блок сегментации (локализации и выделения) элементов текста;
  2. блок предобработки изображения;
  3. блок выделения признаков;
  4. блок распознавания символов;
  5. блок постобработки результатов распознавания.

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

Сначала осуществляется выделение $\textit{текстовых областей, строк}$ и разбиение связных текстовых строк на отдельные $\textit{знакоместа}$, каждое из которых соответствует одному текстовому символу.

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

Распознавание символов происходит в процессе сравнения выделенных характерных признаков с эталонными наборами и структурами признаков, формируемыми и запоминаемыми в процессе обучения системы на эталонных и/или реальных примерах текстовых символов.

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

Методы предобработки и сегментации изображений текстовых символов.

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

Под $\textit{сглаживанием}$ в данном случае понимается большая группа процедур обработки изображений, многие из которых были рассмотрены в главе $3$ данной книги. В частности, широко используются морфологические операторы $\textit{заполнения}$ и $\textit{утончения}$. $\textit{Заполнение}$ устраняет небольшие разрывы и пробелы. $\textit{Утончение}$представляет собой процесс уменьшения толщины линии, в которой на каждом шаге области размером в несколько пикселов ставится в соответствие только один пиксел "утонченной линии". Морфологический способ реализации подобных операций на базе операторов расширения и сжатия Серра был описан в главе $3.2$.

Там же описан и специальный алгоритм бинарной фильтрации изображений текстовых символов, получивший название $\textit{стирание бахромы}$. Под "бахромой" здесь понимаются неровности границ символа, которые мешают, во-первых, правильно определить его размеры, а во-вторых, искажают образ символа и мешают его дальнейшему распознаванию по контурному признаку.

$\textit{Геометрическая нормализация}$ изображений документов подразумевает использование алгоритмов, устраняющих наклоны и перекосы отдельных символов, слов или строк, а также включает в себя процедуры, осуществляющие нормализацию символов по высоте и ширине после соответствующей их обработки.

Процедуры $\textit{сегментации}$ осуществляют разбиение изображения документа на отдельные области. Как правило, прежде всего необходимо отделить печатный текст от графики и рукописных пометок. Далее большинство алгоритмов оптического распознавания разделяют текст на символы и распознают их по отдельности. Это простое решение действительно наиболее эффективно, если только символы текста не перекрывают друг друга. Слияние символов может быть вызвано типом шрифта, которым был набран текст, плохим разрешением печатающего устройства или высоким уровнем яркости, выбранным для восстановления разорванных символов.

Дополнительное разбиение текстовых областей и строк на $\textit{слова}$ целесообразно в том случае, если слово является состоятельным объектом, в соответствии с которым выполняется распознавание текста. Подобный подход, при котором единицей распознавания является не отдельный символ, а целое слово, сложно реализовывать из-за большого числа элементов, подлежащих запоминанию и распознаванию, но он может быть полезен и весьма эффективен в конкретных частных случаях, когда набор слов в кодовом словаре существенно ограничен по условию задачи.

Под $\textit{аппроксимацией отрезков линий}$ понимают составление графа описания символа в виде набора вершин и прямых ребер, которые непосредственно аппроксимируют цепочки пикселов исходного изображения. Данная аппроксимация осуществляется для уменьшения объема данных и может использоваться при распознавании, основанном на выделении признаков, описывающих геометрию и топологию изображения.

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

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

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

Сопоставление изображений и шаблонов.

Эта группа методов основана на непосредственном сравнении изображений тестового и эталонного символов. При этом вычисляется $\textit{степень сходства}$ между образом и каждым из эталонов. Классификация тестируемого изображения символа происходит по методу ближайшего соседа. Ранее мы уже рассматривали методы сравнения изображений в разделе 4.2, а именно - методы корреляции и согласованной фильтрации изображений.

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

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

0000000000
000aabb000
00aeeffb00
0ae0000fb0
0ae0ii0fb0
0ae0ii0fb0
0ae0000fb0
0cg0000hd0
0cg0jj0hd0
0cg0jj0hd0
0cg0000hd0
00cgghhd00
000ccdd000
0000000000

может быть распознан как "ноль", если: (не менее $5$ символов "a" являются "1" или не менее $4$ символов $\text{"e"} = \text{"1"}$) И (не менее $5$ символов "b" являются "1" или не менее $4$ символов $\text{"f"} = \text{"1"}$) И (не менее $5$ символов "c" являются "1" или не менее $4$ символов $\text{"g"} = \text{"1"}$) И (не менее $5$ символов "d" являются "1" или не менее $4$ символов $\text{"h"} = \text{"1"}$) И (по крайней мере $3$ символа "i" являются "0") И (по крайней мере $3$ символа "j" являются "0").

Статистические характеристики.

В данной группе методов выделение признаков осуществляется на основе анализа различных по статистических распределений точек. Наиболее известные методики этой группы используют $\textit{вычисление моментов}$ $\textit{и подсчет пересечений}$.

$\textit{Моменты различных порядков}$ с успехом используются в самых различных областях машинного зрения в качестве дескрипторов формы выделенных областей и объектов (см. раздел 4.1). В случае распознавания текстовых символов в качестве набора признаков используют значения моментов совокупности "черных" точек относительно некоторого выбранного центра. Наиболее общеупотребительными в приложениях такого рода являются построчные, центральные и нормированные моменты.

Для цифрового изображения, хранящегося в двумерном массиве, $\textit{построчные моменты}$ являются функциями координат каждой точки изображения следующего вида: $$ m_{pq} =\sum\limits_{x=0}^{M-1} {\sum\limits_{y=0}^{N-1} {x^py^qf(x,y)} } , $$ где $p,q \in \{0,1,\ldots ,\infty \}$; $M$ и $N$ являются размерами изображения по горизонтали и вертикали и $f(x,y)$ является яркостью пиксела в точке $\langle x,y\rangle$ на изображении.

$\textit{Центральные моменты}$ являются функцией расстояния точки от центра тяжести символа: $$ m_{pq} =\sum\limits_{x=0}^{M-1} {\sum\limits_{y=0}^{N-1} {(x-\mathop x\limits^\_)^p(y-\mathop y\limits^\_)^qf(x,y)} } , $$ где $x$ и $y$ "с чертой" - координаты центра тяжести.

$\textit{Нормированные центральные моменты}$ получаются в результате деления центральных моментов на моменты нулевого порядка.

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

В $\textit{методе пересечений}$ признаки формируются путем подсчета того, сколько раз и каким образом произошло пересечение изображения символа с выбранными прямыми, проводимыми под определенными углами. Этот метод часто используется в коммерческих системах благодаря тому, что он инвариантен к дисторсии и небольшим стилистическим вариациям написания символов, а также обладает достаточно высокой скоростью и не требует высоких вычислительных затрат. На рис. 1 показано эталонное изображение символа $R$, система секущих прямых, а также вектор расстояний до эталонных векторов. На рис. 2 представлен пример реального изображения

Пример формирования набора пересечений для эталонного изображения символа $R$

Пример формирования набора пересечений для реального изображения символа $R$

Пример формирования зонного описания для эталонного изображения символа $R$

Пример формирования зонного описания для реального изображения символа $R$; $K = 0{,}387$

символа $R$. Цветом (см. цветную вклейку) также помечена строка, соответствующая ближайшему соседу.

$\textit{Метод зон}$ предполагает разделение площади рамки, объемлющий символ, на области и последующее использование плотностей точек в различных областях в качестве набора характерных признаков. На рис. 3 показано эталонное изображение символа $R$, а на рис. 4 - реальное изображение символа $R$, полученное путем сканирования изображения документа. На обоих изображениях приводятся разбиение на зоны, пиксельные веса каждой зоны, а также вектор расстояний до эталонных векторов эталонных символов. Цветом помечена строка, соответствующая найденному ближайшему соседу.

В методе $\textit{матриц смежности}$ в качестве признаков рассматриваются частоты совместной встречаемости "черных" и "белых" элементов в различных геометрических комбинациях. Метод $\textit{характеристических мест}$ (characteristic-loci) использует в качестве признака число раз, которое вертикальный и горизонтальный векторы пересекают отрезки линий для каждой светлой точки в области фона символа.

Существует также множество других методов данной группы.

Интегральные преобразования.

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

Преимущества методов, использующих преобразования Фурье - Меллина, связаны с тем, что они обладают инвариантностью к масштабированию, вращению и сдвигу символа. Основной недостаток этих методов заключается в нечувствительности к резким скачкам яркости на границах, к примеру, по спектру пространственных частот сложно отличить символ "O" от символа "Q" и т. п. В то же время, при фильтрации шума на границах символа, это свойство может оказаться полезным.

Анализ структурных составляющих.

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

В системах структурного распознавания более сложных шрифтов часто используемыми признаками также являются штрихи, применяемые для определения следующих характерных особенностей изображения: $\textit{концевых точек}$, $\textit{точек пересечения отрезков}$, $\textit{замкнутых циклов}$, а также их положения относительно рамки, объемлющей символ. Рассмотрим, например, следующий способ структурного описания символа. Пусть матрица, содержащая утонченный символ, разделена на девять прямоугольных областей (в виде сетки $33$), каждой из которых присвоен буквенный код от "A" до "I". Символ рассматривается как набор штрихов. При этом штрих, соединяющий некоторые две точки в начертании символа, может являться линией (L) или кривой (C). Штрих считается $\textit{отрезком (дугой)}$ $\textit{кривой}$, если его точки удовлетворяют следующему выражению $$ \left| \frac {1}{n} \sum\limits_{i=1}^n \frac {ax_i +by_i +c}{\sqrt{a^2+b^2}} \right| >0{,}69, $$ в противном случае считается, что это $\textit{прямолинейный отрезок}$. В данной формуле $\langle x_{i},y_{i}\rangle$ является точкой, принадлежащей штриху; $ax+by+c=0$ - уравнение прямой, проходящей через концы штриха, коэффициент $0{,}69$ получен опытным путем. Далее символ может быть описан набором своих отрезков и дуг. Например, запись \{"ALC", "ACD"\} означает наличие прямой, проходящей из области "A" в область "C", и кривой, проходящей из области "A" в область "D" соответственно.

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

Классификация символов.

В существующих системах OCR используются разнообразные алгоритмы $\textit{классификации}$, то есть отнесения признаков к различным классам. Они существенно различаются в зависимости от принятых наборов признаков и применяемой по отношению к ним стратегии классификации.

Для признаковой классификации символов необходимо, в первую очередь, сформировать набор эталонных векторов признаков по каждому из распознаваемых символов. Для этого на стадии $\textit{обучения}$ оператор или разработчик вводит в систему OCR большое количество образцов начертания символов, сопровождаемых указанием значения символа. Для каждого образца система выделяет признаки и сохраняет их в виде соответствующего $\textit{вектора признаков}$. Набор векторов признаков, описывающих символ, называется $\textit{классом}$, или $\textit{кластером}$.

В процессе эксплуатации системы OCR может появиться необходимость расширить сформированную ранее базу знаний. В связи с этим некоторые системы обладают возможностью $\textit{дообучения}$ в реальном режиме времени.

Задачей собственно $\textit{процедуры классификации}$ или $\textit{распознавания}$, выполняемой в момент предъявления системе тестового изображения символа, является определение того, к какому из ранее сформированных классов принадлежит вектор признаков, полученный для данного символа. Алгоритмы классификации основаны на определении степени близости набора признаков рассматриваемого символа к каждому из классов. Правдоподобие получаемого результата зависит от выбранной метрики пространства признаков. Наиболее известной метрикой признакового пространства является традиционное Евклидово расстояние

$$ D_j^E = \sqrt{\sum\limits_{i=1}^N {(F_{ji}^L -F_i^l)^2}}, $$ где $F_{ji}^L$ - $i$-й признак из $j$-го эталонного вектора; $F_i^l $ - $i$-й признак тестируемого изображения символа.

При классификации по методу $\textit{ближайшего соседа}$ символ будет отнесен к классу, вектор признаков которого наиболее близок к вектору признаков тестируемого символа. Следует учитывать, что затраты на вычисления в таких системах возрастают с увеличением количества используемых признаков и классов.

Одна из методик, позволяющих улучшить метрику сходства, основана на статистическом анализе эталонного набора признаков. При этом в процессе классификации более надежным признакам отдается больший приоритет: $$ D_j^E =\sqrt{\sum\limits_{i=1}^N {w_i (F_{ji}^L -F_i^l)^2}}, $$

Где $w_{i}$ - вес $i$-го признака.

Другая методика классификации, требующая знания априорной информации о вероятностной модели текста, основана на использовании формулы Байеса. Из правила Байеса следует, что рассматриваемый вектор признаков принадлежит классу "$j$", если отношение правдоподобия $\lambda $ больше, чем отношение априорной вероятности класса $j$ к априорной вероятности класса $i$.

Постобработка результатов распознавания.

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

Существует большое колличество приложений OCR, использующих глобальные и локальные позиционные диаграммы, триграммы, $n$-граммы, словари и различные сочетания всех этих методов. Рассмотрим два подхода к решению этой задачи: $\textit{словарь}$ и $\textit{набор бинарных матриц}$, аппроксимирующих структуру словаря.

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

Некоторые разработчики с целью преодоления трудностей, связанных с использованием словаря, пытаются выделять информацию о структуре слова из самого слова. Такая информация говорит о степени правдоподобия $\textit{n-грамм}$ (символьных последовательностей, например, пар или троек букв) в тексте, которые также могут быть глобально позиционированными, локально позиционированными или вообще непозиционированными. Например, степень достоверности непозиционированной пары букв может быть представлена в виде бинарной матрицы, элемент которой равен 1 тогда и только тогда, когда соответствующая пара букв имеется в некотором слове, входящем в словарь. Позиционная бинарная диаграмма $D_{ij}$ является бинарной матрицей, определяющей, какая из пар букв имеет ненулевую вероятность возникновения в позиции $\langle i,j\rangle$. Набор всех позиционных диаграмм включает бинарные матрицы для каждой пары положений.

Поколения программ OCR

Перед тем как начать рассмотрение OCR-систем, давайте сначала хотя бы минимально приведем их классификацию для удобства рассмотрения. На данный момент выделяют OCR-системы, а также ICR-системы. Несколько упрощая суть отличий между ними, можно считать, что ICR-системы – это следующее поколение в развитии OCR-систем. В ICR гораздо более активно и серьёзно используются возможности искусственного интеллекта, в частности, ICR-системы часто используются для распознавания рукописных текстов, декоративных непостоянных шрифтов, а также, как самый яркий пример, преодолению тех же систем по защите от спам-ботов – каптч (captcha). Третий, пока ещё только теоретический уровень качества распознавания текста, это IWR, в которой считываются и распознаются не отдельные символы/точки, а считываются и распознаются фразы целиком.

Существует несколько систем, причисляющих себя к категории ICR. Это, прежде всего, FineReader, OmniPage Professional, Readiris Corporate, Type Reader Desktop. Давайте сравним их всех и рассмотрим существующие альтернативы.

Известные отечественные продукты

Сейчас в мире существует более чем 100 самых различных OCR-движков, мы попытались рассмотреть и сравнить здесь лишь самые известные и качественные из них. Среди них существует также большое множество бесплатных OCR-программ любительского уровня, но их качество распознавания существенно ниже их коммерческих аналогов. Для успешного решения бизнес задач (и других серьёзных повседневных задач) лучше ориентироваться на коммерческие системы ICR-класса.

Похожие статьи