Открыть сервис

Технология OCR

Технология оптического распознавания символов (OCR) — это технология, предназначенная для автоматического преобразования изображений печатного или рукописного текста в машиночитаемый текстовый формат (например, в кодировку Unicode). OCR-системы позволяют компьютеру «читать» текст из растровых изображений, отсканированных документов, фотографий или PDF-файлов, извлекая символы и преобразуя их в последовательность символов, пригодную для редактирования, поиска, индексации и дальнейшей обработки.

История развития

Ранние этапы

Первые попытки механического распознавания символов относятся к началу XX века. В 1914 году изобретатель Эмануэль Гольдберг создал устройство для чтения текста и преобразования его в телеграфный код, однако оно не получило широкого распространения. В 1929 году австрийский учёный Густав Таушек запатентовал оптический сканер для распознавания символов, предназначенный для помощи слепым людям. Практическое применение OCR началось в 1950-х годах, когда компании, такие как IBM и Farrington Manufacturing Company, разработали системы для автоматической обработки банковских чеков и почтовых отправлений. Первые коммерческие OCR-системы были дорогими и громоздкими, требовали специальных шрифтов (например, OCR-A и OCR-B) и работали с низкой точностью.

Цифровая эра

Развитие вычислительной техники в 1970–1980-х годах привело к появлению более совершенных алгоритмов. В 1980-х годах компания Kurzweil Computer Products (позже приобретённая Xerox) выпустила первую коммерческую OCR-систему, способную распознавать текст с произвольными шрифтами. С ростом производительности компьютеров и развитием методов обработки изображений в 1990-х годах OCR стала доступна для массового пользователя. Появление бесплатных программных решений, таких как Tesseract (первоначально разработанный Hewlett-Packard в 1985 году, а затем открытый Google), способствовало широкому внедрению технологии.

Современный этап

С начала 2010-х годов OCR активно интегрируется с методами машинного обучения и нейронных сетей. Глубокое обучение (deep learning) позволило значительно повысить точность распознавания, особенно для рукописного текста и сложных шрифтов. Современные OCR-системы, такие как Google Cloud Vision, Microsoft Azure Computer Vision и Abbyy FineReader, используют свёрточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN) для анализа изображений и извлечения текста.

Принцип работы

Основные этапы

Процесс OCR обычно включает несколько последовательных шагов:

  1. Предобработка изображения: Улучшение качества исходного изображения для повышения точности распознавания. Включает в себя:
  • Бинаризацию: преобразование цветного или полутонового изображения в чёрно-белое (бинарное) для выделения текста.
  • Удаление шума: фильтрация артефактов, таких как пыль, пятна или неравномерное освещение.
  • Выравнивание: коррекция наклона текста (дескев) для горизонтального расположения строк.
  • Сегментацию: разделение изображения на отдельные символы или слова.
  1. Распознавание символов: Основной этап, на котором каждый сегмент (символ) сравнивается с эталонными шаблонами или анализируется с помощью нейросетевых моделей. Существует два основных подхода:
  • Распознавание по шаблону: сравнение символа с набором известных шаблонов (например, шрифтов). Эффективен для стандартных шрифтов, но чувствителен к искажениям.
  • Распознавание на основе признаков: выделение характерных признаков символа (линии, кривые, углы) и их сопоставление с математическими моделями. Более устойчив к вариациям шрифтов и размеров.
  1. Постобработка: Коррекция ошибок распознавания на основе контекста. Включает в себя:
  • Проверку орфографии: использование словарей для исправления неверно распознанных слов.
  • Лингвистический анализ: анализ грамматической структуры предложения для уточнения вероятных символов.

Технологии машинного обучения

Современные OCR-системы широко используют нейронные сети, особенно архитектуры, основанные на свёрточных нейронных сетях (CNN) для извлечения признаков из изображения и рекуррентных нейронных сетях (RNN) с долгой краткосрочной памятью (LSTM) для моделирования последовательности символов. Популярной архитектурой является CRNN (Convolutional Recurrent Neural Network), которая объединяет CNN и RNN для распознавания текста на изображениях без предварительной сегментации.

Классификация и виды

По типу распознаваемого текста

  • Печатный текст: Распознавание машинописного текста, включая различные шрифты и кегли. Обычно имеет высокую точность (до 99% и выше при качественном исходном изображении).
  • Рукописный текст: Распознавание рукописных записей. Является значительно более сложной задачей из-за высокой вариативности почерка. Современные системы достигают точности около 80–90% для ограниченных наборов данных.
  • Рукописный текст в реальном времени: Распознавание рукописного текста по мере его написания (например, на планшетах или смартфонах). Использует данные о траектории движения пера.

По способу обработки

  • Онлайн-OCR: Распознавание текста в реальном времени, часто с использованием облачных сервисов. Позволяет обрабатывать изображения, загруженные пользователем, и возвращать результат.
  • Офлайн-OCR: Распознавание текста из статических изображений, выполняется локально на компьютере или сервере. Не требует постоянного подключения к интернету.

По области применения

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

Применение

Оцифровка документов

OCR является ключевой технологией для массовой оцифровки библиотечных фондов, архивов и исторических документов. Она позволяет создавать электронные копии книг и рукописей, которые затем можно индексировать, искать и анализировать. Например, проект Google Books использует OCR для оцифровки миллионов книг.

Автоматизация бизнес-процессов

В корпоративной среде OCR применяется для автоматизации обработки входящих документов: счетов, накладных, договоров. Системы автоматически извлекают ключевые данные (даты, суммы, названия компаний) и загружают их в учётные системы, что сокращает время и снижает количество ошибок.

Банковская и финансовая сфера

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

Медицина

В медицинских учреждениях OCR применяется для оцифровки рецептов, медицинских карт и результатов анализов. Это упрощает ведение электронных медицинских записей и облегчает доступ к информации.

Транспорт и логистика

Системы распознавания номерных знаков (LPR) используются для контроля въезда на платные дороги, управления парковками и автоматического взимания штрафов за нарушения правил дорожного движения. В логистике OCR помогает распознавать штрих-коды и адреса на посылках.

Доступность для людей с ограниченными возможностями

OCR позволяет людям с нарушениями зрения «читать» печатные тексты с помощью программ синтеза речи (text-to-speech). Например, мобильные приложения, такие как Seeing AI, используют OCR для озвучивания текста из документов, меню и вывесок.

Точность и ограничения

Факторы, влияющие на точность

  • Качество исходного изображения: Разрешение, контрастность, освещение, наличие шума и деформаций.
  • Сложность шрифта: Стандартные шрифты (Arial, Times New Roman) распознаются лучше, чем декоративные или рукописные.
  • Язык текста: Распознавание текста на языках с латинской или кириллической графикой обычно проще, чем на языках с иероглифической письменностью (китайский, японский).
  • Наличие графических элементов: Таблицы, диаграммы, подчёркивания и цветные фоны могут снижать точность.
  • Размер символов: Слишком мелкий или слишком крупный текст может быть распознан с ошибками.

Типичные ошибки

  • Замена символов: Например, буква «О» может быть распознана как цифра «0», буква «I» (ай) как цифра «1» или буква «l» (эль).
  • Пропуск символов: Некоторые символы могут быть не распознаны, особенно если они плохо различимы.
  • Слияние символов: Символы, расположенные близко друг к другу, могут быть ошибочно объединены в один.
  • Разделение символов: Один символ может быть ошибочно разделён на два (например, «rn» может быть распознано как «m»).

Интересные факты

  • Первый коммерческий OCR-сканер, Kurzweil Reading Machine, был выпущен в 1976 году и стоил около 50 000 долларов США. Он был предназначен для чтения книг вслух для слепых людей.
  • Самая известная открытая OCR-библиотека Tesseract изначально разрабатывалась компанией Hewlett-Packard в 1985–1995 годах, а затем была открыта Google в 2006 году. Она поддерживает более 100 языков.
  • Современные системы OCR способны распознавать текст на фотографиях, сделанных смартфоном, даже при значительном наклоне или плохом освещении, благодаря использованию нейронных сетей.
  • В 2010-х годах OCR-технологии начали активно использоваться для распознавания рукописных исторических документов, таких как письма и дневники, что позволило историкам проводить цифровой анализ больших объёмов текстов.

Источники

  • Smith, R. (2007). An Overview of the Tesseract OCR Engine. Proceedings of the Ninth International Conference on Document Analysis and Recognition (ICDAR 2007).
  • Mori, S., Nishida, H., & Yamada, H. (1999). Optical Character Recognition. John Wiley & Sons.
  • Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
  • Документация к программному обеспечению Abbyy FineReader.
  • Статья «Optical character recognition» в англоязычной версии Википедии.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →