iOS Tesseract OCR - Ошибка: не удалось выполнить подтверждение: в файле ../../ccutil/tessdatamanager.cpp, строка 53 - PullRequest
0 голосов
/ 07 января 2020

Я начал использовать OCR от Tesseract, следуя обучающей программе Ray Wenderlich . Последний пример кода, который вы можете загрузить из учебного пособия, отлично работает для языков ENG & FRA.

Я хочу добавить хорватский язык в существующий проект. Я скачал файл hrv.traineddata и поместил его в папку tessdata, которая уже содержала файлы ENG & FRA.

Я также обновил код, определив новый язык для tesseract:

if let tesseract = G8Tesseract(language: "eng+fra+hrv") {
  tesseract.engineMode = .tesseractCubeCombined
  tesseract.pageSegmentationMode = .auto

  tesseract.image = preprocessedImage
  tesseract.recognize()
  textView.text = tesseract.recognizedText
}

Проблема : Когда я определил "hrv" как язык тессеракта, я получаю ошибку при запуске приложения. Чтобы быть более точным, я получаю ошибку при выборе изображения (выполнение функции распознавания изображения).

Ошибка : actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ../../ccutil/tessdatamanager.cpp, line 53

Среди . Файл с обученными данными , английский и английский языки также имеют файлы .cube в проекте в папке tessdata . В отличие от этих языков, на хорватском языке доступен для скачивания только файл trainingdata . Вероятно, поэтому происходит ошибка. Здесь вы можете проверить все доступные языковые данные.

Я пытался изменить режим двигателя тессеракта на тессеракт только так: tesseract.engineMode = .tesseractOnly, но ошибка все еще там.

Вопрос: Как я могу использовать новейшие версия .traineddata файлов (v4.0.0) для любого языка? В настоящее время мне удалось работать только с самой старой версией v3.04.00.

Редактировать: Проблема в том, что версия hrv.traineddata , которую я использовал в проекте не будет работать с версией используемого Tesseract-OCR- iOS. Чтобы временно исправить ошибку для этого примера проекта, мне пришлось переключиться на старую версию hrv.traineddata .

...