В этой статье будет описано руководство по установке и использованию инструмента командной строки EasyOCR и модуля Python. Доступно как бесплатное приложение с открытым исходным кодом, его можно использовать для идентификации и извлечения текста из изображений. Он использует технологию оптического распознавания символов (OCR) и множество различных алгоритмов и языковых моделей для обнаружения текста.
Основные возможности EasyOCR
EasyOCR может обнаруживать текст на более чем 80 языках и скриптах. Он включает предварительно обученные модели для этих языков, но вы можете использовать EasyOCR для обучения собственных моделей с нуля. Помимо цифрового и печатного текстового контента в изображениях, EasyOCR также может обнаруживать и извлекать рукописный текст. Другие основные функции EasyOCR включают возможность пакетной обработки нескольких изображений одновременно, возможность ограничивать и блокировать определенные символы на языке, возможность преобразования извлеченных строк в абзацы, возможность изменять размер и увеличивать изображения для повышения точности обнаружения и т. д.
Установка EasyOCR в Linux
Вы можете установить EasyOCR в Linux с помощью диспетчера пакетов pip. Чтобы установить диспетчер пакетов pip в Ubuntu, используйте следующую команду:
$ sudo apt install python3-pip
Менеджер пакетов Pip доступен в официальных репозиториях многих дистрибутивов Linux, поэтому вы можете установить его из стандартного менеджера пакетов. Вы также можете следовать официальным инструкциям по установке, доступным здесь, чтобы установить диспетчер пакетов pip в вашу систему Linux.
После успешной установки диспетчера пакетов pip выполните следующую команду для установки EasyOCR в Linux:
$ pip3 install easyocr
Использование EasyOCR в Linux
Чтобы извлечь текст из изображения выше, вам нужно будет запустить команду в следующем формате:
$ easyocr -l en -f image.png
Первый параметр «-l» может использоваться для указания языка текстового содержимого, которое вы хотите захватить с помощью EasyOCR. Вы можете указать несколько языков, используя коды языков, разделенные командами. Переключатель «-f» используется для указания файла входного изображения. Список всех языков, поддерживаемых EasyOCR, и их коды можно найти здесь (прокрутите вниз, чтобы увидеть их).
На выходе отображаются определенные числа и текст, извлеченный из изображения. Этот вывод можно прочитать в следующем формате: координаты отдельных фрагментов текста> обнаруженный текст> уровень достоверности. Таким образом, числа в крайней левой части представляют координаты идентифицированных текстовых полей, в то время как число в крайней правой части указывает, насколько точен извлеченный текст.
Если вы просто хотите получить обнаруженный текст в удобочитаемой форме, добавьте переключатель «–detail 0» в приведенную выше команду:
$ easyocr -l en --detail 0 -f image.png
Как вы можете видеть в выводе, извлеченный текст находится в неправильном порядке. Вы можете попробовать опцию командной строки «–paragraph True», чтобы соединить отдельные части и предложения в правильном порядке.
$ easyocr -l en --detail 0 --paragraph True -f image.png
Обратите внимание, что в зависимости от качества и четкости изображения и текстового содержания изображения в извлеченном тексте всегда могут присутствовать определенные неточности, и вам, возможно, придется внести исправления вручную, чтобы исправить их.
Чтобы сохранить идентифицированный текст во внешний файл, используйте символ «>» и укажите имя для выходного файла. Вот пример команды:
$ easyocr -l en --detail 0 --paragraph True -f image.png > output.txt
Чтобы узнать больше обо всех параметрах командной строки, поддерживаемых EasyOCR, используйте следующую команду:
$ easyocr --help
Использование EasyOCR в программах на Python
EasyOCR также доступен в виде библиотеки Python, поэтому вы можете импортировать его основной модуль в свои программы Python. Ниже приведен пример кода, иллюстрирующий его использование в программе Python:
import easyocr reader = easyocr.Reader(['en']) result = reader.readtext('image.png', detail=0, paragraph=True) with open("output.txt", "w") as f: for line in result: print(line, file=f)
Первый оператор используется для импорта модуля easyocr в вашу программу Python. Затем создается новый экземпляр класса «Reader» (базовый класс), предоставляя в качестве основного аргумента список языков, поддерживаемых EasyOCR. Если ваше изображение содержит текст на нескольких языках, вы можете добавить в список другие коды языков. Затем для экземпляра «reader» вызывается метод «readtext», и путь к файлу изображения предоставляется в качестве первого параметра. Этот метод идентифицирует и извлекает текст из предоставленного изображения. Два необязательных аргумента, «detail» и «paragraph», аналогичны параметрам командной строки, описанным выше. Они упрощают текст, удаляя ненужные элементы.
Заключение
EasyOCR – это инструмент для извлечения текста из командной строки, который поставляется с предварительно обученными моделями для многих языков. Это позволяет конечным пользователям быстро идентифицировать и извлекать текст из изображений, не имея собственных языковых моделей. Он также предоставляет подробные координаты ограничивающих рамок вокруг идентифицированных и размеченных слов, что упрощает анализ отдельных фрагментов текста.