Документы

OCR: как распознать текст со скана или фото

У вас есть фотография страницы книги или скан договора, а нужен текст, который можно копировать, искать и править. Пересматривать всё вручную — час работы; сделать это за секунды помогает OCR. Разбираемся, как компьютер «читает» буквы на картинке, почему он иногда ошибается и как получить чистый результат — вплоть до искомого PDF.

Электронный ридер BOOX с русским текстом классического романа лежит на деревянных досках
Для человека это просто страница с текстом. Чтобы компьютер увидел здесь именно буквы, а не пиксели, нужен OCR. Фото: Pexels

Что такое OCR простыми словами

OCR (Optical Character Recognition, оптическое распознавание символов) — это технология, которая превращает картинку с текстом в собственно текст. Ключевое слово — «картинку».

Вот в чём суть проблемы. Когда вы фотографируете страницу или сканируете документ, для компьютера результат — просто сетка из цветных точек. Он «видит» тёмные и светлые пиксели, но не понимает, что вот эта загогулина — буква «А», а вон та — «Б». Для него фото текста и фото кошки одинаково бессмысленны: и там, и там просто пиксели. Скопировать слово из такой картинки, найти в ней фразу или исправить опечатку невозможно.

OCR решает ровно эту задачу: находит на изображении буквы и переводит их в настоящие символы — те, что можно выделить мышкой, скопировать, отправить в поиск и отредактировать. По сути это мост между «картинкой текста» и «текстом».

Коротко

Скан или фото документа — это изображение, а не текст. OCR «прочитывает» буквы на изображении и превращает их в редактируемый текст. Без OCR отсканированный PDF выглядит как документ, но по нему нельзя искать и из него нельзя копировать.

Как компьютер «читает» буквы

Магии тут нет — есть чёткая цепочка шагов. Упрощённо OCR работает так:

  • Подготовка изображения. Движок выпрямляет перекошенную страницу, убирает шум и тени, повышает контраст и обычно переводит картинку в чёрно-белую — так буквы легче отделить от фона. Этот этап называют препроцессингом, и он критически важен для результата.
  • Анализ структуры. Программа определяет, где на странице текст, а где картинки и таблицы, разбивает текст на блоки, строки и отдельные символы.
  • Распознавание символов. Каждый выделенный символ движок сравнивает с образцами и решает, какая это буква или цифра. Современные системы используют для этого нейросети, обученные на миллионах примеров.
  • Проверка по словарю. На финале результат «причёсывается»: OCR сверяется со словарём языка и контекстом, исправляя очевидные ошибки (например, «rn», ошибочно принятое за «m»).

Именно поэтому важно указывать OCR язык документа: со словарём русского языка движок распознаёт русский текст куда точнее, чем «вслепую».

Человек читает страницу с текстом на планшете, держа его в руках
Всё, что мы читаем с экрана как текст, для машины изначально было картинкой — пока его не «прочитал» OCR. Фото: Pexels

Инструменты: Tesseract, ABBYY, Google

Движков распознавания много, но на практике вы столкнётесь с тремя главными игроками — под разные задачи и бюджеты.

Tesseract — легендарный бесплатный движок с открытым исходным кодом, который развивает Google. Поддерживает более сотни языков, точен на печатном тексте и лежит в основе множества бесплатных OCR-приложений и онлайн-сервисов. Его сила заметно растёт при хорошем препроцессинге картинки.

ABBYY FineReader — платная профессиональная программа, известная прежде всего сохранением вёрстки: она аккуратно восстанавливает таблицы, колонки и форматирование, а не просто «вытаскивает» голый текст. Выбор тех, кому важно получить на выходе документ, а не сплошную простыню слов.

Google Документы и онлайн-сервисы. Если распознать нужно один-два файла и без установки программ — удобнее всего онлайн. В Google Документах OCR встроен: загрузите картинку или PDF на Диск, откройте в Документах — и текст распознается автоматически.

Ориентир по точности

На чистом печатном тексте ведущие движки (Tesseract, ABBYY FineReader) выдают порядка 98–99% точности. Но это про качественный скан. На плохом фото цифра резко падает — качество исходника решает почти всё.

От чего зависит точность

Главный секрет хорошего OCR прост: чем лучше исходная картинка, тем меньше ошибок. Разберём, что реально влияет на результат.

  • Разрешение. Стандарт для документов — 300 DPI (точек на дюйм). При такой плотности буквы прорисованы достаточно детально, чтобы движок их уверенно различал. Ниже 200 DPI точность заметно падает.
  • Ровность и чистота. Перекошенная страница, тени по краям, пятна и шум сбивают распознавание. Выпрямление и очистка (тот самый препроцессинг) способны поднять точность на десятки процентов.
  • Контраст. Чёткий тёмный текст на светлом фоне — идеал. Бледный или слитый с фоном текст движку даётся тяжело.
  • Тип текста. Печатный распознаётся отлично; рукописный — заметно хуже и не всегда надёжно.
  • Язык. Указанный правильный язык и словарь резко улучшают результат, особенно на смешанных или нелатинских текстах.
300DPI — стандарт скана для OCR
98–99%точность на чистом печатном тексте
100+языков в Tesseract
Правило OCR: мусор на входе — мусор на выходе. Пять минут на хороший скан экономят полчаса ручной правки распознанного текста.

Искомый PDF: невидимый текстовый слой

У OCR есть особенно элегантный результат — искомый PDF (searchable PDF). Идея гениальна в своей простоте: движок оставляет картинку отсканированной страницы как есть, но поверх неё добавляет невидимый слой распознанного текста, точно совмещённый с буквами на изображении.

Что это даёт? Внешне документ по-прежнему выглядит как обычный скан — со всеми печатями, подписями и оригинальной вёрсткой. Но теперь по нему можно искать слова, выделять и копировать текст, будто это обычный электронный документ. Для архивов, библиотек и делопроизводства это золотой стандарт: вид оригинала сохранён, а содержимое стало доступным для поиска.

Именно так работают сервисы, которые превращают гору отсканированных бумаг в удобный, поисковый архив. А если вам нужен не PDF, а просто «голый» текст — OCR отдаст и его, чтобы вставить в редактор или таблицу.

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

Как распознать текст: по шагам

Соберём всё в практический алгоритм, который работает почти с любым инструментом.

1

Получите чёткий исходник

Отсканируйте на 300 DPI или сфотографируйте текст ровно, при хорошем свете, без бликов и смазывания.

2

Выберите инструмент и язык

Онлайн-сервис, Google Документы, Tesseract или ABBYY — и обязательно укажите язык документа.

3

Запустите распознавание

Движок подготовит картинку, найдёт буквы и переведёт их в текст или искомый PDF.

4

Проверьте результат

Пробегитесь по тексту глазами и поправьте редкие ошибки — особенно в именах, цифрах и терминах.

Достаньте текст из документа за секунды

Нужно вытащить текст из PDF без ручного перепечатывания? Конвертер FormatZ превратит PDF в редактируемый текст прямо в браузере — без установки и регистрации.

Извлечь текст из PDF

Если же скан лежит в виде картинок, а вам нужен полноценный документ, пригодятся PDF в Word и разбор как конвертировать PDF в Word. Про формат для сканированных книг, который часто идёт рука об руку с OCR, читайте в статье что такое DjVu.

OCR (оптическое распознавание символов) — это технология, которая превращает картинку с текстом в собственно текст. Для человека фото документа и набранный текст выглядят одинаково, но для компьютера фото — это просто набор пикселей. OCR находит на картинке буквы и переводит их в символы, которые можно выделять, копировать, искать и редактировать.
Зависит от задачи. Tesseract — бесплатный движок с открытым кодом, поддерживает больше сотни языков и точен на печатном тексте. ABBYY FineReader — платная программа с очень сильным сохранением вёрстки и таблиц. Google Документы и онлайн-сервисы удобны, когда нужно распознать один-два файла без установки. На чистом печатном тексте все они дают порядка 98–99% точности.
Точность OCR напрямую зависит от качества исходной картинки. Размытый снимок, низкое разрешение, перекос страницы, шум, тени и слитый с фоном текст — всё это мешает движку узнавать буквы. Рукописный текст распознаётся заметно хуже печатного. Поэтому хороший скан на 300 DPI при ровном свете даёт результат в разы точнее, чем фото с телефона под углом.
Это PDF, в котором поверх картинки страницы добавлен невидимый текстовый слой, полученный через OCR. Внешне документ выглядит как обычный скан, но по нему уже можно искать слова, выделять и копировать текст. Такой формат — золотой стандарт для архивов: он сохраняет оригинальный вид документа и делает его содержимое доступным для поиска.
Да, современный OCR отлично работает и с фото. Главное — снять текст ровно, при хорошем освещении, без бликов и смазывания, чтобы буквы были чёткими. Полезно перед распознаванием выровнять и обрезать кадр. Чем ближе фото по качеству к аккуратному скану, тем меньше ошибок сделает распознавание.