Оптическое распознавание символов или оптическое считывание символов ( OCR ) — это электронное или механическое преобразование изображений печатного, рукописного или напечатанного текста в машинно-кодированный текст, будь то отсканированный документ, фотография документа, фотография сцены (например, текст на вывесках и рекламных щитах на пейзажной фотографии) или текст субтитров, наложенный на изображение (например, из телевизионной передачи). [1]
Широко используемый как форма ввода данных из печатных бумажных записей данных — будь то паспортные документы, счета-фактуры, банковские выписки , компьютеризированные квитанции, визитные карточки, почта, печатные данные или любая подходящая документация — это распространенный метод оцифровки печатных текстов, чтобы их можно было редактировать в электронном виде, искать, хранить более компактно, отображать в Интернете и использовать в машинных процессах, таких как когнитивные вычисления , машинный перевод , (извлеченный) текст в речь , ключевые данные и интеллектуальный анализ текста . OCR — это область исследований в области распознавания образов , искусственного интеллекта и компьютерного зрения .
Ранние версии требовали обучения с изображениями каждого символа и работали с одним шрифтом за раз. Современные системы, способные обеспечивать высокую степень точности для большинства шрифтов, теперь распространены и поддерживают множество форматов входных файлов изображений . [2] Некоторые системы способны воспроизводить форматированный вывод, который максимально приближен к исходной странице, включая изображения, столбцы и другие нетекстовые компоненты.
Раннее оптическое распознавание символов можно проследить до технологий, связанных с телеграфией и созданием считывающих устройств для слепых. [3] В 1914 году Эмануэль Голдберг разработал машину, которая считывала символы и преобразовывала их в стандартный телеграфный код. [4] Одновременно с этим Эдмунд Фурнье д'Альб разработал Optophone , ручной сканер, который при перемещении по печатной странице производил тоны, соответствующие определенным буквам или символам. [5]
В конце 1920-х и в 1930-х годах Эмануэль Голдберг разработал то, что он назвал «Статистической машиной» для поиска в архивах микрофильмов с использованием оптической системы распознавания кодов. В 1931 году он получил патент США под номером 1,838,389 на это изобретение. Патент был приобретен IBM .
В 1974 году Рэй Курцвейл основал компанию Kurzweil Computer Products, Inc. и продолжил разработку OCR с несколькими шрифтами , которая могла распознавать текст, напечатанный практически любым шрифтом. (Курцвейлу часто приписывают изобретение OCR с несколькими шрифтами, но он использовался компаниями, включая CompuScan, в конце 1960-х и 1970-х годах. [3] [6] ) Курцвейл использовал эту технологию для создания читающей машины для слепых людей, чтобы компьютер мог читать им текст вслух. Устройство включало планшетный сканер типа CCD и синтезатор текста в речь. 13 января 1976 года готовый продукт был представлен во время широко освещавшейся пресс-конференции, возглавляемой Курцвейлом и лидерами Национальной федерации слепых . [ требуется цитата ] В 1978 году Kurzweil Computer Products начала продавать коммерческую версию компьютерной программы оптического распознавания символов. LexisNexis был одним из первых клиентов и купил программу для загрузки юридических документов и новостных документов в свои зарождающиеся онлайн-базы данных. Два года спустя Курцвейл продал свою компанию Xerox , которая в конечном итоге выделила ее в Scansoft , которая слилась с Nuance Communications .
В 2000-х годах OCR стал доступен онлайн как услуга (WebOCR), в среде облачных вычислений и в мобильных приложениях, таких как перевод в реальном времени знаков на иностранных языках на смартфоне . С появлением смартфонов и умных очков OCR можно использовать в приложениях для мобильных устройств, подключенных к Интернету, которые извлекают текст, захваченный с помощью камеры устройства. Эти устройства, не имеющие встроенной функциональности OCR, обычно используют API OCR для извлечения текста из файла изображения, захваченного устройством. [7] [8] API OCR возвращает извлеченный текст вместе с информацией о местоположении обнаруженного текста на исходном изображении обратно в приложение устройства для дальнейшей обработки (например, преобразования текста в речь) или отображения.
Различные коммерческие и открытые системы OCR доступны для большинства распространенных систем письма , включая латиницу, кириллицу, арабский, иврит, индийские, бенгальский (бангла), деванагари, тамильский, китайский, японский и корейский символы.
Механизмы OCR были преобразованы в программные приложения, специализирующиеся на различных темах, таких как квитанции, счета-фактуры, чеки и юридические платежные документы.
Программное обеспечение может быть использовано для:
OCR — это, как правило, автономный процесс, который анализирует статический документ. Существуют облачные сервисы, которые предоставляют онлайн-сервис OCR API. Анализ движения рукописного текста может использоваться в качестве входных данных для распознавания рукописного текста . [14] Вместо того, чтобы просто использовать формы глифов и слов, этот метод способен фиксировать движение, например порядок, в котором рисуются сегменты , направление и схему опускания и поднятия ручки. Эта дополнительная информация может сделать процесс более точным. Эта технология также известна как «онлайн-распознавание символов», «динамическое распознавание символов», «распознавание символов в реальном времени» и «интеллектуальное распознавание символов».
Программное обеспечение OCR часто предварительно обрабатывает изображения, чтобы повысить шансы на успешное распознавание. Методы включают: [15]
Сегментация шрифтов с фиксированным шагом выполняется относительно просто путем выравнивания изображения по равномерной сетке на основе того, где вертикальные линии сетки будут реже всего пересекать черные области. Для пропорциональных шрифтов требуются более сложные методы, поскольку пробелы между буквами иногда могут быть больше, чем между словами, а вертикальные линии могут пересекать более одного символа. [22]
Существует два основных типа основного алгоритма OCR, которые могут создать ранжированный список символов-кандидатов. [23]
Такое программное обеспечение, как Cuneiform и Tesseract, использует двухпроходный подход к распознаванию символов. Второй проход известен как адаптивное распознавание и использует формы букв, распознанные с высокой уверенностью на первом проходе, чтобы лучше распознавать оставшиеся буквы на втором проходе. Это выгодно для необычных шрифтов или низкокачественных сканов, где шрифт искажен (например, размыт или выцветает). [22]
По состоянию на декабрь 2016 года [обновлять]современное программное обеспечение OCR включает Google Docs OCR, ABBYY FineReader и Transym. [26] [ требуется обновление ] Другие, такие как OCRopus и Tesseract, используют нейронные сети , которые обучены распознавать целые строки текста, а не фокусироваться на отдельных символах.
Метод, известный как итеративный OCR, автоматически обрезает документ на разделы на основе макета страницы. Затем OCR выполняется для каждого раздела индивидуально с использованием переменных порогов уровня достоверности символов для максимизации точности OCR на уровне страницы. Патент Патентного ведомства США выдал патент на этот метод. [27]
Результат OCR может быть сохранен в стандартизированном формате ALTO , специальной схеме XML , поддерживаемой Библиотекой Конгресса США . Другие распространенные форматы включают hOCR и PAGE XML.
Список программного обеспечения для оптического распознавания символов см. в разделе Сравнение программного обеспечения для оптического распознавания символов .
Точность OCR может быть увеличена, если вывод ограничен словарем — списком слов, которым разрешено встречаться в документе. [15] Это могут быть, например, все слова английского языка или более технический словарь для определенного поля. Этот метод может быть проблематичным, если документ содержит слова, которых нет в словаре, например, имена собственные . Tesseract использует свой словарь для влияния на этап сегментации символов для повышения точности. [22]
Выходной поток может представлять собой обычный текстовый поток или файл символов, но более сложные системы OCR могут сохранять исходную компоновку страницы и создавать, например, аннотированный PDF-файл , включающий как исходное изображение страницы, так и текстовое представление с возможностью поиска.
Анализ «ближайшего соседа» может использовать частоты совместного появления для исправления ошибок, отмечая, что определенные слова часто встречаются вместе. [28] Например, «Washington, DC» обычно встречается в английском языке гораздо чаще, чем «Washington DOC».
Знание грамматики сканируемого языка также может помочь определить, например, является ли слово глаголом или существительным, что обеспечивает большую точность.
Алгоритм расстояния Левенштейна также использовался при постобработке OCR для дальнейшей оптимизации результатов API OCR. [29]
В последние годы [ когда? ] основные поставщики технологий OCR начали настраивать системы OCR для более эффективной работы с определенными типами ввода. Помимо специфического для приложения лексикона, более высокую производительность можно получить, принимая во внимание бизнес-правила, стандартные выражения, [ необходимо разъяснение ] или богатую информацию, содержащуюся в цветных изображениях. Эта стратегия называется «ориентированным на приложение OCR» или «настраиваемым OCR» и применялась к OCR номерных знаков , счетов-фактур , снимков экрана , удостоверений личности , водительских прав и производства автомобилей .
The New York Times адаптировала технологию OCR в фирменный инструмент, который они назвали Document Helper , который позволяет их интерактивной новостной команде ускорить обработку документов, которые необходимо просмотреть. Они отмечают, что это позволяет им обрабатывать до 5400 страниц в час, готовя репортеров к просмотру содержимого. [30]
Существует несколько методов решения проблемы распознавания символов с использованием иных средств, помимо усовершенствованных алгоритмов OCR.
Специальные шрифты, такие как шрифты OCR-A , OCR-B или MICR , с точно заданным размером, интервалом и отличительными формами символов, обеспечивают более высокую точность при транскрипции при обработке банковских чеков. Несколько известных движков OCR были разработаны для захвата текста в популярных шрифтах, таких как Arial или Times New Roman, и не способны захватывать текст в этих шрифтах, которые являются специализированными и сильно отличаются от широко используемых шрифтов. Поскольку Google Tesseract можно обучить распознавать новые шрифты, он может распознавать шрифты OCR-A, OCR-B и MICR. [31]
Поля гребенки представляют собой предварительно напечатанные поля, которые побуждают людей писать более разборчиво – один глиф на поле. [28] Они часто печатаются в выпадающем цвете , который может быть легко удален системой OCR. [28]
Palm OS использовала специальный набор глифов, известных как Graffiti , которые похожи на печатные английские символы, но упрощены или изменены для более легкого распознавания на вычислительно ограниченном оборудовании платформы. Пользователям нужно было научиться писать эти специальные глифы.
Зональное OCR ограничивает изображение определенной частью документа. Это часто называют шаблонным OCR .
Краудсорсинг людей для выполнения распознавания символов может быстро обрабатывать изображения, как компьютерное OCR, но с более высокой точностью распознавания изображений, чем те, которые получены с помощью компьютеров. Практические системы включают Amazon Mechanical Turk и reCAPTCHA . Национальная библиотека Финляндии разработала онлайн-интерфейс для пользователей, чтобы исправлять тексты, распознанные с помощью OCR, в стандартизированном формате ALTO. [32] Краудсорсинг также использовался не для выполнения распознавания символов напрямую, а для приглашения разработчиков программного обеспечения для разработки алгоритмов обработки изображений, например, с помощью турниров по ранжированию . [33]
По заказу Министерства энергетики США (DOE) Научно-исследовательский институт информатики (ISRI) имел миссию по содействию совершенствованию автоматизированных технологий для понимания машинно-печатных документов, и он провел наиболее авторитетный ежегодный тест точности OCR с 1992 по 1996 год. [35]
Распознавание машинописного текста с латинским шрифтом все еще не является точным на 100% даже при наличии четкого изображения. Одно исследование, основанное на распознавании газетных страниц 19-го и начала 20-го века, пришло к выводу, что точность распознавания символов OCR для коммерческого программного обеспечения OCR варьировалась от 81% до 99%; [36] полная точность может быть достигнута путем человеческого просмотра или аутентификации словаря данных. Другие области, включая распознавание рукописного текста, курсивного почерка и печатного текста в других шрифтах (особенно тех символов восточноазиатских языков, которые имеют много штрихов для одного символа), все еще являются предметом активных исследований. База данных MNIST обычно используется для тестирования способности систем распознавать рукописные цифры.
Точность можно измерить несколькими способами, и то, как она измеряется, может существенно повлиять на сообщаемую точность. Например, если контекст слова (лексикон слов) не используется для исправления программного обеспечения, находящего несуществующие слова, частота ошибок в символах 1% (точность 99%) может привести к частоте ошибок 5% или хуже, если измерение основано на том, было ли распознано каждое целое слово без неправильных букв. [37] Использование достаточно большого набора данных важно в решениях по распознаванию рукописного ввода на основе нейронных сетей. С другой стороны, создание естественных наборов данных очень сложно и требует много времени. [38]
Примером трудностей, присущих оцифровке старого текста, является неспособность OCR различать символы « длинный s » и «f». [39] [34]
Веб-системы OCR для распознавания рукописного текста на лету стали широко известны как коммерческие продукты в последние годы [ когда? ] (см. История планшетных ПК ). Точность от 80% до 90% для аккуратных, чистых рукописных символов может быть достигнута с помощью программного обеспечения для перьевых вычислений , но эта точность все еще означает десятки ошибок на страницу, что делает технологию полезной только в очень ограниченном количестве приложений. [ необходима цитата ]
Распознавание курсивного текста является активной областью исследований, с показателями распознавания даже ниже, чем у рукописного текста . Более высокие показатели распознавания общего курсивного письма, вероятно, не будут возможны без использования контекстной или грамматической информации. Например, распознавать целые слова из словаря проще, чем пытаться разобрать отдельные символы из письма. Чтение строки «Сумма» чека (которая всегда представляет собой выписанное число) является примером того, как использование меньшего словаря может значительно повысить показатели распознавания. Формы отдельных курсивных символов сами по себе просто не содержат достаточно информации для точного (более 98%) распознавания всех рукописных курсивных писем. [ необходима цитата ]
Большинство программ позволяют пользователям устанавливать «уровни достоверности». Это означает, что если программное обеспечение не достигает желаемого уровня точности, пользователь может быть уведомлен о необходимости ручного просмотра.
Ошибку, возникающую при сканировании OCR, иногда называют сканно (по аналогии с термином опечатка ). [40] [41]
Символы для поддержки OCR были добавлены в стандарт Unicode в июне 1993 года с выпуском версии 1.1.
Некоторые из этих символов заимствованы из шрифтов, специфичных для MICR , OCR-A или OCR-B .
Когда мы создали исходный корпус Ngram Viewer в 2009 году, наше OCR было не таким хорошим […]. Это было особенно очевидно в английском языке до XIX века, где
удлиненная средняя часть -s
(ſ) часто интерпретировалась как f, […]. Вот доказательства улучшений, которые мы сделали с тех пор, используя оператор corpus для сравнения версий 2009, 2012 и 2019 […]
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )