Как установить tesseract ocr python
Перейти к содержимому

Как установить tesseract ocr python

  • автор:

Распознавание текста с помощью pytesseract

Не так давно я озадачился вопросом распознавания печатного текста в своём приложении. Мне стало интересно, какие на данный момент существуют OCR-библиотеки и насколько они удобны в использовании. А главное — будет ли приемлемый результат распознавания текста и можно ли такой текст потом озвучить? Озвучка текста это тема для отдельной статьи, а сегодня мы напишем приложение на Python, которое сможет распознавать тексты на русском языке благодаря OCR-библиотеке Tesseract.

Если вы столкнулись с задачей распознавания текста, то в первую очередь необходимо обратить внимание на так называемые OCR-библиотеки. Вообще OCR (Optical Character Recognition) — это оптическое распознавание текста, то есть механический или электронный перевод изображений с текстом в текстовые данные. То есть формально, когда вы перепечатываете какой-либо текст, то реализуете один из механизмов OCR 🙂

Нас конечно же интересует чтобы программа сама смогла прочитать текст с картинки и предоставить текстовые данные в строковой переменной. Для этого существуют различные готовые библиотеки и одна из них — Tesseract. Сама библиотека Tesseract не имеет ничего общего с Python, по сути она содержит OCR-движок и программу командной строки. Поэтому для разработки на Pyhton нам потребуется специальный модуль pytesseract.

Подготовка

Перед тем как я начну использовать pytesseract, необходимо провести подготовительную работу. Так как у меня на компьютере Linux, мне нужно загрузить ряд пакетов чтобы начать разработку распознавалки текста. Для этого в командной строке необходимо выполнить:

$ sudo apt update $ sudo apt install tesseract-ocr $ sudo apt install libtesseract-dev

Этого достаточно чтобы распознать текст на английском языке, но моя цель — распознавание текстов на русском языке, поэтому потребуется поставить ещё один пакет:

$ sudo apt install tesseract-ocr-rus

У библиотеки Tesseract много языковых пакетов, поэтому если вам требуется возможность распознавать какой-либо другой язык, то выполняете комманду:

$ sudo apt install tesseract-ocr-[lang]

А можно просто выполнить команду:

$ sudo apt install tesseract-ocr-all

и у вас будет поддержка всех языков, которые умеет распознавать Tesseract.

Я правда не разбирался как всё тоже самое провернуть в Windows, но если вам это интересно, напишите пожалуйста к статье комментарий или мне в личные сообщения — я дополню статью. А пока продолжаем работу в Linux 🙂

Создание проекта

Теперь нужно создать новый проект в IDE и настроить виртуальное окружение. Для распознавания текста необходимо поставить библиотеку pytesseract, как я уже писал выше, а так же потребуется pillow для загрузки изображений. Поэтому выполняем следующие команды:

pip3 install pytesseract pip3 install pillow

Теперь у нас есть всё необходимое чтобы приступить к разработке приложения, которое будет распознавать текст.

Разработка

Само приложение будет максимально простым, ведь вся работа ложится на установленные библиотеки. Мне остаётся только написать несколько строчек чтобы всё заработало:

import pytesseract from PIL import Image # Загрузка изображения с текстом image = Image.open("test.jpg") # Распознавание текста string = pytesseract.image_to_string(image, lang='rus') # Вывод распознанного текста в консоль print(string) 

Вот и весь код! Единственный важный момент — нужно явно указывать язык при вызове метода image_to_string, так как библиотека не умеет самостоятельно определять язык, на котором написан текст.

Теперь попробуем распознать вот такую сложную по своей структуре страницу:

Запускаем программу и получаем следующий результат:

Не идеально конечно, но с учётом того что структура страницы сложная, качество изображения плохое и часть букв смазаны, то результат вполне себе хороший! Тут стоит вспомнить что даже старый добрый FineReader так же допускает ошибки при распознавании текста.

Современным разработчикам очень повезло — уже существуют множество готовых библиотек с очень серьёзными возможностями. Ещё лет 15-20 назад для решения подобной задачи пришлось бы потратить гораздо больше времени и скорее всего пришлось бы писать свой OCR-движок. Теперь достаточно написать несколько строчек кода чтобы получить на выходе достойный результат!

Не мойму как установить pytesseract

Установил Tesseract OCR по этому гайду https://www.youtube.com/watch?v=Rb93uLXiTwA&ab_channel=AllroundZone и на ввод в консоль tesseract он отзывается.

Установил opencv-python c помощью pip install opencv-python

Установил pytesseract pip install pytesseract

from cv2 import cv2 import pytesseract img=cv2.imread("test.png") im=cv2.resize(img,None,fx=9,fy=9) like=pytesseract.image_to_string(img,config='outputbase digits') print(like) 
 Выводит такое Traceback (most recent call last): File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\site-packages\pytesseract\pytesseract.py", line 255, in run_tesseract proc = subprocess.Popen(cmd_args, **subprocess_args()) File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 947, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1416, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] Не удается найти указанный файл During handling of the above exception, another exception occurred: Traceback (most recent call last): File "e:\py projects\content\img_to_str.py", line 10, in like=pytesseract.image_to_string(img,config='outputbase digits') File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\site-packages\pytesseract\pytesseract.py", line 409, in image_to_string return < File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\site-packages\pytesseract\pytesseract.py", line 412, in Output.STRING: lambda: run_and_get_output(*args), File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\site-packages\pytesseract\pytesseract.py", line 287, in run_and_get_output run_tesseract(**kwargs) File "C:\Users\dkati\AppData\Local\Programs\Python\Python39\lib\site-packages\pytesseract\pytesseract.py", line 259, in run_tesseract raise TesseractNotFoundError() pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

Распознаем текст на изображении с Python Tesseract

Распознаем текст на изображении с Python Tesseract

Из этого руководства вы узнаете как распознать текст на изображении с помощью трех строк Python кода.

Шаг 1. Установим оболочку для Tesseract-OCR Engine

pip install pytesseract

Шаг 2. Загрузим и установить Tesseract на Windows по следующей ссылке: https://digi.bib.uni-mannheim.de/tesseract/

Загрузим и установить Tesseract

Поставим галочку для загрузки дополнительного языка, в нашем случае "Russian".

Шаг 3. Запустим код, и посмотрим результат. Для примера попробуем распознать текст с картинки ниже.

Распознаем текст на картинке

import pytesseract config = r'--tessdata-dir "C:\Program Files\Tesseract-OCR\tessdata" -l rus --oem 1 --psm 3' result = pytesseract.image_to_string('1.jpg', config=config) print(result)
Таким образом реализация намеченных плановых заданий позволяет оценить значение новых предложений.

Следующее изображение

Распознаем текст на картинке

ДЕРЖИСЬ ПОДАЛЬШЕ ОТ СЕРВЕРНОЙ

Откуда устанавливать Tesseract OCR для Python?

Посмотрел много гайдов по установке Tesseract OCR с разными ссылками.

Кто-то говорит что нужно скачать файл с первого сайта.
Другой говорит: со второго.

Откуда скачивать? Может это одна и та же версия программы, просто выставлена на разных сайтах.
Просто названия у файлов разные:
На сайте pypi: pytesseract-0.3.8.tar.gz (Архив 14.6 kB).
Открываю файл setup.py в архиве. Открывается cmd и сразу же закрывается.
На гитхабе: tesseract-ocr-w64-setup-v5.0.0-rc1.20211030.exe (51мб).

Может вопрос немного тупой, но лучше спросить, чем потом мучиться.

  • Вопрос задан более двух лет назад
  • 3143 просмотра

Комментировать
Решения вопроса 1

SoreMix

soremix @SoreMix Куратор тега Python

Это два абсолютно разных файла.

Версия с pypi - это сама библиотека pytesseract.
Pytesseract - обертка для инструмента Tesseract. Бинарники Tesseract лежат на втором сайте, который вы указали.

Вам нужен как сам tesseract, так и библиотека для работы с ним в python.

Так что устанавливаем pytesseract
pip install pytesseract

Ответ написан более двух лет назад
Нравится 1 3 комментария
Ростислав Иванов @Slavik28 Автор вопроса

В гайде говорилось, что нужно выполнить 2 действия.
1. Установить саму программу PyTesseract OCR
2. Установить библиотеку в cmd: pip install pytesseract.

Получается, что программу Tesseract нужно скачать со второго сайта?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *