【发布时间】:2020-06-30 06:20:40
【问题描述】:
我使用 Tesseract 制作了一个光学字符识别程序,但是它的运行速度比预期的要慢。我使用我在 github 上找到的 ocrb 训练数据,我相信创建自己的训练数据更小会提高执行速度。我对 OCR 比较陌生,所以你有什么提高时间效率的技巧吗?也许是 Pix 的替代品?
在我的电脑上它的运行时间是 0.1 秒,如果它低于 0.066 就完美了。这是我的功能:
std::string imageToText() {
tesseract::TessBaseAPI api;
api.Init("./tessdata", "ocrb_int");
Pix* image = pixRead("randommrz.jpg");
api.SetImage(image);
return api.GetUTF8Text();
}
我也知道缺乏垃圾收集
【问题讨论】:
-
@AlanBirtles Typo,编辑了问题。感谢您的通知
-
首先要检查的是您在构建代码时是否启用了编译器优化。默认情况下,几乎所有编译器都会生成未经优化的调试版本,以便于调试。这样的构建相当缓慢。您要确保测试优化的发布版本。
标签: c++ computer-vision ocr tesseract