7

我在四核处理器上使用 Tesseract 进行 OCR。为了提高速度,我想一次阅读 4 个单词,使用 4 个线程。从多个线程同时调用 Tesseract 是否安全?

注意:每个线程将处理不同的非共享图像。

注意:由于速度原因,用锁守卫是不行的。

4

2 回答 2

7

发行说明中,Tesseract (大部分,并且在您描述需要的程度上)自 3.01(2011 年 10 月 21 日)起是线程安全的

线程安全!将所有关键的全局变量和静态变量移至适当类的成员。Tesseract 现在是线程安全的(可以在多个线程中并行使用多个实例。)除了一些控制参数仍然是全局的并影响所有线程的小例外。

我已经成功地在多个核心上使用它很长时间(或更长时间,来自开发分支)。

于 2013-05-02T20:06:00.057 回答
3

我不认为 tesseract 当前是可并行化的(请参阅此线程),尽管v3.0 的主要目标之一是使其更加线程安全

但是,您始终可以通过运行tesseract的n 个并发进程来实现并行化。如果您想并行化单个图像的 OCRing,您可以将其拆分并将每个部分提供给这n 个进程中的每一个(基本上是一个 mapreduce)。

于 2011-01-31T04:44:59.023 回答