我阅读了其他一些帖子,建议他们将在 3.00 中添加多线程支持。但我不确定它是否在 3.00 发布时添加。
除了多线程之外,运行 tesseract 的多个进程是否是实现并发的可行选择?
谢谢。
我阅读了其他一些帖子,建议他们将在 3.00 中添加多线程支持。但我不确定它是否在 3.00 发布时添加。
除了多线程之外,运行 tesseract 的多个进程是否是实现并发的可行选择?
谢谢。
我做过的一件事是调用 GNU Parallel 在多核系统上运行尽可能多的 Tess* 实例,以便将多页文档转换为单页图像。
这是一个简短的程序,可以在大多数 Linux 发行版上轻松编译(我使用的是 OpenSuSE 11.4)。
这是我使用的命令行:
/usr/local/bin/parallel -j 4 \
/usr/local/bin/tesseract -psm 1 -l eng {} {.} \
::: /tmp/tmp/*.jpg
-j 4 告诉并行使用我在服务器上拥有的所有四个 CPU 内核。
如果您运行此程序,并在另一个终端中执行“顶部”操作,您将一次最多看到四个进程,直到它翻遍指定目录中的所有 JPG 文件。
您的负载不应超过系统中的 CPU 内核数(如果您运行 Linux)。
这是 GNU Parallel 的链接:
不可以。您可以在http://code.google.com/p/tesseract-ocr/source/browse/中浏览 代码,trunk 中的当前代码似乎都没有使用多线程。(至少查看基类、api 和神经网络类)
我也确实parallel
在 Centos 上这样使用过:
ls | parallel --gnu "tesseract {} {.}"
我使用了--gnu
标准输出日志中建议的选项,即:
parallel: Warning: YOU ARE USING --tollef. IF THINGS ARE ACTING WEIRD USE --gnu.
{}
和是并行的{.}
占位符:在这种情况下,您告诉 tesseract 使用作为第一个参数列出的文件,并使用相同的文件名而不带扩展名作为第二个参数 - 并行手册页中对所有内容都有很好的解释。
现在,如果你有 - 比如说 - 三个.tif
文件并且你运行tesseract
了 3 次,每个文件一个,总结执行时间,然后你运行上面的命令time
before parallel
,你可以很容易地检查加速。