Оптическое распознавание символов

Оптическое распознавание символов — электронный или механический процесс преобразования изображений напечатанного, рукописного либо печатного текста в машинно-кодированный текст. Источниками изображений могут служить сканированные документы, фотографии документов, фотографии сцен (например, текст на вывесках и билбордах на пейзажной фотографии), а также наложенные на изображение субтитры (например, с телевизионной трансляции)[1].

Применение

ОРС широко применяется для ввода данных с бумажных носителей — паспортов, счетов, выписок из банков, чеков, визитных карточек, почты, печатных документов и других видов документации. Этот метод является распространённым способом оцифровки печатных текстов, позволяя их электронную обработку, поиск, компактное хранение, отображение в интернет-пространстве, а также использование в машинных процессах вроде когнитивных вычислений, машинного перевода, систем синтеза речи по тексту, извлечения ключевых данных и текстового анализа[2]. ОРС является областью исследования в распознавании образов, искусственном интеллекте и компьютерном зрении.

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

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

Программное обеспечение может применяться для:

  • ввода данных из деловых документов (чеки, паспорта, счета, банковские выписки, чеки и др.);
  • автоматического распознавания номерных знаков транспортных средств;
  • идентификации паспортов и извлечения информации в аэропортах;
  • автоматического извлечения ключевой информации из страховых документов;
  • распознавания дорожных знаков[3];
  • извлечения информации с визитных карточек в список контактов[4];
  • создания текстовых версий печатных документов, например для проектов массового сканирования книг (например, Проект Гутенберг);
  • индексирования электронных изображений печатных документов для поиска (например, Google Книги);
  • преобразования рукописи в реальном времени для управления компьютером (ручные интерфейсы);
  • взлома или тестирования устойчивости антибот-систем CAPTCHA, хотя последние специально проектируются для противодействия ОРС[5][6][7];
  • вспомогательных технологий для незрячих и слабовидящих пользователей;
  • автоматизации инструкций для производственных линий путём идентификации изображений САПР в базе данных, релевантных текущему проектированию;
  • обеспечения поиска по сканированным документам с помощью превращения их в PDF.

История

Истоки оптического распознавания символов восходят к технологиям, связанным с телеграфией и созданием устройств для чтения для слепых[8]. В 1914 году Эммануэль Голдберг разработал машину, которая считывала символы и преобразовывала их в стандартный телеграфный код[9]. Параллельно Эдмунд Фурнье д'Альб создал оптофон — ручной сканер, который при проведении по печатной странице воспроизводил звуки, соответствующие отдельным буквам или символам[10].

В конце 1920-х — начале 1930-х гг. Эммануэль Голдберг разработал так называемую «статистическую машину» для поиска по архивам микрофильмов с использованием системы оптического распознавания кода. В 1931 году ему был выдан патент США № 1,838,389 на это изобретение; впоследствии патент был приобретён корпорацией IBM.

Для пользователей с нарушениями зрения

В 1974 году Рэй Курцвайл основал компанию Kurzweil Computer Products, Inc. и продолжил разработку ОРС, способного распознавать текст, напечатанный практически любым шрифтом («омнишрифтовый» ОРС). (Курцвайлу часто приписывают изобретение подобной системы, однако омнишрифтовое распознавание использовалось уже другими компаниями, в том числе CompuScan, в конце 1960-х — начале 1970-х гг[8].[11]) Технология была использована для создания читающей машины для незрячих, преобразовывающей текст в речь при помощи плоскопанельного сканера с ПЗС-матрицей и синтезатора речи. 13 января 1976 года Компанию презентовали на широко освещённой в прессе конференции вместе с Национальной федерацией слепых США. В 1978 году начались коммерческие продажи программы для ОРС; одним из первых покупателей стала компания LexisNexis, использовавшая её для загрузки юридических и новостных документов в электронные базы данных. Спустя два года Курцвайл продал свою компанию Xerox, впоследствии технологии перешли к фирмам Scansoft и Nuance Communications.

В 2000-х ОРС стал доступен в виде онлайн-сервисов (WebOCR), в облачных вычислениях и мобильных приложениях, например, для перевода вывесок на иностранном языке в реальном времени с помощью смартфона. Благодаря распространению смартфонов и умных очков ОРС также широко применяется для извлечения текста с изображений, снятых камерой мобильного устройства, с последующим использованием программного интерфейса ОРС (API) для извлечения текста[12][13].

Для большинства распространённых письменностей (латиница, кириллица, арабский, иврит, индийские алфавиты, бенгальский, деванагари, тамильский, китайский, японский, корейский и др.) доступны коммерческие и свободные ОРС-системы.

Типы

  • Оптическое распознавание символов (ОРС) — распознавает печатный текст посимвольно.
  • Оптическое распознавание слов — распознаёт печатный текст по словам (актуально для языков, где между словами имеется пробел); в большинстве случаев также называются ОРС.
  • Интеллектуальное распознавание символов (ICR) — распознаёт рукописный печатный или курсивный текст посимвольно, как правило, с использованием методов машинного обучения.
  • Интеллектуальное распознавание слов (IWR) — распознаёт рукописный печатный или курсивный текст по словам, особенно эффективно для языков, где символы не разделяются пробелами в курсиве.

ОРС обычно является офлайн-процессом, анализирующим статический документ, однако существуют облачные сервисы, предоставляющие ОРС через онлайн-интерфейсы. Анализ движений ручного письма (handwriting movement analysis) применяется как ввод для рукописного распознавания[14]. Эта технология, иногда называемая онлайн- или динамическим распознаванием символов, учитывает не только форму символов, но и траекторию письма, очередность и направление движений, а также характер прижимания и отрыва пера.

Технологии

Предобработка

Программное обеспечение для ОРС обычно предварительно обрабатывает изображения для повышения успешности распознавания. Применяются следующие методы[15]:

  • коррекция наклона — если документ был неправильно выровнен при сканировании, изображение наклоняется так, чтобы строки текста стали строго горизонтальными или вертикальными;
  • устранение шумов — удаление положительных и отрицательных точек, сглаживание краёв;
  • бинаризация — преобразование изображения из цветного или оттенков серого в чёрно-белое (бинарное), что помогает выделить текст относительно фона[16][17][18][19];
  • удаление линий — очистка от рамок и лишних графических элементов;
  • анализ структуры или зонирование — определение столбцов, абзацев, подписей к иллюстрациям как отдельных блоков (особенно важно для много-колоночных макетов и таблиц);
  • обнаружение строк и слов — выделение базовых линий, раздельное определение слов и символов;
  • определение алфавита — в многоязычных документах скрипт может меняться на уровне слова, поэтому для его распознавания необходимо корректно определить язык[20];
  • изоляция символов — отделение склеившихся символов и объединение разорванных;
  • нормализация соотношения сторон и масштаба[21].

Для шрифтов с фиксированным шагом сегментация осуществляется сравнительно просто с помощью равномерной сетки; для пропорциональных нужны более сложные методы.

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

В основе ОРС лежат две основные группы алгоритмов:

  • Сопоставление матриц — сравнение изображения символа с эталонами по пикселям. Эффективно для стандартных шрифтов и не работает при встрече новых, незнакомых систем шрифтов.
  • Выделение признаков — разложение символов на линии, дуги, точки пересечения, замкнутые контуры и другие характеристики. Снижает размерность задачи и упрощает вычисления; широко применяется в современных ОРС, включая современные системы рукописного ввода[22]. Для классификации часто используют метод ближайших соседей (k-ближайших соседей)[23].

Системы типа CuneiForm и Tesseract используют двухпроходное распознавание: результат с наиболее вероятными символами первого прохода применяется для уточнения распознавания на втором[24]. Современные системы (например, Google Docs OCR, ABBYY FineReader, Transym) используют искусственные нейронные сети, обучаемые для распознавания сразу целых строк текста.

Существуют методы, автоматически разбивающие страницу на фрагменты по макету документа и выполняющие ОРС по частям с адаптацией порога уверенности — для повышения точности[25].

Результаты ОРС могут сохраняться в стандартизированном формате ALTO (XML), или в hOCR и PAGE XML. Подробнее см. Сравнение ОРС-систем.

Постобработка

Точность ОРС может увеличиваться за счёт ограничения выдачи словарём (лексиконом) допустимых слов[15]. Например, используются все слова выбранного языка или отраслевые термины. Такой подход затрудняет распознавание собственных имен и неологизмов. Некоторые системы, в частности Tesseract, используют словарь для повышения точности ещё на этапе сегментации символов[24].

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

Анализ соседних слов (near-neighbor analysis) позволяет использовать частотную статистику для коррекции ошибок[26], использование знаний о грамматике языка также повышает точность распознавания.

Для дальнейшей оптимизации после ОРС применяют алгоритм расстояния Левенштейна[27].

Оптимизация под задачи

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

The New York Times внедрила ОРС в инструмент Document Helper, позволяющий ускорить обработку документов перед публикациями; ускорение обработки достигает до 5400 страниц в час[28].

Альтернативные методы

Существуют и иные способы решения задачи распознавания помимо совершенствования классических ОРС-алгоритмов.

Управление входными данными

Специальные шрифты (OCR-A, OCR-B, MICR) с чёткой спецификацией форм, размеров и расстояний между символами повышают точность (например, при обработке банковских чеков). Популярные ОРС-системы часто изначально не поддерживают такие шрифты, однако Tesseract позволяет дообучать движок[29].

Поля-комбинации (comb fields) — предварительно напечатанные ячейки для написания одного символа в каждой, упрощают распознавание[26]. Часто печатаются специальными «исчезающими» красками, которые легко устраняются системой ОРС[26].

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

Зональное распознавание (template OCR) ограничивает анализ определённой областью документа.

Краудсорсинг

Привлечение пользователей к распознаванию символов (краудсорсинг) позволяет быстрее и точнее обрабатывать изображения, чем автоматические алгоритмы. Примеры — Amazon Mechanical Turk, reCAPTCHA. Национальная библиотека Финляндии разработала онлайн-интерфейс для коррекции текстов по стандарту ALTO[30]. Метод ранжированных соревнований между разработчиками также зарекомендовал себя для повышения эффективности алгоритмов выделения объектов на изображениях[31].

Точность

По заказу Министерства энергетики США (DOE) Институт исследований информационных наук (ISRI) в 1992–1996 гг. проводил авторитетное ежегодное тестирование точности ОРС[33].

Даже для печатных текстов латиницей стопроцентная точность при отличном качестве изображения не гарантирована. Исследования по газетам XIX–XX вв. показали диапазон точности коммерческих систем ОРС от 81 до 99% по символам[34]. Полную точность можно достичь только ручной верификацией или аутентификацией по словарю данных. Распознавание рукописных и курсивных текстов, а также азиатских иероглифических письмён остаётся сложной научной проблемой, особенно при большом количестве черт на один символ (например, китайские иероглифы). Для тестирования систем рукописного ввода часто используют базу MNIST.

Реальная точность заметно зависит от способа измерения (по символам или по словам, с поправкой на словарь). Например, при 1% ошибочных символов, доля ошибочных слов может превысить 5% при отсутствии корректирующего словаря[35]. На практике большое значение имеет состав и размер тестовой выборки[36].

Типичная трудность распознавания старых текстов — путаница между длинной S (ſ) и буквой f[37][32].

В последние годы получили распространение коммерческие онлайн-сервисы для распознавания рукопечатных текстов (см. история планшетов). Для аккуратно написанных символов точность составляет 80–90%, но этого всё равно недостаточно для многих задач без ручной корректировки.

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

Большинство программ ОРС позволяют настраивать «порог уверенности»: если он не достигнут, пользователь получает уведомление для ручной проверки.

Ошибки, появившиеся из-за автоматического распознавания текстов, иногда называются сканно (по аналогии с типографской ошибкой — typo)[38][39].

Юникод

Для поддержки ОРС-символов в стандарте Unicode с июня 1993 года (версия 1.1) введён отдельный блок кодов.

Некоторые из этих символов соответствуют специальным шрифтам MICR, OCR-A или OCR-B.

См. также

Примечания

Литература

  • Schantz, H. F. The History of OCR, Optical Character Recognition. Recognition Technologies Users Association, 1982. ISBN 9780943072012.
  • Kapidakis, S.; Mazurek, C.; Werla, M., eds. Research and Advanced Technology for Digital Libraries. Springer, 2015.