【发布时间】:2020-03-25 12:27:03
【问题描述】:
我正在为我的用例使用 eng.traineddata 文件的 Tessdata_Best 版本。我对默认的 tessdata_best eng.traineddata 进行进一步训练,并在训练过程后使用新生成的 eng.traineddata 文件。当我在 PC 上测试时,Tesseract 工作正常。但是当我在 Android 设备上测试时,tesseract 初始化失败。
示例代码 [用于 tesseract 初始化]
[DllImport(TesseractDllName)]
private static extern IntPtr TessBaseAPICreate();
[DllImport(TesseractDllName)]
private static extern int TessBaseAPIInit3(IntPtr handle, string dataPath, string language);
public bool Init (string lang, string dataPath) {
tessHandle = TessBaseAPICreate ();
if (tessHandle.Equals (IntPtr.Zero)) {
Debug.LogError("tessHandle equals IntPtr.Zero, initialization failed..!");
return false;
}
if (TessBaseAPIInit3 (tessHandle, dataPath, lang) != 0) {
Close ();
Debug.LogError("Initialization failed, TessBaseAPIInit3()!=0");
return false;
}
return true;
}
在“if (TessBaseAPIInit3 (tessHandle, dataPath, lang) != 0)”步骤失败。
现在,此链接中描述了此问题的解决方案 a_compatible_traineddata_file_version
但是,我需要对 tesseract 做一些进一步的训练,只能使用 tessdata_best 版本的训练数据文件 tesseract_best_repo
那么,我们如何在安卓设备上使用 tessdata_best trainingdata 文件而不出现问题?
或者,如果上述方法不可行,我们能否以某种方式使用经过训练的数据文件(不是 tessdata_best 版本)来训练 tesseract? 目前我在运行时收到此错误“eng.lstm 组件不存在”
training/combine_tessdata -e tessdata/best/eng.traineddata /tesstutorial/trainplusminus/eng.lstm
[来自tesseract_docs]
此外,如果我尝试覆盖此错误,并在出现上述错误的情况下在 android 上运行 tesseract,则会导致应用崩溃。
谢谢...
【问题讨论】:
标签: android unity3d ocr tesseract