Распознавание текста на изображениях¶
Распознавание текста на изображениях (OCR, от англ. Optical Character Recognition — оптическое распознавание символов) — технология автоматического преобразования текста, зафиксированного на фотографии или другом растровом изображении, в машиночитаемый формат. Метод относится к области компьютерного зрения и обработки изображений; применяется для оцифровки документов, анализа фотографий, автоматической индексации архивов и перевода текста с изображений.
¶Принцип работы
Классический конвейер OCR состоит из нескольких последовательных этапов:
- Предобработка. Изображение приводится к стандартному виду: устраняются шумы, выравнивается перспектива, нормализуется яркость и контраст, бинаризуется (переводится в чёрно-белый вид).
- Выделение текстовых зон. Алгоритм определяет области, где находится текст, отделяя его от фона, иллюстраций и других элементов.
- Сегментация. Текст разбивается на отдельные строки, слова и символы.
- Распознавание символов. Каждый фрагмент сопоставляется с эталонными образцами шрифтов.
- Постобработка. Результат корректируется с использованием словарей и языковых моделей — исправляются опечатки, восстанавливаются пропущенные символы.
¶История
Первые системы распознавания текста создавались в 1950-х годах для чтения почтовых индексов. В СССР разработкой OCR занимались в Институте точной механики и вычислительной техники АН СССР; в 1970-е годы были созданы системы для автоматического распознавания машинописных и печатных текстов.
В 1990-е годы появились коммерческие системы, в частности ABBYY FineReader (российская разработка, основана в 1989 году), распознающие сканы документов с высокой точностью. С переходом на нейросетевые методы в 2010-е годы качество распознавания рукописного текста и фотографий документов существенно выросло.
¶Методы распознавания
¶Статистические и шаблонные
Ранние системы сравнивали выделенный символ с набором эталонных шаблонов по шрифтам. Метод прост, но чувствителен к искажениям, повороту и размытию.
¶Нейросетевые
Современные OCR-системы построены на свёрточных нейронных сетях и рекуррентных архитектурах (LSTM, CTC-декодирование). Ключевые направления:
- CRNN — комбинация свёрточных и рекуррентных слоёв для последовательного распознавания строк.
- Attention-модели — механизм внимания позволяет сети «смотреть» на нужные участки изображения.
- Трансформеры — архитектура, основанная на механизме self-attention, показывает высокую точность на сложных сценах (многоязычные документы, вывески, рукописи).
Крупнейшие открытые системы: Tesseract (разработка Google, поддерживает сотни языков, включая русский), PaddleOCR (от Baidu), EasyOCR, а также облачные сервисы Google Vision, Yandex Cloud Vision, ABBYY Cloud OCR.
¶Типы задач
| Задача | Описание |
|---|---|
| Печатный текст | Распознавание книг, документов, сканов — наиболее простая задача |
| Рукописный текст | Распознавание рукописи, включая каллиграфию и скоропись |
| Текст на сцене (Scene Text Recognition) | Текст на фотографиях улиц, вывесках, транспорте |
| Исторические документы | Старопечатные шрифты, пожелтевшая бумага, повреждения |
| Многоязычный текст | Смешение языков на одном изображении |
¶Применение
- Оцифровка архивов и библиотек. Массовое сканирование книг и перевод их в поискable-формат.
- Банковские и юридические сервисы. Автоматическое чтение паспортов, счетов, договоров.
- Автомобильные номера. Системы автоматической фиксации нарушений ПДД (в России работают комплексы «Платон», «Черепаха» и камеры фотофиксации).
- Переводчики. Приложения вроде Google Translate и «Яндекс.Переводчик» распознают текст на фото и переводят его в реальном времени.
- Медицина. Расшифровка рукописных назначений врачей.
- Помощь незрячим. Приложения, описывающие текст на фотографии голосом.
¶Точность и ограничения
Точность современных систем на чётких печатных документах превышает 99 %. На фотографиях сцены показатель ниже — от 60 до 90 % в зависимости от освещения, угла съёмки, качества шрифта и языка. Хуже всего распознаются рукописи, старые шрифты, текст на наклонных поверхностях и мелкий шрифт. Русский язык поддерживается большинством систем, однако специфика кириллицы (например, буквы «ъ», «ь», «ы») требует отдельных моделей.
¶См. также
- Компьютерное зрение
- Бинаризация изображения
- Сегментация изображения
- Нейронная сеть
¶Источники
- Tesseract OCR Documentation
- ABBYY FineReader — официальный сайт
- Гончаров А. В. «Распознавание изображений»
- Сборник трудов конференции ICDAR (International Conference on Document Analysis and Recognition)