Подтвердить что ты не робот

Ошибка запуска Tesseract

У меня проблема с запуском tesseract-ocr engine на linux. Я загрузил данные языка RUS и поместил их в каталог tessdata (/usr/local/share/tessdata). Когда я пытаюсь запустить tesseract с помощью команды tesseract blob.jpg out -l rus, появляется сообщение об ошибке:

Error opening data file /usr/local/share/tessdata/eng.traineddata

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.

Failed loading language eng
Tesseract couldn't load any languages!

Could not initialize tesseract.

В соответствии с инструкцией по компиляции я использовал export TESSDATA_PREFIX='/usr/local/share/' для указания моего каталога tessdata. Может быть, я должен отредактировать любые файлы конфигурации? Tesseract пытается загрузить файлы данных 'eng' вместо 'rus'.

Снимок экрана: http://i.stack.imgur.com/I0Guc.png

4b9b3361

Ответ 1

Вы можете взять eng.traineddata Github:

wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata

Проверьте https://github.com/tesseract-ocr/tessdata полный список данных об обученном языке.

Когда вы возьмете файл (ы), переместите их в папку /usr/local/share/tessdata. Предупреждение: некоторые дистрибутивы Linux (такие как openSUSE и Ubuntu) могут ожидать этого в /usr/share/tessdata.

# If you got the data from Google, unzip it first!
gunzip eng.traineddata.gz 
# Move the data
sudo mv -v eng.traineddata /usr/local/share/tessdata/

Ответ 2

Самый простой способ - установить нужный пакет:

sudo apt-get install tesseract-ocr-eng  #for english
sudo apt-get install tesseract-ocr-tam  #for tamil
sudo apt-get install tesseract-ocr-deu  #for deutsch (German)

Как вы можете заметить, это открывает дорогу к другим языкам (т.е. tesseract-ocr-fra).

Ответ 3

У меня тоже была эта ошибка на машине с Windows.

Мое решение.

1) Загрузите языковые файлы с https://github.com/tesseract-ocr/tessdata/tree/3.04.00

Например, для eng я скачал все файлы с префиксом eng.

2) Поместите их в каталог tessdata внутри какой-нибудь папки. Добавьте эту папку в системные переменные как TESSDATA_PREFIX.

Результатом будет System env var: TESSDATA_PREFIX = D: /Java/OCR И папка OCR содержит tessdata с языковыми файлами.

Это скриншот каталога:

enter image description here

Ответ 4

Никакое предыдущее решение не работало для меня.

Я установил оба параметра apt-get и вручную загрузил tessdata, переместился вокруг /usr и так далее, и никто не работал, даже если я экспортировал переменную тысячу раз.

Наконец, при последней попытке, прежде чем начать плакать, я попытался передать путь непосредственно к экземпляру Tesseract().

В Python: tr = Tesseract("/usr/local/share/tesseract-ocr/") и теперь он работает. Чтобы уточнить, im использует модуль tesserwrap.

Ответ 5

Вы можете вызвать API-функцию tesseract из кода C:

#include <tesseract/baseapi.h>
#include <tesseract/ocrclass.h>; // ETEXT_DESC

using namespace tesseract;

class TessAPI : public TessBaseAPI {
    public:
    void PrintRects(int len);
};

...
TessAPI *api = new TessAPI();
int res = api->Init(NULL, "rus");
api->SetAccuracyVSpeed(AVS_MOST_ACCURATE);
api->SetImage(data, w0, h0, bpp, stride);
api->SetRectangle(x0,y0,w0,h0);

char *text;
ETEXT_DESC monitor;
api->RecognizeForChopTest(&monitor);
text = api->GetUTF8Text();
printf("text: %s\n", text);
printf("m.count: %s\n", monitor.count);
printf("m.progress: %s\n", monitor.progress);

api->RecognizeForChopTest(&monitor);
text = api->GetUTF8Text();
printf("text: %s\n", text);
...
api->End();

И построить этот код:

g++ -g -I. -I/usr/local/include -o _test test.cpp -ltesseract_api -lfreeimageplus

(мне нужен FreeImage для загрузки картинки)

Ответ 6

Я использую Visual Studio 2017 Community Edition.
Я решил эту проблему, создав каталог tessdata​​strong > в каталоге Debug моего проекта. Затем я помещаю файл eng.traineddata​​strong > в указанный каталог.

Ответ 7

tesseract  --tessdata-dir <tessdata-folder> <image-path> stdout --oem 2 -l <lng>

В моем случае, ошибки, которые я совершил, или попытки, которые не увенчались успехом.

  • Я клонировал репозиторий GitHub и скопировал файлы оттуда в
    • /USR/локальные/доли /tessdata/
    • /USR/доли/тессеракт-OCR/tessdata/
    • /USR/доли /tessdata/
  • Используется TESSDATA_PREFIX с указанными выше путями
  • sudo apt-get установить tesseract-ocr-eng

Первые 2 попытки не сработали, потому что файлы из git clone не сработали по причинам, которые я не знаю. Я не уверен, почему попытка № 3 сработала для меня.

В заключение,

  1. Я скачал файл eng.traindata с помощью wget
  2. Скопировал его в какую-то папку
  3. Используется --tessdata-dir с именем папки

Удаляйся для меня - это хорошо изучи инструмент и используй его, а не полагайся на установку менеджера пакетов и папки

Ответ 8

Я использую ОС Windows, я пробовал все решения выше, и ни одно из них не работает.

Наконец, я устанавливаю Tesseract-OCR на диск D (откуда я запускаю свой скрипт на python) вместо диска C, и он работает.

Так что, если вы используете Windows, запустите ваш скрипт на том же диске, что и Tesseract-OCR.

Ответ 9

C:\Users\pankaj.neupaney\AppData\Local\Continuum\anaconda3\envs\ocrtextrecog\Lib\сайт-пакеты\tesserocr

добавьте свои тессссдаты сюда