Опция Tesseract -tessdata-dir не работает в Ubuntu 18.04

Я пытаюсь использовать лучшую модель из тессеракта. Однако я получаю следующую ошибку:

tesseract sample.jpg stdout --tessdata-dir tessdata/
Error opening data file tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
Could not initialize tesseract.

Вот структура папок:

├── sample.jpg
└── tessdata
    └── eng.traineddata

Ubuntu Version:
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
tesseract version:
tesseract 4.0.0-beta.1
 leptonica-1.75.3
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0

3 ответа

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

Убедитесь, что для переменной среды TESSDATA_PREFIX задан родительский каталог вашего каталога "tessdata".

Кажется, что файл конфигурации ожидает, что файлы будут на один уровень выше, поэтому в моем случае /usr/share/tesseract-ocr/4.00/

Скопировав языковые файлы и данные обучения (в моем случае eng.traineddata и osd.traineddata) в папку tessdata /usr/share/tesseract-ocr/4.00/tessdata в родительскую папку на один уровень выше

После этого у тессеракта проблем больше не было

Это были правильные места для установки Ubuntu 19.10.

Некоторые интересные выводы: --tessdata-dir на данный момент не работает внутри моего скрипта Python , но, тем не менее, работает в командной строке .

      tesseract sample.png --tessdata-dir /home/nmpai/MyPC/tesseract/ocrb/tessdata -l ocrb_int

Как предполагают другие ответы, внешняя настройка переменной среды TESSDATA_PREFIX работает, но это проблема.

Мы можем исправить это, не устанавливая TESSDATA_PREFIX извне, установив это внутри скрипта Python, чтобы, я думаю, развертывание прошло гладко.

      import os
os.environ['TESSDATA_PREFIX'] = os.path.join(os.getcwd(),"tessdata")

Я удалил --tessdata-dir из конфигурации, так как вышеизложенное работает и аккуратно внутри скрипта python.

Вы, кажется, не установили TESSDATA_PREFIX переменная. Отредактируйте ~/.bashrc в любом текстовом редакторе, например. nano ~/.bashrc' и добавить строку export TESSDATA_PREFIX='<absolute path to tessdata>' где я полагаю, что tessdata относится к папке, которую вы упомянули.

Беги source ~/.bashrc как только вы закончите редактирование и сохраните.bashrc. Надеюсь, это поможет!

Другие вопросы по тегам