Оптическое распознавание символов
Оптическое распознавание символов — электронный или механический процесс преобразования изображений напечатанного, рукописного либо печатного текста в машинно-кодированный текст. Источниками изображений могут служить сканированные документы, фотографии документов, фотографии сцен (например, текст на вывесках и билбордах на пейзажной фотографии), а также наложенные на изображение субтитры (например, с телевизионной трансляции)[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.
См. также
Примечания
- ↑ OCR Document (англ.). Haven OnDemand. Дата обращения: 21 июня 2024. Архивировано 15 апреля 2016 года.
- ↑ Supported Media Formats (англ.). Haven OnDemand. Дата обращения: 21 июня 2024. Архивировано 19 апреля 2016 года.
- ↑ Zeng, Qing-An. Wireless Communications, Networking and Applications: Proceedings of WCNA 2014 : [англ.]. — Springer, 2015. — ISBN 978-81-322-2580-5.
- ↑ [javascript] Using OCR and Entity Extraction for LinkedIn Company Lookup (англ.) (22 июля 2014). Дата обращения: 21 июня 2024. Архивировано 17 апреля 2016 года.
- ↑ How To Crack Captchas. andrewt.net (28 июня 2006). Дата обращения: 21 июня 2024. Архивировано 5 марта 2025 года.
- ↑ Breaking a Visual CAPTCHA. Cs.sfu.ca (10 декабря 2002). Дата обращения: 21 июня 2024. Архивировано 2 сентября 2004 года.
- ↑ Resig, John. John Resig – OCR and Neural Nets in JavaScript. Ejohn.org (23 января 2009). Дата обращения: 21 июня 2024. Архивировано 25 января 2009 года.
- ↑ 1 2 Schantz, Herbert F. The history of OCR, optical character recognition. — Recognition Technologies Users Association, 1982. — ISBN 9780943072012.
- ↑ Dhavale, Sunita Vikrant. Advanced Image-Based Spam Detection and Filtering Techniques : [англ.]. — IGI Global, 2017. — P. 91. — ISBN 9781683180142.
- ↑ d'Albe, E. E. F. (1 июля 1914). “On a Type-Reading Optophone”. Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences. 90 (619): 373—375. Bibcode:1914RSPSA..90..373D. DOI:10.1098/rspa.1914.0061. Дата обращения 2024-06-21.
|access-date=требует|url=(справка) - ↑ “The History of OCR”. Data Processing Magazine. 12: 46. 1970.
- ↑ Extracting text from images using OCR on Android (англ.) (27 июня 2015). Дата обращения: 21 июня 2024. Архивировано 15 марта 2016 года.
- ↑ [Tutorial] OCR on Google Glass (англ.) (23 октября 2014). Дата обращения: 21 июня 2024. Архивировано 5 марта 2016 года.
- ↑ Tappert, C. C.; Suen, C. Y.; Wakahara, T. (1990). “The state of the art in online handwriting recognition”. IEEE Transactions on Pattern Analysis and Machine Intelligence. 12 (8): 787. DOI:10.1109/34.57669. S2CID 42920826.
- ↑ 1 2 Optical Character Recognition (OCR) – How it works. Nicomsoft.com. Дата обращения: 21 июня 2024. Архивировано 14 мая 2025 года.
- ↑ Sezgin, Mehmet; Sankur, Bulent (2004). “Survey over image thresholding techniques and quantitative performance evaluation” (PDF). Journal of Electronic Imaging. 13 (1): 146. Bibcode:2004JEI....13..146S. DOI:10.1117/1.1631315. Архивировано из оригинала (PDF) 16 октября 2015. Дата обращения 2024-06-21.
- ↑ Gupta, Maya R.; Jacobson, Nathaniel P.; Garcia, Eric K. (2007). “OCR binarisation and image pre-processing for searching historical documents” (PDF). Pattern Recognition. 40 (2): 389. Bibcode:2007PatRe..40..389G. DOI:10.1016/j.patcog.2006.04.043. Архивировано из оригинала (PDF) 16 октября 2015. Дата обращения 2024-06-21.
- ↑ Trier, Oeivind Due; Jain, Anil K. (1995). “Goal-directed evaluation of binarisation methods” (PDF). IEEE Transactions on Pattern Analysis and Machine Intelligence. 17 (12): 1191—1201. DOI:10.1109/34.476511. Архивировано из оригинала (PDF) 16 октября 2015. Дата обращения 2024-06-21.
- ↑ Milyaev, Sergey. Image Binarization for End-to-End Text Understanding in Natural Images // 2013 12th International Conference on Document Analysis and Recognition / Sergey Milyaev, Olga Barinova, Tatiana Novikova … [и др.]. — 2013. — P. 128–132. — ISBN 978-0-7695-4999-6. — doi:10.1109/ICDAR.2013.33.
- ↑ Pati, P.B.; Ramakrishnan, A.G. (29 мая 1987). “Word Level Multi-script Identification”. Pattern Recognition Letters. 29 (9): 1218—1229. Bibcode:2008PaReL..29.1218P. DOI:10.1016/j.patrec.2008.01.027.
- ↑ Basic OCR in OpenCV | Damiles (англ.). Blog.damiles.com (20 ноября 2008). Дата обращения: 21 июня 2024. Архивировано 29 апреля 2024 года.
- ↑ How OCR Software Works. OCRWizard. Дата обращения: 21 июня 2024. Архивировано 16 августа 2009 года.
- ↑ The basic pattern recognition and classification with openCV | Damiles (англ.). Blog.damiles.com (14 ноября 2008). Дата обращения: 21 июня 2024. Архивировано 6 марта 2025 года.
- ↑ 1 2 Smith, Ray. An Overview of the Tesseract OCR Engine (2007). Дата обращения: 21 июня 2024. Архивировано 28 сентября 2010 года.
- ↑ How the Best OCR Technology Captures 99.91% of Data (англ.). www.bisok.com. Дата обращения: 21 июня 2024. Архивировано 4 марта 2025 года.
- ↑ 1 2 3 How does OCR document scanning work? Explain that Stuff (30 января 2012). Дата обращения: 21 июня 2024. Архивировано 29 июля 2025 года.
- ↑ How to optimize results from the OCR API when extracting text from an image? - Haven OnDemand Developer Community (англ.). Дата обращения: 21 июня 2024. Архивировано 22 марта 2016 года.
- ↑ Fehr, Tiff. How We Sped Through 900 Pages of Cohen Documents in Under 10 Minutes (англ.), The New York Times (26 марта 2019). Архивировано 24 августа 2025 года. Дата обращения: 21 июня 2024.
- ↑ Train Your Tesseract. Train Your Tesseract (20 сентября 2018). Дата обращения: 21 июня 2024.
- ↑ What is the point of an online interactive OCR text editor? - Fenno-Ugrica (21 февраля 2014). Дата обращения: 21 июня 2024. Архивировано 6 августа 2024 года.
- ↑ Riedl, C.; Zanibbi, R.; Hearst, M. A.; Zhu, S.; Menietti, M.; Crusan, J.; Metelsky, I.; Lakhani, K. (20 февраля 2016). “Detecting Figures and Part Labels in Patents: Competition-Based Development of Image Processing Algorithms”. International Journal on Document Analysis and Recognition. 19 (2): 155. arXiv:1410.6751. DOI:10.1007/s10032-016-0260-8. S2CID 11873638. Дата обращения 2024-06-21.
|access-date=требует|url=(справка) - ↑ 1 2 Google Books Ngram Viewer (англ.). books.google.com. Дата обращения: 21 июня 2024.
- ↑ Code and Data to evaluate OCR accuracy, originally from UNLV/ISRI. Google Code Archive. Дата обращения: 21 июня 2024.
- ↑ Holley, Rose How Good Can It Get? Analysing and Improving OCR Accuracy in Large Scale Historic Newspaper Digitisation Programs. D-Lib Magazine (апрель 2009). Дата обращения: 21 июня 2024. Архивировано 7 апреля 2025 года.
- ↑ Suen, C.Y.; Plamondon, R.; Tappert, A.; Thomassen, A.; Ward, J.R.; Yamamoto, K. (29 мая 1987). Future Challenges in Handwriting and Computer Applications. 3rd International Symposium on Handwriting and Computer Applications, Montreal. Дата обращения 2024-06-21.
- ↑ Mohseni, Maedeh Haji Agha. Comparison of Synthesized and Natural Datasets in Neural Network Based Handwriting Solutions / Maedeh Haji Agha Mohseni, Reza Azmi, Kamran Layeghi … [и др.]. — ITCT, 2019.
- ↑ Kapidakis, Sarantos; Mazurek, Cezary and Werla, Marcin. Research and Advanced Technology for Digital Libraries. — Springer, 2015. — P. 257. — ISBN 9783319245928.
- ↑ Atkinson, Kristine H. (2015). “Reinventing nonpatent literature for pharmaceutical patenting”. Pharmaceutical Patent Analyst. 4 (5): 371—375. DOI:10.4155/ppa.15.21. PMID 26389649.
- ↑ scanno. Hoopoes (май 2001). Дата обращения: 21 июня 2024. Архивировано 5 марта 2025 года.
Литература
- 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.