Поиск по сайту:

Как преобразовать изображения в текст в командной строке Linux с помощью OCR


Возможно, в прошлом высококачественное программное обеспечение для оптического распознавания символов (OCR) было дорогим, но теперь оно доступно бесплатно прямо из командной строки терминала Linux! Эта статья поможет вам настроить и начать работу с OCR.

Что такое ОКР?

Аббревиатура OCR расшифровывается как Optical Character Recognition: программа и система, с помощью которых компьютер может читать текст внутри изображений. Представьте, что вы фотографируете свой любимый отрывок из одной из книг «Властелина колец».

Вы хотели бы процитировать это в другом месте, но у вас есть только фотография. Программное обеспечение OCR может помочь вам, проанализировав эту фотографию/изображение и найдя на нем весь текст.

Затем программное обеспечение OCR для каждой обнаруженной буквы будет анализировать графические точки, видимые на изображении, и переводить/преобразовывать их в фактический текст, который компьютер может использовать, например, в текстовом процессоре.

Хотя существует множество доступных программ для оптического распознавания текста, некоторые платные, а некоторые бесплатные, не все они одинакового качества. Некоторые пакеты будут давать результаты более низкого качества, другие будут точно соответствовать тексту на фотографии или изображении.

Вообще говоря, стандартные книги (или распечатки веб-страниц в Интернете) будут работать очень хорошо и во всех случаях должны давать результаты приемлемого качества, так как шрифты прямые и однородные и расположены под одним углом, при условии, что исходная фотография или отсканированное изображение имеет приемлемое качество. качество.

Также следует иметь в виду, что даже продвинутые программные пакеты могут иметь проблемы с изображением низкого качества или размытыми, и большинство пакетов могут иметь проблемы с различными стилями рукописного ввода и т. д. Другие проблемы могут включать в себя текст, смешанный с изображениями или фотографиями, или другое направление (например, левое -right, а также текст сверху вниз или под углом) на одной странице.

Это делает выбор и, возможно, оплату пакета OCR, возможно, длительным процессом, особенно если вы хотите протестировать и оценить каждый пакет.

Для тех, кто использует Linux, есть отличный альтернативный маршрут. Бесплатное высококачественное программное обеспечение для распознавания текста на основе нейронной сети LSTM с поддержкой Unicode (UTF-8), которое по умолчанию может распознавать более 100 языков. Он также поддерживает множество форматов вывода, таких как HTML, PDF и обычный текст.

Без дальнейших церемоний; Добро пожаловать в Tesseract OCR!

Установка Tesseract OCR

Чтобы установить Tesseract OCR в свой дистрибутив Linux на базе Debian/Apt (например, Ubuntu и Mint), выполните следующие действия:

sudo apt install tesseract-ocr libtesseract-dev tesseract-ocr-eng

Чтобы установить Tesseract OCR на RHEL и Centos, выполните следующие действия:

sudo yum установить epel-release
sudo yum установить tesseract-devel leptonica-devel

Чтобы установить Tesseract OCR в Fedora, выполните следующие действия:

sudo yum установить tesseract-devel leptonica-devel

Чтобы установить Tesseract OCR на OSX, выполните следующие действия:

варить установить тессеракт

Давайте ОКР!

Мы будем использовать простое изображение, содержащее следующий текст:

Чтобы преобразовать это изображение, все, что вам нужно сделать, это открыть окно терминала, изменить каталог (используя команду cd your_directory_with_images) на каталог, содержащий ваши изображения (например, если вы создали каталог images в вашем домашнем каталоге (~/images) вы можете просто использовать cd ~/images) и распознавать файлы:

tesseract -l eng input_for_ocr.png output_from_ocr
cat output_from_ocr.txt 

Очень просто и понятно. И, как мы видим, результат идеальный.

Мы указываем английский язык с помощью опции -l eng. Вы можете проверить руководство по tesseract (man tesseract) для любых других доступных языковых кодов.

Мы также указали входное изображение (input_for_ocr.png), а также выходной файл output_from_ocr без какого-либо расширения файла, который будет использовать обычный текст по умолчанию .txt формат.

Мы также можем изменить выходной формат на PDF, используя немного более длинную команду, которая просто указывает выходной формат в конце:

tesseract -l eng input_for_ocr.png output_from_ocr pdf

При добавлении суффикса pdf используемый выходной формат был PDF. Когда мы открываем файл PDF (output_from_ocr.pdf), мы видим, что текст можно выделить и скопировать/вставить, как это было сделано со словом Readers! здесь:

Другими словами, файл PDF содержит текстовые и доступные для выбора данные, а не графическую (и, следовательно, недоступную для выбора) информацию. Большой!

Что делать, если я хочу распознать PDF-файл?

Иногда вы можете получить файл PDF, который, несмотря на то, что формат PDF поддерживает реальный текст внутри страниц, содержит только изображения с текстом. Это может быть неприятно, так как копирование и вставка будут недоступны. Вы также можете распознавать эти страницы с помощью небольшого обходного пути.

Сначала вы захотите преобразовать файл PDF в изображения — одно изображение на страницу — а затем распознавать отдельные страницы в текст. Немного больше работы, но все же большая экономия времени по сравнению с повторным вводом текста вручную.

Чтобы узнать о простых шагах по преобразованию файла PDF в изображения или даже в сценарий и автоматизировать преобразование нескольких файлов PDF, вы можете прочитать нашу статью Преобразование PDF в изображения из командной строки Linux!

Подведение итогов

В этой статье мы рассмотрели Tesseract, высококачественный бесплатный механизм распознавания текста из командной строки для Linux. Мы увидели, как легко преобразовать изображения в текст с помощью простой команды.

Мы также рассмотрели преобразование изображений в текстовые файлы PDF и сослались на статью, в которой вы можете найти информацию о том, как предварительно преобразовать файлы PDF на основе изображений в изображения, чтобы впоследствии их можно было преобразовать в текст с помощью показанного здесь метода OCR.

Наслаждайтесь!