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

Tesseract

Tesseract — это свободное программное обеспечение для оптического распознавания символов (OCR, Optical Character Recognition), разрабатываемое компанией Google. Первоначально созданное в Hewlett-Packard в 1980-х годах, оно стало одним из самых точных и популярных инструментов для извлечения текста из изображений, поддерживающим множество языков, включая русский.

История

Разработка в Hewlett-Packard

Истоки Tesseract лежат в лаборатории Hewlett-Packard (HP) в Бристоле, Великобритания. В 1985 году инженеры Рэй Смит, Роджер Монк и Майкл Гэннон начали проект по созданию системы распознавания текста для корпоративных нужд HP, в частности для сканирования документов и книг. К 1990 году Tesseract, работавший на платформе Unix, стал одной из лучших систем OCR по точности распознавания, превзойдя коммерческие аналоги того времени. Однако HP не вывела Tesseract на открытый рынок, используя его преимущественно внутренне.

Переход в Open Source

В 2005 году HP приняла решение прекратить коммерческую поддержку Tesseract. Чтобы сохранить наработки, компания передала исходный код проекту с открытым исходным кодом. Tesseract был выпущен под лицензией Apache 2.0 и передан на поддержку компании Google. Именно Google в лице ведущего разработчика Рэя Смита (перешедшего в Google в 2006 году) обеспечила адаптацию кода под современные платформы (Windows, Linux, macOS) и добавила поддержку Unicode и множества языков.

Современное состояние

Начиная с версии 4.0 (2018 год) Tesseract использует нейросетевую архитектуру Long Short-Term Memory (LSTM), что значительно повысило точность распознавания. На 2024 год актуальная стабильная версия — 5.4.0, выпущенная в апреле 2024 года. Проект поддерживается сообществом разработчиков при участии Google.

Архитектура и принцип работы

Основные этапы обработки

Tesseract выполняет распознавание текста в несколько последовательных шагов:

  1. Бинаризация. Преобразование входного изображения (обычно цветного или полутонового) в чёрно-белое для упрощения дальнейшего анализа. Используется алгоритм Otsu.
  2. Сегментация страницы. Разделение изображения на текстовые блоки, строки, слова и символы. Tesseract анализирует геометрию страницы, распознавая колонки, таблицы, заголовки.
  3. Распознавание символов. Для каждого выделенного символа система использует обученную нейросеть (LSTM) или классический метод на основе шаблонов (в версиях до 4.0). Модели учитывают контекст: соседние символы и вероятные комбинации букв.
  4. Постобработка. Применение словаря языка и правил грамматики для исправления ошибок распознавания и выбора наиболее вероятной последовательности символов.

Модели LSTM

Начиная с версии 4.0 Tesseract использует рекуррентные нейронные сети с долгой краткосрочной памятью (LSTM). Каждый язык имеет свою обученную модель, учитывающую характерные для этого языка шрифты, диграфы и частотность символов. Для русского языка доступны модели, обученные на корпусе текстов (включая кириллические шрифты), что позволяет распознавать как печатные, так и некоторые рукописные символы (с ограничениями).

Поддерживаемые языки и форматы

Языки

Tesseract поддерживает более 100 языков. Для каждого языка поставляются отдельные файлы обученных моделей (в формате .traineddata). Среди наиболее востребованных: английский, русский, испанский, французский, немецкий, китайский (упрощённый и традиционный), арабский, японский. Русский язык появился в официальной поддержке с версии 3.0 (2007 год) благодаря вкладу сообщества.

ЯзыкКодМодель
РусскийrusLSTM + legacy (до 4.0)
АнглийскийengLSTM
НемецкийdeuLSTM
ФранцузскийfraLSTM
Китайский (упр.)chi_simLSTM

Входные и выходные форматы

Tesseract принимает на вход изображения в форматах: PNG, JPEG, TIFF, BMP, GIF, PDF (растровые страницы). Поддерживаются изображения с глубиной цвета 1, 8, 24 бит на пиксель. На выходе система генерирует:

Применение

Оцифровка книг и архивов

Tesseract активно используется библиотеками и архивами для преобразования отсканированных книг, газет и рукописей в машиночитаемый текст. Например, проект Google Books применял Tesseract на ранних этапах. В России Tesseract используется для распознавания кириллических текстов в Президентской библиотеке им. Б. Н. Ельцина и при оцифровке исторических документов.

Автоматизация документооборота

Система встраивается в корпоративные решения для обработки счетов, договоров, анкет, паспортов. Tesseract часто применяется в связке с OpenCV для предварительной обработки изображений (поворот, устранение шума) или с Tesseract.js — JavaScript-версией для веб-серверов.

Мобильные приложения

Многие приложения-сканеры (например, CamScanner, Adobe Scan) на Android используют Tesseract (через библиотеку Tesseract OCR for Android) как один из движков распознавания. Библиотека доступна для iOS через Swift Package Manager.

Научные исследования

Tesseract служит эталоном для сравнения новых алгоритмов OCR. По данным бенчмарков (например, ICDAR 2019), Tesseract 4.0 демонстрирует частоту ошибок символьного распознавания (CER) около 0,5-1,5% на качественных сканах английских текстов и 1-3% на русских текстах с чётким шрифтом.

Классификация

Лицензионный статус

Tesseract распространяется под лицензией Apache 2.0, что позволяет использовать его в коммерческих проектах без ограничений, за исключением требований упоминания авторства. Это одна из самых свободных лицензий для OCR-движков, что способствовало его широкому распространению.

Интеграция

Tesseract не имеет собственного графического интерфейса (GUI), поставляясь в виде библиотеки для языков программирования (C++, Python, Java, Go, R) и утилиты командной строки tesseract. Существуют сторонние оболочки, такие как gImageReader, TesseractOCR GUI для Windows, но они не входят в официальный дистрибутив.

Ограничения и критика

Качество распознавания Tesseract сильно зависит от условий входного изображения:

В международных бенчмарках (данные на 2023 год) Tesseract уступает коммерческим OCR-системам (ABBYY FineReader, Microsoft Azure Vision) на сложных изображениях с нестандартным шрифтом или декоративными элементами, но остаётся лидером среди свободных решений.

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

Источники

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

На главную BFOmetr →