Tesseract OCR: установка и использование в Ubuntu 16.04
На этой странице
- 1. Установите Тессеракт
- 2 Установка Imagemagick Выполните следующую команду, чтобы установить imagemagick
- 3 Использование Тессеракта
- 4 Предварительная обработка изображения
- 4.1 изменение размера
- 4.2. Использование изображений в оттенках серого
- 4.3 Бинаризация изображения
Tesseract — один из самых мощных движков OCR с открытым исходным кодом, доступных на сегодняшний день. OCR означает оптическое распознавание символов. Это процесс извлечения текстов из изображений. Например, рассмотрим следующее изображение, в котором есть текст, который необходимо извлечь:
Вывод из механизма OCR после выполнения некоторой обработки будет примерно таким:
Open Access Button
Так работает OCR. Это полезно во многих приложениях, таких как распознавание номерных знаков транспортных средств, преобразование отсканированных копий документов в формат Word, автоматическое извлечение сведений из квитанций и т. д. Это также является первым шагом во многих задачах обработки естественного языка. В этом уроке мы рассмотрим, как быстро установить и настроить Tesseract, imagemagick и как их использовать для получения наилучших возможных результатов с предварительной обработкой изображений.
Предварительная обработка изображений — важная часть распознавания текста с помощью Tesseract. Это гарантирует высокую точность извлеченного текста и уменьшает ошибку. Мы рассмотрим некоторые основные операции, которые нужно выполнить с изображением, используя его. Imagemagick — это инструмент командной строки для обработки изображений, который помогает нам выполнять такие операции, как обрезка, изменение размера, изменение цветовых схем и т. д.
1 Установите Тессеракт
Установить tesseract довольно просто, выполните следующие команды:
sudo apt update sudo apt install tesseract-ocr
Это устанавливает двигатель Tesseract. На изображении ниже показан результат при правильной установке:
Следующее, что нужно сделать, это установить языковые пакеты. Tesseract очень надежен и может извлекать более 100 различных языков при условии загрузки языковых пакетов. Вы можете загрузить конкретный языковой пакет, используя общую команду ниже:
sudo apt-get install tesseract-ocr-[lang]
В приведенной выше команде замените \[lang]\ языком, который вы хотите загрузить. Ниже приведены примеры для английского и французского языков:
sudo apt-get install tesseract-ocr-eng sudo apt-get install tesseract-ocr-fra
Обычно tesseract поставляется с английским пакетом по умолчанию. На изображении ниже показано, что английский язык уже установлен, а французский язык необходимо загрузить и установить:
В качестве альтернативы, если вы хотите загрузить все языковые пакеты, вы можете запустить следующую команду:
sudo apt-get install tesseract-ocr-all
На этом установка Tesseract завершена.
2 Установите Imagemagick. Запустите следующую команду, чтобы установить imagemagick.
sudo apt install imagemagick
Этот инструмент используется из командной строки с помощью команды convert. Чтобы проверить правильность установки, выполните следующую команду, и результат должен быть похож на изображение ниже:
convert -h
3 Использование Тессеракта
Tesseract может принимать изображения различных форматов, таких как jpg, png, tiff и т. д., и извлекать из них текст. В этом разделе основное внимание уделяется запуску tesseract, а в следующем разделе мы увидим, как мы можем повысить точность. Вот несколько основных команд для запуска tesseract:
Чтобы получить вывод в терминале, запустите общую команду с путем к изображению.
Чтобы сохранить вывод OCR в файл, выполните следующую общую команду:
tesseract [image_path] [file_name]
После двух изображений покажите используемое изображение и результат выполнения вышеуказанных команд для этого изображения.
Как вы можете заметить, выполнение второй команды привело к созданию файла с именем \outfile.txt\, в котором можно найти выходные данные.
4 Предварительная обработка изображения
Из предыдущего вывода вы могли заметить, что в выводе есть ошибка, а также ошибка о том, что размер пикселей мал. Это один из недостатков Tesseract, он ожидает, что вы предоставите обработанное изображение, на котором он может выполнить распознавание символов. В этом разделе мы рассмотрим некоторые тактики, которые вы можете использовать с помощью imagemagick для улучшения качества изображения и, таким образом, повышения точности вывода.
4.1 изменение размера
Изменение размера — один из самых полезных приемов для повышения точности распознавания текста. Это связано с тем, что в большинстве случаев изображения имеют очень маленький размер шрифта, который Tesseract не может правильно прочитать. Вы можете изменить размер изображения с помощью следующей команды. Сумма в процентах указывает предел изменения размера. Поскольку мы хотим увеличить размер, нам нужно указать значение больше 100. Здесь мы дали значение 150% (используйте метод проб и ошибок, чтобы определить идеальный процент изменения размера для вашего варианта использования).
convert -resize 150% [input_file_path] [output_file_path]
в приведенной выше команде замените [input_file_path] на путь к изображению, размер которого необходимо изменить, и [output_file_path] на путь к изображению, в котором должны храниться выходные данные. Следующее изображение является результатом выполнения команды: convert -resize 150% image7.png image7_resize.png
4.2 Используйте изображения в градациях серого
Если у вас есть цветное изображение, рекомендуется сначала преобразовать его в оттенки серого. Есть большая вероятность, что только этого будет достаточно, чтобы получить желаемую точность распознавания текста. В противном случае для дальнейшей обработки вы можете использовать изображения в градациях серого для бинаризации изображения. Используйте следующую команду, чтобы преобразовать изображение в оттенки серого.
convert [input_file_path] -type Grayscale [output_file_path]
На следующем изображении показаны результаты выполнения команды convert image6_resize.png -type Оттенки серого image6_gray.png
4.3 Бинаризация изображения
Бинаризация или пороговое значение включает в себя преобразование изображения только в значения черного и белого. Каждый пиксель в этом изображении имеет только одно из двух значений: черный или белый. Это значительно снижает сложность изображений. Если у вас есть изображения с шумом, изображения с тенями или много текста, вы можете использовать этот метод предварительной обработки. Чтобы преобразовать это изображение в бинарный вид, сначала убедитесь, что у вас есть изображение в градациях серого, а затем используйте следующую команду:
convert [input_file_path] -threshold 55% [output_file_path]
Порог % можно варьировать, чтобы получить наилучший результат для вашего варианта использования. На изображении ниже показан пример. Важно отметить, что для имеющегося изображения бинаризация — не лучший вариант, поскольку при этом теряются некоторые данные.
Прежде чем применять какие-либо или все методы предварительной обработки, упомянутые выше, необходимо помнить о следующих моментах:
- В зависимости от варианта использования будет полезен один из шагов предварительной обработки или их комбинация.
- когда этап предварительной обработки приводит к снижению точности, его следует игнорировать из этапов предварительной обработки.
- Проценты при изменении размера или пороговых значений варьируются от изображения к изображению, поэтому необходимо применять метод проб и ошибок, чтобы получить наилучшее возможное процентное значение, чтобы обеспечить максимальную точность при запуске Tesseract.
После завершения предварительной обработки запустите Tesseract с обработанным изображением, чтобы проверить точность. Tesseract очень мощен, но имеет некоторые ограничения, когда дело доходит до типа изображения, которое дается в качестве входных данных. Надеюсь, вы нашли этот урок полезным.