【问题标题】:Tesseract-OCR (3.02) recognition accuracy and speedTesseract-OCR (3.02) 识别准确率和速度
【发布时间】:2016-07-02 05:49:16
【问题描述】:

我有一组非常小的图片(w:70-100 ; h:12-20),如下图:

在这些图像中,只有组成员的昵称。我想从简单的图像中读取文本,它们都有一个背景,只有昵称不同。那么,我对这张图片做了什么:

我正在使用下面的代码从第二张图片中获取文本:

tesseract::TessBaseAPI ocr;
ocr.Init(NULL, "eng");
PIX* pix = pixRead("D:\\image.png");
ocr.SetImage(pix);
std::string result = ocr.GetUTF8Text();

我有两个问题:

  1. ocr.GetUTF8Text(); 工作缓慢:650-750 毫秒。图像很小,为什么它仍然可以工作这么长时间?
  2. 从上面的图像中,我得到的结果如下:“iwillkillsm”、“iwillkillsel”等。该图像很简单,我相信 tesseract 大师能够以 100% 的准确率识别它。

    我应该如何处理图像/代码,或者我应该阅读(以及在哪里)关于 tesseract-ocr(关于文本速度和质量识别的内容)来解决这些问题?

【问题讨论】:

  • 我在 tesseract 上获得了最好的运气,因为我可以大大增加图像的尺寸。
  • @nlloyd 增加维度后,我有一些更好的结果(速度和准确性),谢谢!但我不得不问:这样可以吗,调整大小后我的图像中有一些灰色或几乎黑色的像素?这种情况是否有助于 tesseract?
  • 对我来说似乎没问题。在将图像喂给 tesseract 之前,我总是把它们放大;但是,在您开始获得更差的结果之前,您可以使它们变得多大是有限度的 :)
  • 我继续发布并作为答案发布,因为它对您有所帮助。

标签: image tesseract


【解决方案1】:

这听起来可能很奇怪,但是当我增加图像的尺寸时,我总是对 tesseract 有最好的运气。图像对我来说看起来“更糟”,但 tesseract 速度更快,准确性更高。

在您开始获得更差的结果之前,您可以制作多大的图像是有限制的 :) 我想我记得过去拍摄 600 像素。不过,你必须玩它。

【讨论】:

  • 对我来说,将图像大小调整为 ~1000x230 值大约需要 70-80 毫秒(现在它对我来说是最好的值)。之后识别效果更好,ocr.GetUTF8Text() 的处理时间从 650-750ms 减少到 200-350ms。它仍然不是最好的,但无论如何这个答案有很大帮助。
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 2013-08-03
  • 2021-03-11
  • 1970-01-01
  • 2018-05-07
相关资源
最近更新 更多