Установка Tesseract OCR в Linux
Tesseract OCR доступен по умолчанию в большинстве дистрибутивов Linux. Вы можете установить его в Ubuntu, используя следующую команду:
$ sudo apt установить tesseract-ocrДоступны подробные инструкции для других дистрибутивов здесь. Несмотря на то, что Tesseract OCR по умолчанию доступен в репозиториях многих дистрибутивов Linux, рекомендуется установить последнюю версию по указанной выше ссылке для повышения точности и анализа.
Установка поддержки дополнительных языков в Tesseract OCR
Tesseract OCR включает поддержку обнаружения текста на более чем 100 языках. Однако вы получаете поддержку только для обнаружения текста на английском языке с установкой по умолчанию в Ubuntu. Чтобы добавить поддержку синтаксического анализа дополнительных языков в Ubuntu, выполните команду в следующем формате:
$ sudo apt install tesseract-ocr-hinПриведенная выше команда добавит поддержку языка хинди в Tesseract OCR. Иногда можно добиться большей точности и результатов, установив поддержку языковых скриптов. Например, установка и использование пакета tesseract для сценария Деванагари «tesseract-ocr-script-deva» дала мне гораздо более точные результаты, чем использование пакета «tesseract-ocr-hin».
В Ubuntu вы можете найти правильные имена пакетов для всех языков и сценариев, выполнив следующую команду:
$ apt-cache search tesseract-После того, как вы определили правильное имя пакета для установки, замените им строку «tesseract-ocr-hin» в первой команде, указанной выше.
Использование Tesseract OCR для извлечения текста из изображений
Давайте возьмем пример изображения, показанного ниже (взято со страницы Википедии для Linux):
Чтобы извлечь текст из изображения выше, вы должны запустить команду в следующем формате:
$ tesseract захват.png вывод -l engВыполнение приведенной выше команды дает следующий результат:
В приведенной выше команде "захватить.png »относится к изображению, из которого вы хотите извлечь текст. Захваченный вывод затем сохраняется в «output.txt »файл. Вы можете изменить язык, заменив аргумент «eng» на свой выбор. Чтобы увидеть все допустимые языки, выполните команду ниже:
$ tesseract --list-langsОн покажет коды сокращений для всех языков, поддерживаемых Tesseract OCR в вашей системе. По умолчанию в качестве вывода будет отображаться только «eng». Однако, если вы устанавливаете пакеты для дополнительных языков, как описано выше, эта команда перечислит больше языков, которые вы можете использовать для обнаружения текста (в виде трехбуквенных языковых кодов ISO 639).
Если изображение содержит текст на нескольких языках, сначала определите основной язык, а затем дополнительные языки, разделенные знаками плюс.
$ tesseract захват.png вывод -l eng + fraЕсли вы хотите сохранить вывод в виде файла PDF с возможностью поиска, запустите команду в следующем формате:
$ tesseract захват.вывод png -l eng pdfОбратите внимание, что PDF-файл с возможностью поиска не будет содержать редактируемого текста. Он включает исходное изображение с дополнительным слоем, содержащим распознанный текст, наложенный на изображение. Таким образом, хотя вы сможете точно искать текст в PDF-файле с помощью любого PDF-ридера, вы не сможете редактировать текст.
Еще один момент, на который следует обратить внимание, точность определения текста значительно возрастает, если файл изображения высокого качества. Если у вас есть выбор, всегда используйте форматы файлов без потерь или файлы PNG. Использование файлов JPG может не дать наилучших результатов.
Извлечение текста из многостраничного PDF-файла
Tesseract OCR изначально не поддерживает извлечение текста из файлов PDF. Однако можно извлечь текст из многостраничного файла PDF, преобразовав каждую страницу в файл изображения. Выполните команду ниже, чтобы преобразовать файл PDF в набор изображений:
$ pdftoppm -png файл.вывод в формате pdfДля каждой страницы PDF-файла вы получите соответствующий «output-1.png »,« вывод-2.png ”и т. д.
Теперь, чтобы извлечь текст из этих изображений с помощью одной команды, вам нужно будет использовать цикл for в команде bash:
$ за i в *.png; do tesseract "$ i" "output- $ i" -l eng; Выполнено;Выполнение указанной выше команды извлечет текст из всех «.png »файлы, найденные в рабочем каталоге, и сохраняют распознанный текст в« output-original_filename.txt »файлы. Вы можете изменить среднюю часть команды в соответствии с вашими потребностями.
Если вы хотите объединить все текстовые файлы, содержащие распознанный текст, выполните следующую команду:
$ кошка *.txt> присоединился.текстПроцесс извлечения текста из многостраничного PDF-файла в PDF-файлы с возможностью поиска практически такой же. Вы должны предоставить команде дополнительный аргумент pdf:
$ за i в *.png; do tesseract "$ i" "output- $ i" -l eng pdf; Выполнено;Если вы хотите объединить все доступные для поиска PDF-файлы, содержащие распознанный текст, выполните следующую команду:
$ pdfunite *.pdf присоединился.pdfИ «pdftoppm», и «pdfunite» установлены по умолчанию в последней стабильной версии Ubuntu.
Преимущества и недостатки извлечения текста из файлов TXT и PDF с возможностью поиска
Если вы извлечете распознанный текст в файлы TXT, вы получите редактируемый текстовый вывод. Однако любое форматирование документа будет потеряно (жирный шрифт, курсив и т. Д.). Файлы PDF с возможностью поиска сохранят исходное форматирование, но вы потеряете возможности редактирования текста (вы все равно можете копировать необработанный текст). Если вы откроете PDF-файл с возможностью поиска в любом редакторе PDF, вы получите встроенные изображения в файл, а не исходный текст. Преобразование файлов PDF с возможностью поиска в HTML или EPUB также даст вам встроенные изображения.
Заключение
Tesseract OCR - один из наиболее широко используемых сегодня движков OCR. Это бесплатная программа с открытым исходным кодом, поддерживающая более сотни языков. При использовании Tesseract OCR обязательно используйте изображения с высоким разрешением и правильные языковые коды в аргументах командной строки, чтобы повысить точность обнаружения текста.