我怎样才能使iOS上的tesseract更快?

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

我正在阅读videostream。

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

这是我做的:

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

  1. 收缩,歪斜和二值化图像
  2. 使用GetLinesfind我想要的文本行
  3. setRectangle只识别我想要的行
  4. getUTF8Text获取我的文本< – 这需要2-3秒

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

我切换到tesseract 3.02的SVN

在交叉编译出现问题之后,

对于getUTF8Text,我下降到大约1.2-0.8秒,对于图像预处理我下降了0.3-0.2秒。

我做了一些testing

  • 二值化和0.7收益0.3秒,但成本0.1你
  • chop_enable = 0对速度几乎没有影响,速度增益平均为0.1,如果有profiled,则占CPU使用的50%

可用性的主要收获是用setRectangle优化代码,如果我怀疑边界是不正确的,则不调用getUTF8Text。 而一些string后处理通过检查收到的string并应用一些algorithm来消除tesseract中最常见的错误解释。

也许这对别人有用。

你可能想尝试的一件事是在后台做。 它不会提高识别速度,但通过让用户做别的事情,可能会更快。 这当然取决于用例(我有一个好的改进,因为它看起来非常快,而我刚刚开始比预期的更早)。 诀窍是,ios应用程序是关于感知性能,而不是实际性能(尽pipe它自然对感知性能有很大的影响)。