Распознавание текста с картинки. Python Tesseract ORC + OpenCV

Распознавание текста с картинки. Python Tesseract ORC + OpenCV

Что сделаем за урок?

Мы с вами рассмотрим пример работы с библиотекой Tesseract ORC и на её основе построим приложение для распознавания текста с фото.


Что забавно, так это возраст библиотеки. Tesseract — является программой, разрабатывавшейся компанией Hewlett-Packard с середины 1980-х по середину 1990-х годов. Затем программа около 10 лет «пролежала на полке» и в августе 2006 года её купила Google. Google открыл исходный код под лицензией Apache 2.0 для продолжения разработки.


На сегодняшний день библиотека является наиболее крутым решением, если вам требуется считать данные из какого-либо фото.


Установка библиотеки

Первое, что необходимо сделать, то это выполнить установку Tesseract ORC. Установка Tesseract удобна на Маке и Линукс. Если вы на Windows, то придется выполнить на одно движение больше.


Если вы на Маке, то скачайте HomeBrew и далее в терминале пропишите brew install tesseract. Если вы на Линукс, тогда в зависимости от операционной системы вам нужно прописать соответствующую команду в терминале.


И если вы на Windows, то вам нужно скачать приложение на ПК. Вам нужно скачать файл Windows Installer. После скачивания выполните установку данной программы.


С самой программой вам никак не придется взаимодействовать, а лишь скопировать её расположение. Обычно оно устанавливается на диск С в Program files. Найдите вашу программу и скопируйте путь к этой папке.


Разработка проекта

Полная разработка проекта показывается в видео. Вы можете просмотреть его ниже:




Полезные ссылки:

  • Плейлист по нейронным сетям;
  • Официальный сайт Tesseract;
  • Tesseract для Windows;
  • Различные языки для Tesseract.


Код для реализации проекта из видео:

import cv2
import pytesseract

# Путь для подключения tesseract
# pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'

# Подключение фото
img = cv2.imread('yourPhoto.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Будет выведен весь текст с картинки
config = r'--oem 3 --psm 6'
# print(pytesseract.image_to_string(img, config=config))

# Делаем нечто более крутое!!!

data = pytesseract.image_to_data(img, config=config)

# Перебираем данные про текстовые надписи
for i, el in enumerate(data.splitlines()):
	if i == 0:
		continue

	el = el.split()
	try:
		# Создаем подписи на картинке
		x, y, w, h = int(el[6]), int(el[7]), int(el[8]), int(el[9])
		cv2.rectangle(img, (x, y), (w + x, h + y), (0, 0, 255), 1)
		cv2.putText(img, el[11], (x, y), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 1)
	except IndexError:
		print("Операция была пропущена")

# Отображаем фото
cv2.imshow('Result', img)
cv2.waitKey(0)
()
Количество показов: 529
29 октября 2020

Возврат к списку

Корзина0 позиций на сумму 0 руб.