问题描述
我通过git clone
将Tesseract安装到了Mac上。遵循Tutorial之后,我继续了使用自定义字体训练Tesseract的目标。为了训练,我遵循了this Tutorial。
如果您看第二篇教程,最终结果应该是一个eng.traineddata
文件,它是文件的编译版本:eng.shapetable
,eng.inttemp
,eng.pffmtable
, eng.normproto
,eng.unicharset
,可选:eng.unicharambigs
,可选:eng.version
。 eng.traineddata
文件生成完成后的控制台输出如下:
Combining tessdata files
Output eng.traineddata created successfully.
Version string:5.0.1
1:unicharset:size=4387,offset=192
2:unicharambigs:size=9,offset=4579
3:inttemp:size=444142,offset=4588
4:pffmtable:size=479,offset=448730
5:normproto:size=5715,offset=449209
13:shapetable:size=832,offset=454924
23:version:size=5,offset=455756
请注意,最下面一行表示版本文件中包含5个字符。该版本文件的唯一内容是5.0.1
,试图编译与我的Xcode项目中使用的相同版本的eng文件。
我在Finder中打开/Users/myname/Documents/Xcode/MyApp/MyApp
,并创建了一个名为tessdata
的新文件夹。我将eng.traineddata
文件复制到了该文件夹。然后,我在Xcode中打开我的项目,并将tessdata
目录拖到其中,作为参考。
应该注意的是,TesseractOCRiOS是通过CocoaPods导入到我的项目中的,例如:
pod 'TesseractOCRiOS','5.0.1'
在Mac(不是我的Xcode项目)的Mac上(在终端中)运行Tesseract时,tesseract -v
产生:
tesseract 5.0.0-alpha-779-gf5561
leptonica-1.80.0
libgif 5.2.1 : libjpeg 9d : libpng 1.6.37 : libtiff 4.1.0 : zlib 1.2.11 : libwebp 1.1.0 : libopenjp2 2.3.1
Found AVX2
Found AVX
Found FMA
Found SSE
Found libarchive 3.4.3 zlib/1.2.11 liblzma/5.2.5 bz2lib/1.0.6 liblz4/1.9.2 libzstd/1.4.4
Found libcurl/7.64.1 SecureTransport (LibreSSL/2.8.3) zlib/1.2.11 nghttp2/1.39.2
运行Xcode项目时,视图不会加载,并且此错误显示在Pods/Pods/TesseractOCRiOS/G8Tesseract.mm
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ../../ccutil/tessdatamanager.cpp,line 53
(lldb)
我到过每个英语网站,都看到有这个错误的人,大多数人说这是因为eng.traineddata
文件的版本和TesseractOCRiOS Cocoa Pod的版本不匹配。我已经尝试过使用我之前提到的可选版本文件,并将已安装的pod降级到5.0.0,这是不可能的,因为该版本不再通过CocoaPods提供。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)