2012-08-08 149 views
1

我试图培养某些车牌图像到特定的字体。我想知道我应该在训练时将unicharambigs文件放在哪里。我有一个没有unicharambigs文件的训练数据集。但是当我在代码中包含tessdata文件夹时,它在运行时抛出一个异常,说“尝试读取或写入受保护的内存,这通常表明其他内存已损坏。”我新使用tesseract我有几个问题需要澄清,因为我认为上述例外是由于以下问题之一发生的:Tesseract培训问题

1)是否必须具有unicharambigs文件?如果是的话,我应该在创建最终训练数据之前在哪里放入这个文件?

2)在与C#代码集成时应该在tessdata文件夹中记录哪些文件?

我一直在使用预训练数据集进行测试,但我想拥有自己的数据集,当我使用该tessdata文件夹时,应用程序不会以上述运行时异常退出。因此我相信它与我自己的tessdata文件夹有关。

UPDATE

我想补充的问题。当我使用由tesseract安装创建的默认tessdata文件夹时,应用程序工作正常,但结果不正确。我再次训练了tesseract并用培训后生成的新训练数据文件替换了现有训练数据文件,并且我的应用程序再次崩溃。

我正在使用C#和tesseract点净包装。

回答

1

其实这里的问题是经过训练的tessedata和tesseract DLL的版本不匹配。我猜测训练好的tessedata是最新的> 3.0版本,因为旧版本(2.0)dll会抛出异常像尝试读取或写入受保护的内存“so请试用最新的tesseract dll https://github.com/charlesw/tesseract/tree/master/Samples 从上面的链接下载示例项目并测试您的训练数据,它具有Nuget tesseract软件包的参考,因此这将支持Tesseract 3.02训练tessedata。