Tesseract getutf8text性能

时间:2016-01-08 12:34:30

标签: android tesseract tess-two

我一直在使用使用Tesseract API的应用程序来支持OCR。这是通过使用Surfaceview显示摄像机输出(Camera2 API)和ImageReader实例来完成的,ImageReader实例用于从摄像机获取图像。相机设置为setRepeatingRequest类型,因此可以非常频繁地使用新图像。当我调用getutf8text()方法来获取图像中的可读文本时,它会在Surfaceview上显示相机的预览。 Tesseract API中是否有任何设置可以设置,以便加快getutf8text()方法调用或我可以做的任何其他事情,以使Surfaceview预览不滞后?

感谢任何帮助或指导!

2 个答案:

答案 0 :(得分:0)

您可以采取的大多数措施与Tesseract API本身分开:

  1. 在单独的非UI线程上运行OCR
  2. 在 OCR完成最后一张图像后,抓取新图像以在上启动OCR。请尝试使用capture代替setRepeatingRequest
  3. 在OCR之前对图像进行下采样,以使其更小
  4. 尝试不同的Tesseract页面分割模式,以查看数据中最快的内容
  5. 重新训练Tesseract训练的数据文件,使用更少的字符和更小的字典,具体取决于您的应用程序的用途
  6. Modify Tesseract仅执行识别通行证#1
  7. 不要忘记完全考虑OpenCV或其他方法
  8. 你没有说出你现在正在使用的Tesseract API设置,并且你没有描述你的应用程序在一般意义上做了什么,所以很难告诉你从哪里开始,但这些要点应该让你开始

答案 1 :(得分:0)

您还可以尝试其他一些事情。

  1. 使用 OEM_TESSERACT_ONLY 初始化 tesseract
  2. 不要使用完整的训练数据,而是使用 https://github.com/tesseract-ocr/tessdata_fast 中更快的替代方法。
  3. 将识别移至计算线程。