Распознавание текста на изображении


Возможности компьютеров растут с каждым днём. И давайте рассмотрим как на Python "прочитать" текст с картинки. Сразу хочу отметить, картинка должна быть высокого качества.

Для начала ставим tesseract.

tesseract - это OCR движок.

OCR - оптическое распознавание текста

sudo apt-get install tesseract-ocr

далее ставим через pip3

sudo pip3 install pytesseract
sudo pip3 install tesseract
sudo pip3 install tesseract-ocr

Если не работает pip3 - выполните команду sudo apt install python3-pip

Далее качаете отсюда "модуль" русского языка для tesseract.
Кладём его в папку /usr/share/tesseract-ocr/tessdata
Сделать это можно командой:

sudo cp rus.traineddata /usr/share/tesseract-ocr/tessdata/rus.traineddata

Вызывать её нужно находясь в папке со скаченным файлом rus.traineddata

Если у Вас нет PIL, то ставим и его.

PIL - Python Image Library.

pip3 install pillow
#импортируем нужные библиотеки
from PIL import Image
import pytesseract
#проверяем запущен ли скрипт из консоли
if __name__ == '__main__':
    #открываем или создаём файл для записи
    #флаг 'w' - говорит, что файл открывается для записи а если не его нет, то создаётся
    f= open('text_photo.txt','w')
    #получаем текст из фото
    text = pytesseract.image_to_string(Image.open('/home/zheev/projects/text/1675157.jpg'), lang='rus')
    #записываем его
    f.write(text)

Imgur

Примеры, картинка и результат

Всё ломается: чувства. пюди.
угюг. Особенно утюг меня
расстроил. Вот уж от него ‚

не ожидапі ‘

‚Аштюсот &

Хрен, положенный
на мнение
окружающих,
обеспечивает
спокойную и
счастливую жизнь.

— Фаина Раневская

Замечапи, что люди курят кальян
В ресторанах С таким видом,
будто ТОЛЬКО что завоевали

Константинополь?

Imgur

1 КОРЗИНА

«Барселона»
«Челси»
«Бавария»

«Ювентус»
«Бенфика»
«ПСЖ»
«Зенит»
ПСВ

ЕШЧП 5Р0ПТ

2 КОРЗИНА

«Реал»
«Атлетико»
«Порту»
«Арсенал»
«МЮ»
«Валенсия»
«Байер»
«Сити»

3 КОРЗИНА

«Шахтер»
«Севилья»
«ЛИОН»
«динамо»
«Олимпиакос»
ЦСКА
«Галатасарай»
«Рома»

4 КОРЗИНА

БАТЭ
«Боруссия» М
«Вольфсбург»
«динамо» Зг
«Маккаби» Т-А
«Гент»
«Мальмё»
«Астана»

Итог

Как видите - иногда слова парсятся в верхнем регистре, но в целом всё работает корректно и после такого "парсинга" достаточно немного поправить распознанный текст.

Материал подготовлен автором @zheev


Comments 2


Неплохая статья. Было бы интересно почитать про распознавание текста при помощи ИИ

02.01.2018 05:25
0