Tesseract OCR — бесплатное распознавание текста с изображений

Что такое Tesseract OCR?
Tesseract OCR — бесплатный open-source движок оптического распознавания символов (OCR), предназначенный для извлечения печатного текста из изображений.
С его помощью фотографию документа или отсканированную страницу можно преобразовать в обычный текст, который затем можно искать, редактировать, переводить или обрабатывать программно.
Принцип работы можно представить следующим образом:
Изображение → Tesseract OCR → распознавание → текст
Что такое OCR?
OCR — Optical Character Recognition, или оптическое распознавание символов.
Обычное изображение содержит только пиксели. Компьютер не знает, что определённая область фотографии является словом или предложением.
OCR анализирует изображение, определяет расположение текста и преобразует найденные символы в машиночитаемый текст.
Например:
Фото страницы → OCR → редактируемый текст
Для чего можно использовать Tesseract?
- распознавание отсканированных документов;
- извлечение текста из фотографий;
- создание поисковых PDF;
- оцифровка книг и архивов;
- автоматическая обработка документов;
- распознавание счетов и форм;
- извлечение текста из скриншотов;
- подготовка текста для перевода;
- использование OCR в собственных программах.
Поддержка языков
Tesseract поддерживает большое количество языков и письменностей.
Для каждого языка используется специальный файл обученных данных traineddata.
Например:
eng — английский
rus — русский
ukr — украинский
nor — норвежский
Можно использовать несколько языков одновременно.
tesseract image.png output -l eng+rus
Это удобно для документов, содержащих текст сразу на нескольких языках.
Нейронное распознавание
Начиная с Tesseract 4 в движке используется OCR-механизм на основе нейронных сетей LSTM, ориентированный прежде всего на распознавание строк текста.
Современная ветка Tesseract 5 продолжает использовать эту архитектуру и доступные обученные языковые модели.
Установка на Ubuntu и Debian
В Linux Tesseract обычно можно установить непосредственно из репозитория операционной системы.
sudo apt update
sudo apt install tesseract-ocr
Проверить установленную версию:
tesseract --version
Установка языков
Дополнительные языковые данные устанавливаются отдельными пакетами.
Например:
sudo apt install tesseract-ocr-eng
sudo apt install tesseract-ocr-rus
sudo apt install tesseract-ocr-ukr
sudo apt install tesseract-ocr-nor
После установки можно посмотреть доступные языки:
tesseract --list-langs
Простейшее распознавание
Допустим, имеется изображение:
document.png
Для распознавания достаточно выполнить:
tesseract document.png result
После обработки появится файл:
result.txt
В нём будет находиться распознанный текст.
Выбор языка
Для русского документа:
tesseract document.png result -l rus
Для норвежского:
tesseract document.png result -l nor
Для документа, содержащего русский и английский:
tesseract document.png result -l rus+eng
Создание PDF с поиском
Tesseract способен создавать PDF, содержащий распознанный текстовый слой.
tesseract scan.png document -l rus pdf
Результатом будет:
document.pdf
В таком PDF текст можно искать и выделять, хотя визуально документ продолжает выглядеть как исходный скан.
Форматы изображений
Tesseract работает с распространёнными форматами изображений, включая:
- PNG;
- JPEG;
- TIFF.
Для загрузки и обработки изображений Tesseract использует библиотеку Leptonica.
Форматы результата
Результат необязательно сохранять только как обычный TXT.
Tesseract поддерживает различные форматы вывода, среди которых:
- обычный текст;
- PDF;
- hOCR;
- TSV;
- ALTO;
- PAGE.
Структурированные форматы особенно полезны разработчикам, поскольку позволяют получать не только текст, но и информацию о его расположении.
Page Segmentation Mode
Tesseract позволяет сообщить движку, какую структуру имеет изображение.
Для этого используется параметр:
--psm
Например:
tesseract image.png result -l eng --psm 6
Разные режимы подходят для страницы документа, отдельного блока текста, строки или других вариантов расположения информации.
Правильный выбор режима иногда значительно улучшает качество OCR.
Качество исходного изображения
Результат OCR сильно зависит от качества изображения.
На точность распознавания влияют:
- разрешение;
- резкость;
- контраст;
- наклон страницы;
- шумы;
- необычные шрифты;
- сложный фон;
- качество фотографии.
Поэтому перед распознаванием документы иногда полезно предварительно обработать: выровнять, увеличить контраст, удалить шум и правильно обрезать изображение.
Tesseract в собственных программах
Tesseract можно использовать не только из командной строки.
Проект предоставляет библиотеку libtesseract и API для интеграции OCR в собственные приложения.
Кроме того, существуют сторонние обёртки для Python, JavaScript и других языков программирования.
Например, приложение может автоматически выполнять цепочку:
Загрузка изображения → OCR → текст → база данных → поиск / AI / перевод
Tesseract и AI
Tesseract особенно интересен в сочетании с современными AI-системами.
OCR может сначала извлечь текст из документа, после чего языковая модель обработает полученную информацию.
Например:
Скан документа → Tesseract → текст → LLM → анализ
После распознавания AI может:
- сделать краткое содержание;
- перевести документ;
- извлечь необходимые данные;
- классифицировать документ;
- ответить на вопросы по его содержанию;
- сохранить структурированные данные в базу.
Tesseract и n8n
Tesseract можно включить в автоматизированный workflow.
Например:
Telegram → n8n → изображение → Tesseract → текст → AI → результат
Пользователь отправляет фотографию документа, сервер распознаёт её, а AI автоматически анализирует полученный текст.
Так можно создавать собственные системы обработки счетов, документов, фотографий и архивов.
Tesseract и Docker
Tesseract также удобно использовать внутри Docker-контейнера.
Это позволяет изолировать OCR-сервис от остальных приложений и использовать его как часть более крупной серверной инфраструктуры.
Например:
Web App → OCR Container → Tesseract → текст → API
Преимущества Tesseract
- полностью open-source;
- лицензия Apache 2.0;
- работает локально;
- не требует отправлять документы в облачный OCR;
- поддерживает большое количество языков;
- может создавать searchable PDF;
- имеет API для разработчиков;
- подходит для автоматизации;
- может работать на обычном Linux-сервере.
Ограничения
Tesseract лучше всего подходит для распознавания качественного печатного текста.
Сложная верстка, рукописный текст, низкокачественные фотографии, декоративные шрифты и текст поверх сложного фона могут существенно ухудшать результат.
Для таких задач современные мультимодальные AI-модели иногда показывают лучшие результаты, однако они обычно требуют значительно больше вычислительных ресурсов или обращения к облачному сервису.
Поэтому Tesseract остаётся полезным инструментом там, где нужен быстрый, бесплатный и полностью локальный OCR.
Немного истории
Tesseract имеет необычно долгую историю.
Первоначально технология разрабатывалась в Hewlett-Packard Laboratories в 1980-х и 1990-х годах.
В 2005 году проект был опубликован как open-source. В дальнейшем его много лет развивали при участии Google.
Сегодня Tesseract продолжает развиваться как независимый open-source проект.
Кому пригодится Tesseract?
- разработчикам;
- владельцам домашних серверов;
- пользователям Linux;
- тем, кто оцифровывает документы;
- создателям AI-систем;
- пользователям n8n;
- тем, кому нужен локальный OCR без облачных сервисов.
Итог
Tesseract OCR — один из наиболее известных open-source инструментов для оптического распознавания текста.
Он превращает изображения и сканы в машиночитаемый текст, поддерживает множество языков и может работать полностью локально.
Особенно интересным Tesseract становится как часть современной автоматизации: OCR извлекает информацию из изображения, после чего n8n, собственное приложение или AI-модель могут автоматически обработать полученный текст.
Исходный код: Tesseract OCR на GitHub
Документация: Tesseract Documentation
Tesseract OCR — бесплатный open-source движок оптического распознавания текста. Он позволяет извлекать текст из фотографий, сканов и изображений, поддерживает более 100 языков и может использоваться из командной строки или в собственных приложениях.