tesseract 3.00多线程?

时间:2011-02-10 21:34:40

标签: multithreading tesseract

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

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

感谢。

3 个答案:

答案 0 :(得分: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核心。

如果你运行它,并在另一个终端做一个'top',你一次最多可以看到四个进程,直到它通过指定目录中的所有JPG进行搜索。

您的负载不应超过系统中的CPU核心数(如果您运行Linux)。

这是GNU Parallel的链接:

http://www.gnu.org/software/parallel/

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

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

我使用了stdout日志中建议的--gnu选项:

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

{}{.}是并行的占位符:在这种情况下,您告诉tesseract使用列为第一个参数的文件,并且相同的文件名没有扩展名作为第二个参数 - 一切都是在平行的手册中很好地解释了。

现在,如果你有三个.tif个文件,你运行tesseract三次,每个文件一个,总结执行时间,然后用{{运行上面的命令在time之前,您可以轻松检查加速。