Узнайте, как правильно распознать текст на изображении с помощью tesseract и ocrfeeder.

Многие из вас, должно быть, уже знакомы с программами оптического распознавания символов (OCR). Если да, то вы сталкивались с некоторыми, которые не распознают символы, типичные для испанского языка, такие как eñe, tílde и другие (ñ, ó, ü).

Теперь благодаря тессеракт и в пакет тессеракт-окр-спа Мы сможем распознать эти символы и посмотрим, как обращаться с определенными изображениями, у которых уровни цвета или пикселей неверны.

Сначала мы должны установить следующие программы:

Тессеракт-OCR
тессеракт-окр-спа
окрфидер

В Debian я советую вам устанавливать их без установки рекомендуемого программного обеспечения:

sudo apt-get --no-install-recommends install ocrfeeder tesseract-ocr-spa tesseract-ocr

Если у нас есть изображение (отсканированный документ), на котором буква разборчива, можно будет распознать текст примерно в 90% случаев, таблицы не будут распознаны, если изображение имеет 2 столбца, оно автоматически распознает сначала столбец, а затем второй, чтобы сохранить порядок текста.

Есть 2 способа распознать текст: один через командную строку в терминале или через ocrfeeder, последний потребует больше времени на обработку:

Метод командной строки:

tesseract "/entrada/fichero.jpg" "/salida/fichero.txt" -l spa -psm 3

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

cd /carpeta/imagenes
find ./ -name "*.jpg" | sort | while read file; do tesseract "$file" "`basename "$file" | sed 's/\.[[:alnum:]]*$//'`.txt" -l spa -psm 3; done

Чтобы объединить полученные текстовые файлы в указанной папке, мы будем использовать следующую команду, с помощью которой абзацы будут правильно соединены.

cd /carpeta/imagenes
find ./ -name "*.txt" | sort | while read file; do cat "$file" | sed 's|^$|##|g' | tr '\n' " " | tr '##' "\n" >> Texto-unido.txt; done

Метод с ocrfeeder:
1- Открываем программу ocrfeeder.
2- Мы редактируем движок, нажимая Tools - OCR Engines, выбираем движок esseract и нажимаем на edit, и там, где он говорит аргументы движка, мы меняем скрипт для этого:

$IMAGE $FILE -l spa -psm 3 > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

3- Импортируем изображение или папку, где есть несколько изображений.
4- Мы нажимаем на «Идентифицировать документ», как только документ будет идентифицирован, вы можете вручную выбрать, какие его части будут изображениями или текстом.
5- Перед экспортом документа нажимаем Edit - Edit page, выбираем желаемую страницу, наиболее распространенной является буква.
6- Чтобы экспортировать документ, мы нажимаем File - Export, выбираем желаемый формат вывода, если в документе есть изображения, я советую вам использовать формат odt или html, если это только текст, лучше всего использовать Plain Text ( txt) формат.

На этом это не заканчивается, потому что есть много фотокопий, качество которых не соответствует требованиям, для их ремонта мы будем использовать каркас и тисненый фильтр (этот процесс может быть медленным):
1- Открываем изображение канитель.
2- Мы нажимаем Filters - Distortions - Embossing, выбираем поле bump map, настраиваем уровни азимута примерно на 162,25, высоту до 88,73 и глубину до 6 или 3. Мы сохраняем изображение со 100% качеством, если это jpg, в экспорте - name.jpg.

При желании вы можете настроить уровни белого, нажав Цвета - Уровни - авто.