OCR

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

Благодаря простоте, надёжности и точности ABBYY FineReader занял достойное место, как в офисах крупнейших корпораций, так и в домах обычных пользователей. Но как именно работает система распознавания? Что происходит «внутри» FineReader?

Принципы IPA (целостности, целенаправленности, адаптивности).

Лучшие в мире системы оптического распознавания – самые точные, быстрые и надёжные – конструирует живая природа. В их числе и та система, что верой и правдой служит каждому из нас, наш внутренний «распознаватель». Механизмы, позволяющие человеку безошибочно узнавать увиденные предметы, пока не исследованы досконально, однако их базовые принципы изучены хорошо. Таковых насчитывают три: целостность, целенаправленность, адаптивность.

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

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

Распознавание: от документа к букве – и обратно

На первом этапе распознавания система анализирует изображения – страница за страницей - и выделяет структуру документа. В самом деле, на каждой из страниц могут находиться и текстовые, и табличные и «картиночные» блоки. Современные документы часто содержат всевозможные элементы дизайна: иллюстрации, колонтитулы, фоновые изображения. Их тоже не следует забывать. Поэтому важно не просто найти какой-то текст, а «вычислить», как устроен весь полученный документ: есть ли в нём разделы и подразделы, ссылки и сноски, таблицы и графики, есть ли оглавление, проставлены ли номера страниц и т.д.

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

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

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

И вот FineReader приступает к наиболее ответственному и кропотливому этапу распознавания - обработке символов. Выделенные изображения символов поступают на рассмотрение механизмов распознавания, называемых классификаторами. В системе ABBYY FineReader применяются классификаторы следующих типов: растровый, признаковый, контурный, структурный, признаково-дифференциальный и структурно-дифференциальный.

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

Затем, в соответствии с принципами IPA, ABBYY FineReader приступает к целенаправленной проверке имеющихся гипотез. Делается это при помощи дифференциального признакового классификатора. В тех случаях, когда требуется различить два особенно похожих символа (например, "1" и "l"), к анализу подключается также дифференциальный структурный классификатор. И в самых трудных ситуациях задействуют структурный классификатор. Кстати, все эти «инструменты» построены на довольно сложных математических вычислениях. Как вам идея по-быстрому (но, чур, без ошибок!) проанализировать взаимные отношения нескольких множеств в многомерном пространстве? А FineReader это делает буквально «на каждом шагу», т.е. для каждого символа.

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

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

Структурирование гипотез

Итак, на каждом логическом уровне документа выдвигается ряд гипотез. Каждая из них на следующем уровне порождает ещё несколько предположений. В итоге, FineReader оперирует огромным количеством гипотез, учитывающих все возможные варианты деления строки на слова, слова на буквы, и т.д. Поэтому, для быстрого и точного принятия решений система объединяет гипотезы в многоуровневые структуры - модели. Существуют такие типы моделей, как словарное слово, несловарное слово, e-mail или URL, цифры с префиксом или суффиксом, регулярное выражение, и т.д. В результате структурирования количество подлежащих проверке гипотез сильно сокращается, так что последующая проверка происходит максимально быстро и эффективно.

Например, в документе было английское слово “turn”. Предположим, при разделении слова на символы было выдвинуто две гипотезы: первая соответствует прочтению “tum”, вторая – “turn”. Классификаторы, обработав символы, в свою очередь предложили для каждой буквы обоих слов некоторый ряд гипотез. Казалось бы, теперь надо просто взять гипотезу с максимальным весом! Однако это было бы неверно. Далеко не всегда наиболее вероятная гипотеза – истинная.

Поэтому FineReader сначала проведёт словарную проверку. Она покажет, что в словаре английского языка слова “tum” нет, а “turn” - есть. Следовательно, гипотеза относительно слова “turn” приобретёт ещё больший вес, что позволит ей в дальнейшем оказаться «победителем». Заметим, что «авторитет» словаря значительно выше, нежели у любого классификатора, поэтому в нашем примере даже при полностью слившихся буквах r и n итоговое решение будет принято правильно.

Для обеспечения надёжной работы механизма словарной проверки лингвистами компании ABBYY были созданы морфологически структурированные словари. Получился гибкий и мощный инструмент, позволяющий ABBYY FineReader моделировать всевозможные словоформы, в том числе и так называемые композиты (наподобие «велотренажёр», «авторалли», и т.п.). Морфологически структурированный словарь занимает значительно меньше дискового пространства и охватывает более 98% реального словарного объёма языка.

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

Синтез и экспорт: формируем электронный документ

Итак, все слова распознаны. Пользуясь информацией, полученной при анализе структуры документа, ABBYY FineReader расставляет по местам строки и абзацы (не забывая присвоить подходящий шрифт и прочее текстовое оформление) . Формируются колонки и таблицы, занимают свои места буквицы и колонтитулы, размещаемые на странице в точном соответствии с оригиналом. Тут идёт в дело вся информация, полученная при анализе документа.

Но вот синтез завершён. Теперь FineReader обращается к пользователю за подтверждением - правильно ли распознано? Нет ли ошибок?

Ошибки, конечно, случаются. Систем оптического распознавания символов, работающих с точностью 100%, не существует. В большинстве случаев количество допускаемых FineReader ошибок не превышает 1-3 на страницу при среднем качестве оригинального документа. Исправить пару специально подсвеченных ошибок, конечно, существенно проще и быстрее, чем перепечатывать и форматировать весь документ целиком.

При помощи FineReader пользователь получает точную электронную копию страницы; при необходимости её можно отредактировать, либо сохранить «как есть». Специальный модуль программы может экспортировать результат практически в любой из современных форматов электронных документов. Для сохранения текста удобен формат Microsoft Word, а если исходный документ представлял собой таблицу, то резонно сохранить электронную копию в формате Microsoft Excel. Если статью предполагается опубликовать в сети Интернет, можно использовать формат HTML, PDF или DjVue, а для электронных книг, скорее всего, лучше подойдут FB2 или ePub.

Словом, в числе форматов, поддерживаемых ABBYY FineReader, найдётся вариант на все случаи жизни. И результат будет настолько близок к оригиналу, насколько позволяет выбранный пользователем формат. Сравнивая только что отсканированную страницу с получившимся электронным документом, пользователь сможет уверенно сказать – распознавание завершено!