Tesseract trainingdata не работает в проекте Swift 3.0 с использованием версии 4.0
Я пытаюсь использовать Tesseract-OCR-iOS в новом проекте Swift 3.0. Я использую Xcode Version 8.1 (8B62). CocoaPods - версия 1.1.1.
Когда я пытаюсь использовать tesseract.recognize()
, мое приложение падает, и я получаю следующий вывод в консоли:
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
Я нашел этот пост, который звучит, я использую неправильную версию traineddata
. Я загрузил tessdata
из tessdata
-ocr/tessdata repo, поэтому я не понимаю, почему у меня будет несоответствие номеров версий.
Любые предложения о том, как получить работу Tesseract, очень ценятся. Ниже приведена дополнительная информация: моя настройка.
Вот как выглядит мой Podfile
:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'TesseractDemo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for TesseractDemo
pod 'TesseractOCRiOS', '4.0.0'
end
Я перетащил папку tessdata
содержащую eng.traineddata
в корневую директорию моего проекта за пределами Xcode и перетащил ссылку из Finder в Xcode Project Navigator.
До сих пор все работает нормально. Никаких ошибок компилятора, нытье в линкере и т.д. В UIViewController
я импортирую TesseratOCR
и TesseratOCR
его так:
// MARK: - OCR Methods
func scanImage(image: UIImage) {
if let tesseract = G8Tesseract(language: "eng") {
tesseract.delegate = self
tesseract.image = imageToScan?.g8_blackAndWhite()
tesseract.recognize()
textView.text = tesseract.recognizedText
}
}
Обновление. Я нашел ссылку на репо обучаемых файлов данных для версии 4.0. Я обнародовал свой старый файл eng.traineddata и заменил его на репозиторий 4.0. Я получаю ту же ошибку, ссылаясь на одну и ту же строку.
Ответы
Ответ 1
Текущая версия eng.traineddata
связанная выше на GitHub, не будет работать с текущей версией Tesseract-OCR-iOS.
Инструкции по установке, размещенные на GitHub, отлично работают, если у вас есть правильный файл <language>.traineddata
.
Я обнаружил это после перетаскивания eng.traineddata
из eng.traineddata
Scott блестящего учебника Tesseract на Ray Wenderlich.
Это репо содержит файл eng.traineddata
который мне нужен, чтобы заставить Tesseract работать. Я не уверен, что это относится ко всем языкам.
Ответ 2
У меня была такая же проблема вчера, я понимаю, что проблема связана со словарем, я просто изменяю словарь github для "Lyndsey Scott" блестящего учебника Tesseract в словаре Ray Wenderlich (ранее размещал строки), и он работает очень хорошо. У меня есть xcode 9.4.1, и он распознает файл lyndsey иначе, чем файл github