Опция 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. Надеюсь, это поможет!