如何让 iOS 上的 tesseract 更快?

Posted

技术标签:

【中文标题】如何让 iOS 上的 tesseract 更快?【英文标题】:How can I make tesseract on iOS faster? 【发布时间】:2012-07-22 18:11:12 【问题描述】:

我在 ios 上使用 tesseract ocr 苦苦挣扎。一切正常,但它真的很慢。 单行数字的识别时间为 2 - 3 秒。

我正在从视频流中阅读。

我正在使用 tesseract 3.01 和我的字体的自定义训练文件。

这是我的工作:

设置 tesseract 仅用于查找数字 (0-9)

    缩小、歪斜和二值化图像 使用GetLines找到我想要的文本行 setRectangle 只识别我想要的线路 getUTF8Text 获取我的文字

有什么建议可以加快这个过程吗?

【问题讨论】:

我听说人们在对包含文本的图像使用自适应阈值进行预通过,然后将二值化图像发送到 Tesseract 时,会获得更快的结果。这个问题以该主题为例:***.com/questions/9992078/… 感谢您的建议,我忘了提到这是在第 1 点完成的。将更新我的问题。 【参考方案1】:

我切换到了tesseract 3.02的SVN

在交叉编译遇到一些问题后,

getUTF8Text 大约需要 1.2 - 0.8 秒 0.3 - 0.2 秒用于图像预处理。

我做了一些测试

二值化和缩小 0.7 获得 0.3 秒,但需要花费 0.1 chop_enable=0 对速度几乎没有影响,平均速度增益大约为 0.1,尽管如果分析它占 CPU 使用量的 50%

可用性方面的主要收获是使用 setRectangle 优化代码而不调用 getUTF8Text 如果我怀疑界限不正确。和一些字符串后处理通过检查 收到字符串并应用一些算法来消除最常见的误解 来自正方体。

也许这对其他人有用。

【讨论】:

您能解释一下“...用 setRectangle 优化代码而不是调用 getUTF8Text...”吗?你的意思是你第一次检查了矩形边界,如果你觉得它们可疑,你就不会调用 getUTF8Text? @Thompson 是的,这就是我所做的。但现在我找到了我想要处理的行。然后自己处理所有字符框并丢弃所有置信度低于 20 的框,这样我就不会得到垃圾。现在速度更快了。【参考方案2】:

您可能想尝试的一件事是在后台执行此操作。它不会提高识别速度,但通过让用户执行其他操作,它可能会显得更快。当然,这取决于用例(我有一个很好的改进,因为它看起来非常快,而我只是比预期的更快开始)。诀窍在于 ios 应用程序是关于感知性能的,而不是实际性能(尽管它自然会对感知性能产生很大影响)。

【讨论】:

以上是关于如何让 iOS 上的 tesseract 更快?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 15 如何让 App 启动更快?

iOS Tesseract:糟糕的结果

iOS 15 如何让你的应用启动更快

iOS 上的 Safari 浏览器为何比其他浏览器更快?

OCR Tesseract 只设置数字

如何使用 tesseract.js 识别乐透彩票上的日期和数字?