9

我阅读了其他一些帖子,建议他们将在 3.00 中添加多线程支持。但我不确定它是否在 3.00 发布时添加。

除了多线程之外,运行 tesseract 的多个进程是否是实现并发的可行选择?

谢谢。

4

3 回答 3

8

我做过的一件事是调用 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://www.gnu.org/software/parallel/

于 2012-02-20T19:47:42.727 回答
5

不可以。您可以在http://code.google.com/p/tesseract-ocr/source/browse/中浏览 代码,trunk 中的当前代码似乎都没有使用多线程。(至少查看基类、api 和神经网络类)

于 2011-02-10T22:06:23.893 回答
2

我也确实parallel在 Centos 上这样使用过:

ls | parallel --gnu "tesseract {} {.}"

我使用了--gnu标准输出日志中建议的选项,即:

parallel: Warning: YOU ARE USING --tollef. IF THINGS ARE ACTING WEIRD USE --gnu.

{}和是并行的{.}占位符:在这种情况下,您告诉 tesseract 使用作为第一个参数列出的文件,并使用相同的文件名而不带扩展名作为第二个参数 - 并行手册页中对所有内容都有很好的解释。

现在,如果你有 - 比如说 - 三个.tif文件并且你运行tesseract了 3 次,每个文件一个,总结执行时间,然后你运行上面的命令timebefore parallel,你可以很容易地检查加速。

于 2015-01-08T14:06:41.637 回答