Введение
Компьютерное распознавание визуального текста
Оптическое распознавание символов или оптический читатель символов (OCR) – это электронное или механическое преобразование изображений печатного, рукописного или машинописного текста в текст, закодированный для машинной обработки, будь то из отсканированного документа, фотографии документа, снимка сцены (например, текста на вывесках и рекламных щитах на фотографии пейзажа) или текста субтитров, наложенного на изображение (например, из телевизионной трансляции). Широко используется как способ ввода данных из печатных документов – будь то паспортные данные, счета-фактуры, банковские выписки, электронные чеки, визитные карточки, почта, печатные формы или любая другая подходящая документация. Это распространенный метод оцифровки печатных текстов для последующего электронного редактирования, поиска, более компактного хранения, публикации в сети и использования в машинных процессах, таких как когнитивные вычисления, машинный перевод, синтез речи, извлечение ключевых данных и текстовый анализ. OCR является областью исследований в области распознавания образов, искусственного интеллекта и компьютерного зрения. Ранние версии требовали обучения на изображениях каждого символа и работали с одним шрифтом за раз. В настоящее время широко распространены передовые системы, способные обеспечивать высокую точность распознавания для большинства шрифтов и поддерживающие различные форматы файлов изображений. Некоторые системы способны воспроизводить форматированный вывод, максимально приближенный к исходной странице, включая изображения, колонки и другие нетекстовые элементы.
История
Раннее оптическое распознавание символов берет свое начало в технологиях, связанных с телеграфией и созданием устройств для чтения для незрячих. В 1914 году Эммануэль Голдберг разработал машину, которая распознавала символы и преобразовывала их в стандартный телеграфный код. Параллельно с этим Эдмунд Фурнье д’Альбе разработал оптофон – портативный сканер, который, перемещаясь по напечатанной странице, воспроизводил тоны, соответствующие определенным буквам или символам. В конце 1920-х и в 1930-х годах Эммануэль Голдберг разработал то, что он назвал «Статистической машиной» для поиска в микрофильмовых архивах с использованием системы оптического распознавания кодов. В 1931 году ему был выдан патент США № 1,838,389 на данное изобретение. Патент был приобретен компанией IBM.
Пользователи с нарушениями зрения
В 1974 году Рэй Курцвейл основал компанию Kurzweil Computer Products, Inc. и продолжил разработку технологии оптического распознавания символов (OCR) с поддержкой любых шрифтов, способной распознавать текст, напечатанный практически любым шрифтом. (Курцвейлу часто приписывают изобретение OCR с поддержкой любых шрифтов, но эта технология использовалась компаниями, включая CompuScan, еще в конце 1960-х и 1970-х годов.) Курцвейл использовал эту технологию для создания устройства для чтения для незрячих, позволяющего компьютеру озвучивать текст. Устройство включало в себя планшетный сканер типа CCD и синтезатор речи. 13 января 1976 года готовый продукт был представлен на широко освещаемой пресс-конференции под руководством Курцвейла и лидеров Национальной федерации слепых. В 1978 году компания Kurzweil Computer Products начала продавать коммерческую версию компьютерной программы оптического распознавания символов. LexisNexis стала одним из первых клиентов и приобрела программу для загрузки юридических документов и новостных материалов в свои развивающиеся онлайн-базы данных. Два года спустя Курцвейл продал свою компанию Xerox, которая впоследствии выделила ее в отдельную компанию Scansoft, которая затем объединилась с Nuance Communications. В 2000-х годах OCR стала доступна онлайн как услуга (WebOCR), в облачной среде и в мобильных приложениях, например, для перевода в реальном времени дорожных знаков на иностранных языках с помощью смартфона. С появлением смартфонов и умных очков OCR может использоваться в приложениях для мобильных устройств, подключенных к Интернету, которые извлекают текст, полученный с камеры устройства. Эти устройства, не имеющие встроенной функциональности OCR, обычно используют OCR API для извлечения текста из файла изображения, захваченного устройством. OCR API возвращает извлеченный текст вместе с информацией о местоположении распознанного текста в исходном изображении обратно в приложение устройства для дальнейшей обработки (например, преобразования текста в речь) или отображения. Существуют различные коммерческие и открытые системы OCR для большинства распространенных систем письма, включая латинскую, кириллическую, арабскую, иврит, индийскую, бенгальскую (бангла), деванагари, тамильскую, китайскую, японскую и корейскую письменность.
Типы
Оптическое распознавание символов (OCR) анализирует текст, набранный на машинке, по одному символу или глифу за раз. Оптическое распознавание слов анализирует текст, набранный на машинке, по одному слову за раз (для языков, использующих пробел как разделитель слов). Обычно это просто называют "OCR". Интеллектуальное распознавание символов (ICR) также анализирует рукописный печатный или курсивный текст по одному глифу или символу за раз, как правило, с применением машинного обучения. Интеллектуальное распознавание слов (IWR) также анализирует рукописный печатный или курсивный текст по одному слову за раз. Это особенно полезно для языков, где в курсивном написании символы не разделены. OCR обычно представляет собой автономный процесс, анализирующий статический документ. Существуют облачные сервисы, предоставляющие онлайн-сервис OCR API. Анализ движения при письме может использоваться в качестве входных данных для распознавания рукописного текста. Вместо простого использования форм глифов и слов, эта техника способна фиксировать динамику, такую как порядок прорисовки сегментов, направление и характер нажатия и отрыва пера. Эта дополнительная информация может повысить точность процесса. Эта технология также известна как "распознавание символов в режиме реального времени", "динамическое распознавание символов", "онлайн-распознавание символов" и "интеллектуальное распознавание символов".
Последующая обработка
Точность оптического распознавания символов (OCR) может быть повышена, если вывод ограничивается лексиконом — списком слов, допустимых в данном документе. Например, "Вашингтон, округ Колумбия" встречается в английском языке гораздо чаще, чем "Washington DOC". Знание грамматики языка, подвергающегося сканированию, также может помочь определить, является ли слово, скорее всего, глаголом или существительным, что повышает точность. Алгоритм расстояния Левенштейна также применяется при постобработке OCR для дальнейшей оптимизации результатов, полученных от OCR API.
Оптимизация для конкретного приложения
В последние годы крупные поставщики технологий OCR начали дорабатывать системы OCR для более эффективной обработки определенных типов входных данных. Помимо специализированного словаря для конкретного приложения, улучшить производительность можно, учитывая бизнес-правила, стандартные выражения или богатую информацию, содержащуюся в цветных изображениях. Эта стратегия называется "OCR, ориентированный на приложение" или "Настраиваемый OCR", и применяется для распознавания текста на номерных знаках, счетах-фактурах, скриншотах, удостоверениях личности, водительских правах и в автомобильном производстве. The New York Times адаптировала технологию OCR, создав собственный инструмент под названием Document Helper, который позволяет их команде интерактивных новостей ускорить обработку документов, требующих проверки. Они отмечают, что это позволяет им обрабатывать до 5400 страниц в час для подготовки материалов к ознакомлению журналистов.
Обходные пути
Существует несколько методов решения проблемы распознавания символов, отличных от усовершенствованных алгоритмов оптического распознавания символов.
Принуждение к более качественному вводу
Специальные шрифты, такие как OCR A, OCR B или MICR, с точно заданным размером, межсимвольным интервалом и уникальными формами символов, обеспечивают более высокую точность при транскрипции при обработке банковских чеков. Ряд известных OCR-движков были разработаны для распознавания текста в распространенных шрифтах, таких как Arial или Times New Roman, и не способны распознавать текст, набранный в специализированных шрифтах, которые значительно отличаются от общеупотребительных. Поскольку Google Tesseract можно обучить распознавать новые шрифты, он способен распознавать шрифты OCR A, OCR B и MICR. Поля-направляющие – это предварительно напечатанные ячейки, предназначенные для того, чтобы пользователь писал более разборчиво, по одному символу в каждой ячейке. Краудсорсинг также используется не для непосредственного распознавания символов, а для привлечения разработчиков программного обеспечения к созданию алгоритмов обработки изображений, например, посредством турниров с ранжированием.
Точность
По заказу Министерства энергетики США (DOE), Научно-исследовательский институт информационных наук (ISRI) был поставлен перед задачей способствовать улучшению автоматизированных технологий для распознавания машинопечатных документов и проводил наиболее авторитетный ежегодный тест точности OCR с 1992 по 1996 год. Распознавание напечатанного латинского текста до сих пор не является 100% точным, даже при наличии четких изображений. Одно исследование, основанное на распознавании газетных страниц XIX и начала XX века, показало, что точность OCR для коммерческого программного обеспечения варьировалась от 81% до 99%; абсолютная точность может быть достигнута с помощью ручной проверки или аутентификации по словарю данных. Другие области, включая распознавание рукописного текста, курсивного почерка и печатного текста на других системах письма (особенно восточноазиатских языках, где один символ состоит из множества штрихов), остаются предметом активных исследований. База данных MNIST обычно используется для тестирования способности систем распознавать рукописные цифры. Показатели точности могут измеряться различными способами, и способ измерения может существенно влиять на заявленный уровень точности. Например, если контекст слова (лексикон) не используется для исправления программного обеспечения, выдающего несуществующие слова, то ошибка в 1% символов (точность 99%) может привести к ошибке в 5% или более, если измерение основано на правильности распознавания каждого целого слова без ошибок в буквах. Использование достаточно большого набора данных важно для решений по распознаванию почерка, основанных на нейронных сетях. С другой стороны, создание естественных наборов данных – сложная и трудоемкая задача. Примером трудностей, связанных с оцифровкой старого текста, является неспособность OCR различать символы "длинной s" и "f".
Юникод
Символы для поддержки оптического распознавания символов были добавлены в стандарт Unicode в июне 1993 года с выпуском версии 1.1. Некоторые из этих символов взяты из шрифтов, предназначенных для MICR, OCR A или OCR B.