Tesseract(OCR 引擎)是可重入的吗?
我正在四核处理器上使用 Tesseract 进行 OCR。 为了获得更好的速度,我想使用 4 个线程一次读取 4 个单词。 从多个线程同时调用 Tesseract 是否安全?
注意:每个线程将处理不同的非共享图像。
注意:由于速度问题,用锁来防护是不行的。
I am doing OCR using Tesseract on a quad-core processor.
For better speed, I want to read 4 words at a time, using 4 threads.
Is it safe to call Tesseract from multiple threads concurrently?
Note: each thread will be working on a different, non-shared image.
Note: guarding with locks is not ok because of speed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从发行说明来看,Tesseract(大部分情况下,在某种程度上你描述需要)从3.01(2011年10月21日)开始是线程安全的
我已经在多个核心上成功使用它这么长时间(或更长时间,来自开发分支)。
From the release notes, Tesseract is (mostly, and to the degree that you describe needing) thread-safe as of 3.01 (Oct 21 2011)
I've been successfully using it on multiple cores for that long (or longer, from dev branch).
我认为 tesseract 目前不可并行化(请参阅此线程),尽管 v3.0 的主要目标之一是使其更线程安全。
但是,您始终可以通过运行 tesseract 的 n 个并发进程 来进行并行化。如果您想并行化单个图像的 OCRing,则需要将其拆分并将每个部分提供给这些 n 进程中的每一个(基本上是一个映射缩减)。
I don't think tesseract is currently parallelizable (see this thread), although one of the main goals for v3.0 is to make it more thread-safe.
However, you could always parallelize by running n concurrent processes of tesseract. If you want to parallelize the OCRing of a single image, it would be up to you to split it and feed each part to each of these n processes (basically a mapreduce).