Tesseract使用4.0版本训练数据无法在Swift 3.0项目中工作

时间:2016-12-13 21:45:22

标签: ios swift ocr tesseract

我试图在新的Swift 3.0项目中使用Tesseract-OCR-iOS。我正在使用Xcode版本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

我找到了this post,这听起来我使用了错误版本的traineddata。我从the tesseract-ocr/tessdata repo下载了tessdata,因此我感到困惑的是为什么我的版本号不匹配。

非常感谢任何有关如何使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的{​​{1}}文件夹拖到Xcode以外的项目根目录中,并将引用从Finder拖到Xcode&#39;项目导航器。

到目前为止,一切正常。没有编译器错误,链接器抱怨等。在eng.traineddata我导入UIViewController并像这样调用它:

TesseratOCR

更新 我找到了repo of traineddata files for version 4.0的链接。我修改了我的旧eng.traineddata文件,并将其替换为4.0 repo中的文件。我得到引用相同行的相同错误。

2 个答案:

答案 0 :(得分:38)

上面在GitHub上链接的eng.traineddata的当前版本不适用于当前版本的Tesseract-OCR-iOS

如果您拥有正确的<language>.traineddata文件,GitHub上发布的安装说明可以正常运行。

我从Lyndsey Scott's brilliant Tesseract tutorial on Ray Wenderlich拖动eng.traineddata后发现了这一点。

This repo包含让Tesseract工作所需的eng.traineddata文件。我不确定这是否适用于所有语言。

答案 1 :(得分:-1)

昨天我遇到了同样的问题,我想问题出在字典上,我只是将github的字典更改为“ Lyndsey Scott在Ray Wenderlich上出色的Tesseract教程”字典(前面有几行),并且效果很好。 我有xcode 9.4.1,它以与github文件不同的方式识别lyndsey文件