Опубликован релиз системы оптического распознавания текста Tesseract 4.1, поддерживающей распознавание символов UTF-8 и текстов на более чем 100 языках, включая русский, казахский, белорусский и украинский. Результат может сохраняться как открытым текстом, так и в форматах HTML (hOCR), ALTO (XML), PDF и TSV. Изначально система была создана в 1985-1995 годах в лаборатории компании Hewlett Packard, в 2005 году код был открыт под лицензией Apache и в дальнейшем развивался при участии работников компании Google. Исходные тексты проекта распространяются под лицензией Apache 2.0.
Tesseract включает в себя консольную утилиту и библиотеку libtesseract для встраивания функций распознавания текста в другие приложения. Из поддерживающих Tesseract сторонних GUI-интерфейсов можно отметить gImageReader, VietOCR и YAGF. Предлагается два движка распознавания: классический, распознающий текст на уровне шаблонов отдельных символов, и новый, базирующийся на применении системы машинного обучения на базе рекуррентной нейронной сети LSTM, оптимизированной для распознавания целиком строк и позволяющей добиться существенного увеличения точности. Готовые натренированные модели опубликованы для 123 языков. Для оптимизации производительности предлагаются модули, использующие OpenMP и SIMD-инструкций AVX2, AVX, NEON или SSE4.1.
Основные улучшения в Tesseract 4.1:
- Значительное изменение номера версии связано с внесением в API изменений, нарушающих совместимость. В частности, публично доступный API libtesseract больше не привязан к проприетарным типам данных GenericVector и STRING, вместо которых в коде задействованы std::string и std::vector.
- Проведена реорганизация дерева исходных текстов. Публичные заголовочные файлы перемещены в каталог include/tesseract.
- Переработано управление памятью, все вызовы malloc и free заменены на код C++. Проведена общая модернизация кода.
- Добавлены оптимизации для архитектур ARM и ARM64, для ускорения вычислений задействованы инструкции ARM NEON. Проведена общая для всех архитектур оптимизация производительности.
- Реализованы новые режимы тренировки моделей и распознавания текста, основанные на использовании вычислений с плавающей запятой. Новые режимы отличаются более высокой производительностью и снижением потребления памяти. В движке LSTM быстрый режим float32 включён по умолчанию.
- Осуществлён переход на использование нормализации Unicode с использованием формы NFC (Normalization Form Canonical).
- Добавлена опция для настройки детализации логов (–loglevel).
- Переработана система сборки на основе Autotools, которая переведена на сборку в нерекурсивном режиме.
- Ветка “master” в Git переименована в “main”.
- Добавлена поддержка новых выпусков macOS и систем Apple на базе чипа M1.