Tesseract: бесплатное решение для распознавания текста
Вступление
Tessereact считается одним из лучших доступных решений для оптического распознавания текста. С 2006 года он спонсируется Google, ранее он был разработан Hewlett Packard на языках C и C ++ в период с 1985 по 1998 год. Система способна распознавать даже почерк, она может распознавать, повышая его точность, и является одной из самых развитых и полных на рынке.
Он легко превосходит коммерческих конкурентов, таких как ABBY, если вы ищете серьезное решение для OCR, Tesseract является наиболее точным, но не ожидайте массовых решений: он использует ядро на процесс, что означает 8-ядерный процессор (гиперпоточность принято) сможет обрабатывать 8 или 16 изображений одновременно.
Когда я использовал Tesseract, мы управляли тысячами потенциальных клиентов, загружающих рукописный контент, изображения с текстом и т. Д. Мы использовали 48 основных серверов с DatabaseByDesign, а затем с AWS, у нас никогда не было проблем с ресурсами.
У нас был загрузчик, который различал текстовые файлы, такие как файлы Microsoft Office или Open Office, и изображения или отсканированные документы. Загрузчик определил, какие сценарии OCR или PHP будут обрабатывать заказ в области распознавания текста.
Tesseact - отличное решение, но прежде чем подумать об этом, вы должны знать, что последние версии Tesseract принесли большие улучшения, некоторые из них означают тяжелую работу. Хотя обучение может длиться часами или днями, обучение по последним версиям Tesserct может длиться дни, недели или даже месяцы, если вы ищете многоязычное OCR-решение.
Установка Tesseract 4 в Debian / Ubuntu:
apt-get установить tesseract-ocrЕсли вы используете другой дистрибутив Linux, вам нужно скопировать последнюю версию репозитория github и скопировать .файл обученных данных в 'tessdata' (/ usr / share / tesseract-ocr / tessdata или / usr / share / tessdata).
По умолчанию Tesseract установит пакет английского языка, чтобы установить дополнительные языки, запустите
apt-get install tesseract-ocr-LANGнапример, чтобы добавить иврит:
apt-get install tesseract-ocr-hebВы можете включить все языки, запустив:
apt-get install tesseract-ocr-all
Чтобы Tesseract работал правильно, нам нужно будет использовать команду «convert» (преобразование между форматами изображений, а также изменение размера изображения, размытие, обрезка, удаление пятен, дизеринг, рисование, отражение, объединение, повторная выборка и многое другое) предоставлено Imagemagick:
Давайте установим imagemagick с помощью apt-get:
apt-get install imagemagickТеперь протестируем Tesseract, найдем изображение, содержащее текст, и запустим:
tesseract [имя_изображения] [имя_файла вывода]При правильной установке Tesseract извлечет текст из изображения.
Когда я работал с Tesseract, все, что нам нужно было - это подсчитывать количество слов в документах. Как и в любой другой программе, которую вы можете и должны тренировать, в Word мы можем определить некоторые символы, которые можно считать или нет, считать или нет числа и т. Д. то же самое с Tesseract.
Мы также можем обучить его чувствительности к конкретным изображениям.
Оптимизация Tesseract:
Оптимизация размера: Согласно официальным источникам, оптимальный размер пикселей для успешной обработки изображения Tesseract составляет 300 точек на дюйм. Нам нужно будет обработать любое изображение с помощью параметра -r, чтобы применить этот DPI. Увеличение DPI также увеличит время обработки.
Ротация страницы: Если при сканировании страница не была повернута должным образом и остается на 180 ° или 45 °, точность Tesseract снизится, вы можете использовать этот скрипт Python для автоматического обнаружения и исправления проблем с вращением.
Удаление границы: По словам официального представителя Тессеракта, границы могут быть ошибочно выбраны как символы, особенно темные границы и там, где есть разнообразие градаций. Удаление границ может быть хорошим шагом для достижения максимальной точности с Tesseract.
Удаление шума: Согласно Tesseracts, шум «представляет собой случайное изменение яркости или цвета изображения». Мы можем удалить его в бинаризация шаг, что означает поляризацию его цветов.
Тренинг Тессеракт:
Хотя в большинстве руководств рассматривается только установка Tesseract, я кратко расскажу, как обучить вашу систему распознавания текста, здесь мы можем найти руководство для всех версий. В этой статье я расскажу, как обучать Tesseract 4, который включает в себя новый «Механизм распознавания на основе нейронной сети, который обеспечивает значительно более высокую точность (на изображениях документов), чем предыдущие версии, в обмен на значительное увеличение требуемой вычислительной мощности. Однако на сложных языках это может быть быстрее, чем базовый Tesseract.”
Прежде чем продолжить, нам нужно будет установить дополнительные библиотеки:
sudo apt-get install libicu-devsudo apt-get установить libpango1.0-dev
sudo apt-get установить libcairo2-dev
И мы установим обучающие инструменты, запустив в каталоге Tesseract:
делатьсделать обучение
sudo сделать обучение-установить
Согласно официальной вики Tesseract, у нас есть 3 текущих варианта обучения нашей системы распознавания текста:
- "Тонкая настройка. Начиная с уже имеющегося обученного языка, тренируйтесь на ваших конкретных дополнительных данных. Это может сработать для проблем, которые близки к существующим обучающим данным, но отличаются некоторым тонким образом, например, особенно необычный шрифт. Может работать даже с небольшим объемом обучающих данных.
- Отрежьте верхний слой (или какое-то произвольное количество слоев) от сети и переобучите новый верхний слой, используя новые данные. Если точная настройка не работает, это, скорее всего, следующий лучший вариант. Отрезание верхнего слоя все еще может работать для обучения совершенно новому языку или сценарию, если вы начнете с наиболее похожего на вид сценария.
- Переучиться с нуля. Это непростая задача, если у вас нет очень репрезентативного и достаточно большого обучающего набора для вашей проблемы. В противном случае вы, вероятно, получите переоборудованную сеть, которая действительно хорошо работает с данными обучения, но не с фактическими данными.
Хотя приведенные выше параметры могут звучать по-разному, шаги обучения на самом деле практически идентичны, за исключением командной строки, поэтому относительно легко попробовать все способы, учитывая время или оборудование для их параллельного запуска.”
В этом руководстве мы будем запускать только тестовую программу.sh скрипт, который будет вызывать необходимые программы для обучения определенному языку.
Прежде всего, давайте клонируем все файлы в нашем / usr / share / tesseract-ocr:
git clone https: // github.com / tesseract-ocr / тессеракт
Перейдите в / usr / share / tesseract-ocr / tesseract / training (каталог установки Tesseract по умолчанию) и запустите:
$ ./ tesstrain.sh --lang heb --langdata_dir / usr / share / tesseract-ocr / langdata --tessdata_dir / usr / share / tesseract-ocr / tessdata
Измените «heb» на язык, который вы хотите обучить, а также отредактируйте путь к своим данным.
В каталоге / usr / share / tesseract-ocr / тессеракт / обучение вы найдете файл для конкретного языка.sh полезно добавлять правила для определенных языков.
Поиск проблемы
Для меня Tesseract - лучшее решение для распознавания текста, но недавно в нем были внесены огромные изменения по сравнению с предыдущими версиями, и многие пользователи жалуются на изменения или вещи, которые больше не работают, я бы не стал беспокоиться, поскольку изменения, похоже, дают отличные результаты. Сообщество Tesseract очень активно, если вы обнаружите проблемы с запуском tesseract, станьте частью сообщества Tesseract здесь.