8

我在 ios 上与 tesseract ocr 作斗争。一切正常,但它真的很慢。单行数字的识别时间为 2 - 3 秒。

我正在从视频流中阅读。

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

这是我所做的:

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

  1. 缩小、歪斜和二值化图像
  2. 用于GetLines查找我想要的文本行
  3. setRectangle只识别我想要的线路
  4. getUTF8Text获取我的文本<-仅此​​一项需要 2-3 秒

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

4

2 回答 2

7

我切换到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。还有一些字符串后处理,通过检查接收到的字符串并应用一些算法来消除 tesseract 中最常见的误解。

也许这对其他人有用。

于 2012-07-27T13:56:11.817 回答
0

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

于 2012-08-21T10:18:04.690 回答