我正在尝试训练 Tesseract 来处理一些看起来很有趣的字体,例如 Palace。我尝试了一种简单的方法 - 使用 http://trainyourtesseract.com/ (来自 Wayback Machine) 然后拨打了电话
api->Init(".\\tessdata", "eng+Palace",OEM_TESSERACT_ONLY). api->SetPageSegMode(PSM_SINGLE_LINE); api->SetImage(image); // Get OCR result outText = api->GetUTF8Text();
结果如下
MPST 澳大利亚研究
如下所示,没有正确识别任何字形:
.MDXXXo,XkX.n.mX.XnoX
trainyourtesseract 是否会生成错误的训练数据或者我是否进行了错误的调用,以及如何处理这种情况?
事实上,我也曾尝试使用一些不那么有趣的字体,但识别度几乎没有提高。
我正在附加 tiff 文件和我为 Palace 训练的数据。
提前感谢大家的帮助,Yuliana
答案1
这训练你的四面体网站只负责生成.traineddata,它不负责准确性。所以你得到后仍然需要更多的培训.traineddata文件。
我确实发现了训练你的四面体是,但绝对不是100%,从结果来看,准确率还需要很大的提升。
微调。从现有的训练语言开始,使用特定的附加数据进行训练。这可能适用于与现有训练数据接近但在某些细微方面有所不同的问题,例如特别不寻常的字体。即使使用少量训练数据也可能有效。
从网络中切断顶层(或任意数量的层),并使用新数据重新训练新的顶层。如果微调不起作用,这很可能是下一个最佳选择。如果您从最相似的脚本开始,切断顶层仍然可能适用于训练全新的语言或脚本。
从头开始重新训练。这是一项艰巨的任务,除非你有一个非常有代表性且足够大的训练集来处理你的问题。如果没有,你最终可能会得到一个过度拟合的网络,它在训练数据上表现很好,但在实际数据上却表现不佳。
您可以Palace.traineddata
从头开始重新训练您的。缺点是您需要提供大量的训练数据。或者您可以对您的进行微调palacescript.tiff
,eng.traineddata
但它仍然需要大量的训练数据。
如果您不能提供这些庞大的数据。别担心!
您可以关注如何为Tesseract OCR准备训练文件并提高字符识别率?,基于 Legacy 引擎构建。。盒子制作的文件makebox
不能适用于LSTM引擎。